Imported Upstream version 5.18.0.167

Former-commit-id: 289509151e0fee68a1b591a20c9f109c3c789d3a
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2018-10-20 08:25:10 +00:00
parent e19d552987
commit b084638f15
28489 changed files with 184 additions and 3866856 deletions

View File

@ -1,17 +0,0 @@
; Induction variable pass is doing bad things with pointer induction vars,
; trying to do arithmetic on them directly.
;
; RUN: opt < %s -indvars
;
define void @test(i32 %A, i32 %S, i8* %S.upgrd.1) {
; <label>:0
br label %Loop
Loop: ; preds = %Loop, %0
%PIV = phi i8* [ %S.upgrd.1, %0 ], [ %PIVNext.upgrd.3, %Loop ] ; <i8*> [#uses=1]
%PIV.upgrd.2 = ptrtoint i8* %PIV to i64 ; <i64> [#uses=1]
%PIVNext = add i64 %PIV.upgrd.2, 8 ; <i64> [#uses=1]
%PIVNext.upgrd.3 = inttoptr i64 %PIVNext to i8* ; <i8*> [#uses=1]
br label %Loop
}

View File

@ -1,17 +0,0 @@
; This is a test case for the expression analysis code, not really indvars.
; It was assuming any constant of int type was a ConstantInteger.
;
; RUN: opt < %s -indvars
@X = global i32 7 ; <i32*> [#uses=1]
define void @test(i32 %A) {
; <label>:0
br label %Loop
Loop: ; preds = %Loop, %0
%IV = phi i32 [ %A, %0 ], [ %IVNext, %Loop ] ; <i32> [#uses=1]
%IVNext = add i32 %IV, ptrtoint (i32* @X to i32) ; <i32> [#uses=1]
br label %Loop
}

View File

@ -1,20 +0,0 @@
; RUN: opt -S -indvars < %s | FileCheck %s
; The indvar simplification code should ensure that the first PHI in the block
; is the canonical one!
define i32 @test() {
; <label>:0
br label %Loop
Loop: ; preds = %Loop, %0
; CHECK: Loop:
; CHECK-NEXT: Canonical
%NonIndvar = phi i32 [ 200, %0 ], [ %NonIndvarNext, %Loop ] ; <i32> [#uses=1]
%Canonical = phi i32 [ 0, %0 ], [ %CanonicalNext, %Loop ] ; <i32> [#uses=2]
store i32 %Canonical, i32* null
%NonIndvarNext = sdiv i32 %NonIndvar, 2 ; <i32> [#uses=1]
%CanonicalNext = add i32 %Canonical, 1 ; <i32> [#uses=1]
br label %Loop
}

View File

@ -1,18 +0,0 @@
; RUN: opt < %s -indvars -disable-output
define void @test() {
entry:
%inc.2 = add i32 1, 1 ; <i32> [#uses=1]
br i1 false, label %no_exit, label %loopexit
no_exit: ; preds = %no_exit, %entry
%j.0.pn = phi i32 [ %inc.3, %no_exit ], [ %inc.2, %entry ] ; <i32> [#uses=1]
%k.0.pn = phi i32 [ %inc.4, %no_exit ], [ 1, %entry ] ; <i32> [#uses=1]
%inc.3 = add i32 %j.0.pn, 1 ; <i32> [#uses=1]
%inc.4 = add i32 %k.0.pn, 1 ; <i32> [#uses=1]
br i1 undef, label %no_exit, label %loopexit
loopexit: ; preds = %no_exit, %entry
ret void
}

View File

@ -1,24 +0,0 @@
; RUN: opt < %s -indvars -disable-output
define void @_ZN17CoinFactorization7cleanupEv() {
entry:
br i1 false, label %loopexit.14, label %cond_continue.3
cond_continue.3: ; preds = %entry
ret void
loopexit.14: ; preds = %entry
%tmp.738 = sub i32 0, 0 ; <i32> [#uses=1]
br i1 undef, label %no_exit.15.preheader, label %loopexit.15
no_exit.15.preheader: ; preds = %loopexit.14
br label %no_exit.15
no_exit.15: ; preds = %no_exit.15, %no_exit.15.preheader
%highC.0 = phi i32 [ %tmp.738, %no_exit.15.preheader ], [ %dec.0, %no_exit.15 ] ; <i32> [#uses=1]
%dec.0 = add i32 %highC.0, -1 ; <i32> [#uses=1]
br i1 undef, label %no_exit.15, label %loopexit.15
loopexit.15: ; preds = %no_exit.15, %loopexit.14
ret void
}

View File

@ -1,26 +0,0 @@
; RUN: opt < %s -indvars -disable-output
define void @test() {
br label %endif.0.i
endif.0.i: ; preds = %0
br i1 false, label %then.3.i, label %endif.3.i
then.3.i: ; preds = %endif.0.i
br label %endif.3.i
endif.3.i: ; preds = %then.3.i, %endif.0.i
%inxm.0.i = phi i32 [ 8, %then.3.i ], [ 0, %endif.0.i ] ; <i32> [#uses=1]
%doinner.1.i = phi i32 [ 0, %then.3.i ], [ 0, %endif.0.i ] ; <i32> [#uses=0]
br label %loopentry.2.i
loopentry.2.i: ; preds = %no_exit.2.i, %endif.3.i
%inxk.0.i = phi i32 [ %tmp.210.i, %no_exit.2.i ], [ 0, %endif.3.i ] ; <i32> [#uses=1]
br label %no_exit.2.i
no_exit.2.i: ; preds = %loopentry.2.i
%tmp.210.i = sub i32 %inxk.0.i, %inxm.0.i ; <i32> [#uses=2]
%tmp.213.i = add i32 %tmp.210.i, 0 ; <i32> [#uses=0]
br label %loopentry.2.i
}

View File

@ -1,291 +0,0 @@
; RUN: opt < %s -indvars -disable-output
; ModuleID = '2004-04-05-InvokeCastCrash.ll'
%struct.__false_type = type { i8 }
%"struct.__gnu_cxx::_Hashtable_node<const llvm::Constant*>" = type { %"struct.__gnu_cxx::_Hashtable_node<const llvm::Constant*>"*, %"struct.llvm::Constant"* }
%"struct.__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >" = type { %"struct.__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >"*, %"struct.std::pair<const llvm::Value* const,int>" }
%"struct.__gnu_cxx::hash_map<const llvm::Value*,int,__gnu_cxx::hash<const llvm::Value*>,std::equal_to<const llvm::Value*>,std::allocator<int> >" = type { %"struct.__gnu_cxx::hashtable<std::pair<const llvm::Value* const, int>,const llvm::Value*,__gnu_cxx::hash<const llvm::Value*>,std::_Select1st<std::pair<const llvm::Value* const, int> >,std::equal_to<const llvm::Value*>,std::allocator<int> >" }
%"struct.__gnu_cxx::hash_set<const llvm::Constant*,__gnu_cxx::hash<const llvm::Constant*>,std::equal_to<const llvm::Constant*>,std::allocator<const llvm::Constant*> >" = type { %"struct.__gnu_cxx::hashtable<const llvm::Constant*,const llvm::Constant*,__gnu_cxx::hash<const llvm::Constant*>,std::_Identity<const llvm::Constant*>,std::equal_to<const llvm::Constant*>,std::allocator<const llvm::Constant*> >" }
%"struct.__gnu_cxx::hashtable<const llvm::Constant*,const llvm::Constant*,__gnu_cxx::hash<const llvm::Constant*>,std::_Identity<const llvm::Constant*>,std::equal_to<const llvm::Constant*>,std::allocator<const llvm::Constant*> >" = type { %struct.__false_type, %struct.__false_type, %struct.__false_type, %struct.__false_type, %"struct.std::vector<__gnu_cxx::_Hashtable_node<const llvm::Constant*>*,std::allocator<const llvm::Constant*> >", i32 }
%"struct.__gnu_cxx::hashtable<std::pair<const llvm::Value* const, int>,const llvm::Value*,__gnu_cxx::hash<const llvm::Value*>,std::_Select1st<std::pair<const llvm::Value* const, int> >,std::equal_to<const llvm::Value*>,std::allocator<int> >" = type { %struct.__false_type, %struct.__false_type, %struct.__false_type, %struct.__false_type, %"struct.std::vector<__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >*,std::allocator<int> >", i32 }
%"struct.llvm::AbstractTypeUser" = type { i32 (...)** }
%"struct.llvm::Annotable" = type { i32 (...)**, %"struct.llvm::Annotation"* }
%"struct.llvm::Annotation" = type { i32 (...)**, %"struct.llvm::AnnotationID", %"struct.llvm::Annotation"* }
%"struct.llvm::AnnotationID" = type { i32 }
%"struct.llvm::Argument" = type { %"struct.llvm::Value", %"struct.llvm::Function"*, %"struct.llvm::Argument"*, %"struct.llvm::Argument"* }
%"struct.llvm::BasicBlock" = type { %"struct.llvm::Value", %"struct.llvm::iplist<llvm::Instruction,llvm::ilist_traits<llvm::Instruction> >", %"struct.llvm::BasicBlock"*, %"struct.llvm::BasicBlock"* }
%"struct.llvm::Constant" = type opaque
%"struct.llvm::DerivedType" = type { %"struct.llvm::Type", %"struct.llvm::AbstractTypeUser", %"struct.std::vector<llvm::AbstractTypeUser*,std::allocator<llvm::AbstractTypeUser*> >" }
%"struct.llvm::Function" = type { %"struct.llvm::GlobalValue", %"struct.llvm::Annotable", %"struct.llvm::iplist<llvm::BasicBlock,llvm::ilist_traits<llvm::BasicBlock> >", %"struct.llvm::iplist<llvm::Argument,llvm::ilist_traits<llvm::Argument> >", %"struct.llvm::SymbolTable"*, %"struct.llvm::Function"*, %"struct.llvm::Function"* }
%"struct.llvm::FunctionPass" = type { %"struct.llvm::Pass" }
%"struct.llvm::FunctionType" = type { %"struct.llvm::DerivedType", i1 }
%"struct.llvm::GlobalValue" = type { %"struct.llvm::User", i32, %"struct.llvm::Module"* }
%"struct.llvm::Instruction" = type { %"struct.llvm::User", %"struct.llvm::Annotable", %"struct.llvm::BasicBlock"*, %"struct.llvm::Instruction"*, %"struct.llvm::Instruction"*, i32 }
%"struct.llvm::IntrinsicLowering" = type opaque
%"struct.llvm::MachineBasicBlock" = type { %"struct.llvm::ilist<llvm::MachineInstr>", %"struct.llvm::MachineBasicBlock"*, %"struct.llvm::MachineBasicBlock"*, %"struct.llvm::BasicBlock"* }
%"struct.llvm::MachineConstantPool" = type opaque
%"struct.llvm::MachineFrameInfo" = type opaque
%"struct.llvm::MachineFunction" = type { %"struct.llvm::Annotation", %"struct.llvm::Function"*, %"struct.llvm::TargetMachine"*, %"struct.llvm::iplist<llvm::MachineBasicBlock,llvm::ilist_traits<llvm::MachineBasicBlock> >", %"struct.llvm::SSARegMap"*, %"struct.llvm::MachineFunctionInfo"*, %"struct.llvm::MachineFrameInfo"*, %"struct.llvm::MachineConstantPool"* }
%"struct.llvm::MachineFunctionInfo" = type { %"struct.__gnu_cxx::hash_set<const llvm::Constant*,__gnu_cxx::hash<const llvm::Constant*>,std::equal_to<const llvm::Constant*>,std::allocator<const llvm::Constant*> >", %"struct.__gnu_cxx::hash_map<const llvm::Value*,int,__gnu_cxx::hash<const llvm::Value*>,std::equal_to<const llvm::Value*>,std::allocator<int> >", i32, i32, i32, i32, i32, i32, i32, i1, i1, i1, %"struct.llvm::MachineFunction"* }
%"struct.llvm::MachineFunctionPass" = type { %"struct.llvm::FunctionPass" }
%"struct.llvm::MachineInstr" = type { i16, i8, %"struct.std::vector<llvm::MachineOperand,std::allocator<llvm::MachineOperand> >", %"struct.llvm::MachineInstr"*, %"struct.llvm::MachineInstr"*, %"struct.llvm::MachineBasicBlock"* }
%"struct.llvm::MachineInstrBuilder" = type { %"struct.llvm::MachineInstr"* }
%"struct.llvm::MachineOperand" = type { %"union.llvm::MachineOperand::._65", i32, i32 }
%"struct.llvm::Module" = type opaque
%"struct.llvm::PATypeHandle" = type { %"struct.llvm::Type"*, %"struct.llvm::AbstractTypeUser"* }
%"struct.llvm::PATypeHolder" = type { %"struct.llvm::Type"* }
%"struct.llvm::Pass" = type { i32 (...)**, %"struct.llvm::AbstractTypeUser"*, %"struct.llvm::PassInfo"*, %"struct.std::vector<std::pair<const llvm::PassInfo*, llvm::Pass*>,std::allocator<std::pair<const llvm::PassInfo*, llvm::Pass*> > >" }
%"struct.llvm::PassInfo" = type { i8*, i8*, %"struct.std::type_info"*, i8, %"struct.std::vector<const llvm::PassInfo*,std::allocator<const llvm::PassInfo*> >", %"struct.llvm::Pass"* ()*, %"struct.llvm::Pass"* (%"struct.llvm::TargetMachine"*)* }
%"struct.llvm::SSARegMap" = type opaque
%"struct.llvm::SymbolTable" = type opaque
%"struct.llvm::SymbolTableListTraits<llvm::Argument,llvm::Function,llvm::Function,llvm::ilist_traits<llvm::Argument> >" = type { %"struct.llvm::Function"*, %"struct.llvm::Function"* }
%"struct.llvm::SymbolTableListTraits<llvm::Instruction,llvm::BasicBlock,llvm::Function,llvm::ilist_traits<llvm::Instruction> >" = type { %"struct.llvm::Function"*, %"struct.llvm::BasicBlock"* }
%"struct.llvm::DataLayout" = type { %"struct.llvm::FunctionPass", i1, i8, i8, i8, i8, i8, i8, i8, i8 }
%"struct.llvm::TargetFrameInfo" = type { i32 (...)**, i32, i32, i32 }
%"struct.llvm::TargetInstrDescriptor" = type { i8*, i32, i32, i32, i1, i32, i32, i32, i32, i32, i32*, i32* }
%"struct.llvm::TargetInstrInfo" = type { i32 (...)**, %"struct.llvm::TargetInstrDescriptor"*, i32, i32 }
%"struct.llvm::TargetMachine" = type { i32 (...)**, %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >", %"struct.llvm::DataLayout", %"struct.llvm::IntrinsicLowering"* }
%"struct.llvm::TargetRegClassInfo" = type { i32 (...)**, i32, i32, i32 }
%"struct.llvm::TargetRegInfo" = type { i32 (...)**, %"struct.std::vector<const llvm::TargetRegClassInfo*,std::allocator<const llvm::TargetRegClassInfo*> >", %"struct.llvm::TargetMachine"* }
%"struct.llvm::Type" = type { %"struct.llvm::Value", i32, i32, i1, i32, %"struct.llvm::Type"*, %"struct.std::vector<llvm::PATypeHandle,std::allocator<llvm::PATypeHandle> >" }
%"struct.llvm::Use" = type { %"struct.llvm::Value"*, %"struct.llvm::User"*, %"struct.llvm::Use"*, %"struct.llvm::Use"* }
%"struct.llvm::User" = type { %"struct.llvm::Value", %"struct.std::vector<llvm::Use,std::allocator<llvm::Use> >" }
%"struct.llvm::Value" = type { i32 (...)**, %"struct.llvm::iplist<llvm::Use,llvm::ilist_traits<llvm::Use> >", %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >", %"struct.llvm::PATypeHolder", i32 }
%"struct.llvm::_GLOBAL__N_::InsertPrologEpilogCode" = type { %"struct.llvm::MachineFunctionPass" }
%"struct.llvm::ilist<llvm::MachineInstr>" = type { %"struct.llvm::iplist<llvm::MachineInstr,llvm::ilist_traits<llvm::MachineInstr> >" }
%"struct.llvm::ilist_iterator<const llvm::MachineBasicBlock>" = type { %"struct.llvm::MachineBasicBlock"* }
%"struct.llvm::ilist_traits<llvm::Argument>" = type { %"struct.llvm::SymbolTableListTraits<llvm::Argument,llvm::Function,llvm::Function,llvm::ilist_traits<llvm::Argument> >" }
%"struct.llvm::ilist_traits<llvm::Instruction>" = type { %"struct.llvm::SymbolTableListTraits<llvm::Instruction,llvm::BasicBlock,llvm::Function,llvm::ilist_traits<llvm::Instruction> >" }
%"struct.llvm::iplist<llvm::Argument,llvm::ilist_traits<llvm::Argument> >" = type { %"struct.llvm::ilist_traits<llvm::Argument>", %"struct.llvm::Argument"*, %"struct.llvm::Argument"* }
%"struct.llvm::iplist<llvm::BasicBlock,llvm::ilist_traits<llvm::BasicBlock> >" = type { %"struct.llvm::ilist_traits<llvm::Argument>", %"struct.llvm::BasicBlock"*, %"struct.llvm::BasicBlock"* }
%"struct.llvm::iplist<llvm::Instruction,llvm::ilist_traits<llvm::Instruction> >" = type { %"struct.llvm::ilist_traits<llvm::Instruction>", %"struct.llvm::Instruction"*, %"struct.llvm::Instruction"* }
%"struct.llvm::iplist<llvm::MachineBasicBlock,llvm::ilist_traits<llvm::MachineBasicBlock> >" = type { %"struct.llvm::MachineBasicBlock"*, %"struct.llvm::MachineBasicBlock"* }
%"struct.llvm::iplist<llvm::MachineInstr,llvm::ilist_traits<llvm::MachineInstr> >" = type { %"struct.llvm::ilist_iterator<const llvm::MachineBasicBlock>", %"struct.llvm::MachineInstr"*, %"struct.llvm::MachineInstr"* }
%"struct.llvm::iplist<llvm::Use,llvm::ilist_traits<llvm::Use> >" = type { %"struct.llvm::Use"*, %"struct.llvm::Use"* }
%"struct.std::_Vector_alloc_base<__gnu_cxx::_Hashtable_node<const llvm::Constant*>*,std::allocator<const llvm::Constant*>, true>" = type { %"struct.__gnu_cxx::_Hashtable_node<const llvm::Constant*>"**, %"struct.__gnu_cxx::_Hashtable_node<const llvm::Constant*>"**, %"struct.__gnu_cxx::_Hashtable_node<const llvm::Constant*>"** }
%"struct.std::_Vector_alloc_base<__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >*,std::allocator<int>, true>" = type { %"struct.__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >"**, %"struct.__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >"**, %"struct.__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >"** }
%"struct.std::_Vector_alloc_base<const llvm::PassInfo*,std::allocator<const llvm::PassInfo*>, true>" = type { %"struct.llvm::PassInfo"**, %"struct.llvm::PassInfo"**, %"struct.llvm::PassInfo"** }
%"struct.std::_Vector_alloc_base<const llvm::TargetRegClassInfo*,std::allocator<const llvm::TargetRegClassInfo*>, true>" = type { %"struct.llvm::TargetFrameInfo"**, %"struct.llvm::TargetFrameInfo"**, %"struct.llvm::TargetFrameInfo"** }
%"struct.std::_Vector_alloc_base<llvm::AbstractTypeUser*,std::allocator<llvm::AbstractTypeUser*>, true>" = type { %"struct.llvm::AbstractTypeUser"**, %"struct.llvm::AbstractTypeUser"**, %"struct.llvm::AbstractTypeUser"** }
%"struct.std::_Vector_alloc_base<llvm::MachineInstr*,std::allocator<llvm::MachineInstr*>, true>" = type { %"struct.llvm::MachineInstr"**, %"struct.llvm::MachineInstr"**, %"struct.llvm::MachineInstr"** }
%"struct.std::_Vector_alloc_base<llvm::MachineOperand,std::allocator<llvm::MachineOperand>, true>" = type { %"struct.llvm::MachineOperand"*, %"struct.llvm::MachineOperand"*, %"struct.llvm::MachineOperand"* }
%"struct.std::_Vector_alloc_base<llvm::PATypeHandle,std::allocator<llvm::PATypeHandle>, true>" = type { %"struct.llvm::PATypeHandle"*, %"struct.llvm::PATypeHandle"*, %"struct.llvm::PATypeHandle"* }
%"struct.std::_Vector_alloc_base<llvm::Use,std::allocator<llvm::Use>, true>" = type { %"struct.llvm::Use"*, %"struct.llvm::Use"*, %"struct.llvm::Use"* }
%"struct.std::_Vector_alloc_base<std::pair<const llvm::PassInfo*, llvm::Pass*>,std::allocator<std::pair<const llvm::PassInfo*, llvm::Pass*> >, true>" = type { %"struct.std::pair<const llvm::PassInfo*,llvm::Pass*>"*, %"struct.std::pair<const llvm::PassInfo*,llvm::Pass*>"*, %"struct.std::pair<const llvm::PassInfo*,llvm::Pass*>"* }
%"struct.std::_Vector_base<__gnu_cxx::_Hashtable_node<const llvm::Constant*>*,std::allocator<const llvm::Constant*> >" = type { %"struct.std::_Vector_alloc_base<__gnu_cxx::_Hashtable_node<const llvm::Constant*>*,std::allocator<const llvm::Constant*>, true>" }
%"struct.std::_Vector_base<__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >*,std::allocator<int> >" = type { %"struct.std::_Vector_alloc_base<__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >*,std::allocator<int>, true>" }
%"struct.std::_Vector_base<const llvm::PassInfo*,std::allocator<const llvm::PassInfo*> >" = type { %"struct.std::_Vector_alloc_base<const llvm::PassInfo*,std::allocator<const llvm::PassInfo*>, true>" }
%"struct.std::_Vector_base<const llvm::TargetRegClassInfo*,std::allocator<const llvm::TargetRegClassInfo*> >" = type { %"struct.std::_Vector_alloc_base<const llvm::TargetRegClassInfo*,std::allocator<const llvm::TargetRegClassInfo*>, true>" }
%"struct.std::_Vector_base<llvm::AbstractTypeUser*,std::allocator<llvm::AbstractTypeUser*> >" = type { %"struct.std::_Vector_alloc_base<llvm::AbstractTypeUser*,std::allocator<llvm::AbstractTypeUser*>, true>" }
%"struct.std::_Vector_base<llvm::MachineInstr*,std::allocator<llvm::MachineInstr*> >" = type { %"struct.std::_Vector_alloc_base<llvm::MachineInstr*,std::allocator<llvm::MachineInstr*>, true>" }
%"struct.std::_Vector_base<llvm::MachineOperand,std::allocator<llvm::MachineOperand> >" = type { %"struct.std::_Vector_alloc_base<llvm::MachineOperand,std::allocator<llvm::MachineOperand>, true>" }
%"struct.std::_Vector_base<llvm::PATypeHandle,std::allocator<llvm::PATypeHandle> >" = type { %"struct.std::_Vector_alloc_base<llvm::PATypeHandle,std::allocator<llvm::PATypeHandle>, true>" }
%"struct.std::_Vector_base<llvm::Use,std::allocator<llvm::Use> >" = type { %"struct.std::_Vector_alloc_base<llvm::Use,std::allocator<llvm::Use>, true>" }
%"struct.std::_Vector_base<std::pair<const llvm::PassInfo*, llvm::Pass*>,std::allocator<std::pair<const llvm::PassInfo*, llvm::Pass*> > >" = type { %"struct.std::_Vector_alloc_base<std::pair<const llvm::PassInfo*, llvm::Pass*>,std::allocator<std::pair<const llvm::PassInfo*, llvm::Pass*> >, true>" }
%"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >" = type { %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Alloc_hider" }
%"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Alloc_hider" = type { i8* }
%"struct.std::pair<const llvm::PassInfo*,llvm::Pass*>" = type { %"struct.llvm::PassInfo"*, %"struct.llvm::Pass"* }
%"struct.std::pair<const llvm::Value* const,int>" = type { %"struct.llvm::Value"*, i32 }
%"struct.std::type_info" = type { i32 (...)**, i8* }
%"struct.std::vector<__gnu_cxx::_Hashtable_node<const llvm::Constant*>*,std::allocator<const llvm::Constant*> >" = type { %"struct.std::_Vector_base<__gnu_cxx::_Hashtable_node<const llvm::Constant*>*,std::allocator<const llvm::Constant*> >" }
%"struct.std::vector<__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >*,std::allocator<int> >" = type { %"struct.std::_Vector_base<__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >*,std::allocator<int> >" }
%"struct.std::vector<const llvm::PassInfo*,std::allocator<const llvm::PassInfo*> >" = type { %"struct.std::_Vector_base<const llvm::PassInfo*,std::allocator<const llvm::PassInfo*> >" }
%"struct.std::vector<const llvm::TargetRegClassInfo*,std::allocator<const llvm::TargetRegClassInfo*> >" = type { %"struct.std::_Vector_base<const llvm::TargetRegClassInfo*,std::allocator<const llvm::TargetRegClassInfo*> >" }
%"struct.std::vector<llvm::AbstractTypeUser*,std::allocator<llvm::AbstractTypeUser*> >" = type { %"struct.std::_Vector_base<llvm::AbstractTypeUser*,std::allocator<llvm::AbstractTypeUser*> >" }
%"struct.std::vector<llvm::MachineInstr*,std::allocator<llvm::MachineInstr*> >" = type { %"struct.std::_Vector_base<llvm::MachineInstr*,std::allocator<llvm::MachineInstr*> >" }
%"struct.std::vector<llvm::MachineOperand,std::allocator<llvm::MachineOperand> >" = type { %"struct.std::_Vector_base<llvm::MachineOperand,std::allocator<llvm::MachineOperand> >" }
%"struct.std::vector<llvm::PATypeHandle,std::allocator<llvm::PATypeHandle> >" = type { %"struct.std::_Vector_base<llvm::PATypeHandle,std::allocator<llvm::PATypeHandle> >" }
%"struct.std::vector<llvm::Use,std::allocator<llvm::Use> >" = type { %"struct.std::_Vector_base<llvm::Use,std::allocator<llvm::Use> >" }
%"struct.std::vector<std::pair<const llvm::PassInfo*, llvm::Pass*>,std::allocator<std::pair<const llvm::PassInfo*, llvm::Pass*> > >" = type { %"struct.std::_Vector_base<std::pair<const llvm::PassInfo*, llvm::Pass*>,std::allocator<std::pair<const llvm::PassInfo*, llvm::Pass*> > >" }
%"union.llvm::MachineOperand::._65" = type { %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"* }
declare void @_Znwj()
declare void @_ZN4llvm12MachineInstrC1Esjbb()
declare void @_ZNSt6vectorIPN4llvm12MachineInstrESaIS2_EE9push_backERKS2_()
declare void @_ZNK4llvm8Function15getFunctionTypeEv()
declare void @_ZNK4llvm19MachineInstrBuilder7addMRegEiNS_14MachineOperand7UseTypeE()
declare void @_ZNK4llvm19MachineInstrBuilder7addSImmEi()
declare i32 @__gxx_personality_v0(...)
define void @_ZN4llvm11_GLOBAL__N_22InsertPrologEpilogCode20runOnMachineFunctionERNS_15MachineFunctionE(%"struct.llvm::MachineFunction"* %F) personality i32 (...)* @__gxx_personality_v0 {
entry:
%tmp.8.i = invoke %"struct.llvm::TargetFrameInfo"* null( %"struct.llvm::TargetMachine"* null )
to label %invoke_cont.0.i unwind label %invoke_catch.0.i ; <%"struct.llvm::TargetFrameInfo"*> [#uses=0]
invoke_catch.0.i: ; preds = %invoke_cont.49.i, %invoke_cont.48.i, %invoke_cont.47.i, %invoke_cont.i53.i, %no_exit.i, %invoke_cont.44.i, %invoke_cont.43.i, %invoke_cont.42.i, %invoke_cont.41.i, %invoke_cont.40.i, %invoke_cont.39.i, %invoke_cont.38.i, %invoke_cont.37.i, %then.2.i, %invoke_cont.35.i, %invoke_cont.34.i, %then.1.i, %endif.0.i, %invoke_cont.9.i, %invoke_cont.8.i, %invoke_cont.7.i, %invoke_cont.i.i, %then.0.i, %invoke_cont.4.i, %invoke_cont.3.i, %invoke_cont.2.i, %invoke_cont.1.i, %endif.0.i.i, %tmp.7.i.noexc.i, %invoke_cont.0.i, %entry
%exn0.i = landingpad {i8*, i32}
cleanup
ret void
invoke_cont.0.i: ; preds = %entry
%tmp.7.i1.i = invoke %"struct.llvm::TargetFrameInfo"* null( %"struct.llvm::TargetMachine"* null )
to label %tmp.7.i.noexc.i unwind label %invoke_catch.0.i ; <%"struct.llvm::TargetFrameInfo"*> [#uses=2]
tmp.7.i.noexc.i: ; preds = %invoke_cont.0.i
%tmp.17.i2.i = invoke i32 null( %"struct.llvm::TargetFrameInfo"* %tmp.7.i1.i )
to label %endif.0.i.i unwind label %invoke_catch.0.i ; <i32> [#uses=0]
endif.0.i.i: ; preds = %tmp.7.i.noexc.i
%tmp.38.i4.i = invoke i32 null( %"struct.llvm::TargetFrameInfo"* %tmp.7.i1.i )
to label %tmp.38.i.noexc.i unwind label %invoke_catch.0.i ; <i32> [#uses=0]
tmp.38.i.noexc.i: ; preds = %endif.0.i.i
br i1 false, label %invoke_cont.1.i, label %then.1.i.i
then.1.i.i: ; preds = %tmp.38.i.noexc.i
ret void
invoke_cont.1.i: ; preds = %tmp.38.i.noexc.i
%tmp.21.i = invoke %"struct.llvm::TargetRegInfo"* null( %"struct.llvm::TargetMachine"* null )
to label %invoke_cont.2.i unwind label %invoke_catch.0.i ; <%"struct.llvm::TargetRegInfo"*> [#uses=1]
invoke_cont.2.i: ; preds = %invoke_cont.1.i
%tmp.28.i = invoke i32 null( %"struct.llvm::TargetRegInfo"* %tmp.21.i )
to label %invoke_cont.3.i unwind label %invoke_catch.0.i ; <i32> [#uses=0]
invoke_cont.3.i: ; preds = %invoke_cont.2.i
%tmp.36.i = invoke %"struct.llvm::TargetInstrInfo"* null( %"struct.llvm::TargetMachine"* null )
to label %invoke_cont.4.i unwind label %invoke_catch.0.i ; <%"struct.llvm::TargetInstrInfo"*> [#uses=1]
invoke_cont.4.i: ; preds = %invoke_cont.3.i
%tmp.43.i = invoke i1 null( %"struct.llvm::TargetInstrInfo"* %tmp.36.i, i16 383, i64 0 )
to label %invoke_cont.5.i unwind label %invoke_catch.0.i ; <i1> [#uses=1]
invoke_cont.5.i: ; preds = %invoke_cont.4.i
br i1 %tmp.43.i, label %then.0.i, label %else.i
then.0.i: ; preds = %invoke_cont.5.i
invoke void @_Znwj( )
to label %tmp.0.i.noexc.i unwind label %invoke_catch.0.i
tmp.0.i.noexc.i: ; preds = %then.0.i
invoke void @_ZN4llvm12MachineInstrC1Esjbb( )
to label %invoke_cont.i.i unwind label %cond_true.i.i
cond_true.i.i: ; preds = %tmp.0.i.noexc.i
%exn.i.i = landingpad {i8*, i32}
cleanup
ret void
invoke_cont.i.i: ; preds = %tmp.0.i.noexc.i
invoke void @_ZNK4llvm19MachineInstrBuilder7addMRegEiNS_14MachineOperand7UseTypeE( )
to label %invoke_cont.7.i unwind label %invoke_catch.0.i
invoke_cont.7.i: ; preds = %invoke_cont.i.i
invoke void @_ZNK4llvm19MachineInstrBuilder7addSImmEi( )
to label %invoke_cont.8.i unwind label %invoke_catch.0.i
invoke_cont.8.i: ; preds = %invoke_cont.7.i
invoke void @_ZNK4llvm19MachineInstrBuilder7addMRegEiNS_14MachineOperand7UseTypeE( )
to label %invoke_cont.9.i unwind label %invoke_catch.0.i
invoke_cont.9.i: ; preds = %invoke_cont.8.i
invoke void @_ZNSt6vectorIPN4llvm12MachineInstrESaIS2_EE9push_backERKS2_( )
to label %endif.0.i unwind label %invoke_catch.0.i
else.i: ; preds = %invoke_cont.5.i
ret void
endif.0.i: ; preds = %invoke_cont.9.i
invoke void @_ZNK4llvm8Function15getFunctionTypeEv( )
to label %invoke_cont.33.i unwind label %invoke_catch.0.i
invoke_cont.33.i: ; preds = %endif.0.i
br i1 false, label %then.1.i, label %endif.1.i
then.1.i: ; preds = %invoke_cont.33.i
invoke void @_ZNK4llvm8Function15getFunctionTypeEv( )
to label %invoke_cont.34.i unwind label %invoke_catch.0.i
invoke_cont.34.i: ; preds = %then.1.i
%tmp.121.i = invoke %"struct.llvm::TargetRegInfo"* null( %"struct.llvm::TargetMachine"* null )
to label %invoke_cont.35.i unwind label %invoke_catch.0.i ; <%"struct.llvm::TargetRegInfo"*> [#uses=1]
invoke_cont.35.i: ; preds = %invoke_cont.34.i
%tmp.128.i = invoke i32 null( %"struct.llvm::TargetRegInfo"* %tmp.121.i )
to label %invoke_cont.36.i unwind label %invoke_catch.0.i ; <i32> [#uses=0]
invoke_cont.36.i: ; preds = %invoke_cont.35.i
br i1 false, label %then.2.i, label %endif.1.i
then.2.i: ; preds = %invoke_cont.36.i
%tmp.140.i = invoke %"struct.llvm::TargetRegInfo"* null( %"struct.llvm::TargetMachine"* null )
to label %invoke_cont.37.i unwind label %invoke_catch.0.i ; <%"struct.llvm::TargetRegInfo"*> [#uses=0]
invoke_cont.37.i: ; preds = %then.2.i
%tmp.148.i = invoke %"struct.llvm::TargetRegInfo"* null( %"struct.llvm::TargetMachine"* null )
to label %invoke_cont.38.i unwind label %invoke_catch.0.i ; <%"struct.llvm::TargetRegInfo"*> [#uses=1]
invoke_cont.38.i: ; preds = %invoke_cont.37.i
%tmp.155.i = invoke i32 null( %"struct.llvm::TargetRegInfo"* %tmp.148.i, %"struct.llvm::Type"* null, i1 false )
to label %invoke_cont.39.i unwind label %invoke_catch.0.i ; <i32> [#uses=0]
invoke_cont.39.i: ; preds = %invoke_cont.38.i
%tmp.163.i = invoke %"struct.llvm::TargetFrameInfo"* null( %"struct.llvm::TargetMachine"* null )
to label %invoke_cont.40.i unwind label %invoke_catch.0.i ; <%"struct.llvm::TargetFrameInfo"*> [#uses=1]
invoke_cont.40.i: ; preds = %invoke_cont.39.i
%tmp.170.i = invoke i32 null( %"struct.llvm::TargetFrameInfo"* %tmp.163.i )
to label %invoke_cont.41.i unwind label %invoke_catch.0.i ; <i32> [#uses=0]
invoke_cont.41.i: ; preds = %invoke_cont.40.i
%tmp.177.i = invoke %"struct.llvm::TargetFrameInfo"* null( %"struct.llvm::TargetMachine"* null )
to label %invoke_cont.42.i unwind label %invoke_catch.0.i ; <%"struct.llvm::TargetFrameInfo"*> [#uses=1]
invoke_cont.42.i: ; preds = %invoke_cont.41.i
%tmp.184.i = invoke i32 null( %"struct.llvm::TargetFrameInfo"* %tmp.177.i )
to label %invoke_cont.43.i unwind label %invoke_catch.0.i ; <i32> [#uses=1]
invoke_cont.43.i: ; preds = %invoke_cont.42.i
%tmp.191.i = invoke %"struct.llvm::TargetFrameInfo"* null( %"struct.llvm::TargetMachine"* null )
to label %invoke_cont.44.i unwind label %invoke_catch.0.i ; <%"struct.llvm::TargetFrameInfo"*> [#uses=1]
invoke_cont.44.i: ; preds = %invoke_cont.43.i
%tmp.198.i = invoke i32 null( %"struct.llvm::TargetFrameInfo"* %tmp.191.i, %"struct.llvm::MachineFunction"* %F, i1* null )
to label %invoke_cont.45.i unwind label %invoke_catch.0.i ; <i32> [#uses=0]
invoke_cont.45.i: ; preds = %invoke_cont.44.i
br i1 false, label %no_exit.i, label %endif.1.i
no_exit.i: ; preds = %invoke_cont.50.i, %invoke_cont.45.i
%nextArgOffset.0.i.1 = phi i32 [ %tmp.221.i, %invoke_cont.50.i ], [ 0, %invoke_cont.45.i ] ; <i32> [#uses=1]
invoke void @_Znwj( )
to label %tmp.0.i.noexc55.i unwind label %invoke_catch.0.i
tmp.0.i.noexc55.i: ; preds = %no_exit.i
invoke void @_ZN4llvm12MachineInstrC1Esjbb( )
to label %invoke_cont.i53.i unwind label %cond_true.i52.i
cond_true.i52.i: ; preds = %tmp.0.i.noexc55.i
%exn.i52.i = landingpad {i8*, i32}
cleanup
ret void
invoke_cont.i53.i: ; preds = %tmp.0.i.noexc55.i
invoke void @_ZNK4llvm19MachineInstrBuilder7addMRegEiNS_14MachineOperand7UseTypeE( )
to label %invoke_cont.47.i unwind label %invoke_catch.0.i
invoke_cont.47.i: ; preds = %invoke_cont.i53.i
invoke void @_ZNK4llvm19MachineInstrBuilder7addMRegEiNS_14MachineOperand7UseTypeE( )
to label %invoke_cont.48.i unwind label %invoke_catch.0.i
invoke_cont.48.i: ; preds = %invoke_cont.47.i
invoke void @_ZNK4llvm19MachineInstrBuilder7addSImmEi( )
to label %invoke_cont.49.i unwind label %invoke_catch.0.i
invoke_cont.49.i: ; preds = %invoke_cont.48.i
invoke void @_ZNSt6vectorIPN4llvm12MachineInstrESaIS2_EE9push_backERKS2_( )
to label %invoke_cont.50.i unwind label %invoke_catch.0.i
invoke_cont.50.i: ; preds = %invoke_cont.49.i
%tmp.221.i = add i32 %nextArgOffset.0.i.1, %tmp.184.i ; <i32> [#uses=1]
br i1 false, label %no_exit.i, label %endif.1.i
endif.1.i: ; preds = %invoke_cont.50.i, %invoke_cont.45.i, %invoke_cont.36.i, %invoke_cont.33.i
ret void
}

View File

@ -1,27 +0,0 @@
; RUN: opt < %s -indvars -disable-output
define void @.outPlank_21() {
entry:
br i1 false, label %loopexit.0, label %no_exit.0
no_exit.0: ; preds = %entry
ret void
loopexit.0: ; preds = %entry
br i1 false, label %no_exit.1, label %loopexit.1
no_exit.1: ; preds = %loopexit.2, %loopexit.0
%i.0.0 = phi i32 [ %inc, %loopexit.2 ], [ 0, %loopexit.0 ] ; <i32> [#uses=1]
br i1 false, label %loopexit.2, label %no_exit.2
no_exit.2: ; preds = %no_exit.1
ret void
loopexit.2: ; preds = %no_exit.1
%inc = add i32 %i.0.0, 1 ; <i32> [#uses=1]
br i1 false, label %no_exit.1, label %loopexit.1
loopexit.1: ; preds = %loopexit.2, %loopexit.0
ret void
}

View File

@ -1,27 +0,0 @@
; RUN: opt < %s -indvars -disable-output
define void @_ZN5ArrayISt7complexIdEEC2ERK10dim_vector() personality i32 (...)* @__gxx_personality_v0 {
entry:
%tmp.7 = invoke i32 @_ZN5ArrayISt7complexIdEE8get_sizeERK10dim_vector( )
to label %invoke_cont.0 unwind label %cond_true.1 ; <i32> [#uses=2]
invoke_cont.0: ; preds = %entry
%tmp.4.i = bitcast i32 %tmp.7 to i32 ; <i32> [#uses=0]
%tmp.14.0.i5 = add i32 %tmp.7, -1 ; <i32> [#uses=1]
br label %no_exit.i
no_exit.i: ; preds = %no_exit.i, %invoke_cont.0
%tmp.14.0.i.0 = phi i32 [ %tmp.14.0.i, %no_exit.i ], [ %tmp.14.0.i5, %invoke_cont.0 ] ; <i32> [#uses=1]
%tmp.14.0.i = add i32 %tmp.14.0.i.0, -1 ; <i32> [#uses=1]
br label %no_exit.i
cond_true.1: ; preds = %entry
%exn = landingpad {i8*, i32}
cleanup
resume { i8*, i32 } %exn
}
declare i32 @__gxx_personality_v0(...)
declare i32 @_ZN5ArrayISt7complexIdEE8get_sizeERK10dim_vector()

View File

@ -1,67 +0,0 @@
; RUN: opt < %s -indvars -disable-output
declare void @q_atomic_increment()
declare void @_Z9qt_assertPKcS0_i()
define void @_ZN13QMetaResourceC1EPKh() personality i32 (...)* @__gxx_personality_v0 {
entry:
invoke void @_Z9qt_assertPKcS0_i( )
to label %endif.1 unwind label %then.i.i551
then.i.i551: ; preds = %entry
%exn551 = landingpad {i8*, i32}
cleanup
ret void
endif.1: ; preds = %entry
br i1 false, label %then.2, label %then.i.i
then.2: ; preds = %endif.1
invoke void @q_atomic_increment( )
to label %loopentry.0 unwind label %invoke_catch.6
invoke_catch.6: ; preds = %then.2
%exn6 = landingpad {i8*, i32}
cleanup
ret void
loopentry.0: ; preds = %then.2
br i1 false, label %shortcirc_next.i, label %endif.3
endif.3: ; preds = %loopentry.0
ret void
shortcirc_next.i: ; preds = %loopentry.0
br i1 false, label %_ZNK7QString2atEi.exit, label %then.i
then.i: ; preds = %shortcirc_next.i
ret void
_ZNK7QString2atEi.exit: ; preds = %shortcirc_next.i
br i1 false, label %endif.4, label %then.4
then.4: ; preds = %_ZNK7QString2atEi.exit
ret void
endif.4: ; preds = %_ZNK7QString2atEi.exit
%tmp.115 = load i8, i8* null ; <i8> [#uses=1]
br i1 false, label %loopexit.1, label %no_exit.0
no_exit.0: ; preds = %no_exit.0, %endif.4
%bytes_in_len.4.5 = phi i8 [ %dec, %no_exit.0 ], [ %tmp.115, %endif.4 ] ; <i8> [#uses=1]
%off.5.5.in = phi i32 [ %off.5.5, %no_exit.0 ], [ 0, %endif.4 ] ; <i32> [#uses=1]
%off.5.5 = add i32 %off.5.5.in, 1 ; <i32> [#uses=2]
%dec = add i8 %bytes_in_len.4.5, -1 ; <i8> [#uses=2]
%tmp.123631 = icmp eq i8 %dec, 0 ; <i1> [#uses=1]
br i1 %tmp.123631, label %loopexit.1, label %no_exit.0
loopexit.1: ; preds = %no_exit.0, %endif.4
%off.5.in.6 = phi i32 [ 0, %endif.4 ], [ %off.5.5, %no_exit.0 ] ; <i32> [#uses=0]
ret void
then.i.i: ; preds = %endif.1
ret void
}
declare i32 @__gxx_personality_v0(...)

View File

@ -1,21 +0,0 @@
; RUN: opt < %s -indvars -S | FileCheck %s
define i32 @main() {
; CHECK-LABEL: @main(
; CHECK: ret i32 152
entry:
br label %no_exit
no_exit: ; preds = %no_exit, %entry
%i.1.0 = phi i32 [ 0, %entry ], [ %inc, %no_exit ] ; <i32> [#uses=2]
%tmp.4 = icmp sgt i32 %i.1.0, 50 ; <i1> [#uses=1]
%tmp.7 = select i1 %tmp.4, i32 100, i32 0 ; <i32> [#uses=1]
%i.0 = add i32 %i.1.0, 1 ; <i32> [#uses=1]
%inc = add i32 %i.0, %tmp.7 ; <i32> [#uses=3]
%tmp.1 = icmp slt i32 %inc, 100 ; <i1> [#uses=1]
br i1 %tmp.1, label %no_exit, label %loopexit
loopexit: ; preds = %no_exit
ret i32 %inc
}

View File

@ -1,37 +0,0 @@
; RUN: opt < %s -indvars -disable-output
define void @main() {
entry:
br label %no_exit.1.outer
no_exit.1.outer: ; preds = %endif.0, %entry
%l_14237116.1.0.ph = phi i8 [ -46, %entry ], [ 0, %endif.0 ] ; <i8> [#uses=1]
%i.0.0.0.ph = phi i32 [ 0, %entry ], [ %inc.1, %endif.0 ] ; <i32> [#uses=1]
br label %no_exit.1
no_exit.1: ; preds = %_Z13func_47880058cc.exit, %no_exit.1.outer
br i1 false, label %_Z13func_47880058cc.exit, label %then.i
then.i: ; preds = %no_exit.1
br label %_Z13func_47880058cc.exit
_Z13func_47880058cc.exit: ; preds = %then.i, %no_exit.1
br i1 false, label %then.0, label %no_exit.1
then.0: ; preds = %_Z13func_47880058cc.exit
%tmp.6 = bitcast i8 %l_14237116.1.0.ph to i8 ; <i8> [#uses=1]
br i1 false, label %endif.0, label %then.1
then.1: ; preds = %then.0
br label %endif.0
endif.0: ; preds = %then.1, %then.0
%inc.1 = add i32 %i.0.0.0.ph, 1 ; <i32> [#uses=2]
%tmp.2 = icmp sgt i32 %inc.1, 99 ; <i1> [#uses=1]
br i1 %tmp.2, label %loopexit.0, label %no_exit.1.outer
loopexit.0: ; preds = %endif.0
%tmp.28 = zext i8 %tmp.6 to i32 ; <i32> [#uses=0]
ret void
}

View File

@ -1,17 +0,0 @@
; RUN: opt < %s -indvars -disable-output
@fixtab = external global [29 x [29 x [2 x i32]]] ; <[29 x [29 x [2 x i32]]]*> [#uses=1]
define void @init_optabs() {
entry:
br label %no_exit.0
no_exit.0: ; preds = %no_exit.0, %entry
%p.0.0 = phi i32* [ getelementptr ([29 x [29 x [2 x i32]]], [29 x [29 x [2 x i32]]]* @fixtab, i32 0, i32 0, i32 0, i32 0), %entry ], [ %inc.0, %no_exit.0 ] ; <i32*> [#uses=1]
%inc.0 = getelementptr i32, i32* %p.0.0, i32 1 ; <i32*> [#uses=1]
br i1 undef, label %no_exit.0, label %no_exit.1
no_exit.1: ; preds = %no_exit.0
ret void
}

View File

@ -1,23 +0,0 @@
; PR726
; RUN: opt < %s -indvars -S | FileCheck %s
; Make sure to compute the right exit value based on negative strides.
define i32 @test() {
; CHECK-LABEL: @test(
; CHECK: ret i32 27
entry:
br label %cond_true
cond_true: ; preds = %cond_true, %entry
%a.0.0 = phi i32 [ 10, %entry ], [ %tmp4, %cond_true ] ; <i32> [#uses=2]
%b.0.0 = phi i32 [ 0, %entry ], [ %tmp2, %cond_true ] ; <i32> [#uses=1]
%tmp2 = add i32 %b.0.0, %a.0.0 ; <i32> [#uses=2]
%tmp4 = add i32 %a.0.0, -1 ; <i32> [#uses=2]
%tmp = icmp sgt i32 %tmp4, 7 ; <i1> [#uses=1]
br i1 %tmp, label %cond_true, label %bb7
bb7: ; preds = %cond_true
ret i32 %tmp2
}

View File

@ -1,22 +0,0 @@
; RUN: opt < %s -indvars -disable-output
define void @get_block() {
endif.0:
br label %no_exit.30
no_exit.30: ; preds = %no_exit.30, %endif.0
%x.12.0 = phi i32 [ %inc.28, %no_exit.30 ], [ -2, %endif.0 ] ; <i32> [#uses=1]
%tmp.583 = load i16, i16* null ; <i16> [#uses=1]
%tmp.584 = zext i16 %tmp.583 to i32 ; <i32> [#uses=1]
%tmp.588 = load i32, i32* null ; <i32> [#uses=1]
%tmp.589 = mul i32 %tmp.584, %tmp.588 ; <i32> [#uses=1]
%tmp.591 = add i32 %tmp.589, 0 ; <i32> [#uses=1]
%inc.28 = add i32 %x.12.0, 1 ; <i32> [#uses=2]
%tmp.565 = icmp sgt i32 %inc.28, 3 ; <i1> [#uses=1]
br i1 %tmp.565, label %loopexit.30, label %no_exit.30
loopexit.30: ; preds = %no_exit.30
%tmp.591.lcssa = phi i32 [ %tmp.591, %no_exit.30 ] ; <i32> [#uses=0]
ret void
}

View File

@ -1,44 +0,0 @@
; RUN: opt < %s -indvars -disable-output
; ModuleID = '2006-09-20-LFTR-Crash.ll'
%struct.p7prior_s = type { i32, i32, [200 x float], [200 x [7 x float]], i32, [200 x float], [200 x [20 x float]], i32, [200 x float], [200 x [20 x float]] }
define void @P7DefaultPrior() {
entry:
switch i32 0, label %UnifiedReturnBlock [
i32 2, label %bb160
i32 3, label %bb
]
bb: ; preds = %entry
br i1 false, label %cond_true.i, label %sre_malloc.exit
cond_true.i: ; preds = %bb
unreachable
sre_malloc.exit: ; preds = %bb
br label %cond_true
cond_true: ; preds = %cond_true66, %cond_true, %sre_malloc.exit
%tmp59 = phi i32 [ 1, %sre_malloc.exit ], [ %phitmp, %cond_true66 ], [ %tmp59, %cond_true ] ; <i32> [#uses=2]
%indvar245.0.ph = phi i32 [ 0, %sre_malloc.exit ], [ %indvar.next246, %cond_true66 ], [ %indvar245.0.ph, %cond_true ] ; <i32> [#uses=2]
br i1 false, label %bb57, label %cond_true
bb57: ; preds = %cond_true
%tmp65 = icmp sgt i32 0, %tmp59 ; <i1> [#uses=1]
%indvar.next246 = add i32 %indvar245.0.ph, 1 ; <i32> [#uses=2]
br i1 %tmp65, label %cond_true66, label %bb69
cond_true66: ; preds = %bb57
%q.1.0 = bitcast i32 %indvar.next246 to i32 ; <i32> [#uses=1]
%phitmp = add i32 %q.1.0, 1 ; <i32> [#uses=1]
br label %cond_true
bb69: ; preds = %bb57
ret void
bb160: ; preds = %entry
ret void
UnifiedReturnBlock: ; preds = %entry
ret void
}

View File

@ -1,33 +0,0 @@
; RUN: opt < %s -indvars -disable-output
target datalayout = "e-p:32:32"
target triple = "i686-apple-darwin8"
%struct.vorbis_dsp_state = type { i32, %struct.vorbis_info*, float**, float**, i32, i32, i32, i32, i32, i32, i32, i32, i32, i64, i64, i64, i64, i64, i64, i8* }
%struct.vorbis_info = type { i32, i32, i32, i32, i32, i32, i32, i8* }
define void @_ve_envelope_search() {
entry:
br i1 false, label %cond_true27, label %bb137
cond_true27: ; preds = %entry
br i1 false, label %cond_true52, label %bb80
cond_true52: ; preds = %cond_true27
%tmp152.i = bitcast float 0.000000e+00 to i32 ; <i32> [#uses=1]
br label %cond_next182.i
cond_next182.i: ; preds = %cond_next182.i, %cond_true52
%decay.i.0 = phi i32 [ %tmp195.i.upgrd.1, %cond_next182.i ], [ %tmp152.i, %cond_true52 ] ; <i32> [#uses=1]
%tmp194.i53 = bitcast i32 %decay.i.0 to float ; <float> [#uses=1]
%tmp195.i = fsub float %tmp194.i53, 8.000000e+00 ; <float> [#uses=1]
%tmp195.i.upgrd.1 = bitcast float %tmp195.i to i32 ; <i32> [#uses=1]
br i1 undef, label %cond_next182.i, label %bb418.i.preheader
bb418.i.preheader: ; preds = %cond_next182.i
ret void
bb80: ; preds = %cond_true27
ret void
bb137: ; preds = %entry
ret void
}

View File

@ -1,40 +0,0 @@
; PR1015
; RUN: opt < %s -indvars -S | FileCheck %s
target datalayout = "e-p:32:32"
target triple = "i686-apple-darwin8"
@foo = internal constant [5 x i8] c"\00abc\00" ; <[5 x i8]*> [#uses=1]
@str = internal constant [4 x i8] c"%d\0A\00" ; <[4 x i8]*> [#uses=1]
define i32 @test(i32 %J) {
; CHECK-LABEL: @test(
; CHECK-NOT: ret i32 0
entry:
br label %bb2
bb: ; preds = %cond_next, %cond_true
%tmp1 = add i32 %i.0, 1 ; <i32> [#uses=1]
br label %bb2
bb2: ; preds = %bb, %entry
%i.0 = phi i32 [ 0, %entry ], [ %tmp1, %bb ] ; <i32> [#uses=4]
%tmp = icmp eq i32 %i.0, 0 ; <i1> [#uses=1]
br i1 %tmp, label %cond_true, label %cond_next
cond_true: ; preds = %bb2
br label %bb
cond_next: ; preds = %bb2
%tmp2 = getelementptr [5 x i8], [5 x i8]* @foo, i32 0, i32 %i.0 ; <i8*> [#uses=1]
%tmp3 = load i8, i8* %tmp2 ; <i8> [#uses=1]
%tmp5 = icmp eq i8 %tmp3, 0 ; <i1> [#uses=1]
br i1 %tmp5, label %bb6, label %bb
bb6: ; preds = %cond_next
br label %return
return: ; preds = %bb6
ret i32 %i.0
}

View File

@ -1,117 +0,0 @@
; RUN: opt < %s -indvars -disable-output
; PR1487
%struct.AVClass = type { i8*, i8* (i8*)*, %struct.AVOption* }
%struct.AVCodec = type { i8*, i32, i32, i32, i32 (%struct.AVCodecContext*)*, i32 (%struct.AVCodecContext*, i8*, i32, i8*)*, i32 (%struct.AVCodecContext*)*, i32 (%struct.AVCodecContext*, i8*, i32*, i8*, i32)*, i32, %struct.AVCodec*, void (%struct.AVCodecContext*)*, %struct.AVCodecTag*, i32* }
%struct.AVCodecContext = type { %struct.AVClass*, i32, i32, i32, i32, i32, i8*, i32, %struct.AVCodecTag, i32, i32, i32, i32, i32, void (%struct.AVCodecContext*, %struct.AVFrame*, i32*, i32, i32, i32)*, i32, i32, i32, i32, i32, i32, i32, float, float, i32, i32, i32, i32, float, i32, i32, i32, %struct.AVCodec*, i8*, i32, i32, void (%struct.AVCodecContext*, i8*, i32, i32)*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8*, [32 x i8], i32, i32, i32, i32, i32, i32, i32, float, i32, i32 (%struct.AVCodecContext*, %struct.AVFrame*)*, void (%struct.AVCodecContext*, %struct.AVFrame*)*, i32, i32, i32, i32, i8*, i8*, float, float, i32, %struct.RcOverride*, i32, i8*, i32, i32, i32, float, float, float, float, i32, float, float, float, float, float, i32, i32, i32, i32*, i32, i32, i32, i32, %struct.AVCodecTag, %struct.AVFrame*, i32, i32, [4 x i64], i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 (%struct.AVCodecContext*, i32*)*, i32, i32, i32, i32, i32, i32, i8*, i32, i32, i32, i32, i32, i32, i16*, i16*, i32, i32, i32, i32, %struct.AVPaletteControl*, i32, i32 (%struct.AVCodecContext*, %struct.AVFrame*)*, i32, i32, i32, i32, i32, i32, i32, i32 (%struct.AVCodecContext*, i32 (%struct.AVCodecContext*, i8*)*, i8**, i32*, i32)*, i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i64 }
%struct.AVCodecTag = type { i32, i32 }
%struct.AVFrame = type { [4 x i8*], [4 x i32], [4 x i8*], i32, i32, i64, i32, i32, i32, i32, i32, i8*, i32, i8*, [2 x [2 x i16]*], i32*, i8, i8*, [4 x i64], i32, i32, i32, i32, i32, %struct.AVPanScan*, i32, i32, i16*, [2 x i8*] }
%struct.AVOption = type { i8*, i8*, i32, i32, double, double, double, i32, i8* }
%struct.AVPaletteControl = type { i32, [256 x i32] }
%struct.AVPanScan = type { i32, i32, i32, [3 x [2 x i16]] }
%struct.RcOverride = type { i32, i32, i32, float }
define i32 @smc_decode_frame(%struct.AVCodecContext* %avctx, i8* %data, i32* %data_size, i8* %buf, i32 %buf_size) {
entry:
br i1 false, label %cond_next, label %cond_true
cond_true: ; preds = %entry
ret i32 -1
cond_next: ; preds = %entry
br i1 false, label %bb.outer5.split.split.split.us, label %cond_true194.split
bb.outer5.split.split.split.us: ; preds = %cond_next
br i1 false, label %cond_next188.us503.us, label %bb.us481
bb275.us493.us: ; preds = %cond_next188.us503.us, %cond_next188.us503.us
ret i32 0
cond_next188.us503.us: ; preds = %bb.outer5.split.split.split.us
switch i32 0, label %bb1401 [
i32 0, label %cond_next202.bb215_crit_edge.split
i32 16, label %bb215
i32 32, label %bb275.us493.us
i32 48, label %bb275.us493.us
i32 64, label %cond_next202.bb417_crit_edge.split
i32 80, label %bb417
i32 96, label %cond_next202.bb615_crit_edge.split
i32 112, label %bb615
i32 128, label %cond_next202.bb716_crit_edge.split
i32 144, label %bb716
i32 160, label %cond_next202.bb882_crit_edge.split
i32 176, label %bb882
i32 192, label %cond_next202.bb1062_crit_edge.split
i32 208, label %bb1062
i32 224, label %bb1326.us.outer.outer
]
bb.us481: ; preds = %bb.outer5.split.split.split.us
ret i32 0
cond_true194.split: ; preds = %cond_next
ret i32 %buf_size
cond_next202.bb1062_crit_edge.split: ; preds = %cond_next188.us503.us
ret i32 0
cond_next202.bb882_crit_edge.split: ; preds = %cond_next188.us503.us
ret i32 0
cond_next202.bb716_crit_edge.split: ; preds = %cond_next188.us503.us
ret i32 0
cond_next202.bb615_crit_edge.split: ; preds = %cond_next188.us503.us
ret i32 0
cond_next202.bb417_crit_edge.split: ; preds = %cond_next188.us503.us
ret i32 0
cond_next202.bb215_crit_edge.split: ; preds = %cond_next188.us503.us
ret i32 0
bb215: ; preds = %cond_next188.us503.us
ret i32 0
bb417: ; preds = %cond_next188.us503.us
ret i32 0
bb615: ; preds = %cond_next188.us503.us
ret i32 0
bb716: ; preds = %cond_next188.us503.us
ret i32 0
bb882: ; preds = %cond_next188.us503.us
ret i32 0
bb1062: ; preds = %cond_next188.us503.us
ret i32 0
bb1326.us: ; preds = %bb1326.us.outer.outer, %bb1347.loopexit.us, %bb1326.us
%pixel_y.162036.us.ph = phi i32 [ %tmp1352.us, %bb1347.loopexit.us ], [ 0, %bb1326.us.outer.outer ], [ %pixel_y.162036.us.ph, %bb1326.us ] ; <i32> [#uses=2]
%stream_ptr.142038.us.ph = phi i32 [ %tmp1339.us, %bb1347.loopexit.us ], [ %stream_ptr.142038.us.ph.ph, %bb1326.us.outer.outer ], [ %stream_ptr.142038.us.ph, %bb1326.us ] ; <i32> [#uses=2]
%pixel_x.232031.us = phi i32 [ %tmp1341.us, %bb1326.us ], [ 0, %bb1326.us.outer.outer ], [ 0, %bb1347.loopexit.us ] ; <i32> [#uses=3]
%block_ptr.222030.us = add i32 0, %pixel_x.232031.us ; <i32> [#uses=1]
%stream_ptr.132032.us = add i32 %pixel_x.232031.us, %stream_ptr.142038.us.ph ; <i32> [#uses=1]
%tmp1341.us = add i32 %pixel_x.232031.us, 1 ; <i32> [#uses=2]
%tmp1344.us = icmp slt i32 %tmp1341.us, 4 ; <i1> [#uses=1]
br i1 %tmp1344.us, label %bb1326.us, label %bb1347.loopexit.us
bb1347.loopexit.us: ; preds = %bb1326.us
%tmp1339.us = add i32 %stream_ptr.132032.us, 1 ; <i32> [#uses=2]
%tmp1337.us = add i32 %block_ptr.222030.us, 1 ; <i32> [#uses=0]
%tmp1352.us = add i32 %pixel_y.162036.us.ph, 1 ; <i32> [#uses=2]
%tmp1355.us = icmp slt i32 %tmp1352.us, 4 ; <i1> [#uses=1]
br i1 %tmp1355.us, label %bb1326.us, label %bb1358
bb1358: ; preds = %bb1347.loopexit.us
br label %bb1326.us.outer.outer
bb1326.us.outer.outer: ; preds = %bb1358, %cond_next188.us503.us
%stream_ptr.142038.us.ph.ph = phi i32 [ %tmp1339.us, %bb1358 ], [ 0, %cond_next188.us503.us ] ; <i32> [#uses=1]
br label %bb1326.us
bb1401: ; preds = %cond_next188.us503.us
ret i32 0
}

View File

@ -1,20 +0,0 @@
; RUN: opt < %s -indvars -disable-output
; PR1814
target datalayout = "e-p:32:32-f64:32:64-i64:32:64-f80:32:32"
define void @FuncAt1938470480(i32, i32, i32, i32, i32, i32, i32, i32, i64, i64, i64, i64, i64, i64, i64, i64, i1, i1, i1, i1, i1, i1) {
EntryBlock:
br label %asmBlockAt738ab7f3
asmBlockAt738ab9b0: ; preds = %asmBlockAt738ab7f3
%.lcssa6 = phi i64 [ %23, %asmBlockAt738ab7f3 ] ; <i64> [#uses=0]
ret void
asmBlockAt738ab7f3: ; preds = %asmBlockAt738ab7f3, %EntryBlock
%ebp95 = phi i32 [ 128, %EntryBlock ], [ %24, %asmBlockAt738ab7f3 ] ; <i32> [#uses=2]
sub <4 x i16> zeroinitializer, zeroinitializer ; <<4 x i16>>:22 [#uses=1]
bitcast <4 x i16> %22 to i64 ; <i64>:23 [#uses=1]
add i32 %ebp95, -64 ; <i32>:24 [#uses=1]
icmp ult i32 %ebp95, 64 ; <i1>:25 [#uses=1]
br i1 %25, label %asmBlockAt738ab9b0, label %asmBlockAt738ab7f3
}

Some files were not shown because too many files have changed in this diff Show More