mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-25 13:35:39 +00:00
11ab0c3a5d
An oddity of the .ll syntax is that the "@var = " in @var = global i32 42 is optional. Writing just global i32 42 is equivalent to @0 = global i32 42 This means that there is a pretty big First set at the top level. The current implementation maintains it manually. I was trying to refactor it, but then started wondering why keep it a all. I personally find the above syntax confusing. It looks like something is missing. This patch removes the feature and simplifies the parser. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@269096 91177308-0d34-0410-b5e6-96231b3b80d8
30 lines
796 B
LLVM
30 lines
796 B
LLVM
; RUN: llvm-as < %s | llvm-dis > %t1.ll
|
|
; RUN: llvm-as %t1.ll -o - | llvm-dis > %t2.ll
|
|
; RUN: diff %t1.ll %t2.ll
|
|
|
|
@somestr = constant [11 x i8] c"hello world" ; <[11 x i8]*> [#uses=1]
|
|
@array = constant [2 x i32] [ i32 12, i32 52 ] ; <[2 x i32]*> [#uses=1]
|
|
@0 = constant { i32, i32 } { i32 4, i32 3 } ; <{ i32, i32 }*>:0 [#uses=0]
|
|
|
|
define [2 x i32]* @testfunction(i32 %i0, i32 %j0) {
|
|
ret [2 x i32]* @array
|
|
}
|
|
|
|
define i8* @otherfunc(i32, double) {
|
|
%somestr = getelementptr [11 x i8], [11 x i8]* @somestr, i64 0, i64 0 ; <i8*> [#uses=1]
|
|
ret i8* %somestr
|
|
}
|
|
|
|
define i8* @yetanotherfunc(i32, double) {
|
|
ret i8* null
|
|
}
|
|
|
|
define i32 @negativeUnsigned() {
|
|
ret i32 -1
|
|
}
|
|
|
|
define i32 @largeSigned() {
|
|
ret i32 -394967296
|
|
}
|
|
|