mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-15 23:57:48 +00:00
Regression test for live range bug for call arguments.
llvm-svn: 3962
This commit is contained in:
parent
940f3fa91b
commit
d3a8e54af0
30
test/Regression/LLC/badCallArgLR.llvm.ll
Normal file
30
test/Regression/LLC/badCallArgLR.llvm.ll
Normal file
@ -0,0 +1,30 @@
|
||||
; This caused a problem because the argument of a call was defined by
|
||||
; the return value of another call that appears later in the code.
|
||||
; When processing the first call, the second call has not yet been processed
|
||||
; so no LiveRange has been created for its return value.
|
||||
;
|
||||
; llc dies in UltraSparcRegInfo::suggestRegs4CallArgs() with:
|
||||
; ERROR: In call instr, no LR for arg: 0x1009e0740
|
||||
;
|
||||
implementation ; Functions:
|
||||
|
||||
declare int %getInt(int);
|
||||
|
||||
int %main(int %argc, sbyte** %argv) {
|
||||
bb0: ;[#uses=0]
|
||||
br label %bb2
|
||||
|
||||
bb1:
|
||||
%reg222 = call int (int)* %getInt(int %reg218) ;; ARG #1 HAS NO LR
|
||||
%reg110 = add int %reg222, 1
|
||||
%b = setle int %reg110, 0
|
||||
br bool %b, label %bb2, label %bb3
|
||||
|
||||
bb2:
|
||||
%reg218 = call int (int)* %getInt(int %argc) ;; THIS CALL NOT YET SEEN
|
||||
br label %bb1
|
||||
|
||||
bb3:
|
||||
ret int %reg110
|
||||
}
|
||||
|
30
test/Regression/LLC/badCallArgLRLLVM.ll
Normal file
30
test/Regression/LLC/badCallArgLRLLVM.ll
Normal file
@ -0,0 +1,30 @@
|
||||
; This caused a problem because the argument of a call was defined by
|
||||
; the return value of another call that appears later in the code.
|
||||
; When processing the first call, the second call has not yet been processed
|
||||
; so no LiveRange has been created for its return value.
|
||||
;
|
||||
; llc dies in UltraSparcRegInfo::suggestRegs4CallArgs() with:
|
||||
; ERROR: In call instr, no LR for arg: 0x1009e0740
|
||||
;
|
||||
implementation ; Functions:
|
||||
|
||||
declare int %getInt(int);
|
||||
|
||||
int %main(int %argc, sbyte** %argv) {
|
||||
bb0: ;[#uses=0]
|
||||
br label %bb2
|
||||
|
||||
bb1:
|
||||
%reg222 = call int (int)* %getInt(int %reg218) ;; ARG #1 HAS NO LR
|
||||
%reg110 = add int %reg222, 1
|
||||
%b = setle int %reg110, 0
|
||||
br bool %b, label %bb2, label %bb3
|
||||
|
||||
bb2:
|
||||
%reg218 = call int (int)* %getInt(int %argc) ;; THIS CALL NOT YET SEEN
|
||||
br label %bb1
|
||||
|
||||
bb3:
|
||||
ret int %reg110
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user