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/Bitcode/old-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/Bitcode/old-aliases.ll')
-rw-r--r-- | test/Bitcode/old-aliases.ll | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/test/Bitcode/old-aliases.ll b/test/Bitcode/old-aliases.ll index 8527f074d04..1bcc4306477 100644 --- a/test/Bitcode/old-aliases.ll +++ b/test/Bitcode/old-aliases.ll @@ -10,14 +10,14 @@ @v2 = global [1 x i32] zeroinitializer ; CHECK: @v2 = global [1 x i32] zeroinitializer -@v3 = alias bitcast (i32* @v1 to i16*) -; CHECK: @v3 = alias bitcast (i32* @v1 to i16*) +@v3 = alias i16, bitcast (i32* @v1 to i16*) +; CHECK: @v3 = alias i16, bitcast (i32* @v1 to i16*) -@v4 = alias getelementptr ([1 x i32], [1 x i32]* @v2, i32 0, i32 0) -; CHECK: @v4 = alias getelementptr inbounds ([1 x i32], [1 x i32]* @v2, i32 0, i32 0) +@v4 = alias i32, getelementptr ([1 x i32], [1 x i32]* @v2, i32 0, i32 0) +; CHECK: @v4 = alias i32, getelementptr inbounds ([1 x i32], [1 x i32]* @v2, i32 0, i32 0) -@v5 = alias i32 addrspace(2)* addrspacecast (i32 addrspace(0)* @v1 to i32 addrspace(2)*) -; CHECK: @v5 = alias addrspacecast (i32* @v1 to i32 addrspace(2)*) +@v5 = alias i32, i32 addrspace(2)* addrspacecast (i32 addrspace(0)* @v1 to i32 addrspace(2)*) +; CHECK: @v5 = alias i32, addrspacecast (i32* @v1 to i32 addrspace(2)*) -@v6 = alias i16* @v3 -; CHECK: @v6 = alias i16* @v3 +@v6 = alias i16, i16* @v3 +; CHECK: @v6 = alias i16, i16* @v3 |