summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/GlobalOpt
diff options
context:
space:
mode:
authorEric Christopher <echristo@gmail.com>2019-04-17 02:12:23 +0000
committerEric Christopher <echristo@gmail.com>2019-04-17 02:12:23 +0000
commita86343512845c9c1fdbac865fea88aa5fce7142a (patch)
tree666fc6353de19ad8b00e56b67edd33f24104e4a7 /llvm/test/Transforms/GlobalOpt
parent7f8ca6e3679b3af951cb7a4b1377edfaa3244b93 (diff)
downloadbcm5719-llvm-a86343512845c9c1fdbac865fea88aa5fce7142a.tar.gz
bcm5719-llvm-a86343512845c9c1fdbac865fea88aa5fce7142a.zip
Temporarily Revert "Add basic loop fusion pass."
As it's causing some bot failures (and per request from kbarton). This reverts commit r358543/ab70da07286e618016e78247e4a24fcb84077fda. llvm-svn: 358546
Diffstat (limited to 'llvm/test/Transforms/GlobalOpt')
-rw-r--r--llvm/test/Transforms/GlobalOpt/2004-10-10-CastStoreOnce.ll17
-rw-r--r--llvm/test/Transforms/GlobalOpt/2005-06-15-LocalizeConstExprCrash.ll10
-rw-r--r--llvm/test/Transforms/GlobalOpt/2005-09-27-Crash.ll27
-rw-r--r--llvm/test/Transforms/GlobalOpt/2006-07-07-InlineAsmCrash.ll135
-rw-r--r--llvm/test/Transforms/GlobalOpt/2006-11-01-ShrinkGlobalPhiCrash.ll33
-rw-r--r--llvm/test/Transforms/GlobalOpt/2007-04-05-Crash.ll34
-rw-r--r--llvm/test/Transforms/GlobalOpt/2007-05-13-Crash.ll74
-rw-r--r--llvm/test/Transforms/GlobalOpt/2007-06-04-PackedStruct.ll36
-rw-r--r--llvm/test/Transforms/GlobalOpt/2007-11-09-GEP-GEP-Crash.ll19
-rw-r--r--llvm/test/Transforms/GlobalOpt/2008-01-03-Crash.ll26
-rw-r--r--llvm/test/Transforms/GlobalOpt/2008-01-13-OutOfRangeSROA.ll18
-rw-r--r--llvm/test/Transforms/GlobalOpt/2008-01-29-VolatileGlobal.ll10
-rw-r--r--llvm/test/Transforms/GlobalOpt/2008-04-26-SROA-Global-Align.ll34
-rw-r--r--llvm/test/Transforms/GlobalOpt/2008-07-17-addrspace.ll28
-rw-r--r--llvm/test/Transforms/GlobalOpt/2008-12-16-HeapSRACrash-2.ll28
-rw-r--r--llvm/test/Transforms/GlobalOpt/2008-12-16-HeapSRACrash.ll30
-rw-r--r--llvm/test/Transforms/GlobalOpt/2009-01-13-phi-user.ll36
-rw-r--r--llvm/test/Transforms/GlobalOpt/2009-02-15-BitcastAlias.ll10
-rw-r--r--llvm/test/Transforms/GlobalOpt/2009-02-15-ResolveAlias.ll24
-rw-r--r--llvm/test/Transforms/GlobalOpt/2009-03-05-dbg.ll80
-rw-r--r--llvm/test/Transforms/GlobalOpt/2009-03-06-Anonymous.ll23
-rw-r--r--llvm/test/Transforms/GlobalOpt/2009-03-07-PromotePtrToBool.ll19
-rw-r--r--llvm/test/Transforms/GlobalOpt/2009-06-01-RecursivePHI.ll122
-rw-r--r--llvm/test/Transforms/GlobalOpt/2009-11-16-BrokenPerformHeapAllocSRoA.ll26
-rw-r--r--llvm/test/Transforms/GlobalOpt/2009-11-16-MallocSingleStoreToGlobalVar.ll30
-rw-r--r--llvm/test/Transforms/GlobalOpt/2010-02-25-MallocPromote.ll18
-rw-r--r--llvm/test/Transforms/GlobalOpt/2010-02-26-MallocSROA.ll27
-rw-r--r--llvm/test/Transforms/GlobalOpt/2010-10-19-WeakOdr.ll16
-rw-r--r--llvm/test/Transforms/GlobalOpt/2011-04-09-EmptyGlobalCtors.ll5
-rw-r--r--llvm/test/Transforms/GlobalOpt/2012-05-11-blockaddress.ll16
-rw-r--r--llvm/test/Transforms/GlobalOpt/GSROA-section.ll30
-rw-r--r--llvm/test/Transforms/GlobalOpt/MallocSROA-section-no-null-opt.ll34
-rw-r--r--llvm/test/Transforms/GlobalOpt/MallocSROA-section.ll28
-rw-r--r--llvm/test/Transforms/GlobalOpt/PowerPC/coldcc_coldsites.ll81
-rw-r--r--llvm/test/Transforms/GlobalOpt/PowerPC/lit.local.cfg3
-rw-r--r--llvm/test/Transforms/GlobalOpt/SROA-section.ll27
-rw-r--r--llvm/test/Transforms/GlobalOpt/alias-resolve.ll46
-rw-r--r--llvm/test/Transforms/GlobalOpt/alias-used-address-space.ll26
-rw-r--r--llvm/test/Transforms/GlobalOpt/alias-used-section.ll8
-rw-r--r--llvm/test/Transforms/GlobalOpt/alias-used.ll66
-rw-r--r--llvm/test/Transforms/GlobalOpt/amdgcn-ctor-alloca.ll17
-rw-r--r--llvm/test/Transforms/GlobalOpt/array-elem-refs.ll32
-rw-r--r--llvm/test/Transforms/GlobalOpt/assume.ll21
-rw-r--r--llvm/test/Transforms/GlobalOpt/atexit.ll6
-rw-r--r--llvm/test/Transforms/GlobalOpt/atomic.ll25
-rw-r--r--llvm/test/Transforms/GlobalOpt/available_externally_global_ctors.ll22
-rw-r--r--llvm/test/Transforms/GlobalOpt/basictest.ll10
-rw-r--r--llvm/test/Transforms/GlobalOpt/blockaddress.ll23
-rw-r--r--llvm/test/Transforms/GlobalOpt/cleanup-pointer-root-users.ll49
-rw-r--r--llvm/test/Transforms/GlobalOpt/coldcc_stress_test.ll48
-rw-r--r--llvm/test/Transforms/GlobalOpt/compiler-used.ll16
-rw-r--r--llvm/test/Transforms/GlobalOpt/constantexpr-dangle.ll12
-rw-r--r--llvm/test/Transforms/GlobalOpt/constantfold-initializers.ll103
-rw-r--r--llvm/test/Transforms/GlobalOpt/crash-2.ll19
-rw-r--r--llvm/test/Transforms/GlobalOpt/crash.ll80
-rw-r--r--llvm/test/Transforms/GlobalOpt/ctor-list-opt-constexpr.ll34
-rw-r--r--llvm/test/Transforms/GlobalOpt/ctor-list-opt-inbounds.ll23
-rw-r--r--llvm/test/Transforms/GlobalOpt/ctor-list-opt.ll115
-rw-r--r--llvm/test/Transforms/GlobalOpt/cxx-dtor.ll33
-rw-r--r--llvm/test/Transforms/GlobalOpt/deaddeclaration.ll7
-rw-r--r--llvm/test/Transforms/GlobalOpt/deadfunction.ll27
-rw-r--r--llvm/test/Transforms/GlobalOpt/deadglobal-2.ll11
-rw-r--r--llvm/test/Transforms/GlobalOpt/deadglobal.ll28
-rw-r--r--llvm/test/Transforms/GlobalOpt/evaluate-bitcast.ll28
-rw-r--r--llvm/test/Transforms/GlobalOpt/evaluate-call-errors.ll99
-rw-r--r--llvm/test/Transforms/GlobalOpt/evaluate-call.ll87
-rw-r--r--llvm/test/Transforms/GlobalOpt/evaluate-constfold-call.ll55
-rw-r--r--llvm/test/Transforms/GlobalOpt/externally-initialized-aggregate.ll50
-rw-r--r--llvm/test/Transforms/GlobalOpt/externally-initialized-global-ctr.ll35
-rw-r--r--llvm/test/Transforms/GlobalOpt/externally-initialized.ll37
-rw-r--r--llvm/test/Transforms/GlobalOpt/fastcc.ll55
-rw-r--r--llvm/test/Transforms/GlobalOpt/global-demotion.ll80
-rw-r--r--llvm/test/Transforms/GlobalOpt/globalsra-multigep.ll16
-rw-r--r--llvm/test/Transforms/GlobalOpt/globalsra-partial.ll25
-rw-r--r--llvm/test/Transforms/GlobalOpt/globalsra-unknown-index.ll54
-rw-r--r--llvm/test/Transforms/GlobalOpt/globalsra.ll45
-rw-r--r--llvm/test/Transforms/GlobalOpt/heap-sra-1-no-null-opt.ll40
-rw-r--r--llvm/test/Transforms/GlobalOpt/heap-sra-1.ll45
-rw-r--r--llvm/test/Transforms/GlobalOpt/heap-sra-2-no-null-opt.ll39
-rw-r--r--llvm/test/Transforms/GlobalOpt/heap-sra-2.ll45
-rw-r--r--llvm/test/Transforms/GlobalOpt/heap-sra-3-no-null-opt.ll41
-rw-r--r--llvm/test/Transforms/GlobalOpt/heap-sra-3.ll46
-rw-r--r--llvm/test/Transforms/GlobalOpt/heap-sra-4-no-null-opt.ll44
-rw-r--r--llvm/test/Transforms/GlobalOpt/heap-sra-4.ll47
-rw-r--r--llvm/test/Transforms/GlobalOpt/heap-sra-phi-no-null-opt.ll54
-rw-r--r--llvm/test/Transforms/GlobalOpt/heap-sra-phi.ll52
-rw-r--r--llvm/test/Transforms/GlobalOpt/int_sideeffect.ll16
-rw-r--r--llvm/test/Transforms/GlobalOpt/integer-bool-dwarf.ll61
-rw-r--r--llvm/test/Transforms/GlobalOpt/integer-bool.ll28
-rw-r--r--llvm/test/Transforms/GlobalOpt/invariant-nodatalayout.ll17
-rw-r--r--llvm/test/Transforms/GlobalOpt/invariant.group.ll79
-rw-r--r--llvm/test/Transforms/GlobalOpt/invariant.ll59
-rw-r--r--llvm/test/Transforms/GlobalOpt/invoke.ll27
-rw-r--r--llvm/test/Transforms/GlobalOpt/iterate.ll11
-rw-r--r--llvm/test/Transforms/GlobalOpt/load-store-global-no-null-opt.ll28
-rw-r--r--llvm/test/Transforms/GlobalOpt/load-store-global.ll38
-rw-r--r--llvm/test/Transforms/GlobalOpt/localize-constexpr-debuginfo.ll70
-rw-r--r--llvm/test/Transforms/GlobalOpt/localize-constexpr.ll28
-rw-r--r--llvm/test/Transforms/GlobalOpt/malloc-promote-1-no-null-opt.ll31
-rw-r--r--llvm/test/Transforms/GlobalOpt/malloc-promote-1.ll32
-rw-r--r--llvm/test/Transforms/GlobalOpt/malloc-promote-2-no-null-opt.ll24
-rw-r--r--llvm/test/Transforms/GlobalOpt/malloc-promote-2.ll27
-rw-r--r--llvm/test/Transforms/GlobalOpt/malloc-promote-3.ll18
-rw-r--r--llvm/test/Transforms/GlobalOpt/memcpy.ll13
-rw-r--r--llvm/test/Transforms/GlobalOpt/memset-null.ll29
-rw-r--r--llvm/test/Transforms/GlobalOpt/memset.ll31
-rw-r--r--llvm/test/Transforms/GlobalOpt/metadata.ll32
-rw-r--r--llvm/test/Transforms/GlobalOpt/musttail_cc.ll34
-rw-r--r--llvm/test/Transforms/GlobalOpt/naked_functions.ll23
-rw-r--r--llvm/test/Transforms/GlobalOpt/phi-select.ll27
-rw-r--r--llvm/test/Transforms/GlobalOpt/pr21191.ll19
-rw-r--r--llvm/test/Transforms/GlobalOpt/pr33686.ll17
-rw-r--r--llvm/test/Transforms/GlobalOpt/preserve-comdats.ll37
-rw-r--r--llvm/test/Transforms/GlobalOpt/shrink-address-to-bool.ll46
-rw-r--r--llvm/test/Transforms/GlobalOpt/shrink-global-to-bool-check-debug.ll22
-rw-r--r--llvm/test/Transforms/GlobalOpt/static-const-bitcast.ll62
-rw-r--r--llvm/test/Transforms/GlobalOpt/storepointer-compare-no-null-opt.ll40
-rw-r--r--llvm/test/Transforms/GlobalOpt/storepointer-compare.ll29
-rw-r--r--llvm/test/Transforms/GlobalOpt/storepointer-no-null-opt.ll27
-rw-r--r--llvm/test/Transforms/GlobalOpt/storepointer.ll19
-rw-r--r--llvm/test/Transforms/GlobalOpt/tls.ll54
-rw-r--r--llvm/test/Transforms/GlobalOpt/trivialstore.ll19
-rw-r--r--llvm/test/Transforms/GlobalOpt/undef-init.ll17
-rw-r--r--llvm/test/Transforms/GlobalOpt/unnamed-addr.ll74
-rw-r--r--llvm/test/Transforms/GlobalOpt/zeroinitializer-gep-load.ll11
125 files changed, 0 insertions, 4516 deletions
diff --git a/llvm/test/Transforms/GlobalOpt/2004-10-10-CastStoreOnce.ll b/llvm/test/Transforms/GlobalOpt/2004-10-10-CastStoreOnce.ll
deleted file mode 100644
index 061b9b0670f..00000000000
--- a/llvm/test/Transforms/GlobalOpt/2004-10-10-CastStoreOnce.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; RUN: opt < %s -globalopt
-
-@V = global float 1.200000e+01 ; <float*> [#uses=1]
-@G = internal global i32* null ; <i32**> [#uses=2]
-
-define i32 @user() {
- %P = load i32*, i32** @G ; <i32*> [#uses=1]
- %Q = load i32, i32* %P ; <i32> [#uses=1]
- ret i32 %Q
-}
-
-define void @setter() {
- %Vi = bitcast float* @V to i32* ; <i32*> [#uses=1]
- store i32* %Vi, i32** @G
- ret void
-}
-
diff --git a/llvm/test/Transforms/GlobalOpt/2005-06-15-LocalizeConstExprCrash.ll b/llvm/test/Transforms/GlobalOpt/2005-06-15-LocalizeConstExprCrash.ll
deleted file mode 100644
index 3efbde42341..00000000000
--- a/llvm/test/Transforms/GlobalOpt/2005-06-15-LocalizeConstExprCrash.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: opt < %s -globalopt -disable-output
-; PR579
-
-@g_40507551 = internal global i16 31038 ; <i16*> [#uses=1]
-
-define void @main() {
- %tmp.4.i.1 = load i8, i8* getelementptr (i8, i8* bitcast (i16* @g_40507551 to i8*), i32 1) ; <i8> [#uses=0]
- ret void
-}
-
diff --git a/llvm/test/Transforms/GlobalOpt/2005-09-27-Crash.ll b/llvm/test/Transforms/GlobalOpt/2005-09-27-Crash.ll
deleted file mode 100644
index 061c88159dd..00000000000
--- a/llvm/test/Transforms/GlobalOpt/2005-09-27-Crash.ll
+++ /dev/null
@@ -1,27 +0,0 @@
-; RUN: opt < %s -globalopt -disable-output
- %RPyString = type { i32, %arraytype.Char }
- %arraytype.Char = type { i32, [0 x i8] }
- %arraytype.Signed = type { i32, [0 x i32] }
- %functiontype.1 = type { %RPyString* (i32) *}
- %structtype.test = type { i32, %arraytype.Signed }
-@structinstance.test = internal global { i32, { i32, [2 x i32] } } { i32 41, { i32, [2 x i32] } { i32 2, [2 x i32] [ i32 100, i32 101 ] } } ; <{ i32, { i32, [2 x i32] } }*> [#uses=1]
-
-define fastcc void @pypy_array_constant() {
-block0:
- %tmp.9 = getelementptr %structtype.test, %structtype.test* bitcast ({ i32, { i32, [2 x i32] } }* @structinstance.test to %structtype.test*), i32 0, i32 0 ; <i32*> [#uses=0]
- ret void
-}
-
-define fastcc void @new.varsizestruct.rpy_string() {
- unreachable
-}
-
-define void @__entrypoint__pypy_array_constant() {
- call fastcc void @pypy_array_constant( )
- ret void
-}
-
-define void @__entrypoint__raised_LLVMException() {
- ret void
-}
-
diff --git a/llvm/test/Transforms/GlobalOpt/2006-07-07-InlineAsmCrash.ll b/llvm/test/Transforms/GlobalOpt/2006-07-07-InlineAsmCrash.ll
deleted file mode 100644
index 419ae101966..00000000000
--- a/llvm/test/Transforms/GlobalOpt/2006-07-07-InlineAsmCrash.ll
+++ /dev/null
@@ -1,135 +0,0 @@
-; RUN: opt < %s -globalopt -disable-output
-; PR820
-target datalayout = "e-p:32:32"
-target triple = "i686-pc-linux-gnu"
- %struct..0FileDescriptor = type { i32 }
- %"struct.FlagDescription<int32>" = type { i8*, i32*, i1, i1, i32, i8* }
- %"struct.FlagRegisterer<bool>" = type { i8 }
- %struct.MutexLock = type { %struct..0FileDescriptor* }
- %"struct.std::DisabledRangeMap" = type { %"struct.std::_Rb_tree<const char*,std::pair<const char* const, FlagDescription<bool> >,std::_Select1st<std::pair<const char* const, FlagDescription<bool> > >,StringCmp,std::allocator<std::pair<const char* const, FlagDescription<bool> > > >" }
- %"struct.std::_Rb_tree<const char*,std::pair<const char* const, FlagDescription<bool> >,std::_Select1st<std::pair<const char* const, FlagDescription<bool> > >,StringCmp,std::allocator<std::pair<const char* const, FlagDescription<bool> > > >" = type { %"struct.std::_Rb_tree<const char*,std::pair<const char* const, FlagDescription<bool> >,std::_Select1st<std::pair<const char* const, FlagDescription<bool> > >,StringCmp,std::allocator<std::pair<const char* const, FlagDescription<bool> > > >::_Rb_tree_impl<StringCmp,false>" }
- %"struct.std::_Rb_tree<const char*,std::pair<const char* const, FlagDescription<bool> >,std::_Select1st<std::pair<const char* const, FlagDescription<bool> > >,StringCmp,std::allocator<std::pair<const char* const, FlagDescription<bool> > > >::_Rb_tree_impl<StringCmp,false>" = type { %"struct.FlagRegisterer<bool>", %"struct.std::_Rb_tree_node_base", i32 }
- %"struct.std::_Rb_tree_const_iterator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >" = type { %"struct.std::_Rb_tree_node_base"* }
- %"struct.std::_Rb_tree_node_base" = type { i32, %"struct.std::_Rb_tree_node_base"*, %"struct.std::_Rb_tree_node_base"*, %"struct.std::_Rb_tree_node_base"* }
- %"struct.std::_Vector_base<int,std::allocator<int> >" = type { %"struct.std::_Vector_base<int,std::allocator<int> >::_Vector_impl" }
- %"struct.std::_Vector_base<int,std::allocator<int> >::_Vector_impl" = type { i32*, i32*, i32* }
- %"struct.std::vector<int,std::allocator<int> >" = type { %"struct.std::_Vector_base<int,std::allocator<int> >" }
-@registry_lock = external global %struct..0FileDescriptor ; <%struct..0FileDescriptor*> [#uses=0]
-@_ZN61FLAG__foo_int32_44FLAGS_E = external global %"struct.FlagRegisterer<bool>" ; <%"struct.FlagRegisterer<bool>"*> [#uses=0]
-@llvm.global_ctors = appending global [20 x { i32, void ()* }] [ { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZN62FLAG__foo_string_10FLAGS_E }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZN60FLAG__foo_bool_19FLAGS_E }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZNK5Bzh4Enum13is_contiguousEv }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZN62FLAG__foo_string_17FLAGS_E }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZN61FLAG__foo_int32_21FLAGS_E }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZN7ScannerC2Ev }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__Z11StripStringPSsPKcc }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZNK9__gnu_cxx4hashI11StringPieceEclERKS1_ }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZN8Hasher325ResetEj }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__Z25ACLRv }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZN61FLAG__foo_int64_25FLAGS_E }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZN61FLAG__foo_int32_7FLAGS_E }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZN62FLAG__foo_string_18FLAGS_E }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZN62FLAG__foo_string_17FLAGS_E }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZN61FLAG__foo_int32_25FLAGS_E }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I_eventbuf }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZN61FLAG__foo_int32_26FLAGS_E }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZN62FLAG__foo_string_16FLAGS_E }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZN17InitializerC2EPKcS1_PFvvE }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__checker_bcad_variable } ] ; <[20 x { i32, void ()* }]*> [#uses=0]
-
-declare void @_GLOBAL__I__ZN62FLAG__foo_string_10FLAGS_E()
-
-declare void @_GLOBAL__I__ZN60FLAG__foo_bool_19FLAGS_E()
-
-declare void @_GLOBAL__I__ZNK5Bzh4Enum13is_contiguousEv()
-
-declare void @_GLOBAL__I__ZN62FLAG__foo_string_17FLAGS_E()
-
-declare void @_GLOBAL__I__ZN61FLAG__foo_int32_21FLAGS_E()
-
-define void @_ZN14FlagRegistererIiEC1EPKcRK15FlagDescriptionIiE() {
-entry:
- call void @_Z12RegisterFlagIiEvPKcRK15FlagDescriptionIT_E( )
- ret void
-}
-
-define void @_Z12RegisterFlagIiEvPKcRK15FlagDescriptionIT_E() {
-entry:
- call void @_ZN9MutexLockC1EP5Mutex( )
- ret void
-}
-
-declare void @_GLOBAL__I__ZN7ScannerC2Ev()
-
-declare void @_GLOBAL__I__Z11StripStringPSsPKcc()
-
-define void @_ZNSt6vectorIiSaIiEEC1ERKS0_() {
-entry:
- unreachable
-}
-
-declare void @_GLOBAL__I__ZNK9__gnu_cxx4hashI11StringPieceEclERKS1_()
-
-declare void @_GLOBAL__I__ZN8Hasher325ResetEj()
-
-declare void @_GLOBAL__I__Z25ACLRv()
-
-define void @_ZN9MutexLockC1EP5Mutex() {
-entry:
- call void @_ZN5Mutex4LockEv( )
- ret void
-}
-
-define void @_ZN5Mutex4LockEv() {
-entry:
- call void @_Z22Acquire_CASPViii( )
- ret void
-}
-
-define void @_ZNSt3mapIPKc15FlagDescriptionIiE9StringCmpSaISt4pairIKS1_S3_EEE3endEv(%"struct.std::_Rb_tree_const_iterator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >"* sret %agg.result) {
-entry:
- unreachable
-}
-
-declare void @_GLOBAL__I__ZN61FLAG__foo_int64_25FLAGS_E()
-
-define void @_Z14CASPViii() {
-entry:
- %tmp3 = call i32 asm sideeffect "lock; cmpxchg $1,$2", "={ax},q,m,0,~{dirflag},~{fpsr},~{flags},~{memory}"( i32 0, i32* null, i32 0 ) ; <i32> [#uses=0]
- unreachable
-}
-
-declare void @_GLOBAL__I__ZN61FLAG__foo_int32_7FLAGS_E()
-
-declare void @_GLOBAL__I__ZN62FLAG__foo_string_18FLAGS_E()
-
-define void @_Z22Acquire_CASPViii() {
-entry:
- call void @_Z14CASPViii( )
- unreachable
-}
-
-declare void @_GLOBAL__I__ZN61FLAG__foo_int32_25FLAGS_E()
-
-declare void @_GLOBAL__I_eventbuf()
-
-define void @_GLOBAL__I__ZN61FLAG__foo_int32_26FLAGS_E() {
-entry:
- call void @_Z41__static_initialization_and_destruction_0ii1662( i32 1, i32 65535 )
- ret void
-}
-
-define void @_Z41__static_initialization_and_destruction_0ii1662(i32 %__initialize_p, i32 %__priority) {
-entry:
- %__initialize_p_addr = alloca i32 ; <i32*> [#uses=2]
- %__priority_addr = alloca i32 ; <i32*> [#uses=2]
- store i32 %__initialize_p, i32* %__initialize_p_addr
- store i32 %__priority, i32* %__priority_addr
- %tmp = load i32, i32* %__priority_addr ; <i32> [#uses=1]
- %tmp.upgrd.1 = icmp eq i32 %tmp, 65535 ; <i1> [#uses=1]
- br i1 %tmp.upgrd.1, label %cond_true, label %cond_next14
-
-cond_true: ; preds = %entry
- %tmp8 = load i32, i32* %__initialize_p_addr ; <i32> [#uses=1]
- %tmp9 = icmp eq i32 %tmp8, 1 ; <i1> [#uses=1]
- br i1 %tmp9, label %cond_true10, label %cond_next14
-
-cond_true10: ; preds = %cond_true
- call void @_ZN14FlagRegistererIiEC1EPKcRK15FlagDescriptionIiE( )
- ret void
-
-cond_next14: ; preds = %cond_true, %entry
- ret void
-}
-
-declare void @_GLOBAL__I__ZN62FLAG__foo_string_16FLAGS_E()
-
-define void @_ZN9__gnu_cxx13new_allocatorIPNS_15_Hashtable_nodeIjEEEC2Ev() {
-entry:
- unreachable
-}
-
-declare void @_GLOBAL__I__ZN17InitializerC2EPKcS1_PFvvE()
-
-declare void @_GLOBAL__I__checker_bcad_variable()
diff --git a/llvm/test/Transforms/GlobalOpt/2006-11-01-ShrinkGlobalPhiCrash.ll b/llvm/test/Transforms/GlobalOpt/2006-11-01-ShrinkGlobalPhiCrash.ll
deleted file mode 100644
index 7b62cf08a4b..00000000000
--- a/llvm/test/Transforms/GlobalOpt/2006-11-01-ShrinkGlobalPhiCrash.ll
+++ /dev/null
@@ -1,33 +0,0 @@
-; RUN: opt < %s -globalopt -disable-output
-
- %struct._list = type { i32*, %struct._list* }
- %struct._play = type { i32, i32*, %struct._list*, %struct._play* }
-@nrow = internal global i32 0 ; <i32*> [#uses=2]
-
-define void @make_play() {
-entry:
- br label %cond_true16.i
-
-cond_true16.i: ; preds = %cond_true16.i, %entry
- %low.0.in.i.0 = phi i32* [ @nrow, %entry ], [ null, %cond_true16.i ] ; <i32*> [#uses=1]
- %low.0.i = load i32, i32* %low.0.in.i.0 ; <i32> [#uses=0]
- br label %cond_true16.i
-}
-
-define void @make_wanted() {
-entry:
- unreachable
-}
-
-define void @get_good_move() {
-entry:
- ret void
-}
-
-define void @main() {
-entry:
- store i32 8, i32* @nrow
- tail call void @make_play( )
- ret void
-}
-
diff --git a/llvm/test/Transforms/GlobalOpt/2007-04-05-Crash.ll b/llvm/test/Transforms/GlobalOpt/2007-04-05-Crash.ll
deleted file mode 100644
index f312fbbc9f9..00000000000
--- a/llvm/test/Transforms/GlobalOpt/2007-04-05-Crash.ll
+++ /dev/null
@@ -1,34 +0,0 @@
-; RUN: opt < %s -globalopt -disable-output
-
-target datalayout = "e-p:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:32-f32:32:32-f64:32:32-v64:64:64-v128:128:128-a0:0:32"
-target triple = "thumb-apple-darwin8"
-@replacementUnichar = internal global i16 -3 ; <i16*> [#uses=2]
-@"L_OBJC_IMAGE_INFO" = internal global [2 x i32] zeroinitializer ; <[2 x i32]*> [#uses=1]
-@llvm.used = appending global [1 x i8*] [ i8* bitcast ([2 x i32]* @"L_OBJC_IMAGE_INFO" to i8*) ] ; <[1 x i8*]*> [#uses=0]
-
-define zeroext i16 @__NSCharToUnicharCFWrapper(i8 zeroext %ch) {
-entry:
- %iftmp.0.0.in.in = select i1 false, i16* @replacementUnichar, i16* null ; <i16*> [#uses=1]
- %iftmp.0.0.in = load i16, i16* %iftmp.0.0.in.in ; <i16> [#uses=1]
- ret i16 %iftmp.0.0.in
-}
-
-define void @__NSASCIICharToUnichar() {
-entry:
- ret void
-}
-
-define void @_NSDefaultCStringEncoding() {
-entry:
- call void @__NSSetCStringCharToUnichar( )
- br i1 false, label %cond_true6, label %cond_next8
-
-cond_true6: ; preds = %entry
- store i16 -2, i16* @replacementUnichar
- ret void
-
-cond_next8: ; preds = %entry
- ret void
-}
-
-declare void @__NSSetCStringCharToUnichar()
diff --git a/llvm/test/Transforms/GlobalOpt/2007-05-13-Crash.ll b/llvm/test/Transforms/GlobalOpt/2007-05-13-Crash.ll
deleted file mode 100644
index bed4fec981e..00000000000
--- a/llvm/test/Transforms/GlobalOpt/2007-05-13-Crash.ll
+++ /dev/null
@@ -1,74 +0,0 @@
-; RUN: opt < %s -globalopt -disable-output
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64"
-target triple = "i686-apple-darwin8"
- %struct.SFLMutableListItem = type { i16 }
- %struct.__CFDictionary = type opaque
- %struct.__CFString = type opaque
- %struct.__builtin_CFString = type { i32*, i32, i8*, i32 }
-@_ZZ19SFLGetVisibilityKeyvE19_kSFLLVisibilityKey = internal global %struct.__CFString* null ; <%struct.__CFString**> [#uses=2]
-@_ZZ22SFLGetAlwaysVisibleKeyvE22_kSFLLAlwaysVisibleKey = internal global %struct.__CFString* null ; <%struct.__CFString**> [#uses=7]
-@0 = internal constant %struct.__builtin_CFString {
- i32* getelementptr ([0 x i32], [0 x i32]* @__CFConstantStringClassReference, i32 0, i32 0),
- i32 1992,
- i8* getelementptr ([14 x i8], [14 x i8]* @.str, i32 0, i32 0),
- i32 13 }, section "__DATA,__cfstring" ; <%struct.__builtin_CFString*>:0 [#uses=1]
-@__CFConstantStringClassReference = external global [0 x i32] ; <[0 x i32]*> [#uses=1]
-@.str = internal constant [14 x i8] c"AlwaysVisible\00" ; <[14 x i8]*> [#uses=1]
-@_ZZ21SFLGetNeverVisibleKeyvE21_kSFLLNeverVisibleKey = internal global %struct.__CFString* null ; <%struct.__CFString**> [#uses=2]
-
-define %struct.__CFString* @_Z19SFLGetVisibilityKeyv() {
-entry:
- %tmp1 = load %struct.__CFString*, %struct.__CFString** @_ZZ19SFLGetVisibilityKeyvE19_kSFLLVisibilityKey ; <%struct.__CFString*> [#uses=1]
- ret %struct.__CFString* %tmp1
-}
-
-define %struct.__CFString* @_Z22SFLGetAlwaysVisibleKeyv() {
-entry:
- %tmp1 = load %struct.__CFString*, %struct.__CFString** @_ZZ22SFLGetAlwaysVisibleKeyvE22_kSFLLAlwaysVisibleKey ; <%struct.__CFString*> [#uses=1]
- %tmp2 = icmp eq %struct.__CFString* %tmp1, null ; <i1> [#uses=1]
- br i1 %tmp2, label %cond_true, label %cond_next
-
-cond_true: ; preds = %entry
- store %struct.__CFString* bitcast (%struct.__builtin_CFString* @0 to %struct.__CFString*), %struct.__CFString** @_ZZ22SFLGetAlwaysVisibleKeyvE22_kSFLLAlwaysVisibleKey
- br label %cond_next
-
-cond_next: ; preds = %entry, %cond_true
- %tmp4 = load %struct.__CFString*, %struct.__CFString** @_ZZ22SFLGetAlwaysVisibleKeyvE22_kSFLLAlwaysVisibleKey ; <%struct.__CFString*> [#uses=1]
- ret %struct.__CFString* %tmp4
-}
-
-define %struct.__CFString* @_Z21SFLGetNeverVisibleKeyv() {
-entry:
- %tmp1 = load %struct.__CFString*, %struct.__CFString** @_ZZ21SFLGetNeverVisibleKeyvE21_kSFLLNeverVisibleKey ; <%struct.__CFString*> [#uses=1]
- ret %struct.__CFString* %tmp1
-}
-
-define %struct.__CFDictionary* @_ZN18SFLMutableListItem18GetPrefsDictionaryEv(%struct.SFLMutableListItem* %this) {
-entry:
- %tmp4 = getelementptr %struct.SFLMutableListItem, %struct.SFLMutableListItem* %this, i32 0, i32 0 ; <i16*> [#uses=1]
- %tmp5 = load i16, i16* %tmp4 ; <i16> [#uses=1]
- %tmp6 = icmp eq i16 %tmp5, 0 ; <i1> [#uses=1]
- br i1 %tmp6, label %cond_next22, label %cond_true
-
-cond_true: ; preds = %entry
- %tmp9 = load %struct.__CFString*, %struct.__CFString** @_ZZ22SFLGetAlwaysVisibleKeyvE22_kSFLLAlwaysVisibleKey ; <%struct.__CFString*> [#uses=1]
- %tmp10 = icmp eq %struct.__CFString* %tmp9, null ; <i1> [#uses=1]
- br i1 %tmp10, label %cond_true13, label %cond_next22
-
-cond_true13: ; preds = %cond_true
- store %struct.__CFString* bitcast (%struct.__builtin_CFString* @0 to %struct.__CFString*), %struct.__CFString** @_ZZ22SFLGetAlwaysVisibleKeyvE22_kSFLLAlwaysVisibleKey
- br label %cond_next22
-
-cond_next22: ; preds = %entry, %cond_true13, %cond_true
- %iftmp.1.0.in = phi %struct.__CFString** [ @_ZZ22SFLGetAlwaysVisibleKeyvE22_kSFLLAlwaysVisibleKey, %cond_true ], [ @_ZZ22SFLGetAlwaysVisibleKeyvE22_kSFLLAlwaysVisibleKey, %cond_true13 ], [ @_ZZ21SFLGetNeverVisibleKeyvE21_kSFLLNeverVisibleKey, %entry ] ; <%struct.__CFString**> [#uses=1]
- %iftmp.1.0 = load %struct.__CFString*, %struct.__CFString** %iftmp.1.0.in ; <%struct.__CFString*> [#uses=1]
- %tmp24 = load %struct.__CFString*, %struct.__CFString** @_ZZ19SFLGetVisibilityKeyvE19_kSFLLVisibilityKey ; <%struct.__CFString*> [#uses=1]
- %tmp2728 = bitcast %struct.__CFString* %tmp24 to i8* ; <i8*> [#uses=1]
- %tmp2930 = bitcast %struct.__CFString* %iftmp.1.0 to i8* ; <i8*> [#uses=1]
- call void @_Z20CFDictionaryAddValuePKvS0_( i8* %tmp2728, i8* %tmp2930 )
- ret %struct.__CFDictionary* undef
-}
-
-declare void @_Z20CFDictionaryAddValuePKvS0_(i8*, i8*)
-
diff --git a/llvm/test/Transforms/GlobalOpt/2007-06-04-PackedStruct.ll b/llvm/test/Transforms/GlobalOpt/2007-06-04-PackedStruct.ll
deleted file mode 100644
index f6e0bb70d63..00000000000
--- a/llvm/test/Transforms/GlobalOpt/2007-06-04-PackedStruct.ll
+++ /dev/null
@@ -1,36 +0,0 @@
-; RUN: opt < %s -globalopt -disable-output
-; PR1491
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64"
-target triple = "i686-pc-linux-gnu"
- %"struct.__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<const int, int> > >" = type <{ i8 }>
- %"struct.std::_Rb_tree<int,std::pair<const int, int>,std::_Select1st<std::pair<const int, int> >,std::less<int>,std::allocator<std::pair<const int, int> > >" = type { %"struct.std::_Rb_tree<int,std::pair<const int, int>,std::_Select1st<std::pair<const int, int> >,std::less<int>,std::allocator<std::pair<const int, int> > >::_Rb_tree_impl<std::less<int>,false>" }
- %"struct.std::_Rb_tree<int,std::pair<const int, int>,std::_Select1st<std::pair<const int, int> >,std::less<int>,std::allocator<std::pair<const int, int> > >::_Rb_tree_impl<std::less<int>,false>" = type { %"struct.__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<const int, int> > >", %"struct.std::_Rb_tree_node_base", i32 }
- %"struct.std::_Rb_tree_node_base" = type { i32, %"struct.std::_Rb_tree_node_base"*, %"struct.std::_Rb_tree_node_base"*, %"struct.std::_Rb_tree_node_base"* }
- %"struct.std::map<int,int,std::less<int>,std::allocator<std::pair<const int, int> > >" = type { %"struct.std::_Rb_tree<int,std::pair<const int, int>,std::_Select1st<std::pair<const int, int> >,std::less<int>,std::allocator<std::pair<const int, int> > >" }
-@someMap = global %"struct.std::map<int,int,std::less<int>,std::allocator<std::pair<const int, int> > >" zeroinitializer ; <%"struct.std::map<int,int,std::less<int>,std::allocator<std::pair<const int, int> > >"*> [#uses=1]
-@llvm.global_ctors = appending global [1 x { i32, void ()* }] [ { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I_someMap } ] ; <[1 x { i32, void ()* }]*> [#uses=0]
-@llvm.global_dtors = appending global [1 x { i32, void ()* }] [ { i32, void ()* } { i32 65535, void ()* @_GLOBAL__D_someMap } ] ; <[1 x { i32, void ()* }]*> [#uses=0]
-
-define void @_GLOBAL__I_someMap() {
-entry:
- call void @_Z41__static_initialization_and_destruction_0ii( i32 1, i32 65535 )
- ret void
-}
-
-declare void @_GLOBAL__D_someMap()
-
-define void @_Z41__static_initialization_and_destruction_0ii(i32 %__initialize_p, i32 %__priority) {
-entry:
- %tmp1 = icmp eq i32 %__priority, 65535 ; <i1> [#uses=1]
- %tmp4 = icmp eq i32 %__initialize_p, 1 ; <i1> [#uses=1]
- %tmp7 = and i1 %tmp1, %tmp4 ; <i1> [#uses=1]
- br i1 %tmp7, label %cond_true, label %cond_next
-
-cond_true: ; preds = %entry
- store i8 0, i8* getelementptr (%"struct.std::map<int,int,std::less<int>,std::allocator<std::pair<const int, int> > >", %"struct.std::map<int,int,std::less<int>,std::allocator<std::pair<const int, int> > >"* @someMap, i32 0, i32 0, i32 0, i32 0, i32 0)
- ret void
-
-cond_next: ; preds = %entry
- ret void
-}
diff --git a/llvm/test/Transforms/GlobalOpt/2007-11-09-GEP-GEP-Crash.ll b/llvm/test/Transforms/GlobalOpt/2007-11-09-GEP-GEP-Crash.ll
deleted file mode 100644
index f6225cd3ad0..00000000000
--- a/llvm/test/Transforms/GlobalOpt/2007-11-09-GEP-GEP-Crash.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: opt < %s -globalopt -disable-output
-target datalayout = "E-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f128:64:128"
-target triple = "powerpc-unknown-linux-gnu"
- %struct.empty0 = type { }
- %struct.es = type { %struct.empty0 }
- %struct.es1 = type { %struct.empty0 }
-@aaui1 = internal global [6 x [2 x i32]] [ [2 x i32] [ i32 1, i32 1 ], [2 x i32] [ i32 1, i32 1 ], [2 x i32] [ i32 1, i32 1 ], [2 x i32] [ i32 1, i32 1 ], [2 x i32] [ i32 1, i32 1 ], [2 x i32] [ i32 1, i32 1 ] ] ; <[6 x [2 x i32]]*> [#uses=1]
-@aaui0 = internal global [0 x [2 x i32]] zeroinitializer ; <[0 x [2 x i32]]*> [#uses=1]
-
-define i8 @func() {
-entry:
- %tmp10 = getelementptr [2 x i32], [2 x i32]* getelementptr ([6 x [2 x i32]], [6 x [2 x i32]]* @aaui1, i32 0, i32 0), i32 5, i32 1 ; <i32*> [#uses=1]
- %tmp11 = load i32, i32* %tmp10, align 4 ; <i32> [#uses=1]
- %tmp12 = call i32 (...) @func3( i32* null, i32 0, i32 %tmp11 ) ; <i32> [#uses=0]
- ret i8 undef
-}
-
-declare i32 @func3(...)
-
diff --git a/llvm/test/Transforms/GlobalOpt/2008-01-03-Crash.ll b/llvm/test/Transforms/GlobalOpt/2008-01-03-Crash.ll
deleted file mode 100644
index dc41fdb8de4..00000000000
--- a/llvm/test/Transforms/GlobalOpt/2008-01-03-Crash.ll
+++ /dev/null
@@ -1,26 +0,0 @@
-; RUN: opt < %s -globalopt | llvm-dis
-; PR1896
-
-@indirect1 = internal global void (i32)* null ; <void (i32)**> [#uses=2]
-
-declare void @indirectmarked(i32)
-
-define i32 @main() {
-entry:
- br i1 false, label %cond_next20.i, label %cond_true.i9
-
-cond_true.i9: ; preds = %entry
- ret i32 0
-
-cond_next20.i: ; preds = %entry
- store void (i32)* @indirectmarked, void (i32)** @indirect1, align 4
- br i1 false, label %cond_next21.i.i23.i, label %stack_restore
-
-stack_restore: ; preds = %cond_next20.i
- ret i32 0
-
-cond_next21.i.i23.i: ; preds = %cond_next20.i
- %tmp6.i4.i = load i32, i32* bitcast (void (i32)** @indirect1 to i32*), align 4 ; <i32> [#uses=0]
- ret i32 0
-}
-
diff --git a/llvm/test/Transforms/GlobalOpt/2008-01-13-OutOfRangeSROA.ll b/llvm/test/Transforms/GlobalOpt/2008-01-13-OutOfRangeSROA.ll
deleted file mode 100644
index 4adc9607c75..00000000000
--- a/llvm/test/Transforms/GlobalOpt/2008-01-13-OutOfRangeSROA.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-
-; The 'X' indices could be larger than 31. Do not SROA the outer
-; indices of this array.
-; CHECK: @mm = {{.*}} [16 x [31 x double]] zeroinitializer
-@mm = internal global [16 x [31 x double]] zeroinitializer, align 32
-
-define void @test(i32 %X) {
- %P = getelementptr [16 x [31 x double]], [16 x [31 x double]]* @mm, i32 0, i32 0, i32 %X
- store double 1.0, double* %P
- ret void
-}
-
-define double @get(i32 %X) {
- %P = getelementptr [16 x [31 x double]], [16 x [31 x double]]* @mm, i32 0, i32 0, i32 %X
- %V = load double, double* %P
- ret double %V
-}
diff --git a/llvm/test/Transforms/GlobalOpt/2008-01-29-VolatileGlobal.ll b/llvm/test/Transforms/GlobalOpt/2008-01-29-VolatileGlobal.ll
deleted file mode 100644
index 7818e5d642c..00000000000
--- a/llvm/test/Transforms/GlobalOpt/2008-01-29-VolatileGlobal.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-; CHECK: load volatile
-@t0.1441 = internal global double 0x3FD5555555555555, align 8 ; <double*> [#uses=1]
-
-define double @foo() nounwind {
-entry:
- %tmp1 = load volatile double, double* @t0.1441, align 8 ; <double> [#uses=2]
- %tmp4 = fmul double %tmp1, %tmp1 ; <double> [#uses=1]
- ret double %tmp4
-}
diff --git a/llvm/test/Transforms/GlobalOpt/2008-04-26-SROA-Global-Align.ll b/llvm/test/Transforms/GlobalOpt/2008-04-26-SROA-Global-Align.ll
deleted file mode 100644
index c3a6d7b5716..00000000000
--- a/llvm/test/Transforms/GlobalOpt/2008-04-26-SROA-Global-Align.ll
+++ /dev/null
@@ -1,34 +0,0 @@
-; Verify that when @G is SROA'd that the new globals have correct
-; alignments. Elements 0 and 2 must be 16-byte aligned, and element
-; 1 must be at least 8 byte aligned (but could be more).
-
-; RUN: opt < %s -globalopt -S | FileCheck %s
-; CHECK: @G.0 = internal unnamed_addr global {{.*}}align 16
-; CHECK: @G.1 = internal unnamed_addr global {{.*}}align 8
-; CHECK: @G.2 = internal unnamed_addr global {{.*}}align 16
-
-; rdar://5891920
-
-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:32:32-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
-target triple = "x86_64-apple-darwin8"
-
-%T = type { double, double, double }
-
-@G = internal global %T zeroinitializer, align 16
-
-
-define void @test() {
- store double 1.0, double* getelementptr (%T, %T* @G, i32 0, i32 0), align 16
- store double 2.0, double* getelementptr (%T, %T* @G, i32 0, i32 1), align 8
- store double 3.0, double* getelementptr (%T, %T* @G, i32 0, i32 2), align 16
- ret void
-}
-
-define double @test2() {
- %V1 = load double, double* getelementptr (%T, %T* @G, i32 0, i32 0), align 16
- %V2 = load double, double* getelementptr (%T, %T* @G, i32 0, i32 1), align 8
- %V3 = load double, double* getelementptr (%T, %T* @G, i32 0, i32 2), align 16
- %R = fadd double %V1, %V2
- %R2 = fadd double %R, %V3
- ret double %R2
-}
diff --git a/llvm/test/Transforms/GlobalOpt/2008-07-17-addrspace.ll b/llvm/test/Transforms/GlobalOpt/2008-07-17-addrspace.ll
deleted file mode 100644
index b9d2d993240..00000000000
--- a/llvm/test/Transforms/GlobalOpt/2008-07-17-addrspace.ll
+++ /dev/null
@@ -1,28 +0,0 @@
-; This test lets globalopt split the global struct and array into different
-; values. This used to crash, because globalopt forgot to put the new var in the
-; same address space as the old one.
-
-; RUN: opt < %s -globalopt -S | FileCheck %s
-
-; Check that the new global values still have their address space
-; CHECK: addrspace(1) global
-; CHECK: addrspace(1) global
-
-@struct = internal addrspace(1) global { i32, i32 } zeroinitializer
-@array = internal addrspace(1) global [ 2 x i32 ] zeroinitializer
-
-define i32 @foo() {
- %A = load i32, i32 addrspace(1) * getelementptr ({ i32, i32 }, { i32, i32 } addrspace(1) * @struct, i32 0, i32 0)
- %B = load i32, i32 addrspace(1) * getelementptr ([ 2 x i32 ], [ 2 x i32 ] addrspace(1) * @array, i32 0, i32 0)
- ; Use the loaded values, so they won't get removed completely
- %R = add i32 %A, %B
- ret i32 %R
-}
-
-; We put stores in a different function, so that the global variables won't get
-; optimized away completely.
-define void @bar(i32 %R) {
- store i32 %R, i32 addrspace(1) * getelementptr ([ 2 x i32 ], [ 2 x i32 ] addrspace(1) * @array, i32 0, i32 0)
- store i32 %R, i32 addrspace(1) * getelementptr ({ i32, i32 }, { i32, i32 } addrspace(1) * @struct, i32 0, i32 0)
- ret void
-}
diff --git a/llvm/test/Transforms/GlobalOpt/2008-12-16-HeapSRACrash-2.ll b/llvm/test/Transforms/GlobalOpt/2008-12-16-HeapSRACrash-2.ll
deleted file mode 100644
index bd32163e5f9..00000000000
--- a/llvm/test/Transforms/GlobalOpt/2008-12-16-HeapSRACrash-2.ll
+++ /dev/null
@@ -1,28 +0,0 @@
-; RUN: opt < %s -globalopt | llvm-dis
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin7"
- %struct.foo = type { i32, i32 }
-@X = internal global %struct.foo* null ; <%struct.foo**> [#uses=2]
-
-define void @bar(i32 %Size) nounwind noinline {
-entry:
- %malloccall = tail call i8* @malloc(i32 trunc (i64 mul (i64 ptrtoint (i32* getelementptr (i32, i32* null, i32 1) to i64), i64 2000000) to i32))
- %tmp = bitcast i8* %malloccall to [1000000 x %struct.foo]*
- %.sub = getelementptr [1000000 x %struct.foo], [1000000 x %struct.foo]* %tmp, i32 0, i32 0 ; <%struct.foo*> [#uses=1]
- store %struct.foo* %.sub, %struct.foo** @X, align 4
- ret void
-}
-
-declare noalias i8* @malloc(i32)
-
-
-define i32 @baz() nounwind readonly noinline {
-bb1.thread:
- %tmpLD1 = load %struct.foo*, %struct.foo** @X, align 4 ; <%struct.foo*> [#uses=2]
- br label %bb1
-
-bb1: ; preds = %bb1, %bb1.thread
- %tmp = phi %struct.foo* [ %tmpLD1, %bb1.thread ], [ %tmpLD1, %bb1 ] ; <%struct.foo*> [#uses=1]
- %0 = getelementptr %struct.foo, %struct.foo* %tmp, i32 1 ; <%struct.foo*> [#uses=0]
- br label %bb1
-}
diff --git a/llvm/test/Transforms/GlobalOpt/2008-12-16-HeapSRACrash.ll b/llvm/test/Transforms/GlobalOpt/2008-12-16-HeapSRACrash.ll
deleted file mode 100644
index e9c16785afa..00000000000
--- a/llvm/test/Transforms/GlobalOpt/2008-12-16-HeapSRACrash.ll
+++ /dev/null
@@ -1,30 +0,0 @@
-; RUN: opt < %s -globalopt | llvm-dis
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin7"
- %struct.foo = type { i32, i32 }
-@X = internal global %struct.foo* null ; <%struct.foo**> [#uses=2]
-
-define void @bar(i32 %Size) nounwind noinline {
-entry:
- %malloccall = tail call i8* @malloc(i32 trunc (i64 mul (i64 ptrtoint (i32* getelementptr (i32, i32* null, i32 1) to i64), i64 2000000) to i32))
- %tmp = bitcast i8* %malloccall to [1000000 x %struct.foo]*
- %.sub = getelementptr [1000000 x %struct.foo], [1000000 x %struct.foo]* %tmp, i32 0, i32 0 ; <%struct.foo*> [#uses=1]
- store %struct.foo* %.sub, %struct.foo** @X, align 4
- ret void
-}
-
-declare noalias i8* @malloc(i32)
-
-define i32 @baz() nounwind readonly noinline {
-bb1.thread:
- %tmpLD1 = load %struct.foo*, %struct.foo** @X, align 4 ; <%struct.foo*> [#uses=3]
- store %struct.foo* %tmpLD1, %struct.foo** null
- br label %bb1
-
-bb1: ; preds = %bb1, %bb1.thread
- %tmp = phi %struct.foo* [ %tmpLD1, %bb1.thread ], [ %tmpLD1, %bb1 ] ; <%struct.foo*> [#uses=0]
- br i1 false, label %bb2, label %bb1
-
-bb2: ; preds = %bb1
- ret i32 0
-}
diff --git a/llvm/test/Transforms/GlobalOpt/2009-01-13-phi-user.ll b/llvm/test/Transforms/GlobalOpt/2009-01-13-phi-user.ll
deleted file mode 100644
index 7ad24b92a2d..00000000000
--- a/llvm/test/Transforms/GlobalOpt/2009-01-13-phi-user.ll
+++ /dev/null
@@ -1,36 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-; CHECK: phi{{.*}}@head
-; PR3321
-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"
-target triple = "x86_64-unknown-linux-gnu"
- %struct.node = type { %struct.node*, i32 }
-@head = internal global %struct.node* null ; <%struct.node**> [#uses=2]
-@node = internal global %struct.node { %struct.node* null, i32 42 }, align 16 ; <%struct.node*> [#uses=1]
-
-define i32 @f() nounwind {
-entry:
- store %struct.node* @node, %struct.node** @head, align 8
- br label %bb1
-
-bb: ; preds = %bb1
- %0 = getelementptr %struct.node, %struct.node* %t.0, i64 0, i32 1 ; <i32*> [#uses=1]
- %1 = load i32, i32* %0, align 4 ; <i32> [#uses=1]
- %2 = getelementptr %struct.node, %struct.node* %t.0, i64 0, i32 0 ; <%struct.node**> [#uses=1]
- br label %bb1
-
-bb1: ; preds = %bb, %entry
- %value.0 = phi i32 [ undef, %entry ], [ %1, %bb ] ; <i32> [#uses=1]
- %t.0.in = phi %struct.node** [ @head, %entry ], [ %2, %bb ] ; <%struct.node**> [#uses=1]
- %t.0 = load %struct.node*, %struct.node** %t.0.in ; <%struct.node*> [#uses=3]
- %3 = icmp eq %struct.node* %t.0, null ; <i1> [#uses=1]
- br i1 %3, label %bb2, label %bb
-
-bb2: ; preds = %bb1
- ret i32 %value.0
-}
-
-define i32 @main() nounwind {
-entry:
- %0 = call i32 @f() nounwind ; <i32> [#uses=1]
- ret i32 %0
-}
diff --git a/llvm/test/Transforms/GlobalOpt/2009-02-15-BitcastAlias.ll b/llvm/test/Transforms/GlobalOpt/2009-02-15-BitcastAlias.ll
deleted file mode 100644
index e6337adefa1..00000000000
--- a/llvm/test/Transforms/GlobalOpt/2009-02-15-BitcastAlias.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: opt < %s -globalopt
-
-@g = global i32 0
-
-@a = alias i8, bitcast (i32* @g to i8*)
-
-define void @f() {
- %tmp = load i8, i8* @a
- ret void
-}
diff --git a/llvm/test/Transforms/GlobalOpt/2009-02-15-ResolveAlias.ll b/llvm/test/Transforms/GlobalOpt/2009-02-15-ResolveAlias.ll
deleted file mode 100644
index 42c243d9d7c..00000000000
--- a/llvm/test/Transforms/GlobalOpt/2009-02-15-ResolveAlias.ll
+++ /dev/null
@@ -1,24 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-
-define internal void @f() {
-; CHECK-NOT: @f(
-; CHECK: define void @a
- ret void
-}
-
-@a = alias void (), void ()* @f
-
-define void @g() {
- call void() @a()
- ret void
-}
-
-@b = internal alias void (), void ()* @g
-; CHECK-NOT: @b
-
-define void @h() {
- call void() @b()
-; CHECK: call void @g
- ret void
-}
-
diff --git a/llvm/test/Transforms/GlobalOpt/2009-03-05-dbg.ll b/llvm/test/Transforms/GlobalOpt/2009-03-05-dbg.ll
deleted file mode 100644
index 68ea4ffe639..00000000000
--- a/llvm/test/Transforms/GlobalOpt/2009-03-05-dbg.ll
+++ /dev/null
@@ -1,80 +0,0 @@
-; REQUIRES: asserts
-; RUN: opt < %s -globalopt -stats -disable-output 2>&1 | FileCheck %s
-; CHECK: 1 globalopt - Number of global vars shrunk to booleans
-
-source_filename = "test/Transforms/GlobalOpt/2009-03-05-dbg.ll"
-
-@Stop = internal global i32 0, !dbg !0
-
-; Function Attrs: nounwind ssp
-define i32 @foo(i32 %i) #0 {
-entry:
- %"alloca point" = bitcast i32 0 to i32
- call void @llvm.dbg.value(metadata i32 %i, metadata !8, metadata !12), !dbg !13
- %0 = icmp eq i32 %i, 1, !dbg !13
- br i1 %0, label %bb, label %bb1, !dbg !13
-
-bb: ; preds = %entry
- store i32 0, i32* @Stop, align 4, !dbg !15
- %1 = mul nsw i32 %i, 42, !dbg !16
- call void @llvm.dbg.value(metadata i32 %1, metadata !8, metadata !12), !dbg !16
- br label %bb2, !dbg !16
-
-bb1: ; preds = %entry
- store i32 1, i32* @Stop, align 4, !dbg !17
- br label %bb2, !dbg !17
-
-bb2: ; preds = %bb1, %bb
- %i_addr.0 = phi i32 [ %1, %bb ], [ %i, %bb1 ]
- br label %return, !dbg !18
-
-return: ; preds = %bb2
- ret i32 %i_addr.0, !dbg !18
-}
-
-; Function Attrs: nounwind readnone
-
-declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
-
-; Function Attrs: nounwind ssp
-define i32 @bar() #0 {
-entry:
- %"alloca point" = bitcast i32 0 to i32
- %0 = load i32, i32* @Stop, align 4, !dbg !19
- %1 = icmp eq i32 %0, 1, !dbg !19
- br i1 %1, label %bb, label %bb1, !dbg !19
-
-bb: ; preds = %entry
-
- br label %bb2, !dbg !24
-
-bb1: ; preds = %entry
- br label %bb2, !dbg !25
-
-bb2: ; preds = %bb1, %bb
- %.0 = phi i32 [ 0, %bb ], [ 1, %bb1 ]
- br label %return, !dbg !25
-
-return: ; preds = %bb2
- ret i32 %.0, !dbg !25
-}
-
-; Function Attrs: nounwind readnone
-declare void @llvm.dbg.value(metadata, metadata, metadata) #1
-
-attributes #0 = { nounwind ssp }
-attributes #1 = { nounwind readnone }
-
-!llvm.dbg.cu = !{!2}
-!llvm.module.flags = !{!6, !7}
-
-!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
-!1 = !DIGlobalVariable(name: "Stop", scope: !2, file: !3, line: 2, type: !5, isLocal: true, isDefinition: true)
-!2 = distinct !DICompileUnit(language: DW_LANG_C89, file: !3, producer: "4.2.1 (Based on Apple Inc. build 5658) (LLVM build)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, globals: !4)
-!3 = !DIFile(filename: "g.c", directory: "/tmp")
-!4 = !{!0}
-!5 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
-!6 = !{i32 2, !"Dwarf Version", i32 2}
-!7 = !{i32 2, !"Debug Info Version", i32 3}
-!8 = !DILocalVariable(name: "i", arg: 1, scope: !9, file: !3, line: 4, type: !5)
-!9 = distinct !DISubprogram(name: "foo", linkageName: "foo", scope: !2, file: !3, line: 4, type: !10, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, unit: !2)!10 = !DISubroutineType(types: !11)!11 = !{!5, !5}!12 = !DIExpression()!13 = !DILocation(line: 5, scope: !14)!14 = distinct !DILexicalBlock(scope: !9, file: !3)!15 = !DILocation(line: 6, scope: !14)!16 = !DILocation(line: 7, scope: !14)!17 = !DILocation(line: 9, scope: !14)!18 = !DILocation(line: 11, scope: !14)!19 = !DILocation(line: 14, scope: !20)!20 = distinct !DILexicalBlock(scope: !21, file: !3)!21 = distinct !DISubprogram(name: "bar", linkageName: "bar", scope: !2, file: !3, line: 13, type: !22, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, unit: !2)!22 = !DISubroutineType(types: !23)!23 = !{!5}!24 = !DILocation(line: 15, scope: !20)!25 = !DILocation(line: 16, scope: !20)
diff --git a/llvm/test/Transforms/GlobalOpt/2009-03-06-Anonymous.ll b/llvm/test/Transforms/GlobalOpt/2009-03-06-Anonymous.ll
deleted file mode 100644
index d5836ea9254..00000000000
--- a/llvm/test/Transforms/GlobalOpt/2009-03-06-Anonymous.ll
+++ /dev/null
@@ -1,23 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-
-@0 = global i32 0
-; CHECK-DAG: @0 = internal global i32 0
-
-@1 = private global i32 0
-; CHECK-DAG: @1 = private global i32 0
-
-define i32* @2() {
- ret i32* @0
-}
-; CHECK-DAG: define internal fastcc i32* @2()
-
-define i32* @f() {
-entry:
- call i32* @2()
- ret i32* %0
-}
-
-define i32* @g() {
-entry:
- ret i32* @1
-}
diff --git a/llvm/test/Transforms/GlobalOpt/2009-03-07-PromotePtrToBool.ll b/llvm/test/Transforms/GlobalOpt/2009-03-07-PromotePtrToBool.ll
deleted file mode 100644
index bec4891a496..00000000000
--- a/llvm/test/Transforms/GlobalOpt/2009-03-07-PromotePtrToBool.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin7"
-
-; CHECK: @X = internal unnamed_addr global i32
-@X = internal global i32* null ; <i32**> [#uses=2]
-@Y = internal global i32 0 ; <i32*> [#uses=1]
-
-define void @foo() nounwind {
-entry:
- store i32* @Y, i32** @X, align 4
- ret void
-}
-
-define i32* @get() nounwind {
-entry:
- %0 = load i32*, i32** @X, align 4 ; <i32*> [#uses=1]
- ret i32* %0
-}
diff --git a/llvm/test/Transforms/GlobalOpt/2009-06-01-RecursivePHI.ll b/llvm/test/Transforms/GlobalOpt/2009-06-01-RecursivePHI.ll
deleted file mode 100644
index 30e4d422621..00000000000
--- a/llvm/test/Transforms/GlobalOpt/2009-06-01-RecursivePHI.ll
+++ /dev/null
@@ -1,122 +0,0 @@
-; RUN: opt < %s -globalopt
-target datalayout = "E-p:64:64:64-a0:0:8-f32:32:32-f64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-v64:64:64-v128:128:128"
-
- %struct.s_annealing_sched = type { i32, float, float, float, float }
- %struct.s_bb = type { i32, i32, i32, i32 }
- %struct.s_net = type { i8*, i32, i32*, float, float }
- %struct.s_placer_opts = type { i32, float, i32, i32, i8*, i32, i32 }
-@net = internal global %struct.s_net* null ; <%struct.s_net**> [#uses=4]
-
-define fastcc void @alloc_and_load_placement_structs(i32 %place_cost_type, i32 %num_regions, float %place_cost_exp, float*** nocapture %old_region_occ_x, float*** nocapture %old_region_occ_y) nounwind ssp {
-entry:
- br i1 undef, label %bb.i, label %my_malloc.exit
-
-bb.i: ; preds = %entry
- unreachable
-
-my_malloc.exit: ; preds = %entry
- br i1 undef, label %bb.i81, label %my_malloc.exit83
-
-bb.i81: ; preds = %my_malloc.exit
- unreachable
-
-my_malloc.exit83: ; preds = %my_malloc.exit
- br i1 undef, label %bb.i.i57, label %my_calloc.exit.i
-
-bb.i.i57: ; preds = %my_malloc.exit83
- unreachable
-
-my_calloc.exit.i: ; preds = %my_malloc.exit83
- br i1 undef, label %bb.i4.i, label %my_calloc.exit5.i
-
-bb.i4.i: ; preds = %my_calloc.exit.i
- unreachable
-
-my_calloc.exit5.i: ; preds = %my_calloc.exit.i
- %.pre.i58 = load %struct.s_net*, %struct.s_net** @net, align 4 ; <%struct.s_net*> [#uses=1]
- br label %bb17.i78
-
-bb1.i61: ; preds = %bb4.preheader.i, %bb1.i61
- br i1 undef, label %bb1.i61, label %bb5.i62
-
-bb5.i62: ; preds = %bb1.i61
- br i1 undef, label %bb6.i64, label %bb15.preheader.i
-
-bb15.preheader.i: ; preds = %bb4.preheader.i, %bb5.i62
- br label %bb16.i77
-
-bb6.i64: ; preds = %bb5.i62
- br i1 undef, label %bb7.i65, label %bb8.i67
-
-bb7.i65: ; preds = %bb6.i64
- unreachable
-
-bb8.i67: ; preds = %bb6.i64
- br i1 undef, label %bb.i1.i68, label %my_malloc.exit.i70
-
-bb.i1.i68: ; preds = %bb8.i67
- unreachable
-
-my_malloc.exit.i70: ; preds = %bb8.i67
- %0 = load %struct.s_net*, %struct.s_net** @net, align 4 ; <%struct.s_net*> [#uses=1]
- br i1 undef, label %bb9.i71, label %bb16.i77
-
-bb9.i71: ; preds = %bb9.i71, %my_malloc.exit.i70
- %1 = load %struct.s_net*, %struct.s_net** @net, align 4 ; <%struct.s_net*> [#uses=1]
- br i1 undef, label %bb9.i71, label %bb16.i77
-
-bb16.i77: ; preds = %bb9.i71, %my_malloc.exit.i70, %bb15.preheader.i
- %.pre41.i.rle244 = phi %struct.s_net* [ %.pre41.i, %bb15.preheader.i ], [ %0, %my_malloc.exit.i70 ], [ %1, %bb9.i71 ] ; <%struct.s_net*> [#uses=1]
- br label %bb17.i78
-
-bb17.i78: ; preds = %bb16.i77, %my_calloc.exit5.i
- %.pre41.i = phi %struct.s_net* [ %.pre41.i.rle244, %bb16.i77 ], [ %.pre.i58, %my_calloc.exit5.i ] ; <%struct.s_net*> [#uses=1]
- br i1 undef, label %bb4.preheader.i, label %alloc_and_load_unique_pin_list.exit
-
-bb4.preheader.i: ; preds = %bb17.i78
- br i1 undef, label %bb1.i61, label %bb15.preheader.i
-
-alloc_and_load_unique_pin_list.exit: ; preds = %bb17.i78
- ret void
-}
-
-define void @read_net(i8* %net_file) nounwind ssp {
-entry:
- br i1 undef, label %bb3.us.us.i, label %bb6.preheader
-
-bb6.preheader: ; preds = %entry
- br i1 undef, label %bb7, label %bb
-
-bb3.us.us.i: ; preds = %entry
- unreachable
-
-bb: ; preds = %bb6.preheader
- br i1 undef, label %bb.i34, label %bb1.i38
-
-bb.i34: ; preds = %bb
- unreachable
-
-bb1.i38: ; preds = %bb
- %mallocsize = mul i64 28, undef ; <i64> [#uses=1]
- %malloccall = tail call i8* @malloc(i64 %mallocsize) ; <i8*> [#uses=1]
- %0 = bitcast i8* %malloccall to %struct.s_net* ; <%struct.s_net*> [#uses=1]
- br i1 undef, label %bb.i1.i39, label %my_malloc.exit2.i
-
-bb.i1.i39: ; preds = %bb1.i38
- unreachable
-
-my_malloc.exit2.i: ; preds = %bb1.i38
- store %struct.s_net* %0, %struct.s_net** @net, align 4
- br i1 undef, label %bb.i7.i40, label %my_malloc.exit8.i
-
-bb.i7.i40: ; preds = %my_malloc.exit2.i
- unreachable
-
-my_malloc.exit8.i: ; preds = %my_malloc.exit2.i
- unreachable
-
-bb7: ; preds = %bb6.preheader
- unreachable
-}
-
-declare noalias i8* @malloc(i64)
diff --git a/llvm/test/Transforms/GlobalOpt/2009-11-16-BrokenPerformHeapAllocSRoA.ll b/llvm/test/Transforms/GlobalOpt/2009-11-16-BrokenPerformHeapAllocSRoA.ll
deleted file mode 100644
index 461c25316e9..00000000000
--- a/llvm/test/Transforms/GlobalOpt/2009-11-16-BrokenPerformHeapAllocSRoA.ll
+++ /dev/null
@@ -1,26 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %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"
-target triple = "x86_64-apple-darwin10.0"
-
-%struct.hashheader = type { i16, i16, i16, i16, i16, i16, i32, i32, i32, i32, i32, i32, i32, i32, i32, [5 x i8], [13 x i8], i8, i8, i8, [228 x i16], [228 x i8], [228 x i8], [228 x i8], [228 x i8], [228 x i8], [228 x i8], [128 x i8], [100 x [11 x i8]], [100 x i32], [100 x i32], i16 }
-%struct.strchartype = type { i8*, i8*, i8* }
-
-@hashheader = internal global %struct.hashheader zeroinitializer, align 32 ; <%struct.hashheader*> [#uses=1]
-@chartypes = internal global %struct.strchartype* null ; <%struct.strchartype**> [#uses=1]
-; CHECK-NOT: @hashheader
-; CHECK-NOT: @chartypes
-
-; based on linit in office-ispell
-define void @test() nounwind ssp {
- %1 = load i32, i32* getelementptr inbounds (%struct.hashheader, %struct.hashheader* @hashheader, i64 0, i32 13), align 8 ; <i32> [#uses=1]
- %2 = sext i32 %1 to i64 ; <i64> [#uses=1]
- %3 = mul i64 %2, ptrtoint (%struct.strchartype* getelementptr (%struct.strchartype, %struct.strchartype* null, i64 1) to i64) ; <i64> [#uses=1]
- %4 = tail call i8* @malloc(i64 %3) ; <i8*> [#uses=1]
-; CHECK-NOT: call i8* @malloc(i64
- %5 = bitcast i8* %4 to %struct.strchartype* ; <%struct.strchartype*> [#uses=1]
- store %struct.strchartype* %5, %struct.strchartype** @chartypes, align 8
- ret void
-}
-
-declare noalias i8* @malloc(i64)
diff --git a/llvm/test/Transforms/GlobalOpt/2009-11-16-MallocSingleStoreToGlobalVar.ll b/llvm/test/Transforms/GlobalOpt/2009-11-16-MallocSingleStoreToGlobalVar.ll
deleted file mode 100644
index 25bb9769f49..00000000000
--- a/llvm/test/Transforms/GlobalOpt/2009-11-16-MallocSingleStoreToGlobalVar.ll
+++ /dev/null
@@ -1,30 +0,0 @@
-; Test ensures that non-optimizable array mallocs are not optimized; specifically
-; GlobalOpt was treating a non-optimizable array malloc as a non-array malloc
-; and optimizing the global object that the malloc was stored to as a single
-; element global. The global object @TOP in this test should not be optimized.
-; RUN: opt < %s -globalopt -S | FileCheck %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"
-target triple = "x86_64-apple-darwin10.0"
-
-@TOP = internal global i64* null ; <i64**> [#uses=2]
-; CHECK: @TOP = internal unnamed_addr global i64* null
-@channelColumns = internal global i64 0 ; <i64*> [#uses=2]
-
-; Derived from @DescribeChannel() in yacr2
-define void @test() nounwind ssp {
- store i64 2335, i64* @channelColumns, align 8
- %1 = load i64, i64* @channelColumns, align 8 ; <i64> [#uses=1]
- %2 = shl i64 %1, 3 ; <i64> [#uses=1]
- %3 = add i64 %2, 8 ; <i64> [#uses=1]
- %4 = call noalias i8* @malloc(i64 %3) nounwind ; <i8*> [#uses=1]
-; CHECK: call noalias i8* @malloc
- %5 = bitcast i8* %4 to i64* ; <i64*> [#uses=1]
- store i64* %5, i64** @TOP, align 8
- %6 = load i64*, i64** @TOP, align 8 ; <i64*> [#uses=1]
- %7 = getelementptr inbounds i64, i64* %6, i64 13 ; <i64*> [#uses=1]
- store i64 0, i64* %7, align 8
- ret void
-}
-
-declare noalias i8* @malloc(i64) nounwind
diff --git a/llvm/test/Transforms/GlobalOpt/2010-02-25-MallocPromote.ll b/llvm/test/Transforms/GlobalOpt/2010-02-25-MallocPromote.ll
deleted file mode 100644
index 9f53ce402fd..00000000000
--- a/llvm/test/Transforms/GlobalOpt/2010-02-25-MallocPromote.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; PR6422
-; RUN: opt -globalopt -S < %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"
-target triple = "x86_64-unknown-linux-gnu"
-
-@fixLRBT = internal global i32* null ; <i32**> [#uses=2]
-
-declare noalias i8* @malloc(i32)
-
-define i32 @parser() nounwind {
-bb918:
- %malloccall.i10 = call i8* @malloc(i32 16) nounwind ; <i8*> [#uses=1]
- %0 = bitcast i8* %malloccall.i10 to i32* ; <i32*> [#uses=1]
- store i32* %0, i32** @fixLRBT, align 8
- %1 = load i32*, i32** @fixLRBT, align 8 ; <i32*> [#uses=0]
- %A = load i32, i32* %1
- ret i32 %A
-}
diff --git a/llvm/test/Transforms/GlobalOpt/2010-02-26-MallocSROA.ll b/llvm/test/Transforms/GlobalOpt/2010-02-26-MallocSROA.ll
deleted file mode 100644
index 12fa3419192..00000000000
--- a/llvm/test/Transforms/GlobalOpt/2010-02-26-MallocSROA.ll
+++ /dev/null
@@ -1,27 +0,0 @@
-; RUN: opt -globalopt -S < %s
-; PR6435
-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"
-target triple = "x86_64-unknown-linux-gnu"
-
-%struct.xyz = type { double, i32 }
-
-@Y = internal global %struct.xyz* null ; <%struct.xyz**> [#uses=2]
-@numf2s = external global i32 ; <i32*> [#uses=1]
-
-define fastcc void @init_net() nounwind {
-entry:
- %0 = load i32, i32* @numf2s, align 4 ; <i32> [#uses=1]
- %mallocsize2 = shl i32 %0, 4 ; <i32> [#uses=1]
- %malloccall3 = tail call i8* @malloc(i32 %mallocsize2) nounwind ; <i8*> [#uses=1]
- %1 = bitcast i8* %malloccall3 to %struct.xyz* ; <%struct.xyz*> [#uses=1]
- store %struct.xyz* %1, %struct.xyz** @Y, align 8
- ret void
-}
-
-define fastcc void @load_train(i8* %trainfile, i32 %mode, i32 %objects) nounwind {
-entry:
- %0 = load %struct.xyz*, %struct.xyz** @Y, align 8 ; <%struct.xyz*> [#uses=0]
- ret void
-}
-
-declare noalias i8* @malloc(i32)
diff --git a/llvm/test/Transforms/GlobalOpt/2010-10-19-WeakOdr.ll b/llvm/test/Transforms/GlobalOpt/2010-10-19-WeakOdr.ll
deleted file mode 100644
index c88dc1c2d12..00000000000
--- a/llvm/test/Transforms/GlobalOpt/2010-10-19-WeakOdr.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-
-; PR8389: Globals with weak_odr linkage type must not be modified
-
-; CHECK: weak_odr local_unnamed_addr global i32 0
-
-@SomeVar = weak_odr global i32 0
-
-@llvm.global_ctors = appending global [1 x { i32, void ()* }] [ { i32, void ()* } { i32 65535, void ()* @CTOR } ]
-
-define internal void @CTOR() {
- store i32 23, i32* @SomeVar
- ret void
-}
-
-
diff --git a/llvm/test/Transforms/GlobalOpt/2011-04-09-EmptyGlobalCtors.ll b/llvm/test/Transforms/GlobalOpt/2011-04-09-EmptyGlobalCtors.ll
deleted file mode 100644
index 321a487cc82..00000000000
--- a/llvm/test/Transforms/GlobalOpt/2011-04-09-EmptyGlobalCtors.ll
+++ /dev/null
@@ -1,5 +0,0 @@
-; RUN: opt < %s -globalopt -disable-output
-
-%0 = type { i32, void ()* }
-@llvm.global_ctors = appending global [0 x %0] zeroinitializer
-
diff --git a/llvm/test/Transforms/GlobalOpt/2012-05-11-blockaddress.ll b/llvm/test/Transforms/GlobalOpt/2012-05-11-blockaddress.ll
deleted file mode 100644
index 24213af024f..00000000000
--- a/llvm/test/Transforms/GlobalOpt/2012-05-11-blockaddress.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-; Check that the mere presence of a blockaddress doesn't prevent -globalopt
-; from promoting @f to fastcc.
-
-; CHECK-LABEL: define{{.*}}fastcc{{.*}}@f(
-define internal i8* @f() {
- ret i8* blockaddress(@f, %L1)
-L1:
- ret i8* null
-}
-
-define void @g() {
- ; CHECK: call{{.*}}fastcc{{.*}}@f
- %p = call i8* @f()
- ret void
-}
diff --git a/llvm/test/Transforms/GlobalOpt/GSROA-section.ll b/llvm/test/Transforms/GlobalOpt/GSROA-section.ll
deleted file mode 100644
index a439fa0797d..00000000000
--- a/llvm/test/Transforms/GlobalOpt/GSROA-section.ll
+++ /dev/null
@@ -1,30 +0,0 @@
-; This test lets globalopt split the global struct and array into different
-; values. The pass needs to preserve section attribute.
-
-; RUN: opt < %s -globalopt -S | FileCheck %s
-; Check that the new global values still have their section assignment.
-; CHECK: @struct
-; CHECK: section ".foo"
-; CHECK: @array
-; CHECK-NOT: section ".foo"
-
-@struct = internal global { i32, i32 } zeroinitializer, section ".foo"
-@array = internal global [ 2 x i32 ] zeroinitializer
-
-define i32 @foo() {
- %A = load i32, i32* getelementptr ({ i32, i32 }, { i32, i32 }* @struct, i32 0, i32 0)
- %B = load i32, i32* getelementptr ([ 2 x i32 ], [ 2 x i32 ]* @array, i32 0, i32 0)
- ; Use the loaded values, so they won't get removed completely
- %R = add i32 %A, %B
- ret i32 %R
-}
-
-; We put stores in a different function, so that the global variables won't get
-; optimized away completely.
-define void @bar(i32 %R) {
- store i32 %R, i32* getelementptr ([ 2 x i32 ], [ 2 x i32 ]* @array, i32 0, i32 0)
- store i32 %R, i32* getelementptr ({ i32, i32 }, { i32, i32 }* @struct, i32 0, i32 0)
- ret void
-}
-
-
diff --git a/llvm/test/Transforms/GlobalOpt/MallocSROA-section-no-null-opt.ll b/llvm/test/Transforms/GlobalOpt/MallocSROA-section-no-null-opt.ll
deleted file mode 100644
index c9b3f6fc1cd..00000000000
--- a/llvm/test/Transforms/GlobalOpt/MallocSROA-section-no-null-opt.ll
+++ /dev/null
@@ -1,34 +0,0 @@
-; RUN: opt -globalopt -S < %s | FileCheck %s
-; CHECK: @Y
-; CHECK: section ".foo"
-
-%struct.xyz = type { double, i32 }
-
-@Y = internal global %struct.xyz* null ,section ".foo" ; <%struct.xyz**> [#uses=2]
-@numf2s = external global i32 ; <i32*> [#uses=1]
-
-define void @init_net() #0 {
-; CHECK-LABEL: init_net(
-; CHECK: load i32, i32* @numf2s
-; CHECK: call i8* @malloc
-; CHECK: store %struct.xyz* {{.*}}, %struct.xyz** @Y
-entry:
- %0 = load i32, i32* @numf2s, align 4 ; <i32> [#uses=1]
- %mallocsize2 = shl i32 %0, 4 ; <i32> [#uses=1]
- %malloccall3 = tail call i8* @malloc(i32 %mallocsize2) ; <i8*> [#uses=1]
- %1 = bitcast i8* %malloccall3 to %struct.xyz* ; <%struct.xyz*> [#uses=1]
- store %struct.xyz* %1, %struct.xyz** @Y, align 8
- ret void
-}
-
-define %struct.xyz* @load_train() #0 {
-; CHECK-LABEL: load_train(
-; CHECK: load %struct.xyz*, %struct.xyz** @Y
-entry:
- %0 = load %struct.xyz*, %struct.xyz** @Y, align 8 ; <%struct.xyz*> [#uses=0]
- ret %struct.xyz* %0
-}
-
-declare noalias i8* @malloc(i32)
-
-attributes #0 = { "null-pointer-is-valid"="true" }
diff --git a/llvm/test/Transforms/GlobalOpt/MallocSROA-section.ll b/llvm/test/Transforms/GlobalOpt/MallocSROA-section.ll
deleted file mode 100644
index 75b3cfec137..00000000000
--- a/llvm/test/Transforms/GlobalOpt/MallocSROA-section.ll
+++ /dev/null
@@ -1,28 +0,0 @@
-; RUN: opt -globalopt -S < %s | FileCheck %s
-; CHECK: @Y.f0
-; CHECK: section ".foo"
-; CHECK: @Y.f1
-; CHECK: section ".foo"
-
-%struct.xyz = type { double, i32 }
-
-@Y = internal global %struct.xyz* null ,section ".foo" ; <%struct.xyz**> [#uses=2]
-@numf2s = external global i32 ; <i32*> [#uses=1]
-
-define void @init_net() {
-entry:
- %0 = load i32, i32* @numf2s, align 4 ; <i32> [#uses=1]
- %mallocsize2 = shl i32 %0, 4 ; <i32> [#uses=1]
- %malloccall3 = tail call i8* @malloc(i32 %mallocsize2) ; <i8*> [#uses=1]
- %1 = bitcast i8* %malloccall3 to %struct.xyz* ; <%struct.xyz*> [#uses=1]
- store %struct.xyz* %1, %struct.xyz** @Y, align 8
- ret void
-}
-
-define void @load_train() {
-entry:
- %0 = load %struct.xyz*, %struct.xyz** @Y, align 8 ; <%struct.xyz*> [#uses=0]
- ret void
-}
-
-declare noalias i8* @malloc(i32)
diff --git a/llvm/test/Transforms/GlobalOpt/PowerPC/coldcc_coldsites.ll b/llvm/test/Transforms/GlobalOpt/PowerPC/coldcc_coldsites.ll
deleted file mode 100644
index 8fedf834f40..00000000000
--- a/llvm/test/Transforms/GlobalOpt/PowerPC/coldcc_coldsites.ll
+++ /dev/null
@@ -1,81 +0,0 @@
-; RUN: opt -globalopt -mtriple=powerpc64le-unknown-linux-gnu -ppc-enable-coldcc -S < %s | FileCheck %s -check-prefix=COLDCC
-; RUN: opt -globalopt -S < %s | FileCheck %s -check-prefix=CHECK
-
-define signext i32 @caller(i32 signext %a, i32 signext %b, i32 signext %lim, i32 signext %i) local_unnamed_addr #0 !prof !30 {
-entry:
-; COLDCC: call coldcc signext i32 @callee
-; CHECK: call fastcc signext i32 @callee
- %add = add nsw i32 %b, %a
- %sub = add nsw i32 %lim, -1
- %cmp = icmp eq i32 %sub, %i
- br i1 %cmp, label %if.then, label %if.end, !prof !31
-
-if.then: ; preds = %entry
- %call = tail call signext i32 @callee(i32 signext %a, i32 signext %b)
- br label %if.end
-
-if.end: ; preds = %if.then, %entry
- %f.0 = phi i32 [ %call, %if.then ], [ %add, %entry ]
- ret i32 %f.0
-}
-
-define internal signext i32 @callee(i32 signext %a, i32 signext %b) unnamed_addr #0 {
-entry:
- %0 = tail call i32 asm "add $0, $1, $2", "=r,r,r,~{r6},~{r7},~{r8},~{r9}"(i32 %a, i32 %b) #1, !srcloc !32
- %mul = mul nsw i32 %a, 3
- %mul1 = shl i32 %0, 1
- %add = add nsw i32 %mul1, %mul
- ret i32 %add
-}
-
-define signext i32 @main() local_unnamed_addr #0 !prof !33 {
-entry:
- br label %for.body
-
-for.cond.cleanup: ; preds = %for.body
- %add.lcssa = phi i32 [ %add, %for.body ]
- ret i32 %add.lcssa
-
-for.body: ; preds = %for.body, %entry
- %i.011 = phi i32 [ 0, %entry ], [ %inc, %for.body ]
- %ret.010 = phi i32 [ 0, %entry ], [ %add, %for.body ]
- %call = tail call signext i32 @caller(i32 signext 4, i32 signext 5, i32 signext 10000000, i32 signext %i.011)
- %add = add nsw i32 %call, %ret.010
- %inc = add nuw nsw i32 %i.011, 1
- %exitcond = icmp eq i32 %inc, 10000000
- br i1 %exitcond, label %for.cond.cleanup, label %for.body, !prof !34
-}
-attributes #0 = { noinline }
-
-!0 = !{i32 1, !"ProfileSummary", !1}
-!1 = !{!2, !3, !4, !5, !6, !7, !8, !9}
-!2 = !{!"ProfileFormat", !"InstrProf"}
-!3 = !{!"TotalCount", i64 20000003}
-!4 = !{!"MaxCount", i64 10000000}
-!5 = !{!"MaxInternalCount", i64 10000000}
-!6 = !{!"MaxFunctionCount", i64 10000000}
-!7 = !{!"NumCounts", i64 5}
-!8 = !{!"NumFunctions", i64 3}
-!9 = !{!"DetailedSummary", !10}
-!10 = !{!11, !12, !13, !14, !15, !16, !16, !17, !17, !18, !19, !20, !21, !22, !23, !24, !25, !26}
-!11 = !{i32 10000, i64 10000000, i32 2}
-!12 = !{i32 100000, i64 10000000, i32 2}
-!13 = !{i32 200000, i64 10000000, i32 2}
-!14 = !{i32 300000, i64 10000000, i32 2}
-!15 = !{i32 400000, i64 10000000, i32 2}
-!16 = !{i32 500000, i64 10000000, i32 2}
-!17 = !{i32 600000, i64 10000000, i32 2}
-!18 = !{i32 700000, i64 10000000, i32 2}
-!19 = !{i32 800000, i64 10000000, i32 2}
-!20 = !{i32 900000, i64 10000000, i32 2}
-!21 = !{i32 950000, i64 10000000, i32 2}
-!22 = !{i32 990000, i64 10000000, i32 2}
-!23 = !{i32 999000, i64 10000000, i32 2}
-!24 = !{i32 999900, i64 10000000, i32 2}
-!25 = !{i32 999990, i64 10000000, i32 2}
-!26 = !{i32 999999, i64 10000000, i32 2}
-!30 = !{!"function_entry_count", i64 10000000}
-!31 = !{!"branch_weights", i32 2, i32 10000000}
-!32 = !{i32 59}
-!33 = !{!"function_entry_count", i64 1}
-!34 = !{!"branch_weights", i32 2, i32 10000001}
diff --git a/llvm/test/Transforms/GlobalOpt/PowerPC/lit.local.cfg b/llvm/test/Transforms/GlobalOpt/PowerPC/lit.local.cfg
deleted file mode 100644
index 5d33887ff0a..00000000000
--- a/llvm/test/Transforms/GlobalOpt/PowerPC/lit.local.cfg
+++ /dev/null
@@ -1,3 +0,0 @@
-if not 'PowerPC' in config.root.targets:
- config.unsupported = True
-
diff --git a/llvm/test/Transforms/GlobalOpt/SROA-section.ll b/llvm/test/Transforms/GlobalOpt/SROA-section.ll
deleted file mode 100644
index 1589608a67a..00000000000
--- a/llvm/test/Transforms/GlobalOpt/SROA-section.ll
+++ /dev/null
@@ -1,27 +0,0 @@
-; Verify that section assignment is copied during SROA
-; RUN: opt < %s -globalopt -S | FileCheck %s
-; CHECK: @G.0
-; CHECK: section ".foo"
-; CHECK: @G.1
-; CHECK: section ".foo"
-; CHECK: @G.2
-; CHECK: section ".foo"
-
-%T = type { double, double, double }
-@G = internal global %T zeroinitializer, align 16, section ".foo"
-
-define void @test() {
- store double 1.0, double* getelementptr (%T, %T* @G, i32 0, i32 0), align 16
- store double 2.0, double* getelementptr (%T, %T* @G, i32 0, i32 1), align 8
- store double 3.0, double* getelementptr (%T, %T* @G, i32 0, i32 2), align 16
- ret void
-}
-
-define double @test2() {
- %V1 = load double, double* getelementptr (%T, %T* @G, i32 0, i32 0), align 16
- %V2 = load double, double* getelementptr (%T, %T* @G, i32 0, i32 1), align 8
- %V3 = load double, double* getelementptr (%T, %T* @G, i32 0, i32 2), align 16
- %R = fadd double %V1, %V2
- %R2 = fadd double %R, %V3
- ret double %R2
-}
diff --git a/llvm/test/Transforms/GlobalOpt/alias-resolve.ll b/llvm/test/Transforms/GlobalOpt/alias-resolve.ll
deleted file mode 100644
index 46b90ec29b9..00000000000
--- a/llvm/test/Transforms/GlobalOpt/alias-resolve.ll
+++ /dev/null
@@ -1,46 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-
-@foo1 = alias void (), void ()* @foo2
-; CHECK: @foo1 = alias void (), void ()* @bar2
-
-@foo2 = alias void(), void()* @bar1
-; CHECK: @foo2 = alias void (), void ()* @bar2
-
-@bar1 = alias void (), void ()* @bar2
-; CHECK: @bar1 = alias void (), void ()* @bar2
-
-@weak1 = weak alias void (), void ()* @bar2
-; CHECK: @weak1 = weak alias void (), void ()* @bar2
-
-@bar4 = private unnamed_addr constant [2 x i8*] zeroinitializer
-@foo4 = weak_odr unnamed_addr alias i8*, getelementptr inbounds ([2 x i8*], [2 x i8*]* @bar4, i32 0, i32 1)
-; CHECK: @foo4 = weak_odr unnamed_addr alias i8*, getelementptr inbounds ([2 x i8*], [2 x i8*]* @bar4, i32 0, i32 1)
-
-define void @bar2() {
- ret void
-}
-; CHECK: define void @bar2()
-
-define void @baz() {
-entry:
- call void @foo1()
-; CHECK: call void @bar2()
-
- call void @foo2()
-; CHECK: call void @bar2()
-
- call void @bar1()
-; CHECK: call void @bar2()
-
- call void @weak1()
-; CHECK: call void @weak1()
- ret void
-}
-
-@foo3 = alias void (), void ()* @bar3
-; CHECK-NOT: bar3
-
-define internal void @bar3() {
- ret void
-}
-;CHECK: define void @foo3
diff --git a/llvm/test/Transforms/GlobalOpt/alias-used-address-space.ll b/llvm/test/Transforms/GlobalOpt/alias-used-address-space.ll
deleted file mode 100644
index 08081b89ac6..00000000000
--- a/llvm/test/Transforms/GlobalOpt/alias-used-address-space.ll
+++ /dev/null
@@ -1,26 +0,0 @@
-; RUN: opt -S -globalopt < %s | FileCheck %s
-
-target datalayout = "p:32:32:32-p1:16:16:16"
-
-@c = addrspace(1) global i8 42
-
-@i = internal addrspace(1) global i8 42
-
-; CHECK: @ia = internal addrspace(1) global i8 42
-@ia = internal alias i8, i8 addrspace(1)* @i
-
-@llvm.used = appending global [1 x i8*] [i8* addrspacecast (i8 addrspace(1)* @ca to i8*)], section "llvm.metadata"
-; CHECK-DAG: @llvm.used = appending global [1 x i8*] [i8* addrspacecast (i8 addrspace(1)* @ca to i8*)], section "llvm.metadata"
-
-@llvm.compiler.used = appending global [2 x i8*] [i8* addrspacecast(i8 addrspace(1)* @ia to i8*), i8* addrspacecast (i8 addrspace(1)* @i to i8*)], section "llvm.metadata"
-; CHECK-DAG: @llvm.compiler.used = appending global [1 x i8*] [i8* addrspacecast (i8 addrspace(1)* @ia to i8*)], section "llvm.metadata"
-
-@sameAsUsed = global [1 x i8*] [i8* addrspacecast(i8 addrspace(1)* @ca to i8*)]
-; CHECK-DAG: @sameAsUsed = local_unnamed_addr global [1 x i8*] [i8* addrspacecast (i8 addrspace(1)* @c to i8*)]
-
-@ca = internal alias i8, i8 addrspace(1)* @c
-; CHECK: @ca = internal alias i8, i8 addrspace(1)* @c
-
-define i8 addrspace(1)* @h() {
- ret i8 addrspace(1)* @ca
-}
diff --git a/llvm/test/Transforms/GlobalOpt/alias-used-section.ll b/llvm/test/Transforms/GlobalOpt/alias-used-section.ll
deleted file mode 100644
index a3657dfd16b..00000000000
--- a/llvm/test/Transforms/GlobalOpt/alias-used-section.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: opt -S -globalopt < %s | FileCheck %s
-
-@_Z17in_custom_section = internal global i8 42, section "CUSTOM"
-@in_custom_section = internal dllexport alias i8, i8* @_Z17in_custom_section
-
-; CHECK: @in_custom_section = internal dllexport global i8 42, section "CUSTOM"
-
-@llvm.used = appending global [1 x i8*] [i8* @in_custom_section], section "llvm.metadata"
diff --git a/llvm/test/Transforms/GlobalOpt/alias-used.ll b/llvm/test/Transforms/GlobalOpt/alias-used.ll
deleted file mode 100644
index 91601fb9927..00000000000
--- a/llvm/test/Transforms/GlobalOpt/alias-used.ll
+++ /dev/null
@@ -1,66 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-
-@c = global i8 42
-
-@i = internal global i8 42
-; CHECK: @ia = internal global i8 42
-@ia = internal alias i8, i8* @i
-
-@llvm.used = appending global [3 x i8*] [i8* bitcast (void ()* @fa to i8*), i8* bitcast (void ()* @f to i8*), i8* @ca], section "llvm.metadata"
-; CHECK-DAG: @llvm.used = appending global [3 x i8*] [i8* @ca, i8* bitcast (void ()* @f to i8*), i8* bitcast (void ()* @fa to i8*)], section "llvm.metadata"
-
-@llvm.compiler.used = appending global [4 x i8*] [i8* bitcast (void ()* @fa3 to i8*), i8* bitcast (void ()* @fa to i8*), i8* @ia, i8* @i], section "llvm.metadata"
-; CHECK-DAG: @llvm.compiler.used = appending global [2 x i8*] [i8* bitcast (void ()* @fa3 to i8*), i8* @ia], section "llvm.metadata"
-
-@sameAsUsed = global [3 x i8*] [i8* bitcast (void ()* @fa to i8*), i8* bitcast (void ()* @f to i8*), i8* @ca]
-; CHECK-DAG: @sameAsUsed = local_unnamed_addr global [3 x i8*] [i8* bitcast (void ()* @f to i8*), i8* bitcast (void ()* @f to i8*), i8* @c]
-
-@other = global i32* bitcast (void ()* @fa to i32*)
-; CHECK-DAG: @other = local_unnamed_addr global i32* bitcast (void ()* @f to i32*)
-
-@fa = internal alias void (), void ()* @f
-; CHECK: @fa = internal alias void (), void ()* @f
-
-@fa2 = internal alias void (), void ()* @f
-; CHECK-NOT: @fa2
-
-@fa3 = internal alias void (), void ()* @f
-; CHECK: @fa3
-
-@ca = internal alias i8, i8* @c
-; CHECK: @ca = internal alias i8, i8* @c
-
-define void @f() {
- ret void
-}
-
-define i8* @g() {
- ret i8* bitcast (void ()* @fa to i8*);
-}
-
-define i8* @g2() {
- ret i8* bitcast (void ()* @fa2 to i8*);
-}
-
-define i8* @h() {
- ret i8* @ca
-}
-
-; Check that GlobalOpt doesn't try to resolve aliases with GEP operands.
-
-%struct.S = type { i32, i32, i32 }
-@s = global %struct.S { i32 1, i32 2, i32 3 }, align 4
-
-@alias1 = alias i32, i32* getelementptr inbounds (%struct.S, %struct.S* @s, i64 0, i32 1)
-@alias2 = alias i32, i32* getelementptr inbounds (%struct.S, %struct.S* @s, i64 0, i32 2)
-
-; CHECK: load i32, i32* @alias1, align 4
-; CHECK: load i32, i32* @alias2, align 4
-
-define i32 @foo1() {
-entry:
- %0 = load i32, i32* @alias1, align 4
- %1 = load i32, i32* @alias2, align 4
- %add = add nsw i32 %1, %0
- ret i32 %add
-}
diff --git a/llvm/test/Transforms/GlobalOpt/amdgcn-ctor-alloca.ll b/llvm/test/Transforms/GlobalOpt/amdgcn-ctor-alloca.ll
deleted file mode 100644
index 6bdcf49e95e..00000000000
--- a/llvm/test/Transforms/GlobalOpt/amdgcn-ctor-alloca.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; RUN: opt -data-layout=A5 -globalopt %s -S -o - | FileCheck %s
-
-; CHECK-NOT: @g
-@g = internal addrspace(1) global i32* zeroinitializer
-
-; CHECK: @llvm.global_ctors = appending global [0 x { i32, void ()*, i8* }] zeroinitializer
-@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }]
- [{ i32, void ()*, i8* } { i32 65535, void ()* @ctor, i8* null }]
-
-; CHECK-NOT: @ctor
-define internal void @ctor() {
- %addr = alloca i32, align 8, addrspace(5)
- %tmp = addrspacecast i32 addrspace(5)* %addr to i32*
- store i32* %tmp, i32* addrspace(1)* @g
- ret void
-}
-
diff --git a/llvm/test/Transforms/GlobalOpt/array-elem-refs.ll b/llvm/test/Transforms/GlobalOpt/array-elem-refs.ll
deleted file mode 100644
index c31965b656d..00000000000
--- a/llvm/test/Transforms/GlobalOpt/array-elem-refs.ll
+++ /dev/null
@@ -1,32 +0,0 @@
-; RUN: opt < %s -S -globalopt | FileCheck %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-S128"
-target triple = "x86_64-unknown-linux-gnu"
-
-%struct.S = type { i8, i8 }
-
-@c = internal global i8** bitcast (i8* getelementptr (i8, i8* bitcast ([8 x i8*]* @b to i8*), i64 48) to i8**), align 8
-@b = internal global [8 x i8*] [i8* null, i8* null, i8* null, i8* null, i8* null, i8* null, i8* getelementptr inbounds (%struct.S, %struct.S* @a, i32 0, i32 0), i8* getelementptr (i8, i8* getelementptr inbounds (%struct.S, %struct.S* @a, i32 0, i32 0), i64 1)], align 16
-@a = internal global %struct.S zeroinitializer, align 1
-
-; Function Attrs: nounwind uwtable
-define signext i8 @foo() #0 {
-entry:
- %0 = load i8**, i8*** @c, align 8
- %1 = load i8*, i8** %0, align 8
- %2 = load i8, i8* %1, align 1
- ret i8 %2
-
-; CHECK-LABEL: @foo
-; CHECK: ret i8 0
-}
-
-; Function Attrs: nounwind uwtable
-define i32 @main() #0 {
-entry:
- %retval = alloca i32, align 4
- store i32 0, i32* %retval
- ret i32 0
-}
-
-attributes #0 = { nounwind uwtable }
-
diff --git a/llvm/test/Transforms/GlobalOpt/assume.ll b/llvm/test/Transforms/GlobalOpt/assume.ll
deleted file mode 100644
index b15106bc83a..00000000000
--- a/llvm/test/Transforms/GlobalOpt/assume.ll
+++ /dev/null
@@ -1,21 +0,0 @@
-; RUN: opt -S -globalopt < %s | FileCheck %s
-
-; CHECK: @tmp = local_unnamed_addr global i32 42
-
-@llvm.global_ctors = appending global [1 x { i32, void ()* }] [{ i32, void ()* } { i32 65535, void ()* @_GLOBAL__I_a }]
-@tmp = global i32 0
-
-define i32 @TheAnswerToLifeTheUniverseAndEverything() {
- ret i32 42
-}
-
-define void @_GLOBAL__I_a() {
-enter:
- %tmp1 = call i32 @TheAnswerToLifeTheUniverseAndEverything()
- store i32 %tmp1, i32* @tmp
- %cmp = icmp eq i32 %tmp1, 42
- call void @llvm.assume(i1 %cmp)
- ret void
-}
-
-declare void @llvm.assume(i1)
diff --git a/llvm/test/Transforms/GlobalOpt/atexit.ll b/llvm/test/Transforms/GlobalOpt/atexit.ll
deleted file mode 100644
index 55c2dab1c1d..00000000000
--- a/llvm/test/Transforms/GlobalOpt/atexit.ll
+++ /dev/null
@@ -1,6 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-
-; CHECK: ModuleID
-define internal i32 @__cxa_atexit(void (i8*)* nocapture %func, i8* nocapture %arg, i8* nocapture %dso_handle) nounwind readnone optsize noimplicitfloat {
- unreachable
-}
diff --git a/llvm/test/Transforms/GlobalOpt/atomic.ll b/llvm/test/Transforms/GlobalOpt/atomic.ll
deleted file mode 100644
index 563c1fec7d2..00000000000
--- a/llvm/test/Transforms/GlobalOpt/atomic.ll
+++ /dev/null
@@ -1,25 +0,0 @@
-; RUN: opt -globalopt < %s -S -o - | FileCheck %s
-
-@GV1 = internal global i64 1
-@GV2 = internal global i32 0
-
-; CHECK: @GV1 = internal unnamed_addr constant i64 1
-; CHECK: @GV2 = internal unnamed_addr global i32 0
-
-define void @test1() {
-entry:
- %0 = load atomic i8, i8* bitcast (i64* @GV1 to i8*) acquire, align 8
- ret void
-}
-
-; PR17163
-define void @test2a() {
-entry:
- store atomic i32 10, i32* @GV2 seq_cst, align 4
- ret void
-}
-define i32 @test2b() {
-entry:
- %atomic-load = load atomic i32, i32* @GV2 seq_cst, align 4
- ret i32 %atomic-load
-}
diff --git a/llvm/test/Transforms/GlobalOpt/available_externally_global_ctors.ll b/llvm/test/Transforms/GlobalOpt/available_externally_global_ctors.ll
deleted file mode 100644
index 7092a5ae222..00000000000
--- a/llvm/test/Transforms/GlobalOpt/available_externally_global_ctors.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
-target triple = "x86_64-apple-macosx10.11.0"
-
-; RUN: opt -S -globalopt < %s | FileCheck %s
-
-; Verify that the initialization of the available_externally global is not eliminated
-; CHECK: @llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @foo_static_init, i8* null }]
-
-@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @foo_static_init, i8* null }]
-@foo_external = available_externally global void ()* null
-
-define internal void @foo_static_init() {
-entry:
- store void ()* @foo_impl, void ()** @foo_external
- ret void
-}
-
-define internal void @foo_impl() {
-entry:
- ret void
-}
-
diff --git a/llvm/test/Transforms/GlobalOpt/basictest.ll b/llvm/test/Transforms/GlobalOpt/basictest.ll
deleted file mode 100644
index d5294820abe..00000000000
--- a/llvm/test/Transforms/GlobalOpt/basictest.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-; RUN: opt < %s -passes=globalopt -S | FileCheck %s
-
-; CHECK-NOT: global
-@X = internal global i32 4 ; <i32*> [#uses=1]
-
-define i32 @foo() {
- %V = load i32, i32* @X ; <i32> [#uses=1]
- ret i32 %V
-}
diff --git a/llvm/test/Transforms/GlobalOpt/blockaddress.ll b/llvm/test/Transforms/GlobalOpt/blockaddress.ll
deleted file mode 100644
index 12e09fcd481..00000000000
--- a/llvm/test/Transforms/GlobalOpt/blockaddress.ll
+++ /dev/null
@@ -1,23 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-
-@x = internal global i8* zeroinitializer
-
-define void @f() {
-; CHECK-LABEL: @f(
-
-; Check that we don't hit an assert in Constant::IsThreadDependent()
-; when storing this blockaddress into a global.
-
- store i8* blockaddress(@g, %here), i8** @x, align 8
- ret void
-}
-
-define void @g() {
-entry:
- br label %here
-
-; CHECK-LABEL: @g(
-
-here:
- ret void
-}
diff --git a/llvm/test/Transforms/GlobalOpt/cleanup-pointer-root-users.ll b/llvm/test/Transforms/GlobalOpt/cleanup-pointer-root-users.ll
deleted file mode 100644
index 16da5315db0..00000000000
--- a/llvm/test/Transforms/GlobalOpt/cleanup-pointer-root-users.ll
+++ /dev/null
@@ -1,49 +0,0 @@
-; RUN: opt -globalopt -S -o - < %s | FileCheck %s
-
-@glbl = internal global i8* null
-
-define void @test1a() {
-; CHECK-LABEL: @test1a(
-; CHECK-NOT: store
-; CHECK-NEXT: ret void
- store i8* null, i8** @glbl
- ret void
-}
-
-define void @test1b(i8* %p) {
-; CHECK-LABEL: @test1b(
-; CHECK-NEXT: store
-; CHECK-NEXT: ret void
- store i8* %p, i8** @glbl
- ret void
-}
-
-define void @test2() {
-; CHECK-LABEL: @test2(
-; CHECK: alloca i8
- %txt = alloca i8
- call void @foo2(i8* %txt)
- %call2 = call i8* @strdup(i8* %txt)
- store i8* %call2, i8** @glbl
- ret void
-}
-declare i8* @strdup(i8*)
-declare void @foo2(i8*)
-
-define void @test3() uwtable personality i32 (i32, i64, i8*, i8*)* @__gxx_personality_v0 {
-; CHECK-LABEL: @test3(
-; CHECK-NOT: bb1:
-; CHECK-NOT: bb2:
-; CHECK: invoke
- %ptr = invoke i8* @_Znwm(i64 1)
- to label %bb1 unwind label %bb2
-bb1:
- store i8* %ptr, i8** @glbl
- unreachable
-bb2:
- %tmp1 = landingpad { i8*, i32 }
- cleanup
- resume { i8*, i32 } %tmp1
-}
-declare i32 @__gxx_personality_v0(i32, i64, i8*, i8*)
-declare i8* @_Znwm(i64)
diff --git a/llvm/test/Transforms/GlobalOpt/coldcc_stress_test.ll b/llvm/test/Transforms/GlobalOpt/coldcc_stress_test.ll
deleted file mode 100644
index 80c9366af6f..00000000000
--- a/llvm/test/Transforms/GlobalOpt/coldcc_stress_test.ll
+++ /dev/null
@@ -1,48 +0,0 @@
-; RUN: opt < %s -globalopt -S -enable-coldcc-stress-test -mtriple=powerpc64le-unknown-linux-gnu | FileCheck %s -check-prefix=COLDCC
-; RUN: opt < %s -globalopt -S | FileCheck %s -check-prefix=CHECK
-
-define internal i32 @callee_default(i32* %m) {
-; COLDCC-LABEL: define internal coldcc i32 @callee_default
-; CHECK-LABEL: define internal fastcc i32 @callee_default
- %v = load i32, i32* %m
- ret i32 %v
-}
-
-define internal fastcc i32 @callee_fastcc(i32* %m) {
-; COLDCC-LABEL: define internal fastcc i32 @callee_fastcc
-; CHECK-LABEL: define internal fastcc i32 @callee_fastcc
- %v = load i32, i32* %m
- ret i32 %v
-}
-
-define internal coldcc i32 @callee_coldcc(i32* %m) {
-; COLDCC-LABEL: define internal coldcc i32 @callee_coldcc
-; CHECK-LABEL: define internal coldcc i32 @callee_coldcc
- %v = load i32, i32* %m
- ret i32 %v
-}
-
-define i32 @callee(i32* %m) {
- %v = load i32, i32* %m
- ret i32 %v
-}
-
-define void @caller() {
- %m = alloca i32
- call i32 @callee_default(i32* %m)
- call fastcc i32 @callee_fastcc(i32* %m)
- call coldcc i32 @callee_coldcc(i32* %m)
- call i32 @callee(i32* %m)
- ret void
-}
-
-; COLDCC-LABEL: define void @caller()
-; COLDCC: call coldcc i32 @callee_default
-; COLDCC: call fastcc i32 @callee_fastcc
-; COLDCC: call coldcc i32 @callee_coldcc
-; COLDCC: call i32 @callee
-; CHECK-LABEL: define void @caller()
-; CHECK: call fastcc i32 @callee_default
-; CHECK: call fastcc i32 @callee_fastcc
-; CHECK: call coldcc i32 @callee_coldcc
-; CHECK: call i32 @callee
diff --git a/llvm/test/Transforms/GlobalOpt/compiler-used.ll b/llvm/test/Transforms/GlobalOpt/compiler-used.ll
deleted file mode 100644
index a710d272edc..00000000000
--- a/llvm/test/Transforms/GlobalOpt/compiler-used.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-
-; Test that when all members of llvm.compiler.used are found to be redundant
-; we delete it instead of crashing.
-
-define void @foo() {
- ret void
-}
-
-@llvm.used = appending global [1 x i8*] [i8* bitcast (void ()* @foo to i8*)], section "llvm.metadata"
-
-@llvm.compiler.used = appending global [1 x i8*] [i8* bitcast (void ()* @foo to i8*)], section "llvm.metadata"
-
-; CHECK-NOT: @llvm.compiler.used
-; CHECK: @llvm.used = appending global [1 x i8*] [i8* bitcast (void ()* @foo to i8*)], section "llvm.metadata"
-; CHECK-NOT: @llvm.compiler.used
diff --git a/llvm/test/Transforms/GlobalOpt/constantexpr-dangle.ll b/llvm/test/Transforms/GlobalOpt/constantexpr-dangle.ll
deleted file mode 100644
index 3917bfff411..00000000000
--- a/llvm/test/Transforms/GlobalOpt/constantexpr-dangle.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: opt < %s -instcombine -globalopt -S | FileCheck %s
-; CHECK: internal fastcc float @foo
-
-define internal float @foo() {
- ret float 0.000000e+00
-}
-
-define float @bar() {
- %tmp1 = call float (...) bitcast (float ()* @foo to float (...)*)( )
- %tmp2 = fmul float %tmp1, 1.000000e+01 ; <float> [#uses=1]
- ret float %tmp2
-}
diff --git a/llvm/test/Transforms/GlobalOpt/constantfold-initializers.ll b/llvm/test/Transforms/GlobalOpt/constantfold-initializers.ll
deleted file mode 100644
index 3c20353d157..00000000000
--- a/llvm/test/Transforms/GlobalOpt/constantfold-initializers.ll
+++ /dev/null
@@ -1,103 +0,0 @@
-; RUN: opt < %s -S -globalopt | FileCheck %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"
-
-@.str91250 = global [3 x i8] zeroinitializer
-
-; CHECK: @A = local_unnamed_addr global i1 false
-@A = global i1 icmp ne (i64 sub nsw (i64 ptrtoint (i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str91250, i64 0, i64 1) to i64), i64 ptrtoint ([3 x i8]* @.str91250 to i64)), i64 1)
-
-; PR11352
-
-@xs = global [2 x i32] zeroinitializer, align 4
-; CHECK: @xs = local_unnamed_addr global [2 x i32] [i32 1, i32 1]
-
-; PR12642
-%PR12642.struct = type { i8 }
-@PR12642.s = global <{}> zeroinitializer, align 1
-@PR12642.p = constant %PR12642.struct* bitcast (i8* getelementptr (i8, i8* bitcast (<{}>* @PR12642.s to i8*), i64 1) to %PR12642.struct*), align 8
-
-define internal void @test1() {
-entry:
- store i32 1, i32* getelementptr inbounds ([2 x i32], [2 x i32]* @xs, i64 0, i64 0)
- %0 = load i32, i32* getelementptr inbounds ([2 x i32], [2 x i32]* @xs, i32 0, i64 0), align 4
- store i32 %0, i32* getelementptr inbounds ([2 x i32], [2 x i32]* @xs, i64 0, i64 1)
- ret void
-}
-
-; PR12060
-
-%closure = type { i32 }
-
-@f = internal global %closure zeroinitializer, align 4
-@m = global i32 0, align 4
-; CHECK-NOT: @f
-; CHECK: @m = local_unnamed_addr global i32 13
-
-define internal i32 @test2_helper(%closure* %this, i32 %b) {
-entry:
- %0 = getelementptr inbounds %closure, %closure* %this, i32 0, i32 0
- %1 = load i32, i32* %0, align 4
- %add = add nsw i32 %1, %b
- ret i32 %add
-}
-
-define internal void @test2() {
-entry:
- store i32 4, i32* getelementptr inbounds (%closure, %closure* @f, i32 0, i32 0)
- %call = call i32 @test2_helper(%closure* @f, i32 9)
- store i32 %call, i32* @m, align 4
- ret void
-}
-
-; PR19955
-
-@dllimportptr = global i32* null, align 4
-; CHECK: @dllimportptr = local_unnamed_addr global i32* null, align 4
-@dllimportvar = external dllimport global i32
-define internal void @test3() {
-entry:
- store i32* @dllimportvar, i32** @dllimportptr, align 4
- ret void
-}
-
-@dllexportptr = global i32* null, align 4
-; CHECK: @dllexportptr = local_unnamed_addr global i32* @dllexportvar, align 4
-@dllexportvar = dllexport global i32 0, align 4
-; CHECK: @dllexportvar = dllexport global i32 20, align 4
-define internal void @test4() {
-entry:
- store i32 20, i32* @dllexportvar, align 4
- store i32* @dllexportvar, i32** @dllexportptr, align 4
- ret void
-}
-
-@threadlocalptr = global i32* null, align 4
-; CHECK: @threadlocalptr = global i32* null, align 4
-@threadlocalvar = external thread_local global i32
-define internal void @test5() {
-entry:
- store i32* @threadlocalvar, i32** @threadlocalptr, align 4
- ret void
-}
-
-@test6_v1 = internal global { i32, i32 } { i32 42, i32 0 }, align 8
-@test6_v2 = global i32 0, align 4
-; CHECK: @test6_v2 = local_unnamed_addr global i32 42, align 4
-define internal void @test6() {
- %load = load { i32, i32 }, { i32, i32 }* @test6_v1, align 8
- %xv0 = extractvalue { i32, i32 } %load, 0
- %iv = insertvalue { i32, i32 } %load, i32 %xv0, 1
- %xv1 = extractvalue { i32, i32 } %iv, 1
- store i32 %xv1, i32* @test6_v2, align 4
- ret void
-}
-
-@llvm.global_ctors = appending constant
- [6 x { i32, void ()* }]
- [{ i32, void ()* } { i32 65535, void ()* @test1 },
- { i32, void ()* } { i32 65535, void ()* @test2 },
- { i32, void ()* } { i32 65535, void ()* @test3 },
- { i32, void ()* } { i32 65535, void ()* @test4 },
- { i32, void ()* } { i32 65535, void ()* @test5 },
- { i32, void ()* } { i32 65535, void ()* @test6 }]
diff --git a/llvm/test/Transforms/GlobalOpt/crash-2.ll b/llvm/test/Transforms/GlobalOpt/crash-2.ll
deleted file mode 100644
index 748fb027c7d..00000000000
--- a/llvm/test/Transforms/GlobalOpt/crash-2.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | opt -globalopt -disable-output
-; NOTE: This needs to run through 'llvm-as' first to reproduce the error!
-; PR15440
-
-%union.U5.0.6.12 = type { i32 }
-%struct.S0.1.7.13 = type { i8, i8, i8, i8, i16, [2 x i8] }
-%struct.S1.2.8.14 = type { i32, i16, i8, i8 }
-
-@.str = external unnamed_addr constant [2 x i8], align 1
-@g_25 = external global i8, align 1
-@g_71 = internal global %struct.S0.1.7.13 { i8 1, i8 -93, i8 58, i8 -1, i16 -5, [2 x i8] undef }, align 4
-@g_114 = external global i8, align 1
-@g_30 = external global { i32, i8, i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, align 4
-@g_271 = internal global [7 x [6 x [5 x i8*]]] [[6 x [5 x i8*]] [[5 x i8*] [i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* @g_25, i8* null], [5 x i8*] [i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* @g_114, i8* @g_114, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0)], [5 x i8*] [i8* null, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* @g_25, i8* null, i8* null], [5 x i8*] [i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* @g_25, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0)], [5 x i8*] [i8* @g_25, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* null, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0)], [5 x i8*] [i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* getelementptr (i8, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i64 1), i8* @g_25, i8* @g_114, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0)]], [6 x [5 x i8*]] [[5 x i8*] [i8* @g_25, i8* null, i8* @g_25, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0)], [5 x i8*] [i8* @g_25, i8* @g_114, i8* @g_25, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* @g_114], [5 x i8*] [i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* getelementptr (i8, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i64 1), i8* @g_25, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* @g_25], [5 x i8*] [i8* getelementptr (i8, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i64 1), i8* getelementptr (i8, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i64 1), i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* @g_114, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0)], [5 x i8*] [i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* @g_25, i8* @g_25, i8* @g_25, i8* @g_25], [5 x i8*] [i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* @g_25, i8* @g_25, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0)]], [6 x [5 x i8*]] [[5 x i8*] [i8* null, i8* @g_25, i8* @g_25, i8* @g_25, i8* null], [5 x i8*] [i8* @g_25, i8* getelementptr (i8, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i64 1), i8* @g_25, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* getelementptr (i8, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i64 1)], [5 x i8*] [i8* null, i8* getelementptr (i8, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i64 1), i8* getelementptr (i8, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i64 1), i8* null, i8* @g_25], [5 x i8*] [i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* @g_114, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* getelementptr (i8, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i64 1), i8* getelementptr (i8, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i64 1)], [5 x i8*] [i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* null, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* @g_25, i8* null], [5 x i8*] [i8* getelementptr (i8, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i64 1), i8* @g_25, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* getelementptr (i8, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i64 1), i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0)]], [6 x [5 x i8*]] [[5 x i8*] [i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* @g_25, i8* null, i8* @g_25], [5 x i8*] [i8* @g_25, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0)], [5 x i8*] [i8* @g_25, i8* getelementptr (i8, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i64 1), i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* @g_25, i8* @g_25], [5 x i8*] [i8* @g_114, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* @g_114], [5 x i8*] [i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* getelementptr (i8, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i64 1), i8* @g_25, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0)], [5 x i8*] [i8* @g_114, i8* @g_25, i8* @g_25, i8* @g_114, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0)]], [6 x [5 x i8*]] [[5 x i8*] [i8* @g_25, i8* null, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* @g_25, i8* @g_25], [5 x i8*] [i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* getelementptr (i8, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i64 1), i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* @g_25, i8* getelementptr (i8, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i64 1)], [5 x i8*] [i8* @g_25, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* getelementptr (i8, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i64 1), i8* @g_25, i8* getelementptr (i8, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i64 1)], [5 x i8*] [i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* getelementptr (i8, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i64 1), i8* @g_114], [5 x i8*] [i8* @g_25, i8* null, i8* getelementptr (i8, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i64 1), i8* getelementptr (i8, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i64 1), i8* null], [5 x i8*] [i8* @g_114, i8* @g_25, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* @g_114, i8* @g_25]], [6 x [5 x i8*]] [[5 x i8*] [i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* null, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* null, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0)], [5 x i8*] [i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* @g_25, i8* @g_25, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0)], [5 x i8*] [i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* getelementptr (i8, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i64 1)], [5 x i8*] [i8* @g_114, i8* getelementptr (i8, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i64 1), i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0)], [5 x i8*] [i8* @g_25, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* @g_25, i8* getelementptr (i8, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i64 1), i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0)], [5 x i8*] [i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* @g_25, i8* @g_25, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* @g_25]], [6 x [5 x i8*]] [[5 x i8*] [i8* @g_25, i8* @g_25, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* null], [5 x i8*] [i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* @g_114, i8* @g_25, i8* @g_25, i8* @g_114], [5 x i8*] [i8* null, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* @g_25, i8* null, i8* getelementptr (i8, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i64 1)], [5 x i8*] [i8* getelementptr (i8, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i64 1), i8* @g_114, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* @g_114, i8* getelementptr (i8, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i64 1)], [5 x i8*] [i8* @g_25, i8* @g_25, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i8* getelementptr (i8, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i64 1), i8* @g_25], [5 x i8*] [i8* getelementptr (i8, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i64 1), i8* @g_25, i8* @g_25, i8* getelementptr (i8, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), i64 1), i8* @g_25]]], align 4
-
-define i32 @func() {
- %tmp = load i8, i8* getelementptr inbounds (%struct.S0.1.7.13, %struct.S0.1.7.13* @g_71, i32 0, i32 0), align 1
- ret i32 0
-}
diff --git a/llvm/test/Transforms/GlobalOpt/crash.ll b/llvm/test/Transforms/GlobalOpt/crash.ll
deleted file mode 100644
index 8cfe9ea0570..00000000000
--- a/llvm/test/Transforms/GlobalOpt/crash.ll
+++ /dev/null
@@ -1,80 +0,0 @@
-; RUN: opt -globalopt -disable-output < %s
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128-n8:16:32"
-target triple = "i386-apple-darwin9.8"
-
-%0 = type { i32, void ()* }
-%struct.btSimdScalar = type { %"union.btSimdScalar::$_14" }
-%"union.btSimdScalar::$_14" = type { <4 x float> }
-
-@_ZL6vTwist = global %struct.btSimdScalar zeroinitializer ; <%struct.btSimdScalar*> [#uses=1]
-@llvm.global_ctors = appending global [1 x %0] [%0 { i32 65535, void ()* @_GLOBAL__I__ZN21btConeTwistConstraintC2Ev }] ; <[12 x %0]*> [#uses=0]
-
-define internal void @_GLOBAL__I__ZN21btConeTwistConstraintC2Ev() nounwind section "__TEXT,__StaticInit,regular,pure_instructions" {
-entry:
- store float 1.0, float* getelementptr inbounds (%struct.btSimdScalar, %struct.btSimdScalar* @_ZL6vTwist, i32 0, i32 0, i32 0, i32 3), align 4
- ret void
-}
-
-
-; PR6760
-%T = type { [5 x i32] }
-
-@switch_inf = internal global %T* null
-
-define void @test(i8* %arch_file, i32 %route_type) {
-entry:
- %A = sext i32 1 to i64
- %B = mul i64 %A, 20
- %C = call noalias i8* @malloc(i64 %B) nounwind
- %D = bitcast i8* %C to %T*
- store %T* %D, %T** @switch_inf, align 8
- unreachable
-
-bb.nph.i:
- %scevgep.i539 = getelementptr i8, i8* %C, i64 4
- unreachable
-
-xx:
- %E = load %T*, %T** @switch_inf, align 8
- unreachable
-}
-
-declare noalias i8* @malloc(i64) nounwind
-
-
-; PR8063
-@permute_bitrev.bitrev = internal global i32* null, align 8
-define void @permute_bitrev() nounwind {
-entry:
- %tmp = load i32*, i32** @permute_bitrev.bitrev, align 8
- %conv = sext i32 0 to i64
- %mul = mul i64 %conv, 4
- %call = call i8* @malloc(i64 %mul)
- %0 = bitcast i8* %call to i32*
- store i32* %0, i32** @permute_bitrev.bitrev, align 8
- ret void
-}
-
-
-
-
-@data8 = internal global [8000 x i8] zeroinitializer, align 16
-define void @memset_with_strange_user() ssp {
- call void @llvm.memset.p0i8.i64(i8* align 16 getelementptr inbounds ([8000 x i8], [8000 x i8]* @data8, i64 0, i64 0), i8 undef, i64 ptrtoint (i8* getelementptr ([8000 x i8], [8000 x i8]* @data8, i64 1, i64 sub (i64 0, i64 ptrtoint ([8000 x i8]* @data8 to i64))) to i64), i1 false)
- ret void
-}
-declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i1) nounwind
-
-
-; PR9856
-@g_52 = internal global i32** null, align 8
-@g_90 = external global i32*, align 8
-
-define void @icmp_user_of_stored_once() nounwind ssp {
-entry:
- %tmp4 = load i32**, i32*** @g_52, align 8
- store i32** @g_90, i32*** @g_52
- %cmp17 = icmp ne i32*** undef, @g_52
- ret void
-}
-
diff --git a/llvm/test/Transforms/GlobalOpt/ctor-list-opt-constexpr.ll b/llvm/test/Transforms/GlobalOpt/ctor-list-opt-constexpr.ll
deleted file mode 100644
index 0c3ff68a437..00000000000
--- a/llvm/test/Transforms/GlobalOpt/ctor-list-opt-constexpr.ll
+++ /dev/null
@@ -1,34 +0,0 @@
-; RUN: opt -globalopt -S < %s | FileCheck %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.0.0"
-
-%0 = type { i32, void ()* }
-%struct.foo = type { i32* }
-%struct.bar = type { i128 }
-
-@G = global i32 0, align 4
-@H = global i32 0, align 4
-@X = global %struct.foo zeroinitializer, align 8
-@X2 = global %struct.bar zeroinitializer, align 8
-@llvm.global_ctors = appending global [2 x %0] [%0 { i32 65535, void ()* @init1 }, %0 { i32 65535, void ()* @init2 }]
-
-; PR8710 - GlobalOpt shouldn't change the global's initializer to have this
-; arbitrary constant expression, the code generator can't handle it.
-define internal void @init1() {
-entry:
- %tmp = getelementptr inbounds %struct.foo, %struct.foo* @X, i32 0, i32 0
- store i32* inttoptr (i64 sdiv (i64 ptrtoint (i32* @G to i64), i64 ptrtoint (i32* @H to i64)) to i32*), i32** %tmp, align 8
- ret void
-}
-; CHECK-LABEL: @init1(
-; CHECK: store i32*
-
-; PR11705 - ptrtoint isn't safe in general in global initializers.
-define internal void @init2() {
-entry:
- %tmp = getelementptr inbounds %struct.bar, %struct.bar* @X2, i32 0, i32 0
- store i128 ptrtoint (i32* @G to i128), i128* %tmp, align 16
- ret void
-}
-; CHECK-LABEL: @init2(
-; CHECK: store i128
diff --git a/llvm/test/Transforms/GlobalOpt/ctor-list-opt-inbounds.ll b/llvm/test/Transforms/GlobalOpt/ctor-list-opt-inbounds.ll
deleted file mode 100644
index b969345710d..00000000000
--- a/llvm/test/Transforms/GlobalOpt/ctor-list-opt-inbounds.ll
+++ /dev/null
@@ -1,23 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-
-; Don't get fooled by the inbounds keyword; it doesn't change
-; the computed address.
-
-; CHECK: @H = local_unnamed_addr global i32 2
-; CHECK: @I = local_unnamed_addr global i32 2
-
-@llvm.global_ctors = appending global [1 x { i32, void ()* }] [ { i32, void ()* } { i32 65535, void ()* @CTOR } ]
-@addr = external global i32
-@G = internal global [6 x [5 x i32]] zeroinitializer
-@H = global i32 80
-@I = global i32 90
-
-define internal void @CTOR() {
- store i32 1, i32* getelementptr ([6 x [5 x i32]], [6 x [5 x i32]]* @G, i64 0, i64 0, i64 0)
- store i32 2, i32* getelementptr inbounds ([6 x [5 x i32]], [6 x [5 x i32]]* @G, i64 0, i64 0, i64 0)
- %t = load i32, i32* getelementptr ([6 x [5 x i32]], [6 x [5 x i32]]* @G, i64 0, i64 0, i64 0)
- store i32 %t, i32* @H
- %s = load i32, i32* getelementptr inbounds ([6 x [5 x i32]], [6 x [5 x i32]]* @G, i64 0, i64 0, i64 0)
- store i32 %s, i32* @I
- ret void
-}
diff --git a/llvm/test/Transforms/GlobalOpt/ctor-list-opt.ll b/llvm/test/Transforms/GlobalOpt/ctor-list-opt.ll
deleted file mode 100644
index 95e7d4d1ab5..00000000000
--- a/llvm/test/Transforms/GlobalOpt/ctor-list-opt.ll
+++ /dev/null
@@ -1,115 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-; CHECK-NOT: CTOR
-%ini = type { i32, void()*, i8* }
-@llvm.global_ctors = appending global [11 x %ini] [
- %ini { i32 65535, void ()* @CTOR1, i8* null },
- %ini { i32 65535, void ()* @CTOR1, i8* null },
- %ini { i32 65535, void ()* @CTOR2, i8* null },
- %ini { i32 65535, void ()* @CTOR3, i8* null },
- %ini { i32 65535, void ()* @CTOR4, i8* null },
- %ini { i32 65535, void ()* @CTOR5, i8* null },
- %ini { i32 65535, void ()* @CTOR6, i8* null },
- %ini { i32 65535, void ()* @CTOR7, i8* null },
- %ini { i32 65535, void ()* @CTOR8, i8* null },
- %ini { i32 65535, void ()* @CTOR9, i8* null },
- %ini { i32 2147483647, void ()* null, i8* null }
-]
-
-@G = global i32 0 ; <i32*> [#uses=1]
-@G2 = global i32 0 ; <i32*> [#uses=1]
-@G3 = global i32 -123 ; <i32*> [#uses=2]
-@X = global { i32, [2 x i32] } { i32 0, [2 x i32] [ i32 17, i32 21 ] } ; <{ i32, [2 x i32] }*> [#uses=2]
-@Y = global i32 -1 ; <i32*> [#uses=2]
-@Z = global i32 123 ; <i32*> [#uses=1]
-@D = global double 0.000000e+00 ; <double*> [#uses=1]
-@CTORGV = internal global i1 false ; <i1*> [#uses=2]
-
-define internal void @CTOR1() {
- ret void
-}
-
-define internal void @CTOR2() {
- %A = add i32 1, 23 ; <i32> [#uses=1]
- store i32 %A, i32* @G
- store i1 true, i1* @CTORGV
- ret void
-}
-
-define internal void @CTOR3() {
- %X = or i1 true, false ; <i1> [#uses=1]
- br label %Cont
-
-Cont: ; preds = %0
- br i1 %X, label %S, label %T
-
-S: ; preds = %Cont
- store i32 24, i32* @G2
- ret void
-
-T: ; preds = %Cont
- ret void
-}
-
-define internal void @CTOR4() {
- %X = load i32, i32* @G3 ; <i32> [#uses=1]
- %Y = add i32 %X, 123 ; <i32> [#uses=1]
- store i32 %Y, i32* @G3
- ret void
-}
-
-define internal void @CTOR5() {
- %X.2p = getelementptr inbounds { i32, [2 x i32] }, { i32, [2 x i32] }* @X, i32 0, i32 1, i32 0 ; <i32*> [#uses=2]
- %X.2 = load i32, i32* %X.2p ; <i32> [#uses=1]
- %X.1p = getelementptr inbounds { i32, [2 x i32] }, { i32, [2 x i32] }* @X, i32 0, i32 0 ; <i32*> [#uses=1]
- store i32 %X.2, i32* %X.1p
- store i32 42, i32* %X.2p
- ret void
-}
-
-define internal void @CTOR6() {
- %A = alloca i32 ; <i32*> [#uses=2]
- %y = load i32, i32* @Y ; <i32> [#uses=1]
- store i32 %y, i32* %A
- %Av = load i32, i32* %A ; <i32> [#uses=1]
- %Av1 = add i32 %Av, 1 ; <i32> [#uses=1]
- store i32 %Av1, i32* @Y
- ret void
-}
-
-define internal void @CTOR7() {
- call void @setto( i32* @Z, i32 0 )
- ret void
-}
-
-define void @setto(i32* %P, i32 %V) {
- store i32 %V, i32* %P
- ret void
-}
-
-declare double @cos(double)
-
-define internal void @CTOR8() {
- %X = call double @cos( double 0.000000e+00 ) ; <double> [#uses=1]
- store double %X, double* @D
- ret void
-}
-
-define i1 @accessor() {
- %V = load i1, i1* @CTORGV ; <i1> [#uses=1]
- ret i1 %V
-}
-
-%struct.A = type { i32 }
-%struct.B = type { i32 (...)**, i8*, [4 x i8] }
-@GV1 = global %struct.B zeroinitializer, align 8
-@GV2 = constant [3 x i8*] [i8* inttoptr (i64 16 to i8*), i8* null, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i64 }* null to i8*)]
-; CHECK-NOT: CTOR9
-define internal void @CTOR9() {
-entry:
- %0 = bitcast %struct.B* @GV1 to i8*
- %1 = getelementptr inbounds i8, i8* %0, i64 16
- %2 = bitcast i8* %1 to %struct.A*
- %3 = bitcast %struct.B* @GV1 to i8***
- store i8** getelementptr inbounds ([3 x i8*], [3 x i8*]* @GV2, i64 1, i64 0), i8*** %3
- ret void
-}
diff --git a/llvm/test/Transforms/GlobalOpt/cxx-dtor.ll b/llvm/test/Transforms/GlobalOpt/cxx-dtor.ll
deleted file mode 100644
index c43a8e2be2e..00000000000
--- a/llvm/test/Transforms/GlobalOpt/cxx-dtor.ll
+++ /dev/null
@@ -1,33 +0,0 @@
-; RUN: opt < %s -S -passes='cgscc(inline),function(early-cse),globalopt' | FileCheck %s
-
-%0 = type { i32, void ()* }
-%struct.A = type { i8 }
-%struct.B = type { }
-
-@a = global %struct.A zeroinitializer, align 1
-@__dso_handle = external global i8*
-@llvm.global_ctors = appending global [1 x %0] [%0 { i32 65535, void ()* @_GLOBAL__I_a }]
-
-; CHECK-NOT: call i32 @__cxa_atexit
-
-define internal void @__cxx_global_var_init() nounwind section "__TEXT,__StaticInit,regular,pure_instructions" {
- %1 = call i32 @__cxa_atexit(void (i8*)* bitcast (void (%struct.A*)* @_ZN1AD1Ev to void (i8*)*), i8* getelementptr inbounds (%struct.A, %struct.A* @a, i32 0, i32 0), i8* bitcast (i8** @__dso_handle to i8*))
- ret void
-}
-
-define linkonce_odr void @_ZN1AD1Ev(%struct.A* %this) nounwind align 2 {
- %t = bitcast %struct.A* %this to %struct.B*
- call void @_ZN1BD1Ev(%struct.B* %t)
- ret void
-}
-
-declare i32 @__cxa_atexit(void (i8*)*, i8*, i8*)
-
-define linkonce_odr void @_ZN1BD1Ev(%struct.B* %this) nounwind align 2 {
- ret void
-}
-
-define internal void @_GLOBAL__I_a() nounwind section "__TEXT,__StaticInit,regular,pure_instructions" {
- call void @__cxx_global_var_init()
- ret void
-}
diff --git a/llvm/test/Transforms/GlobalOpt/deaddeclaration.ll b/llvm/test/Transforms/GlobalOpt/deaddeclaration.ll
deleted file mode 100644
index 942f2e1bf6b..00000000000
--- a/llvm/test/Transforms/GlobalOpt/deaddeclaration.ll
+++ /dev/null
@@ -1,7 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-
-; CHECK-NOT: aa
-; CHECK-NOT: bb
-
-declare void @aa()
-@bb = external global i8
diff --git a/llvm/test/Transforms/GlobalOpt/deadfunction.ll b/llvm/test/Transforms/GlobalOpt/deadfunction.ll
deleted file mode 100644
index 5771c4ccfb7..00000000000
--- a/llvm/test/Transforms/GlobalOpt/deadfunction.ll
+++ /dev/null
@@ -1,27 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-
-; CHECK-NOT: test
-
-declare void @aa()
-declare void @bb()
-
-; Test that we can erase a function which has a blockaddress referring to it
-@test.x = internal unnamed_addr constant [3 x i8*] [i8* blockaddress(@test, %a), i8* blockaddress(@test, %b), i8* blockaddress(@test, %c)], align 16
-define internal void @test(i32 %n) nounwind noinline {
-entry:
- %idxprom = sext i32 %n to i64
- %arrayidx = getelementptr inbounds [3 x i8*], [3 x i8*]* @test.x, i64 0, i64 %idxprom
- %0 = load i8*, i8** %arrayidx, align 8
- indirectbr i8* %0, [label %a, label %b, label %c]
-
-a:
- tail call void @aa() nounwind
- br label %b
-
-b:
- tail call void @bb() nounwind
- br label %c
-
-c:
- ret void
-}
diff --git a/llvm/test/Transforms/GlobalOpt/deadglobal-2.ll b/llvm/test/Transforms/GlobalOpt/deadglobal-2.ll
deleted file mode 100644
index 92c0f994f36..00000000000
--- a/llvm/test/Transforms/GlobalOpt/deadglobal-2.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-; This is a harder case to delete as the GEP has a variable index.
-
-; CHECK-NOT: internal
-@G = internal global [4 x i32] zeroinitializer
-
-define void @foo(i32 %X) {
- %Ptr = getelementptr [4 x i32], [4 x i32]* @G, i32 0, i32 %X
- store i32 1, i32* %Ptr
- ret void
-}
diff --git a/llvm/test/Transforms/GlobalOpt/deadglobal.ll b/llvm/test/Transforms/GlobalOpt/deadglobal.ll
deleted file mode 100644
index f5eed44cbb6..00000000000
--- a/llvm/test/Transforms/GlobalOpt/deadglobal.ll
+++ /dev/null
@@ -1,28 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-
-@G1 = internal global i32 123 ; <i32*> [#uses=1]
-@A1 = internal alias i32, i32* @G1
-
-; CHECK-NOT: @G1
-; CHECK: @G2
-; CHECK-NOT: @G3
-
-; CHECK-NOT: @A1
-
-define void @foo1() {
-; CHECK: define void @foo
-; CHECK-NEXT: ret
- store i32 1, i32* @G1
- ret void
-}
-
-@G2 = linkonce_odr constant i32 42
-
-define void @foo2() {
-; CHECK-LABEL: define void @foo2(
-; CHECK-NEXT: store
- store i32 1, i32* @G2
- ret void
-}
-
-@G3 = linkonce_odr constant i32 42
diff --git a/llvm/test/Transforms/GlobalOpt/evaluate-bitcast.ll b/llvm/test/Transforms/GlobalOpt/evaluate-bitcast.ll
deleted file mode 100644
index 740dba2be66..00000000000
--- a/llvm/test/Transforms/GlobalOpt/evaluate-bitcast.ll
+++ /dev/null
@@ -1,28 +0,0 @@
-; RUN: opt -globalopt -instcombine %s -S -o - | FileCheck %s
-
-; Static constructor should have been optimized out
-; CHECK: i32 @main
-; CHECK-NEXT: ret i32 69905
-; CHECK-NOT: _GLOBAL__sub_I_main.cpp
-
-target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
-target triple = "x86_64-pc-linux-gnu"
-
-%struct.S = type { %struct.A* }
-%struct.A = type { i64, i64 }
-
-@s = internal local_unnamed_addr global %struct.S zeroinitializer, align 8
-@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__sub_I_main.cpp, i8* null }]
-@gA = available_externally dso_local local_unnamed_addr global %struct.A* inttoptr (i64 69905 to %struct.A*), align 8
-
-define dso_local i32 @main() local_unnamed_addr {
- %1 = load i64, i64* bitcast (%struct.S* @s to i64*), align 8
- %2 = trunc i64 %1 to i32
- ret i32 %2
-}
-
-define internal void @_GLOBAL__sub_I_main.cpp() section ".text.startup" {
- %1 = load i64, i64* bitcast (%struct.A** @gA to i64*), align 8
- store i64 %1, i64* bitcast (%struct.S* @s to i64*), align 8
- ret void
-}
diff --git a/llvm/test/Transforms/GlobalOpt/evaluate-call-errors.ll b/llvm/test/Transforms/GlobalOpt/evaluate-call-errors.ll
deleted file mode 100644
index 88f7cbd8df1..00000000000
--- a/llvm/test/Transforms/GlobalOpt/evaluate-call-errors.ll
+++ /dev/null
@@ -1,99 +0,0 @@
-; Checks for few bitcasted call evaluation errors
-
-; REQUIRES: asserts
-; RUN: opt -globalopt -instcombine -S -debug-only=evaluator %s -o %t 2>&1 | FileCheck %s
-
-; CHECK: Failed to fold bitcast call expr
-; CHECK: Can not convert function argument
-
-target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
-target triple = "x86_64-apple-macosx10.12.0"
-
-%struct.S = type { i32 }
-%struct.Q = type { i32 }
-%struct.Foo = type { i32 }
-
-@_s = global %struct.S zeroinitializer, align 4
-@_q = global %struct.Q zeroinitializer, align 4
-@llvm.global_ctors = appending global [2 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__sub_I_main2.cpp, i8* null }, { i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__sub_I_main3.cpp, i8* null }]
-
-define internal void @__cxx_global_var_init() section "__TEXT,__StaticInit,regular,pure_instructions" {
- call void @_ZN1SC1Ev(%struct.S* @_s)
- ret void
-}
-
-define linkonce_odr void @_ZN1SC1Ev(%struct.S*) unnamed_addr align 2 {
- %2 = alloca %struct.S*, align 8
- store %struct.S* %0, %struct.S** %2, align 8
- %3 = load %struct.S*, %struct.S** %2, align 8
- call void @_ZN1SC2Ev(%struct.S* %3)
- ret void
-}
-
-define internal void @__cxx_global_var_init.1() #0 section "__TEXT,__StaticInit,regular,pure_instructions" {
- call void @_ZN1QC1Ev(%struct.Q* @_q)
- ret void
-}
-
-define linkonce_odr void @_ZN1QC1Ev(%struct.Q*) unnamed_addr align 2 {
- %2 = alloca %struct.Q*, align 8
- store %struct.Q* %0, %struct.Q** %2, align 8
- %3 = load %struct.Q*, %struct.Q** %2, align 8
- call void @_ZN1QC2Ev(%struct.Q* %3)
- ret void
-}
-
-define i32 @main() {
- %1 = alloca i32, align 4
- store i32 0, i32* %1, align 4
- ret i32 0
-}
-
-define linkonce_odr void @_ZN1SC2Ev(%struct.S*) unnamed_addr align 2 {
- %2 = alloca %struct.S*, align 8
- %3 = alloca %struct.Foo, align 4
- store %struct.S* %0, %struct.S** %2, align 8
- %4 = load %struct.S*, %struct.S** %2, align 8
- %5 = getelementptr inbounds %struct.S, %struct.S* %4, i32 0, i32 0
- %6 = call i32 bitcast (%struct.Foo* ()* @_ZL3foov to i32 ()*)()
- %7 = getelementptr inbounds %struct.Foo, %struct.Foo* %3, i32 0, i32 0
- store i32 %6, i32* %7, align 4
- %8 = getelementptr inbounds %struct.Foo, %struct.Foo* %3, i32 0, i32 0
- %9 = load i32, i32* %8, align 4
- store i32 %9, i32* %5, align 4
- ret void
-}
-
-define internal %struct.Foo* @_ZL3foov() {
- ret %struct.Foo* null
-}
-
-define linkonce_odr void @_ZN1QC2Ev(%struct.Q*) unnamed_addr align 2 {
- %2 = alloca %struct.Q*, align 8
- store %struct.Q* %0, %struct.Q** %2, align 8
- %3 = load %struct.Q*, %struct.Q** %2, align 8
- %4 = getelementptr inbounds %struct.Q, %struct.Q* %3, i32 0, i32 0
- %5 = call i32 bitcast (i32 (i32)* @_ZL3baz3Foo to i32 (%struct.Foo*)*)(%struct.Foo* null)
- store i32 %5, i32* %4, align 4
- ret void
-}
-
-define internal i32 @_ZL3baz3Foo(i32) {
- %2 = alloca %struct.Foo, align 4
- %3 = getelementptr inbounds %struct.Foo, %struct.Foo* %2, i32 0, i32 0
- store i32 %0, i32* %3, align 4
- %4 = getelementptr inbounds %struct.Foo, %struct.Foo* %2, i32 0, i32 0
- %5 = load i32, i32* %4, align 4
- ret i32 %5
-}
-
-; Function Attrs: noinline ssp uwtable
-define internal void @_GLOBAL__sub_I_main2.cpp() section "__TEXT,__StaticInit,regular,pure_instructions" {
- call void @__cxx_global_var_init()
- ret void
-}
-
-define internal void @_GLOBAL__sub_I_main3.cpp() section "__TEXT,__StaticInit,regular,pure_instructions" {
- call void @__cxx_global_var_init.1()
- ret void
-}
diff --git a/llvm/test/Transforms/GlobalOpt/evaluate-call.ll b/llvm/test/Transforms/GlobalOpt/evaluate-call.ll
deleted file mode 100644
index c0456740da4..00000000000
--- a/llvm/test/Transforms/GlobalOpt/evaluate-call.ll
+++ /dev/null
@@ -1,87 +0,0 @@
-; Checks if bitcasted call expression can be evaluated
-; Given call expresion:
-; %struct.Bar* bitcast (%struct.Foo* (%struct.Foo*)* @_ZL3fooP3Foo to %struct.Bar* (%struct.Bar*)*)(%struct.Bar* @gBar)
-; We evaluate call to function @_ZL3fooP3Foo casting both parameter and return value
-; Given call expression:
-; void bitcast (void (%struct.Foo*)* @_ZL3bazP3Foo to void (%struct.Bar*)*)(%struct.Bar* @gBar)
-; We evaluate call to function _ZL3bazP3Foo casting its parameter and check that evaluated value (nullptr)
-; is handled correctly
-
-; RUN: opt -globalopt -instcombine -S %s -o - | FileCheck %s
-
-; CHECK: @gBar = local_unnamed_addr global %struct.Bar { i32 2 }
-; CHECK-NEXT: @_s = local_unnamed_addr global %struct.S { i32 1 }, align 4
-; CHECK-NEXT: @llvm.global_ctors = appending global [0 x { i32, void ()*, i8* }] zeroinitializer
-
-; CHECK: define i32 @main()
-; CHECK-NEXT: ret i32 0
-
-target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
-target triple = "x86_64-apple-macosx10.12.0"
-
-%struct.Bar = type { i32 }
-%struct.S = type { i32 }
-%struct.Foo = type { i32 }
-
-@gBar = global %struct.Bar zeroinitializer, align 4
-@_s = global %struct.S zeroinitializer, align 4
-@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__sub_I_main.cpp, i8* null }]
-
-define internal void @__cxx_global_var_init() section "__TEXT,__StaticInit,regular,pure_instructions" {
- call void @_ZN1SC1Ev_alias(%struct.S* @_s)
- ret void
-}
-
-@_ZN1SC1Ev_alias = linkonce_odr unnamed_addr alias void (%struct.S*), void (%struct.S*)* @_ZN1SC1Ev
-
-define linkonce_odr void @_ZN1SC1Ev(%struct.S*) unnamed_addr align 2 {
- %2 = alloca %struct.S*, align 8
- store %struct.S* %0, %struct.S** %2, align 8
- %3 = load %struct.S*, %struct.S** %2, align 8
- call void @_ZN1SC2Ev(%struct.S* %3)
- ret void
-}
-
-define i32 @main() {
- %1 = alloca i32, align 4
- store i32 0, i32* %1, align 4
- ret i32 0
-}
-
-define linkonce_odr void @_ZN1SC2Ev(%struct.S*) unnamed_addr align 2 {
- %2 = alloca %struct.S*, align 8
- store %struct.S* %0, %struct.S** %2, align 8
- %3 = load %struct.S*, %struct.S** %2, align 8
- %4 = getelementptr inbounds %struct.S, %struct.S* %3, i32 0, i32 0
- %5 = call %struct.Bar* bitcast (%struct.Foo* (%struct.Foo*)* @_ZL3fooP3Foo to %struct.Bar* (%struct.Bar*)*)(%struct.Bar* @gBar)
- %6 = getelementptr inbounds %struct.Bar, %struct.Bar* %5, i32 0, i32 0
- %7 = load i32, i32* %6, align 4
- store i32 %7, i32* %4, align 4
- call void bitcast (void (%struct.Foo*)* @_ZL3bazP3Foo to void (%struct.Bar*)*)(%struct.Bar* @gBar)
- ret void
-}
-
-define internal %struct.Foo* @_ZL3fooP3Foo(%struct.Foo*) {
- %2 = alloca %struct.Foo*, align 8
- store %struct.Foo* %0, %struct.Foo** %2, align 8
- %3 = load %struct.Foo*, %struct.Foo** %2, align 8
- %4 = getelementptr inbounds %struct.Foo, %struct.Foo* %3, i32 0, i32 0
- store i32 1, i32* %4, align 4
- %5 = load %struct.Foo*, %struct.Foo** %2, align 8
- ret %struct.Foo* %5
-}
-
-define internal void @_ZL3bazP3Foo(%struct.Foo*) {
- %2 = alloca %struct.Foo*, align 8
- store %struct.Foo* %0, %struct.Foo** %2, align 8
- %3 = load %struct.Foo*, %struct.Foo** %2, align 8
- %4 = getelementptr inbounds %struct.Foo, %struct.Foo* %3, i32 0, i32 0
- store i32 2, i32* %4, align 4
- ret void
-}
-
-; Function Attrs: noinline ssp uwtable
-define internal void @_GLOBAL__sub_I_main.cpp() section "__TEXT,__StaticInit,regular,pure_instructions" {
- call void @__cxx_global_var_init()
- ret void
-}
diff --git a/llvm/test/Transforms/GlobalOpt/evaluate-constfold-call.ll b/llvm/test/Transforms/GlobalOpt/evaluate-constfold-call.ll
deleted file mode 100644
index aeaa5e800c7..00000000000
--- a/llvm/test/Transforms/GlobalOpt/evaluate-constfold-call.ll
+++ /dev/null
@@ -1,55 +0,0 @@
-; Check if we can evaluate a bitcasted call to a function which is constant folded.
-; Evaluator folds call to fmodf, replacing it with constant value in case both operands
-; are known at compile time.
-; RUN: opt -globalopt -instcombine %s -S -o - | FileCheck %s
-
-; CHECK: @_q = dso_local local_unnamed_addr global %struct.Q { i32 1066527622 }
-; CHECK: define dso_local i32 @main
-; CHECK-NEXT: %[[V:.+]] = load i32, i32* getelementptr inbounds (%struct.Q, %struct.Q* @_q, i64 0, i32 0)
-; CHECK-NEXT: ret i32 %[[V]]
-
-source_filename = "main.cpp"
-target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
-target triple = "x86_64-none-linux-gnu"
-
-%struct.Q = type { i32 }
-
-$_ZN1QC2Ev = comdat any
-
-@_q = dso_local global %struct.Q zeroinitializer, align 4
-@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__sub_I_main.cpp, i8* null }]
-
-define internal void @__cxx_global_var_init() section ".text.startup" {
- call void @_ZN1QC2Ev(%struct.Q* @_q)
- ret void
-}
-
-define linkonce_odr dso_local void @_ZN1QC2Ev(%struct.Q*) unnamed_addr #1 comdat align 2 {
- %2 = alloca %struct.Q*, align 8
- store %struct.Q* %0, %struct.Q** %2, align 8
- %3 = load %struct.Q*, %struct.Q** %2, align 8
- %4 = getelementptr inbounds %struct.Q, %struct.Q* %3, i32 0, i32 0
- %5 = call i32 bitcast (float (float, float)* @fmodf to i32 (float, float)*)(float 0x40091EB860000000, float 2.000000e+00)
- store i32 %5, i32* %4, align 4
- ret void
-}
-
-define dso_local i32 @main(i32, i8**) {
- %3 = alloca i32, align 4
- %4 = alloca i32, align 4
- %5 = alloca i8**, align 8
- store i32 0, i32* %3, align 4
- store i32 %0, i32* %4, align 4
- store i8** %1, i8*** %5, align 8
- %6 = load i32, i32* getelementptr inbounds (%struct.Q, %struct.Q* @_q, i32 0, i32 0), align 4
- ret i32 %6
-}
-
-; Function Attrs: nounwind
-declare dso_local float @fmodf(float, float)
-
-; Function Attrs: noinline uwtable
-define internal void @_GLOBAL__sub_I_main.cpp() section ".text.startup" {
- call void @__cxx_global_var_init()
- ret void
-}
diff --git a/llvm/test/Transforms/GlobalOpt/externally-initialized-aggregate.ll b/llvm/test/Transforms/GlobalOpt/externally-initialized-aggregate.ll
deleted file mode 100644
index 2434f20e92b..00000000000
--- a/llvm/test/Transforms/GlobalOpt/externally-initialized-aggregate.ll
+++ /dev/null
@@ -1,50 +0,0 @@
-; RUN: opt < %s -S -globalopt | FileCheck %s
-
-; This global is externally_initialized, so if we split it into scalars we
-; should keep that flag set on all of the new globals. This will prevent the
-; store to @a[0] from being constant propagated to the load in @foo, but will not
-; prevent @a[1] from being removed since it is dead.
-; CHECK: @a.0 = internal unnamed_addr externally_initialized global i32 undef
-; CHECK-NOT: @a.1
-@a = internal externally_initialized global [2 x i32] undef, align 4
-; This is the same, but a struct rather than an array.
-; CHECK: @b.0 = internal unnamed_addr externally_initialized global i32 undef
-; CHECK-NOT: @b.1
-@b = internal externally_initialized global {i32, i32} undef, align 4
-
-define i32 @foo() {
-; CHECK-LABEL: define i32 @foo
-entry:
-; This load uses the split global, but cannot be constant-propagated away.
-; CHECK: %0 = load i32, i32* @a.0
- %0 = load i32, i32* getelementptr inbounds ([2 x i32], [2 x i32]* @a, i32 0, i32 0), align 4
- ret i32 %0
-}
-
-define i32 @bar() {
-; CHECK-LABEL: define i32 @bar
-entry:
-; This load uses the split global, but cannot be constant-propagated away.
-; CHECK: %0 = load i32, i32* @b.0
- %0 = load i32, i32* getelementptr inbounds ({i32, i32}, {i32, i32}* @b, i32 0, i32 0), align 4
- ret i32 %0
-}
-
-define void @init() {
-; CHECK-LABEL: define void @init
-entry:
-; This store uses the split global, but cannot be constant-propagated away.
-; CHECK: store i32 1, i32* @a.0
- store i32 1, i32* getelementptr inbounds ([2 x i32], [2 x i32]* @a, i32 0, i32 0), align 4
-; This store can be removed, because the second element of @a is never read.
-; CHECK-NOT: store i32 2, i32* @a.1
- store i32 2, i32* getelementptr inbounds ([2 x i32], [2 x i32]* @a, i32 0, i32 1), align 4
-
-; This store uses the split global, but cannot be constant-propagated away.
-; CHECK: store i32 3, i32* @b.0
- store i32 3, i32* getelementptr inbounds ({i32, i32}, {i32, i32}* @b, i32 0, i32 0), align 4
-; This store can be removed, because the second element of @b is never read.
-; CHECK-NOT: store i32 4, i32* @b.1
- store i32 4, i32* getelementptr inbounds ({i32, i32}, {i32, i32}* @b, i32 0, i32 1), align 4
- ret void
-}
diff --git a/llvm/test/Transforms/GlobalOpt/externally-initialized-global-ctr.ll b/llvm/test/Transforms/GlobalOpt/externally-initialized-global-ctr.ll
deleted file mode 100644
index 2e22ff06444..00000000000
--- a/llvm/test/Transforms/GlobalOpt/externally-initialized-global-ctr.ll
+++ /dev/null
@@ -1,35 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-; rdar://12580965.
-; ObjC++ test case.
-
-%struct.ButtonInitData = type { i8* }
-
-@_ZL14buttonInitData = internal global [1 x %struct.ButtonInitData] zeroinitializer, align 4
-
-@"\01L_OBJC_METH_VAR_NAME_40" = internal global [7 x i8] c"print:\00", section "__TEXT,__objc_methname,cstring_literals", align 1
-@"\01L_OBJC_SELECTOR_REFERENCES_41" = internal externally_initialized global i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"\01L_OBJC_METH_VAR_NAME_40", i32 0, i32 0), section "__DATA, __objc_selrefs, literal_pointers, no_dead_strip"
-
-@llvm.global_ctors = appending global [1 x { i32, void ()* }] [{ i32, void ()* } { i32 65535, void ()* @_GLOBAL__I_a }]
-@llvm.used = appending global [2 x i8*] [i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"\01L_OBJC_METH_VAR_NAME_40", i32 0, i32 0), i8* bitcast (i8** @"\01L_OBJC_SELECTOR_REFERENCES_41" to i8*)]
-
-define internal void @__cxx_global_var_init() section "__TEXT,__StaticInit,regular,pure_instructions" {
- %1 = load i8*, i8** @"\01L_OBJC_SELECTOR_REFERENCES_41", !invariant.load !2009
- store i8* %1, i8** getelementptr inbounds ([1 x %struct.ButtonInitData], [1 x %struct.ButtonInitData]* @_ZL14buttonInitData, i32 0, i32 0, i32 0), align 4
- ret void
-}
-
-define internal void @_GLOBAL__I_a() section "__TEXT,__StaticInit,regular,pure_instructions" {
- call void @__cxx_global_var_init()
- ret void
-}
-
-declare void @test(i8*)
-
-define void @print() {
-; CHECK: %1 = load i8*, i8** @_ZL14buttonInitData.0.0, align 4
- %1 = load i8*, i8** getelementptr inbounds ([1 x %struct.ButtonInitData], [1 x %struct.ButtonInitData]* @_ZL14buttonInitData, i32 0, i32 0, i32 0), align 4
- call void @test(i8* %1)
- ret void
-}
-
-!2009 = !{}
diff --git a/llvm/test/Transforms/GlobalOpt/externally-initialized.ll b/llvm/test/Transforms/GlobalOpt/externally-initialized.ll
deleted file mode 100644
index c01ba10f49c..00000000000
--- a/llvm/test/Transforms/GlobalOpt/externally-initialized.ll
+++ /dev/null
@@ -1,37 +0,0 @@
-; RUN: opt < %s -S -globalopt | FileCheck %s
-
-; This global is externally_initialized, which may modify the value between
-; it's static initializer and any code in this module being run, so the only
-; write to it cannot be merged into the static initialiser.
-; CHECK: @a = internal unnamed_addr externally_initialized global i32 undef
-@a = internal externally_initialized global i32 undef
-
-; This global is stored to by the external initialization, so cannot be
-; constant-propagated and removed, despite the fact that there are no writes
-; to it.
-; CHECK: @b = internal unnamed_addr externally_initialized global i32 undef
-@b = internal externally_initialized global i32 undef
-
-
-define void @foo() {
-; CHECK-LABEL: foo
-entry:
-; CHECK: store i32 42, i32* @a
- store i32 42, i32* @a
- ret void
-}
-define i32 @bar() {
-; CHECK-LABEL: bar
-entry:
-; CHECK: %val = load i32, i32* @a
- %val = load i32, i32* @a
- ret i32 %val
-}
-
-define i32 @baz() {
-; CHECK-LABEL: baz
-entry:
-; CHECK: %val = load i32, i32* @b
- %val = load i32, i32* @b
- ret i32 %val
-}
diff --git a/llvm/test/Transforms/GlobalOpt/fastcc.ll b/llvm/test/Transforms/GlobalOpt/fastcc.ll
deleted file mode 100644
index 64c4a268ff3..00000000000
--- a/llvm/test/Transforms/GlobalOpt/fastcc.ll
+++ /dev/null
@@ -1,55 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-
-define internal i32 @f(i32* %m) {
-; CHECK-LABEL: define internal fastcc i32 @f
- %v = load i32, i32* %m
- ret i32 %v
-}
-
-define internal x86_thiscallcc i32 @g(i32* %m) {
-; CHECK-LABEL: define internal fastcc i32 @g
- %v = load i32, i32* %m
- ret i32 %v
-}
-
-; Leave this one alone, because the user went out of their way to request this
-; convention.
-define internal coldcc i32 @h(i32* %m) {
-; CHECK-LABEL: define internal coldcc i32 @h
- %v = load i32, i32* %m
- ret i32 %v
-}
-
-define internal i32 @j(i32* %m) {
-; CHECK-LABEL: define internal i32 @j
- %v = load i32, i32* %m
- ret i32 %v
-}
-
-define internal i32 @inalloca(i32* inalloca %p) {
-; CHECK-LABEL: define internal i32 @inalloca(i32* inalloca %p)
- %rv = load i32, i32* %p
- ret i32 %rv
-}
-
-define void @call_things() {
- %m = alloca i32
- call i32 @f(i32* %m)
- call x86_thiscallcc i32 @g(i32* %m)
- call coldcc i32 @h(i32* %m)
- call i32 @j(i32* %m)
- %args = alloca inalloca i32
- call i32 @inalloca(i32* inalloca %args)
- ret void
-}
-
-@llvm.used = appending global [1 x i8*] [
- i8* bitcast (i32(i32*)* @j to i8*)
-], section "llvm.metadata"
-
-; CHECK-LABEL: define void @call_things()
-; CHECK: call fastcc i32 @f
-; CHECK: call fastcc i32 @g
-; CHECK: call coldcc i32 @h
-; CHECK: call i32 @j
-; CHECK: call i32 @inalloca(i32* inalloca %args)
diff --git a/llvm/test/Transforms/GlobalOpt/global-demotion.ll b/llvm/test/Transforms/GlobalOpt/global-demotion.ll
deleted file mode 100644
index 7965cb89620..00000000000
--- a/llvm/test/Transforms/GlobalOpt/global-demotion.ll
+++ /dev/null
@@ -1,80 +0,0 @@
-; RUN: opt -globalopt -S < %s | FileCheck %s
-
-@G1 = internal global i32 5
-@G2 = internal global i32 5
-@G3 = internal global i32 5
-@G4 = internal global i32 5
-@G5 = internal global i32 5
-
-; CHECK-LABEL: @test1
-define internal i32 @test1() norecurse {
-; CHECK-NOT: @G1
- store i32 4, i32* @G1
- %a = load i32, i32* @G1
-; CHECK: ret
- ret i32 %a
-}
-
-; The load comes before the store which makes @G2 live before the call.
-; CHECK-LABEL: @test2
-define internal i32 @test2() norecurse {
-; CHECK-NOT: %G2
- %a = load i32, i32* @G2
- store i32 4, i32* @G2
-; CHECK: ret
- ret i32 %a
-}
-
-; This global is indexed by a GEP - this makes it partial alias and we bail out.
-; FIXME: We don't actually have to bail out in this case.
-
-; CHECK-LABEL: @test3
-define internal i32 @test3() norecurse {
-; CHECK-NOT: %G3
- %x = getelementptr i32,i32* @G3, i32 0
- %a = load i32, i32* %x
- store i32 4, i32* @G3
-; CHECK: ret
- ret i32 %a
-}
-
-; The global is casted away to a larger type then loaded. The store only partially
-; covers the load, so we must not demote.
-
-; CHECK-LABEL: @test4
-define internal i32 @test4() norecurse {
-; CHECK-NOT: %G4
- store i32 4, i32* @G4
- %x = bitcast i32* @G4 to i64*
- %a = load i64, i64* %x
- %b = trunc i64 %a to i32
-; CHECK: ret
- ret i32 %b
-}
-
-; The global is casted away to a smaller type then loaded. This one is fine.
-
-; CHECK-LABEL: @test5
-define internal i32 @test5() norecurse {
-; CHECK-NOT: @G5
- store i32 4, i32* @G5
- %x = bitcast i32* @G5 to i16*
- %a = load i16, i16* %x
- %b = zext i16 %a to i32
-; CHECK: ret
- ret i32 %b
-}
-
-define i32 @main() norecurse {
- %a = call i32 @test1()
- %b = call i32 @test2()
- %c = call i32 @test3()
- %d = call i32 @test4()
- %e = call i32 @test5()
-
- %x = or i32 %a, %b
- %y = or i32 %x, %c
- %z = or i32 %y, %d
- %w = or i32 %z, %e
- ret i32 %w
-}
diff --git a/llvm/test/Transforms/GlobalOpt/globalsra-multigep.ll b/llvm/test/Transforms/GlobalOpt/globalsra-multigep.ll
deleted file mode 100644
index 87a8486d881..00000000000
--- a/llvm/test/Transforms/GlobalOpt/globalsra-multigep.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-
-target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
-target triple = "x86_64-unknown-linux-gnu"
-
-@g_data = internal unnamed_addr global <{ [8 x i16], [8 x i16] }> <{ [8 x i16] [i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16], [8 x i16] zeroinitializer }>, align 16
-; We cannot SRA here due to the second gep meaning the access to g_data may be to either element
-; CHECK: @g_data = internal unnamed_addr constant <{ [8 x i16], [8 x i16] }>
-
-define i16 @test(i64 %a1) {
-entry:
- %g1 = getelementptr inbounds <{ [8 x i16], [8 x i16] }>, <{ [8 x i16], [8 x i16] }>* @g_data, i64 0, i32 0
- %arrayidx.i = getelementptr inbounds [8 x i16], [8 x i16]* %g1, i64 0, i64 %a1
- %r = load i16, i16* %arrayidx.i, align 2
- ret i16 %r
-}
diff --git a/llvm/test/Transforms/GlobalOpt/globalsra-partial.ll b/llvm/test/Transforms/GlobalOpt/globalsra-partial.ll
deleted file mode 100644
index 141ee1bb5a8..00000000000
--- a/llvm/test/Transforms/GlobalOpt/globalsra-partial.ll
+++ /dev/null
@@ -1,25 +0,0 @@
-; In this case, the global cannot be merged as i may be out of range
-
-; RUN: opt < %s -globalopt -S | FileCheck %s
-target datalayout = "E-p:64:64:64-a0:0:8-f32:32:32-f64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-v64:64:64-v128:128:128"
-
-@G = internal global { i32, [4 x float] } zeroinitializer ; <{ i32, [4 x float] }*> [#uses=3]
-
-; CHECK: @G = internal unnamed_addr global { i32, [4 x float] }
-; CHECK: 12345
-define void @onlystore() {
- store i32 12345, i32* getelementptr ({ i32, [4 x float] }, { i32, [4 x float] }* @G, i32 0, i32 0)
- ret void
-}
-
-define void @storeinit(i32 %i) {
- %Ptr = getelementptr { i32, [4 x float] }, { i32, [4 x float] }* @G, i32 0, i32 1, i32 %i ; <float*> [#uses=1]
- store float 1.000000e+00, float* %Ptr
- ret void
-}
-
-define float @readval(i32 %i) {
- %Ptr = getelementptr { i32, [4 x float] }, { i32, [4 x float] }* @G, i32 0, i32 1, i32 %i ; <float*> [#uses=1]
- %V = load float, float* %Ptr ; <float> [#uses=1]
- ret float %V
-}
diff --git a/llvm/test/Transforms/GlobalOpt/globalsra-unknown-index.ll b/llvm/test/Transforms/GlobalOpt/globalsra-unknown-index.ll
deleted file mode 100644
index 4607373ab2c..00000000000
--- a/llvm/test/Transforms/GlobalOpt/globalsra-unknown-index.ll
+++ /dev/null
@@ -1,54 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-
-; globalopt should not sra the global, because it can't see the index.
-
-%struct.X = type { [3 x i32], [3 x i32] }
-
-; CHECK: @Y = internal unnamed_addr global [3 x %struct.X] zeroinitializer
-@Y = internal global [3 x %struct.X] zeroinitializer
-
-@addr = external global i8
-
-define void @frob() {
- store i32 1, i32* getelementptr inbounds ([3 x %struct.X], [3 x %struct.X]* @Y, i64 0, i64 0, i32 0, i64 ptrtoint (i8* @addr to i64)), align 4
- ret void
-}
-
-; CHECK-LABEL: @borf
-; CHECK: %a = load
-; CHECK: %b = load
-; CHECK: add i32 %a, %b
-define i32 @borf(i64 %i, i64 %j) {
- %p = getelementptr inbounds [3 x %struct.X], [3 x %struct.X]* @Y, i64 0, i64 0, i32 0, i64 0
- %a = load i32, i32* %p
- %q = getelementptr inbounds [3 x %struct.X], [3 x %struct.X]* @Y, i64 0, i64 0, i32 1, i64 0
- %b = load i32, i32* %q
- %c = add i32 %a, %b
- ret i32 %c
-}
-
-; CHECK-LABEL: @borg
-; CHECK: %a = load
-; CHECK: %b = load
-; CHECK: add i32 %a, %b
-define i32 @borg(i64 %i, i64 %j) {
- %p = getelementptr inbounds [3 x %struct.X], [3 x %struct.X]* @Y, i64 0, i64 1, i32 0, i64 1
- %a = load i32, i32* %p
- %q = getelementptr inbounds [3 x %struct.X], [3 x %struct.X]* @Y, i64 0, i64 1, i32 1, i64 1
- %b = load i32, i32* %q
- %c = add i32 %a, %b
- ret i32 %c
-}
-
-; CHECK-LABEL: @borh
-; CHECK: %a = load
-; CHECK: %b = load
-; CHECK: add i32 %a, %b
-define i32 @borh(i64 %i, i64 %j) {
- %p = getelementptr inbounds [3 x %struct.X], [3 x %struct.X]* @Y, i64 0, i64 2, i32 0, i64 2
- %a = load i32, i32* %p
- %q = getelementptr inbounds [3 x %struct.X], [3 x %struct.X]* @Y, i64 0, i64 2, i32 1, i64 2
- %b = load i32, i32* %q
- %c = add i32 %a, %b
- ret i32 %c
-}
diff --git a/llvm/test/Transforms/GlobalOpt/globalsra.ll b/llvm/test/Transforms/GlobalOpt/globalsra.ll
deleted file mode 100644
index 8098ec84b2e..00000000000
--- a/llvm/test/Transforms/GlobalOpt/globalsra.ll
+++ /dev/null
@@ -1,45 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-; CHECK-NOT: global
-target datalayout = "E-p:64:64:64-a0:0:8-f32:32:32-f64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-v64:64:64-v128:128:128"
-
-@G = internal global { i32, float, { double } } {
- i32 1,
- float 1.000000e+00,
- { double } { double 1.727000e+01 } } ; <{ i32, float, { double } }*> [#uses=3]
-
-define void @onlystore() {
- store i32 123, i32* getelementptr ({ i32, float, { double } }, { i32, float, { double } }* @G, i32 0, i32 0)
- ret void
-}
-
-define float @storeinit() {
- store float 1.000000e+00, float* getelementptr ({ i32, float, { double } }, { i32, float, { double } }* @G, i32 0, i32 1)
- %X = load float, float* getelementptr ({ i32, float, { double } }, { i32, float, { double } }* @G, i32 0, i32 1) ; <float> [#uses=1]
- ret float %X
-}
-
-define double @constantize() {
- %X = load double, double* getelementptr ({ i32, float, { double } }, { i32, float, { double } }* @G, i32 0, i32 2, i32 0) ; <double> [#uses=1]
- ret double %X
-}
-
-@G2 = internal constant { i32, float, { double } } {
- i32 1,
- float 1.000000e+00,
- { double } { double 1.727000e+01 } } ; <{ i32, float, { double } }*> [#uses=3]
-
-define void @onlystore2() {
- store i32 123, i32* getelementptr ({ i32, float, { double } }, { i32, float, { double } }* @G2, i32 0, i32 0)
- ret void
-}
-
-define float @storeinit2() {
- store float 1.000000e+00, float* getelementptr ({ i32, float, { double } }, { i32, float, { double } }* @G2, i32 0, i32 1)
- %X = load float, float* getelementptr ({ i32, float, { double } }, { i32, float, { double } }* @G2, i32 0, i32 1) ; <float> [#uses=1]
- ret float %X
-}
-
-define double @constantize2() {
- %X = load double, double* getelementptr ({ i32, float, { double } }, { i32, float, { double } }* @G2, i32 0, i32 2, i32 0) ; <double> [#uses=1]
- ret double %X
-}
diff --git a/llvm/test/Transforms/GlobalOpt/heap-sra-1-no-null-opt.ll b/llvm/test/Transforms/GlobalOpt/heap-sra-1-no-null-opt.ll
deleted file mode 100644
index c826e7f7a04..00000000000
--- a/llvm/test/Transforms/GlobalOpt/heap-sra-1-no-null-opt.ll
+++ /dev/null
@@ -1,40 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-target datalayout = "E-p:64:64:64-a0:0:8-f32:32:32-f64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-v64:64:64-v128:128:128"
-
-%struct.foo = type { i32, i32 }
-@X = internal global %struct.foo* null
-; CHECK: @X
-; CHECK-NOT: @X.f0
-
-define void @bar(i64 %Size) nounwind noinline #0 {
-entry:
- %mallocsize = mul i64 %Size, 8 ; <i64> [#uses=1]
- %malloccall = tail call i8* @malloc(i64 %mallocsize) ; <i8*> [#uses=1]
- %.sub = bitcast i8* %malloccall to %struct.foo* ; <%struct.foo*> [#uses=1]
- store %struct.foo* %.sub, %struct.foo** @X, align 4
- ret void
-}
-
-declare noalias i8* @malloc(i64)
-
-define i32 @baz() nounwind readonly noinline #0 {
-bb1.thread:
- %0 = load %struct.foo*, %struct.foo** @X, align 4
- br label %bb1
-
-bb1: ; preds = %bb1, %bb1.thread
- %i.0.reg2mem.0 = phi i32 [ 0, %bb1.thread ], [ %indvar.next, %bb1 ]
- %sum.0.reg2mem.0 = phi i32 [ 0, %bb1.thread ], [ %3, %bb1 ]
- %1 = getelementptr %struct.foo, %struct.foo* %0, i32 %i.0.reg2mem.0, i32 0
- %2 = load i32, i32* %1, align 4
- %3 = add i32 %2, %sum.0.reg2mem.0
- %indvar.next = add i32 %i.0.reg2mem.0, 1
- %exitcond = icmp eq i32 %indvar.next, 1200
- br i1 %exitcond, label %bb2, label %bb1
-
-bb2: ; preds = %bb1
- ret i32 %3
-}
-
-attributes #0 = { "null-pointer-is-valid"="true" }
-
diff --git a/llvm/test/Transforms/GlobalOpt/heap-sra-1.ll b/llvm/test/Transforms/GlobalOpt/heap-sra-1.ll
deleted file mode 100644
index 28a20ada03f..00000000000
--- a/llvm/test/Transforms/GlobalOpt/heap-sra-1.ll
+++ /dev/null
@@ -1,45 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-target datalayout = "E-p:64:64:64-a0:0:8-f32:32:32-f64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-v64:64:64-v128:128:128"
-
- %struct.foo = type { i32, i32 }
-@X = internal global %struct.foo* null
-; CHECK: @X.f0
-; CHECK: @X.f1
-
-define void @bar(i64 %Size) nounwind noinline {
-entry:
- %mallocsize = mul i64 %Size, 8 ; <i64> [#uses=1]
- %malloccall = tail call i8* @malloc(i64 %mallocsize) ; <i8*> [#uses=1]
- %.sub = bitcast i8* %malloccall to %struct.foo* ; <%struct.foo*> [#uses=1]
- store %struct.foo* %.sub, %struct.foo** @X, align 4
- ret void
-}
-
-declare noalias i8* @malloc(i64)
-
-define i32 @baz() nounwind readonly noinline {
-bb1.thread:
- %0 = load %struct.foo*, %struct.foo** @X, align 4
- br label %bb1
-
-bb1: ; preds = %bb1, %bb1.thread
- %i.0.reg2mem.0 = phi i32 [ 0, %bb1.thread ], [ %indvar.next, %bb1 ]
- %sum.0.reg2mem.0 = phi i32 [ 0, %bb1.thread ], [ %3, %bb1 ]
- %1 = getelementptr %struct.foo, %struct.foo* %0, i32 %i.0.reg2mem.0, i32 0
- %2 = load i32, i32* %1, align 4
- %3 = add i32 %2, %sum.0.reg2mem.0
- %indvar.next = add i32 %i.0.reg2mem.0, 1
- %exitcond = icmp eq i32 %indvar.next, 1200
- br i1 %exitcond, label %bb2, label %bb1
-
-bb2: ; preds = %bb1
- ret i32 %3
-}
-
-define void @bam(i64 %Size) nounwind noinline #0 {
-entry:
- %0 = load %struct.foo*, %struct.foo** @X, align 4
- ret void
-}
-
-attributes #0 = { "null-pointer-is-valid"="true" }
diff --git a/llvm/test/Transforms/GlobalOpt/heap-sra-2-no-null-opt.ll b/llvm/test/Transforms/GlobalOpt/heap-sra-2-no-null-opt.ll
deleted file mode 100644
index c33bcba9921..00000000000
--- a/llvm/test/Transforms/GlobalOpt/heap-sra-2-no-null-opt.ll
+++ /dev/null
@@ -1,39 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-target datalayout = "E-p:64:64:64-a0:0:8-f32:32:32-f64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-v64:64:64-v128:128:128"
-
-%struct.foo = type { i32, i32 }
-@X = internal global %struct.foo* null ; <%struct.foo**> [#uses=2]
-; CHECK: @X
-; CHECK-NOT: @X.f0
-
-define void @bar(i32 %Size) nounwind noinline #0 {
-entry:
- %malloccall = tail call i8* @malloc(i64 8000000) ; <i8*> [#uses=1]
- %0 = bitcast i8* %malloccall to [1000000 x %struct.foo]* ; <[1000000 x %struct.foo]*> [#uses=1]
- %.sub = getelementptr [1000000 x %struct.foo], [1000000 x %struct.foo]* %0, i32 0, i32 0 ; <%struct.foo*> [#uses=1]
- store %struct.foo* %.sub, %struct.foo** @X, align 4
- ret void
-}
-
-declare noalias i8* @malloc(i64)
-
-define i32 @baz() nounwind readonly noinline #0 {
-bb1.thread:
- %0 = load %struct.foo*, %struct.foo** @X, align 4 ; <%struct.foo*> [#uses=1]
- br label %bb1
-
-bb1: ; preds = %bb1, %bb1.thread
- %i.0.reg2mem.0 = phi i32 [ 0, %bb1.thread ], [ %indvar.next, %bb1 ] ; <i32> [#uses=2]
- %sum.0.reg2mem.0 = phi i32 [ 0, %bb1.thread ], [ %3, %bb1 ] ; <i32> [#uses=1]
- %1 = getelementptr %struct.foo, %struct.foo* %0, i32 %i.0.reg2mem.0, i32 0 ; <i32*> [#uses=1]
- %2 = load i32, i32* %1, align 4 ; <i32> [#uses=1]
- %3 = add i32 %2, %sum.0.reg2mem.0 ; <i32> [#uses=2]
- %indvar.next = add i32 %i.0.reg2mem.0, 1 ; <i32> [#uses=2]
- %exitcond = icmp eq i32 %indvar.next, 1200 ; <i1> [#uses=1]
- br i1 %exitcond, label %bb2, label %bb1
-
-bb2: ; preds = %bb1
- ret i32 %3
-}
-
-attributes #0 = { "null-pointer-is-valid"="true" }
diff --git a/llvm/test/Transforms/GlobalOpt/heap-sra-2.ll b/llvm/test/Transforms/GlobalOpt/heap-sra-2.ll
deleted file mode 100644
index ec05b22b33b..00000000000
--- a/llvm/test/Transforms/GlobalOpt/heap-sra-2.ll
+++ /dev/null
@@ -1,45 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-target datalayout = "E-p:64:64:64-a0:0:8-f32:32:32-f64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-v64:64:64-v128:128:128"
-
- %struct.foo = type { i32, i32 }
-@X = internal global %struct.foo* null ; <%struct.foo**> [#uses=2]
-; CHECK: @X.f0
-; CHECK: @X.f1
-
-define void @bar(i32 %Size) nounwind noinline {
-entry:
- %malloccall = tail call i8* @malloc(i64 8000000) ; <i8*> [#uses=1]
- %0 = bitcast i8* %malloccall to [1000000 x %struct.foo]* ; <[1000000 x %struct.foo]*> [#uses=1]
- %.sub = getelementptr [1000000 x %struct.foo], [1000000 x %struct.foo]* %0, i32 0, i32 0 ; <%struct.foo*> [#uses=1]
- store %struct.foo* %.sub, %struct.foo** @X, align 4
- ret void
-}
-
-declare noalias i8* @malloc(i64)
-
-define i32 @baz() nounwind readonly noinline {
-bb1.thread:
- %0 = load %struct.foo*, %struct.foo** @X, align 4 ; <%struct.foo*> [#uses=1]
- br label %bb1
-
-bb1: ; preds = %bb1, %bb1.thread
- %i.0.reg2mem.0 = phi i32 [ 0, %bb1.thread ], [ %indvar.next, %bb1 ] ; <i32> [#uses=2]
- %sum.0.reg2mem.0 = phi i32 [ 0, %bb1.thread ], [ %3, %bb1 ] ; <i32> [#uses=1]
- %1 = getelementptr %struct.foo, %struct.foo* %0, i32 %i.0.reg2mem.0, i32 0 ; <i32*> [#uses=1]
- %2 = load i32, i32* %1, align 4 ; <i32> [#uses=1]
- %3 = add i32 %2, %sum.0.reg2mem.0 ; <i32> [#uses=2]
- %indvar.next = add i32 %i.0.reg2mem.0, 1 ; <i32> [#uses=2]
- %exitcond = icmp eq i32 %indvar.next, 1200 ; <i1> [#uses=1]
- br i1 %exitcond, label %bb2, label %bb1
-
-bb2: ; preds = %bb1
- ret i32 %3
-}
-
-define void @bam(i64 %Size) nounwind noinline #0 {
-entry:
- %0 = load %struct.foo*, %struct.foo** @X, align 4
- ret void
-}
-
-attributes #0 = { "null-pointer-is-valid"="true" }
diff --git a/llvm/test/Transforms/GlobalOpt/heap-sra-3-no-null-opt.ll b/llvm/test/Transforms/GlobalOpt/heap-sra-3-no-null-opt.ll
deleted file mode 100644
index ba3b0a418a1..00000000000
--- a/llvm/test/Transforms/GlobalOpt/heap-sra-3-no-null-opt.ll
+++ /dev/null
@@ -1,41 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-target datalayout = "E-p:64:64:64-a0:0:8-f32:32:32-f64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-v64:64:64-v128:128:128"
-
-%struct.foo = type { i32, i32 }
-@X = internal global %struct.foo* null
-; CHECK: @X
-; CHECK-NOT: @X.f0
-
-define void @bar(i64 %Size) nounwind noinline #0 {
-entry:
- %mallocsize = mul i64 8, %Size ; <i64> [#uses=1]
-; CHECK: mul i64 8, %Size
- %malloccall = tail call i8* @malloc(i64 %mallocsize) ; <i8*> [#uses=1]
- %.sub = bitcast i8* %malloccall to %struct.foo* ; <%struct.foo*> [#uses=1]
- store %struct.foo* %.sub, %struct.foo** @X, align 4
- ret void
-}
-
-declare noalias i8* @malloc(i64)
-
-define i32 @baz() nounwind readonly noinline #0 {
-bb1.thread:
-; CHECK: load %struct.foo*, %struct.foo** @X, align 4
- %0 = load %struct.foo*, %struct.foo** @X, align 4
- br label %bb1
-
-bb1: ; preds = %bb1, %bb1.thread
- %i.0.reg2mem.0 = phi i32 [ 0, %bb1.thread ], [ %indvar.next, %bb1 ]
- %sum.0.reg2mem.0 = phi i32 [ 0, %bb1.thread ], [ %3, %bb1 ]
- %1 = getelementptr %struct.foo, %struct.foo* %0, i32 %i.0.reg2mem.0, i32 0
- %2 = load i32, i32* %1, align 4
- %3 = add i32 %2, %sum.0.reg2mem.0
- %indvar.next = add i32 %i.0.reg2mem.0, 1
- %exitcond = icmp eq i32 %indvar.next, 1200
- br i1 %exitcond, label %bb2, label %bb1
-
-bb2: ; preds = %bb1
- ret i32 %3
-}
-
-attributes #0 = { "null-pointer-is-valid"="true" }
diff --git a/llvm/test/Transforms/GlobalOpt/heap-sra-3.ll b/llvm/test/Transforms/GlobalOpt/heap-sra-3.ll
deleted file mode 100644
index 67058c8aba2..00000000000
--- a/llvm/test/Transforms/GlobalOpt/heap-sra-3.ll
+++ /dev/null
@@ -1,46 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-target datalayout = "E-p:64:64:64-a0:0:8-f32:32:32-f64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-v64:64:64-v128:128:128"
-
- %struct.foo = type { i32, i32 }
-@X = internal global %struct.foo* null
-; CHECK: @X.f0
-; CHECK: @X.f1
-
-define void @bar(i64 %Size) nounwind noinline {
-entry:
- %mallocsize = mul i64 8, %Size ; <i64> [#uses=1]
-; CHECK: mul i64 %Size, 4
- %malloccall = tail call i8* @malloc(i64 %mallocsize) ; <i8*> [#uses=1]
- %.sub = bitcast i8* %malloccall to %struct.foo* ; <%struct.foo*> [#uses=1]
- store %struct.foo* %.sub, %struct.foo** @X, align 4
- ret void
-}
-
-declare noalias i8* @malloc(i64)
-
-define i32 @baz() nounwind readonly noinline {
-bb1.thread:
- %0 = load %struct.foo*, %struct.foo** @X, align 4
- br label %bb1
-
-bb1: ; preds = %bb1, %bb1.thread
- %i.0.reg2mem.0 = phi i32 [ 0, %bb1.thread ], [ %indvar.next, %bb1 ]
- %sum.0.reg2mem.0 = phi i32 [ 0, %bb1.thread ], [ %3, %bb1 ]
- %1 = getelementptr %struct.foo, %struct.foo* %0, i32 %i.0.reg2mem.0, i32 0
- %2 = load i32, i32* %1, align 4
- %3 = add i32 %2, %sum.0.reg2mem.0
- %indvar.next = add i32 %i.0.reg2mem.0, 1
- %exitcond = icmp eq i32 %indvar.next, 1200
- br i1 %exitcond, label %bb2, label %bb1
-
-bb2: ; preds = %bb1
- ret i32 %3
-}
-
-define void @bam(i64 %Size) nounwind noinline #0 {
-entry:
- %0 = load %struct.foo*, %struct.foo** @X, align 4
- ret void
-}
-
-attributes #0 = { "null-pointer-is-valid"="true" }
diff --git a/llvm/test/Transforms/GlobalOpt/heap-sra-4-no-null-opt.ll b/llvm/test/Transforms/GlobalOpt/heap-sra-4-no-null-opt.ll
deleted file mode 100644
index 607c93d1e8a..00000000000
--- a/llvm/test/Transforms/GlobalOpt/heap-sra-4-no-null-opt.ll
+++ /dev/null
@@ -1,44 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-target datalayout = "E-p:64:64:64-a0:0:8-f32:32:32-f64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-v64:64:64-v128:128:128"
-
-%struct.foo = type { i32, i32 }
-
-@X = internal global %struct.foo* null
-; CHECK: @X
-; CHECK-NOT: @X.f0
-
-define void @bar(i64 %Size) nounwind noinline #0 {
-entry:
- %mallocsize = shl i64 %Size, 3 ; <i64> [#uses=1]
- %malloccall = tail call i8* @malloc(i64 %mallocsize) ; <i8*> [#uses=1]
-; CHECK: shl i64 %Size, 3
- %.sub = bitcast i8* %malloccall to %struct.foo* ; <%struct.foo*> [#uses=1]
- store %struct.foo* %.sub, %struct.foo** @X, align 4
- ret void
-}
-
-declare noalias i8* @malloc(i64)
-
-define i32 @baz() nounwind readonly noinline #0 {
-; CHECK-LABEL: @baz(
-bb1.thread:
-; CHECK: load %struct.foo*, %struct.foo** @X, align 4
- %0 = load %struct.foo*, %struct.foo** @X, align 4
- br label %bb1
-
-bb1: ; preds = %bb1, %bb1.thread
- %i.0.reg2mem.0 = phi i32 [ 0, %bb1.thread ], [ %indvar.next, %bb1 ]
- %sum.0.reg2mem.0 = phi i32 [ 0, %bb1.thread ], [ %3, %bb1 ]
- %1 = getelementptr %struct.foo, %struct.foo* %0, i32 %i.0.reg2mem.0, i32 0
- %2 = load i32, i32* %1, align 4
-; CHECK: load i32, i32* %1, align 4
- %3 = add i32 %2, %sum.0.reg2mem.0
- %indvar.next = add i32 %i.0.reg2mem.0, 1
- %exitcond = icmp eq i32 %indvar.next, 1200
- br i1 %exitcond, label %bb2, label %bb1
-
-bb2: ; preds = %bb1
- ret i32 %3
-}
-
-attributes #0 = { "null-pointer-is-valid"="true" }
diff --git a/llvm/test/Transforms/GlobalOpt/heap-sra-4.ll b/llvm/test/Transforms/GlobalOpt/heap-sra-4.ll
deleted file mode 100644
index 71832f34923..00000000000
--- a/llvm/test/Transforms/GlobalOpt/heap-sra-4.ll
+++ /dev/null
@@ -1,47 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-target datalayout = "E-p:64:64:64-a0:0:8-f32:32:32-f64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-v64:64:64-v128:128:128"
-
- %struct.foo = type { i32, i32 }
-@X = internal global %struct.foo* null
-; CHECK: @X.f0
-; CHECK: @X.f1
-
-define void @bar(i64 %Size) nounwind noinline {
-entry:
- %mallocsize = shl i64 %Size, 3 ; <i64> [#uses=1]
- %malloccall = tail call i8* @malloc(i64 %mallocsize) ; <i8*> [#uses=1]
-; CHECK: mul i64 %Size, 4
- %.sub = bitcast i8* %malloccall to %struct.foo* ; <%struct.foo*> [#uses=1]
- store %struct.foo* %.sub, %struct.foo** @X, align 4
- ret void
-}
-
-declare noalias i8* @malloc(i64)
-
-define i32 @baz() nounwind readonly noinline {
-bb1.thread:
- %0 = load %struct.foo*, %struct.foo** @X, align 4
- br label %bb1
-
-bb1: ; preds = %bb1, %bb1.thread
- %i.0.reg2mem.0 = phi i32 [ 0, %bb1.thread ], [ %indvar.next, %bb1 ]
- %sum.0.reg2mem.0 = phi i32 [ 0, %bb1.thread ], [ %3, %bb1 ]
- %1 = getelementptr %struct.foo, %struct.foo* %0, i32 %i.0.reg2mem.0, i32 0
- %2 = load i32, i32* %1, align 4
- %3 = add i32 %2, %sum.0.reg2mem.0
- %indvar.next = add i32 %i.0.reg2mem.0, 1
- %exitcond = icmp eq i32 %indvar.next, 1200
- br i1 %exitcond, label %bb2, label %bb1
-
-bb2: ; preds = %bb1
- ret i32 %3
-}
-
-define void @bam(i64 %Size) nounwind noinline #0 {
-entry:
- %0 = load %struct.foo*, %struct.foo** @X, align 4
- ret void
-}
-
-attributes #0 = { "null-pointer-is-valid"="true" }
-
diff --git a/llvm/test/Transforms/GlobalOpt/heap-sra-phi-no-null-opt.ll b/llvm/test/Transforms/GlobalOpt/heap-sra-phi-no-null-opt.ll
deleted file mode 100644
index 06c74e5bfc4..00000000000
--- a/llvm/test/Transforms/GlobalOpt/heap-sra-phi-no-null-opt.ll
+++ /dev/null
@@ -1,54 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-target datalayout = "E-p:64:64:64-a0:0:8-f32:32:32-f64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-v64:64:64-v128:128:128"
-
-%struct.foo = type { i32, i32 }
-
-@X = internal global %struct.foo* null ; <%struct.foo**> [#uses=2]
-; CHECK: @X
-; CHECK-NOT: @X.f0
-
-define void @bar(i32 %Size) nounwind noinline #0 {
-; CHECK-LABEL: @bar(
-entry:
- %malloccall = tail call i8* @malloc(i64 8000000) ; <i8*> [#uses=1]
- %tmp = bitcast i8* %malloccall to [1000000 x %struct.foo]* ; <[1000000 x %struct.foo]*> [#uses=1]
- %.sub = getelementptr [1000000 x %struct.foo], [1000000 x %struct.foo]* %tmp, i32 0, i32 0 ; <%struct.foo*> [#uses=1]
- store %struct.foo* %.sub, %struct.foo** @X, align 4
- ret void
-}
-
-declare noalias i8* @malloc(i64)
-
-define i32 @baz() nounwind readonly noinline #0 {
-; CHECK-LABEL: @baz(
-bb1.thread:
- %tmpLD1 = load %struct.foo*, %struct.foo** @X, align 4 ; <%struct.foo*> [#uses=1]
-; CHECK: load %struct.foo*, %struct.foo** @X, align 4
- br label %bb1
-
-bb1: ; preds = %bb1, %bb1.thread
- %tmp = phi %struct.foo* [%tmpLD1, %bb1.thread ], [ %tmpLD2, %bb1 ] ; <i32> [#uses=2]
-; CHECK: %tmp = phi %struct.foo* [ %tmpLD1, %bb1.thread ], [ %tmpLD2, %bb1 ]
- %i.0.reg2mem.0 = phi i32 [ 0, %bb1.thread ], [ %indvar.next, %bb1 ] ; <i32> [#uses=2]
- %sum.0.reg2mem.0 = phi i32 [ 0, %bb1.thread ], [ %tmp3, %bb1 ] ; <i32> [#uses=1]
- %tmp1 = getelementptr %struct.foo, %struct.foo* %tmp, i32 %i.0.reg2mem.0, i32 0 ; <i32*> [#uses=1]
- %tmp2 = load i32, i32* %tmp1, align 4 ; <i32> [#uses=1]
-; CHECK: load i32, i32* %tmp1, align 4
- %tmp6 = add i32 %tmp2, %sum.0.reg2mem.0 ; <i32> [#uses=2]
- %tmp4 = getelementptr %struct.foo, %struct.foo* %tmp, i32 %i.0.reg2mem.0, i32 1 ; <i32*> [#uses=1]
- %tmp5 = load i32 , i32 * %tmp4
-; CHECK: load i32, i32* %tmp4
- %tmp3 = add i32 %tmp5, %tmp6
- %indvar.next = add i32 %i.0.reg2mem.0, 1 ; <i32> [#uses=2]
-
- %tmpLD2 = load %struct.foo*, %struct.foo** @X, align 4 ; <%struct.foo*> [#uses=1]
-; CHECK: load %struct.foo*, %struct.foo** @X, align 4
-
- %exitcond = icmp eq i32 %indvar.next, 1200 ; <i1> [#uses=1]
- br i1 %exitcond, label %bb2, label %bb1
-
-bb2: ; preds = %bb1
- ret i32 %tmp3
-}
-
-attributes #0 = { "null-pointer-is-valid"="true" }
diff --git a/llvm/test/Transforms/GlobalOpt/heap-sra-phi.ll b/llvm/test/Transforms/GlobalOpt/heap-sra-phi.ll
deleted file mode 100644
index 770220dd07b..00000000000
--- a/llvm/test/Transforms/GlobalOpt/heap-sra-phi.ll
+++ /dev/null
@@ -1,52 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-; CHECK: tmp.f1 = phi i32*
-; CHECK: tmp.f0 = phi i32*
-target datalayout = "E-p:64:64:64-a0:0:8-f32:32:32-f64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-v64:64:64-v128:128:128"
-
- %struct.foo = type { i32, i32 }
-@X = internal global %struct.foo* null ; <%struct.foo**> [#uses=2]
-
-define void @bar(i32 %Size) nounwind noinline {
-entry:
- %malloccall = tail call i8* @malloc(i64 8000000) ; <i8*> [#uses=1]
- %tmp = bitcast i8* %malloccall to [1000000 x %struct.foo]* ; <[1000000 x %struct.foo]*> [#uses=1]
- %.sub = getelementptr [1000000 x %struct.foo], [1000000 x %struct.foo]* %tmp, i32 0, i32 0 ; <%struct.foo*> [#uses=1]
- store %struct.foo* %.sub, %struct.foo** @X, align 4
- ret void
-}
-
-declare noalias i8* @malloc(i64)
-
-define i32 @baz() nounwind readonly noinline {
-bb1.thread:
- %tmpLD1 = load %struct.foo*, %struct.foo** @X, align 4 ; <%struct.foo*> [#uses=1]
- br label %bb1
-
-bb1: ; preds = %bb1, %bb1.thread
- %tmp = phi %struct.foo* [%tmpLD1, %bb1.thread ], [ %tmpLD2, %bb1 ] ; <i32> [#uses=2]
- %i.0.reg2mem.0 = phi i32 [ 0, %bb1.thread ], [ %indvar.next, %bb1 ] ; <i32> [#uses=2]
- %sum.0.reg2mem.0 = phi i32 [ 0, %bb1.thread ], [ %tmp3, %bb1 ] ; <i32> [#uses=1]
- %tmp1 = getelementptr %struct.foo, %struct.foo* %tmp, i32 %i.0.reg2mem.0, i32 0 ; <i32*> [#uses=1]
- %tmp2 = load i32, i32* %tmp1, align 4 ; <i32> [#uses=1]
- %tmp6 = add i32 %tmp2, %sum.0.reg2mem.0 ; <i32> [#uses=2]
- %tmp4 = getelementptr %struct.foo, %struct.foo* %tmp, i32 %i.0.reg2mem.0, i32 1 ; <i32*> [#uses=1]
- %tmp5 = load i32 , i32 * %tmp4
- %tmp3 = add i32 %tmp5, %tmp6
- %indvar.next = add i32 %i.0.reg2mem.0, 1 ; <i32> [#uses=2]
-
- %tmpLD2 = load %struct.foo*, %struct.foo** @X, align 4 ; <%struct.foo*> [#uses=1]
-
- %exitcond = icmp eq i32 %indvar.next, 1200 ; <i1> [#uses=1]
- br i1 %exitcond, label %bb2, label %bb1
-
-bb2: ; preds = %bb1
- ret i32 %tmp3
-}
-
-define void @bam(i64 %Size) nounwind noinline #0 {
-entry:
- %0 = load %struct.foo*, %struct.foo** @X, align 4
- ret void
-}
-
-attributes #0 = { "null-pointer-is-valid"="true" }
diff --git a/llvm/test/Transforms/GlobalOpt/int_sideeffect.ll b/llvm/test/Transforms/GlobalOpt/int_sideeffect.ll
deleted file mode 100644
index 59c3a8aa4ba..00000000000
--- a/llvm/test/Transforms/GlobalOpt/int_sideeffect.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: opt -S < %s -globalopt | FileCheck %s
-
-; Static evaluation across a @llvm.sideeffect.
-
-; CHECK-NOT: store
-
-declare void @llvm.sideeffect()
-
-@llvm.global_ctors = appending global [1 x { i32, void ()* }] [ { i32, void ()* } { i32 65535, void ()* @ctor } ]
-@G = global i32 0
-
-define internal void @ctor() {
- store i32 1, i32* @G
- call void @llvm.sideeffect()
- ret void
-}
diff --git a/llvm/test/Transforms/GlobalOpt/integer-bool-dwarf.ll b/llvm/test/Transforms/GlobalOpt/integer-bool-dwarf.ll
deleted file mode 100644
index 6aa35be21d8..00000000000
--- a/llvm/test/Transforms/GlobalOpt/integer-bool-dwarf.ll
+++ /dev/null
@@ -1,61 +0,0 @@
-;RUN: opt -S -globalopt -f %s | FileCheck %s
-
-;CHECK: @foo = internal unnamed_addr global i1 false, align 4, !dbg ![[VAR:.*]]
-;CHECK: ![[VAR]] = !DIGlobalVariableExpression(var: !1, expr:
-;CHECK-SAME: !DIExpression(DW_OP_deref, DW_OP_constu, 111, DW_OP_mul,
-;CHECK-SAME: DW_OP_constu, 0, DW_OP_plus, DW_OP_stack_value,
-;CHECK-SAME: DW_OP_LLVM_fragment, 0, 1))
-
-@foo = internal global i32 0, align 4, !dbg !0
-
-; Function Attrs: noinline nounwind optnone uwtable
-define void @set1() #0 !dbg !11 {
-entry:
- store i32 111, i32* @foo, align 4, !dbg !14
- ret void, !dbg !15
-}
-
-; Function Attrs: noinline nounwind optnone uwtable
-define void @set2() #0 !dbg !16 {
-entry:
- store i32 0, i32* @foo, align 4, !dbg !17
- ret void, !dbg !18
-}
-
-; Function Attrs: noinline nounwind optnone uwtable
-define i32 @get() #0 !dbg !19 {
-entry:
- %0 = load i32, i32* @foo, align 4, !dbg !22
- ret i32 %0, !dbg !23
-}
-
-attributes #0 = { noinline nounwind optnone uwtable }
-
-!llvm.dbg.cu = !{!2}
-!llvm.module.flags = !{!7, !8, !9}
-!llvm.ident = !{!10}
-
-!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression(DW_OP_LLVM_fragment, 0, 1))
-!1 = distinct !DIGlobalVariable(name: "foo", scope: !2, file: !3, line: 1, type: !6, isLocal: true, isDefinition: true)
-!2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 6.0.0 ", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
-!3 = !DIFile(filename: "integer-bool-dwarf.c", directory: "/")
-!4 = !{}
-!5 = !{!0}
-!6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)
-!7 = !{i32 2, !"Dwarf Version", i32 4}
-!8 = !{i32 2, !"Debug Info Version", i32 3}
-!9 = !{i32 1, !"wchar_size", i32 4}
-!10 = !{!"clang version 6.0.0 "}
-!11 = distinct !DISubprogram(name: "set1", scope: !3, file: !3, line: 3, type: !12, isLocal: false, isDefinition: true, scopeLine: 4, isOptimized: false, unit: !2, retainedNodes: !4)
-!12 = !DISubroutineType(types: !13)
-!13 = !{null}
-!14 = !DILocation(line: 5, column: 7, scope: !11)
-!15 = !DILocation(line: 6, column: 1, scope: !11)
-!16 = distinct !DISubprogram(name: "set2", scope: !3, file: !3, line: 8, type: !12, isLocal: false, isDefinition: true, scopeLine: 9, isOptimized: false, unit: !2, retainedNodes: !4)
-!17 = !DILocation(line: 10, column: 7, scope: !16)
-!18 = !DILocation(line: 11, column: 1, scope: !16)
-!19 = distinct !DISubprogram(name: "get", scope: !3, file: !3, line: 13, type: !20, isLocal: false, isDefinition: true, scopeLine: 14, isOptimized: false, unit: !2, retainedNodes: !4)
-!20 = !DISubroutineType(types: !21)
-!21 = !{!6}
-!22 = !DILocation(line: 15, column: 10, scope: !19)
-!23 = !DILocation(line: 15, column: 3, scope: !19)
diff --git a/llvm/test/Transforms/GlobalOpt/integer-bool.ll b/llvm/test/Transforms/GlobalOpt/integer-bool.ll
deleted file mode 100644
index 617febdc016..00000000000
--- a/llvm/test/Transforms/GlobalOpt/integer-bool.ll
+++ /dev/null
@@ -1,28 +0,0 @@
-; RUN: opt < %s -S -globalopt -instcombine | FileCheck %s
-;; check that global opt turns integers that only hold 0 or 1 into bools.
-
-@G = internal addrspace(1) global i32 0
-; CHECK: @G
-; CHECK: addrspace(1)
-; CHECK: global i1 false
-
-define void @set1() {
- store i32 0, i32 addrspace(1)* @G
-; CHECK: store i1 false
- ret void
-}
-
-define void @set2() {
- store i32 1, i32 addrspace(1)* @G
-; CHECK: store i1 true
- ret void
-}
-
-define i1 @get() {
-; CHECK-LABEL: @get(
- %A = load i32, i32 addrspace(1) * @G
- %C = icmp slt i32 %A, 2
- ret i1 %C
-; CHECK: ret i1 true
-}
-
diff --git a/llvm/test/Transforms/GlobalOpt/invariant-nodatalayout.ll b/llvm/test/Transforms/GlobalOpt/invariant-nodatalayout.ll
deleted file mode 100644
index d1fbe46257d..00000000000
--- a/llvm/test/Transforms/GlobalOpt/invariant-nodatalayout.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; RUN: opt -globalopt -S -o - < %s | FileCheck %s
-; The check here is that it doesn't crash.
-
-declare {}* @llvm.invariant.start.p0i8(i64 %size, i8* nocapture %ptr)
-
-@object1 = global { i32, i32 } zeroinitializer
-; CHECK: @object1 = global { i32, i32 } zeroinitializer
-
-define void @ctor1() {
- %ptr = bitcast {i32, i32}* @object1 to i8*
- call {}* @llvm.invariant.start.p0i8(i64 4, i8* %ptr)
- ret void
-}
-
-@llvm.global_ctors = appending constant
- [1 x { i32, void ()* }]
- [ { i32, void ()* } { i32 65535, void ()* @ctor1 } ]
diff --git a/llvm/test/Transforms/GlobalOpt/invariant.group.ll b/llvm/test/Transforms/GlobalOpt/invariant.group.ll
deleted file mode 100644
index 8a090cbd0d3..00000000000
--- a/llvm/test/Transforms/GlobalOpt/invariant.group.ll
+++ /dev/null
@@ -1,79 +0,0 @@
-; RUN: opt -S -globalopt < %s | FileCheck %s
-
-; This test is hint, what could globalOpt optimize and what it can't
-; FIXME: @tmp and @tmp2 can be safely set to 42
-; CHECK: @tmp = local_unnamed_addr global i32 0
-; CHECK: @tmp2 = local_unnamed_addr global i32 0
-; CHECK: @tmp3 = global i32 0
-
-@tmp = global i32 0
-@tmp2 = global i32 0
-@tmp3 = global i32 0
-@ptrToTmp3 = global i32* null
-
-@llvm.global_ctors = appending global [1 x { i32, void ()* }] [{ i32, void ()* } { i32 65535, void ()* @_GLOBAL__I_a }]
-
-define i32 @TheAnswerToLifeTheUniverseAndEverything() {
- ret i32 42
-}
-
-define void @_GLOBAL__I_a() {
-enter:
- call void @_optimizable()
- call void @_not_optimizable()
- ret void
-}
-
-define void @_optimizable() {
-enter:
- %valptr = alloca i32
-
- %val = call i32 @TheAnswerToLifeTheUniverseAndEverything()
- store i32 %val, i32* @tmp
- store i32 %val, i32* %valptr
-
- %0 = bitcast i32* %valptr to i8*
- %barr = call i8* @llvm.launder.invariant.group(i8* %0)
- %1 = bitcast i8* %barr to i32*
-
- %val2 = load i32, i32* %1
- store i32 %val2, i32* @tmp2
- ret void
-}
-
-; We can't step through launder.invariant.group here, because that would change
-; this load in @usage_of_globals()
-; val = load i32, i32* %ptrVal, !invariant.group !0
-; into
-; %val = load i32, i32* @tmp3, !invariant.group !0
-; and then we could assume that %val and %val2 to be the same, which coud be
-; false, because @changeTmp3ValAndCallBarrierInside() may change the value
-; of @tmp3.
-define void @_not_optimizable() {
-enter:
- store i32 13, i32* @tmp3, !invariant.group !0
-
- %0 = bitcast i32* @tmp3 to i8*
- %barr = call i8* @llvm.launder.invariant.group(i8* %0)
- %1 = bitcast i8* %barr to i32*
-
- store i32* %1, i32** @ptrToTmp3
- store i32 42, i32* %1, !invariant.group !0
-
- ret void
-}
-define void @usage_of_globals() {
-entry:
- %ptrVal = load i32*, i32** @ptrToTmp3
- %val = load i32, i32* %ptrVal, !invariant.group !0
-
- call void @changeTmp3ValAndCallBarrierInside()
- %val2 = load i32, i32* @tmp3, !invariant.group !0
- ret void;
-}
-
-declare void @changeTmp3ValAndCallBarrierInside()
-
-declare i8* @llvm.launder.invariant.group(i8*)
-
-!0 = !{}
diff --git a/llvm/test/Transforms/GlobalOpt/invariant.ll b/llvm/test/Transforms/GlobalOpt/invariant.ll
deleted file mode 100644
index 02ffe2bc424..00000000000
--- a/llvm/test/Transforms/GlobalOpt/invariant.ll
+++ /dev/null
@@ -1,59 +0,0 @@
-; RUN: opt -globalopt -S -o - < %s | FileCheck %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-S128"
-target triple = "x86_64-unknown-linux-gnu"
-
-declare {}* @llvm.invariant.start.p0i8(i64 %size, i8* nocapture %ptr)
-
-define void @test1(i8* %ptr) {
- call {}* @llvm.invariant.start.p0i8(i64 4, i8* %ptr)
- ret void
-}
-
-@object1 = global i32 0
-; CHECK: @object1 = constant i32 -1
-define void @ctor1() {
- store i32 -1, i32* @object1
- %A = bitcast i32* @object1 to i8*
- call void @test1(i8* %A)
- ret void
-}
-
-
-@object2 = global i32 0
-; CHECK: @object2 = global i32 0
-define void @ctor2() {
- store i32 -1, i32* @object2
- %A = bitcast i32* @object2 to i8*
- %B = call {}* @llvm.invariant.start.p0i8(i64 4, i8* %A)
- %C = bitcast {}* %B to i8*
- ret void
-}
-
-
-@object3 = global i32 0
-; CHECK: @object3 = global i32 -1
-define void @ctor3() {
- store i32 -1, i32* @object3
- %A = bitcast i32* @object3 to i8*
- call {}* @llvm.invariant.start.p0i8(i64 3, i8* %A)
- ret void
-}
-
-
-@object4 = global i32 0
-; CHECK: @object4 = global i32 -1
-define void @ctor4() {
- store i32 -1, i32* @object4
- %A = bitcast i32* @object4 to i8*
- call {}* @llvm.invariant.start.p0i8(i64 -1, i8* %A)
- ret void
-}
-
-
-@llvm.global_ctors = appending constant
- [4 x { i32, void ()* }]
- [ { i32, void ()* } { i32 65535, void ()* @ctor1 },
- { i32, void ()* } { i32 65535, void ()* @ctor2 },
- { i32, void ()* } { i32 65535, void ()* @ctor3 },
- { i32, void ()* } { i32 65535, void ()* @ctor4 } ]
diff --git a/llvm/test/Transforms/GlobalOpt/invoke.ll b/llvm/test/Transforms/GlobalOpt/invoke.ll
deleted file mode 100644
index a3019939735..00000000000
--- a/llvm/test/Transforms/GlobalOpt/invoke.ll
+++ /dev/null
@@ -1,27 +0,0 @@
-; RUN: opt -S -globalopt < %s | FileCheck %s
-; rdar://11022897
-
-; Globalopt should be able to evaluate an invoke.
-; CHECK: @tmp = local_unnamed_addr global i32 1
-
-@llvm.global_ctors = appending global [1 x { i32, void ()* }] [{ i32, void ()* } { i32 65535, void ()* @_GLOBAL__I_a }]
-@tmp = global i32 0
-
-define i32 @one() {
- ret i32 1
-}
-
-define void @_GLOBAL__I_a() personality i8* undef {
-bb:
- %tmp1 = invoke i32 @one()
- to label %bb2 unwind label %bb4
-
-bb2: ; preds = %bb
- store i32 %tmp1, i32* @tmp
- ret void
-
-bb4: ; preds = %bb
- %tmp5 = landingpad { i8*, i32 }
- filter [0 x i8*] zeroinitializer
- unreachable
-}
diff --git a/llvm/test/Transforms/GlobalOpt/iterate.ll b/llvm/test/Transforms/GlobalOpt/iterate.ll
deleted file mode 100644
index 8c6543b685d..00000000000
--- a/llvm/test/Transforms/GlobalOpt/iterate.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-; CHECK-NOT: %G
-
-@G = internal global i32 0 ; <i32*> [#uses=1]
-@H = internal global { i32* } { i32* @G } ; <{ i32* }*> [#uses=1]
-
-define i32 @loadg() {
- %G = load i32*, i32** getelementptr ({ i32* }, { i32* }* @H, i32 0, i32 0) ; <i32*> [#uses=1]
- %GV = load i32, i32* %G ; <i32> [#uses=1]
- ret i32 %GV
-}
diff --git a/llvm/test/Transforms/GlobalOpt/load-store-global-no-null-opt.ll b/llvm/test/Transforms/GlobalOpt/load-store-global-no-null-opt.ll
deleted file mode 100644
index d319d162ff4..00000000000
--- a/llvm/test/Transforms/GlobalOpt/load-store-global-no-null-opt.ll
+++ /dev/null
@@ -1,28 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-
-@a = internal global i64* null, align 8
-; CHECK: @a
-
-; PR13968
-define void @qux_no_null_opt() nounwind #0 {
-; CHECK-LABEL: @qux_no_null_opt(
-; CHECK: getelementptr i64*, i64** @a, i32 1
-; CHECK: store i64* inttoptr (i64 1 to i64*), i64** @a
- %b = bitcast i64** @a to i8*
- %g = getelementptr i64*, i64** @a, i32 1
- %cmp = icmp ne i8* null, %b
- %cmp2 = icmp eq i8* null, %b
- %cmp3 = icmp eq i64** null, %g
- store i64* inttoptr (i64 1 to i64*), i64** @a, align 8
- %l = load i64*, i64** @a, align 8
- ret void
-}
-
-define i64* @bar() {
- %X = load i64*, i64** @a, align 8
- ret i64* %X
-; CHECK-LABEL: @bar(
-; CHECK: load
-}
-
-attributes #0 = { "null-pointer-is-valid"="true" }
diff --git a/llvm/test/Transforms/GlobalOpt/load-store-global.ll b/llvm/test/Transforms/GlobalOpt/load-store-global.ll
deleted file mode 100644
index e01358e8ed3..00000000000
--- a/llvm/test/Transforms/GlobalOpt/load-store-global.ll
+++ /dev/null
@@ -1,38 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-
-@G = internal global i32 17 ; <i32*> [#uses=3]
-; CHECK-NOT: @G
-
-define void @foo() {
- %V = load i32, i32* @G ; <i32> [#uses=1]
- store i32 %V, i32* @G
- ret void
-; CHECK-LABEL: @foo(
-; CHECK-NEXT: ret void
-}
-
-define i32 @bar() {
- %X = load i32, i32* @G ; <i32> [#uses=1]
- ret i32 %X
-; CHECK-LABEL: @bar(
-; CHECK-NEXT: ret i32 17
-}
-
-@a = internal global i64* null, align 8
-; CHECK-NOT: @a
-
-; PR13968
-define void @qux() nounwind {
- %b = bitcast i64** @a to i8*
- %g = getelementptr i64*, i64** @a, i32 1
- %cmp = icmp ne i8* null, %b
- %cmp2 = icmp eq i8* null, %b
- %cmp3 = icmp eq i64** null, %g
- store i64* inttoptr (i64 1 to i64*), i64** @a, align 8
- %l = load i64*, i64** @a, align 8
- ret void
-; CHECK-LABEL: @qux(
-; CHECK-NOT: store
-; CHECK-NOT: load
-}
-
diff --git a/llvm/test/Transforms/GlobalOpt/localize-constexpr-debuginfo.ll b/llvm/test/Transforms/GlobalOpt/localize-constexpr-debuginfo.ll
deleted file mode 100644
index e5f0eea8013..00000000000
--- a/llvm/test/Transforms/GlobalOpt/localize-constexpr-debuginfo.ll
+++ /dev/null
@@ -1,70 +0,0 @@
-; RUN: opt -S < %s -globalopt | FileCheck %s
-
-target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
-target triple = "x86_64-unknown-linux-gnu"
-
-@_ZL1x = internal global [200 x i8]* null, align 8, !dbg !0
-
-define i32 @main(i32 %argc, i8** %argv) norecurse !dbg !18 {
-; CHECK: define i32 @main
-; Make sure we localized the global.
-; CHECK: alloca [200 x i8]*
-; Make sure the metadata is sane. Currently, we just drop the metadata,
-; so it points to nothing.
-; CHECK: call void @llvm.dbg.value(metadata !2,
-; CHECK: !2 = !{}
-entry:
- call void @llvm.dbg.value(metadata i32 %argc, metadata !22, metadata !23), !dbg !24
- call void @llvm.dbg.value(metadata i8** %argv, metadata !25, metadata !23), !dbg !26
- %arrayidx = getelementptr inbounds i8*, i8** %argv, i64 0, !dbg !27
- %0 = load i8*, i8** %arrayidx, align 8, !dbg !27
- %1 = bitcast i8* %0 to [200 x i8]*, !dbg !28
- store [200 x i8]* %1, [200 x i8]** @_ZL1x, align 8, !dbg !29
- call void @llvm.dbg.value(metadata i8** bitcast ([200 x i8]** @_ZL1x to i8**), metadata !30, metadata !23), !dbg !31
- %2 = load i8*, i8** bitcast ([200 x i8]** @_ZL1x to i8**), align 8, !dbg !32
- %3 = load i8, i8* %2, align 1, !dbg !33
- %conv = sext i8 %3 to i32, !dbg !33
- ret i32 %conv, !dbg !34
-}
-
-declare void @llvm.dbg.value(metadata, metadata, metadata)
-
-!llvm.dbg.cu = !{!2}
-!llvm.module.flags = !{!15, !16}
-!llvm.ident = !{!17}
-
-!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
-!1 = distinct !DIGlobalVariable(name: "x", linkageName: "_ZL1x", scope: !2, file: !14, line: 1, type: !6, isLocal: true, isDefinition: true)
-!2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, retainedTypes: !5, globals: !13)
-!3 = !DIFile(filename: "-", directory: "/")
-!4 = !{}
-!5 = !{!6, !11}
-!6 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !7, size: 64)
-!7 = !DICompositeType(tag: DW_TAG_array_type, baseType: !8, size: 1600, elements: !9)
-!8 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char)
-!9 = !{!10}
-!10 = !DISubrange(count: 200)
-!11 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !12, size: 64)
-!12 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !8, size: 64)
-!13 = !{!0}
-!14 = !DIFile(filename: "<stdin>", directory: "/")
-!15 = !{i32 2, !"Dwarf Version", i32 4}
-!16 = !{i32 2, !"Debug Info Version", i32 3}
-!17 = !{!"clang"}
-!18 = distinct !DISubprogram(name: "main", scope: !14, file: !14, line: 2, type: !19, isLocal: false, isDefinition: true, scopeLine: 2, flags: DIFlagPrototyped, isOptimized: false, unit: !2, retainedNodes: !4)
-!19 = !DISubroutineType(types: !20)
-!20 = !{!21, !21, !11}
-!21 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)
-!22 = !DILocalVariable(name: "argc", arg: 1, scope: !18, file: !14, line: 2, type: !21)
-!23 = !DIExpression()
-!24 = !DILocation(line: 2, column: 14, scope: !18)
-!25 = !DILocalVariable(name: "argv", arg: 2, scope: !18, file: !14, line: 2, type: !11)
-!26 = !DILocation(line: 2, column: 26, scope: !18)
-!27 = !DILocation(line: 2, column: 52, scope: !18)
-!28 = !DILocation(line: 2, column: 38, scope: !18)
-!29 = !DILocation(line: 2, column: 36, scope: !18)
-!30 = !DILocalVariable(name: "y", scope: !18, file: !14, line: 2, type: !11)
-!31 = !DILocation(line: 2, column: 68, scope: !18)
-!32 = !DILocation(line: 2, column: 92, scope: !18)
-!33 = !DILocation(line: 2, column: 91, scope: !18)
-!34 = !DILocation(line: 2, column: 84, scope: !18)
diff --git a/llvm/test/Transforms/GlobalOpt/localize-constexpr.ll b/llvm/test/Transforms/GlobalOpt/localize-constexpr.ll
deleted file mode 100644
index 3fa7db89b04..00000000000
--- a/llvm/test/Transforms/GlobalOpt/localize-constexpr.ll
+++ /dev/null
@@ -1,28 +0,0 @@
-; RUN: opt -S < %s -globalopt | FileCheck %s
-
-@G = internal global i32 42
-
-define i8 @f() norecurse {
-; CHECK-LABEL: @f
-; CHECK: alloca
-; CHECK-NOT: @G
-; CHECK: }
- store i32 42, i32* @G
- %a = load i8, i8* bitcast (i32* @G to i8*)
- ret i8 %a
-}
-
-@H = internal global i32 42
-@Halias = alias i32, i32* @H
-
-; @H can't be localized because @Halias uses it, and @Halias can't be converted to an instruction.
-define i8 @g() norecurse {
-; CHECK-LABEL: @g
-; CHECK-NOT: alloca
-; CHECK: @H
-; CHECK: }
- store i32 42, i32* @H
- %a = load i8, i8* bitcast (i32* @H to i8*)
- ret i8 %a
-}
-
diff --git a/llvm/test/Transforms/GlobalOpt/malloc-promote-1-no-null-opt.ll b/llvm/test/Transforms/GlobalOpt/malloc-promote-1-no-null-opt.ll
deleted file mode 100644
index fc6dab31640..00000000000
--- a/llvm/test/Transforms/GlobalOpt/malloc-promote-1-no-null-opt.ll
+++ /dev/null
@@ -1,31 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-target datalayout = "E-p:64:64:64-a0:0:8-f32:32:32-f64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-v64:64:64-v128:128:128"
-
-@G = internal global i32* null ; <i32**> [#uses=3]
-; CHECK: global
-
-define void @init() #0 {
-; CHECK-LABEL: @init(
-; CHECK: store
-; CHECK: load
- %malloccall = tail call i8* @malloc(i64 4) ; <i8*> [#uses=1]
- %P = bitcast i8* %malloccall to i32* ; <i32*> [#uses=1]
- store i32* %P, i32** @G
- %GV = load i32*, i32** @G ; <i32*> [#uses=1]
- store i32 0, i32* %GV
- ret void
-}
-
-declare noalias i8* @malloc(i64)
-
-define i32 @get() #0 {
-; CHECK-LABEL: @get(
-; CHECK: load i32*, i32** @G
-; CHECK-NEXT: load i32, i32* %GV
- %GV = load i32*, i32** @G ; <i32*> [#uses=1]
- %V = load i32, i32* %GV ; <i32> [#uses=1]
- ret i32 %V
-; CHECK: ret i32 %V
-}
-
-attributes #0 = { "null-pointer-is-valid"="true" }
diff --git a/llvm/test/Transforms/GlobalOpt/malloc-promote-1.ll b/llvm/test/Transforms/GlobalOpt/malloc-promote-1.ll
deleted file mode 100644
index a8f127474e3..00000000000
--- a/llvm/test/Transforms/GlobalOpt/malloc-promote-1.ll
+++ /dev/null
@@ -1,32 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-target datalayout = "E-p:64:64:64-a0:0:8-f32:32:32-f64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-v64:64:64-v128:128:128"
-
-@G = internal global i32* null ; <i32**> [#uses=4]
-; CHECK-NOT: global
-
-define void @init() {
- %malloccall = tail call i8* @malloc(i64 4) ; <i8*> [#uses=1]
- %P = bitcast i8* %malloccall to i32* ; <i32*> [#uses=1]
- store i32* %P, i32** @G
- %GV = load i32*, i32** @G ; <i32*> [#uses=1]
- store i32 0, i32* %GV
- ret void
-}
-
-declare noalias i8* @malloc(i64)
-
-define i32 @get() {
- %GV = load i32*, i32** @G ; <i32*> [#uses=1]
- %V = load i32, i32* %GV ; <i32> [#uses=1]
- ret i32 %V
-; CHECK: ret i32 0
-}
-
-define void @foo(i64 %Size) nounwind noinline #0 {
-entry:
- %0 = load i32*, i32** @G, align 4
- ret void
-}
-
-attributes #0 = { "null-pointer-is-valid"="true" }
-
diff --git a/llvm/test/Transforms/GlobalOpt/malloc-promote-2-no-null-opt.ll b/llvm/test/Transforms/GlobalOpt/malloc-promote-2-no-null-opt.ll
deleted file mode 100644
index 009a33435fd..00000000000
--- a/llvm/test/Transforms/GlobalOpt/malloc-promote-2-no-null-opt.ll
+++ /dev/null
@@ -1,24 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-target datalayout = "E-p:64:64:64-a0:0:8-f32:32:32-f64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-v64:64:64-v128:128:128"
-
-@G = internal global i32* null
-
-define void @t() #0 {
-; CHECK: @t()
-; CHECK: call i8* @malloc
-; CHECK: bitcast
-; CHECK: store
-; CHECK: load
-; CHECK: getelementptr
-; CHECK: store
- %malloccall = tail call i8* @malloc(i64 mul (i64 100, i64 4))
- %P = bitcast i8* %malloccall to i32*
- store i32* %P, i32** @G
- %GV = load i32*, i32** @G
- %GVe = getelementptr i32, i32* %GV, i32 40
- store i32 20, i32* %GVe
- ret void
-}
-
-declare noalias i8* @malloc(i64)
-attributes #0 = { "null-pointer-is-valid"="true" }
diff --git a/llvm/test/Transforms/GlobalOpt/malloc-promote-2.ll b/llvm/test/Transforms/GlobalOpt/malloc-promote-2.ll
deleted file mode 100644
index 64f379365c7..00000000000
--- a/llvm/test/Transforms/GlobalOpt/malloc-promote-2.ll
+++ /dev/null
@@ -1,27 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-target datalayout = "E-p:64:64:64-a0:0:8-f32:32:32-f64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-v64:64:64-v128:128:128"
-
-@G = internal global i32* null
-
-define void @t() {
-; CHECK: @t()
-; CHECK-NOT: call i8* @malloc
-; CHECK-NEXT: ret void
- %malloccall = tail call i8* @malloc(i64 mul (i64 100, i64 4))
- %P = bitcast i8* %malloccall to i32*
- store i32* %P, i32** @G
- %GV = load i32*, i32** @G
- %GVe = getelementptr i32, i32* %GV, i32 40
- store i32 20, i32* %GVe
- ret void
-}
-
-declare noalias i8* @malloc(i64)
-
-define void @foo(i64 %Size) nounwind noinline #0 {
-entry:
- %0 = load i32*, i32** @G, align 4
- ret void
-}
-
-attributes #0 = { "null-pointer-is-valid"="true" }
diff --git a/llvm/test/Transforms/GlobalOpt/malloc-promote-3.ll b/llvm/test/Transforms/GlobalOpt/malloc-promote-3.ll
deleted file mode 100644
index 1e42c3b89a6..00000000000
--- a/llvm/test/Transforms/GlobalOpt/malloc-promote-3.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-target datalayout = "E-p:64:64:64-a0:0:8-f32:32:32-f64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-v64:64:64-v128:128:128"
-
-@G = internal global i32* null
-
-define void @t() {
-; CHECK: @t()
-; CHECK: call i8* @malloc
- %malloccall = tail call i8* @malloc(i64 mul (i64 100, i64 4)) nobuiltin
- %P = bitcast i8* %malloccall to i32*
- store i32* %P, i32** @G
- %GV = load i32*, i32** @G
- %GVe = getelementptr i32, i32* %GV, i32 40
- store i32 20, i32* %GVe
- ret void
-}
-
-declare noalias i8* @malloc(i64)
diff --git a/llvm/test/Transforms/GlobalOpt/memcpy.ll b/llvm/test/Transforms/GlobalOpt/memcpy.ll
deleted file mode 100644
index 0e65f381c1c..00000000000
--- a/llvm/test/Transforms/GlobalOpt/memcpy.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-; CHECK: G1 = internal unnamed_addr constant
-
-@G1 = internal global [58 x i8] c"asdlfkajsdlfkajsd;lfkajds;lfkjasd;flkajsd;lkfja;sdlkfjasd\00" ; <[58 x i8]*> [#uses=1]
-
-define void @foo() {
- %Blah = alloca [58 x i8]
- %tmp.0 = getelementptr [58 x i8], [58 x i8]* %Blah, i32 0, i32 0
- call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %tmp.0, i8* align 1 getelementptr inbounds ([58 x i8], [58 x i8]* @G1, i32 0, i32 0), i32 58, i1 false)
- ret void
-}
-
-declare void @llvm.memcpy.p0i8.p0i8.i32(i8* nocapture, i8* nocapture, i32, i1) nounwind
diff --git a/llvm/test/Transforms/GlobalOpt/memset-null.ll b/llvm/test/Transforms/GlobalOpt/memset-null.ll
deleted file mode 100644
index 32bd21cfc58..00000000000
--- a/llvm/test/Transforms/GlobalOpt/memset-null.ll
+++ /dev/null
@@ -1,29 +0,0 @@
-; RUN: opt -globalopt -S < %s | FileCheck %s
-; PR10047
-
-%0 = type { i32, void ()* }
-%struct.A = type { [100 x i32] }
-
-; CHECK: @a
-@a = global %struct.A zeroinitializer, align 4
-@llvm.global_ctors = appending global [2 x %0] [%0 { i32 65535, void ()* @_GLOBAL__I_a }, %0 { i32 65535, void ()* @_GLOBAL__I_b }]
-
-declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i1) nounwind
-
-; CHECK-NOT: GLOBAL__I_a
-define internal void @_GLOBAL__I_a() nounwind {
-entry:
- tail call void @llvm.memset.p0i8.i64(i8* align 4 bitcast (%struct.A* @a to i8*), i8 0, i64 400, i1 false) nounwind
- ret void
-}
-
-%struct.X = type { i8 }
-@y = global i8* null, align 8
-@x = global %struct.X zeroinitializer, align 1
-
-define internal void @_GLOBAL__I_b() nounwind {
-entry:
- %tmp.i.i.i = load i8*, i8** @y, align 8
- tail call void @llvm.memset.p0i8.i64(i8* %tmp.i.i.i, i8 0, i64 10, i1 false) nounwind
- ret void
-}
diff --git a/llvm/test/Transforms/GlobalOpt/memset.ll b/llvm/test/Transforms/GlobalOpt/memset.ll
deleted file mode 100644
index 90a3db8cb7b..00000000000
--- a/llvm/test/Transforms/GlobalOpt/memset.ll
+++ /dev/null
@@ -1,31 +0,0 @@
-; RUN: opt -S -globalopt < %s | FileCheck %s
-
-; CHECK-NOT: internal
-
-; Both globals are write only, delete them.
-
-@G0 = internal global [58 x i8] c"asdlfkajsdlfkajsd;lfkajds;lfkjasd;flkajsd;lkfja;sdlkfjasd\00" ; <[58 x i8]*> [#uses=1]
-@G1 = internal global [4 x i32] [ i32 1, i32 2, i32 3, i32 4 ] ; <[4 x i32]*> [#uses=1]
-
-define void @foo() {
- %Blah = alloca [58 x i8]
- %tmp3 = bitcast [58 x i8]* %Blah to i8*
- call void @llvm.memcpy.p0i8.p0i8.i32(i8* bitcast ([4 x i32]* @G1 to i8*), i8* %tmp3, i32 16, i1 false)
- call void @llvm.memset.p0i8.i32(i8* getelementptr inbounds ([58 x i8], [58 x i8]* @G0, i32 0, i32 0), i8 17, i32 58, i1 false)
- ret void
-}
-
-@G0_as1 = internal addrspace(1) global [58 x i8] c"asdlfkajsdlfkajsd;lfkajds;lfkjasd;flkajsd;lkfja;sdlkfjasd\00" ; <[58 x i8]*> [#uses=1]
-@G1_as1 = internal addrspace(1) global [4 x i32] [ i32 1, i32 2, i32 3, i32 4 ] ; <[4 x i32]*> [#uses=1]
-
-define void @foo_as1() {
- %Blah = alloca [58 x i8]
- %tmp3 = bitcast [58 x i8]* %Blah to i8*
- call void @llvm.memcpy.p0i8.p0i8.i32(i8* addrspacecast ([4 x i32] addrspace(1)* @G1_as1 to i8*), i8* %tmp3, i32 16, i1 false)
- call void @llvm.memset.p1i8.i32(i8 addrspace(1)* getelementptr inbounds ([58 x i8], [58 x i8] addrspace(1)* @G0_as1, i32 0, i32 0), i8 17, i32 58, i1 false)
- ret void
-}
-
-declare void @llvm.memcpy.p0i8.p0i8.i32(i8* nocapture, i8* nocapture, i32, i1) nounwind
-declare void @llvm.memset.p0i8.i32(i8* nocapture, i8, i32, i1) nounwind
-declare void @llvm.memset.p1i8.i32(i8 addrspace(1)* nocapture, i8, i32, i1) nounwind
diff --git a/llvm/test/Transforms/GlobalOpt/metadata.ll b/llvm/test/Transforms/GlobalOpt/metadata.ll
deleted file mode 100644
index b766349d506..00000000000
--- a/llvm/test/Transforms/GlobalOpt/metadata.ll
+++ /dev/null
@@ -1,32 +0,0 @@
-; RUN: opt -S -globalopt < %s | FileCheck %s
-
-; PR6112 - When globalopt does RAUW(@G, %G), the metadata reference should drop
-; to null. Function local metadata that references @G from a different function
-; to that containing %G should likewise drop to null.
-@G = internal global i8** null
-
-define i32 @main(i32 %argc, i8** %argv) norecurse {
-; CHECK-LABEL: @main(
-; CHECK: %G = alloca
- store i8** %argv, i8*** @G
- ret i32 0
-}
-
-define void @foo(i32 %x) {
-; Note: these arguments look like MDNodes, but they're really syntactic sugar
-; for 'MetadataAsValue::get(ValueAsMetadata::get(Value*))'. When @G drops to
-; null, the ValueAsMetadata instance gets replaced by metadata !{}, or
-; MDNode::get({}).
- call void @llvm.foo(metadata i8*** @G, metadata i32 %x)
-; CHECK: call void @llvm.foo(metadata ![[EMPTY:[0-9]+]], metadata i32 %x)
- ret void
-}
-
-declare void @llvm.foo(metadata, metadata) nounwind readnone
-
-!named = !{!0}
-; CHECK: !named = !{![[NULL:[0-9]+]]}
-
-!0 = !{i8*** @G}
-; CHECK-DAG: ![[NULL]] = distinct !{null}
-; CHECK-DAG: ![[EMPTY]] = !{}
diff --git a/llvm/test/Transforms/GlobalOpt/musttail_cc.ll b/llvm/test/Transforms/GlobalOpt/musttail_cc.ll
deleted file mode 100644
index fc927ea91dd..00000000000
--- a/llvm/test/Transforms/GlobalOpt/musttail_cc.ll
+++ /dev/null
@@ -1,34 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-; PR36546
-
-; Check that musttail callee preserves its calling convention
-
-define i32 @test(i32 %a) {
- ; CHECK: %ca = musttail call i32 @foo(i32 %a)
- %ca = musttail call i32 @foo(i32 %a)
- ret i32 %ca
-}
-
-; CHECK-LABEL: define internal i32 @foo(i32 %a)
-define internal i32 @foo(i32 %a) {
- ret i32 %a
-}
-
-; Check that musttail caller preserves its calling convention
-
-define i32 @test2(i32 %a) {
- %ca = call i32 @foo1(i32 %a)
- ret i32 %ca
-}
-
-; CHECK-LABEL: define internal i32 @foo1(i32 %a)
-define internal i32 @foo1(i32 %a) {
- ; CHECK: %ca = musttail call i32 @foo2(i32 %a)
- %ca = musttail call i32 @foo2(i32 %a)
- ret i32 %ca
-}
-
-; CHECK-LABEL: define internal i32 @foo2(i32 %a)
-define internal i32 @foo2(i32 %a) {
- ret i32 %a
-}
diff --git a/llvm/test/Transforms/GlobalOpt/naked_functions.ll b/llvm/test/Transforms/GlobalOpt/naked_functions.ll
deleted file mode 100644
index 80c3aa8c3b2..00000000000
--- a/llvm/test/Transforms/GlobalOpt/naked_functions.ll
+++ /dev/null
@@ -1,23 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-
-; Check that naked functions don't get marked with fast calling conventions
-
-@g = common global i32 0, align 4
-
-define i32 @bar() {
-entry:
- %call = call i32 @foo(i32* @g)
-; CHECK: %call = call i32 @foo(i32* @g)
- ret i32 %call
-}
-
-define internal i32 @foo(i32*) #0 {
-entry:
- %retval = alloca i32, align 4
- call void asm sideeffect "ldr r0, [r0] \0Abx lr \0A", ""()
- unreachable
-}
-
-; CHECK: define internal i32 @foo(i32*)
-
-attributes #0 = { naked }
diff --git a/llvm/test/Transforms/GlobalOpt/phi-select.ll b/llvm/test/Transforms/GlobalOpt/phi-select.ll
deleted file mode 100644
index 86b017c9cb3..00000000000
--- a/llvm/test/Transforms/GlobalOpt/phi-select.ll
+++ /dev/null
@@ -1,27 +0,0 @@
-; Test that PHI nodes and select instructions do not necessarily make stuff
-; non-constant.
-
-; RUN: opt < %s -globalopt -S | FileCheck %s
-; CHECK-NOT: global
-
-@X = internal global i32 4 ; <i32*> [#uses=2]
-@Y = internal global i32 5 ; <i32*> [#uses=2]
-
-define i32 @test1(i1 %C) {
- %P = select i1 %C, i32* @X, i32* @Y ; <i32*> [#uses=1]
- %V = load i32, i32* %P ; <i32> [#uses=1]
- ret i32 %V
-}
-
-define i32 @test2(i1 %C) {
-; <label>:0
- br i1 %C, label %T, label %Cont
-
-T: ; preds = %0
- br label %Cont
-
-Cont: ; preds = %T, %0
- %P = phi i32* [ @X, %0 ], [ @Y, %T ] ; <i32*> [#uses=1]
- %V = load i32, i32* %P ; <i32> [#uses=1]
- ret i32 %V
-}
diff --git a/llvm/test/Transforms/GlobalOpt/pr21191.ll b/llvm/test/Transforms/GlobalOpt/pr21191.ll
deleted file mode 100644
index 9e201b888be..00000000000
--- a/llvm/test/Transforms/GlobalOpt/pr21191.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-
-$c = comdat any
-; CHECK: $c = comdat any
-
-define linkonce_odr void @foo() comdat($c) {
- ret void
-}
-; CHECK: define linkonce_odr void @foo() local_unnamed_addr comdat($c)
-
-define linkonce_odr void @bar() comdat($c) {
- ret void
-}
-; CHECK: define linkonce_odr void @bar() local_unnamed_addr comdat($c)
-
-define void @zed() {
- call void @foo()
- ret void
-}
diff --git a/llvm/test/Transforms/GlobalOpt/pr33686.ll b/llvm/test/Transforms/GlobalOpt/pr33686.ll
deleted file mode 100644
index d6bb98735f4..00000000000
--- a/llvm/test/Transforms/GlobalOpt/pr33686.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
-; RUN: opt -S -globalopt %s | FileCheck %s
-
-@glob = external global i16, align 1
-
-define void @beth() {
-; CHECK-LABEL: @beth(
-; CHECK-NEXT: entry:
-; CHECK-NEXT: ret void
-;
-entry:
- ret void
-
-notreachable:
- %patatino = select i1 undef, i16* @glob, i16* %patatino
- br label %notreachable
-}
diff --git a/llvm/test/Transforms/GlobalOpt/preserve-comdats.ll b/llvm/test/Transforms/GlobalOpt/preserve-comdats.ll
deleted file mode 100644
index 0148f0024b9..00000000000
--- a/llvm/test/Transforms/GlobalOpt/preserve-comdats.ll
+++ /dev/null
@@ -1,37 +0,0 @@
-; RUN: opt -globalopt -S < %s | FileCheck %s
-
-$comdat_global = comdat any
-
-@comdat_global = weak_odr global i8 0, comdat($comdat_global)
-@simple_global = internal global i8 0
-; CHECK: @comdat_global = weak_odr global i8 0, comdat{{$}}
-; CHECK: @simple_global = internal global i8 42
-
-@llvm.global_ctors = appending global [2 x { i32, void ()*, i8* }] [
- { i32, void ()*, i8* } { i32 65535, void ()* @init_comdat_global, i8* @comdat_global },
- { i32, void ()*, i8* } { i32 65535, void ()* @init_simple_global, i8* null }
-]
-; CHECK: @llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }]
-; CHECK: [{ i32, void ()*, i8* } { i32 65535, void ()* @init_comdat_global, i8* @comdat_global }]
-
-define void @init_comdat_global() {
- store i8 42, i8* @comdat_global
- ret void
-}
-; CHECK: define void @init_comdat_global()
-
-define internal void @init_simple_global() comdat($comdat_global) {
- store i8 42, i8* @simple_global
- ret void
-}
-; CHECK-NOT: @init_simple_global()
-
-define i8* @use_simple() {
- ret i8* @simple_global
-}
-; CHECK: define i8* @use_simple()
-
-define i8* @use_comdat() {
- ret i8* @comdat_global
-}
-; CHECK: define i8* @use_comdat()
diff --git a/llvm/test/Transforms/GlobalOpt/shrink-address-to-bool.ll b/llvm/test/Transforms/GlobalOpt/shrink-address-to-bool.ll
deleted file mode 100644
index 1a298b04e9b..00000000000
--- a/llvm/test/Transforms/GlobalOpt/shrink-address-to-bool.ll
+++ /dev/null
@@ -1,46 +0,0 @@
-;RUN: opt -S -globalopt -f %s | FileCheck %s
-
-;CHECK: @foo = {{.*}}, !dbg !0
-@foo = global i64 ptrtoint ([1 x i64]* @baa to i64), align 8, !dbg !0
-@baa = common global [1 x i64] zeroinitializer, align 8, !dbg !6
-
-; Function Attrs: noinline nounwind optnone uwtable
-define void @fun() #0 !dbg !16 {
-entry:
- %0 = load i64, i64* @foo, align 8, !dbg !19
- %1 = inttoptr i64 %0 to i64*, !dbg !19
- %cmp = icmp ugt i64* getelementptr inbounds ([1 x i64], [1 x i64]* @baa, i32 0, i32 0), %1, !dbg !20
- %conv = zext i1 %cmp to i32, !dbg !20
- store i64 0, i64* @foo, align 8, !dbg !21
- ret void, !dbg !22
-}
-
-attributes #0 = { noinline nounwind optnone uwtable }
-
-!llvm.dbg.cu = !{!2}
-!llvm.module.flags = !{!12, !13, !14}
-!llvm.ident = !{!15}
-
-!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
-!1 = distinct !DIGlobalVariable(name: "foo", scope: !2, file: !3, line: 2, type: !9, isLocal: false, isDefinition: true)
-!2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 6.0.0 ", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
-!3 = !DIFile(filename: "shrink-address-to-bool.c", directory: "/")
-!4 = !{}
-!5 = !{!0, !6}
-!6 = !DIGlobalVariableExpression(var: !7, expr: !DIExpression())
-!7 = distinct !DIGlobalVariable(name: "baa", scope: !2, file: !3, line: 1, type: !8, isLocal: false, isDefinition: true)
-!8 = !DICompositeType(tag: DW_TAG_array_type, baseType: !9, size: 64, elements: !10)
-!9 = !DIBasicType(name: "long int", size: 64, encoding: DW_ATE_signed)
-!10 = !{!11}
-!11 = !DISubrange(count: 1)
-!12 = !{i32 2, !"Dwarf Version", i32 4}
-!13 = !{i32 2, !"Debug Info Version", i32 3}
-!14 = !{i32 1, !"wchar_size", i32 4}
-!15 = !{!"clang version 6.0.0 "}
-!16 = distinct !DISubprogram(name: "fun", scope: !3, file: !3, line: 4, type: !17, isLocal: false, isDefinition: true, scopeLine: 4, isOptimized: false, unit: !2, retainedNodes: !4)
-!17 = !DISubroutineType(types: !18)
-!18 = !{null}
-!19 = !DILocation(line: 5, column: 9, scope: !16)
-!20 = !DILocation(line: 5, column: 7, scope: !16)
-!21 = !DILocation(line: 6, column: 7, scope: !16)
-!22 = !DILocation(line: 7, column: 1, scope: !16)
diff --git a/llvm/test/Transforms/GlobalOpt/shrink-global-to-bool-check-debug.ll b/llvm/test/Transforms/GlobalOpt/shrink-global-to-bool-check-debug.ll
deleted file mode 100644
index 71019128bb1..00000000000
--- a/llvm/test/Transforms/GlobalOpt/shrink-global-to-bool-check-debug.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-;RUN: opt -S -debugify -globalopt -f %s | FileCheck %s
-
-@foo = internal global i32 0, align 4
-
-define dso_local i32 @bar() {
-entry:
- store i32 5, i32* @foo, align 4
- %0 = load i32, i32* @foo, align 4
- ret i32 %0
-}
-
-;CHECK: @bar
-;CHECK-NEXT: entry:
-;CHECK-NEXT: store i1 true, i1* @foo, !dbg ![[DbgLocStore:[0-9]+]]
-;CHECK-NEXT: %.b = load i1, i1* @foo, !dbg ![[DbgLocLoadSel:[0-9]+]]
-;CHECK-NEXT: %0 = select i1 %.b, i32 5, i32 0, !dbg ![[DbgLocLoadSel]]
-;CHECK-NEXT: call void @llvm.dbg.value({{.*}}), !dbg ![[DbgLocLoadSel]]
-;CHECK-NEXT: ret i32 %0, !dbg ![[DbgLocRet:[0-9]+]]
-
-;CHECK: ![[DbgLocStore]] = !DILocation(line: 1,
-;CHECK: ![[DbgLocLoadSel]] = !DILocation(line: 2,
-;CHECK: ![[DbgLocRet]] = !DILocation(line: 3,
diff --git a/llvm/test/Transforms/GlobalOpt/static-const-bitcast.ll b/llvm/test/Transforms/GlobalOpt/static-const-bitcast.ll
deleted file mode 100644
index 52da721b55f..00000000000
--- a/llvm/test/Transforms/GlobalOpt/static-const-bitcast.ll
+++ /dev/null
@@ -1,62 +0,0 @@
-; RUN: opt -globalopt %s -S -o - | FileCheck %s
-target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
-target triple = "x86_64-unknown-linux-gnu"
-
-%struct.A = type { %class.Wrapper }
-%class.Wrapper = type { i32 }
-
-$Wrapper = comdat any
-
-@kA = internal global %struct.A zeroinitializer, align 4
-; CHECK: @kA = internal unnamed_addr constant %struct.A { %class.Wrapper { i32 1036831949 } }, align 4
-
-@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } {
-i32 65535, void ()* @_GLOBAL__sub_I_const_static.cc, i8* null }]
-
-define dso_local i32 @AsBits(float* %x) #0 {
-entry:
- %0 = bitcast float* %x to i32*
- %1 = load i32, i32* %0, align 4
- ret i32 %1
-}
-
-define internal void @__cxx_global_var_init() #1 section ".text.startup" {
-entry:
- call void @Wrapper(%class.Wrapper* getelementptr inbounds (%struct.A, %struct.A* @kA, i32 0, i32 0), float 0x3FB99999A0000000)
- %0 = call {}* @llvm.invariant.start.p0i8(i64 4, i8* bitcast (%struct.A* @kA to i8*))
- ret void
-}
-
-define linkonce_odr dso_local void @Wrapper(%class.Wrapper* %this, float %x) unnamed_addr #0 comdat align 2 {
-entry:
- %x.addr = alloca float, align 4
- store float %x, float* %x.addr, align 4
- %store_ = getelementptr inbounds %class.Wrapper, %class.Wrapper* %this, i32 0, i32 0
- %call = call i32 @AsBits(float* %x.addr)
- store i32 %call, i32* %store_, align 4
- ret void
-}
-
-declare {}* @llvm.invariant.start.p0i8(i64, i8* nocapture) #2
-
-; Function Attrs: nounwind uwtable
-define dso_local void @LoadIt(%struct.A* %c) #0 {
-entry:
- %0 = bitcast %struct.A* %c to i8*
- call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %0, i8* align 4 bitcast (%struct.A* @kA to i8*), i64 4, i1 false)
- ret void
-}
-
-; Function Attrs: argmemonly nounwind
-declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture writeonly, i8* nocapture readonly, i64, i1) #2
-
-; Function Attrs: uwtable
-define internal void @_GLOBAL__sub_I_const_static.cc() #1 section ".text.startup" {
-entry:
- call void @__cxx_global_var_init()
- ret void
-}
-
-attributes #0 = { nounwind uwtable "target-cpu"="x86-64" }
-attributes #1 = { uwtable "target-cpu"="x86-64" }
-attributes #2 = { argmemonly nounwind }
diff --git a/llvm/test/Transforms/GlobalOpt/storepointer-compare-no-null-opt.ll b/llvm/test/Transforms/GlobalOpt/storepointer-compare-no-null-opt.ll
deleted file mode 100644
index 709df17e0b5..00000000000
--- a/llvm/test/Transforms/GlobalOpt/storepointer-compare-no-null-opt.ll
+++ /dev/null
@@ -1,40 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-; CHECK: global
-
-@G = internal global void ()* null ; <void ()**> [#uses=2]
-
-define internal void @Actual() {
-; CHECK-LABEL: Actual(
- ret void
-}
-
-define void @init() {
-; CHECK-LABEL: init(
-; CHECK: store void ()* @Actual, void ()** @G
- store void ()* @Actual, void ()** @G
- ret void
-}
-
-define void @doit() #0 {
-; CHECK-LABEL: doit(
- %FP = load void ()*, void ()** @G ; <void ()*> [#uses=2]
-; CHECK: %FP = load void ()*, void ()** @G
- %CC = icmp eq void ()* %FP, null ; <i1> [#uses=1]
-; CHECK: %CC = icmp eq void ()* %FP, null
- br i1 %CC, label %isNull, label %DoCall
-; CHECK: br i1 %CC, label %isNull, label %DoCall
-
-DoCall: ; preds = %0
-; CHECK: DoCall:
-; CHECK: call void %FP()
-; CHECK: ret void
- call void %FP( )
- ret void
-
-isNull: ; preds = %0
-; CHECK: isNull:
-; CHECK: ret void
- ret void
-}
-
-attributes #0 = { "null-pointer-is-valid"="true" }
diff --git a/llvm/test/Transforms/GlobalOpt/storepointer-compare.ll b/llvm/test/Transforms/GlobalOpt/storepointer-compare.ll
deleted file mode 100644
index 969443569c2..00000000000
--- a/llvm/test/Transforms/GlobalOpt/storepointer-compare.ll
+++ /dev/null
@@ -1,29 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-; CHECK: call void @Actual
-
-; Check that a comparison does not prevent an indirect call from being made
-; direct. The global will still remain, but indirect call elim is still good.
-
-@G = internal global void ()* null ; <void ()**> [#uses=2]
-
-define internal void @Actual() {
- ret void
-}
-
-define void @init() {
- store void ()* @Actual, void ()** @G
- ret void
-}
-
-define void @doit() {
- %FP = load void ()*, void ()** @G ; <void ()*> [#uses=2]
- %CC = icmp eq void ()* %FP, null ; <i1> [#uses=1]
- br i1 %CC, label %isNull, label %DoCall
-
-DoCall: ; preds = %0
- call void %FP( )
- ret void
-
-isNull: ; preds = %0
- ret void
-}
diff --git a/llvm/test/Transforms/GlobalOpt/storepointer-no-null-opt.ll b/llvm/test/Transforms/GlobalOpt/storepointer-no-null-opt.ll
deleted file mode 100644
index c9a63f0080d..00000000000
--- a/llvm/test/Transforms/GlobalOpt/storepointer-no-null-opt.ll
+++ /dev/null
@@ -1,27 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-
-@G = internal global void ()* null ; <void ()**> [#uses=2]
-; CHECK: global
-
-define internal void @Actual() {
-; CHECK-LABEL: Actual(
- ret void
-}
-
-define void @init() {
-; CHECK-LABEL: init(
-; CHECK: store void ()* @Actual, void ()** @G
- store void ()* @Actual, void ()** @G
- ret void
-}
-
-define void @doit() #0 {
-; CHECK-LABEL: doit(
-; CHECK: %FP = load void ()*, void ()** @G
-; CHECK: call void %FP()
- %FP = load void ()*, void ()** @G ; <void ()*> [#uses=1]
- call void %FP( )
- ret void
-}
-
-attributes #0 = { "null-pointer-is-valid"="true" }
diff --git a/llvm/test/Transforms/GlobalOpt/storepointer.ll b/llvm/test/Transforms/GlobalOpt/storepointer.ll
deleted file mode 100644
index 8edaa64a62b..00000000000
--- a/llvm/test/Transforms/GlobalOpt/storepointer.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-; CHECK-NOT: global
-
-@G = internal global void ()* null ; <void ()**> [#uses=2]
-
-define internal void @Actual() {
- ret void
-}
-
-define void @init() {
- store void ()* @Actual, void ()** @G
- ret void
-}
-
-define void @doit() {
- %FP = load void ()*, void ()** @G ; <void ()*> [#uses=1]
- call void %FP( )
- ret void
-}
diff --git a/llvm/test/Transforms/GlobalOpt/tls.ll b/llvm/test/Transforms/GlobalOpt/tls.ll
deleted file mode 100644
index d010b96188f..00000000000
--- a/llvm/test/Transforms/GlobalOpt/tls.ll
+++ /dev/null
@@ -1,54 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-; RUN: opt -emulated-tls < %s -globalopt -S | FileCheck %s
-
-declare void @wait()
-declare void @signal()
-declare void @start_thread(void ()*)
-
-@x = internal thread_local global [100 x i32] zeroinitializer, align 16
-@ip = internal global i32* null, align 8
-
-; PR14309: GlobalOpt would think that the value of @ip is always the address of
-; x[1]. However, that address is different for different threads so @ip cannot
-; be replaced with a constant.
-
-define i32 @f() {
-entry:
- ; Set @ip to point to x[1] for thread 1.
- store i32* getelementptr inbounds ([100 x i32], [100 x i32]* @x, i64 0, i64 1), i32** @ip, align 8
-
- ; Run g on a new thread.
- tail call void @start_thread(void ()* @g) nounwind
- tail call void @wait() nounwind
-
- ; Reset x[1] for thread 1.
- store i32 0, i32* getelementptr inbounds ([100 x i32], [100 x i32]* @x, i64 0, i64 1), align 4
-
- ; Read the value of @ip, which now points at x[1] for thread 2.
- %0 = load i32*, i32** @ip, align 8
-
- %1 = load i32, i32* %0, align 4
- ret i32 %1
-
-; CHECK-LABEL: @f(
-; Make sure that the load from @ip hasn't been removed.
-; CHECK: load i32*, i32** @ip
-; CHECK: ret
-}
-
-define internal void @g() nounwind uwtable {
-entry:
- ; Set @ip to point to x[1] for thread 2.
- store i32* getelementptr inbounds ([100 x i32], [100 x i32]* @x, i64 0, i64 1), i32** @ip, align 8
-
- ; Store 50 in x[1] for thread 2.
- store i32 50, i32* getelementptr inbounds ([100 x i32], [100 x i32]* @x, i64 0, i64 1), align 4
-
- tail call void @signal() nounwind
- ret void
-
-; CHECK-LABEL: @g(
-; Make sure that the store to @ip hasn't been removed.
-; CHECK: store {{.*}} @ip
-; CHECK: ret
-}
diff --git a/llvm/test/Transforms/GlobalOpt/trivialstore.ll b/llvm/test/Transforms/GlobalOpt/trivialstore.ll
deleted file mode 100644
index 9a490879a41..00000000000
--- a/llvm/test/Transforms/GlobalOpt/trivialstore.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-; CHECK-NOT: G
-
-@G = internal global i32 17 ; <i32*> [#uses=3]
-
-define void @foo() {
- store i32 17, i32* @G
- ret void
-}
-
-define i32 @bar() {
- %X = load i32, i32* @G ; <i32> [#uses=1]
- ret i32 %X
-}
-
-define internal void @dead() {
- store i32 123, i32* @G
- ret void
-}
diff --git a/llvm/test/Transforms/GlobalOpt/undef-init.ll b/llvm/test/Transforms/GlobalOpt/undef-init.ll
deleted file mode 100644
index 71fad343e56..00000000000
--- a/llvm/test/Transforms/GlobalOpt/undef-init.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; RUN: opt < %s -globalopt -S | FileCheck %s
-; CHECK-NOT: store
-
-@llvm.global_ctors = appending global [1 x { i32, void ()* }] [ { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__Z3foov } ] ; <[1 x { i32, void ()* }]*> [#uses=0]
-@X.0 = internal global i32 undef ; <i32*> [#uses=2]
-
-define i32 @_Z3foov() {
-entry:
- %tmp.1 = load i32, i32* @X.0 ; <i32> [#uses=1]
- ret i32 %tmp.1
-}
-
-define internal void @_GLOBAL__I__Z3foov() {
-entry:
- store i32 1, i32* @X.0
- ret void
-}
diff --git a/llvm/test/Transforms/GlobalOpt/unnamed-addr.ll b/llvm/test/Transforms/GlobalOpt/unnamed-addr.ll
deleted file mode 100644
index 9f11f1bd92c..00000000000
--- a/llvm/test/Transforms/GlobalOpt/unnamed-addr.ll
+++ /dev/null
@@ -1,74 +0,0 @@
-; RUN: opt -globalopt -S < %s | FileCheck %s
-
-@a = internal global i32 0, align 4
-@b = internal global i32 0, align 4
-@c = internal global i32 0, align 4
-@d = internal constant [4 x i8] c"foo\00", align 1
-@e = linkonce_odr global i32 0
-
-; CHECK: @a = internal global i32 0, align 4
-; CHECK: @b = internal global i32 0, align 4
-; CHECK: @c = internal unnamed_addr global i32 0, align 4
-; CHECK: @d = internal unnamed_addr constant [4 x i8] c"foo\00", align 1
-; CHECK: @e = linkonce_odr local_unnamed_addr global i32 0
-
-; CHECK: define internal fastcc void @used_internal() unnamed_addr {
-define internal void @used_internal() {
- ret void
-}
-
-define i32 @get_e() {
- call void @used_internal()
- %t = load i32, i32* @e
- ret i32 %t
-}
-
-define void @set_e(i32 %x) {
- store i32 %x, i32* @e
- ret void
-}
-
-define i1 @bah(i64 %i) nounwind readonly optsize ssp {
-entry:
- %arrayidx4 = getelementptr inbounds [4 x i8], [4 x i8]* @d, i64 0, i64 %i
- %tmp5 = load i8, i8* %arrayidx4, align 1
- %array0 = bitcast [4 x i8]* @d to i8*
- %tmp6 = load i8, i8* %array0, align 1
- %cmp = icmp eq i8 %tmp5, %tmp6
- ret i1 %cmp
-}
-
-define void @baz(i32 %x) {
-entry:
- store i32 %x, i32* @a, align 4
- store i32 %x, i32* @b, align 4
- store i32 %x, i32* @c, align 4
- ret void
-}
-
-define i32 @foo(i32* %x) nounwind readnone optsize ssp {
-entry:
- %cmp = icmp eq i32* %x, @a
- %conv = zext i1 %cmp to i32
- ret i32 %conv
-}
-
-define i32 @bar() {
-entry:
- switch i64 ptrtoint (i32* @b to i64), label %sw.epilog [
- i64 1, label %return
- i64 0, label %return
- ]
-
-sw.epilog:
- ret i32 0
-
-return:
- ret i32 1
-}
-
-define i32 @zed() {
-entry:
- %tmp1 = load i32, i32* @c, align 4
- ret i32 %tmp1
-}
diff --git a/llvm/test/Transforms/GlobalOpt/zeroinitializer-gep-load.ll b/llvm/test/Transforms/GlobalOpt/zeroinitializer-gep-load.ll
deleted file mode 100644
index 51feb480e3b..00000000000
--- a/llvm/test/Transforms/GlobalOpt/zeroinitializer-gep-load.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: opt < %s -S -globalopt | FileCheck %s
-
-@zero = internal global [10 x i32] zeroinitializer
-
-define i32 @test1(i64 %idx) nounwind {
- %arrayidx = getelementptr inbounds [10 x i32], [10 x i32]* @zero, i64 0, i64 %idx
- %l = load i32, i32* %arrayidx
- ret i32 %l
-; CHECK-LABEL: @test1(
-; CHECK: ret i32 0
-}
OpenPOWER on IntegriCloud