Skip to content

Commit 2479f9d

Browse files
committed
update go.mod
Former-commit-id: d3f412d
1 parent 1aace49 commit 2479f9d

18 files changed

+217
-7
lines changed

UNLICENSE

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
This is free and unencumbered software released into the public domain.
2+
3+
Anyone is free to copy, modify, publish, use, compile, sell, or
4+
distribute this software, either in source code form or as a compiled
5+
binary, for any purpose, commercial or non-commercial, and by any
6+
means.
7+
8+
In jurisdictions that recognize copyright laws, the author or authors
9+
of this software dedicate any and all copyright interest in the
10+
software to the public domain. We make this dedication for the benefit
11+
of the public at large and to the detriment of our heirs and
12+
successors. We intend this dedication to be an overt act of
13+
relinquishment in perpetuity of all present and future rights to this
14+
software under copyright law.
15+
16+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19+
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
20+
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
21+
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22+
OTHER DEALINGS IN THE SOFTWARE.
23+
24+
For more information, please refer to <http://unlicense.org>

asm/testdata/diexpression.ll

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
!foo = !{!DIExpression()}
2+
!bar = !{!DIExpression(42)}
3+
!baz = !{!DIExpression(42, DW_OP_addr)}

asm/testdata/expr_frem.ll

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
@a = global float frem (float 4.0, float 3.0)

asm/testdata/hexfloat.c

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
_Float16 a = 4.0;
2+
_Float16 b = 0.1;

asm/testdata/hexfloat.ll

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
@a = global half 0xH4400
2+
@b = global half 0xH2E66

asm/testdata/hexfloat.ll.golden

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
@a = global half 4.0
2+
@b = global half 0xH2E66

asm/testdata/inst_aggregate.ll

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
define void @f() {
2+
; <label>:0
3+
%1 = extractvalue { i8, { i32, i64 } } { i8 1, { i32, i64 } { i32 2, i64 3 } }, 1, 1
4+
%2 = insertvalue { i8, { i32, i64 } } { i8 1, { i32, i64 } { i32 2, i64 3 } }, i64 4, 1, 1
5+
ret void
6+
}

asm/testdata/inst_binary.ll

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
define void @f() {
2+
; <label>:0
3+
%1 = add i32 1, 2
4+
%2 = fadd double 3.0, 4.0
5+
%3 = sub i32 5, 6
6+
%4 = fsub double 7.0, 8.0
7+
%5 = mul i32 9, 10
8+
%6 = fmul double 11.0, 12.0
9+
%7 = udiv i32 13, 14
10+
%8 = sdiv i32 15, 16
11+
%9 = fdiv double 17.0, 18.0
12+
%10 = urem i32 19, 20
13+
%11 = srem i32 21, 22
14+
%12 = frem double 23.0, 24.0
15+
ret void
16+
}

asm/testdata/inst_bitwise.ll

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
define void @f() {
2+
; <label>:0
3+
%1 = shl i32 1, 2
4+
%2 = lshr i32 3, 4
5+
%3 = ashr i32 5, 6
6+
%4 = and i32 7, 8
7+
%5 = or i32 9, 10
8+
%6 = xor i32 11, 12
9+
ret void
10+
}

asm/testdata/inst_conversion.ll

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
define void @f() {
2+
; <label>:0
3+
%1 = trunc i32 321 to i8
4+
%2 = zext i8 123 to i32
5+
%3 = sext i8 -123 to i32
6+
%4 = fptrunc double 1.0 to float
7+
%5 = fpext float 2.0 to double
8+
%6 = fptoui double 3.0 to i32
9+
%7 = fptosi double -4.0 to i32
10+
%8 = uitofp i32 5 to double
11+
%9 = sitofp i32 -6 to double
12+
%10 = ptrtoint i8* null to i32
13+
%11 = inttoptr i32 1234 to i8*
14+
%12 = bitcast { i32, i32 }* null to i64*
15+
%13 = addrspacecast i8* null to i8 addrspace(1)*
16+
ret void
17+
}

