[llvm-commits] CVS: llvm/test/Regression/Jello/2003-08-23-RegisterAllocatePhysReg.ll

Chris Lattner lattner at cs.uiuc.edu
Sat Aug 23 18:40:01 PDT 2003


Changes in directory llvm/test/Regression/Jello:

2003-08-23-RegisterAllocatePhysReg.ll added (r1.1)

---
Log message:

new testcase distilled from 176.gcc


---
Diffs of the changes:

Index: llvm/test/Regression/Jello/2003-08-23-RegisterAllocatePhysReg.ll
diff -c /dev/null llvm/test/Regression/Jello/2003-08-23-RegisterAllocatePhysReg.ll:1.1
*** /dev/null	Sat Aug 23 18:39:09 2003
--- llvm/test/Regression/Jello/2003-08-23-RegisterAllocatePhysReg.ll	Sat Aug 23 18:38:59 2003
***************
*** 0 ****
--- 1,30 ----
+ ; This testcase exposes a bug in the local register allocator where it runs out
+ ; of registers (due to too many overlapping live ranges), but then attempts to
+ ; use the ESP register (which is not allocatable) to hold a value.
+ 
+ int %main(uint %A) {
+ 	%Ap2 = alloca uint, uint %A   ; ESP gets used again...
+ 	%B = add uint %A, 1 	      ; Produce lots of overlapping live ranges
+ 	%C = add uint %A, 2
+ 	%D = add uint %A, 3
+ 	%E = add uint %A, 4
+ 	%F = add uint %A, 5
+ 	%G = add uint %A, 6
+ 	%H = add uint %A, 7
+ 	%I = add uint %A, 8
+ 	%J = add uint %A, 9
+ 	%K = add uint %A, 10
+ 
+ 	store uint %A, uint *%Ap2      ; Uses of all of the values
+ 	store uint %B, uint *%Ap2
+ 	store uint %C, uint *%Ap2
+ 	store uint %D, uint *%Ap2
+ 	store uint %E, uint *%Ap2
+ 	store uint %F, uint *%Ap2
+ 	store uint %G, uint *%Ap2
+ 	store uint %H, uint *%Ap2
+ 	store uint %I, uint *%Ap2
+ 	store uint %J, uint *%Ap2
+ 	store uint %K, uint *%Ap2
+ 	ret int 0
+ }





More information about the llvm-commits mailing list