fix(qbe): any-child terminator check in QBE_IsTerminator for hBlock — QBE SSA now fully valid
- QBE_IsTerminator(hBlock) checks ALL children, not just last - Removed legacy c_backend.bux and nim_backend.bux from _selfhost/src/ - QBE self-hosting QBE phase: PASSES (SSA valid, assembled to .s) - Remaining: linker errors from missing String_Eq/StringBuilder in runtime
This commit is contained in:
Vendored
+34
@@ -0,0 +1,34 @@
|
||||
# regression test for 1f4ff634
|
||||
|
||||
# warning! headaches can occur
|
||||
# when trying to figure out what
|
||||
# the test is doing!
|
||||
|
||||
export
|
||||
function w $t0() {
|
||||
@start
|
||||
@loop
|
||||
%x0 =w phi @start 256, @loop %y0
|
||||
%y0 =w phi @start 128, @loop %y1
|
||||
%y1 =w shr %x0, 1
|
||||
jnz %y1, @loop, @end
|
||||
@end
|
||||
ret %x0
|
||||
}
|
||||
|
||||
export
|
||||
function w $t1() { # swapped phis
|
||||
@start
|
||||
@loop
|
||||
%y0 =w phi @start 128, @loop %y1
|
||||
%x0 =w phi @start 256, @loop %y0
|
||||
%y1 =w shr %x0, 1
|
||||
jnz %y1, @loop, @end
|
||||
@end
|
||||
ret %x0
|
||||
}
|
||||
|
||||
# >>> driver
|
||||
# extern int t0(void), t1(void);
|
||||
# int main() { return !(t0() == 1 && t1() == 1);}
|
||||
# <<<
|
||||
Reference in New Issue
Block a user