Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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)

AltStyle によって変換されたページ (->オリジナル) /