mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-15 04:30:12 +00:00
5a70dd1d82
Similar to gep (r230786) and load (r230794) changes. Similar migration script can be used to update test cases, which successfully migrated all of LLVM and Polly, but about 4 test cases needed manually changes in Clang. (this script will read the contents of stdin and massage it into stdout - wrap it in the 'apply.sh' script shown in previous commits + xargs to apply it over a large set of test cases) import fileinput import sys import re rep = re.compile(r"(getelementptr(?:\s+inbounds)?\s*\()((<\d*\s+x\s+)?([^@]*?)(|\s*addrspace\(\d+\))\s*\*(?(3)>)\s*)(?=$|%|@|null|undef|blockaddress|getelementptr|addrspacecast|bitcast|inttoptr|zeroinitializer|<|\[\[[a-zA-Z]|\{\{)", re.MULTILINE | re.DOTALL) def conv(match): line = match.group(1) line += match.group(4) line += ", " line += match.group(2) return line line = sys.stdin.read() off = 0 for match in re.finditer(rep, line): sys.stdout.write(line[off:match.start()]) sys.stdout.write(conv(match)) off = match.end() sys.stdout.write(line[off:]) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@232184 91177308-0d34-0410-b5e6-96231b3b80d8
56 lines
2.9 KiB
LLVM
56 lines
2.9 KiB
LLVM
; RUN: opt < %s -loop-unswitch -instcombine -disable-output
|
|
%struct.ClassDef = type { %struct.QByteArray, %struct.QByteArray, %"struct.QList<ArgumentDef>", %"struct.QList<ArgumentDef>", i8, i8, %"struct.QList<ArgumentDef>", %"struct.QList<ArgumentDef>", %"struct.QList<ArgumentDef>", %"struct.QList<ArgumentDef>", %"struct.QList<ArgumentDef>", %"struct.QList<ArgumentDef>", %"struct.QMap<QByteArray,QByteArray>", %"struct.QList<ArgumentDef>", %"struct.QMap<QByteArray,QByteArray>", i32, i32 }
|
|
%struct.FILE = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker*, %struct.FILE*, i32, i32, i32, i16, i8, [1 x i8], i8*, i64, i8*, i8*, i8*, i8*, i32, i32, [40 x i8] }
|
|
%struct.Generator = type { %struct.FILE*, %struct.ClassDef*, %"struct.QList<ArgumentDef>", %struct.QByteArray, %"struct.QList<ArgumentDef>" }
|
|
%struct.QBasicAtomic = type { i32 }
|
|
%struct.QByteArray = type { %"struct.QByteArray::Data"* }
|
|
%"struct.QByteArray::Data" = type { %struct.QBasicAtomic, i32, i32, i8*, [1 x i8] }
|
|
%"struct.QList<ArgumentDef>" = type { %"struct.QList<ArgumentDef>::._19" }
|
|
%"struct.QList<ArgumentDef>::._19" = type { %struct.QListData }
|
|
%struct.QListData = type { %"struct.QListData::Data"* }
|
|
%"struct.QListData::Data" = type { %struct.QBasicAtomic, i32, i32, i32, i8, [1 x i8*] }
|
|
%"struct.QMap<QByteArray,QByteArray>" = type { %"struct.QMap<QByteArray,QByteArray>::._56" }
|
|
%"struct.QMap<QByteArray,QByteArray>::._56" = type { %struct.QMapData* }
|
|
%struct.QMapData = type { %struct.QMapData*, [12 x %struct.QMapData*], %struct.QBasicAtomic, i32, i32, i32, i8 }
|
|
%struct._IO_marker = type { %struct._IO_marker*, %struct.FILE*, i32 }
|
|
@.str9 = external constant [1 x i8] ; <[1 x i8]*> [#uses=1]
|
|
|
|
declare i32 @strcmp(i8*, i8*)
|
|
|
|
define i32 @_ZN9Generator6strregEPKc(%struct.Generator* %this, i8* %s) {
|
|
entry:
|
|
%s_addr.0 = select i1 false, i8* getelementptr ([1 x i8], [1 x i8]* @.str9, i32 0, i32 0), i8* %s ; <i8*> [#uses=2]
|
|
%tmp122 = icmp eq i8* %s_addr.0, null ; <i1> [#uses=1]
|
|
br label %bb184
|
|
|
|
bb55: ; preds = %bb184
|
|
ret i32 0
|
|
|
|
bb88: ; preds = %bb184
|
|
br i1 %tmp122, label %bb154, label %bb128
|
|
|
|
bb128: ; preds = %bb88
|
|
%tmp138 = call i32 @strcmp( i8* null, i8* %s_addr.0 ) ; <i32> [#uses=1]
|
|
%iftmp.37.0.in4 = icmp eq i32 %tmp138, 0 ; <i1> [#uses=1]
|
|
br i1 %iftmp.37.0.in4, label %bb250, label %bb166
|
|
|
|
bb154: ; preds = %bb88
|
|
br i1 false, label %bb250, label %bb166
|
|
|
|
bb166: ; preds = %bb154, %bb128
|
|
%tmp175 = add i32 %idx.0, 1 ; <i32> [#uses=1]
|
|
%tmp177 = add i32 %tmp175, 0 ; <i32> [#uses=1]
|
|
%tmp181 = add i32 %tmp177, 0 ; <i32> [#uses=1]
|
|
%tmp183 = add i32 %i33.0, 1 ; <i32> [#uses=1]
|
|
br label %bb184
|
|
|
|
bb184: ; preds = %bb166, %entry
|
|
%i33.0 = phi i32 [ 0, %entry ], [ %tmp183, %bb166 ] ; <i32> [#uses=2]
|
|
%idx.0 = phi i32 [ 0, %entry ], [ %tmp181, %bb166 ] ; <i32> [#uses=2]
|
|
%tmp49 = icmp slt i32 %i33.0, 0 ; <i1> [#uses=1]
|
|
br i1 %tmp49, label %bb88, label %bb55
|
|
|
|
bb250: ; preds = %bb154, %bb128
|
|
ret i32 %idx.0
|
|
}
|