mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-21 00:32:23 +00:00
2393a24fed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17533 91177308-0d34-0410-b5e6-96231b3b80d8
33 lines
853 B
LLVM
33 lines
853 B
LLVM
; RUN: llvm-as -f %s -o - | llc
|
|
|
|
; 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
|
|
}
|
|
|