mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-11-01 15:17:25 +00:00
--- Reverse-merging (from foreign repository) r67049 into '.':
U test/CodeGen/X86/2009-03-13-PHIElimBug.ll
D test/CodeGen/X86/2009-03-16-PHIElimInLPad.ll
U lib/CodeGen/PHIElimination.cpp
r67049 was causing this failure:
Running /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/test/CodeGen/X86/dg.exp ...
FAIL: /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/test/CodeGen/X86/2009-03-13-PHIElimBug.ll for PR3784
Failed with exit(1) at line 1
while running: llvm-as < /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/test/CodeGen/X86/2009-03-13-PHIElimBug.ll | llc -march=x86 | /usr/bin/grep -A 2 {call f} | /usr/bin/grep movl
child process exited abnormally
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67051 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -1,28 +1,37 @@
|
||||
; RUN: llvm-as < %s | llc -march=x86 | grep -A 2 {call f} | grep movl
|
||||
; Check the register copy comes after the call to f and before the call to g
|
||||
; RUN: llvm-as < %s | llc -mtriple=i386-pc-linux-gnu -stats |& grep phielim | grep {Number of EH try blocks skipped} | grep 4
|
||||
; PR3784
|
||||
|
||||
declare i32 @f()
|
||||
%struct.c38002a__arr___XUB = type { i32, i32 }
|
||||
%struct.c38002a__arr_name = type { [0 x i32]*, %struct.c38002a__arr___XUB* }
|
||||
%struct.c38002a__rec = type { i32, %struct.c38002a__arr_name }
|
||||
|
||||
declare i32 @g()
|
||||
|
||||
define i32 @phi() {
|
||||
define void @_ada_c38002a() {
|
||||
entry:
|
||||
%a = call i32 @f() ; <i32> [#uses=1]
|
||||
%b = invoke i32 @g()
|
||||
to label %cont unwind label %lpad ; <i32> [#uses=1]
|
||||
%0 = invoke i8* @__gnat_malloc(i32 12)
|
||||
to label %invcont unwind label %lpad ; <i8*> [#uses=0]
|
||||
|
||||
cont: ; preds = %entry
|
||||
%x = phi i32 [ %b, %entry ] ; <i32> [#uses=0]
|
||||
%aa = call i32 @g() ; <i32> [#uses=1]
|
||||
%bb = invoke i32 @g()
|
||||
to label %cont2 unwind label %lpad ; <i32> [#uses=1]
|
||||
invcont: ; preds = %entry
|
||||
%1 = invoke i8* @__gnat_malloc(i32 20)
|
||||
to label %invcont1 unwind label %lpad ; <i8*> [#uses=0]
|
||||
|
||||
cont2: ; preds = %cont
|
||||
%xx = phi i32 [ %bb, %cont ] ; <i32> [#uses=1]
|
||||
ret i32 %xx
|
||||
invcont1: ; preds = %invcont
|
||||
%2 = invoke i32 @report__ident_int(i32 2)
|
||||
to label %.noexc unwind label %lpad ; <i32> [#uses=0]
|
||||
|
||||
lpad: ; preds = %cont, %entry
|
||||
%y = phi i32 [ %a, %entry ], [ %aa, %cont ] ; <i32> [#uses=1]
|
||||
ret i32 %y
|
||||
.noexc: ; preds = %invcont1
|
||||
%3 = invoke i32 @report__ident_int(i32 3)
|
||||
to label %.noexc88 unwind label %lpad ; <i32> [#uses=0]
|
||||
|
||||
.noexc88: ; preds = %.noexc
|
||||
unreachable
|
||||
|
||||
lpad: ; preds = %.noexc, %invcont1, %invcont, %entry
|
||||
%r.0 = phi %struct.c38002a__rec* [ null, %entry ], [ null, %invcont ], [ null, %invcont1 ], [ null, %.noexc ] ; <%struct.c38002a__rec*> [#uses=1]
|
||||
%4 = getelementptr %struct.c38002a__rec* %r.0, i32 0, i32 0 ; <i32*> [#uses=1]
|
||||
%5 = load i32* %4, align 4 ; <i32> [#uses=0]
|
||||
ret void
|
||||
}
|
||||
|
||||
declare i32 @report__ident_int(i32)
|
||||
|
||||
declare i8* @__gnat_malloc(i32)
|
||||
|
||||
Reference in New Issue
Block a user