llvm/test/Transforms/Inline/crash2.ll
David Majnemer 0c4f69f653 Remove the ScalarReplAggregates pass
Nearly all the changes to this pass have been done while maintaining and
updating other parts of LLVM.  LLVM has had another pass, SROA, which
has superseded ScalarReplAggregates for quite some time.

Differential Revision: http://reviews.llvm.org/D21316

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@272737 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-15 00:19:09 +00:00

30 lines
802 B
LLVM

; RUN: opt -inline -sroa -max-cg-scc-iterations=1 -disable-output < %s
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
target triple = "x86_64-apple-darwin10.3"
declare i8* @f1(i8*) ssp align 2
define linkonce_odr void @f2(i8* %t) inlinehint ssp {
entry:
unreachable
}
define linkonce_odr void @f3(void (i8*)* %__f) ssp {
entry:
%__f_addr = alloca void (i8*)*, align 8
store void (i8*)* %__f, void (i8*)** %__f_addr
%0 = load void (i8*)*, void (i8*)** %__f_addr, align 8
call void %0(i8* undef)
call i8* @f1(i8* undef) ssp
unreachable
}
define linkonce_odr void @f4(i8* %this) ssp align 2 {
entry:
%0 = alloca i32
call void @f3(void (i8*)* @f2) ssp
ret void
}