asm/testdata/inst_memory.ll

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
@s = constant [4 x i8] c"foo\00"
2+
3+
define void @f() {
4+
; <label>:0
5+
%ptr = alloca i32
6+
%1 = load i32, i32* %ptr
7+
store i32 42, i32* %ptr
8+
fence acquire
9+
%2 = cmpxchg i32* %ptr, i32 10, i32 20 acquire monotonic
10+
%3 = atomicrmw add i32* %ptr, i32 30 acq_rel
11+
%4 = getelementptr [4 x i8], [4 x i8]* @s, i64 0, i64 0
12+
ret void
13+
}

asm/testdata/inst_other.ll

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
define i32 @g() {
2+
; <label>:0
3+
ret i32 42
4+
}
5+
6+
define void @h(i32 %x) {
7+
; <label>:0
8+
ret void
9+
}
10+
11+
define void @f() {
12+
; <label>:0
13+
%1 = icmp eq i32 1, 2
14+
br i1 %1, label %foo, label %baz
15+
16+
foo:
17+
%2 = fcmp oeq double 3.0, 4.0
18+
br i1 %2, label %bar, label %baz
19+
20+
bar:
21+
br label %baz
22+
23+
baz:
24+
%3 = phi i32 [ 10, %foo ], [ 20, %bar ], [ 30, %baz ]
25+
%4 = select i1 true, i32 11, i32 22
26+
%5 = call i32 @g()
27+
call void @h(i32 30)
28+
%6 = va_arg i8* null, i32
29+
%7 = landingpad { i8*, i32 }
30+
catch i8** null
31+
ret void
32+
33+
handler0:
34+
%8 = catchpad within %cs [i8** null]
35+
ret void
36+
37+
handler1:
38+
%9 = cleanuppad within %cs [i8** null]
39+
ret void
40+
41+
dispatch:
42+
%cs = catchswitch within none [label %handler0, label %handler1] unwind to caller
43+
}

asm/testdata/inst_vector.ll

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
define void @f() {
2+
; <label>:0
3+
%1 = extractelement <2 x i32> <i32 1, i32 2>, i64 1
4+
%2 = insertelement <2 x i32> <i32 4, i32 6>, i32 5, i64 1
5+
%3 = shufflevector <2 x i32> <i32 7, i32 8>, <2 x i32> <i32 9, i32 10>, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
6+
ret void
7+
}

asm/testdata/rand.ll

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
@seed = global i32 0
2+
3+
declare i32 @abs(i32 %x)
4+
5+
define i32 @rand() {
6+
; <label>:0
7+
%1 = load i32, i32* @seed
8+
%2 = mul i32 %1, 22695477
9+
%3 = add i32 %2, 1
10+
store i32 %3, i32* @seed
11+
%4 = call i32 @abs(i32 %3)
12+
ret i32 %4
13+
}

asm/testdata/terminator.ll

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
define void @f(i8* %target) {
2+
; <label>:0
3+
indirectbr i8* %target, [label %foo]
4+
5+
foo:
6+
br label %bar
7+
8+
bar:
9+
ret void
10+
}

go.mod

+1-2
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,8 @@ module github.com/llir/llvm
22

