Skip to content

Commit 650b4ef

Browse files
update outputs for sieve
1 parent 4f93631 commit 650b4ef

File tree

5 files changed

+684
-0
lines changed

5 files changed

+684
-0
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
### Notes
2+
3+
Flags used:
4+
5+
```
6+
--dump-after-local-sched -S --cpu x86_64_v2 --abi SystemV
7+
```
8+
9+
Outputs from Simple ch22 and EZ
Lines changed: 203 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,203 @@
1+
START: [[ ]]
2+
13 Start ____ ____ ____ [[ 32 38 114 100 133 106 12 ]] [ Ctrl, #TOP, int]
3+
4+
L12: [[ START ]]
5+
12 sieve ____ 13 [[ 31 37 99 36 33 30 29 35 28 63 156 157 11 ]] Ctrl
6+
31 N 12 32 [[ 30 36 58 60 82 ]] int
7+
37 $mem 12 38 [[ 35 35 89 ]] #BOT
8+
99 $rpc 12 100 [[ 2 ]] $[ALL]
9+
63 #4 12 [[ 62 ]] 4
10+
157 #1 12 [[ 55 ]] 1
11+
36 lea 12 ____ 31 [[ 35 ]] int
12+
33 #2 12 [[ 30 52 ]] 2
13+
35 new_ary 12 36 37 37 [[ 34 39 44 ]] [ Ctrl, *![int], #2:u32, #3:int]
14+
34 $2 35 [[ 28 ]] #2:u32
15+
39 $3 35 [[ 28 ]] #3:int
16+
44 [int] 35 [[ 42 24 71 ]] *[int]
17+
30 div 12 31 33 [[ 29 ]] int
18+
29 lea 12 ____ 30 [[ 28 ]] int
19+
156 #0 12 [[ 46 87 ]] 0
20+
28 new_ary 12 29 34 39 [[ 27 43 93 ]] [ Ctrl, *![int], #2:u32, #3:int]
21+
27 $3 28 [[ 26 ]] #3:int
22+
43 [int] 28 [[ 42 75 98 ]] *[int]
23+
93 $2 28 [[ 91 ]] #2:u32
24+
25+
L133: [[ START ]]
26+
133 main ____ 13 [[ 134 155 135 132 ]] Ctrl
27+
134 $mem 133 38 [[ 132 ]] #BOT
28+
155 $rpc 133 100 [[ 126 ]] $[ALL]
29+
135 #20 133 [[ 132 ]] 20
30+
132 call 133 134 135 [[ 131 ]] Ctrl
31+
32+
L106: [[ START ]]
33+
106 eq ____ 13 [[ 112 113 118 121 125 47 105 ]] Ctrl
34+
112 $mem 106 38 [[ 110 117 123 ]] #BOT
35+
113 a 106 114 [[ 110 ]] *[int]
36+
125 $rpc 106 100 [[ 101 ]] $[ALL]
37+
121 n 106 32 [[ 119 ]] int
38+
118 b 106 114 [[ 117 ]] *[int]
39+
47 #0 106 [[ 124 115 ]] 0
40+
41+
LOOP11: [[ L12 L14 ]]
42+
11 Loop ____ 12 14 [[ 26 46 52 62 60 10 ]] Ctrl
43+
26 Phi_$3 11 27 40 [[ 24 41 73 ]] #3:Bot
44+
46 Phi_npr 11 156 48 [[ 45 48 76 ]] int
45+
52 Phi_p 11 33 53 [[ 51 79 ]] int
46+
62 Phi_p 11 63 64 [[ 60 ]] int
47+
60 cmp 11 62 31 [[ 10 ]] bool
48+
10 j< 11 60 [[ 9 22 ]] [ Ctrl, Ctrl]
49+
50+
LOOP105: [[ L106 L107 ]]
51+
105 Loop ____ 106 107 [[ 115 119 104 ]] Ctrl
52+
115 Phi_i 105 47 116 [[ 110 116 117 119 ]] int
53+
119 cmp 105 115 121 [[ 104 ]] bool
54+
104 j< 105 119 [[ 103 109 ]] [ Ctrl, Ctrl]
55+
56+
L131: [[ L133 ]]
57+
131 CallEnd 132 [[ 130 137 151 ]] [ Ctrl, #BOT, *![int]]
58+
137 $mem 131 [[ 136 139 139 ]] #BOT
59+
151 #2 131 [[ 129 ]] *[int]
60+
61+
L9: [[ LOOP11 ]]
62+
9 False 10 [[ 8 ]] Ctrl
63+
64+
L130: [[ L131 ]]
65+
130 $ctrl 131 [[ 140 152 139 148 147 146 145 144 143 142 141 136 129 ]] Ctrl
66+
148 st8 130 149 150 ____ ____ [[ 147 ]] #3:int
67+
147 st8 130 148 150 ____ ____ [[ 146 ]] #3:int
68+
146 st8 130 147 150 ____ ____ [[ 145 ]] #3:int
69+
145 st8 130 146 150 ____ ____ [[ 144 ]] #3:int
70+
144 st8 130 145 150 ____ ____ [[ 143 ]] #3:int
71+
143 st8 130 144 150 ____ ____ [[ 142 ]] #3:int
72+
140 #72 130 [[ 139 ]] 72
73+
142 st8 130 143 150 ____ ____ [[ 141 ]] #3:int
74+
141 st8 130 142 150 ____ ____ [[ 136 ]] #3:int
75+
139 new_ary 130 140 137 137 [[ 138 149 150 ]] [ Ctrl, *![int], #2:u32, #3:int]
76+
138 $2 139 [[ 136 ]] #2:u32
77+
149 $3 139 [[ 148 ]] #3:int
78+
150 [int] 139 [[ 148 147 146 145 144 143 142 141 129 ]] *[int]
79+
136 ALLMEM 130 137 138 141 [[ 129 ]] #BOT
80+
152 #8 130 [[ 129 ]] 8
81+
129 call 130 136 151 150 152 [[ 128 ]] Ctrl
82+
83+
L109: [[ LOOP105 ]]
84+
109 True 104 [[ 117 110 108 ]] Ctrl
85+
117 ld8 109 112 118 115 [[ 110 ]] int
86+
110 cmp8 109 112 113 115 117 [[ 108 ]] bool
87+
108 j== 109 110 [[ 107 122 ]] [ Ctrl, Ctrl]
88+
89+
L22: [[ LOOP11 ]]
90+
22 True 10 [[ 21 ]] Ctrl
91+
92+
L103: [[ LOOP105 ]]
93+
103 False 104 [[ 56 102 ]] Ctrl
94+
56 #1 103 [[ 124 ]] 1
95+
96+
LOOP8: [[ L9 L65 ]]
97+
8 Loop ____ 9 65 [[ 73 76 79 82 7 ]] Ctrl
98+
73 Phi_$3 8 26 74 [[ 71 75 74 91 ]] #BOT
99+
76 Phi_npr 8 46 77 [[ 75 78 77 85 92 ]] int
100+
79 Phi_p 8 52 80 [[ 75 80 71 82 ]] int
101+
82 cmp 8 79 31 [[ 7 ]] bool
102+
7 j< 8 82 [[ 6 70 ]] [ Ctrl, Ctrl]
103+
104+
LOOP21: [[ L22 L23 ]]
105+
21 Loop ____ 22 23 [[ 51 53 24 20 ]] Ctrl
106+
51 Phi_p 21 52 53 [[ 50 53 54 55 24 ]] int
107+
24 test8 21 26 44 51 ____ [[ 20 ]]
108+
20 j!= 21 24 [[ 17 23 ]] [ Ctrl, Ctrl]
109+
53 inc 21 51 [[ 52 51 64 64 ]] int
110+
111+
L107: [[ L109 ]]
112+
107 True 108 [[ 116 105 ]] Ctrl
113+
116 inc 107 115 [[ 115 ]] int
114+
115+
L122: [[ L109 ]]
116+
122 False 108 [[ 102 ]] Ctrl
117+
118+
L128: [[ L130 ]]
119+
128 CallEnd 129 [[ 127 153 154 ]] [ Ctrl, #BOT, bool]
120+
153 $mem 128 [[ 126 ]] #BOT
121+
154 #2 128 [[ 126 ]] bool
122+
123+
L6: [[ LOOP8 ]]
124+
6 False 7 [[ 92 91 5 ]] Ctrl
125+
92 lea 6 ____ 76 [[ 91 ]] int
126+
91 new_ary 6 92 93 73 [[ 90 95 97 ]] [ Ctrl, *![int], #2:u32, #3:int]
127+
90 $2 91 [[ 89 ]] #2:u32
128+
95 $3 91 [[ 94 ]] #3:int
129+
97 [int] 91 [[ 96 2 ]] *[int]
130+
131+
L102: [[ L103 L122 ]]
132+
102 Region ____ 103 122 [[ 124 123 101 ]] Ctrl
133+
124 Phi_res 102 56 47 [[ 101 ]] bool
134+
123 ALLMEM 102 112 ____ ____ [[ 101 ]] #BOT
135+
101 Return 102 123 124 125 [[ 1 ]] [ Ctrl, #BOT, bool]
136+
137+
L17: [[ LOOP21 ]]
138+
17 False 20 [[ 50 16 ]] Ctrl
139+
50 shli 17 51 [[ 49 ]] int
140+
141+
L70: [[ LOOP8 ]]
142+
70 True 7 [[ 71 69 ]] Ctrl
143+
71 test8 70 73 44 79 ____ [[ 69 ]]
144+
69 j!= 70 71 [[ 66 81 ]] [ Ctrl, Ctrl]
145+
146+
L127: [[ L128 ]]
147+
127 $ctrl 128 [[ 126 ]] Ctrl
148+
126 Return 127 153 154 155 [[ 1 ]] [ Ctrl, #BOT, bool]
149+
150+
LOOP5: [[ L6 L84 ]]
151+
5 Loop ____ 6 84 [[ 87 94 85 4 ]] Ctrl
152+
87 Phi_j 5 156 88 [[ 85 88 96 98 ]] int
153+
94 Phi_$3 5 95 96 [[ 89 96 98 ]] #3:Bot
154+
85 cmp 5 87 76 [[ 4 ]] bool
155+
4 j< 5 85 [[ 3 84 ]] [ Ctrl, Ctrl]
156+
157+
LOOP16: [[ L17 L57 ]]
158+
16 Loop ____ 17 57 [[ 41 42 45 49 55 40 58 15 ]] Ctrl
159+
41 Phi_$3 16 26 40 [[ 40 ]] #3:Bot
160+
42 Phi_$3 16 43 44 [[ 40 ]] *[int]
161+
45 Phi_$3 16 46 49 [[ 40 ]] int
162+
49 Phi_i 16 50 54 [[ 45 54 58 ]] int
163+
55 Phi_$3 16 51 157 [[ 40 ]] int
164+
58 cmp 16 49 31 [[ 15 ]] bool
165+
15 j< 16 58 [[ 14 57 ]] [ Ctrl, Ctrl]
166+
40 st8 16 41 42 45 55 [[ 26 41 ]] #3:Bot
167+
168+
L66: [[ L70 ]]
169+
66 False 69 [[ 75 78 65 ]] Ctrl
170+
78 inc 66 76 [[ 77 ]] int
171+
75 st8 66 73 43 76 79 [[ 74 ]] #3:Bot
172+
173+
L81: [[ L70 ]]
174+
81 True 69 [[ 65 ]] Ctrl
175+
176+
L3: [[ LOOP5 ]]
177+
3 False 4 [[ 89 2 ]] Ctrl
178+
89 ALLMEM 3 37 90 94 [[ 2 ]] #BOT
179+
2 Return 3 89 97 99 [[ 1 ]] [ Ctrl, #BOT, *![int]]
180+
181+
L84: [[ LOOP5 ]]
182+
84 True 4 [[ 98 96 88 5 ]] Ctrl
183+
88 inc 84 87 [[ 87 ]] int
184+
98 ld8 84 94 43 87 [[ 96 ]] int
185+
96 st8 84 94 97 87 98 [[ 94 ]] #3:Bot
186+
187+
L57: [[ LOOP16 ]]
188+
57 True 15 [[ 54 16 ]] Ctrl
189+
54 add 57 49 51 [[ 49 ]] int
190+
191+
L14: [[ LOOP16 ]]
192+
14 False 15 [[ 48 64 11 ]] Ctrl
193+
64 mul 14 53 53 [[ 62 ]] int
194+
48 inc 14 46 [[ 46 ]] int
195+
196+
L65: [[ L66 L81 ]]
197+
65 Region ____ 66 81 [[ 74 77 80 8 ]] Ctrl
198+
74 Phi_$3 65 75 73 [[ 73 ]] #BOT
199+
77 Phi_npr 65 78 76 [[ 76 ]] int
200+
80 inc 65 79 [[ 79 ]] int
201+
202+
L1: [[ ]]
203+
1 Stop 2 101 126 [[ ]] Bot
Lines changed: 175 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,175 @@
1+
---sieve { int -> *![int] #1}---------------------------
2+
0000 4883EC28 subi rsp -= #40
3+
N:rdi
4+
0004 48895C2418 mov [rsp+24] = rbx // def/loop #3
5+
0009 48896C2410 mov [rsp+16] = rbp // def/loop #3
6+
000E 4C89642408 mov [rsp+8] = r12 // def/loop #3
7+
0013 4C892C24 mov [rsp+0] = r13 // def/loop #3
8+
0017 4C8BE7 mov r12 = rdi // def/empty1 #0
9+
001A 4A8D34E508 lea rsi = r12<<3 + #8
10+
001F 000000
11+
0022 B902000000 ldi rcx = #2
12+
0027 488BC7 mov rax = rdi // use/empty1 #0
13+
002A 489948F7F9 div rax = rax / rcx // kill rdx
14+
002F 488D1CC508 lea rbx = rax<<3 + #8
15+
0034 000000
16+
0037 BF01000000 alloc ldi rcx = #1
17+
003C E800000000 call #calloc
18+
0041 4C8BE8 mov r13 = rax // def/empty1 #2
19+
0044 488BF3 mov rsi = rbx // use/empty1 #1
20+
0047 BF01000000 alloc ldi rcx = #1
21+
004C E800000000 call #calloc
22+
0051 488BD8 mov rbx = rax // def/empty1 #2
23+
0054 4D33C9 xor r9,r9
24+
0057 B802000000 ldi rax = #2
25+
005C BA04000000 ldi rdx = #4
26+
LOOP11:
27+
nprimes:r9,p:rax,p:rdx
28+
0061 488BC8 mov rcx = rax // def/self #1
29+
0064 493BD4 cmp rdx, r12
30+
0067 7D59 j>= LOOP8 // L22
31+
L22:
32+
LOOP21:
33+
p:rcx
34+
0069 488BC1 mov rax = rcx // use/self/use #1
35+
006C 48FFC0 inc rax += #1
36+
006F 498BD5 mov rdx = r13 // use/empty1 #2
37+
0072 48817CCA08 test8 , [rdx+rcx*8+8]
38+
0077 0000000000000000
39+
007F 7405 j== L17 // L23
40+
L23:
41+
0081 488BC8 mov rcx = rax // use/self/use #1
42+
0084 EBE3 jmp LOOP21
43+
L244:
44+
L17:
45+
0086 488BF1 mov rsi = rcx // use/self/two #1
46+
0089 48C1E601 shli rsi <<= #1
47+
008D 4D8BC1 mov r8 = r9 // use/self/phi #1
48+
0090 488BF9 mov rdi = rcx // use/self/use #1
49+
0093 488BD3 mov rdx = rbx // use/empty1 #2
50+
LOOP16:
51+
$3:rdx,$3:r8,i:rsi,$3:rdi
52+
0096 488BEE mov rbp = rsi // def/self #1
53+
0099 4A897CC208 st8 [rdx+r8*8+8],rdi
54+
009E 493BEC cmp rbp, r12
55+
00A1 7D13 j>= L14 // L57
56+
L57:
57+
00A3 488BF5 mov rsi = rbp // use/self/use #1
58+
00A6 4803F1 add rsi += rcx
59+
00A9 4C8BC5 mov r8 = rbp // use/self/use #1
60+
00AC BF01000000 ldi rdi = #1
61+
00B1 498BD5 mov rdx = r13 // use/self/use #1
62+
00B4 EBE0 jmp LOOP16
63+
L243:
64+
L14:
65+
00B6 49FFC1 inc r9 += #1
66+
00B9 488BD0 mov rdx = rax // use/self/use #1
67+
00BC 480FAFD0 mul rdx = rdx * rax
68+
00C0 EB9F jmp LOOP11
69+
L242:
70+
L9:
71+
LOOP8:
72+
nprimes:r9,p:rcx
73+
00C2 498BE9 mov rbp = r9 // def/self #1
74+
00C5 493BCC cmp rcx, r12
75+
00C8 7D24 j>= L6 // L70
76+
L70:
77+
00CA 49817CCD08 test8 , [r13+rcx*8+8]
78+
00CF 0000000000000000
79+
00D7 7405 j== L66 // L81
80+
L81:
81+
00D9 4C8BCD mov r9 = rbp // use/self/use #1
82+
00DC EB0B jmp L65
83+
L241:
84+
L66:
85+
00DE 48894CEB08 st8 [rbx+rbp*8+8],rcx
86+
00E3 4C8BCD mov r9 = rbp // use/self/use #1
87+
00E6 49FFC1 inc r9 += #1
88+
L65:
89+
nprimes:r9
90+
00E9 48FFC1 inc rcx += #1
91+
00EC EBD4 jmp LOOP8
92+
L240:
93+
L6:
94+
00EE 488D34ED08 lea rsi = rbp<<3 + #8
95+
00F3 000000
96+
00F6 BF01000000 alloc ldi rcx = #1
97+
00FB E800000000 call #calloc
98+
0100 33C9 xor rcx,rcx
99+
LOOP5:
100+
j:rcx
101+
0102 483BCD cmp rcx, rbp
102+
0105 7D0F j>= L3 // L84
103+
L84:
104+
0107 488B54CB08 ld8 rdx,[rbx+rcx*8+8]
105+
010C 488954C808 st8 [rax+rcx*8+8],rdx
106+
0111 48FFC1 inc rcx += #1
107+
0114 EBEC jmp LOOP5
108+
L239:
109+
L3:
110+
0116 4C8B2C24 mov r13 = [rsp+0] // use/loop/use #3
111+
011A 4C8B642408 mov r12 = [rsp+8] // use/loop/use #3
112+
011F 488B6C2410 mov rbp = [rsp+16] // use/loop/use #3
113+
0124 488B5C2418 mov rbx = [rsp+24] // use/loop/use #3
114+
0129 4883C428C3 addi rsp += #40
115+
012E ret
116+
---{ int -> *![int] #1}---------------------------
117+
118+
---eq { *![int] *![int] int -> int #0}---------------------------
119+
a:rdi,b:rsi,n:rdx
120+
0130 33C0 xor rax,rax
121+
LOOP105:
122+
i:rax
123+
0132 483BC2 cmp rax, rdx
124+
0135 7D15 j>= L103 // L109
125+
L109:
126+
0137 488B4CC608 ld8 rcx,[rsi+rax*8+8]
127+
013C 48394CC708 cmp8 rcx, [rdi+rax*8+8]
128+
0141 7505 j!= L122 // L107
129+
L107:
130+
0143 48FFC0 inc rax += #1
131+
0146 EBEA jmp LOOP105
132+
L238:
133+
L122:
134+
0148 33C0 xor rax,rax
135+
014A EB05 jmp L102
136+
L237:
137+
L103:
138+
014C B801000000 ldi rax = #1
139+
L102:
140+
result:rax
141+
0151 C3 ret
142+
---{ *![int] *![int] int -> int #0}---------------------------
143+
144+
---main { -> int #0}---------------------------
145+
0160 4883EC08 subi rsp -= #8
146+
0164 BF14000000 ldi rdi = #20
147+
0169 E892FEFFFF call sieve rdi
148+
016E 48890424 mov [rsp+0] = rax // def/empty1 #1
149+
0172 BE48000000 ldi rsi = #72
150+
0177 BF01000000 alloc ldi rcx = #1
151+
017C E800000000 call #calloc
152+
0181 488BC8 mov rcx = rax // def/empty1 #0
153+
0184 48C7410802 st8 [rcx+8],#2
154+
0189 000000
155+
018C 48C7411003 st8 [rcx+16],#3
156+
0191 000000
157+
0194 48C7411805 st8 [rcx+24],#5
158+
0199 000000
159+
019C 48C7412007 st8 [rcx+32],#7
160+
01A1 000000
161+
01A4 48C741280B st8 [rcx+40],#11
162+
01A9 000000
163+
01AC 48C741300D st8 [rcx+48],#13
164+
01B1 000000
165+
01B4 48C7413811 st8 [rcx+56],#17
166+
01B9 000000
167+
01BC 48C7414013 st8 [rcx+64],#19
168+
01C1 000000
169+
01C4 488B3C24 mov rdi = [rsp+0] // use/empty1 #0
170+
01C8 488BF0 mov rsi = rax // use/empty1 #0
171+
01CB BA08000000 ldi rdx = #8
172+
01D0 E85BFFFFFF call eq rdi rsi rdx
173+
01D5 4883C408C3 addi rsp += #8
174+
01DA ret
175+
---{ -> int #0}---------------------------

0 commit comments

Comments
 (0)