From 0188ce454344a28e468d484bd3865c9cde818fd5 Mon Sep 17 00:00:00 2001 From: "Vikram S. Adve" Date: Sat, 28 Sep 2002 16:51:47 +0000 Subject: Regression test for live range bug for call arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3962 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/CodeGen/Generic/badCallArgLRLLVM.ll | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 test/CodeGen/Generic/badCallArgLRLLVM.ll (limited to 'test/CodeGen/Generic/badCallArgLRLLVM.ll') diff --git a/test/CodeGen/Generic/badCallArgLRLLVM.ll b/test/CodeGen/Generic/badCallArgLRLLVM.ll new file mode 100644 index 0000000000..0a29e6de18 --- /dev/null +++ b/test/CodeGen/Generic/badCallArgLRLLVM.ll @@ -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 +} + -- cgit v1.2.3