33
require (
44
github.com/davecgh/go-spew v1.1.1 // indirect
5-
github.com/inspirer/textmapper v0.0.0-20181125231807-eb43c5f942db // indirect
65
github.com/kr/pretty v0.1.0
7-
github.com/llir/ll v0.0.0-20181130111604-9cdfb203cd91
6+
github.com/llir/ll v0.0.0-20181130124432-c921b17125cd
87
github.com/mewkiz/pkg v0.0.0-20181119122551-9729f4f4ff2b
98
github.com/mewmew/float v0.0.0-20181121163145-c0f786d7da73
109
github.com/mewspring/tools v0.0.0-20181107085742-4dbfa080ff87

go.sum

+4-5
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
22
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
3-
github.com/inspirer/textmapper v0.0.0-20181104204410-4bdb1fb0392a/go.mod h1:SpoIwXu07A3gguovN379QUCTHpUk1lhX2KIjVxpQOas=
4-
github.com/inspirer/textmapper v0.0.0-20181125231807-eb43c5f942db h1:lD1hYUUTWHTkvfd47FwN7HSdX5FqtQrTiJt6xgiofqo=
5-
github.com/inspirer/textmapper v0.0.0-20181125231807-eb43c5f942db/go.mod h1:SpoIwXu07A3gguovN379QUCTHpUk1lhX2KIjVxpQOas=
3+
github.com/inspirer/textmapper v0.0.0-20181130124126-b0668bb65599 h1:SDPDMZhyZUIINXmwIrsppsodX15kmkC8pvkE4SSQfMo=
4+
github.com/inspirer/textmapper v0.0.0-20181130124126-b0668bb65599/go.mod h1:SpoIwXu07A3gguovN379QUCTHpUk1lhX2KIjVxpQOas=
65
github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
76
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
87
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
98
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
109
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
11-
github.com/llir/ll v0.0.0-20181130111604-9cdfb203cd91 h1:G6FTmhhEmkGAssgbhrYpJrzBH9r1aaIno6D2r77dn5w=
12-
github.com/llir/ll v0.0.0-20181130111604-9cdfb203cd91/go.mod h1:a4JSuI2i1XkjU15LV11UxD243X6zJFuVeCHc63E/kGA=
10+
github.com/llir/ll v0.0.0-20181130124432-c921b17125cd h1:j+LP4uiuyIYUeT2k0EUq2I0RT2qoG/O+8ZMMZmf66PM=
11+
github.com/llir/ll v0.0.0-20181130124432-c921b17125cd/go.mod h1:cn5BEGWlH2Dt/Zh324p1jR2GT7wYWT6oVxc1T6ghYKU=
1312
github.com/mewkiz/pkg v0.0.0-20181119122551-9729f4f4ff2b h1:XHFBx9ZEVHnSCRiTz7w1a/NRBk9x7iyFiqnoN6R+vu8=
1413
github.com/mewkiz/pkg v0.0.0-20181119122551-9729f4f4ff2b/go.mod h1:bhmdGJSMX5WCIBFmk27tBnUvBJm5WxXmarBV41qvbNI=
1514
github.com/mewmew/float v0.0.0-20181121163145-c0f786d7da73 h1:bTqCgPsW3TFb9MFtvaOmGFWVhCmN3EmRw02zkchdOHo=

ir/testdata/eval.ll

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
@format = constant [6 x i8] c"%08X\0A\00"
2+
3+
define i32 @add(i32 %a, i32 %b) {
4+
; <label>: 0
5+
%result = add i32 %a, %b
6+
ret i32 %result
7+
}
8+
9+
define i32 @sub(i32, i32) {
10+
; <label>: 2
11+
%result = sub i32 %0, %1
12+
ret i32 %result
13+
}
14+
15+
define i32 @f(i32 %a, i32 %b) {
16+
; <label>: 0
17+
%tmp1 = add i32 %a, %b
18+
%tmp2 = sub i32 %tmp1, 1
19+
%tmp3 = mul i32 %tmp2, 12345678
20+
%tmp4 = udiv i32 %tmp3, 2
21+
%tmp5 = sdiv i32 %tmp4, 3
22+
%tmp6 = urem i32 %tmp5, 14594
23+
%tmp7 = srem i32 %tmp6, 1000
24+
%tmp8 = shl i32 %tmp7, 1
25+
%tmp9 = lshr i32 %tmp8, 2
26+
%tmp10 = mul i32 %tmp9, -1
27+
%tmp11 = ashr i32 %tmp10, 2
28+
%tmp12 = and i32 %tmp11, 249 ; 0b11111001
29+
%tmp13 = or i32 %tmp12, 4 ; 0b00000100
30+
%result = xor i32 %tmp13, 255 ; 0b11111111
31+
call i32(i8*, ...) @printf(i8* getelementptr ([6 x i8], [6 x i8]* @format, i32 0, i32 0), i32 %result)
32+
ret i32 %result
33+
}
34+
35+
define i32 @main() {
36+
; <label>:0
37+
%tmp1 = call i32 @add(i32 -1, i32 3)
38+
%tmp2 = call i32 @sub(i32 13, i32 5)
39+
%result = call i32 @f(i32 %tmp1, i32 %tmp2)
40+
ret i32 %result
41+
}
42+
43+
declare i32 @printf(i8*, ...)

0 commit comments

Comments
 (0)