diff options
author | David Blaikie <dblaikie@gmail.com> | 2015-09-11 03:22:04 +0000 |
---|---|---|
committer | David Blaikie <dblaikie@gmail.com> | 2015-09-11 03:22:04 +0000 |
commit | 21f77df7b644f471dc6f9cc7abaa52667e471650 (patch) | |
tree | 0157391eba974278f7006498f3ada1dd0b23f643 /test/CodeGen/ARM/aliases.ll | |
parent | a6f58ad82d6a8728096bf4690fa4b9e4f99241ae (diff) |
[opaque pointer type] Add textual IR support for explicit type parameter for global aliases
update.py:
import fileinput
import sys
import re
alias_match_prefix = r"(.*(?:=|:|^)\s*(?:external |)(?:(?:private|internal|linkonce|linkonce_odr|weak|weak_odr|common|appending|extern_weak|available_externally) )?(?:default |hidden |protected )?(?:dllimport |dllexport )?(?:unnamed_addr |)(?:thread_local(?:\([a-z]*\))? )?alias"
plain = re.compile(alias_match_prefix + r" (.*?))(| addrspace\(\d+\) *)\*($| *(?:%|@|null|undef|blockaddress|addrspacecast|\[\[[a-zA-Z]|\{\{).*$)")
cast = re.compile(alias_match_prefix + r") ((?:bitcast|inttoptr|addrspacecast)\s*\(.* to (.*?)(| addrspace\(\d+\) *)\*\)\s*(?:;.*)?$)")
gep = re.compile(alias_match_prefix + r") ((?:getelementptr)\s*(?:inbounds)?\s*\((?P<type>.*), (?P=type)(?:\s*addrspace\(\d+\)\s*)?\* .*\)\s*(?:;.*)?$)")
def conv(line):
m = re.match(cast, line)
if m:
return m.group(1) + " " + m.group(3) + ", " + m.group(2)
m = re.match(gep, line)
if m:
return m.group(1) + " " + m.group(3) + ", " + m.group(2)
m = re.match(plain, line)
if m:
return m.group(1) + ", " + m.group(2) + m.group(3) + "*" + m.group(4) + "\n"
return line
for line in sys.stdin:
sys.stdout.write(conv(line))
apply.sh:
for name in "$@"
do
python3 `dirname "$0"`/update.py < "$name" > "$name.tmp" && mv "$name.tmp" "$name"
rm -f "$name.tmp"
done
The actual commands:
From llvm/src:
find test/ -name *.ll | xargs ./apply.sh
From llvm/src/tools/clang:
find test/ -name *.mm -o -name *.m -o -name *.cpp -o -name *.c | xargs -I '{}' ../../apply.sh "{}"
From llvm/src/tools/polly:
find test/ -name *.ll | xargs ./apply.sh
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@247378 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/ARM/aliases.ll')
-rw-r--r-- | test/CodeGen/ARM/aliases.ll | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/test/CodeGen/ARM/aliases.ll b/test/CodeGen/ARM/aliases.ll index 6307133b635..665ffe902c8 100644 --- a/test/CodeGen/ARM/aliases.ll +++ b/test/CodeGen/ARM/aliases.ll @@ -33,23 +33,23 @@ ; CHECK: .size elem1, 4 @bar = global i32 42 -@foo1 = alias i32* @bar -@foo2 = alias i32* @bar +@foo1 = alias i32, i32* @bar +@foo2 = alias i32, i32* @bar %FunTy = type i32() define i32 @foo_f() { ret i32 0 } -@bar_f = weak alias %FunTy* @foo_f +@bar_f = weak alias %FunTy, %FunTy* @foo_f -@bar_i = internal alias i32* @bar +@bar_i = internal alias i32, i32* @bar -@A = alias bitcast (i32* @bar to i64*) +@A = alias i64, bitcast (i32* @bar to i64*) @structvar = private global {i32, i32} {i32 1, i32 2} -@elem0 = alias getelementptr({i32, i32}, {i32, i32}* @structvar, i32 0, i32 0) -@elem1 = alias getelementptr({i32, i32}, {i32, i32}* @structvar, i32 0, i32 1) +@elem0 = alias i32, getelementptr({i32, i32}, {i32, i32}* @structvar, i32 0, i32 0) +@elem1 = alias i32, getelementptr({i32, i32}, {i32, i32}* @structvar, i32 0, i32 1) define i32 @test() { entry: |