[llvm] d586bd5 - [GlobalOpts] Convert tests to opaque pointers (NFC)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Tue Dec 13 06:34:07 PST 2022
Author: Nikita Popov
Date: 2022-12-13T15:33:59+01:00
New Revision: d586bd5ca231a6022f439d4c6e43cfeeb53eb1d6
URL: https://github.com/llvm/llvm-project/commit/d586bd5ca231a6022f439d4c6e43cfeeb53eb1d6
DIFF: https://github.com/llvm/llvm-project/commit/d586bd5ca231a6022f439d4c6e43cfeeb53eb1d6.diff
LOG: [GlobalOpts] Convert tests to opaque pointers (NFC)
Added:
Modified:
llvm/test/Transforms/GlobalOpt/2004-10-10-CastStoreOnce.ll
llvm/test/Transforms/GlobalOpt/2005-06-15-LocalizeConstExprCrash.ll
llvm/test/Transforms/GlobalOpt/2005-09-27-Crash.ll
llvm/test/Transforms/GlobalOpt/2006-07-07-InlineAsmCrash.ll
llvm/test/Transforms/GlobalOpt/2006-11-01-ShrinkGlobalPhiCrash.ll
llvm/test/Transforms/GlobalOpt/2007-04-05-Crash.ll
llvm/test/Transforms/GlobalOpt/2007-05-13-Crash.ll
llvm/test/Transforms/GlobalOpt/2007-06-04-PackedStruct.ll
llvm/test/Transforms/GlobalOpt/2007-11-09-GEP-GEP-Crash.ll
llvm/test/Transforms/GlobalOpt/2008-01-03-Crash.ll
llvm/test/Transforms/GlobalOpt/2008-01-13-OutOfRangeSROA.ll
llvm/test/Transforms/GlobalOpt/2008-01-29-VolatileGlobal.ll
llvm/test/Transforms/GlobalOpt/2008-04-26-SROA-Global-Align.ll
llvm/test/Transforms/GlobalOpt/2008-07-17-addrspace.ll
llvm/test/Transforms/GlobalOpt/2008-12-16-HeapSRACrash-2.ll
llvm/test/Transforms/GlobalOpt/2008-12-16-HeapSRACrash.ll
llvm/test/Transforms/GlobalOpt/2009-01-13-phi-user.ll
llvm/test/Transforms/GlobalOpt/2009-02-15-BitcastAlias.ll
llvm/test/Transforms/GlobalOpt/2009-02-15-ResolveAlias.ll
llvm/test/Transforms/GlobalOpt/2009-03-05-dbg.ll
llvm/test/Transforms/GlobalOpt/2009-03-06-Anonymous.ll
llvm/test/Transforms/GlobalOpt/2009-03-07-PromotePtrToBool.ll
llvm/test/Transforms/GlobalOpt/2009-06-01-RecursivePHI.ll
llvm/test/Transforms/GlobalOpt/2009-11-16-BrokenPerformHeapAllocSRoA.ll
llvm/test/Transforms/GlobalOpt/2009-11-16-MallocSingleStoreToGlobalVar.ll
llvm/test/Transforms/GlobalOpt/2010-02-25-MallocPromote.ll
llvm/test/Transforms/GlobalOpt/2010-02-26-MallocSROA.ll
llvm/test/Transforms/GlobalOpt/2010-10-19-WeakOdr.ll
llvm/test/Transforms/GlobalOpt/2011-04-09-EmptyGlobalCtors.ll
llvm/test/Transforms/GlobalOpt/2012-05-11-blockaddress.ll
llvm/test/Transforms/GlobalOpt/2021-08-02-CastStoreOnceP2I.ll
llvm/test/Transforms/GlobalOpt/2021-08-03-StoreOnceLoadMultiCasts.ll
llvm/test/Transforms/GlobalOpt/GSROA-section.ll
llvm/test/Transforms/GlobalOpt/MallocSROA-section-no-null-opt.ll
llvm/test/Transforms/GlobalOpt/MallocSROA-section.ll
llvm/test/Transforms/GlobalOpt/SROA-section.ll
llvm/test/Transforms/GlobalOpt/address_space_initializer.ll
llvm/test/Transforms/GlobalOpt/alias-resolve.ll
llvm/test/Transforms/GlobalOpt/alias-used-address-space.ll
llvm/test/Transforms/GlobalOpt/alias-used-section.ll
llvm/test/Transforms/GlobalOpt/alias-used.ll
llvm/test/Transforms/GlobalOpt/amdgcn-ctor-alloca.ll
llvm/test/Transforms/GlobalOpt/array-elem-refs.ll
llvm/test/Transforms/GlobalOpt/assume.ll
llvm/test/Transforms/GlobalOpt/atexit.ll
llvm/test/Transforms/GlobalOpt/atomic.ll
llvm/test/Transforms/GlobalOpt/available_externally_global_ctors.ll
llvm/test/Transforms/GlobalOpt/basictest.ll
llvm/test/Transforms/GlobalOpt/blockaddress.ll
llvm/test/Transforms/GlobalOpt/calloc-promote.ll
llvm/test/Transforms/GlobalOpt/coldcc_stress_test.ll
llvm/test/Transforms/GlobalOpt/compiler-used.ll
llvm/test/Transforms/GlobalOpt/const-return-status-atomic.ll
llvm/test/Transforms/GlobalOpt/const-return-status.ll
llvm/test/Transforms/GlobalOpt/constantexpr-dangle.ll
llvm/test/Transforms/GlobalOpt/constantfold-initializers.ll
llvm/test/Transforms/GlobalOpt/crash-2.ll
llvm/test/Transforms/GlobalOpt/crash.ll
llvm/test/Transforms/GlobalOpt/ctor-list-opt-constexpr.ll
llvm/test/Transforms/GlobalOpt/ctor-list-opt-inbounds.ll
llvm/test/Transforms/GlobalOpt/ctor-list-opt.ll
llvm/test/Transforms/GlobalOpt/cxx-dtor.ll
llvm/test/Transforms/GlobalOpt/dead-constant-user.ll
llvm/test/Transforms/GlobalOpt/dead-store-status.ll
llvm/test/Transforms/GlobalOpt/deadfunction.ll
llvm/test/Transforms/GlobalOpt/deadglobal-2.ll
llvm/test/Transforms/GlobalOpt/deadglobal-diarglist-use.ll
llvm/test/Transforms/GlobalOpt/deadglobal.ll
llvm/test/Transforms/GlobalOpt/evaluate-bitcast-2.ll
llvm/test/Transforms/GlobalOpt/evaluate-bitcast-3.ll
llvm/test/Transforms/GlobalOpt/evaluate-bitcast-4.ll
llvm/test/Transforms/GlobalOpt/evaluate-bitcast.ll
llvm/test/Transforms/GlobalOpt/evaluate-call-errors.ll
llvm/test/Transforms/GlobalOpt/evaluate-call.ll
llvm/test/Transforms/GlobalOpt/evaluate-constfold-call.ll
llvm/test/Transforms/GlobalOpt/evaluate-load-uniform.ll
llvm/test/Transforms/GlobalOpt/externally-initialized-aggregate.ll
llvm/test/Transforms/GlobalOpt/externally-initialized-global-ctr.ll
llvm/test/Transforms/GlobalOpt/externally-initialized.ll
llvm/test/Transforms/GlobalOpt/global-demotion.ll
llvm/test/Transforms/GlobalOpt/globalsra-align.ll
llvm/test/Transforms/GlobalOpt/globalsra-generic-type.ll
llvm/test/Transforms/GlobalOpt/globalsra-multigep.ll
llvm/test/Transforms/GlobalOpt/globalsra-partial.ll
llvm/test/Transforms/GlobalOpt/globalsra-recursive.ll
llvm/test/Transforms/GlobalOpt/globalsra-unknown-index.ll
llvm/test/Transforms/GlobalOpt/globalsra.ll
llvm/test/Transforms/GlobalOpt/heap-sra-1-no-null-opt.ll
llvm/test/Transforms/GlobalOpt/heap-sra-1.ll
llvm/test/Transforms/GlobalOpt/heap-sra-2-no-null-opt.ll
llvm/test/Transforms/GlobalOpt/heap-sra-2.ll
llvm/test/Transforms/GlobalOpt/heap-sra-phi-no-null-opt.ll
llvm/test/Transforms/GlobalOpt/heap-sra-phi.ll
llvm/test/Transforms/GlobalOpt/int_sideeffect.ll
llvm/test/Transforms/GlobalOpt/integer-bool-dwarf.ll
llvm/test/Transforms/GlobalOpt/integer-bool.ll
llvm/test/Transforms/GlobalOpt/invariant.group.ll
llvm/test/Transforms/GlobalOpt/invoke.ll
llvm/test/Transforms/GlobalOpt/iterate.ll
llvm/test/Transforms/GlobalOpt/large-element-size.ll
llvm/test/Transforms/GlobalOpt/large-int-crash.ll
llvm/test/Transforms/GlobalOpt/load-store-global-no-null-opt.ll
llvm/test/Transforms/GlobalOpt/load-store-global.ll
llvm/test/Transforms/GlobalOpt/localize-constexpr-debuginfo.ll
llvm/test/Transforms/GlobalOpt/localize-constexpr.ll
llvm/test/Transforms/GlobalOpt/long-compilation-global-sra.ll
llvm/test/Transforms/GlobalOpt/malloc-promote-1-no-null-opt.ll
llvm/test/Transforms/GlobalOpt/malloc-promote-1.ll
llvm/test/Transforms/GlobalOpt/malloc-promote-2-no-null-opt.ll
llvm/test/Transforms/GlobalOpt/malloc-promote-2.ll
llvm/test/Transforms/GlobalOpt/malloc-promote-3.ll
llvm/test/Transforms/GlobalOpt/malloc-promote-4.ll
llvm/test/Transforms/GlobalOpt/malloc-promote-5.ll
llvm/test/Transforms/GlobalOpt/malloc-promote-6.ll
llvm/test/Transforms/GlobalOpt/memcpy.ll
llvm/test/Transforms/GlobalOpt/memset-null.ll
llvm/test/Transforms/GlobalOpt/memset.ll
llvm/test/Transforms/GlobalOpt/metadata.ll
llvm/test/Transforms/GlobalOpt/naked_functions.ll
llvm/test/Transforms/GlobalOpt/new-promote.ll
llvm/test/Transforms/GlobalOpt/null-check-global-value.ll
llvm/test/Transforms/GlobalOpt/phi-select.ll
llvm/test/Transforms/GlobalOpt/pr33686.ll
llvm/test/Transforms/GlobalOpt/pr39751.ll
llvm/test/Transforms/GlobalOpt/pr51879.ll
llvm/test/Transforms/GlobalOpt/pr52994.ll
llvm/test/Transforms/GlobalOpt/pr53002.ll
llvm/test/Transforms/GlobalOpt/preserve-comdats.ll
llvm/test/Transforms/GlobalOpt/recursively-delete-dead-inst-assertion.ll
llvm/test/Transforms/GlobalOpt/shrink-address-to-bool.ll
llvm/test/Transforms/GlobalOpt/shrink-global-to-bool-check-debug.ll
llvm/test/Transforms/GlobalOpt/shrink-global-to-bool.ll
llvm/test/Transforms/GlobalOpt/static-const-bitcast.ll
llvm/test/Transforms/GlobalOpt/store-struct-element.ll
llvm/test/Transforms/GlobalOpt/stored-once-different-type.ll
llvm/test/Transforms/GlobalOpt/stored-once-through-gep.ll
llvm/test/Transforms/GlobalOpt/stored-once-value-type.ll
llvm/test/Transforms/GlobalOpt/storepointer-compare-no-null-opt.ll
llvm/test/Transforms/GlobalOpt/storepointer-compare.ll
llvm/test/Transforms/GlobalOpt/storepointer-no-null-opt.ll
llvm/test/Transforms/GlobalOpt/storepointer.ll
llvm/test/Transforms/GlobalOpt/tls.ll
llvm/test/Transforms/GlobalOpt/trivialstore.ll
llvm/test/Transforms/GlobalOpt/undef-ctor-dtor.ll
llvm/test/Transforms/GlobalOpt/undef-init.ll
llvm/test/Transforms/GlobalOpt/unnamed-addr.ll
llvm/test/Transforms/GlobalOpt/x86_mmx_load.ll
llvm/test/Transforms/GlobalOpt/zeroinitializer-gep-load.ll
Removed:
################################################################################
diff --git a/llvm/test/Transforms/GlobalOpt/2004-10-10-CastStoreOnce.ll b/llvm/test/Transforms/GlobalOpt/2004-10-10-CastStoreOnce.ll
index 1012ecc858b00..c756adea05f21 100644
--- a/llvm/test/Transforms/GlobalOpt/2004-10-10-CastStoreOnce.ll
+++ b/llvm/test/Transforms/GlobalOpt/2004-10-10-CastStoreOnce.ll
@@ -1,17 +1,16 @@
; RUN: opt < %s -passes=globalopt
- at V = global float 1.200000e+01 ; <float*> [#uses=1]
- at G = internal global i32* null ; <i32**> [#uses=2]
+ at V = global float 1.200000e+01 ; <ptr> [#uses=1]
+ at G = internal global ptr null ; <ptr> [#uses=2]
define i32 @user() {
- %P = load i32*, i32** @G ; <i32*> [#uses=1]
- %Q = load i32, i32* %P ; <i32> [#uses=1]
+ %P = load ptr, ptr @G ; <ptr> [#uses=1]
+ %Q = load i32, ptr %P ; <i32> [#uses=1]
ret i32 %Q
}
define void @setter() {
- %Vi = bitcast float* @V to i32* ; <i32*> [#uses=1]
- store i32* %Vi, i32** @G
+ store ptr @V, ptr @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
index 9a115cbf26fbd..d7591f4439d45 100644
--- a/llvm/test/Transforms/GlobalOpt/2005-06-15-LocalizeConstExprCrash.ll
+++ b/llvm/test/Transforms/GlobalOpt/2005-06-15-LocalizeConstExprCrash.ll
@@ -1,10 +1,10 @@
; RUN: opt < %s -passes=globalopt -disable-output
; PR579
- at g_40507551 = internal global i16 31038 ; <i16*> [#uses=1]
+ at g_40507551 = internal global i16 31038 ; <ptr> [#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]
+ %tmp.4.i.1 = load i8, ptr getelementptr (i8, ptr @g_40507551, 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
index 0d36d5860d928..19e742228d7b5 100644
--- a/llvm/test/Transforms/GlobalOpt/2005-09-27-Crash.ll
+++ b/llvm/test/Transforms/GlobalOpt/2005-09-27-Crash.ll
@@ -2,13 +2,13 @@
%RPyString = type { i32, %arraytype.Char }
%arraytype.Char = type { i32, [0 x i8] }
%arraytype.Signed = type { i32, [0 x i32] }
- %functiontype.1 = type { %RPyString* (i32) *}
+ %functiontype.1 = type { ptr}
%structtype.test = type { i32, %arraytype.Signed }
- at 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]
+ at structinstance.test = internal global { i32, { i32, [2 x i32] } } { i32 41, { i32, [2 x i32] } { i32 2, [2 x i32] [ i32 100, i32 101 ] } } ; <ptr> [#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]
+ %tmp.9 = getelementptr %structtype.test, ptr @structinstance.test, i32 0, i32 0 ; <ptr> [#uses=0]
ret void
}
diff --git a/llvm/test/Transforms/GlobalOpt/2006-07-07-InlineAsmCrash.ll b/llvm/test/Transforms/GlobalOpt/2006-07-07-InlineAsmCrash.ll
index b68bf8ee34b76..4b538ab9688fa 100644
--- a/llvm/test/Transforms/GlobalOpt/2006-07-07-InlineAsmCrash.ll
+++ b/llvm/test/Transforms/GlobalOpt/2006-07-07-InlineAsmCrash.ll
@@ -3,20 +3,20 @@
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.FlagDescription<int32>" = type { ptr, ptr, i1, i1, i32, ptr }
%"struct.FlagRegisterer<bool>" = type { i8 }
- %struct.MutexLock = type { %struct..0FileDescriptor* }
+ %struct.MutexLock = type { ptr }
%"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::_Rb_tree_const_iterator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >" = type { ptr }
+ %"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"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_base<int,std::allocator<int> >::_Vector_impl" = type { ptr, ptr, ptr }
%"struct.std::vector<int,std::allocator<int> >" = type { %"struct.std::_Vector_base<int,std::allocator<int> >" }
- at registry_lock = external global %struct..0FileDescriptor ; <%struct..0FileDescriptor*> [#uses=0]
- at _ZN61FLAG__foo_int32_44FLAGS_E = external global %"struct.FlagRegisterer<bool>" ; <%"struct.FlagRegisterer<bool>"*> [#uses=0]
- at llvm.global_ctors = appending global [20 x { i32, void ()*, i8* }] [ { i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__I__ZN62FLAG__foo_string_10FLAGS_E, i8* null }, { i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__I__ZN60FLAG__foo_bool_19FLAGS_E, i8* null }, { i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__I__ZNK5Bzh4Enum13is_contiguousEv, i8* null }, { i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__I__ZN62FLAG__foo_string_17FLAGS_E, i8* null }, { i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__I__ZN61FLAG__foo_int32_21FLAGS_E, i8* null }, { i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__I__ZN7ScannerC2Ev, i8* null }, { i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__I__Z11StripStringPSsPKcc, i8* null }, { i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__I__ZNK9__gnu_cxx4hashI11StringPieceEclERKS1_, i8* null }, { i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__I__ZN8Hasher325ResetEj, i8* null }, { i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__I__Z25ACLRv, i8* null }, { i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__I__ZN61FLAG__foo_int64_25FLAGS_E, i8* null }, { i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__I__ZN61FLAG__foo_int32_7FLAGS_E, i8* null }, { i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__I__ZN62FLAG__foo_string_18FLAGS_E, i8* null }, { i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__I__ZN62FLAG__foo_string_17FLAGS_E, i8* null }, { i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__I__ZN61FLAG__foo_int32_25FLAGS_E, i8* null }, { i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__I_eventbuf, i8* null }, { i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__I__ZN61FLAG__foo_int32_26FLAGS_E, i8* null }, { i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__I__ZN62FLAG__foo_string_16FLAGS_E, i8* null }, { i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__I__ZN17InitializerC2EPKcS1_PFvvE, i8* null }, { i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__I__checker_bcad_variable, i8* null } ] ; <[20 x { i32, void ()*, i8* }]*> [#uses=0]
+ at registry_lock = external global %struct..0FileDescriptor ; <ptr> [#uses=0]
+ at _ZN61FLAG__foo_int32_44FLAGS_E = external global %"struct.FlagRegisterer<bool>" ; <ptr> [#uses=0]
+ at llvm.global_ctors = appending global [20 x { i32, ptr, ptr }] [ { i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__I__ZN62FLAG__foo_string_10FLAGS_E, ptr null }, { i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__I__ZN60FLAG__foo_bool_19FLAGS_E, ptr null }, { i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__I__ZNK5Bzh4Enum13is_contiguousEv, ptr null }, { i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__I__ZN62FLAG__foo_string_17FLAGS_E, ptr null }, { i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__I__ZN61FLAG__foo_int32_21FLAGS_E, ptr null }, { i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__I__ZN7ScannerC2Ev, ptr null }, { i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__I__Z11StripStringPSsPKcc, ptr null }, { i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__I__ZNK9__gnu_cxx4hashI11StringPieceEclERKS1_, ptr null }, { i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__I__ZN8Hasher325ResetEj, ptr null }, { i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__I__Z25ACLRv, ptr null }, { i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__I__ZN61FLAG__foo_int64_25FLAGS_E, ptr null }, { i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__I__ZN61FLAG__foo_int32_7FLAGS_E, ptr null }, { i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__I__ZN62FLAG__foo_string_18FLAGS_E, ptr null }, { i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__I__ZN62FLAG__foo_string_17FLAGS_E, ptr null }, { i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__I__ZN61FLAG__foo_int32_25FLAGS_E, ptr null }, { i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__I_eventbuf, ptr null }, { i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__I__ZN61FLAG__foo_int32_26FLAGS_E, ptr null }, { i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__I__ZN62FLAG__foo_string_16FLAGS_E, ptr null }, { i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__I__ZN17InitializerC2EPKcS1_PFvvE, ptr null }, { i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__I__checker_bcad_variable, ptr null } ] ; <ptr> [#uses=0]
declare void @_GLOBAL__I__ZN62FLAG__foo_string_10FLAGS_E()
@@ -67,7 +67,7 @@ entry:
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(%"struct.std::_Rb_tree_const_iterator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >") %agg.result) {
+define void @_ZNSt3mapIPKc15FlagDescriptionIiE9StringCmpSaISt4pairIKS1_S3_EEE3endEv(ptr sret(%"struct.std::_Rb_tree_const_iterator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >") %agg.result) {
entry:
unreachable
}
@@ -76,7 +76,7 @@ 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]
+ %tmp3 = call i32 asm sideeffect "lock; cmpxchg $1,$2", "={ax},q,m,0,~{dirflag},~{fpsr},~{flags},~{memory}"( i32 0, ptr null, i32 0 ) ; <i32> [#uses=0]
unreachable
}
@@ -102,16 +102,16 @@ entry:
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]
+ %__initialize_p_addr = alloca i32 ; <ptr> [#uses=2]
+ %__priority_addr = alloca i32 ; <ptr> [#uses=2]
+ store i32 %__initialize_p, ptr %__initialize_p_addr
+ store i32 %__priority, ptr %__priority_addr
+ %tmp = load i32, ptr %__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]
+ %tmp8 = load i32, ptr %__initialize_p_addr ; <i32> [#uses=1]
%tmp9 = icmp eq i32 %tmp8, 1 ; <i1> [#uses=1]
br i1 %tmp9, label %cond_true10, label %cond_next14
diff --git a/llvm/test/Transforms/GlobalOpt/2006-11-01-ShrinkGlobalPhiCrash.ll b/llvm/test/Transforms/GlobalOpt/2006-11-01-ShrinkGlobalPhiCrash.ll
index 240f9ccedaadd..d215ed03364af 100644
--- a/llvm/test/Transforms/GlobalOpt/2006-11-01-ShrinkGlobalPhiCrash.ll
+++ b/llvm/test/Transforms/GlobalOpt/2006-11-01-ShrinkGlobalPhiCrash.ll
@@ -1,16 +1,16 @@
; RUN: opt < %s -passes=globalopt -disable-output
- %struct._list = type { i32*, %struct._list* }
- %struct._play = type { i32, i32*, %struct._list*, %struct._play* }
- at nrow = internal global i32 0 ; <i32*> [#uses=2]
+ %struct._list = type { ptr, ptr }
+ %struct._play = type { i32, ptr, ptr, ptr }
+ at nrow = internal global i32 0 ; <ptr> [#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]
+ %low.0.in.i.0 = phi ptr [ @nrow, %entry ], [ null, %cond_true16.i ] ; <ptr> [#uses=1]
+ %low.0.i = load i32, ptr %low.0.in.i.0 ; <i32> [#uses=0]
br label %cond_true16.i
}
@@ -26,7 +26,7 @@ entry:
define void @main() {
entry:
- store i32 8, i32* @nrow
+ store i32 8, ptr @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
index 1bcccc4a621f5..5cc68654baf6e 100644
--- a/llvm/test/Transforms/GlobalOpt/2007-04-05-Crash.ll
+++ b/llvm/test/Transforms/GlobalOpt/2007-04-05-Crash.ll
@@ -2,14 +2,14 @@
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"
- at replacementUnichar = internal global i16 -3 ; <i16*> [#uses=2]
-@"L_OBJC_IMAGE_INFO" = internal global [2 x i32] zeroinitializer ; <[2 x i32]*> [#uses=1]
- at llvm.used = appending global [1 x i8*] [ i8* bitcast ([2 x i32]* @"L_OBJC_IMAGE_INFO" to i8*) ] ; <[1 x i8*]*> [#uses=0]
+ at replacementUnichar = internal global i16 -3 ; <ptr> [#uses=2]
+@"L_OBJC_IMAGE_INFO" = internal global [2 x i32] zeroinitializer ; <ptr> [#uses=1]
+ at llvm.used = appending global [1 x ptr] [ ptr @"L_OBJC_IMAGE_INFO" ] ; <ptr> [#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]
+ %iftmp.0.0.in.in = select i1 false, ptr @replacementUnichar, ptr null ; <ptr> [#uses=1]
+ %iftmp.0.0.in = load i16, ptr %iftmp.0.0.in.in ; <i16> [#uses=1]
ret i16 %iftmp.0.0.in
}
@@ -24,7 +24,7 @@ entry:
br i1 false, label %cond_true6, label %cond_next8
cond_true6: ; preds = %entry
- store i16 -2, i16* @replacementUnichar
+ store i16 -2, ptr @replacementUnichar
ret void
cond_next8: ; preds = %entry
diff --git a/llvm/test/Transforms/GlobalOpt/2007-05-13-Crash.ll b/llvm/test/Transforms/GlobalOpt/2007-05-13-Crash.ll
index cdc351c29ec29..298f5c68de0be 100644
--- a/llvm/test/Transforms/GlobalOpt/2007-05-13-Crash.ll
+++ b/llvm/test/Transforms/GlobalOpt/2007-05-13-Crash.ll
@@ -5,70 +5,68 @@ 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 }
- at _ZZ19SFLGetVisibilityKeyvE19_kSFLLVisibilityKey = internal global %struct.__CFString* null ; <%struct.__CFString**> [#uses=2]
- at _ZZ22SFLGetAlwaysVisibleKeyvE22_kSFLLAlwaysVisibleKey = internal global %struct.__CFString* null ; <%struct.__CFString**> [#uses=7]
+ %struct.__builtin_CFString = type { ptr, i32, ptr, i32 }
+ at _ZZ19SFLGetVisibilityKeyvE19_kSFLLVisibilityKey = internal global ptr null ; <ptr> [#uses=2]
+ at _ZZ22SFLGetAlwaysVisibleKeyvE22_kSFLLAlwaysVisibleKey = internal global ptr null ; <ptr> [#uses=7]
@0 = internal constant %struct.__builtin_CFString {
- i32* getelementptr ([0 x i32], [0 x i32]* @__CFConstantStringClassReference, i32 0, i32 0),
+ ptr @__CFConstantStringClassReference,
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]
- at __CFConstantStringClassReference = external global [0 x i32] ; <[0 x i32]*> [#uses=1]
- at .str = internal constant [14 x i8] c"AlwaysVisible\00" ; <[14 x i8]*> [#uses=1]
- at _ZZ21SFLGetNeverVisibleKeyvE21_kSFLLNeverVisibleKey = internal global %struct.__CFString* null ; <%struct.__CFString**> [#uses=2]
+ ptr @.str,
+ i32 13 }, section "__DATA,__cfstring" ; <ptr>:0 [#uses=1]
+ at __CFConstantStringClassReference = external global [0 x i32] ; <ptr> [#uses=1]
+ at .str = internal constant [14 x i8] c"AlwaysVisible\00" ; <ptr> [#uses=1]
+ at _ZZ21SFLGetNeverVisibleKeyvE21_kSFLLNeverVisibleKey = internal global ptr null ; <ptr> [#uses=2]
-define %struct.__CFString* @_Z19SFLGetVisibilityKeyv() {
+define ptr @_Z19SFLGetVisibilityKeyv() {
entry:
- %tmp1 = load %struct.__CFString*, %struct.__CFString** @_ZZ19SFLGetVisibilityKeyvE19_kSFLLVisibilityKey ; <%struct.__CFString*> [#uses=1]
- ret %struct.__CFString* %tmp1
+ %tmp1 = load ptr, ptr @_ZZ19SFLGetVisibilityKeyvE19_kSFLLVisibilityKey ; <ptr> [#uses=1]
+ ret ptr %tmp1
}
-define %struct.__CFString* @_Z22SFLGetAlwaysVisibleKeyv() {
+define ptr @_Z22SFLGetAlwaysVisibleKeyv() {
entry:
- %tmp1 = load %struct.__CFString*, %struct.__CFString** @_ZZ22SFLGetAlwaysVisibleKeyvE22_kSFLLAlwaysVisibleKey ; <%struct.__CFString*> [#uses=1]
- %tmp2 = icmp eq %struct.__CFString* %tmp1, null ; <i1> [#uses=1]
+ %tmp1 = load ptr, ptr @_ZZ22SFLGetAlwaysVisibleKeyvE22_kSFLLAlwaysVisibleKey ; <ptr> [#uses=1]
+ %tmp2 = icmp eq ptr %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
+ store ptr @0, ptr @_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
+ %tmp4 = load ptr, ptr @_ZZ22SFLGetAlwaysVisibleKeyvE22_kSFLLAlwaysVisibleKey ; <ptr> [#uses=1]
+ ret ptr %tmp4
}
-define %struct.__CFString* @_Z21SFLGetNeverVisibleKeyv() {
+define ptr @_Z21SFLGetNeverVisibleKeyv() {
entry:
- %tmp1 = load %struct.__CFString*, %struct.__CFString** @_ZZ21SFLGetNeverVisibleKeyvE21_kSFLLNeverVisibleKey ; <%struct.__CFString*> [#uses=1]
- ret %struct.__CFString* %tmp1
+ %tmp1 = load ptr, ptr @_ZZ21SFLGetNeverVisibleKeyvE21_kSFLLNeverVisibleKey ; <ptr> [#uses=1]
+ ret ptr %tmp1
}
-define %struct.__CFDictionary* @_ZN18SFLMutableListItem18GetPrefsDictionaryEv(%struct.SFLMutableListItem* %this) {
+define ptr @_ZN18SFLMutableListItem18GetPrefsDictionaryEv(ptr %this) {
entry:
- %tmp4 = getelementptr %struct.SFLMutableListItem, %struct.SFLMutableListItem* %this, i32 0, i32 0 ; <i16*> [#uses=1]
- %tmp5 = load i16, i16* %tmp4 ; <i16> [#uses=1]
+ %tmp4 = getelementptr %struct.SFLMutableListItem, ptr %this, i32 0, i32 0 ; <ptr> [#uses=1]
+ %tmp5 = load i16, ptr %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]
+ %tmp9 = load ptr, ptr @_ZZ22SFLGetAlwaysVisibleKeyvE22_kSFLLAlwaysVisibleKey ; <ptr> [#uses=1]
+ %tmp10 = icmp eq ptr %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
+ store ptr @0, ptr @_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
+ %iftmp.1.0.in = phi ptr [ @_ZZ22SFLGetAlwaysVisibleKeyvE22_kSFLLAlwaysVisibleKey, %cond_true ], [ @_ZZ22SFLGetAlwaysVisibleKeyvE22_kSFLLAlwaysVisibleKey, %cond_true13 ], [ @_ZZ21SFLGetNeverVisibleKeyvE21_kSFLLNeverVisibleKey, %entry ] ; <ptr> [#uses=1]
+ %iftmp.1.0 = load ptr, ptr %iftmp.1.0.in ; <ptr> [#uses=1]
+ %tmp24 = load ptr, ptr @_ZZ19SFLGetVisibilityKeyvE19_kSFLLVisibilityKey ; <ptr> [#uses=1]
+ call void @_Z20CFDictionaryAddValuePKvS0_( ptr %tmp24, ptr %iftmp.1.0 )
+ ret ptr undef
}
-declare void @_Z20CFDictionaryAddValuePKvS0_(i8*, i8*)
+declare void @_Z20CFDictionaryAddValuePKvS0_(ptr, ptr)
diff --git a/llvm/test/Transforms/GlobalOpt/2007-06-04-PackedStruct.ll b/llvm/test/Transforms/GlobalOpt/2007-06-04-PackedStruct.ll
index 1ef5747dfc5cd..e0d88d24bef88 100644
--- a/llvm/test/Transforms/GlobalOpt/2007-06-04-PackedStruct.ll
+++ b/llvm/test/Transforms/GlobalOpt/2007-06-04-PackedStruct.ll
@@ -6,11 +6,11 @@ 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::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"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> > >" }
- at 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]
- at llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [ { i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__I_someMap, i8* null } ] ; <[1 x { i32, void ()*, i8* }]*> [#uses=0]
- at llvm.global_dtors = appending global [1 x { i32, void ()*, i8* }] [ { i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__D_someMap, i8* null } ] ; <[1 x { i32, void ()*, i8* }]*> [#uses=0]
+ at someMap = global %"struct.std::map<int,int,std::less<int>,std::allocator<std::pair<const int, int> > >" zeroinitializer ; <ptr> [#uses=1]
+ at llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [ { i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__I_someMap, ptr null } ] ; <ptr> [#uses=0]
+ at llvm.global_dtors = appending global [1 x { i32, ptr, ptr }] [ { i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__D_someMap, ptr null } ] ; <ptr> [#uses=0]
define void @_GLOBAL__I_someMap() {
entry:
@@ -28,7 +28,7 @@ entry:
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)
+ store i8 0, ptr getelementptr (%"struct.std::map<int,int,std::less<int>,std::allocator<std::pair<const int, int> > >", ptr @someMap, i32 0, i32 0, i32 0, i32 0, i32 0)
ret void
cond_next: ; preds = %entry
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
index d8feb8347a0a2..da08237e6de40 100644
--- a/llvm/test/Transforms/GlobalOpt/2007-11-09-GEP-GEP-Crash.ll
+++ b/llvm/test/Transforms/GlobalOpt/2007-11-09-GEP-GEP-Crash.ll
@@ -4,14 +4,14 @@ target triple = "powerpc-unknown-linux-gnu"
%struct.empty0 = type { }
%struct.es = type { %struct.empty0 }
%struct.es1 = type { %struct.empty0 }
- at 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]
- at aaui0 = internal global [0 x [2 x i32]] zeroinitializer ; <[0 x [2 x i32]]*> [#uses=1]
+ at 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 ] ] ; <ptr> [#uses=1]
+ at aaui0 = internal global [0 x [2 x i32]] zeroinitializer ; <ptr> [#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]
+ %tmp10 = getelementptr [2 x i32], ptr @aaui1, i32 5, i32 1 ; <ptr> [#uses=1]
+ %tmp11 = load i32, ptr %tmp10, align 4 ; <i32> [#uses=1]
+ %tmp12 = call i32 (...) @func3( ptr null, i32 0, i32 %tmp11 ) ; <i32> [#uses=0]
ret i8 undef
}
diff --git a/llvm/test/Transforms/GlobalOpt/2008-01-03-Crash.ll b/llvm/test/Transforms/GlobalOpt/2008-01-03-Crash.ll
index ccd0960534d72..37f58ae5908e4 100644
--- a/llvm/test/Transforms/GlobalOpt/2008-01-03-Crash.ll
+++ b/llvm/test/Transforms/GlobalOpt/2008-01-03-Crash.ll
@@ -1,7 +1,7 @@
; RUN: opt < %s -passes=globalopt | llvm-dis
; PR1896
- at indirect1 = internal global void (i32)* null ; <void (i32)**> [#uses=2]
+ at indirect1 = internal global ptr null ; <ptr> [#uses=2]
declare void @indirectmarked(i32)
@@ -13,14 +13,14 @@ cond_true.i9: ; preds = %entry
ret i32 0
cond_next20.i: ; preds = %entry
- store void (i32)* @indirectmarked, void (i32)** @indirect1, align 4
+ store ptr @indirectmarked, ptr @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]
+ %tmp6.i4.i = load i32, ptr @indirect1, 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
index af76984f7722e..53449fbaad5ca 100644
--- a/llvm/test/Transforms/GlobalOpt/2008-01-13-OutOfRangeSROA.ll
+++ b/llvm/test/Transforms/GlobalOpt/2008-01-13-OutOfRangeSROA.ll
@@ -6,13 +6,13 @@
@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
+ %P = getelementptr [16 x [31 x double]], ptr @mm, i32 0, i32 0, i32 %X
+ store double 1.0, ptr %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
+ %P = getelementptr [16 x [31 x double]], ptr @mm, i32 0, i32 0, i32 %X
+ %V = load double, ptr %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
index 9bab3668c329f..a352598e95c29 100644
--- a/llvm/test/Transforms/GlobalOpt/2008-01-29-VolatileGlobal.ll
+++ b/llvm/test/Transforms/GlobalOpt/2008-01-29-VolatileGlobal.ll
@@ -1,10 +1,10 @@
; RUN: opt < %s -passes=globalopt -S | FileCheck %s
; CHECK: load volatile
- at t0.1441 = internal global double 0x3FD5555555555555, align 8 ; <double*> [#uses=1]
+ at t0.1441 = internal global double 0x3FD5555555555555, align 8 ; <ptr> [#uses=1]
define double @foo() nounwind {
entry:
- %tmp1 = load volatile double, double* @t0.1441, align 8 ; <double> [#uses=2]
+ %tmp1 = load volatile double, ptr @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
index 71f44ea2ea4e4..e68e68106c6f1 100644
--- a/llvm/test/Transforms/GlobalOpt/2008-04-26-SROA-Global-Align.ll
+++ b/llvm/test/Transforms/GlobalOpt/2008-04-26-SROA-Global-Align.ll
@@ -18,16 +18,16 @@ target triple = "x86_64-apple-darwin8"
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
+ store double 1.0, ptr @G, align 16
+ store double 2.0, ptr getelementptr (%T, ptr @G, i32 0, i32 1), align 8
+ store double 3.0, ptr getelementptr (%T, ptr @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
+ %V1 = load double, ptr @G, align 16
+ %V2 = load double, ptr getelementptr (%T, ptr @G, i32 0, i32 1), align 8
+ %V3 = load double, ptr getelementptr (%T, ptr @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
index 01aa76071c04d..270489d1a32e3 100644
--- a/llvm/test/Transforms/GlobalOpt/2008-07-17-addrspace.ll
+++ b/llvm/test/Transforms/GlobalOpt/2008-07-17-addrspace.ll
@@ -12,8 +12,8 @@
@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)
+ %A = load i32, ptr addrspace(1) getelementptr ({ i32, i32 }, ptr addrspace(1) @struct, i32 0, i32 0)
+ %B = load i32, ptr addrspace(1) @array
; Use the loaded values, so they won't get removed completely
%R = add i32 %A, %B
ret i32 %R
@@ -22,7 +22,7 @@ define i32 @foo() {
; We put stores in a
diff erent 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)
+ store i32 %R, ptr addrspace(1) @array
+ store i32 %R, ptr addrspace(1) getelementptr ({ i32, i32 }, ptr 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
index bc0050b84c883..0204922a6f894 100644
--- a/llvm/test/Transforms/GlobalOpt/2008-12-16-HeapSRACrash-2.ll
+++ b/llvm/test/Transforms/GlobalOpt/2008-12-16-HeapSRACrash-2.ll
@@ -2,27 +2,26 @@
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 }
- at X = internal global %struct.foo* null ; <%struct.foo**> [#uses=2]
+ at X = internal global ptr null ; <ptr> [#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
+ %malloccall = tail call ptr @malloc(i32 trunc (i64 mul (i64 ptrtoint (ptr getelementptr (i32, ptr null, i32 1) to i64), i64 2000000) to i32))
+ %.sub = getelementptr [1000000 x %struct.foo], ptr %malloccall, i32 0, i32 0 ; <ptr> [#uses=1]
+ store ptr %.sub, ptr @X, align 4
ret void
}
-declare noalias i8* @malloc(i32)
+declare noalias ptr @malloc(i32)
define i32 @baz() nounwind readonly noinline {
bb1.thread:
- %tmpLD1 = load %struct.foo*, %struct.foo** @X, align 4 ; <%struct.foo*> [#uses=2]
+ %tmpLD1 = load ptr, ptr @X, align 4 ; <ptr> [#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]
+ %tmp = phi ptr [ %tmpLD1, %bb1.thread ], [ %tmpLD1, %bb1 ] ; <ptr> [#uses=1]
+ %0 = getelementptr %struct.foo, ptr %tmp, i32 1 ; <ptr> [#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
index 24b57e2dfb2c8..9163026613728 100644
--- a/llvm/test/Transforms/GlobalOpt/2008-12-16-HeapSRACrash.ll
+++ b/llvm/test/Transforms/GlobalOpt/2008-12-16-HeapSRACrash.ll
@@ -2,27 +2,26 @@
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 }
- at X = internal global %struct.foo* null ; <%struct.foo**> [#uses=2]
+ at X = internal global ptr null ; <ptr> [#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
+ %malloccall = tail call ptr @malloc(i32 trunc (i64 mul (i64 ptrtoint (ptr getelementptr (i32, ptr null, i32 1) to i64), i64 2000000) to i32))
+ %.sub = getelementptr [1000000 x %struct.foo], ptr %malloccall, i32 0, i32 0 ; <ptr> [#uses=1]
+ store ptr %.sub, ptr @X, align 4
ret void
}
-declare noalias i8* @malloc(i32)
+declare noalias ptr @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
+ %tmpLD1 = load ptr, ptr @X, align 4 ; <ptr> [#uses=3]
+ store ptr %tmpLD1, ptr null
br label %bb1
bb1: ; preds = %bb1, %bb1.thread
- %tmp = phi %struct.foo* [ %tmpLD1, %bb1.thread ], [ %tmpLD1, %bb1 ] ; <%struct.foo*> [#uses=0]
+ %tmp = phi ptr [ %tmpLD1, %bb1.thread ], [ %tmpLD1, %bb1 ] ; <ptr> [#uses=0]
br i1 false, label %bb2, label %bb1
bb2: ; preds = %bb1
diff --git a/llvm/test/Transforms/GlobalOpt/2009-01-13-phi-user.ll b/llvm/test/Transforms/GlobalOpt/2009-01-13-phi-user.ll
index 009b9c1e3c810..b434fc10f87e6 100644
--- a/llvm/test/Transforms/GlobalOpt/2009-01-13-phi-user.ll
+++ b/llvm/test/Transforms/GlobalOpt/2009-01-13-phi-user.ll
@@ -3,26 +3,26 @@
; 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 }
- at head = internal global %struct.node* null ; <%struct.node**> [#uses=2]
- at node = internal global %struct.node { %struct.node* null, i32 42 }, align 16 ; <%struct.node*> [#uses=1]
+ %struct.node = type { ptr, i32 }
+ at head = internal global ptr null ; <ptr> [#uses=2]
+ at node = internal global %struct.node { ptr null, i32 42 }, align 16 ; <ptr> [#uses=1]
define i32 @f() nounwind {
entry:
- store %struct.node* @node, %struct.node** @head, align 8
+ store ptr @node, ptr @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]
+ %0 = getelementptr %struct.node, ptr %t.0, i64 0, i32 1 ; <ptr> [#uses=1]
+ %1 = load i32, ptr %0, align 4 ; <i32> [#uses=1]
+ %2 = getelementptr %struct.node, ptr %t.0, i64 0, i32 0 ; <ptr> [#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]
+ %t.0.in = phi ptr [ @head, %entry ], [ %2, %bb ] ; <ptr> [#uses=1]
+ %t.0 = load ptr, ptr %t.0.in ; <ptr> [#uses=3]
+ %3 = icmp eq ptr %t.0, null ; <i1> [#uses=1]
br i1 %3, label %bb2, label %bb
bb2: ; preds = %bb1
diff --git a/llvm/test/Transforms/GlobalOpt/2009-02-15-BitcastAlias.ll b/llvm/test/Transforms/GlobalOpt/2009-02-15-BitcastAlias.ll
index 5b4af9aa74fa7..e4c4f5a0f0a40 100644
--- a/llvm/test/Transforms/GlobalOpt/2009-02-15-BitcastAlias.ll
+++ b/llvm/test/Transforms/GlobalOpt/2009-02-15-BitcastAlias.ll
@@ -2,9 +2,9 @@
@g = global i32 0
- at a = alias i8, bitcast (i32* @g to i8*)
+ at a = alias i8, ptr @g
define void @f() {
- %tmp = load i8, i8* @a
+ %tmp = load i8, ptr @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
index ce7d4fcb8e253..0d5864286ec3a 100644
--- a/llvm/test/Transforms/GlobalOpt/2009-02-15-ResolveAlias.ll
+++ b/llvm/test/Transforms/GlobalOpt/2009-02-15-ResolveAlias.ll
@@ -6,14 +6,14 @@ define internal void @f() {
ret void
}
- at a = dso_local alias void (), void ()* @f
+ at a = dso_local alias void (), ptr @f
define hidden void @g() {
call void() @a()
ret void
}
- at b = internal alias void (), void ()* @g
+ at b = internal alias void (), ptr @g
; CHECK-NOT: @b
define void @h() {
diff --git a/llvm/test/Transforms/GlobalOpt/2009-03-05-dbg.ll b/llvm/test/Transforms/GlobalOpt/2009-03-05-dbg.ll
index d40eea53d9245..a802236141d52 100644
--- a/llvm/test/Transforms/GlobalOpt/2009-03-05-dbg.ll
+++ b/llvm/test/Transforms/GlobalOpt/2009-03-05-dbg.ll
@@ -15,13 +15,13 @@ entry:
br i1 %0, label %bb, label %bb1, !dbg !13
bb: ; preds = %entry
- store i32 0, i32* @Stop, align 4, !dbg !15
+ store i32 0, ptr @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
+ store i32 1, ptr @Stop, align 4, !dbg !17
br label %bb2, !dbg !17
bb2: ; preds = %bb1, %bb
@@ -40,7 +40,7 @@ declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
define i32 @bar() #0 {
entry:
%"alloca point" = bitcast i32 0 to i32
- %0 = load i32, i32* @Stop, align 4, !dbg !19
+ %0 = load i32, ptr @Stop, align 4, !dbg !19
%1 = icmp eq i32 %0, 1, !dbg !19
br i1 %1, label %bb, label %bb1, !dbg !19
diff --git a/llvm/test/Transforms/GlobalOpt/2009-03-06-Anonymous.ll b/llvm/test/Transforms/GlobalOpt/2009-03-06-Anonymous.ll
index f14cfcedf9476..b54815b8af8cb 100644
--- a/llvm/test/Transforms/GlobalOpt/2009-03-06-Anonymous.ll
+++ b/llvm/test/Transforms/GlobalOpt/2009-03-06-Anonymous.ll
@@ -6,18 +6,18 @@
@1 = private global i32 0
; CHECK-DAG: @1 = private global i32 0
-define i32* @2() {
- ret i32* @0
+define ptr @2() {
+ ret ptr @0
}
-; CHECK-DAG: define internal fastcc i32* @2()
+; CHECK-DAG: define internal fastcc ptr @2()
-define i32* @f() {
+define ptr @f() {
entry:
- call i32* @2()
- ret i32* %0
+ call ptr @2()
+ ret ptr %0
}
-define i32* @g() {
+define ptr @g() {
entry:
- ret i32* @1
+ ret ptr @1
}
diff --git a/llvm/test/Transforms/GlobalOpt/2009-03-07-PromotePtrToBool.ll b/llvm/test/Transforms/GlobalOpt/2009-03-07-PromotePtrToBool.ll
index 99d3269ca5b58..acff34c1ae357 100644
--- a/llvm/test/Transforms/GlobalOpt/2009-03-07-PromotePtrToBool.ll
+++ b/llvm/test/Transforms/GlobalOpt/2009-03-07-PromotePtrToBool.ll
@@ -2,18 +2,18 @@
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
- at X = internal global i32* null ; <i32**> [#uses=2]
- at Y = internal global i32 0 ; <i32*> [#uses=1]
+; CHECK: @X = internal unnamed_addr global ptr null
+ at X = internal global ptr null ; <ptr> [#uses=2]
+ at Y = internal global i32 0 ; <ptr> [#uses=1]
define void @foo() nounwind {
entry:
- store i32* @Y, i32** @X, align 4
+ store ptr @Y, ptr @X, align 4
ret void
}
-define i32* @get() nounwind {
+define ptr @get() nounwind {
entry:
- %0 = load i32*, i32** @X, align 4 ; <i32*> [#uses=1]
- ret i32* %0
+ %0 = load ptr, ptr @X, align 4 ; <ptr> [#uses=1]
+ ret ptr %0
}
diff --git a/llvm/test/Transforms/GlobalOpt/2009-06-01-RecursivePHI.ll b/llvm/test/Transforms/GlobalOpt/2009-06-01-RecursivePHI.ll
index d61d4d4b45bea..911ae91f4d136 100644
--- a/llvm/test/Transforms/GlobalOpt/2009-06-01-RecursivePHI.ll
+++ b/llvm/test/Transforms/GlobalOpt/2009-06-01-RecursivePHI.ll
@@ -3,11 +3,11 @@ target datalayout = "E-p:64:64:64-a0:0:8-f32:32:32-f64:64:64-i1:8:8-i8:8:8-i16:1
%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 }
- at net = internal global %struct.s_net* null ; <%struct.s_net**> [#uses=4]
+ %struct.s_net = type { ptr, i32, ptr, float, float }
+ %struct.s_placer_opts = type { i32, float, i32, i32, ptr, i32, i32 }
+ at net = internal global ptr null ; <ptr> [#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, i1 %c1, i1 %c2, i1 %c3, i1 %c4, i1 %c5, i1 %c6, i1 %c7, i1 %c8, i1 %c9, i1 %c10, i1 %c11, i1 %c12) nounwind ssp {
+define fastcc void @alloc_and_load_placement_structs(i32 %place_cost_type, i32 %num_regions, float %place_cost_exp, ptr nocapture %old_region_occ_x, ptr nocapture %old_region_occ_y, i1 %c1, i1 %c2, i1 %c3, i1 %c4, i1 %c5, i1 %c6, i1 %c7, i1 %c8, i1 %c9, i1 %c10, i1 %c11, i1 %c12) nounwind ssp {
entry:
br i1 %c1, label %bb.i, label %my_malloc.exit
@@ -33,7 +33,7 @@ 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]
+ %.pre.i58 = load ptr, ptr @net, align 4 ; <ptr> [#uses=1]
br label %bb17.i78
bb1.i61: ; preds = %bb4.preheader.i, %bb1.i61
@@ -58,19 +58,19 @@ 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]
+ %0 = load ptr, ptr @net, align 4 ; <ptr> [#uses=1]
br i1 %c9, 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]
+ %1 = load ptr, ptr @net, align 4 ; <ptr> [#uses=1]
br i1 %c10, 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]
+ %.pre41.i.rle244 = phi ptr [ %.pre41.i, %bb15.preheader.i ], [ %0, %my_malloc.exit.i70 ], [ %1, %bb9.i71 ] ; <ptr> [#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]
+ %.pre41.i = phi ptr [ %.pre41.i.rle244, %bb16.i77 ], [ %.pre.i58, %my_calloc.exit5.i ] ; <ptr> [#uses=1]
br i1 %c11, label %bb4.preheader.i, label %alloc_and_load_unique_pin_list.exit
bb4.preheader.i: ; preds = %bb17.i78
@@ -80,7 +80,7 @@ alloc_and_load_unique_pin_list.exit: ; preds = %bb17.i78
ret void
}
-define void @read_net(i8* %net_file, i1 %c1, i1 %c2, i1 %c3, i1 %c4, i1 %c5) nounwind ssp {
+define void @read_net(ptr %net_file, i1 %c1, i1 %c2, i1 %c3, i1 %c4, i1 %c5) nounwind ssp {
entry:
br i1 %c1, label %bb3.us.us.i, label %bb6.preheader
@@ -98,15 +98,14 @@ bb.i34: ; preds = %bb
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]
+ %malloccall = tail call ptr @malloc(i64 %mallocsize) ; <ptr> [#uses=1]
br i1 %c4, 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
+ store ptr %malloccall, ptr @net, align 4
br i1 %c5, label %bb.i7.i40, label %my_malloc.exit8.i
bb.i7.i40: ; preds = %my_malloc.exit2.i
@@ -119,4 +118,4 @@ bb7: ; preds = %bb6.preheader
unreachable
}
-declare noalias i8* @malloc(i64)
+declare noalias ptr @malloc(i64)
diff --git a/llvm/test/Transforms/GlobalOpt/2009-11-16-BrokenPerformHeapAllocSRoA.ll b/llvm/test/Transforms/GlobalOpt/2009-11-16-BrokenPerformHeapAllocSRoA.ll
index 0a62cba7945f6..d8b096e25374c 100644
--- a/llvm/test/Transforms/GlobalOpt/2009-11-16-BrokenPerformHeapAllocSRoA.ll
+++ b/llvm/test/Transforms/GlobalOpt/2009-11-16-BrokenPerformHeapAllocSRoA.ll
@@ -4,23 +4,22 @@ target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f3
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* }
+%struct.strchartype = type { ptr, ptr, ptr }
- at hashheader = internal global %struct.hashheader zeroinitializer, align 32 ; <%struct.hashheader*> [#uses=1]
- at chartypes = internal global %struct.strchartype* null ; <%struct.strchartype**> [#uses=1]
+ at hashheader = internal global %struct.hashheader zeroinitializer, align 32 ; <ptr> [#uses=1]
+ at chartypes = internal global ptr null ; <ptr> [#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]
+ %1 = load i32, ptr getelementptr inbounds (%struct.hashheader, ptr @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
+ %3 = mul i64 %2, ptrtoint (ptr getelementptr (%struct.strchartype, ptr null, i64 1) to i64) ; <i64> [#uses=1]
+ %4 = tail call ptr @malloc(i64 %3) ; <ptr> [#uses=1]
+; CHECK-NOT: call ptr @malloc(i64
+ store ptr %4, ptr @chartypes, align 8
ret void
}
-declare noalias i8* @malloc(i64) allockind("alloc,uninitialized")
+declare noalias ptr @malloc(i64) allockind("alloc,uninitialized")
diff --git a/llvm/test/Transforms/GlobalOpt/2009-11-16-MallocSingleStoreToGlobalVar.ll b/llvm/test/Transforms/GlobalOpt/2009-11-16-MallocSingleStoreToGlobalVar.ll
index d4deb23262378..00ca2692441a1 100644
--- a/llvm/test/Transforms/GlobalOpt/2009-11-16-MallocSingleStoreToGlobalVar.ll
+++ b/llvm/test/Transforms/GlobalOpt/2009-11-16-MallocSingleStoreToGlobalVar.ll
@@ -7,24 +7,23 @@
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"
- at TOP = internal global i64* null ; <i64**> [#uses=2]
-; CHECK: @TOP = internal unnamed_addr global i64* null
- at channelColumns = internal global i64 0 ; <i64*> [#uses=2]
+ at TOP = internal global ptr null ; <ptr> [#uses=2]
+; CHECK: @TOP = internal unnamed_addr global ptr null
+ at channelColumns = internal global i64 0 ; <ptr> [#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]
+ store i64 2335, ptr @channelColumns, align 8
+ %1 = load i64, ptr @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
+ %4 = call noalias ptr @malloc(i64 %3) nounwind ; <ptr> [#uses=1]
+; CHECK: call noalias ptr @malloc
+ store ptr %4, ptr @TOP, align 8
+ %5 = load ptr, ptr @TOP, align 8 ; <ptr> [#uses=1]
+ %6 = getelementptr inbounds i64, ptr %5, i64 13 ; <ptr> [#uses=1]
+ store i64 0, ptr %6, align 8
ret void
}
-declare noalias i8* @malloc(i64) nounwind
+declare noalias ptr @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
index fe18deb165864..e0ff0eeebc193 100644
--- a/llvm/test/Transforms/GlobalOpt/2010-02-25-MallocPromote.ll
+++ b/llvm/test/Transforms/GlobalOpt/2010-02-25-MallocPromote.ll
@@ -3,16 +3,15 @@
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"
- at fixLRBT = internal global i32* null ; <i32**> [#uses=2]
+ at fixLRBT = internal global ptr null ; <ptr> [#uses=2]
-declare noalias i8* @malloc(i32)
+declare noalias ptr @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
+ %malloccall.i10 = call ptr @malloc(i32 16) nounwind ; <ptr> [#uses=1]
+ store ptr %malloccall.i10, ptr @fixLRBT, align 8
+ %0 = load ptr, ptr @fixLRBT, align 8 ; <ptr> [#uses=0]
+ %A = load i32, ptr %0
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
index 73766aa63a4d7..e9ff2a94d1709 100644
--- a/llvm/test/Transforms/GlobalOpt/2010-02-26-MallocSROA.ll
+++ b/llvm/test/Transforms/GlobalOpt/2010-02-26-MallocSROA.ll
@@ -5,23 +5,22 @@ target triple = "x86_64-unknown-linux-gnu"
%struct.xyz = type { double, i32 }
- at Y = internal global %struct.xyz* null ; <%struct.xyz**> [#uses=2]
- at numf2s = external global i32 ; <i32*> [#uses=1]
+ at Y = internal global ptr null ; <ptr> [#uses=2]
+ at numf2s = external global i32 ; <ptr> [#uses=1]
define fastcc void @init_net() nounwind {
entry:
- %0 = load i32, i32* @numf2s, align 4 ; <i32> [#uses=1]
+ %0 = load i32, ptr @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
+ %malloccall3 = tail call ptr @malloc(i32 %mallocsize2) nounwind ; <ptr> [#uses=1]
+ store ptr %malloccall3, ptr @Y, align 8
ret void
}
-define fastcc void @load_train(i8* %trainfile, i32 %mode, i32 %objects) nounwind {
+define fastcc void @load_train(ptr %trainfile, i32 %mode, i32 %objects) nounwind {
entry:
- %0 = load %struct.xyz*, %struct.xyz** @Y, align 8 ; <%struct.xyz*> [#uses=0]
+ %0 = load ptr, ptr @Y, align 8 ; <ptr> [#uses=0]
ret void
}
-declare noalias i8* @malloc(i32)
+declare noalias ptr @malloc(i32)
diff --git a/llvm/test/Transforms/GlobalOpt/2010-10-19-WeakOdr.ll b/llvm/test/Transforms/GlobalOpt/2010-10-19-WeakOdr.ll
index 4ab20f009629e..7f705835284f4 100644
--- a/llvm/test/Transforms/GlobalOpt/2010-10-19-WeakOdr.ll
+++ b/llvm/test/Transforms/GlobalOpt/2010-10-19-WeakOdr.ll
@@ -6,10 +6,10 @@
@SomeVar = weak_odr global i32 0
- at llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [ { i32, void ()*, i8* } { i32 65535, void ()* @CTOR, i8* null } ]
+ at llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [ { i32, ptr, ptr } { i32 65535, ptr @CTOR, ptr null } ]
define internal void @CTOR() {
- store i32 23, i32* @SomeVar
+ store i32 23, ptr @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
index 964df298734d7..ed884dce3af1a 100644
--- a/llvm/test/Transforms/GlobalOpt/2011-04-09-EmptyGlobalCtors.ll
+++ b/llvm/test/Transforms/GlobalOpt/2011-04-09-EmptyGlobalCtors.ll
@@ -1,5 +1,5 @@
; RUN: opt < %s -passes=globalopt -disable-output
-%0 = type { i32, void ()*, i8* }
+%0 = type { i32, ptr, ptr }
@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
index 6175b6227240b..c7bb3e86c95c5 100644
--- a/llvm/test/Transforms/GlobalOpt/2012-05-11-blockaddress.ll
+++ b/llvm/test/Transforms/GlobalOpt/2012-05-11-blockaddress.ll
@@ -3,14 +3,14 @@
; from promoting @f to fastcc.
; CHECK-LABEL: define{{.*}}fastcc{{.*}}@f(
-define internal i8* @f() {
- ret i8* blockaddress(@f, %L1)
+define internal ptr @f() {
+ ret ptr blockaddress(@f, %L1)
L1:
- ret i8* null
+ ret ptr null
}
define void @g() {
; CHECK: call{{.*}}fastcc{{.*}}@f
- %p = call i8* @f()
+ %p = call ptr @f()
ret void
}
diff --git a/llvm/test/Transforms/GlobalOpt/2021-08-02-CastStoreOnceP2I.ll b/llvm/test/Transforms/GlobalOpt/2021-08-02-CastStoreOnceP2I.ll
index adf18b90bc602..0e3a9c6783632 100644
--- a/llvm/test/Transforms/GlobalOpt/2021-08-02-CastStoreOnceP2I.ll
+++ b/llvm/test/Transforms/GlobalOpt/2021-08-02-CastStoreOnceP2I.ll
@@ -3,17 +3,17 @@
; This tests the assignemnt of non-pointer to global address
; (assert due to D106589).
- at a162 = internal global i16* null, align 1
+ at a162 = internal global ptr null, align 1
define void @f363() {
; CHECK-LABEL: @f363(
; CHECK-NEXT: entry:
-; CHECK-NEXT: [[TMP0:%.*]] = load i16*, i16** @a162, align 1
-; CHECK-NEXT: store i16 0, i16* bitcast (i16** @a162 to i16*), align 1
+; CHECK-NEXT: [[TMP0:%.*]] = load ptr, ptr @a162, align 1
+; CHECK-NEXT: store i16 0, ptr @a162, align 1
; CHECK-NEXT: ret void
;
entry:
- %0 = load i16*, i16** @a162, align 1
- store i16 0, i16* bitcast (i16** @a162 to i16*), align 1
+ %0 = load ptr, ptr @a162, align 1
+ store i16 0, ptr @a162, align 1
ret void
}
diff --git a/llvm/test/Transforms/GlobalOpt/2021-08-03-StoreOnceLoadMultiCasts.ll b/llvm/test/Transforms/GlobalOpt/2021-08-03-StoreOnceLoadMultiCasts.ll
index e5f5c043b767c..6ab867db57511 100644
--- a/llvm/test/Transforms/GlobalOpt/2021-08-03-StoreOnceLoadMultiCasts.ll
+++ b/llvm/test/Transforms/GlobalOpt/2021-08-03-StoreOnceLoadMultiCasts.ll
@@ -1,27 +1,26 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt -passes=globalopt -S < %s | FileCheck %s
- at g = internal global i32* null, align 8
+ at g = internal global ptr null, align 8
define signext i32 @f() local_unnamed_addr {
; CHECK-LABEL: @f(
; CHECK-NEXT: entry:
; CHECK-NEXT: call void @f1()
-; CHECK-NEXT: store i32 1, i32* bitcast ([4 x i8]* @g.body to i32*), align 4
+; CHECK-NEXT: store i32 1, ptr @g.body, align 4
; CHECK-NEXT: call void @f1()
-; CHECK-NEXT: store i8 2, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @g.body, i32 0, i32 0), align 4
+; CHECK-NEXT: store i8 2, ptr @g.body, align 4
; CHECK-NEXT: ret i32 1
;
entry:
- %call = call i8* @malloc(i64 4)
- %b = bitcast i8* %call to i32*
- store i32* %b, i32** @g, align 8
+ %call = call ptr @malloc(i64 4)
+ store ptr %call, ptr @g, align 8
call void @f1()
- %0 = load i32*, i32** @g, align 8
- store i32 1, i32* %0, align 4
+ %0 = load ptr, ptr @g, align 8
+ store i32 1, ptr %0, align 4
call void @f1()
- %1 = load i8*, i8** bitcast (i32** @g to i8**), align 8
- store i8 2, i8* %1, align 4
+ %1 = load ptr, ptr @g, align 8
+ store i8 2, ptr %1, align 4
ret i32 1
}
@@ -29,15 +28,15 @@ define signext i32 @main() {
; CHECK-LABEL: @main(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[CALL:%.*]] = call signext i32 @f()
-; CHECK-NEXT: [[TMP0:%.*]] = load i32, i32* bitcast ([4 x i8]* @g.body to i32*), align 4
+; CHECK-NEXT: [[TMP0:%.*]] = load i32, ptr @g.body, align 4
; CHECK-NEXT: ret i32 [[TMP0]]
;
entry:
%call = call signext i32 @f()
- %0 = load i32*, i32** @g, align 8
- %1 = load i32, i32* %0, align 4
+ %0 = load ptr, ptr @g, align 8
+ %1 = load i32, ptr %0, align 4
ret i32 %1
}
-declare noalias align 16 i8* @malloc(i64) allockind("alloc,uninitialized") allocsize(0)
+declare noalias align 16 ptr @malloc(i64) allockind("alloc,uninitialized") allocsize(0)
declare void @f1()
diff --git a/llvm/test/Transforms/GlobalOpt/GSROA-section.ll b/llvm/test/Transforms/GlobalOpt/GSROA-section.ll
index 9e6e1ff998ae2..97a9cc08c649e 100644
--- a/llvm/test/Transforms/GlobalOpt/GSROA-section.ll
+++ b/llvm/test/Transforms/GlobalOpt/GSROA-section.ll
@@ -12,8 +12,8 @@
@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)
+ %A = load i32, ptr getelementptr ({ i32, i32 }, ptr @struct, i32 0, i32 0)
+ %B = load i32, ptr @array
; Use the loaded values, so they won't get removed completely
%R = add i32 %A, %B
ret i32 %R
@@ -22,8 +22,8 @@ define i32 @foo() {
; We put stores in a
diff erent 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)
+ store i32 %R, ptr @array
+ store i32 %R, ptr getelementptr ({ i32, i32 }, ptr @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
index 59781ac543ece..037441dbc9373 100644
--- a/llvm/test/Transforms/GlobalOpt/MallocSROA-section-no-null-opt.ll
+++ b/llvm/test/Transforms/GlobalOpt/MallocSROA-section-no-null-opt.ll
@@ -4,31 +4,30 @@
%struct.xyz = type { double, i32 }
- at Y = internal global %struct.xyz* null ,section ".foo" ; <%struct.xyz**> [#uses=2]
- at numf2s = external global i32 ; <i32*> [#uses=1]
+ at Y = internal global ptr null ,section ".foo" ; <ptr> [#uses=2]
+ at numf2s = external global i32 ; <ptr> [#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
+; CHECK: load i32, ptr @numf2s
+; CHECK: call ptr @malloc
+; CHECK: store ptr {{.*}}, ptr @Y
entry:
- %0 = load i32, i32* @numf2s, align 4 ; <i32> [#uses=1]
+ %0 = load i32, ptr @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
+ %malloccall3 = tail call ptr @malloc(i32 %mallocsize2) ; <ptr> [#uses=1]
+ store ptr %malloccall3, ptr @Y, align 8
ret void
}
-define %struct.xyz* @load_train() #0 {
+define ptr @load_train() #0 {
; CHECK-LABEL: load_train(
-; CHECK: load %struct.xyz*, %struct.xyz** @Y
+; CHECK: load ptr, ptr @Y
entry:
- %0 = load %struct.xyz*, %struct.xyz** @Y, align 8 ; <%struct.xyz*> [#uses=0]
- ret %struct.xyz* %0
+ %0 = load ptr, ptr @Y, align 8 ; <ptr> [#uses=0]
+ ret ptr %0
}
-declare noalias i8* @malloc(i32)
+declare noalias ptr @malloc(i32)
attributes #0 = { null_pointer_is_valid }
diff --git a/llvm/test/Transforms/GlobalOpt/MallocSROA-section.ll b/llvm/test/Transforms/GlobalOpt/MallocSROA-section.ll
index 3925da09efff3..75a83619e95aa 100644
--- a/llvm/test/Transforms/GlobalOpt/MallocSROA-section.ll
+++ b/llvm/test/Transforms/GlobalOpt/MallocSROA-section.ll
@@ -3,23 +3,22 @@
%struct.xyz = type { double, i32 }
- at Y = internal global %struct.xyz* null ,section ".foo" ; <%struct.xyz**> [#uses=2]
- at numf2s = external global i32 ; <i32*> [#uses=1]
+ at Y = internal global ptr null ,section ".foo" ; <ptr> [#uses=2]
+ at numf2s = external global i32 ; <ptr> [#uses=1]
define void @init_net() {
entry:
- %0 = load i32, i32* @numf2s, align 4 ; <i32> [#uses=1]
+ %0 = load i32, ptr @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
+ %malloccall3 = tail call ptr @malloc(i32 %mallocsize2) ; <ptr> [#uses=1]
+ store ptr %malloccall3, ptr @Y, align 8
ret void
}
define void @load_train() {
entry:
- %0 = load %struct.xyz*, %struct.xyz** @Y, align 8 ; <%struct.xyz*> [#uses=0]
+ %0 = load ptr, ptr @Y, align 8 ; <ptr> [#uses=0]
ret void
}
-declare noalias i8* @malloc(i32)
+declare noalias ptr @malloc(i32)
diff --git a/llvm/test/Transforms/GlobalOpt/SROA-section.ll b/llvm/test/Transforms/GlobalOpt/SROA-section.ll
index 013d056d2e83f..ca140db7806d7 100644
--- a/llvm/test/Transforms/GlobalOpt/SROA-section.ll
+++ b/llvm/test/Transforms/GlobalOpt/SROA-section.ll
@@ -11,16 +11,16 @@
@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
+ store double 1.0, ptr @G, align 16
+ store double 2.0, ptr getelementptr (%T, ptr @G, i32 0, i32 1), align 8
+ store double 3.0, ptr getelementptr (%T, ptr @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
+ %V1 = load double, ptr @G, align 16
+ %V2 = load double, ptr getelementptr (%T, ptr @G, i32 0, i32 1), align 8
+ %V3 = load double, ptr getelementptr (%T, ptr @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/address_space_initializer.ll b/llvm/test/Transforms/GlobalOpt/address_space_initializer.ll
index e27d5e3e02991..186fa4808ff17 100644
--- a/llvm/test/Transforms/GlobalOpt/address_space_initializer.ll
+++ b/llvm/test/Transforms/GlobalOpt/address_space_initializer.ll
@@ -16,29 +16,26 @@
; GPU-NOT: @g2 =
define void @a() {
- store i16 3, i16* @g0, align 8
- store i16 5, i16* addrspacecast (i16 addrspace(3)* @g1 to i16*), align 8
- store i16 7, i16* addrspacecast (i16 addrspace(1)* @g2 to i16*), align 8
+ store i16 3, ptr @g0, align 8
+ store i16 5, ptr addrspacecast (ptr addrspace(3) @g1 to ptr), align 8
+ store i16 7, ptr addrspacecast (ptr addrspace(1) @g2 to ptr), align 8
ret void
}
define i8 @get0() {
- %bc = bitcast i16* @g0 to i8*
- %gep = getelementptr i8, i8* %bc, i64 1
- %r = load i8, i8* %gep
+ %gep = getelementptr i8, ptr @g0, i64 1
+ %r = load i8, ptr %gep
ret i8 %r
}
define i8 @get1() {
- %ac = addrspacecast i16 addrspace(3)* @g1 to i16*
- %bc = bitcast i16* %ac to i8*
- %gep = getelementptr i8, i8* %bc, i64 1
- %r = load i8, i8* %gep
+ %ac = addrspacecast ptr addrspace(3) @g1 to ptr
+ %gep = getelementptr i8, ptr %ac, i64 1
+ %r = load i8, ptr %gep
ret i8 %r
}
define i8 @get2() {
- %ac = addrspacecast i16 addrspace(1)* @g2 to i16*
- %bc = bitcast i16* %ac to i8*
- %gep = getelementptr i8, i8* %bc, i64 1
- %r = load i8, i8* %gep
+ %ac = addrspacecast ptr addrspace(1) @g2 to ptr
+ %gep = getelementptr i8, ptr %ac, i64 1
+ %r = load i8, ptr %gep
ret i8 %r
}
diff --git a/llvm/test/Transforms/GlobalOpt/alias-resolve.ll b/llvm/test/Transforms/GlobalOpt/alias-resolve.ll
index efac61200a3ef..064ec57f0bb08 100644
--- a/llvm/test/Transforms/GlobalOpt/alias-resolve.ll
+++ b/llvm/test/Transforms/GlobalOpt/alias-resolve.ll
@@ -1,26 +1,26 @@
; RUN: opt < %s -passes=globalopt -S | FileCheck %s
- at foo1 = alias void (), void ()* @foo2
+ at foo1 = alias void (), ptr @foo2
;; foo2 is dso_local and non-weak. Resolved.
-; CHECK: @foo1 = alias void (), void ()* @bar2
+; CHECK: @foo1 = alias void (), ptr @bar2
- at foo2 = dso_local alias void(), void()* @bar1
+ at foo2 = dso_local alias void(), ptr @bar1
;; bar1 is dso_local and non-weak. Resolved.
-; CHECK: @foo2 = dso_local alias void (), void ()* @bar2
+; CHECK: @foo2 = dso_local alias void (), ptr @bar2
- at bar1 = dso_local alias void (), void ()* @bar2
-; CHECK: @bar1 = dso_local alias void (), void ()* @bar2
+ at bar1 = dso_local alias void (), ptr @bar2
+; CHECK: @bar1 = dso_local alias void (), ptr @bar2
- at weak1 = weak dso_local alias void (), void ()* @bar2
+ at weak1 = weak dso_local alias void (), ptr @bar2
;; weak1 may be replaced with another definition in the linkage unit. Not resolved.
-; CHECK: @weak1 = weak dso_local alias void (), void ()* @bar2
+; CHECK: @weak1 = weak dso_local alias void (), ptr @bar2
- at bar4 = private unnamed_addr constant [2 x i8*] zeroinitializer
- at 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)
+ at bar4 = private unnamed_addr constant [2 x ptr] zeroinitializer
+ at foo4 = weak_odr unnamed_addr alias ptr, getelementptr inbounds ([2 x ptr], ptr @bar4, i32 0, i32 1)
+; CHECK: @foo4 = weak_odr unnamed_addr alias ptr, getelementptr inbounds ([2 x ptr], ptr @bar4, i32 0, i32 1)
- at priva = private alias void (), void ()* @bar5
-; CHECK: @priva = private alias void (), void ()* @bar5
+ at priva = private alias void (), ptr @bar5
+; CHECK: @priva = private alias void (), ptr @bar5
define dso_local void @bar2() {
ret void
@@ -57,7 +57,7 @@ entry:
ret void
}
- at foo3 = dso_local alias void (), void ()* @bar3
+ at foo3 = dso_local alias void (), ptr @bar3
; CHECK-NOT: bar3
define internal void @bar3() {
diff --git a/llvm/test/Transforms/GlobalOpt/alias-used-address-space.ll b/llvm/test/Transforms/GlobalOpt/alias-used-address-space.ll
index daf5acd8446c6..e60d35c599743 100644
--- a/llvm/test/Transforms/GlobalOpt/alias-used-address-space.ll
+++ b/llvm/test/Transforms/GlobalOpt/alias-used-address-space.ll
@@ -7,20 +7,20 @@ target datalayout = "p:32:32:32-p1:16:16:16"
@i = internal addrspace(1) global i8 42
; CHECK: @ia = internal addrspace(1) global i8 42
- at ia = internal alias i8, i8 addrspace(1)* @i
+ at ia = internal alias i8, ptr addrspace(1) @i
- at 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"
+ at llvm.used = appending global [1 x ptr] [ptr addrspacecast (ptr addrspace(1) @ca to ptr)], section "llvm.metadata"
+; CHECK-DAG: @llvm.used = appending global [1 x ptr] [ptr addrspacecast (ptr addrspace(1) @ca to ptr)], section "llvm.metadata"
- at 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"
+ at llvm.compiler.used = appending global [2 x ptr] [ptr addrspacecast(ptr addrspace(1) @ia to ptr), ptr addrspacecast (ptr addrspace(1) @i to ptr)], section "llvm.metadata"
+; CHECK-DAG: @llvm.compiler.used = appending global [1 x ptr] [ptr addrspacecast (ptr addrspace(1) @ia to ptr)], section "llvm.metadata"
- at 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*)]
+ at sameAsUsed = global [1 x ptr] [ptr addrspacecast(ptr addrspace(1) @ca to ptr)]
+; CHECK-DAG: @sameAsUsed = local_unnamed_addr global [1 x ptr] [ptr addrspacecast (ptr addrspace(1) @c to ptr)]
- at ca = internal alias i8, i8 addrspace(1)* @c
-; CHECK: @ca = internal alias i8, i8 addrspace(1)* @c
+ at ca = internal alias i8, ptr addrspace(1) @c
+; CHECK: @ca = internal alias i8, ptr addrspace(1) @c
-define i8 addrspace(1)* @h() {
- ret i8 addrspace(1)* @ca
+define ptr addrspace(1) @h() {
+ ret ptr addrspace(1) @ca
}
diff --git a/llvm/test/Transforms/GlobalOpt/alias-used-section.ll b/llvm/test/Transforms/GlobalOpt/alias-used-section.ll
index e0ef39d8f67bd..ac7263d98ca1f 100644
--- a/llvm/test/Transforms/GlobalOpt/alias-used-section.ll
+++ b/llvm/test/Transforms/GlobalOpt/alias-used-section.ll
@@ -1,8 +1,8 @@
; RUN: opt -S -passes=globalopt < %s | FileCheck %s
@_Z17in_custom_section = internal global i8 42, section "CUSTOM"
- at in_custom_section = internal alias i8, i8* @_Z17in_custom_section
+ at in_custom_section = internal alias i8, ptr @_Z17in_custom_section
; CHECK: @in_custom_section = internal global i8 42, section "CUSTOM"
- at llvm.used = appending global [1 x i8*] [i8* @in_custom_section], section "llvm.metadata"
+ at llvm.used = appending global [1 x ptr] [ptr @in_custom_section], section "llvm.metadata"
diff --git a/llvm/test/Transforms/GlobalOpt/alias-used.ll b/llvm/test/Transforms/GlobalOpt/alias-used.ll
index d8b7a765ed30f..35889c1e59754 100644
--- a/llvm/test/Transforms/GlobalOpt/alias-used.ll
+++ b/llvm/test/Transforms/GlobalOpt/alias-used.ll
@@ -4,46 +4,46 @@
@i = internal global i8 42
; CHECK: @ia = internal global i8 42
- at ia = internal alias i8, i8* @i
+ at ia = internal alias i8, ptr @i
- at 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"
+ at llvm.used = appending global [3 x ptr] [ptr @fa, ptr @f, ptr @ca], section "llvm.metadata"
+; CHECK-DAG: @llvm.used = appending global [3 x ptr] [ptr @ca, ptr @f, ptr @fa], section "llvm.metadata"
- at 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"
+ at llvm.compiler.used = appending global [4 x ptr] [ptr @fa3, ptr @fa, ptr @ia, ptr @i], section "llvm.metadata"
+; CHECK-DAG: @llvm.compiler.used = appending global [2 x ptr] [ptr @fa3, ptr @ia], section "llvm.metadata"
- at 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]
+ at sameAsUsed = global [3 x ptr] [ptr @fa, ptr @f, ptr @ca]
+; CHECK-DAG: @sameAsUsed = local_unnamed_addr global [3 x ptr] [ptr @f, ptr @f, ptr @c]
- at other = global i32* bitcast (void ()* @fa to i32*)
-; CHECK-DAG: @other = local_unnamed_addr global i32* bitcast (void ()* @f to i32*)
+ at other = global ptr @fa
+; CHECK-DAG: @other = local_unnamed_addr global ptr @f
- at fa = internal alias void (), void ()* @f
-; CHECK: @fa = internal alias void (), void ()* @f
+ at fa = internal alias void (), ptr @f
+; CHECK: @fa = internal alias void (), ptr @f
- at fa2 = internal alias void (), void ()* @f
+ at fa2 = internal alias void (), ptr @f
; CHECK-NOT: @fa2
- at fa3 = internal alias void (), void ()* @f
+ at fa3 = internal alias void (), ptr @f
; CHECK: @fa3
- at ca = internal alias i8, i8* @c
-; CHECK: @ca = internal alias i8, i8* @c
+ at ca = internal alias i8, ptr @c
+; CHECK: @ca = internal alias i8, ptr @c
define hidden void @f() {
ret void
}
-define i8* @g() {
- ret i8* bitcast (void ()* @fa to i8*);
+define ptr @g() {
+ ret ptr @fa;
}
-define i8* @g2() {
- ret i8* bitcast (void ()* @fa2 to i8*);
+define ptr @g2() {
+ ret ptr @fa2;
}
-define i8* @h() {
- ret i8* @ca
+define ptr @h() {
+ ret ptr @ca
}
; Check that GlobalOpt doesn't try to resolve aliases with GEP operands.
@@ -51,16 +51,16 @@ define i8* @h() {
%struct.S = type { i32, i32, i32 }
@s = global %struct.S { i32 1, i32 2, i32 3 }, align 4
- at alias1 = alias i32, i32* getelementptr inbounds (%struct.S, %struct.S* @s, i64 0, i32 1)
- at alias2 = alias i32, i32* getelementptr inbounds (%struct.S, %struct.S* @s, i64 0, i32 2)
+ at alias1 = alias i32, ptr getelementptr inbounds (%struct.S, ptr @s, i64 0, i32 1)
+ at alias2 = alias i32, ptr getelementptr inbounds (%struct.S, ptr @s, i64 0, i32 2)
-; CHECK: load i32, i32* @alias1, align 4
-; CHECK: load i32, i32* @alias2, align 4
+; CHECK: load i32, ptr @alias1, align 4
+; CHECK: load i32, ptr @alias2, align 4
define i32 @foo1() {
entry:
- %0 = load i32, i32* @alias1, align 4
- %1 = load i32, i32* @alias2, align 4
+ %0 = load i32, ptr @alias1, align 4
+ %1 = load i32, ptr @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
index 86553e4cdf82d..bc36b0e3f0b9f 100644
--- a/llvm/test/Transforms/GlobalOpt/amdgcn-ctor-alloca.ll
+++ b/llvm/test/Transforms/GlobalOpt/amdgcn-ctor-alloca.ll
@@ -1,17 +1,17 @@
; RUN: opt -data-layout=A5 -passes=globalopt %s -S -o - | FileCheck %s
; CHECK-NOT: @g
- at g = internal addrspace(1) global i32* zeroinitializer
+ at g = internal addrspace(1) global ptr zeroinitializer
-; CHECK: @llvm.global_ctors = appending global [0 x { i32, void ()*, i8* }] zeroinitializer
- at llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }]
- [{ i32, void ()*, i8* } { i32 65535, void ()* @ctor, i8* null }]
+; CHECK: @llvm.global_ctors = appending global [0 x { i32, ptr, ptr }] zeroinitializer
+ at llvm.global_ctors = appending global [1 x { i32, ptr, ptr }]
+ [{ i32, ptr, ptr } { i32 65535, ptr @ctor, ptr 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
+ %tmp = addrspacecast ptr addrspace(5) %addr to ptr
+ store ptr %tmp, ptr 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
index ad5fdca611fe2..369ec759e395f 100644
--- a/llvm/test/Transforms/GlobalOpt/array-elem-refs.ll
+++ b/llvm/test/Transforms/GlobalOpt/array-elem-refs.ll
@@ -4,16 +4,16 @@ target triple = "x86_64-unknown-linux-gnu"
%struct.S = type { i8, i8 }
- at c = internal global i8** bitcast (i8* getelementptr (i8, i8* bitcast ([8 x i8*]* @b to i8*), i64 48) to i8**), align 8
- at 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
+ at c = internal global ptr getelementptr (i8, ptr @b, i64 48), align 8
+ at b = internal global [8 x ptr] [ptr null, ptr null, ptr null, ptr null, ptr null, ptr null, ptr @a, ptr getelementptr (i8, ptr @a, 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
+ %0 = load ptr, ptr @c, align 8
+ %1 = load ptr, ptr %0, align 8
+ %2 = load i8, ptr %1, align 1
ret i8 %2
; CHECK-LABEL: @foo
@@ -24,7 +24,7 @@ entry:
define i32 @main() #0 {
entry:
%retval = alloca i32, align 4
- store i32 0, i32* %retval
+ store i32 0, ptr %retval
ret i32 0
}
diff --git a/llvm/test/Transforms/GlobalOpt/assume.ll b/llvm/test/Transforms/GlobalOpt/assume.ll
index c88bf3b8a0836..4aee636b96789 100644
--- a/llvm/test/Transforms/GlobalOpt/assume.ll
+++ b/llvm/test/Transforms/GlobalOpt/assume.ll
@@ -2,7 +2,7 @@
; CHECK: @tmp = local_unnamed_addr global i32 42
- at llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__I_a, i8* null }]
+ at llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__I_a, ptr null }]
@tmp = global i32 0
define i32 @TheAnswerToLifeTheUniverseAndEverything() {
@@ -12,7 +12,7 @@ define i32 @TheAnswerToLifeTheUniverseAndEverything() {
define void @_GLOBAL__I_a() {
enter:
%tmp1 = call i32 @TheAnswerToLifeTheUniverseAndEverything()
- store i32 %tmp1, i32* @tmp
+ store i32 %tmp1, ptr @tmp
%cmp = icmp eq i32 %tmp1, 42
call void @llvm.assume(i1 %cmp)
ret void
diff --git a/llvm/test/Transforms/GlobalOpt/atexit.ll b/llvm/test/Transforms/GlobalOpt/atexit.ll
index 737ff685d2270..e6baeb770f0be 100644
--- a/llvm/test/Transforms/GlobalOpt/atexit.ll
+++ b/llvm/test/Transforms/GlobalOpt/atexit.ll
@@ -1,6 +1,6 @@
; RUN: opt < %s -passes=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 {
+define internal i32 @__cxa_atexit(ptr nocapture %func, ptr nocapture %arg, ptr nocapture %dso_handle) nounwind readnone optsize noimplicitfloat {
unreachable
}
diff --git a/llvm/test/Transforms/GlobalOpt/atomic.ll b/llvm/test/Transforms/GlobalOpt/atomic.ll
index 3d1f395606b1d..1145b9a6f6e2f 100644
--- a/llvm/test/Transforms/GlobalOpt/atomic.ll
+++ b/llvm/test/Transforms/GlobalOpt/atomic.ll
@@ -8,19 +8,19 @@
define void @test1() {
entry:
- %0 = load atomic i8, i8* bitcast (i64* @GV1 to i8*) acquire, align 8
+ %0 = load atomic i8, ptr @GV1 acquire, align 8
ret void
}
; PR17163
define void @test2a() {
entry:
- store atomic i32 10, i32* @GV2 seq_cst, align 4
+ store atomic i32 10, ptr @GV2 seq_cst, align 4
ret void
}
define i32 @test2b() {
entry:
- %atomic-load = load atomic i32, i32* @GV2 seq_cst, align 4
+ %atomic-load = load atomic i32, ptr @GV2 seq_cst, align 4
ret i32 %atomic-load
}
@@ -29,6 +29,6 @@ define i64 @test3() {
; CHECK-LABEL: @test3
; CHECK: ret i64 1
- %val = load atomic i64, i64* @GV1 acquire, align 8
+ %val = load atomic i64, ptr @GV1 acquire, align 8
ret i64 %val
}
diff --git a/llvm/test/Transforms/GlobalOpt/available_externally_global_ctors.ll b/llvm/test/Transforms/GlobalOpt/available_externally_global_ctors.ll
index eee1e24bbc065..f1f0075e7779b 100644
--- a/llvm/test/Transforms/GlobalOpt/available_externally_global_ctors.ll
+++ b/llvm/test/Transforms/GlobalOpt/available_externally_global_ctors.ll
@@ -4,14 +4,14 @@ target triple = "x86_64-apple-macosx10.11.0"
; RUN: opt -S -passes=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 }]
+; CHECK: @llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @foo_static_init, ptr null }]
- at llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @foo_static_init, i8* null }]
- at foo_external = available_externally global void ()* null
+ at llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @foo_static_init, ptr null }]
+ at foo_external = available_externally global ptr null
define internal void @foo_static_init() {
entry:
- store void ()* @foo_impl, void ()** @foo_external
+ store ptr @foo_impl, ptr @foo_external
ret void
}
diff --git a/llvm/test/Transforms/GlobalOpt/basictest.ll b/llvm/test/Transforms/GlobalOpt/basictest.ll
index ee8ad33eb8d08..6d7fcdd96dfda 100644
--- a/llvm/test/Transforms/GlobalOpt/basictest.ll
+++ b/llvm/test/Transforms/GlobalOpt/basictest.ll
@@ -1,9 +1,9 @@
; RUN: opt < %s -passes=globalopt -S | FileCheck %s
; CHECK-NOT: global
- at X = internal global i32 4 ; <i32*> [#uses=1]
+ at X = internal global i32 4 ; <ptr> [#uses=1]
define i32 @foo() {
- %V = load i32, i32* @X ; <i32> [#uses=1]
+ %V = load i32, ptr @X ; <i32> [#uses=1]
ret i32 %V
}
diff --git a/llvm/test/Transforms/GlobalOpt/blockaddress.ll b/llvm/test/Transforms/GlobalOpt/blockaddress.ll
index 8e22b7b8d09e2..b0083334eef4f 100644
--- a/llvm/test/Transforms/GlobalOpt/blockaddress.ll
+++ b/llvm/test/Transforms/GlobalOpt/blockaddress.ll
@@ -1,6 +1,6 @@
; RUN: opt < %s -passes=globalopt -S | FileCheck %s
- at x = internal global i8* zeroinitializer
+ at x = internal global ptr zeroinitializer
define void @f() {
; CHECK-LABEL: @f(
@@ -8,7 +8,7 @@ define void @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
+ store ptr blockaddress(@g, %here), ptr @x, align 8
ret void
}
diff --git a/llvm/test/Transforms/GlobalOpt/calloc-promote.ll b/llvm/test/Transforms/GlobalOpt/calloc-promote.ll
index 9983bc66965fd..c369ed9b9fc11 100644
--- a/llvm/test/Transforms/GlobalOpt/calloc-promote.ll
+++ b/llvm/test/Transforms/GlobalOpt/calloc-promote.ll
@@ -1,21 +1,19 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt -passes=globalopt -S < %s | FileCheck %s
- at g = internal global i32* null, align 8
+ at g = internal global ptr null, align 8
define signext i32 @f() local_unnamed_addr {
; CHECK-LABEL: @f(
; CHECK-NEXT: entry:
-; CHECK-NEXT: call void @llvm.memset.p0i8.i64(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @g.body, i32 0, i32 0), i8 0, i64 4, i1 false)
-; CHECK-NEXT: store i16 -1, i16* bitcast ([4 x i8]* @g.body to i16*), align 2
+; CHECK-NEXT: call void @llvm.memset.p0.i64(ptr @g.body, i8 0, i64 4, i1 false)
+; CHECK-NEXT: store i16 -1, ptr @g.body, align 2
; CHECK-NEXT: ret i32 0
;
entry:
- %call = call i8* @calloc(i64 1, i64 4)
- %b = bitcast i8* %call to i32*
- store i32* %b, i32** @g, align 8
- %b2 = bitcast i8* %call to i16*
- store i16 -1, i16* %b2
+ %call = call ptr @calloc(i64 1, i64 4)
+ store ptr %call, ptr @g, align 8
+ store i16 -1, ptr %call
ret i32 0
}
@@ -24,26 +22,26 @@ define signext i32 @main() {
; CHECK-NEXT: entry:
; CHECK-NEXT: [[CALL:%.*]] = call signext i32 @f()
; CHECK-NEXT: call void @f1()
-; CHECK-NEXT: store i32 1, i32* bitcast ([4 x i8]* @g.body to i32*), align 4
+; CHECK-NEXT: store i32 1, ptr @g.body, align 4
; CHECK-NEXT: call void @f1()
-; CHECK-NEXT: store i8 2, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @g.body, i32 0, i32 0), align 4
+; CHECK-NEXT: store i8 2, ptr @g.body, align 4
; CHECK-NEXT: call void @f1()
-; CHECK-NEXT: [[RES:%.*]] = load i32, i32* bitcast ([4 x i8]* @g.body to i32*), align 4
+; CHECK-NEXT: [[RES:%.*]] = load i32, ptr @g.body, align 4
; CHECK-NEXT: ret i32 [[RES]]
;
entry:
%call = call signext i32 @f()
call void @f1()
- %v0 = load i32*, i32** @g, align 8
- store i32 1, i32* %v0, align 4
+ %v0 = load ptr, ptr @g, align 8
+ store i32 1, ptr %v0, align 4
call void @f1()
- %v1 = load i8*, i8** bitcast (i32** @g to i8**), align 8
- store i8 2, i8* %v1, align 4
+ %v1 = load ptr, ptr @g, align 8
+ store i8 2, ptr %v1, align 4
call void @f1()
- %v2 = load i32*, i32** @g, align 8
- %res = load i32, i32* %v2, align 4
+ %v2 = load ptr, ptr @g, align 8
+ %res = load i32, ptr %v2, align 4
ret i32 %res
}
-declare noalias align 16 i8* @calloc(i64, i64) allockind("alloc,zeroed") allocsize(0,1)
+declare noalias align 16 ptr @calloc(i64, i64) allockind("alloc,zeroed") allocsize(0,1)
declare void @f1()
diff --git a/llvm/test/Transforms/GlobalOpt/coldcc_stress_test.ll b/llvm/test/Transforms/GlobalOpt/coldcc_stress_test.ll
index ad289d835a555..35c5b30bc2643 100644
--- a/llvm/test/Transforms/GlobalOpt/coldcc_stress_test.ll
+++ b/llvm/test/Transforms/GlobalOpt/coldcc_stress_test.ll
@@ -1,38 +1,38 @@
; RUN: opt < %s -passes=globalopt -S -enable-coldcc-stress-test -mtriple=powerpc64le-unknown-linux-gnu | FileCheck %s -check-prefix=COLDCC
; RUN: opt < %s -passes=globalopt -S | FileCheck %s -check-prefix=CHECK
-define internal i32 @callee_default(i32* %m) {
+define internal i32 @callee_default(ptr %m) {
; COLDCC-LABEL: define internal coldcc i32 @callee_default
; CHECK-LABEL: define internal fastcc i32 @callee_default
- %v = load i32, i32* %m
+ %v = load i32, ptr %m
ret i32 %v
}
-define internal fastcc i32 @callee_fastcc(i32* %m) {
+define internal fastcc i32 @callee_fastcc(ptr %m) {
; COLDCC-LABEL: define internal fastcc i32 @callee_fastcc
; CHECK-LABEL: define internal fastcc i32 @callee_fastcc
- %v = load i32, i32* %m
+ %v = load i32, ptr %m
ret i32 %v
}
-define internal coldcc i32 @callee_coldcc(i32* %m) {
+define internal coldcc i32 @callee_coldcc(ptr %m) {
; COLDCC-LABEL: define internal coldcc i32 @callee_coldcc
; CHECK-LABEL: define internal coldcc i32 @callee_coldcc
- %v = load i32, i32* %m
+ %v = load i32, ptr %m
ret i32 %v
}
-define i32 @callee(i32* %m) {
- %v = load i32, i32* %m
+define i32 @callee(ptr %m) {
+ %v = load i32, ptr %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)
+ call i32 @callee_default(ptr %m)
+ call fastcc i32 @callee_fastcc(ptr %m)
+ call coldcc i32 @callee_coldcc(ptr %m)
+ call i32 @callee(ptr %m)
ret void
}
diff --git a/llvm/test/Transforms/GlobalOpt/compiler-used.ll b/llvm/test/Transforms/GlobalOpt/compiler-used.ll
index e50e17d8df5a9..1e103b802cda1 100644
--- a/llvm/test/Transforms/GlobalOpt/compiler-used.ll
+++ b/llvm/test/Transforms/GlobalOpt/compiler-used.ll
@@ -7,10 +7,10 @@ define void @foo() {
ret void
}
- at llvm.used = appending global [1 x i8*] [i8* bitcast (void ()* @foo to i8*)], section "llvm.metadata"
+ at llvm.used = appending global [1 x ptr] [ptr @foo], section "llvm.metadata"
- at llvm.compiler.used = appending global [1 x i8*] [i8* bitcast (void ()* @foo to i8*)], section "llvm.metadata"
+ at llvm.compiler.used = appending global [1 x ptr] [ptr @foo], 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: @llvm.used = appending global [1 x ptr] [ptr @foo], section "llvm.metadata"
; CHECK-NOT: @llvm.compiler.used
diff --git a/llvm/test/Transforms/GlobalOpt/const-return-status-atomic.ll b/llvm/test/Transforms/GlobalOpt/const-return-status-atomic.ll
index acc161edfc138..9bc1e5a4ac52f 100644
--- a/llvm/test/Transforms/GlobalOpt/const-return-status-atomic.ll
+++ b/llvm/test/Transforms/GlobalOpt/const-return-status-atomic.ll
@@ -13,7 +13,7 @@ define void @test1() local_unnamed_addr {
; CHECK-LABEL: @test1
; CHECK-NEXT: ret void
- %val = load atomic i8, i8* bitcast (i64* @GV1 to i8*) acquire, align 8
+ %val = load atomic i8, ptr @GV1 acquire, align 8
ret void
}
@@ -21,6 +21,6 @@ define i64 @test2() local_unnamed_addr {
; CHECK-LABEL: @test2
; CHECK-NEXT: ret i64 1
- %val = load atomic i64, i64* @GV1 acquire, align 8
+ %val = load atomic i64, ptr @GV1 acquire, align 8
ret i64 %val
}
diff --git a/llvm/test/Transforms/GlobalOpt/const-return-status.ll b/llvm/test/Transforms/GlobalOpt/const-return-status.ll
index 6d4c70b2102ec..3fe42c20a3482 100644
--- a/llvm/test/Transforms/GlobalOpt/const-return-status.ll
+++ b/llvm/test/Transforms/GlobalOpt/const-return-status.ll
@@ -9,7 +9,7 @@
; CHECK: entry:
; CHECK-NEXT: %call = call i32 @f(i32 0)
-; CHECK-NEXT: call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 bitcast (i32* @dst to i8*), i8* align 4 bitcast ([1 x i32]* @src to i8*), i64 1, i1 false)
+; CHECK-NEXT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 @dst, ptr align 4 @src, i64 1, i1 false)
; CHECK-NEXT: ret void
@src = internal unnamed_addr global [1 x i32] zeroinitializer, align 4
@@ -17,12 +17,12 @@
define dso_local void @d() local_unnamed_addr {
entry:
- %0 = load i32, i32* getelementptr inbounds ([1 x i32], [1 x i32]* @src, i64 0, i64 0), align 4
+ %0 = load i32, ptr @src, align 4
%call = call i32 @f(i32 %0)
- call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 bitcast (i32* @dst to i8*), i8* align 4 bitcast ([1 x i32]* @src to i8*), i64 1, i1 false)
+ call void @llvm.memcpy.p0.p0.i64(ptr align 4 @dst, ptr align 4 @src, i64 1, i1 false)
ret void
}
declare dso_local i32 @f(i32) local_unnamed_addr
-declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg)
+declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg)
diff --git a/llvm/test/Transforms/GlobalOpt/constantexpr-dangle.ll b/llvm/test/Transforms/GlobalOpt/constantexpr-dangle.ll
index 715db352c8e89..82e7f6449611e 100644
--- a/llvm/test/Transforms/GlobalOpt/constantexpr-dangle.ll
+++ b/llvm/test/Transforms/GlobalOpt/constantexpr-dangle.ll
@@ -6,7 +6,7 @@ define internal float @foo() {
}
define float @bar() {
- %tmp1 = call float (...) bitcast (float ()* @foo to float (...)*)( )
+ %tmp1 = call float (...) @foo( )
%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
index eb9dad15088a1..ca844f63937ca 100644
--- a/llvm/test/Transforms/GlobalOpt/constantfold-initializers.ll
+++ b/llvm/test/Transforms/GlobalOpt/constantfold-initializers.ll
@@ -5,7 +5,7 @@ target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f3
@.str91250 = global [3 x i8] zeroinitializer
; CHECK: @A = local_unnamed_addr global i1 false
- at 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)
+ at A = global i1 icmp ne (i64 sub nsw (i64 ptrtoint (ptr getelementptr inbounds ([3 x i8], ptr @.str91250, i64 0, i64 1) to i64), i64 ptrtoint (ptr @.str91250 to i64)), i64 1)
; PR11352
@@ -15,13 +15,13 @@ target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f3
; PR12642
%PR12642.struct = type { i8 }
@PR12642.s = global <{}> zeroinitializer, align 1
- at PR12642.p = constant %PR12642.struct* bitcast (i8* getelementptr (i8, i8* bitcast (<{}>* @PR12642.s to i8*), i64 1) to %PR12642.struct*), align 8
+ at PR12642.p = constant ptr getelementptr (i8, ptr @PR12642.s, i64 1), 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)
+ store i32 1, ptr @xs
+ %0 = load i32, ptr @xs, align 4
+ store i32 %0, ptr getelementptr inbounds ([2 x i32], ptr @xs, i64 0, i64 1)
ret void
}
@@ -34,50 +34,49 @@ entry:
; CHECK-NOT: @f
; CHECK: @m = local_unnamed_addr global i32 13
-define internal i32 @test2_helper(%closure* %this, i32 %b) {
+define internal i32 @test2_helper(ptr %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
+ %0 = load i32, ptr %this, align 4
+ %add = add nsw i32 %0, %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
+ store i32 4, ptr @f
+ %call = call i32 @test2_helper(ptr @f, i32 9)
+ store i32 %call, ptr @m, align 4
ret void
}
; PR19955
- at dllimportptr = global i32* null, align 4
-; CHECK: @dllimportptr = local_unnamed_addr global i32* null, align 4
+ at dllimportptr = global ptr null, align 4
+; CHECK: @dllimportptr = local_unnamed_addr global ptr null, align 4
@dllimportvar = external dllimport global i32
define internal void @test3() {
entry:
- store i32* @dllimportvar, i32** @dllimportptr, align 4
+ store ptr @dllimportvar, ptr @dllimportptr, align 4
ret void
}
- at dllexportptr = global i32* null, align 4
-; CHECK: @dllexportptr = local_unnamed_addr global i32* @dllexportvar, align 4
+ at dllexportptr = global ptr null, align 4
+; CHECK: @dllexportptr = local_unnamed_addr global ptr @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
+ store i32 20, ptr @dllexportvar, align 4
+ store ptr @dllexportvar, ptr @dllexportptr, align 4
ret void
}
- at threadlocalptr = global i32* null, align 4
-; CHECK: @threadlocalptr = global i32* null, align 4
+ at threadlocalptr = global ptr null, align 4
+; CHECK: @threadlocalptr = global ptr null, align 4
@threadlocalvar = external thread_local global i32
define internal void @test5() {
entry:
- store i32* @threadlocalvar, i32** @threadlocalptr, align 4
+ store ptr @threadlocalvar, ptr @threadlocalptr, align 4
ret void
}
@@ -85,19 +84,19 @@ entry:
@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
+ %load = load { i32, i32 }, ptr @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
+ store i32 %xv1, ptr @test6_v2, align 4
ret void
}
@llvm.global_ctors = appending constant
- [6 x { i32, void ()*, i8* }]
- [{ i32, void ()*, i8* } { i32 65535, void ()* @test1, i8* null },
- { i32, void ()*, i8* } { i32 65535, void ()* @test2, i8* null },
- { i32, void ()*, i8* } { i32 65535, void ()* @test3, i8* null },
- { i32, void ()*, i8* } { i32 65535, void ()* @test4, i8* null },
- { i32, void ()*, i8* } { i32 65535, void ()* @test5, i8* null },
- { i32, void ()*, i8* } { i32 65535, void ()* @test6, i8* null }]
+ [6 x { i32, ptr, ptr }]
+ [{ i32, ptr, ptr } { i32 65535, ptr @test1, ptr null },
+ { i32, ptr, ptr } { i32 65535, ptr @test2, ptr null },
+ { i32, ptr, ptr } { i32 65535, ptr @test3, ptr null },
+ { i32, ptr, ptr } { i32 65535, ptr @test4, ptr null },
+ { i32, ptr, ptr } { i32 65535, ptr @test5, ptr null },
+ { i32, ptr, ptr } { i32 65535, ptr @test6, ptr null }]
diff --git a/llvm/test/Transforms/GlobalOpt/crash-2.ll b/llvm/test/Transforms/GlobalOpt/crash-2.ll
index 3aabb6994a197..fe13faa0a6900 100644
--- a/llvm/test/Transforms/GlobalOpt/crash-2.ll
+++ b/llvm/test/Transforms/GlobalOpt/crash-2.ll
@@ -11,9 +11,9 @@
@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
- at 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
+ at g_271 = internal global [7 x [6 x [5 x ptr]]] [[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 ptr]] [[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 ptr]] [[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 ptr]] [[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 ptr]] [[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 ptr]] [[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 ptr]] [[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
+ %tmp = load i8, ptr @g_71, align 1
ret i32 0
}
diff --git a/llvm/test/Transforms/GlobalOpt/crash.ll b/llvm/test/Transforms/GlobalOpt/crash.ll
index 89200681087b2..980a4ec9db1f3 100644
--- a/llvm/test/Transforms/GlobalOpt/crash.ll
+++ b/llvm/test/Transforms/GlobalOpt/crash.ll
@@ -2,16 +2,16 @@
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 ()*, i8* }
+%0 = type { i32, ptr, ptr }
%struct.btSimdScalar = type { %"union.btSimdScalar::$_14" }
%"union.btSimdScalar::$_14" = type { <4 x float> }
- at _ZL6vTwist = global %struct.btSimdScalar zeroinitializer ; <%struct.btSimdScalar*> [#uses=1]
- at llvm.global_ctors = appending global [1 x %0] [%0 { i32 65535, void ()* @_GLOBAL__I__ZN21btConeTwistConstraintC2Ev, i8* null }] ; <[12 x %0]*> [#uses=0]
+ at _ZL6vTwist = global %struct.btSimdScalar zeroinitializer ; <ptr> [#uses=1]
+ at llvm.global_ctors = appending global [1 x %0] [%0 { i32 65535, ptr @_GLOBAL__I__ZN21btConeTwistConstraintC2Ev, ptr null }] ; <ptr> [#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
+ store float 1.0, ptr getelementptr inbounds (%struct.btSimdScalar, ptr @_ZL6vTwist, i32 0, i32 0, i32 0, i32 3), align 4
ret void
}
@@ -19,39 +19,37 @@ entry:
; PR6760
%T = type { [5 x i32] }
- at switch_inf = internal global %T* null
+ at switch_inf = internal global ptr null
-define void @test(i8* %arch_file, i32 %route_type) {
+define void @test(ptr %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
+ %C = call noalias ptr @malloc(i64 %B) nounwind
+ store ptr %C, ptr @switch_inf, align 8
unreachable
bb.nph.i:
- %scevgep.i539 = getelementptr i8, i8* %C, i64 4
+ %scevgep.i539 = getelementptr i8, ptr %C, i64 4
unreachable
xx:
- %E = load %T*, %T** @switch_inf, align 8
+ %E = load ptr, ptr @switch_inf, align 8
unreachable
}
-declare noalias i8* @malloc(i64) nounwind
+declare noalias ptr @malloc(i64) nounwind
; PR8063
- at permute_bitrev.bitrev = internal global i32* null, align 8
+ at permute_bitrev.bitrev = internal global ptr null, align 8
define void @permute_bitrev() nounwind {
entry:
- %tmp = load i32*, i32** @permute_bitrev.bitrev, align 8
+ %tmp = load ptr, ptr @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
+ %call = call ptr @malloc(i64 %mul)
+ store ptr %call, ptr @permute_bitrev.bitrev, align 8
ret void
}
@@ -60,21 +58,21 @@ entry:
@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)
+ call void @llvm.memset.p0.i64(ptr align 16 @data8, i8 undef, i64 ptrtoint (ptr getelementptr ([8000 x i8], ptr @data8, i64 1, i64 sub (i64 0, i64 ptrtoint (ptr @data8 to i64))) to i64), i1 false)
ret void
}
-declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i1) nounwind
+declare void @llvm.memset.p0.i64(ptr nocapture, i8, i64, i1) nounwind
; PR9856
- at g_52 = internal global i32** null, align 8
- at g_90 = external global i32*, align 8
+ at g_52 = internal global ptr null, align 8
+ at g_90 = external global ptr, 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
+ %tmp4 = load ptr, ptr @g_52, align 8
+ store ptr @g_90, ptr @g_52
+ %cmp17 = icmp ne ptr 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
index 91e30b6a39329..4fdfc222b6759 100644
--- a/llvm/test/Transforms/GlobalOpt/ctor-list-opt-constexpr.ll
+++ b/llvm/test/Transforms/GlobalOpt/ctor-list-opt-constexpr.ll
@@ -2,32 +2,30 @@
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 ()*, i8* }
-%struct.foo = type { i32* }
+%0 = type { i32, ptr, ptr }
+%struct.foo = type { ptr }
%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
- at llvm.global_ctors = appending global [2 x %0] [%0 { i32 65535, void ()* @init1, i8* null }, %0 { i32 65535, void ()* @init2, i8* null }]
+ at llvm.global_ctors = appending global [2 x %0] [%0 { i32 65535, ptr @init1, ptr null }, %0 { i32 65535, ptr @init2, ptr null }]
; 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 xor (i64 ptrtoint (i32* @G to i64), i64 ptrtoint (i32* @H to i64)) to i32*), i32** %tmp, align 8
+ store ptr inttoptr (i64 xor (i64 ptrtoint (ptr @G to i64), i64 ptrtoint (ptr @H to i64)) to ptr), ptr @X, align 8
ret void
}
; CHECK-LABEL: @init1(
-; CHECK: store i32*
+; CHECK: store ptr
; 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
+ store i128 ptrtoint (ptr @G to i128), ptr @X2, align 16
ret void
}
; CHECK-LABEL: @init2(
diff --git a/llvm/test/Transforms/GlobalOpt/ctor-list-opt-inbounds.ll b/llvm/test/Transforms/GlobalOpt/ctor-list-opt-inbounds.ll
index 94982e5c20e53..e990de7178e60 100644
--- a/llvm/test/Transforms/GlobalOpt/ctor-list-opt-inbounds.ll
+++ b/llvm/test/Transforms/GlobalOpt/ctor-list-opt-inbounds.ll
@@ -6,18 +6,18 @@
; CHECK: @H = local_unnamed_addr global i32 2
; CHECK: @I = local_unnamed_addr global i32 2
- at llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [ { i32, void ()*, i8* } { i32 65535, void ()* @CTOR, i8* null } ]
+ at llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [ { i32, ptr, ptr } { i32 65535, ptr @CTOR, ptr null } ]
@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
+ store i32 1, ptr @G
+ store i32 2, ptr @G
+ %t = load i32, ptr @G
+ store i32 %t, ptr @H
+ %s = load i32, ptr @G
+ store i32 %s, ptr @I
ret void
}
diff --git a/llvm/test/Transforms/GlobalOpt/ctor-list-opt.ll b/llvm/test/Transforms/GlobalOpt/ctor-list-opt.ll
index 68db618e1eef3..b0f62afd72c28 100644
--- a/llvm/test/Transforms/GlobalOpt/ctor-list-opt.ll
+++ b/llvm/test/Transforms/GlobalOpt/ctor-list-opt.ll
@@ -1,35 +1,35 @@
; RUN: opt < %s -passes=globalopt -S | FileCheck %s
; CHECK-NOT: CTOR
-%ini = type { i32, void()*, i8* }
+%ini = type { i32, ptr, ptr }
@llvm.global_ctors = appending global [16 x %ini] [
- %ini { i32 65534, void ()* @CTOR1, i8* null },
- %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 65535, void ()* @CTOR14,i8* null },
- %ini { i32 65536, void ()* @CTOR10_EXTERNAL, i8* null },
- %ini { i32 65536, void ()* @CTOR11, i8* null },
- %ini { i32 65537, void ()* @CTOR12, i8* null },
- %ini { i32 2147483647, void ()* null, i8* null }
+ %ini { i32 65534, ptr @CTOR1, ptr null },
+ %ini { i32 65535, ptr @CTOR1, ptr null },
+ %ini { i32 65535, ptr @CTOR1, ptr null },
+ %ini { i32 65535, ptr @CTOR2, ptr null },
+ %ini { i32 65535, ptr @CTOR3, ptr null },
+ %ini { i32 65535, ptr @CTOR4, ptr null },
+ %ini { i32 65535, ptr @CTOR5, ptr null },
+ %ini { i32 65535, ptr @CTOR6, ptr null },
+ %ini { i32 65535, ptr @CTOR7, ptr null },
+ %ini { i32 65535, ptr @CTOR8, ptr null },
+ %ini { i32 65535, ptr @CTOR9, ptr null },
+ %ini { i32 65535, ptr @CTOR14,ptr null },
+ %ini { i32 65536, ptr @CTOR10_EXTERNAL, ptr null },
+ %ini { i32 65536, ptr @CTOR11, ptr null },
+ %ini { i32 65537, ptr @CTOR12, ptr null },
+ %ini { i32 2147483647, ptr null, ptr null }
]
- at G = global i32 0 ; <i32*> [#uses=1]
- at G2 = global i32 0 ; <i32*> [#uses=1]
- at G3 = global i32 -123 ; <i32*> [#uses=2]
- at X = global { i32, [2 x i32] } { i32 0, [2 x i32] [ i32 17, i32 21 ] } ; <{ i32, [2 x i32] }*> [#uses=2]
- at Y = global i32 -1 ; <i32*> [#uses=2]
- at Z = global i32 123 ; <i32*> [#uses=1]
- at D = global double 0.000000e+00 ; <double*> [#uses=1]
- at CTORGV = internal global i1 false ; <i1*> [#uses=2]
- at GA = global i32 0 ; <i32*> [#uses=1]
- at GA14 = global i32 0 ; <i32*> [#uses=1]
+ at G = global i32 0 ; <ptr> [#uses=1]
+ at G2 = global i32 0 ; <ptr> [#uses=1]
+ at G3 = global i32 -123 ; <ptr> [#uses=2]
+ at X = global { i32, [2 x i32] } { i32 0, [2 x i32] [ i32 17, i32 21 ] } ; <ptr> [#uses=2]
+ at Y = global i32 -1 ; <ptr> [#uses=2]
+ at Z = global i32 123 ; <ptr> [#uses=1]
+ at D = global double 0.000000e+00 ; <ptr> [#uses=1]
+ at CTORGV = internal global i1 false ; <ptr> [#uses=2]
+ at GA = global i32 0 ; <ptr> [#uses=1]
+ at GA14 = global i32 0 ; <ptr> [#uses=1]
define internal void @CTOR1() {
ret void
@@ -37,8 +37,8 @@ define internal void @CTOR1() {
define internal void @CTOR2() {
%A = add i32 1, 23 ; <i32> [#uses=1]
- store i32 %A, i32* @G
- store i1 true, i1* @CTORGV
+ store i32 %A, ptr @G
+ store i1 true, ptr @CTORGV
ret void
}
@@ -50,7 +50,7 @@ Cont: ; preds = %0
br i1 %X, label %S, label %T
S: ; preds = %Cont
- store i32 24, i32* @G2
+ store i32 24, ptr @G2
ret void
T: ; preds = %Cont
@@ -58,38 +58,38 @@ T: ; preds = %Cont
}
define internal void @CTOR4() {
- %X = load i32, i32* @G3 ; <i32> [#uses=1]
+ %X = load i32, ptr @G3 ; <i32> [#uses=1]
%Y = add i32 %X, 123 ; <i32> [#uses=1]
- store i32 %Y, i32* @G3
+ store i32 %Y, ptr @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
+ %X.2p = getelementptr inbounds { i32, [2 x i32] }, ptr @X, i32 0, i32 1, i32 0 ; <ptr> [#uses=2]
+ %X.2 = load i32, ptr %X.2p ; <i32> [#uses=1]
+ %X.1p = getelementptr inbounds { i32, [2 x i32] }, ptr @X, i32 0, i32 0 ; <ptr> [#uses=1]
+ store i32 %X.2, ptr %X.1p
+ store i32 42, ptr %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]
+ %A = alloca i32 ; <ptr> [#uses=2]
+ %y = load i32, ptr @Y ; <i32> [#uses=1]
+ store i32 %y, ptr %A
+ %Av = load i32, ptr %A ; <i32> [#uses=1]
%Av1 = add i32 %Av, 1 ; <i32> [#uses=1]
- store i32 %Av1, i32* @Y
+ store i32 %Av1, ptr @Y
ret void
}
define internal void @CTOR7() {
- call void @setto( i32* @Z, i32 0 )
+ call void @setto( ptr @Z, i32 0 )
ret void
}
-define void @setto(i32* %P, i32 %V) {
- store i32 %V, i32* %P
+define void @setto(ptr %P, i32 %V) {
+ store i32 %V, ptr %P
ret void
}
@@ -97,27 +97,24 @@ declare double @cos(double)
define internal void @CTOR8() {
%X = call double @cos( double 0.000000e+00 ) ; <double> [#uses=1]
- store double %X, double* @D
+ store double %X, ptr @D
ret void
}
define i1 @accessor() {
- %V = load i1, i1* @CTORGV ; <i1> [#uses=1]
+ %V = load i1, ptr @CTORGV ; <i1> [#uses=1]
ret i1 %V
}
%struct.A = type { i32 }
-%struct.B = type { i32 (...)**, i8*, [4 x i8] }
+%struct.B = type { ptr, ptr, [4 x i8] }
@GV1 = global %struct.B zeroinitializer, align 8
- at GV2 = constant [3 x i8*] [i8* inttoptr (i64 16 to i8*), i8* null, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i64 }* null to i8*)]
+ at GV2 = constant [3 x ptr] [ptr inttoptr (i64 16 to ptr), ptr null, ptr null]
; 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
+ %0 = getelementptr inbounds i8, ptr @GV1, i64 16
+ store ptr getelementptr inbounds ([3 x ptr], ptr @GV2, i64 1, i64 0), ptr @GV1
ret void
}
@@ -136,15 +133,15 @@ define internal void @CTOR12() {
; CHECK-NOT: CTOR13
define internal void @CTOR13() {
- store atomic i32 123, i32* @GA seq_cst, align 4
+ store atomic i32 123, ptr @GA seq_cst, align 4
ret void
}
; CHECK-NOT: CTOR14
define internal void @CTOR14() {
- %X = load atomic i32, i32* @GA14 seq_cst, align 4
+ %X = load atomic i32, ptr @GA14 seq_cst, align 4
%Y = add i32 %X, 124
- store i32 %Y, i32* @GA14
+ store i32 %Y, ptr @GA14
ret void
}
diff --git a/llvm/test/Transforms/GlobalOpt/cxx-dtor.ll b/llvm/test/Transforms/GlobalOpt/cxx-dtor.ll
index 50d9ff77b5459..0292671dcd736 100644
--- a/llvm/test/Transforms/GlobalOpt/cxx-dtor.ll
+++ b/llvm/test/Transforms/GlobalOpt/cxx-dtor.ll
@@ -1,29 +1,28 @@
; RUN: opt < %s -S -passes='cgscc(inline),function(early-cse),globalopt' | FileCheck %s
-%0 = type { i32, void ()*, i8* }
+%0 = type { i32, ptr, ptr }
%struct.A = type { i8 }
%struct.B = type { }
@a = global %struct.A zeroinitializer, align 1
- at __dso_handle = external global i8*
- at llvm.global_ctors = appending global [1 x %0] [%0 { i32 65535, void ()* @_GLOBAL__I_a, i8* null }]
+ at __dso_handle = external global ptr
+ at llvm.global_ctors = appending global [1 x %0] [%0 { i32 65535, ptr @_GLOBAL__I_a, ptr null }]
; 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*))
+ %1 = call i32 @__cxa_atexit(ptr @_ZN1AD1Ev, ptr @a, ptr @__dso_handle)
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)
+define linkonce_odr void @_ZN1AD1Ev(ptr %this) nounwind align 2 {
+ call void @_ZN1BD1Ev(ptr %this)
ret void
}
-declare i32 @__cxa_atexit(void (i8*)*, i8*, i8*)
+declare i32 @__cxa_atexit(ptr, ptr, ptr)
-define linkonce_odr void @_ZN1BD1Ev(%struct.B* %this) nounwind align 2 {
+define linkonce_odr void @_ZN1BD1Ev(ptr %this) nounwind align 2 {
ret void
}
diff --git a/llvm/test/Transforms/GlobalOpt/dead-constant-user.ll b/llvm/test/Transforms/GlobalOpt/dead-constant-user.ll
index 02b2ebe46c09c..87855e46571ec 100644
--- a/llvm/test/Transforms/GlobalOpt/dead-constant-user.ll
+++ b/llvm/test/Transforms/GlobalOpt/dead-constant-user.ll
@@ -2,15 +2,15 @@
; RUN: opt -S -passes='function(early-cse),globalopt' < %s | FileCheck %s
; RUN: opt -S -passes='function(early-cse)' < %s | opt -S -passes=globalopt | FileCheck %s
- at g = internal global [6 x i16*] undef
+ at g = internal global [6 x ptr] undef
define void @test1() {
; CHECK-LABEL: @test1(
; CHECK-NEXT: ret void
;
- %xor4 = xor i32 zext (i1 icmp ne (i8* getelementptr (i8, i8* bitcast ([6 x i16*]* @g to i8*), i64 3), i8* null) to i32), 0
- %t0 = load i16*, i16** bitcast (i8* getelementptr (i8, i8* bitcast ([6 x i16*]* @g to i8*), i64 3) to i16**), align 1
- %t1 = load i16, i16* %t0, align 1
+ %xor4 = xor i32 zext (i1 icmp ne (ptr getelementptr (i8, ptr @g, i64 3), ptr null) to i32), 0
+ %t0 = load ptr, ptr getelementptr (i8, ptr @g, i64 3), align 1
+ %t1 = load i16, ptr %t0, align 1
ret void
}
@@ -18,6 +18,6 @@ define void @test2() {
; CHECK-LABEL: @test2(
; CHECK-NEXT: ret void
;
- store i16* null, i16** getelementptr inbounds ([6 x i16*], [6 x i16*]* @g, i32 0, i32 5)
+ store ptr null, ptr getelementptr inbounds ([6 x ptr], ptr @g, i32 0, i32 5)
ret void
}
diff --git a/llvm/test/Transforms/GlobalOpt/dead-store-status.ll b/llvm/test/Transforms/GlobalOpt/dead-store-status.ll
index ed73ca7d9448d..9a8fbb8d65f0e 100644
--- a/llvm/test/Transforms/GlobalOpt/dead-store-status.ll
+++ b/llvm/test/Transforms/GlobalOpt/dead-store-status.ll
@@ -4,19 +4,19 @@
; false. This was caught by the pass return status check that is hidden under
; EXPENSIVE_CHECKS.
-; CHECK: @global = internal unnamed_addr global i16* null, align 1
+; CHECK: @global = internal unnamed_addr global ptr null, align 1
; CHECK-LABEL: @foo
; CHECK-NEXT: entry:
; CHECK-NEXT: ret i16 undef
- at global = internal unnamed_addr global i16* null, align 1
+ at global = internal unnamed_addr global ptr null, align 1
; Function Attrs: nofree noinline norecurse nounwind writeonly
define i16 @foo(i16 %c) local_unnamed_addr #0 {
entry:
%local1.addr = alloca i16, align 1
- store i16* %local1.addr, i16** @global, align 1
+ store ptr %local1.addr, ptr @global, align 1
ret i16 undef
}
@@ -24,19 +24,17 @@ entry:
define i16 @bar() local_unnamed_addr #1 {
entry:
%local2 = alloca [1 x i16], align 1
- %0 = bitcast [1 x i16]* %local2 to i8*
- call void @llvm.lifetime.start.p0i8(i64 1, i8* nonnull %0)
- %arraydecay = getelementptr inbounds [1 x i16], [1 x i16]* %local2, i16 0, i16 0
- store i16* %arraydecay, i16** @global, align 1
- call void @llvm.lifetime.end.p0i8(i64 1, i8* nonnull %0)
+ call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %local2)
+ store ptr %local2, ptr @global, align 1
+ call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %local2)
ret i16 undef
}
; Function Attrs: argmemonly nounwind willreturn
-declare void @llvm.lifetime.start.p0i8(i64 immarg, i8* nocapture) #2
+declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #2
; Function Attrs: argmemonly nounwind willreturn
-declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture) #2
+declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #2
attributes #0 = { nofree noinline norecurse nounwind writeonly }
attributes #1 = { noinline nounwind writeonly }
diff --git a/llvm/test/Transforms/GlobalOpt/deadfunction.ll b/llvm/test/Transforms/GlobalOpt/deadfunction.ll
index c8b8e6e9f050a..11a2d100a52ae 100644
--- a/llvm/test/Transforms/GlobalOpt/deadfunction.ll
+++ b/llvm/test/Transforms/GlobalOpt/deadfunction.ll
@@ -6,13 +6,13 @@ declare void @aa()
declare void @bb()
; Test that we can erase a function which has a blockaddress referring to it
- at test.x = internal unnamed_addr constant [3 x i8*] [i8* blockaddress(@test, %a), i8* blockaddress(@test, %b), i8* blockaddress(@test, %c)], align 16
+ at test.x = internal unnamed_addr constant [3 x ptr] [ptr blockaddress(@test, %a), ptr blockaddress(@test, %b), ptr 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]
+ %arrayidx = getelementptr inbounds [3 x ptr], ptr @test.x, i64 0, i64 %idxprom
+ %0 = load ptr, ptr %arrayidx, align 8
+ indirectbr ptr %0, [label %a, label %b, label %c]
a:
tail call void @aa() nounwind
diff --git a/llvm/test/Transforms/GlobalOpt/deadglobal-2.ll b/llvm/test/Transforms/GlobalOpt/deadglobal-2.ll
index 74c51fb8c4836..dd12e39462bd3 100644
--- a/llvm/test/Transforms/GlobalOpt/deadglobal-2.ll
+++ b/llvm/test/Transforms/GlobalOpt/deadglobal-2.ll
@@ -5,7 +5,7 @@
@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
+ %Ptr = getelementptr [4 x i32], ptr @G, i32 0, i32 %X
+ store i32 1, ptr %Ptr
ret void
}
diff --git a/llvm/test/Transforms/GlobalOpt/deadglobal-diarglist-use.ll b/llvm/test/Transforms/GlobalOpt/deadglobal-diarglist-use.ll
index 635030e608d51..4b396928b48e4 100644
--- a/llvm/test/Transforms/GlobalOpt/deadglobal-diarglist-use.ll
+++ b/llvm/test/Transforms/GlobalOpt/deadglobal-diarglist-use.ll
@@ -1,15 +1,12 @@
; RUN: opt < %s -passes=globalopt -S | llvm-as | llvm-dis | FileCheck %s
; The %struct.S type would not get emitted after @s was removed, resulting in
-; llvm-as failing to parse the dbg.value intrinsic using that type. The
-; FileCheck checks are just added to verify that the desired transformation is
-; done.
+; llvm-as failing to parse the dbg.value intrinsic using that type. However,
+; with opaque pointers this is no longer necessary.
-; CHECK-NOT: @s
-; CHECK: %struct.S = type { i32 }
; CHECK-NOT: @s
-; CHECK: call void @llvm.dbg.value(metadata !DIArgList([1 x %struct.S]* undef
+; CHECK: call void @llvm.dbg.value(metadata !DIArgList(ptr undef
%struct.S = type { i32 }
@@ -18,9 +15,9 @@
define dso_local void @fn() !dbg !20 {
entry:
- %0 = load i32, i32* @idx, align 4, !dbg !26
+ %0 = load i32, ptr @idx, align 4, !dbg !26
%idxprom = sext i32 %0 to i64, !dbg !26
- call void @llvm.dbg.value(metadata !DIArgList([1 x %struct.S]* @s, i64 %idxprom), metadata !24, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_LLVM_arg, 1, DW_OP_constu, 4, DW_OP_mul, DW_OP_plus, DW_OP_stack_value)), !dbg !26
+ call void @llvm.dbg.value(metadata !DIArgList(ptr @s, i64 %idxprom), metadata !24, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_LLVM_arg, 1, DW_OP_constu, 4, DW_OP_mul, DW_OP_plus, DW_OP_stack_value)), !dbg !26
ret void, !dbg !26
}
diff --git a/llvm/test/Transforms/GlobalOpt/deadglobal.ll b/llvm/test/Transforms/GlobalOpt/deadglobal.ll
index 4947f4212ac62..86df402ba46e5 100644
--- a/llvm/test/Transforms/GlobalOpt/deadglobal.ll
+++ b/llvm/test/Transforms/GlobalOpt/deadglobal.ll
@@ -1,7 +1,7 @@
; RUN: opt < %s -passes=globalopt -S | FileCheck %s
- at G1 = internal global i32 123 ; <i32*> [#uses=1]
- at A1 = internal alias i32, i32* @G1
+ at G1 = internal global i32 123 ; <ptr> [#uses=1]
+ at A1 = internal alias i32, ptr @G1
; CHECK-NOT: @G1
; CHECK: @G2
@@ -12,7 +12,7 @@
define void @foo1() {
; CHECK: define void @foo
; CHECK-NEXT: ret
- store i32 1, i32* @G1
+ store i32 1, ptr @G1
ret void
}
@@ -21,7 +21,7 @@ define void @foo1() {
define void @foo2() {
; CHECK-LABEL: define void @foo2(
; CHECK-NEXT: store
- store i32 1, i32* @G2
+ store i32 1, ptr @G2
ret void
}
diff --git a/llvm/test/Transforms/GlobalOpt/evaluate-bitcast-2.ll b/llvm/test/Transforms/GlobalOpt/evaluate-bitcast-2.ll
index b429f8919fde6..e13577debbbf9 100644
--- a/llvm/test/Transforms/GlobalOpt/evaluate-bitcast-2.ll
+++ b/llvm/test/Transforms/GlobalOpt/evaluate-bitcast-2.ll
@@ -3,14 +3,14 @@
; Test the evaluation of a store and a load via a bitcast, and check
; that globals are constant folded to the correct value.
-; CHECK: @u = dso_local local_unnamed_addr global %union.A { i8* inttoptr (i64 12345 to i8*) }, align 8
+; CHECK: @u = dso_local local_unnamed_addr global %union.A { ptr inttoptr (i64 12345 to ptr) }, align 8
; CHECK: @l = dso_local local_unnamed_addr global i64 12345, align 8
; Test derived from:
;
; union A {
; A(long long ll) : l(ll) {}
-; void *p;
+; ptr p;
; long long l;
; } u(12345);
;
@@ -19,28 +19,27 @@
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
-%union.A = type { i8* }
+%union.A = type { ptr }
$_ZN1AC2Ex = comdat any
@u = dso_local global %union.A zeroinitializer, align 8
@l = dso_local global i64 0, align 8
- at llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__sub_I_test.cpp, i8* null }]
+ at llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__sub_I_test.cpp, ptr null }]
define internal void @__cxx_global_var_init() section ".text.startup" {
- call void @_ZN1AC2Ex(%union.A* @u, i64 12345)
+ call void @_ZN1AC2Ex(ptr @u, i64 12345)
ret void
}
-define linkonce_odr dso_local void @_ZN1AC2Ex(%union.A* %this, i64 %ll) unnamed_addr comdat align 2 {
- %l = bitcast %union.A* %this to i64*
- store i64 %ll, i64* %l, align 8
+define linkonce_odr dso_local void @_ZN1AC2Ex(ptr %this, i64 %ll) unnamed_addr comdat align 2 {
+ store i64 %ll, ptr %this, align 8
ret void
}
define internal void @__cxx_global_var_init.1() section ".text.startup" {
- %1 = load i64, i64* bitcast (%union.A* @u to i64*), align 8
- store i64 %1, i64* @l, align 8
+ %1 = load i64, ptr @u, align 8
+ store i64 %1, ptr @l, align 8
ret void
}
diff --git a/llvm/test/Transforms/GlobalOpt/evaluate-bitcast-3.ll b/llvm/test/Transforms/GlobalOpt/evaluate-bitcast-3.ll
index eb96cc4f4fb5f..f70cf82348e46 100644
--- a/llvm/test/Transforms/GlobalOpt/evaluate-bitcast-3.ll
+++ b/llvm/test/Transforms/GlobalOpt/evaluate-bitcast-3.ll
@@ -3,35 +3,34 @@
; Test the evaluation of a load via a bitcast and a store via a GEP.
; Check that globals are constant folded to the correct value.
-; CHECK: @u = dso_local local_unnamed_addr global %union.A { i8* inttoptr (i64 12345 to i8*) }, align 8
+; CHECK: @u = dso_local local_unnamed_addr global %union.A { ptr inttoptr (i64 12345 to ptr) }, align 8
; CHECK: @l = dso_local local_unnamed_addr global i64 12345, align 8
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
-%union.A = type { i8* }
+%union.A = type { ptr }
$_ZN1AC2Ex = comdat any
@u = dso_local global %union.A zeroinitializer, align 8
@l = dso_local global i64 0, align 8
- at llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__sub_I_test.cpp, i8* null }]
+ at llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__sub_I_test.cpp, ptr null }]
define internal void @__cxx_global_var_init() section ".text.startup" {
- call void @_ZN1AC2Ex(%union.A* @u, i64 12345)
+ call void @_ZN1AC2Ex(ptr @u, i64 12345)
ret void
}
-define linkonce_odr dso_local void @_ZN1AC2Ex(%union.A* %this, i64 %ll) unnamed_addr comdat align 2 {
- %l = inttoptr i64 %ll to i8*
- %p = getelementptr inbounds %union.A, %union.A* %this, i64 0, i32 0
- store i8* %l, i8** %p
+define linkonce_odr dso_local void @_ZN1AC2Ex(ptr %this, i64 %ll) unnamed_addr comdat align 2 {
+ %l = inttoptr i64 %ll to ptr
+ store ptr %l, ptr %this
ret void
}
define internal void @__cxx_global_var_init.1() section ".text.startup" {
- %1 = load i64, i64* bitcast (%union.A* @u to i64*), align 8
- store i64 %1, i64* @l, align 8
+ %1 = load i64, ptr @u, align 8
+ store i64 %1, ptr @l, align 8
ret void
}
diff --git a/llvm/test/Transforms/GlobalOpt/evaluate-bitcast-4.ll b/llvm/test/Transforms/GlobalOpt/evaluate-bitcast-4.ll
index ac1fd34a2679b..761211c868074 100644
--- a/llvm/test/Transforms/GlobalOpt/evaluate-bitcast-4.ll
+++ b/llvm/test/Transforms/GlobalOpt/evaluate-bitcast-4.ll
@@ -4,19 +4,19 @@ target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16
target triple = "x86_64-unknown-linux-gnu"
%struct.g = type opaque
-%struct.a = type { i32 (...)** }
+%struct.a = type { ptr }
@l = dso_local global i32 0, align 4
@h = external dso_local global %struct.g, align 1
- at llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__sub_I_bug48055.cc, i8* null }]
+ at llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__sub_I_bug48055.cc, ptr null }]
; Function Attrs: uwtable
define internal void @__cxx_global_var_init() {
entry:
- %vtable = load i32 (%struct.a*)**, i32 (%struct.a*)*** bitcast (%struct.g* @h to i32 (%struct.a*)***), align 1
- %0 = load i32 (%struct.a*)*, i32 (%struct.a*)** %vtable, align 8
- %call = call i32 %0(%struct.a* nonnull dereferenceable(8) bitcast (%struct.g* @h to %struct.a*))
- store i32 %call, i32* @l, align 4
+ %vtable = load ptr, ptr @h, align 1
+ %0 = load ptr, ptr %vtable, align 8
+ %call = call i32 %0(ptr nonnull dereferenceable(8) @h)
+ store i32 %call, ptr @l, align 4
ret void
}
diff --git a/llvm/test/Transforms/GlobalOpt/evaluate-bitcast.ll b/llvm/test/Transforms/GlobalOpt/evaluate-bitcast.ll
index 5a129be92a965..6caecce142966 100644
--- a/llvm/test/Transforms/GlobalOpt/evaluate-bitcast.ll
+++ b/llvm/test/Transforms/GlobalOpt/evaluate-bitcast.ll
@@ -8,21 +8,21 @@
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.S = type { ptr }
%struct.A = type { i64, i64 }
@s = internal local_unnamed_addr global %struct.S zeroinitializer, align 8
- at llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__sub_I_main.cpp, i8* null }]
- at gA = available_externally dso_local local_unnamed_addr global %struct.A* inttoptr (i64 69905 to %struct.A*), align 8
+ at llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__sub_I_main.cpp, ptr null }]
+ at gA = available_externally dso_local local_unnamed_addr global ptr inttoptr (i64 69905 to ptr), align 8
define dso_local i32 @main() local_unnamed_addr {
- %1 = load i64, i64* bitcast (%struct.S* @s to i64*), align 8
+ %1 = load i64, ptr @s, 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
+ %1 = load i64, ptr @gA, align 8
+ store i64 %1, ptr @s, align 8
ret void
}
diff --git a/llvm/test/Transforms/GlobalOpt/evaluate-call-errors.ll b/llvm/test/Transforms/GlobalOpt/evaluate-call-errors.ll
index 884ca514b8a2a..510edae69d7c4 100644
--- a/llvm/test/Transforms/GlobalOpt/evaluate-call-errors.ll
+++ b/llvm/test/Transforms/GlobalOpt/evaluate-call-errors.ll
@@ -15,76 +15,70 @@ target triple = "x86_64-apple-macosx10.12.0"
@_s = global %struct.S zeroinitializer, align 4
@_q = global %struct.Q zeroinitializer, align 4
- at 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 }]
+ at llvm.global_ctors = appending global [2 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__sub_I_main2.cpp, ptr null }, { i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__sub_I_main3.cpp, ptr null }]
define internal void @__cxx_global_var_init() section "__TEXT,__StaticInit,regular,pure_instructions" {
- call void @_ZN1SC1Ev(%struct.S* @_s)
+ call void @_ZN1SC1Ev(ptr @_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)
+define linkonce_odr void @_ZN1SC1Ev(ptr) unnamed_addr align 2 {
+ %2 = alloca ptr, align 8
+ store ptr %0, ptr %2, align 8
+ %3 = load ptr, ptr %2, align 8
+ call void @_ZN1SC2Ev(ptr %3)
ret void
}
define internal void @__cxx_global_var_init.1() #0 section "__TEXT,__StaticInit,regular,pure_instructions" {
- call void @_ZN1QC1Ev(%struct.Q* @_q)
+ call void @_ZN1QC1Ev(ptr @_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)
+define linkonce_odr void @_ZN1QC1Ev(ptr) unnamed_addr align 2 {
+ %2 = alloca ptr, align 8
+ store ptr %0, ptr %2, align 8
+ %3 = load ptr, ptr %2, align 8
+ call void @_ZN1QC2Ev(ptr %3)
ret void
}
define i32 @main() {
%1 = alloca i32, align 4
- store i32 0, i32* %1, align 4
+ store i32 0, ptr %1, align 4
ret i32 0
}
-define linkonce_odr void @_ZN1SC2Ev(%struct.S*) unnamed_addr align 2 {
- %2 = alloca %struct.S*, align 8
+define linkonce_odr void @_ZN1SC2Ev(ptr) unnamed_addr align 2 {
+ %2 = alloca ptr, 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
+ store ptr %0, ptr %2, align 8
+ %4 = load ptr, ptr %2, align 8
+ %5 = call i32 @_ZL3foov()
+ store i32 %5, ptr %3, align 4
+ %6 = load i32, ptr %3, align 4
+ store i32 %6, ptr %4, align 4
ret void
}
-define internal %struct.Foo* @_ZL3foov() {
- ret %struct.Foo* getelementptr (%struct.Foo, %struct.Foo *null, i32 1)
+define internal ptr @_ZL3foov() {
+ ret ptr getelementptr (%struct.Foo, ptr null, i32 1)
}
-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* getelementptr (%struct.Foo, %struct.Foo *null, i32 1))
- store i32 %5, i32* %4, align 4
+define linkonce_odr void @_ZN1QC2Ev(ptr) unnamed_addr align 2 {
+ %2 = alloca ptr, align 8
+ store ptr %0, ptr %2, align 8
+ %3 = load ptr, ptr %2, align 8
+ %4 = call i32 @_ZL3baz3Foo(ptr getelementptr (%struct.Foo, ptr null, i32 1))
+ store i32 %4, ptr %3, 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
+ store i32 %0, ptr %2, align 4
+ %3 = load i32, ptr %2, align 4
+ ret i32 %3
}
; Function Attrs: noinline ssp uwtable
diff --git a/llvm/test/Transforms/GlobalOpt/evaluate-call.ll b/llvm/test/Transforms/GlobalOpt/evaluate-call.ll
index 96b6d55f601d7..c0fda9068c553 100644
--- a/llvm/test/Transforms/GlobalOpt/evaluate-call.ll
+++ b/llvm/test/Transforms/GlobalOpt/evaluate-call.ll
@@ -1,9 +1,9 @@
; 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)
+; ptr @_ZL3fooP3Foo(ptr @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)
+; void @_ZL3bazP3Foo(ptr @gBar)
; We evaluate call to function _ZL3bazP3Foo casting its parameter and check that evaluated value (nullptr)
; is handled correctly
@@ -11,7 +11,7 @@
; 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-NEXT: @llvm.global_ctors = appending global [0 x { i32, ptr, ptr }] zeroinitializer
; CHECK: define i32 @main()
; CHECK-NEXT: ret i32 0
@@ -25,58 +25,54 @@ target triple = "x86_64-apple-macosx10.12.0"
@gBar = global %struct.Bar zeroinitializer, align 4
@_s = global %struct.S zeroinitializer, align 4
- at llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__sub_I_main.cpp, i8* null }]
+ at llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__sub_I_main.cpp, ptr null }]
define internal void @__cxx_global_var_init() section "__TEXT,__StaticInit,regular,pure_instructions" {
- call void @_ZN1SC1Ev_alias(%struct.S* @_s)
+ call void @_ZN1SC1Ev_alias(ptr @_s)
ret void
}
- at _ZN1SC1Ev_alias = linkonce_odr unnamed_addr alias void (%struct.S*), void (%struct.S*)* @_ZN1SC1Ev
+ at _ZN1SC1Ev_alias = linkonce_odr unnamed_addr alias void (ptr), ptr @_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)
+define linkonce_odr void @_ZN1SC1Ev(ptr) unnamed_addr align 2 {
+ %2 = alloca ptr, align 8
+ store ptr %0, ptr %2, align 8
+ %3 = load ptr, ptr %2, align 8
+ call void @_ZN1SC2Ev(ptr %3)
ret void
}
define i32 @main() {
%1 = alloca i32, align 4
- store i32 0, i32* %1, align 4
+ store i32 0, ptr %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)
+define linkonce_odr void @_ZN1SC2Ev(ptr) unnamed_addr align 2 {
+ %2 = alloca ptr, align 8
+ store ptr %0, ptr %2, align 8
+ %3 = load ptr, ptr %2, align 8
+ %4 = call ptr @_ZL3fooP3Foo(ptr @gBar)
+ %5 = load i32, ptr %4, align 4
+ store i32 %5, ptr %3, align 4
+ call void @_ZL3bazP3Foo(ptr @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 ptr @_ZL3fooP3Foo(ptr) {
+ %2 = alloca ptr, align 8
+ store ptr %0, ptr %2, align 8
+ %3 = load ptr, ptr %2, align 8
+ store i32 1, ptr %3, align 4
+ %4 = load ptr, ptr %2, align 8
+ ret ptr %4
}
-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
+define internal void @_ZL3bazP3Foo(ptr) {
+ %2 = alloca ptr, align 8
+ store ptr %0, ptr %2, align 8
+ %3 = load ptr, ptr %2, align 8
+ store i32 2, ptr %3, align 4
ret void
}
diff --git a/llvm/test/Transforms/GlobalOpt/evaluate-constfold-call.ll b/llvm/test/Transforms/GlobalOpt/evaluate-constfold-call.ll
index 0464926872abb..83d8bc6e7c24f 100644
--- a/llvm/test/Transforms/GlobalOpt/evaluate-constfold-call.ll
+++ b/llvm/test/Transforms/GlobalOpt/evaluate-constfold-call.ll
@@ -5,7 +5,7 @@
; 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: %[[V:.+]] = load i32, ptr @_q
; CHECK-NEXT: ret i32 %[[V]]
source_filename = "main.cpp"
@@ -17,31 +17,30 @@ target triple = "x86_64-none-linux-gnu"
$_ZN1QC2Ev = comdat any
@_q = dso_local global %struct.Q zeroinitializer, align 4
- at llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__sub_I_main.cpp, i8* null }]
+ at llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__sub_I_main.cpp, ptr null }]
define internal void @__cxx_global_var_init() section ".text.startup" {
- call void @_ZN1QC2Ev(%struct.Q* @_q)
+ call void @_ZN1QC2Ev(ptr @_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
+define linkonce_odr dso_local void @_ZN1QC2Ev(ptr) unnamed_addr #1 comdat align 2 {
+ %2 = alloca ptr, align 8
+ store ptr %0, ptr %2, align 8
+ %3 = load ptr, ptr %2, align 8
+ %4 = call i32 @fmodf(float 0x40091EB860000000, float 2.000000e+00)
+ store i32 %4, ptr %3, align 4
ret void
}
-define dso_local i32 @main(i32, i8**) {
+define dso_local i32 @main(i32, ptr) {
%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
+ %5 = alloca ptr, align 8
+ store i32 0, ptr %3, align 4
+ store i32 %0, ptr %4, align 4
+ store ptr %1, ptr %5, align 8
+ %6 = load i32, ptr @_q, align 4
ret i32 %6
}
diff --git a/llvm/test/Transforms/GlobalOpt/evaluate-load-uniform.ll b/llvm/test/Transforms/GlobalOpt/evaluate-load-uniform.ll
index 64a2c70764001..568a28aa8aa9c 100644
--- a/llvm/test/Transforms/GlobalOpt/evaluate-load-uniform.ll
+++ b/llvm/test/Transforms/GlobalOpt/evaluate-load-uniform.ll
@@ -3,18 +3,18 @@
; Make sure that the load from uniform value @g1 succeeds during evaluation.
- at g1 = global [2 x i64*] zeroinitializer
- at g2 = global i64* inttoptr(i64 1 to i64*)
+ at g1 = global [2 x ptr] zeroinitializer
+ at g2 = global ptr inttoptr(i64 1 to ptr)
- at llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @ctor, i8* null }]
+ at llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @ctor, ptr null }]
;.
-; CHECK: @[[G1:[a-zA-Z0-9_$"\\.-]+]] = local_unnamed_addr global [2 x i64*] zeroinitializer
-; CHECK: @[[G2:[a-zA-Z0-9_$"\\.-]+]] = local_unnamed_addr global i64* null
-; CHECK: @[[LLVM_GLOBAL_CTORS:[a-zA-Z0-9_$"\\.-]+]] = appending global [0 x { i32, void ()*, i8* }] zeroinitializer
+; CHECK: @[[G1:[a-zA-Z0-9_$"\\.-]+]] = local_unnamed_addr global [2 x ptr] zeroinitializer
+; CHECK: @[[G2:[a-zA-Z0-9_$"\\.-]+]] = local_unnamed_addr global ptr null
+; CHECK: @[[LLVM_GLOBAL_CTORS:[a-zA-Z0-9_$"\\.-]+]] = appending global [0 x { i32, ptr, ptr }] zeroinitializer
;.
define internal void @ctor() {
- %v = load i64*, i64** getelementptr ([2 x i64*], [2 x i64*]* @g1, i64 0, i64 1)
- store i64* %v, i64** @g2
+ %v = load ptr, ptr getelementptr ([2 x ptr], ptr @g1, i64 0, i64 1)
+ store ptr %v, ptr @g2
ret void
}
diff --git a/llvm/test/Transforms/GlobalOpt/externally-initialized-aggregate.ll b/llvm/test/Transforms/GlobalOpt/externally-initialized-aggregate.ll
index eca0f8a7d9341..b53b9d447aea4 100644
--- a/llvm/test/Transforms/GlobalOpt/externally-initialized-aggregate.ll
+++ b/llvm/test/Transforms/GlobalOpt/externally-initialized-aggregate.ll
@@ -16,8 +16,8 @@ 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
+; CHECK: %0 = load i32, ptr @a.0
+ %0 = load i32, ptr @a, align 4
ret i32 %0
}
@@ -25,8 +25,8 @@ 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
+; CHECK: %0 = load i32, ptr @b.0
+ %0 = load i32, ptr getelementptr inbounds ({i32, i32}, ptr @b, i32 0, i32 0), align 4
ret i32 %0
}
@@ -34,17 +34,17 @@ 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
+; CHECK: store i32 1, ptr @a.0
+ store i32 1, ptr @a, 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
+; CHECK-NOT: store i32 2, ptr @a.1
+ store i32 2, ptr getelementptr inbounds ([2 x i32], ptr @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
+; CHECK: store i32 3, ptr @b.0
+ store i32 3, ptr getelementptr inbounds ({i32, i32}, ptr @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
+; CHECK-NOT: store i32 4, ptr @b.1
+ store i32 4, ptr getelementptr inbounds ({i32, i32}, ptr @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
index ddabcd99bb8ad..ad26a1a9bbfff 100644
--- a/llvm/test/Transforms/GlobalOpt/externally-initialized-global-ctr.ll
+++ b/llvm/test/Transforms/GlobalOpt/externally-initialized-global-ctr.ll
@@ -7,23 +7,23 @@
target datalayout = "p:16:32:128"
-%struct.ButtonInitData = type { i8* }
+%struct.ButtonInitData = type { ptr }
@_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"
+@"\01L_OBJC_SELECTOR_REFERENCES_41" = internal externally_initialized global ptr @"\01L_OBJC_METH_VAR_NAME_40", section "__DATA, __objc_selrefs, literal_pointers, no_dead_strip"
- at llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__I_a, i8* null }]
- at 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*)]
+ at llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__I_a, ptr null }]
+ at llvm.used = appending global [2 x ptr] [ptr @"\01L_OBJC_METH_VAR_NAME_40", ptr @"\01L_OBJC_SELECTOR_REFERENCES_41"]
; Choose the preferred alignment.
-; CHECK: @[[_ZL14BUTTONINITDATA_0_0:[a-zA-Z0-9_$"\\.-]+]] = internal unnamed_addr global i8* null, align 16
+; CHECK: @[[_ZL14BUTTONINITDATA_0_0:[a-zA-Z0-9_$"\\.-]+]] = internal unnamed_addr global ptr null, align 16
;.
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
+ %1 = load ptr, ptr @"\01L_OBJC_SELECTOR_REFERENCES_41", !invariant.load !2009
+ store ptr %1, ptr @_ZL14buttonInitData, align 4
ret void
}
@@ -32,18 +32,18 @@ define internal void @_GLOBAL__I_a() section "__TEXT,__StaticInit,regular,pure_i
ret void
}
-declare void @test(i8*)
+declare void @test(ptr)
; The preferred alignment is available.
define void @print() {
; CHECK-LABEL: @print(
-; CHECK-NEXT: [[TMP1:%.*]] = load i8*, i8** @_ZL14buttonInitData.0, align 16
-; CHECK-NEXT: call void @test(i8* [[TMP1]])
+; CHECK-NEXT: [[TMP1:%.*]] = load ptr, ptr @_ZL14buttonInitData.0, align 16
+; CHECK-NEXT: call void @test(ptr [[TMP1]])
; CHECK-NEXT: ret void
;
- %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)
+ %1 = load ptr, ptr @_ZL14buttonInitData, align 4
+ call void @test(ptr %1)
ret void
}
diff --git a/llvm/test/Transforms/GlobalOpt/externally-initialized.ll b/llvm/test/Transforms/GlobalOpt/externally-initialized.ll
index 29ed13e38ef26..7a8244ea8297a 100644
--- a/llvm/test/Transforms/GlobalOpt/externally-initialized.ll
+++ b/llvm/test/Transforms/GlobalOpt/externally-initialized.ll
@@ -16,22 +16,22 @@
define void @foo() {
; CHECK-LABEL: foo
entry:
-; CHECK: store i32 42, i32* @a
- store i32 42, i32* @a
+; CHECK: store i32 42, ptr @a
+ store i32 42, ptr @a
ret void
}
define i32 @bar() {
; CHECK-LABEL: bar
entry:
-; CHECK: %val = load i32, i32* @a
- %val = load i32, i32* @a
+; CHECK: %val = load i32, ptr @a
+ %val = load i32, ptr @a
ret i32 %val
}
define i32 @baz() {
; CHECK-LABEL: baz
entry:
-; CHECK: %val = load i32, i32* @b
- %val = load i32, i32* @b
+; CHECK: %val = load i32, ptr @b
+ %val = load i32, ptr @b
ret i32 %val
}
diff --git a/llvm/test/Transforms/GlobalOpt/global-demotion.ll b/llvm/test/Transforms/GlobalOpt/global-demotion.ll
index ec70acf469eeb..f29d4bd484219 100644
--- a/llvm/test/Transforms/GlobalOpt/global-demotion.ll
+++ b/llvm/test/Transforms/GlobalOpt/global-demotion.ll
@@ -9,8 +9,8 @@
; CHECK-LABEL: @test1
define internal i32 @test1() norecurse {
; CHECK-NOT: @G1
- store i32 4, i32* @G1
- %a = load i32, i32* @G1
+ store i32 4, ptr @G1
+ %a = load i32, ptr @G1
; CHECK: ret
ret i32 %a
}
@@ -19,8 +19,8 @@ define internal i32 @test1() norecurse {
; CHECK-LABEL: @test2
define internal i32 @test2() norecurse {
; CHECK-NOT: %G2
- %a = load i32, i32* @G2
- store i32 4, i32* @G2
+ %a = load i32, ptr @G2
+ store i32 4, ptr @G2
; CHECK: ret
ret i32 %a
}
@@ -31,9 +31,8 @@ define internal i32 @test2() norecurse {
; 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
+ %a = load i32, ptr @G3
+ store i32 4, ptr @G3
; CHECK: ret
ret i32 %a
}
@@ -44,9 +43,8 @@ define internal i32 @test3() norecurse {
; 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
+ store i32 4, ptr @G4
+ %a = load i64, ptr @G4
%b = trunc i64 %a to i32
; CHECK: ret
ret i32 %b
@@ -57,9 +55,8 @@ define internal i32 @test4() norecurse {
; 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
+ store i32 4, ptr @G5
+ %a = load i16, ptr @G5
%b = zext i16 %a to i32
; CHECK: ret
ret i32 %b
diff --git a/llvm/test/Transforms/GlobalOpt/globalsra-align.ll b/llvm/test/Transforms/GlobalOpt/globalsra-align.ll
index a370a2b4bfbb5..aadd5b866a822 100644
--- a/llvm/test/Transforms/GlobalOpt/globalsra-align.ll
+++ b/llvm/test/Transforms/GlobalOpt/globalsra-align.ll
@@ -3,7 +3,7 @@
target datalayout = "p:16:32:64" ; 16-bit pointers with 32-bit ABI alignment and 64-bit preferred alignmentt
- at a = internal externally_initialized global [3 x [7 x i32*]] zeroinitializer, align 16
+ at a = internal externally_initialized global [3 x [7 x ptr]] zeroinitializer, align 16
; PR50253
; The alignments are correct initially, but they should be updated
@@ -14,47 +14,47 @@ target datalayout = "p:16:32:64" ; 16-bit pointers with 32-bit ABI alignment and
; preferred alignment from the datalayout.
;.
-; CHECK: @[[A_4:[a-zA-Z0-9_$"\\.-]+]] = internal unnamed_addr externally_initialized global i32* null, align 8
-; CHECK: @[[A_5:[a-zA-Z0-9_$"\\.-]+]] = internal unnamed_addr externally_initialized global i32* null, align 16
-; CHECK: @[[A_6:[a-zA-Z0-9_$"\\.-]+]] = internal unnamed_addr externally_initialized global i32* null, align 16
-; CHECK: @[[A_7:[a-zA-Z0-9_$"\\.-]+]] = internal unnamed_addr externally_initialized global i32* null, align 16
+; CHECK: @[[A_4:[a-zA-Z0-9_$"\\.-]+]] = internal unnamed_addr externally_initialized global ptr null, align 8
+; CHECK: @[[A_5:[a-zA-Z0-9_$"\\.-]+]] = internal unnamed_addr externally_initialized global ptr null, align 16
+; CHECK: @[[A_6:[a-zA-Z0-9_$"\\.-]+]] = internal unnamed_addr externally_initialized global ptr null, align 16
+; CHECK: @[[A_7:[a-zA-Z0-9_$"\\.-]+]] = internal unnamed_addr externally_initialized global ptr null, align 16
;.
-define i32* @reduce_align_0() {
+define ptr @reduce_align_0() {
; CHECK-LABEL: @reduce_align_0(
-; CHECK-NEXT: [[X:%.*]] = load i32*, i32** @a.4, align 8
-; CHECK-NEXT: ret i32* [[X]]
+; CHECK-NEXT: [[X:%.*]] = load ptr, ptr @a.4, align 8
+; CHECK-NEXT: ret ptr [[X]]
;
- %x = load i32*, i32** getelementptr inbounds ([3 x [7 x i32*]], [3 x [7 x i32*]]* @a, i64 0, i64 2, i64 0), align 8
- store i32* null, i32** getelementptr inbounds ([3 x [7 x i32*]], [3 x [7 x i32*]]* @a, i64 0, i64 1, i64 0), align 4
- ret i32* %x
+ %x = load ptr, ptr getelementptr inbounds ([3 x [7 x ptr]], ptr @a, i64 0, i64 2, i64 0), align 8
+ store ptr null, ptr getelementptr inbounds ([3 x [7 x ptr]], ptr @a, i64 0, i64 1, i64 0), align 4
+ ret ptr %x
}
-define i32* @reduce_align_1() {
+define ptr @reduce_align_1() {
; CHECK-LABEL: @reduce_align_1(
-; CHECK-NEXT: [[X:%.*]] = load i32*, i32** @a.5, align 16
-; CHECK-NEXT: ret i32* [[X]]
+; CHECK-NEXT: [[X:%.*]] = load ptr, ptr @a.5, align 16
+; CHECK-NEXT: ret ptr [[X]]
;
- %x = load i32*, i32** getelementptr inbounds ([3 x [7 x i32*]], [3 x [7 x i32*]]* @a, i64 0, i64 2, i64 1), align 4
- store i32* null, i32** getelementptr inbounds ([3 x [7 x i32*]], [3 x [7 x i32*]]* @a, i64 0, i64 1, i64 1), align 16
- ret i32* %x
+ %x = load ptr, ptr getelementptr inbounds ([3 x [7 x ptr]], ptr @a, i64 0, i64 2, i64 1), align 4
+ store ptr null, ptr getelementptr inbounds ([3 x [7 x ptr]], ptr @a, i64 0, i64 1, i64 1), align 16
+ ret ptr %x
}
-define i32* @reduce_align_2() {
+define ptr @reduce_align_2() {
; CHECK-LABEL: @reduce_align_2(
-; CHECK-NEXT: [[X:%.*]] = load i32*, i32** @a.6, align 16
-; CHECK-NEXT: ret i32* [[X]]
+; CHECK-NEXT: [[X:%.*]] = load ptr, ptr @a.6, align 16
+; CHECK-NEXT: ret ptr [[X]]
;
- %x = load i32*, i32** getelementptr inbounds ([3 x [7 x i32*]], [3 x [7 x i32*]]* @a, i64 0, i64 2, i64 2), align 16
- store i32* null, i32** getelementptr inbounds ([3 x [7 x i32*]], [3 x [7 x i32*]]* @a, i64 0, i64 1, i64 2), align 4
- ret i32* %x
+ %x = load ptr, ptr getelementptr inbounds ([3 x [7 x ptr]], ptr @a, i64 0, i64 2, i64 2), align 16
+ store ptr null, ptr getelementptr inbounds ([3 x [7 x ptr]], ptr @a, i64 0, i64 1, i64 2), align 4
+ ret ptr %x
}
-define i32* @reduce_align_3() {
+define ptr @reduce_align_3() {
; CHECK-LABEL: @reduce_align_3(
-; CHECK-NEXT: [[X:%.*]] = load i32*, i32** @a.7, align 16
-; CHECK-NEXT: ret i32* [[X]]
+; CHECK-NEXT: [[X:%.*]] = load ptr, ptr @a.7, align 16
+; CHECK-NEXT: ret ptr [[X]]
;
- %x = load i32*, i32** getelementptr inbounds ([3 x [7 x i32*]], [3 x [7 x i32*]]* @a, i64 0, i64 2, i64 3), align 4
- store i32* null, i32** getelementptr inbounds ([3 x [7 x i32*]], [3 x [7 x i32*]]* @a, i64 0, i64 1, i64 3), align 8
- ret i32* %x
+ %x = load ptr, ptr getelementptr inbounds ([3 x [7 x ptr]], ptr @a, i64 0, i64 2, i64 3), align 4
+ store ptr null, ptr getelementptr inbounds ([3 x [7 x ptr]], ptr @a, i64 0, i64 1, i64 3), align 8
+ ret ptr %x
}
diff --git a/llvm/test/Transforms/GlobalOpt/globalsra-generic-type.ll b/llvm/test/Transforms/GlobalOpt/globalsra-generic-type.ll
index d30fdae4ef56d..9c28bb3fac0ff 100644
--- a/llvm/test/Transforms/GlobalOpt/globalsra-generic-type.ll
+++ b/llvm/test/Transforms/GlobalOpt/globalsra-generic-type.ll
@@ -7,8 +7,8 @@ define void @test() {
; CHECK-LABEL: @test(
; CHECK-NEXT: ret void
;
- store i32 1, i32* bitcast ([8 x i8]* @g to i32*)
- store i32 2, i32* getelementptr (i32, i32* bitcast ([8 x i8]* @g to i32*), i64 1)
+ store i32 1, ptr @g
+ store i32 2, ptr getelementptr (i32, ptr @g, i64 1)
ret void
}
@@ -16,7 +16,7 @@ define i32 @load1() {
; CHECK-LABEL: @load1(
; CHECK-NEXT: ret i32 1
;
- %v = load i32, i32* bitcast ([8 x i8]* @g to i32*)
+ %v = load i32, ptr @g
ret i32 %v
}
@@ -24,6 +24,6 @@ define i32 @load2() {
; CHECK-LABEL: @load2(
; CHECK-NEXT: ret i32 2
;
- %v = load i32, i32* getelementptr (i32, i32* bitcast ([8 x i8]* @g to i32*), i64 1)
+ %v = load i32, ptr getelementptr (i32, ptr @g, i64 1)
ret i32 %v
}
diff --git a/llvm/test/Transforms/GlobalOpt/globalsra-multigep.ll b/llvm/test/Transforms/GlobalOpt/globalsra-multigep.ll
index c926489b9d7f7..be2575b4b011e 100644
--- a/llvm/test/Transforms/GlobalOpt/globalsra-multigep.ll
+++ b/llvm/test/Transforms/GlobalOpt/globalsra-multigep.ll
@@ -9,8 +9,8 @@ target triple = "x86_64-unknown-linux-gnu"
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
+ %g1 = getelementptr inbounds <{ [8 x i16], [8 x i16] }>, ptr @g_data, i64 0, i32 0
+ %arrayidx.i = getelementptr inbounds [8 x i16], ptr %g1, i64 0, i64 %a1
+ %r = load i16, ptr %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
index 0998dff2f9cde..17cc3210b92d6 100644
--- a/llvm/test/Transforms/GlobalOpt/globalsra-partial.ll
+++ b/llvm/test/Transforms/GlobalOpt/globalsra-partial.ll
@@ -3,23 +3,23 @@
; RUN: opt < %s -passes=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"
- at G = internal global { i32, [4 x float] } zeroinitializer ; <{ i32, [4 x float] }*> [#uses=3]
+ at G = internal global { i32, [4 x float] } zeroinitializer ; <ptr> [#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)
+ store i32 12345, ptr getelementptr ({ i32, [4 x float] }, ptr @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
+ %Ptr = getelementptr { i32, [4 x float] }, ptr @G, i32 0, i32 1, i32 %i ; <ptr> [#uses=1]
+ store float 1.000000e+00, ptr %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]
+ %Ptr = getelementptr { i32, [4 x float] }, ptr @G, i32 0, i32 1, i32 %i ; <ptr> [#uses=1]
+ %V = load float, ptr %Ptr ; <float> [#uses=1]
ret float %V
}
diff --git a/llvm/test/Transforms/GlobalOpt/globalsra-recursive.ll b/llvm/test/Transforms/GlobalOpt/globalsra-recursive.ll
index 0e40f65b5291f..14ec7da36f5fe 100644
--- a/llvm/test/Transforms/GlobalOpt/globalsra-recursive.ll
+++ b/llvm/test/Transforms/GlobalOpt/globalsra-recursive.ll
@@ -8,20 +8,20 @@
define void @test() {
; CHECK-LABEL: @test(
-; CHECK-NEXT: store { i32, i32 } zeroinitializer, { i32, i32 }* @g, align 4
-; CHECK-NEXT: store { i32, i32 } { i32 0, i32 1 }, { i32, i32 }* @g, align 4
+; CHECK-NEXT: store { i32, i32 } zeroinitializer, ptr @g, align 4
+; CHECK-NEXT: store { i32, i32 } { i32 0, i32 1 }, ptr @g, align 4
; CHECK-NEXT: ret void
;
- store { i32, i32 } zeroinitializer, { i32, i32 }* @g
- store { i32, i32 } { i32 0, i32 1 }, { i32, i32 }* @g
+ store { i32, i32 } zeroinitializer, ptr @g
+ store { i32, i32 } { i32 0, i32 1 }, ptr @g
ret void
}
define { i32, i32 } @load() {
; CHECK-LABEL: @load(
-; CHECK-NEXT: [[V:%.*]] = load { i32, i32 }, { i32, i32 }* @g, align 4
+; CHECK-NEXT: [[V:%.*]] = load { i32, i32 }, ptr @g, align 4
; CHECK-NEXT: ret { i32, i32 } [[V]]
;
- %v = load { i32, i32 }, { i32, i32 }* @g
+ %v = load { i32, i32 }, ptr @g
ret { i32, i32 } %v
}
diff --git a/llvm/test/Transforms/GlobalOpt/globalsra-unknown-index.ll b/llvm/test/Transforms/GlobalOpt/globalsra-unknown-index.ll
index 972bab5d8b83b..aec795113e76c 100644
--- a/llvm/test/Transforms/GlobalOpt/globalsra-unknown-index.ll
+++ b/llvm/test/Transforms/GlobalOpt/globalsra-unknown-index.ll
@@ -10,7 +10,7 @@
@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
+ store i32 1, ptr getelementptr inbounds ([3 x %struct.X], ptr @Y, i64 0, i64 0, i32 0, i64 ptrtoint (ptr @addr to i64)), align 4
ret void
}
@@ -19,10 +19,9 @@ define void @frob() {
; 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
+ %a = load i32, ptr @Y
+ %q = getelementptr inbounds [3 x %struct.X], ptr @Y, i64 0, i64 0, i32 1, i64 0
+ %b = load i32, ptr %q
%c = add i32 %a, %b
ret i32 %c
}
@@ -32,10 +31,10 @@ define i32 @borf(i64 %i, i64 %j) {
; 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
+ %p = getelementptr inbounds [3 x %struct.X], ptr @Y, i64 0, i64 1, i32 0, i64 1
+ %a = load i32, ptr %p
+ %q = getelementptr inbounds [3 x %struct.X], ptr @Y, i64 0, i64 1, i32 1, i64 1
+ %b = load i32, ptr %q
%c = add i32 %a, %b
ret i32 %c
}
@@ -45,10 +44,10 @@ define i32 @borg(i64 %i, i64 %j) {
; 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
+ %p = getelementptr inbounds [3 x %struct.X], ptr @Y, i64 0, i64 2, i32 0, i64 2
+ %a = load i32, ptr %p
+ %q = getelementptr inbounds [3 x %struct.X], ptr @Y, i64 0, i64 2, i32 1, i64 2
+ %b = load i32, ptr %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
index bf7249ba31a63..3cc9259b3c686 100644
--- a/llvm/test/Transforms/GlobalOpt/globalsra.ll
+++ b/llvm/test/Transforms/GlobalOpt/globalsra.ll
@@ -5,41 +5,41 @@ target datalayout = "E-p:64:64:64-a0:0:8-f32:32:32-f64:64:64-i1:8:8-i8:8:8-i16:1
@G = internal global { i32, float, { double } } {
i32 1,
float 1.000000e+00,
- { double } { double 1.727000e+01 } } ; <{ i32, float, { double } }*> [#uses=3]
+ { double } { double 1.727000e+01 } } ; <ptr> [#uses=3]
define void @onlystore() {
- store i32 123, i32* getelementptr ({ i32, float, { double } }, { i32, float, { double } }* @G, i32 0, i32 0)
+ store i32 123, ptr getelementptr ({ i32, float, { double } }, ptr @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]
+ store float 1.000000e+00, ptr getelementptr ({ i32, float, { double } }, ptr @G, i32 0, i32 1)
+ %X = load float, ptr getelementptr ({ i32, float, { double } }, ptr @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]
+ %X = load double, ptr getelementptr ({ i32, float, { double } }, ptr @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]
+ { double } { double 1.727000e+01 } } ; <ptr> [#uses=3]
define void @onlystore2() {
- store i32 123, i32* getelementptr ({ i32, float, { double } }, { i32, float, { double } }* @G2, i32 0, i32 0)
+ store i32 123, ptr getelementptr ({ i32, float, { double } }, ptr @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]
+ store float 1.000000e+00, ptr getelementptr ({ i32, float, { double } }, ptr @G2, i32 0, i32 1)
+ %X = load float, ptr getelementptr ({ i32, float, { double } }, ptr @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]
+ %X = load double, ptr getelementptr ({ i32, float, { double } }, ptr @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
index af50c9b392bb5..fd613cf12a135 100644
--- a/llvm/test/Transforms/GlobalOpt/heap-sra-1-no-null-opt.ll
+++ b/llvm/test/Transforms/GlobalOpt/heap-sra-1-no-null-opt.ll
@@ -2,31 +2,30 @@
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 }
- at X = internal global %struct.foo* null
+ at X = internal global ptr 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
+ %malloccall = tail call ptr @malloc(i64 %mallocsize) ; <ptr> [#uses=1]
+ store ptr %malloccall, ptr @X, align 4
ret void
}
-declare noalias i8* @malloc(i64)
+declare noalias ptr @malloc(i64)
define i32 @baz() nounwind readonly noinline #0 {
bb1.thread:
- %0 = load %struct.foo*, %struct.foo** @X, align 4
+ %0 = load ptr, ptr @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
+ %1 = getelementptr %struct.foo, ptr %0, i32 %i.0.reg2mem.0, i32 0
+ %2 = load i32, ptr %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
diff --git a/llvm/test/Transforms/GlobalOpt/heap-sra-1.ll b/llvm/test/Transforms/GlobalOpt/heap-sra-1.ll
index d760f1a4851e4..e3318af328d64 100644
--- a/llvm/test/Transforms/GlobalOpt/heap-sra-1.ll
+++ b/llvm/test/Transforms/GlobalOpt/heap-sra-1.ll
@@ -4,29 +4,28 @@ target datalayout = "E-p:64:64:64-a0:0:8-f32:32:32-f64:64:64-i1:8:8-i8:8:8-i16:1
;; Heap SROA has been removed. This tests we don't perform heap SROA.
; CHECK: @X =
%struct.foo = type { i32, i32 }
- at X = internal global %struct.foo* null
+ at X = internal global ptr null
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
+ %malloccall = tail call ptr @malloc(i64 %mallocsize) ; <ptr> [#uses=1]
+ store ptr %malloccall, ptr @X, align 4
ret void
}
-declare noalias i8* @malloc(i64)
+declare noalias ptr @malloc(i64)
define i32 @baz() nounwind readonly noinline {
bb1.thread:
- %0 = load %struct.foo*, %struct.foo** @X, align 4
+ %0 = load ptr, ptr @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
+ %1 = getelementptr %struct.foo, ptr %0, i32 %i.0.reg2mem.0, i32 0
+ %2 = load i32, ptr %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
@@ -38,7 +37,7 @@ bb2: ; preds = %bb1
define void @bam(i64 %Size) nounwind noinline #0 {
entry:
- %0 = load %struct.foo*, %struct.foo** @X, align 4
+ %0 = load ptr, ptr @X, align 4
ret void
}
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
index ed46fee7a0806..360ae5efc9d21 100644
--- a/llvm/test/Transforms/GlobalOpt/heap-sra-2-no-null-opt.ll
+++ b/llvm/test/Transforms/GlobalOpt/heap-sra-2-no-null-opt.ll
@@ -2,31 +2,30 @@
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 }
- at X = internal global %struct.foo* null ; <%struct.foo**> [#uses=2]
+ at X = internal global ptr null ; <ptr> [#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
+ %malloccall = tail call ptr @malloc(i64 8000000) ; <ptr> [#uses=1]
+ %.sub = getelementptr [1000000 x %struct.foo], ptr %malloccall, i32 0, i32 0 ; <ptr> [#uses=1]
+ store ptr %.sub, ptr @X, align 4
ret void
}
-declare noalias i8* @malloc(i64)
+declare noalias ptr @malloc(i64)
define i32 @baz() nounwind readonly noinline #0 {
bb1.thread:
- %0 = load %struct.foo*, %struct.foo** @X, align 4 ; <%struct.foo*> [#uses=1]
+ %0 = load ptr, ptr @X, align 4 ; <ptr> [#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]
+ %1 = getelementptr %struct.foo, ptr %0, i32 %i.0.reg2mem.0, i32 0 ; <ptr> [#uses=1]
+ %2 = load i32, ptr %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]
diff --git a/llvm/test/Transforms/GlobalOpt/heap-sra-2.ll b/llvm/test/Transforms/GlobalOpt/heap-sra-2.ll
index 4c8d690de65f9..094e5a92447ec 100644
--- a/llvm/test/Transforms/GlobalOpt/heap-sra-2.ll
+++ b/llvm/test/Transforms/GlobalOpt/heap-sra-2.ll
@@ -4,29 +4,28 @@ target datalayout = "E-p:64:64:64-a0:0:8-f32:32:32-f64:64:64-i1:8:8-i8:8:8-i16:1
;; Heap SROA has been removed. This tests we don't perform heap SROA.
; CHECK: @X =
%struct.foo = type { i32, i32 }
- at X = internal global %struct.foo* null ; <%struct.foo**> [#uses=2]
+ at X = internal global ptr null ; <ptr> [#uses=2]
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
+ %malloccall = tail call ptr @malloc(i64 8000000) ; <ptr> [#uses=1]
+ %.sub = getelementptr [1000000 x %struct.foo], ptr %malloccall, i32 0, i32 0 ; <ptr> [#uses=1]
+ store ptr %.sub, ptr @X, align 4
ret void
}
-declare noalias i8* @malloc(i64)
+declare noalias ptr @malloc(i64)
define i32 @baz() nounwind readonly noinline {
bb1.thread:
- %0 = load %struct.foo*, %struct.foo** @X, align 4 ; <%struct.foo*> [#uses=1]
+ %0 = load ptr, ptr @X, align 4 ; <ptr> [#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]
+ %1 = getelementptr %struct.foo, ptr %0, i32 %i.0.reg2mem.0, i32 0 ; <ptr> [#uses=1]
+ %2 = load i32, ptr %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]
@@ -38,7 +37,7 @@ bb2: ; preds = %bb1
define void @bam(i64 %Size) nounwind noinline #0 {
entry:
- %0 = load %struct.foo*, %struct.foo** @X, align 4
+ %0 = load ptr, ptr @X, align 4
ret void
}
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
index 2f700c014dda3..20d0e855fc46f 100644
--- a/llvm/test/Transforms/GlobalOpt/heap-sra-phi-no-null-opt.ll
+++ b/llvm/test/Transforms/GlobalOpt/heap-sra-phi-no-null-opt.ll
@@ -3,46 +3,45 @@ target datalayout = "E-p:64:64:64-a0:0:8-f32:32:32-f64:64:64-i1:8:8-i8:8:8-i16:1
%struct.foo = type { i32, i32 }
- at X = internal global %struct.foo* null ; <%struct.foo**> [#uses=2]
+ at X = internal global ptr null ; <ptr> [#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
+ %malloccall = tail call ptr @malloc(i64 8000000) ; <ptr> [#uses=1]
+ %.sub = getelementptr [1000000 x %struct.foo], ptr %malloccall, i32 0, i32 0 ; <ptr> [#uses=1]
+ store ptr %.sub, ptr @X, align 4
ret void
}
-declare noalias i8* @malloc(i64)
+declare noalias ptr @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
+ %tmpLD1 = load ptr, ptr @X, align 4 ; <ptr> [#uses=1]
+; CHECK: load ptr, ptr @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 ]
+ %tmp = phi ptr [%tmpLD1, %bb1.thread ], [ %tmpLD2, %bb1 ] ; <i32> [#uses=2]
+; CHECK: %tmp = phi ptr [ %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
+ %tmp1 = getelementptr %struct.foo, ptr %tmp, i32 %i.0.reg2mem.0, i32 0 ; <ptr> [#uses=1]
+ %tmp2 = load i32, ptr %tmp1, align 4 ; <i32> [#uses=1]
+; CHECK: load i32, ptr %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
+ %tmp4 = getelementptr %struct.foo, ptr %tmp, i32 %i.0.reg2mem.0, i32 1 ; <ptr> [#uses=1]
+ %tmp5 = load i32 , ptr %tmp4
+; CHECK: load i32, ptr %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
+ %tmpLD2 = load ptr, ptr @X, align 4 ; <ptr> [#uses=1]
+; CHECK: load ptr, ptr @X, align 4
%exitcond = icmp eq i32 %indvar.next, 1200 ; <i1> [#uses=1]
br i1 %exitcond, label %bb2, label %bb1
diff --git a/llvm/test/Transforms/GlobalOpt/heap-sra-phi.ll b/llvm/test/Transforms/GlobalOpt/heap-sra-phi.ll
index cd9154a585c5b..9698078b75a7e 100644
--- a/llvm/test/Transforms/GlobalOpt/heap-sra-phi.ll
+++ b/llvm/test/Transforms/GlobalOpt/heap-sra-phi.ll
@@ -5,37 +5,36 @@ target datalayout = "E-p:64:64:64-a0:0:8-f32:32:32-f64:64:64-i1:8:8-i8:8:8-i16:1
;; Heap SROA has been removed. This tests we don't perform heap SROA.
; CHECK: @X =
%struct.foo = type { i32, i32 }
- at X = internal global %struct.foo* null ; <%struct.foo**> [#uses=2]
+ at X = internal global ptr null ; <ptr> [#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
+ %malloccall = tail call ptr @malloc(i64 8000000) ; <ptr> [#uses=1]
+ %.sub = getelementptr [1000000 x %struct.foo], ptr %malloccall, i32 0, i32 0 ; <ptr> [#uses=1]
+ store ptr %.sub, ptr @X, align 4
ret void
}
-declare noalias i8* @malloc(i64)
+declare noalias ptr @malloc(i64)
define i32 @baz() nounwind readonly noinline {
bb1.thread:
- %tmpLD1 = load %struct.foo*, %struct.foo** @X, align 4 ; <%struct.foo*> [#uses=1]
+ %tmpLD1 = load ptr, ptr @X, align 4 ; <ptr> [#uses=1]
br label %bb1
bb1: ; preds = %bb1, %bb1.thread
- %tmp = phi %struct.foo* [%tmpLD1, %bb1.thread ], [ %tmpLD2, %bb1 ] ; <i32> [#uses=2]
+ %tmp = phi ptr [%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]
+ %tmp1 = getelementptr %struct.foo, ptr %tmp, i32 %i.0.reg2mem.0, i32 0 ; <ptr> [#uses=1]
+ %tmp2 = load i32, ptr %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
+ %tmp4 = getelementptr %struct.foo, ptr %tmp, i32 %i.0.reg2mem.0, i32 1 ; <ptr> [#uses=1]
+ %tmp5 = load i32 , ptr %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]
+ %tmpLD2 = load ptr, ptr @X, align 4 ; <ptr> [#uses=1]
%exitcond = icmp eq i32 %indvar.next, 1200 ; <i1> [#uses=1]
br i1 %exitcond, label %bb2, label %bb1
@@ -46,7 +45,7 @@ bb2: ; preds = %bb1
define void @bam(i64 %Size) nounwind noinline #0 {
entry:
- %0 = load %struct.foo*, %struct.foo** @X, align 4
+ %0 = load ptr, ptr @X, align 4
ret void
}
diff --git a/llvm/test/Transforms/GlobalOpt/int_sideeffect.ll b/llvm/test/Transforms/GlobalOpt/int_sideeffect.ll
index c85a4d5aed3ad..02f126c9b7b51 100644
--- a/llvm/test/Transforms/GlobalOpt/int_sideeffect.ll
+++ b/llvm/test/Transforms/GlobalOpt/int_sideeffect.ll
@@ -6,11 +6,11 @@
declare void @llvm.sideeffect()
- at llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [ { i32, void ()*, i8* } { i32 65535, void ()* @ctor, i8* null } ]
+ at llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [ { i32, ptr, ptr } { i32 65535, ptr @ctor, ptr null } ]
@G = global i32 0
define internal void @ctor() {
- store i32 1, i32* @G
+ store i32 1, ptr @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
index 8778eb6f17984..63fe72dc17ccf 100644
--- a/llvm/test/Transforms/GlobalOpt/integer-bool-dwarf.ll
+++ b/llvm/test/Transforms/GlobalOpt/integer-bool-dwarf.ll
@@ -11,21 +11,21 @@
; Function Attrs: noinline nounwind optnone uwtable
define void @set1() #0 !dbg !11 {
entry:
- store i32 111, i32* @foo, align 4, !dbg !14
+ store i32 111, ptr @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
+ store i32 0, ptr @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
+ %0 = load i32, ptr @foo, align 4, !dbg !22
ret i32 %0, !dbg !23
}
diff --git a/llvm/test/Transforms/GlobalOpt/integer-bool.ll b/llvm/test/Transforms/GlobalOpt/integer-bool.ll
index 3ea259182f556..84cf64d2ba4ac 100644
--- a/llvm/test/Transforms/GlobalOpt/integer-bool.ll
+++ b/llvm/test/Transforms/GlobalOpt/integer-bool.ll
@@ -7,20 +7,20 @@
; CHECK: global i1 false
define void @set1() {
- store i32 0, i32 addrspace(1)* @G
+ store i32 0, ptr addrspace(1) @G
; CHECK: store i1 false
ret void
}
define void @set2() {
- store i32 1, i32 addrspace(1)* @G
+ store i32 1, ptr addrspace(1) @G
; CHECK: store i1 true
ret void
}
define i1 @get() {
; CHECK-LABEL: @get(
- %A = load i32, i32 addrspace(1) * @G
+ %A = load i32, ptr addrspace(1) @G
%C = icmp slt i32 %A, 2
ret i1 %C
; CHECK: ret i1 true
diff --git a/llvm/test/Transforms/GlobalOpt/invariant.group.ll b/llvm/test/Transforms/GlobalOpt/invariant.group.ll
index d758d58d5c731..f91bc954a3777 100644
--- a/llvm/test/Transforms/GlobalOpt/invariant.group.ll
+++ b/llvm/test/Transforms/GlobalOpt/invariant.group.ll
@@ -1,7 +1,7 @@
; RUN: opt -S -passes=globalopt < %s | FileCheck %s
; CHECK: @llvm.global_ctors = appending global [1 x {{.*}}@_GLOBAL__I_c
- at llvm.global_ctors = appending global [3 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__I_a, i8* null }, { i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__I_b, i8* null }, { i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__I_c, i8* null }]
+ at llvm.global_ctors = appending global [3 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__I_a, ptr null }, { i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__I_b, ptr null }, { i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__I_c, ptr null }]
; CHECK: @tmp = local_unnamed_addr global i32 42
; CHECK: @tmp2 = local_unnamed_addr global i32 42
@@ -9,7 +9,7 @@
@tmp = global i32 0
@tmp2 = global i32 0
@tmp3 = global i32 0
- at ptrToTmp3 = global i32* null
+ at ptrToTmp3 = global ptr null
define i32 @TheAnswerToLifeTheUniverseAndEverything() {
ret i32 42
@@ -27,48 +27,43 @@ enter:
%valptr = alloca i32
%val = call i32 @TheAnswerToLifeTheUniverseAndEverything()
- store i32 %val, i32* @tmp
- store i32 %val, i32* %valptr
+ store i32 %val, ptr @tmp
+ store i32 %val, ptr %valptr
- %0 = bitcast i32* %valptr to i8*
- %barr = call i8* @llvm.launder.invariant.group(i8* %0)
- %1 = getelementptr i8, i8* %barr, i32 0
- %2 = bitcast i8* %1 to i32*
+ %barr = call ptr @llvm.launder.invariant.group(ptr %valptr)
- %val2 = load i32, i32* %2
- store i32 %val2, i32* @tmp2
+ %val2 = load i32, ptr %barr
+ store i32 %val2, ptr @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
+; %val = load i32, ptr %ptrVal, !invariant.group !0
; into
-; %val = load i32, i32* @tmp3, !invariant.group !0
+; %val = load i32, ptr @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
+ store i32 13, ptr @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*
+ %barr = call ptr @llvm.launder.invariant.group(ptr @tmp3)
- store i32* %1, i32** @ptrToTmp3
- store i32 42, i32* %1, !invariant.group !0
+ store ptr %barr, ptr @ptrToTmp3
+ store i32 42, ptr %barr, !invariant.group !0
ret void
}
define void @usage_of_globals() {
entry:
- %ptrVal = load i32*, i32** @ptrToTmp3
- %val = load i32, i32* %ptrVal, !invariant.group !0
+ %ptrVal = load ptr, ptr @ptrToTmp3
+ %val = load i32, ptr %ptrVal, !invariant.group !0
call void @changeTmp3ValAndCallBarrierInside()
- %val2 = load i32, i32* @tmp3, !invariant.group !0
+ %val2 = load i32, ptr @tmp3, !invariant.group !0
ret void;
}
@@ -77,36 +72,32 @@ entry:
define void @_GLOBAL__I_b() {
enter:
%val = call i32 @TheAnswerToLifeTheUniverseAndEverything()
- %p1 = bitcast i32* @tmp4 to i8*
- %p2 = call i8* @llvm.strip.invariant.group.p0i8(i8* %p1)
- %p3 = bitcast i8* %p2 to i32*
- store i32 %val, i32* %p3
+ %p2 = call ptr @llvm.strip.invariant.group.p0(ptr @tmp4)
+ store i32 %val, ptr %p2
ret void
}
@tmp5 = global i32 0
- at tmp6 = global i32* null
-; CHECK: @tmp6 = local_unnamed_addr global i32* null
-
-define i32* @_dont_return_param(i32* %p) {
- %p1 = bitcast i32* %p to i8*
- %p2 = call i8* @llvm.launder.invariant.group(i8* %p1)
- %p3 = bitcast i8* %p2 to i32*
- ret i32* %p3
+ at tmp6 = global ptr null
+; CHECK: @tmp6 = local_unnamed_addr global ptr null
+
+define ptr @_dont_return_param(ptr %p) {
+ %p2 = call ptr @llvm.launder.invariant.group(ptr %p)
+ ret ptr %p2
}
; We should bail out if we return any pointers derived via invariant.group intrinsics at any point.
define void @_GLOBAL__I_c() {
enter:
- %tmp5 = call i32* @_dont_return_param(i32* @tmp5)
- store i32* %tmp5, i32** @tmp6
+ %tmp5 = call ptr @_dont_return_param(ptr @tmp5)
+ store ptr %tmp5, ptr @tmp6
ret void
}
declare void @changeTmp3ValAndCallBarrierInside()
-declare i8* @llvm.launder.invariant.group(i8*)
-declare i8* @llvm.strip.invariant.group.p0i8(i8*)
+declare ptr @llvm.launder.invariant.group(ptr)
+declare ptr @llvm.strip.invariant.group.p0(ptr)
!0 = !{}
diff --git a/llvm/test/Transforms/GlobalOpt/invoke.ll b/llvm/test/Transforms/GlobalOpt/invoke.ll
index 212d909cf11cb..b24b9aa54b468 100644
--- a/llvm/test/Transforms/GlobalOpt/invoke.ll
+++ b/llvm/test/Transforms/GlobalOpt/invoke.ll
@@ -4,24 +4,24 @@
; Globalopt should be able to evaluate an invoke.
; CHECK: @tmp = local_unnamed_addr global i32 1
- at llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__I_a, i8* null }]
+ at llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__I_a, ptr null }]
@tmp = global i32 0
define i32 @one() {
ret i32 1
}
-define void @_GLOBAL__I_a() personality i8* undef {
+define void @_GLOBAL__I_a() personality ptr undef {
bb:
%tmp1 = invoke i32 @one()
to label %bb2 unwind label %bb4
bb2: ; preds = %bb
- store i32 %tmp1, i32* @tmp
+ store i32 %tmp1, ptr @tmp
ret void
bb4: ; preds = %bb
- %tmp5 = landingpad { i8*, i32 }
- filter [0 x i8*] zeroinitializer
+ %tmp5 = landingpad { ptr, i32 }
+ filter [0 x ptr] zeroinitializer
unreachable
}
diff --git a/llvm/test/Transforms/GlobalOpt/iterate.ll b/llvm/test/Transforms/GlobalOpt/iterate.ll
index 79f0750324e5e..be6ebe82bb081 100644
--- a/llvm/test/Transforms/GlobalOpt/iterate.ll
+++ b/llvm/test/Transforms/GlobalOpt/iterate.ll
@@ -1,11 +1,11 @@
; RUN: opt < %s -passes=globalopt -S | FileCheck %s
; CHECK-NOT: %G
- at G = internal global i32 0 ; <i32*> [#uses=1]
- at H = internal global { i32* } { i32* @G } ; <{ i32* }*> [#uses=1]
+ at G = internal global i32 0 ; <ptr> [#uses=1]
+ at H = internal global { ptr } { ptr @G } ; <ptr> [#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]
+ %G = load ptr, ptr @H ; <ptr> [#uses=1]
+ %GV = load i32, ptr %G ; <i32> [#uses=1]
ret i32 %GV
}
diff --git a/llvm/test/Transforms/GlobalOpt/large-element-size.ll b/llvm/test/Transforms/GlobalOpt/large-element-size.ll
index 1c09152138084..914112af313a5 100644
--- a/llvm/test/Transforms/GlobalOpt/large-element-size.ll
+++ b/llvm/test/Transforms/GlobalOpt/large-element-size.ll
@@ -7,6 +7,6 @@ target datalayout = "p:32:32"
%struct.u.0 = type { i32, i32, i32, i8 }
@s = external global [700 x [24000 x %struct.s.2]], align 1
- at p = global %struct.s.2* bitcast (i8* getelementptr (i8, i8* bitcast ([700 x [24000 x %struct.s.2]]* @s to i8*), i64 2247483647) to %struct.s.2*), align 1
+ at p = global ptr getelementptr (i8, ptr @s, i64 2247483647), align 1
-; CHECK: @p = local_unnamed_addr global %struct.s.2* bitcast (i8* getelementptr (i8, i8* bitcast ([700 x [24000 x %struct.s.2]]* @s to i8*), i32 -2047483649) to %struct.s.2*), align 1
+; CHECK: @p = local_unnamed_addr global ptr getelementptr (i8, ptr @s, i32 -2047483649), align 1
diff --git a/llvm/test/Transforms/GlobalOpt/large-int-crash.ll b/llvm/test/Transforms/GlobalOpt/large-int-crash.ll
index 0efdfdaf70096..73f1e3cb32504 100644
--- a/llvm/test/Transforms/GlobalOpt/large-int-crash.ll
+++ b/llvm/test/Transforms/GlobalOpt/large-int-crash.ll
@@ -5,19 +5,19 @@
define void @foo() {
; CHECK-LABEL: @foo(
-; CHECK-NEXT: [[T0_B:%.*]] = load i1, i1* @X
+; CHECK-NEXT: [[T0_B:%.*]] = load i1, ptr @X
; CHECK-NEXT: [[T0:%.*]] = select i1 [[T0_B]], i128 18446744073709551616, i128 0
; CHECK-NEXT: ret void
;
- %t0 = load i128, i128* @X, align 8
+ %t0 = load i128, ptr @X, align 8
ret void
}
define void @store() {
; CHECK-LABEL: @store(
-; CHECK-NEXT: store i1 true, i1* @X
+; CHECK-NEXT: store i1 true, ptr @X
; CHECK-NEXT: ret void
;
- store i128 18446744073709551616, i128* @X, align 8
+ store i128 18446744073709551616, ptr @X, align 8
ret void
}
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
index 60d97cf06c9c0..4e8b0c4da68e9 100644
--- a/llvm/test/Transforms/GlobalOpt/load-store-global-no-null-opt.ll
+++ b/llvm/test/Transforms/GlobalOpt/load-store-global-no-null-opt.ll
@@ -1,26 +1,25 @@
; RUN: opt < %s -passes=globalopt -S | FileCheck %s
- at a = internal global i64* null, align 8
+ at a = internal global ptr 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
+; CHECK: getelementptr ptr, ptr @a, i32 1
+; CHECK: store ptr inttoptr (i64 1 to ptr), ptr @a
+ %g = getelementptr ptr, ptr @a, i32 1
+ %cmp = icmp ne ptr null, @a
+ %cmp2 = icmp eq ptr null, @a
+ %cmp3 = icmp eq ptr null, %g
+ store ptr inttoptr (i64 1 to ptr), ptr @a, align 8
+ %l = load ptr, ptr @a, align 8
ret void
}
-define i64* @bar() {
- %X = load i64*, i64** @a, align 8
- ret i64* %X
+define ptr @bar() {
+ %X = load ptr, ptr @a, align 8
+ ret ptr %X
; CHECK-LABEL: @bar(
; CHECK: load
}
diff --git a/llvm/test/Transforms/GlobalOpt/load-store-global.ll b/llvm/test/Transforms/GlobalOpt/load-store-global.ll
index a02469f930ea3..521279b5882f2 100644
--- a/llvm/test/Transforms/GlobalOpt/load-store-global.ll
+++ b/llvm/test/Transforms/GlobalOpt/load-store-global.ll
@@ -1,35 +1,34 @@
; RUN: opt < %s -passes=globalopt -S | FileCheck %s
- at G = internal global i32 17 ; <i32*> [#uses=3]
+ at G = internal global i32 17 ; <ptr> [#uses=3]
; CHECK-NOT: @G
define void @foo() {
- %V = load i32, i32* @G ; <i32> [#uses=1]
- store i32 %V, i32* @G
+ %V = load i32, ptr @G ; <i32> [#uses=1]
+ store i32 %V, ptr @G
ret void
; CHECK-LABEL: @foo(
; CHECK-NEXT: ret void
}
define i32 @bar() {
- %X = load i32, i32* @G ; <i32> [#uses=1]
+ %X = load i32, ptr @G ; <i32> [#uses=1]
ret i32 %X
; CHECK-LABEL: @bar(
; CHECK-NEXT: ret i32 17
}
- at a = internal global i64* null, align 8
+ at a = internal global ptr 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
+ %g = getelementptr ptr, ptr @a, i32 1
+ %cmp = icmp ne ptr null, @a
+ %cmp2 = icmp eq ptr null, @a
+ %cmp3 = icmp eq ptr null, %g
+ store ptr inttoptr (i64 1 to ptr), ptr @a, align 8
+ %l = load ptr, ptr @a, align 8
ret void
; CHECK-LABEL: @qux(
; CHECK-NOT: store
diff --git a/llvm/test/Transforms/GlobalOpt/localize-constexpr-debuginfo.ll b/llvm/test/Transforms/GlobalOpt/localize-constexpr-debuginfo.ll
index 96ae7700ead89..18dc038fce66a 100644
--- a/llvm/test/Transforms/GlobalOpt/localize-constexpr-debuginfo.ll
+++ b/llvm/test/Transforms/GlobalOpt/localize-constexpr-debuginfo.ll
@@ -3,27 +3,25 @@
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
- at _ZL1x = internal global [200 x i8]* null, align 8, !dbg !0
+ at _ZL1x = internal global ptr null, align 8, !dbg !0
-define i32 @main(i32 %argc, i8** %argv) norecurse !dbg !18 {
+define i32 @main(i32 %argc, ptr %argv) norecurse !dbg !18 {
; CHECK: define i32 @main
; Make sure we localized the global.
-; CHECK: alloca [200 x i8]*
+; CHECK: alloca ptr
; 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
+ call void @llvm.dbg.value(metadata ptr %argv, metadata !25, metadata !23), !dbg !26
+ %0 = load ptr, ptr %argv, align 8, !dbg !27
+ store ptr %0, ptr @_ZL1x, align 8, !dbg !29
+ call void @llvm.dbg.value(metadata ptr @_ZL1x, metadata !30, metadata !23), !dbg !31
+ %1 = load ptr, ptr @_ZL1x, align 8, !dbg !32
+ %2 = load i8, ptr %1, align 1, !dbg !33
+ %conv = sext i8 %2 to i32, !dbg !33
ret i32 %conv, !dbg !34
}
diff --git a/llvm/test/Transforms/GlobalOpt/localize-constexpr.ll b/llvm/test/Transforms/GlobalOpt/localize-constexpr.ll
index e1a06b58364a0..e6545e08b7138 100644
--- a/llvm/test/Transforms/GlobalOpt/localize-constexpr.ll
+++ b/llvm/test/Transforms/GlobalOpt/localize-constexpr.ll
@@ -7,13 +7,13 @@ define i8 @f() norecurse {
; CHECK: alloca
; CHECK-NOT: @G
; CHECK: }
- store i32 42, i32* @G
- %a = load i8, i8* bitcast (i32* @G to i8*)
+ store i32 42, ptr @G
+ %a = load i8, ptr @G
ret i8 %a
}
@H = internal global i32 42
- at Halias = alias i32, i32* @H
+ at Halias = alias i32, ptr @H
; @H can't be localized because @Halias uses it, and @Halias can't be converted to an instruction.
define i8 @g() norecurse {
@@ -21,8 +21,8 @@ define i8 @g() norecurse {
; CHECK-NOT: alloca
; CHECK: @H
; CHECK: }
- store i32 42, i32* @H
- %a = load i8, i8* bitcast (i32* @H to i8*)
+ store i32 42, ptr @H
+ %a = load i8, ptr @H
ret i8 %a
}
diff --git a/llvm/test/Transforms/GlobalOpt/long-compilation-global-sra.ll b/llvm/test/Transforms/GlobalOpt/long-compilation-global-sra.ll
index c71ac3258c403..1fd79379b311f 100644
--- a/llvm/test/Transforms/GlobalOpt/long-compilation-global-sra.ll
+++ b/llvm/test/Transforms/GlobalOpt/long-compilation-global-sra.ll
@@ -40,17 +40,17 @@ target triple = "x86_64-unknown-linux-gnu"
; Function Attrs: norecurse uwtable
define dso_local i32 @main() #0 {
%1 = alloca i32, align 4
- store i32 0, i32* %1, align 4
- store i8 0, i8* getelementptr inbounds ([67108864 x i8], [67108864 x i8]* @LargeBufferE, i64 0, i64 0), align 16
- %2 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str, i64 0, i64 0))
- %3 = load i8, i8* getelementptr inbounds ([67108864 x i8], [67108864 x i8]* @LargeBufferE, i64 0, i64 0), align 16
+ store i32 0, ptr %1, align 4
+ store i8 0, ptr @LargeBufferE, align 16
+ %2 = call i32 (ptr, ...) @printf(ptr @.str)
+ %3 = load i8, ptr @LargeBufferE, align 16
%4 = sext i8 %3 to i32
%5 = icmp eq i32 %4, 0
%6 = zext i1 %5 to i32
ret i32 %6
}
-declare dso_local i32 @printf(i8*, ...) #0
+declare dso_local i32 @printf(ptr, ...) #0
attributes #0 = { norecurse uwtable }
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
index 4cbe837669900..c5fb37033bb3c 100644
--- a/llvm/test/Transforms/GlobalOpt/malloc-promote-1-no-null-opt.ll
+++ b/llvm/test/Transforms/GlobalOpt/malloc-promote-1-no-null-opt.ll
@@ -2,38 +2,36 @@
; RUN: opt < %s -passes=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"
- at G = internal global i32* null ; <i32**> [#uses=3]
+ at G = internal global ptr null ; <ptr> [#uses=3]
;.
-; CHECK: @[[G:[a-zA-Z0-9_$"\\.-]+]] = internal unnamed_addr global i32* null
+; CHECK: @[[G:[a-zA-Z0-9_$"\\.-]+]] = internal unnamed_addr global ptr null
;.
define void @init() #0 {
; CHECK-LABEL: @init(
-; CHECK-NEXT: [[MALLOCCALL:%.*]] = tail call i8* @malloc(i64 4)
-; CHECK-NEXT: [[P:%.*]] = bitcast i8* [[MALLOCCALL]] to i32*
-; CHECK-NEXT: store i32* [[P]], i32** @G, align 8
-; CHECK-NEXT: [[GV:%.*]] = load i32*, i32** @G, align 8
-; CHECK-NEXT: store i32 0, i32* [[GV]], align 4
+; CHECK-NEXT: [[MALLOCCALL:%.*]] = tail call ptr @malloc(i64 4)
+; CHECK-NEXT: store ptr [[MALLOCCALL]], ptr @G, align 8
+; CHECK-NEXT: [[GV:%.*]] = load ptr, ptr @G, align 8
+; CHECK-NEXT: store i32 0, ptr [[GV]], align 4
; CHECK-NEXT: ret void
;
- %malloccall = tail call i8* @malloc(i64 4)
- %P = bitcast i8* %malloccall to i32*
- store i32* %P, i32** @G
- %GV = load i32*, i32** @G
- store i32 0, i32* %GV
+ %malloccall = tail call ptr @malloc(i64 4)
+ store ptr %malloccall, ptr @G
+ %GV = load ptr, ptr @G
+ store i32 0, ptr %GV
ret void
}
-declare noalias i8* @malloc(i64)
+declare noalias ptr @malloc(i64)
define i32 @get() #0 {
; CHECK-LABEL: @get(
-; CHECK-NEXT: [[GV:%.*]] = load i32*, i32** @G, align 8
-; CHECK-NEXT: [[V:%.*]] = load i32, i32* [[GV]], align 4
+; CHECK-NEXT: [[GV:%.*]] = load ptr, ptr @G, align 8
+; CHECK-NEXT: [[V:%.*]] = load i32, ptr [[GV]], align 4
; CHECK-NEXT: ret i32 [[V]]
;
- %GV = load i32*, i32** @G
- %V = load i32, i32* %GV
+ %GV = load ptr, ptr @G
+ %V = load i32, ptr %GV
ret i32 %V
}
diff --git a/llvm/test/Transforms/GlobalOpt/malloc-promote-1.ll b/llvm/test/Transforms/GlobalOpt/malloc-promote-1.ll
index b398d07532792..e1fa45f3ceecf 100644
--- a/llvm/test/Transforms/GlobalOpt/malloc-promote-1.ll
+++ b/llvm/test/Transforms/GlobalOpt/malloc-promote-1.ll
@@ -2,28 +2,27 @@
; RUN: opt < %s -passes=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"
- at G = internal global i32* null
+ at G = internal global ptr null
define void @init() {
; CHECK-LABEL: @init(
; CHECK-NEXT: ret void
;
- %malloccall = tail call i8* @malloc(i64 4)
- %P = bitcast i8* %malloccall to i32*
- store i32* %P, i32** @G
- %GV = load i32*, i32** @G
- store i32 0, i32* %GV
+ %malloccall = tail call ptr @malloc(i64 4)
+ store ptr %malloccall, ptr @G
+ %GV = load ptr, ptr @G
+ store i32 0, ptr %GV
ret void
}
-declare noalias i8* @malloc(i64) allockind("alloc,uninitialized") allocsize(0)
+declare noalias ptr @malloc(i64) allockind("alloc,uninitialized") allocsize(0)
define i32 @get() {
; CHECK-LABEL: @get(
; CHECK-NEXT: ret i32 0
;
- %GV = load i32*, i32** @G
- %V = load i32, i32* %GV
+ %GV = load ptr, ptr @G
+ %V = load i32, ptr %GV
ret i32 %V
}
@@ -33,7 +32,7 @@ define void @foo(i64 %Size) nounwind noinline #0 {
; CHECK-NEXT: ret void
;
entry:
- %0 = load i32*, i32** @G, align 4
+ %0 = load ptr, ptr @G, align 4
ret void
}
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
index 0b31aaf6a2825..ebfdd82cbedf5 100644
--- a/llvm/test/Transforms/GlobalOpt/malloc-promote-2-no-null-opt.ll
+++ b/llvm/test/Transforms/GlobalOpt/malloc-promote-2-no-null-opt.ll
@@ -2,31 +2,29 @@
; RUN: opt < %s -passes=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"
- at G = internal global i32* null
+ at G = internal global ptr null
;.
-; CHECK: @[[G:[a-zA-Z0-9_$"\\.-]+]] = internal unnamed_addr global i32* null
+; CHECK: @[[G:[a-zA-Z0-9_$"\\.-]+]] = internal unnamed_addr global ptr null
;.
define void @t() #0 {
; CHECK-LABEL: @t(
-; CHECK-NEXT: [[MALLOCCALL:%.*]] = tail call i8* @malloc(i64 400)
-; CHECK-NEXT: [[P:%.*]] = bitcast i8* [[MALLOCCALL]] to i32*
-; CHECK-NEXT: store i32* [[P]], i32** @G, align 8
-; CHECK-NEXT: [[GV:%.*]] = load i32*, i32** @G, align 8
-; CHECK-NEXT: [[GVE:%.*]] = getelementptr i32, i32* [[GV]], i32 40
-; CHECK-NEXT: store i32 20, i32* [[GVE]], align 4
+; CHECK-NEXT: [[MALLOCCALL:%.*]] = tail call ptr @malloc(i64 400)
+; CHECK-NEXT: store ptr [[MALLOCCALL]], ptr @G, align 8
+; CHECK-NEXT: [[GV:%.*]] = load ptr, ptr @G, align 8
+; CHECK-NEXT: [[GVE:%.*]] = getelementptr i32, ptr [[GV]], i32 40
+; CHECK-NEXT: store i32 20, ptr [[GVE]], align 4
; 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
+ %malloccall = tail call ptr @malloc(i64 mul (i64 100, i64 4))
+ store ptr %malloccall, ptr @G
+ %GV = load ptr, ptr @G
+ %GVe = getelementptr i32, ptr %GV, i32 40
+ store i32 20, ptr %GVe
ret void
}
-declare noalias i8* @malloc(i64)
+declare noalias ptr @malloc(i64)
attributes #0 = { null_pointer_is_valid }
;.
; CHECK: attributes #[[ATTR0:[0-9]+]] = { null_pointer_is_valid }
diff --git a/llvm/test/Transforms/GlobalOpt/malloc-promote-2.ll b/llvm/test/Transforms/GlobalOpt/malloc-promote-2.ll
index d0cc063539d1e..766a3595607f9 100644
--- a/llvm/test/Transforms/GlobalOpt/malloc-promote-2.ll
+++ b/llvm/test/Transforms/GlobalOpt/malloc-promote-2.ll
@@ -2,22 +2,21 @@
; RUN: opt < %s -passes=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"
- at G = internal global i32* null
+ at G = internal global ptr null
define void @t() {
; CHECK-LABEL: @t(
; 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
+ %malloccall = tail call ptr @malloc(i64 mul (i64 100, i64 4))
+ store ptr %malloccall, ptr @G
+ %GV = load ptr, ptr @G
+ %GVe = getelementptr i32, ptr %GV, i32 40
+ store i32 20, ptr %GVe
ret void
}
-declare noalias i8* @malloc(i64) allockind("alloc,uninitialized") allocsize(0)
+declare noalias ptr @malloc(i64) allockind("alloc,uninitialized") allocsize(0)
define void @foo(i64 %Size) nounwind noinline #0 {
; CHECK-LABEL: @foo(
@@ -25,7 +24,7 @@ define void @foo(i64 %Size) nounwind noinline #0 {
; CHECK-NEXT: ret void
;
entry:
- %0 = load i32*, i32** @G, align 4
+ %0 = load ptr, ptr @G, align 4
ret void
}
diff --git a/llvm/test/Transforms/GlobalOpt/malloc-promote-3.ll b/llvm/test/Transforms/GlobalOpt/malloc-promote-3.ll
index fe7b4753dd5cc..ee98e7e2dd86f 100644
--- a/llvm/test/Transforms/GlobalOpt/malloc-promote-3.ll
+++ b/llvm/test/Transforms/GlobalOpt/malloc-promote-3.ll
@@ -2,31 +2,29 @@
; RUN: opt < %s -passes=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"
- at G = internal global i32* null
+ at G = internal global ptr null
;.
-; CHECK: @[[G:[a-zA-Z0-9_$"\\.-]+]] = internal unnamed_addr global i32* null
+; CHECK: @[[G:[a-zA-Z0-9_$"\\.-]+]] = internal unnamed_addr global ptr null
;.
define void @t() {
; CHECK-LABEL: @t(
-; CHECK-NEXT: [[MALLOCCALL:%.*]] = tail call i8* @malloc(i64 400) #[[ATTR0:[0-9]+]]
-; CHECK-NEXT: [[P:%.*]] = bitcast i8* [[MALLOCCALL]] to i32*
-; CHECK-NEXT: store i32* [[P]], i32** @G, align 8
-; CHECK-NEXT: [[GV:%.*]] = load i32*, i32** @G, align 8
-; CHECK-NEXT: [[GVE:%.*]] = getelementptr i32, i32* [[GV]], i32 40
-; CHECK-NEXT: store i32 20, i32* [[GVE]], align 4
+; CHECK-NEXT: [[MALLOCCALL:%.*]] = tail call ptr @malloc(i64 400) #[[ATTR0:[0-9]+]]
+; CHECK-NEXT: store ptr [[MALLOCCALL]], ptr @G, align 8
+; CHECK-NEXT: [[GV:%.*]] = load ptr, ptr @G, align 8
+; CHECK-NEXT: [[GVE:%.*]] = getelementptr i32, ptr [[GV]], i32 40
+; CHECK-NEXT: store i32 20, ptr [[GVE]], align 4
; CHECK-NEXT: ret void
;
- %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
+ %malloccall = tail call ptr @malloc(i64 mul (i64 100, i64 4)) nobuiltin
+ store ptr %malloccall, ptr @G
+ %GV = load ptr, ptr @G
+ %GVe = getelementptr i32, ptr %GV, i32 40
+ store i32 20, ptr %GVe
ret void
}
-declare noalias i8* @malloc(i64)
+declare noalias ptr @malloc(i64)
;.
; CHECK: attributes #[[ATTR0]] = { nobuiltin }
;.
diff --git a/llvm/test/Transforms/GlobalOpt/malloc-promote-4.ll b/llvm/test/Transforms/GlobalOpt/malloc-promote-4.ll
index a58d177e9f73a..9091806e657a6 100644
--- a/llvm/test/Transforms/GlobalOpt/malloc-promote-4.ll
+++ b/llvm/test/Transforms/GlobalOpt/malloc-promote-4.ll
@@ -1,14 +1,14 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --function-signature --check-globals
; RUN: opt -S -passes=globalopt -o - < %s | FileCheck %s
- at g = internal global i32* null, align 8
+ at g = internal global ptr null, align 8
;.
; CHECK: @[[G_INIT:[a-zA-Z0-9_$"\\.-]+]] = internal unnamed_addr global i1 false
;.
define internal i32 @f1() {
; CHECK-LABEL: define {{[^@]+}}@f1() unnamed_addr {
-; CHECK-NEXT: [[G_INIT_VAL:%.*]] = load i1, i1* @g.init, align 1
+; CHECK-NEXT: [[G_INIT_VAL:%.*]] = load i1, ptr @g.init, align 1
; CHECK-NEXT: call fastcc void @f2()
; CHECK-NEXT: [[NOTINIT:%.*]] = xor i1 [[G_INIT_VAL]], true
; CHECK-NEXT: br i1 [[NOTINIT]], label [[TMP1:%.*]], label [[TMP2:%.*]]
@@ -20,9 +20,9 @@ define internal i32 @f1() {
; CHECK-NEXT: [[TMP4:%.*]] = phi i32 [ -1, [[TMP1]] ], [ 1, [[TMP2]] ]
; CHECK-NEXT: ret i32 [[TMP4]]
;
- %1 = load i32*, i32** @g, align 8
+ %1 = load ptr, ptr @g, align 8
call void @f2();
- %2 = icmp eq i32* %1, null
+ %2 = icmp eq ptr %1, null
br i1 %2, label %3, label %4
3: ; preds = %0
@@ -38,24 +38,23 @@ define internal i32 @f1() {
define internal void @f2() {
; CHECK-LABEL: define {{[^@]+}}@f2() unnamed_addr {
-; CHECK-NEXT: store i1 true, i1* @g.init, align 1
+; CHECK-NEXT: store i1 true, ptr @g.init, align 1
; CHECK-NEXT: ret void
;
- %1 = call noalias i8* @malloc(i64 4)
- %2 = bitcast i8* %1 to i32*
- store i32* %2, i32** @g, align 8
+ %1 = call noalias ptr @malloc(i64 4)
+ store ptr %1, ptr @g, align 8
ret void
}
define dso_local i32 @main() {
; CHECK-LABEL: define {{[^@]+}}@main() local_unnamed_addr {
-; CHECK-NEXT: store i1 false, i1* @g.init, align 1
+; CHECK-NEXT: store i1 false, ptr @g.init, align 1
; CHECK-NEXT: [[TMP1:%.*]] = call fastcc i32 @f1()
; CHECK-NEXT: ret i32 [[TMP1]]
;
- store i32* null, i32** @g, align 8
+ store ptr null, ptr @g, align 8
%1 = call i32 @f1()
ret i32 %1
}
-declare dso_local noalias i8* @malloc(i64) allockind("alloc,uninitialized") allocsize(0)
+declare dso_local noalias ptr @malloc(i64) allockind("alloc,uninitialized") allocsize(0)
diff --git a/llvm/test/Transforms/GlobalOpt/malloc-promote-5.ll b/llvm/test/Transforms/GlobalOpt/malloc-promote-5.ll
index f594b465bd6ca..92b1c946923cb 100644
--- a/llvm/test/Transforms/GlobalOpt/malloc-promote-5.ll
+++ b/llvm/test/Transforms/GlobalOpt/malloc-promote-5.ll
@@ -1,20 +1,18 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt -passes=globalopt -S < %s | FileCheck %s
- at g = internal global i32* null, align 8
+ at g = internal global ptr null, align 8
define signext i32 @f() local_unnamed_addr {
; CHECK-LABEL: @f(
; CHECK-NEXT: entry:
-; CHECK-NEXT: store i16 -1, i16* bitcast ([4 x i8]* @g.body to i16*), align 2
+; CHECK-NEXT: store i16 -1, ptr @g.body, align 2
; CHECK-NEXT: ret i32 0
;
entry:
- %call = call i8* @malloc(i64 4)
- %b = bitcast i8* %call to i32*
- store i32* %b, i32** @g, align 8
- %b2 = bitcast i8* %call to i16*
- store i16 -1, i16* %b2
+ %call = call ptr @malloc(i64 4)
+ store ptr %call, ptr @g, align 8
+ store i16 -1, ptr %call
ret i32 0
}
@@ -23,26 +21,26 @@ define signext i32 @main() {
; CHECK-NEXT: entry:
; CHECK-NEXT: [[CALL:%.*]] = call signext i32 @f()
; CHECK-NEXT: call void @f1()
-; CHECK-NEXT: store i32 1, i32* bitcast ([4 x i8]* @g.body to i32*), align 4
+; CHECK-NEXT: store i32 1, ptr @g.body, align 4
; CHECK-NEXT: call void @f1()
-; CHECK-NEXT: store i8 2, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @g.body, i32 0, i32 0), align 4
+; CHECK-NEXT: store i8 2, ptr @g.body, align 4
; CHECK-NEXT: call void @f1()
-; CHECK-NEXT: [[RES:%.*]] = load i32, i32* bitcast ([4 x i8]* @g.body to i32*), align 4
+; CHECK-NEXT: [[RES:%.*]] = load i32, ptr @g.body, align 4
; CHECK-NEXT: ret i32 [[RES]]
;
entry:
%call = call signext i32 @f()
call void @f1()
- %v0 = load i32*, i32** @g, align 8
- store i32 1, i32* %v0, align 4
+ %v0 = load ptr, ptr @g, align 8
+ store i32 1, ptr %v0, align 4
call void @f1()
- %v1 = load i8*, i8** bitcast (i32** @g to i8**), align 8
- store i8 2, i8* %v1, align 4
+ %v1 = load ptr, ptr @g, align 8
+ store i8 2, ptr %v1, align 4
call void @f1()
- %v2 = load i32*, i32** @g, align 8
- %res = load i32, i32* %v2, align 4
+ %v2 = load ptr, ptr @g, align 8
+ %res = load i32, ptr %v2, align 4
ret i32 %res
}
-declare noalias align 16 i8* @malloc(i64) allockind("alloc,uninitialized") allocsize(0)
+declare noalias align 16 ptr @malloc(i64) allockind("alloc,uninitialized") allocsize(0)
declare void @f1()
diff --git a/llvm/test/Transforms/GlobalOpt/malloc-promote-6.ll b/llvm/test/Transforms/GlobalOpt/malloc-promote-6.ll
index f35e1aea60158..589bec58a982a 100644
--- a/llvm/test/Transforms/GlobalOpt/malloc-promote-6.ll
+++ b/llvm/test/Transforms/GlobalOpt/malloc-promote-6.ll
@@ -2,29 +2,27 @@
; CHECK-NOT: @global
- at global = internal global i8* null
- at llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @zot, i8* null }]
+ at global = internal global ptr null
+ at llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @zot, ptr null }]
-declare i8* @_Znwm(i64)
+declare ptr @_Znwm(i64)
define internal void @widget() {
- %tmp = tail call i8* @_Znwm(i64 0)
- %tmp2 = getelementptr inbounds i8, i8* %tmp, i64 0
- store i8* %tmp, i8** @global, align 8
- call void @baz(void ()* @spam)
+ %tmp = tail call ptr @_Znwm(i64 0)
+ store ptr %tmp, ptr @global, align 8
+ call void @baz(ptr @spam)
ret void
}
define internal void @spam() {
- %tmp = load i8*, i8** @global, align 8
- %tmp2 = getelementptr inbounds i8, i8* %tmp, i64 0
+ %tmp = load ptr, ptr @global, align 8
ret void
}
define internal void @zot() {
- call void @baz(void ()* @widget)
+ call void @baz(ptr @widget)
ret void
}
-declare void @baz(void ()*)
+declare void @baz(ptr)
diff --git a/llvm/test/Transforms/GlobalOpt/memcpy.ll b/llvm/test/Transforms/GlobalOpt/memcpy.ll
index c0700e5567f91..a2b5bad9a6a7b 100644
--- a/llvm/test/Transforms/GlobalOpt/memcpy.ll
+++ b/llvm/test/Transforms/GlobalOpt/memcpy.ll
@@ -1,13 +1,12 @@
; RUN: opt < %s -passes=globalopt -S | FileCheck %s
; CHECK: G1 = internal unnamed_addr constant
- at G1 = internal global [58 x i8] c"asdlfkajsdlfkajsd;lfkajds;lfkjasd;flkajsd;lkfja;sdlkfjasd\00" ; <[58 x i8]*> [#uses=1]
+ at G1 = internal global [58 x i8] c"asdlfkajsdlfkajsd;lfkajds;lfkjasd;flkajsd;lkfja;sdlkfjasd\00" ; <ptr> [#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)
+ call void @llvm.memcpy.p0.p0.i32(ptr align 1 %Blah, ptr align 1 @G1, i32 58, i1 false)
ret void
}
-declare void @llvm.memcpy.p0i8.p0i8.i32(i8* nocapture, i8* nocapture, i32, i1) nounwind
+declare void @llvm.memcpy.p0.p0.i32(ptr nocapture, ptr nocapture, i32, i1) nounwind
diff --git a/llvm/test/Transforms/GlobalOpt/memset-null.ll b/llvm/test/Transforms/GlobalOpt/memset-null.ll
index 9000b98056028..838c987e5d60b 100644
--- a/llvm/test/Transforms/GlobalOpt/memset-null.ll
+++ b/llvm/test/Transforms/GlobalOpt/memset-null.ll
@@ -1,29 +1,29 @@
; RUN: opt -passes=globalopt -S < %s | FileCheck %s
; PR10047
-%0 = type { i32, void ()*, i8* }
+%0 = type { i32, ptr, ptr }
%struct.A = type { [100 x i32] }
; CHECK: @a
@a = global %struct.A zeroinitializer, align 4
- at llvm.global_ctors = appending global [2 x %0] [%0 { i32 65535, void ()* @_GLOBAL__I_a, i8* null }, %0 { i32 65535, void ()* @_GLOBAL__I_b, i8* null }]
+ at llvm.global_ctors = appending global [2 x %0] [%0 { i32 65535, ptr @_GLOBAL__I_a, ptr null }, %0 { i32 65535, ptr @_GLOBAL__I_b, ptr null }]
-declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i1) nounwind
+declare void @llvm.memset.p0.i64(ptr 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
+ tail call void @llvm.memset.p0.i64(ptr align 4 @a, i8 0, i64 400, i1 false) nounwind
ret void
}
%struct.X = type { i8 }
- at y = global i8* null, align 8
+ at y = global ptr 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
+ %tmp.i.i.i = load ptr, ptr @y, align 8
+ tail call void @llvm.memset.p0.i64(ptr %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
index 9248b239624cd..dad7571e2f00a 100644
--- a/llvm/test/Transforms/GlobalOpt/memset.ll
+++ b/llvm/test/Transforms/GlobalOpt/memset.ll
@@ -4,28 +4,26 @@
; Both globals are write only, delete them.
- at G0 = internal global [58 x i8] c"asdlfkajsdlfkajsd;lfkajds;lfkjasd;flkajsd;lkfja;sdlkfjasd\00" ; <[58 x i8]*> [#uses=1]
- at G1 = internal global [4 x i32] [ i32 1, i32 2, i32 3, i32 4 ] ; <[4 x i32]*> [#uses=1]
+ at G0 = internal global [58 x i8] c"asdlfkajsdlfkajsd;lfkajds;lfkjasd;flkajsd;lkfja;sdlkfjasd\00" ; <ptr> [#uses=1]
+ at G1 = internal global [4 x i32] [ i32 1, i32 2, i32 3, i32 4 ] ; <ptr> [#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)
+ call void @llvm.memcpy.p0.p0.i32(ptr @G1, ptr %Blah, i32 16, i1 false)
+ call void @llvm.memset.p0.i32(ptr @G0, i8 17, i32 58, i1 false)
ret void
}
- at G0_as1 = internal addrspace(1) global [58 x i8] c"asdlfkajsdlfkajsd;lfkajds;lfkjasd;flkajsd;lkfja;sdlkfjasd\00" ; <[58 x i8]*> [#uses=1]
- at G1_as1 = internal addrspace(1) global [4 x i32] [ i32 1, i32 2, i32 3, i32 4 ] ; <[4 x i32]*> [#uses=1]
+ at G0_as1 = internal addrspace(1) global [58 x i8] c"asdlfkajsdlfkajsd;lfkajds;lfkjasd;flkajsd;lkfja;sdlkfjasd\00" ; <ptr> [#uses=1]
+ at G1_as1 = internal addrspace(1) global [4 x i32] [ i32 1, i32 2, i32 3, i32 4 ] ; <ptr> [#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)
+ call void @llvm.memcpy.p0.p0.i32(ptr addrspacecast (ptr addrspace(1) @G1_as1 to ptr), ptr %Blah, i32 16, i1 false)
+ call void @llvm.memset.p1.i32(ptr addrspace(1) @G0_as1, 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
+declare void @llvm.memcpy.p0.p0.i32(ptr nocapture, ptr nocapture, i32, i1) nounwind
+declare void @llvm.memset.p0.i32(ptr nocapture, i8, i32, i1) nounwind
+declare void @llvm.memset.p1.i32(ptr addrspace(1) nocapture, i8, i32, i1) nounwind
diff --git a/llvm/test/Transforms/GlobalOpt/metadata.ll b/llvm/test/Transforms/GlobalOpt/metadata.ll
index c420235d9cfb6..3b6e121d7ce6e 100644
--- a/llvm/test/Transforms/GlobalOpt/metadata.ll
+++ b/llvm/test/Transforms/GlobalOpt/metadata.ll
@@ -3,12 +3,12 @@
; PR6112 - When globalopt does RAUW(@G, %G), the metadata reference should drop
; to null. Function local metadata that references @G from a
diff erent function
; to that containing %G should likewise drop to null.
- at G = internal global i8** null
+ at G = internal global ptr null
-define i32 @main(i32 %argc, i8** %argv) norecurse {
+define i32 @main(i32 %argc, ptr %argv) norecurse {
; CHECK-LABEL: @main(
; CHECK: %G = alloca
- store i8** %argv, i8*** @G
+ store ptr %argv, ptr @G
ret i32 0
}
@@ -17,7 +17,7 @@ define void @foo(i32 %x) {
; 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)
+ call void @llvm.foo(metadata ptr @G, metadata i32 %x)
; CHECK: call void @llvm.foo(metadata ![[EMPTY:[0-9]+]], metadata i32 %x)
ret void
}
@@ -27,6 +27,6 @@ declare void @llvm.foo(metadata, metadata) nounwind readnone
!named = !{!0}
; CHECK: !named = !{![[NULL:[0-9]+]]}
-!0 = !{i8*** @G}
+!0 = !{ptr @G}
; CHECK-DAG: ![[NULL]] = distinct !{null}
; CHECK-DAG: ![[EMPTY]] = !{}
diff --git a/llvm/test/Transforms/GlobalOpt/naked_functions.ll b/llvm/test/Transforms/GlobalOpt/naked_functions.ll
index 1174070b32176..3b6064746a3e7 100644
--- a/llvm/test/Transforms/GlobalOpt/naked_functions.ll
+++ b/llvm/test/Transforms/GlobalOpt/naked_functions.ll
@@ -6,18 +6,18 @@
define i32 @bar() {
entry:
- %call = call i32 @foo(i32* @g)
-; CHECK: %call = call i32 @foo(i32* @g)
+ %call = call i32 @foo(ptr @g)
+; CHECK: %call = call i32 @foo(ptr @g)
ret i32 %call
}
-define internal i32 @foo(i32*) #0 {
+define internal i32 @foo(ptr) #0 {
entry:
%retval = alloca i32, align 4
call void asm sideeffect "ldr r0, [r0] \0Abx lr \0A", ""()
unreachable
}
-; CHECK: define internal i32 @foo(i32* %0)
+; CHECK: define internal i32 @foo(ptr %0)
attributes #0 = { naked }
diff --git a/llvm/test/Transforms/GlobalOpt/new-promote.ll b/llvm/test/Transforms/GlobalOpt/new-promote.ll
index 24b8d03240ec8..bf0b6a91fd76d 100644
--- a/llvm/test/Transforms/GlobalOpt/new-promote.ll
+++ b/llvm/test/Transforms/GlobalOpt/new-promote.ll
@@ -1,7 +1,7 @@
; RUN: opt -passes=globalopt -S < %s | FileCheck %s
%s = type { i32 }
- at g = internal global %s* null, align 8
+ at g = internal global ptr null, align 8
; Test code pattern for:
; class s { int a; s() { a = 1;} };
@@ -12,11 +12,9 @@ define internal void @f() {
; CHECK-LABEL: @f(
; CHECK-NEXT: ret void
;
- %1 = tail call i8* @_Znwm(i64 4)
- %2 = bitcast i8* %1 to %s*
- %3 = getelementptr inbounds %s, %s* %2, i64 0, i32 0
- store i32 1, i32* %3, align 4
- store i8* %1, i8** bitcast (%s** @g to i8**), align 8
+ %1 = tail call ptr @_Znwm(i64 4)
+ store i32 1, ptr %1, align 4
+ store ptr %1, ptr @g, align 8
ret void
}
@@ -28,13 +26,12 @@ define dso_local signext i32 @main() {
;
entry:
call void @f()
- %0 = load %s*, %s** @g, align 4
- %1 = getelementptr inbounds %s, %s* %0, i64 0, i32 0
- %2 = load i32, i32* %1, align 4
- ret i32 %2
+ %0 = load ptr, ptr @g, align 4
+ %1 = load i32, ptr %0, align 4
+ ret i32 %1
}
-declare nonnull i8* @_Znwm(i64)
+declare nonnull ptr @_Znwm(i64)
-declare signext i32 @printf(i8*, ...)
+declare signext i32 @printf(ptr, ...)
diff --git a/llvm/test/Transforms/GlobalOpt/null-check-global-value.ll b/llvm/test/Transforms/GlobalOpt/null-check-global-value.ll
index e75df2343c4d5..bff1a79fd9eeb 100644
--- a/llvm/test/Transforms/GlobalOpt/null-check-global-value.ll
+++ b/llvm/test/Transforms/GlobalOpt/null-check-global-value.ll
@@ -1,32 +1,32 @@
; RUN: opt -passes=globalopt -S < %s | FileCheck %s
-%sometype = type { i8* }
+%sometype = type { ptr }
- at map = internal unnamed_addr global %sometype* null, align 8
+ at map = internal unnamed_addr global ptr null, align 8
define void @Init() {
; CHECK-LABEL: @Init(
; CHECK-NEXT: entry:
-; CHECK-NEXT: store i1 true, i1* @map.init, align 1
+; CHECK-NEXT: store i1 true, ptr @map.init, align 1
; CHECK-NEXT: ret void
;
entry:
- %call = tail call noalias nonnull dereferenceable(48) i8* @_Znwm(i64 48)
- store i8* %call, i8** bitcast (%sometype** @map to i8**), align 8
+ %call = tail call noalias nonnull dereferenceable(48) ptr @_Znwm(i64 48)
+ store ptr %call, ptr @map, align 8
ret void
}
define void @Usage() {
; CHECK-LABEL: @Usage(
; CHECK-NEXT: entry:
-; CHECK-NEXT: [[MAP_INIT_VAL:%.*]] = load i1, i1* @map.init, align 1
+; CHECK-NEXT: [[MAP_INIT_VAL:%.*]] = load i1, ptr @map.init, align 1
; CHECK-NEXT: [[NOTINIT:%.*]] = xor i1 [[MAP_INIT_VAL]], true
; CHECK-NEXT: unreachable
;
entry:
- %0 = load i8*, i8** bitcast (%sometype** @map to i8**), align 8
- %.not = icmp eq i8* %0, null
+ %0 = load ptr, ptr @map, align 8
+ %.not = icmp eq ptr %0, null
unreachable
}
-declare i8* @_Znwm(i64)
+declare ptr @_Znwm(i64)
diff --git a/llvm/test/Transforms/GlobalOpt/phi-select.ll b/llvm/test/Transforms/GlobalOpt/phi-select.ll
index c9cd5c2ba640f..0fe8b3e0028b7 100644
--- a/llvm/test/Transforms/GlobalOpt/phi-select.ll
+++ b/llvm/test/Transforms/GlobalOpt/phi-select.ll
@@ -4,12 +4,12 @@
; RUN: opt < %s -passes=globalopt -S | FileCheck %s
; CHECK-NOT: global
- at X = internal global i32 4 ; <i32*> [#uses=2]
- at Y = internal global i32 5 ; <i32*> [#uses=2]
+ at X = internal global i32 4 ; <ptr> [#uses=2]
+ at Y = internal global i32 5 ; <ptr> [#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]
+ %P = select i1 %C, ptr @X, ptr @Y ; <ptr> [#uses=1]
+ %V = load i32, ptr %P ; <i32> [#uses=1]
ret i32 %V
}
@@ -21,7 +21,7 @@ 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]
+ %P = phi ptr [ @X, %0 ], [ @Y, %T ] ; <ptr> [#uses=1]
+ %V = load i32, ptr %P ; <i32> [#uses=1]
ret i32 %V
}
diff --git a/llvm/test/Transforms/GlobalOpt/pr33686.ll b/llvm/test/Transforms/GlobalOpt/pr33686.ll
index 6f09ba62dcbb1..da1c9cd43f887 100644
--- a/llvm/test/Transforms/GlobalOpt/pr33686.ll
+++ b/llvm/test/Transforms/GlobalOpt/pr33686.ll
@@ -12,6 +12,6 @@ entry:
ret void
notreachable:
- %patatino = select i1 undef, i16* @glob, i16* %patatino
+ %patatino = select i1 undef, ptr @glob, ptr %patatino
br label %notreachable
}
diff --git a/llvm/test/Transforms/GlobalOpt/pr39751.ll b/llvm/test/Transforms/GlobalOpt/pr39751.ll
index a042d74b1222a..6214d890efb25 100644
--- a/llvm/test/Transforms/GlobalOpt/pr39751.ll
+++ b/llvm/test/Transforms/GlobalOpt/pr39751.ll
@@ -11,10 +11,10 @@
define void @f1() {
; CHECK-LABEL: @f1(
; CHECK-NEXT: entry:
-; CHECK-NEXT: [[GEP:%.*]] = getelementptr inbounds [2 x i16], [2 x i16]* @a, i32 0, <2 x i32> <i32 0, i32 1>
+; CHECK-NEXT: [[GEP:%.*]] = getelementptr inbounds [2 x i16], ptr @a, i32 0, <2 x i32> <i32 0, i32 1>
; CHECK-NEXT: ret void
;
entry:
- %gep = getelementptr inbounds [2 x i16], [2 x i16]* @a, i32 0, <2 x i32> <i32 0, i32 1>
+ %gep = getelementptr inbounds [2 x i16], ptr @a, i32 0, <2 x i32> <i32 0, i32 1>
ret void
}
diff --git a/llvm/test/Transforms/GlobalOpt/pr51879.ll b/llvm/test/Transforms/GlobalOpt/pr51879.ll
index 44ed0c8870207..007713e6d2ae9 100644
--- a/llvm/test/Transforms/GlobalOpt/pr51879.ll
+++ b/llvm/test/Transforms/GlobalOpt/pr51879.ll
@@ -1,27 +1,27 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --check-globals
; RUN: opt -S -passes=globalopt < %s | FileCheck %s
-%type = type { { i8** } }
+%type = type { { ptr } }
@g = internal global %type zeroinitializer
- at g2 = external global i8*
+ at g2 = external global ptr
- at llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @ctor, i8* null }]
+ at llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @ctor, ptr null }]
;.
-; CHECK: @[[G:[a-zA-Z0-9_$"\\.-]+]] = internal global [[TYPE:%.*]] { { i8** } { i8** @g2 } }
-; CHECK: @[[G2:[a-zA-Z0-9_$"\\.-]+]] = external global i8*
-; CHECK: @[[LLVM_GLOBAL_CTORS:[a-zA-Z0-9_$"\\.-]+]] = appending global [0 x { i32, void ()*, i8* }] zeroinitializer
+; CHECK: @[[G:[a-zA-Z0-9_$"\\.-]+]] = internal global [[TYPE:%.*]] { { ptr } { ptr @g2 } }
+; CHECK: @[[G2:[a-zA-Z0-9_$"\\.-]+]] = external global ptr
+; CHECK: @[[LLVM_GLOBAL_CTORS:[a-zA-Z0-9_$"\\.-]+]] = appending global [0 x { i32, ptr, ptr }] zeroinitializer
;.
define internal void @ctor() {
- store i64 0, i64* bitcast (%type* @g to i64*), align 8
- store i8** @g2, i8*** getelementptr inbounds (%type, %type* @g, i64 0, i32 0, i32 0), align 8
+ store i64 0, ptr @g, align 8
+ store ptr @g2, ptr @g, align 8
ret void
}
-define %type* @test() {
+define ptr @test() {
; CHECK-LABEL: @test(
-; CHECK-NEXT: ret %type* @g
+; CHECK-NEXT: ret ptr @g
;
- ret %type* @g
+ ret ptr @g
}
diff --git a/llvm/test/Transforms/GlobalOpt/pr52994.ll b/llvm/test/Transforms/GlobalOpt/pr52994.ll
index 584d7155f3981..e023e3651fb1b 100644
--- a/llvm/test/Transforms/GlobalOpt/pr52994.ll
+++ b/llvm/test/Transforms/GlobalOpt/pr52994.ll
@@ -3,15 +3,15 @@
; Check that aggregate stores work correctly.
- at llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @ctor, i8* null }]
+ at llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @ctor, ptr null }]
@g = global { i64, i64 } poison
;.
-; CHECK: @[[LLVM_GLOBAL_CTORS:[a-zA-Z0-9_$"\\.-]+]] = appending global [0 x { i32, void ()*, i8* }] zeroinitializer
+; CHECK: @[[LLVM_GLOBAL_CTORS:[a-zA-Z0-9_$"\\.-]+]] = appending global [0 x { i32, ptr, ptr }] zeroinitializer
; CHECK: @[[G:[a-zA-Z0-9_$"\\.-]+]] = local_unnamed_addr global { i64, i64 } { i64 1, i64 2 }
;.
define internal void @ctor() {
- store { i64, i64 } { i64 1, i64 2 }, { i64, i64 }* @g
+ store { i64, i64 } { i64 1, i64 2 }, ptr @g
ret void
}
diff --git a/llvm/test/Transforms/GlobalOpt/pr53002.ll b/llvm/test/Transforms/GlobalOpt/pr53002.ll
index ee743d72b914a..770249c1acab1 100644
--- a/llvm/test/Transforms/GlobalOpt/pr53002.ll
+++ b/llvm/test/Transforms/GlobalOpt/pr53002.ll
@@ -8,17 +8,17 @@
@g = global %T zeroinitializer
- at llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @ctor, i8* null }]
+ at llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @ctor, ptr null }]
;.
; CHECK: @[[G:[a-zA-Z0-9_$"\\.-]+]] = local_unnamed_addr global [[T:%.*]] zeroinitializer
-; CHECK: @[[LLVM_GLOBAL_CTORS:[a-zA-Z0-9_$"\\.-]+]] = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @ctor, i8* null }]
+; CHECK: @[[LLVM_GLOBAL_CTORS:[a-zA-Z0-9_$"\\.-]+]] = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @ctor, ptr null }]
;.
define internal void @ctor() {
; CHECK-LABEL: @ctor(
-; CHECK-NEXT: store i8 0, i8* getelementptr inbounds ([[T:%.*]], %T* @g, i64 0, i32 0, i64 5), align 1
+; CHECK-NEXT: store i8 0, ptr getelementptr inbounds ([[T:%.*]], ptr @g, i64 0, i32 0, i64 5), align 1
; CHECK-NEXT: ret void
;
- store i8 0, i8* getelementptr inbounds (%T, %T* @g, i64 0, i32 0, i64 5)
+ store i8 0, ptr getelementptr inbounds (%T, ptr @g, i64 0, i32 0, i64 5)
ret void
}
diff --git a/llvm/test/Transforms/GlobalOpt/preserve-comdats.ll b/llvm/test/Transforms/GlobalOpt/preserve-comdats.ll
index b8fbb70413fd7..cde7f90d9519e 100644
--- a/llvm/test/Transforms/GlobalOpt/preserve-comdats.ll
+++ b/llvm/test/Transforms/GlobalOpt/preserve-comdats.ll
@@ -7,31 +7,31 @@ $comdat_global = comdat any
; CHECK: @comdat_global = weak_odr global i8 0, comdat{{$}}
; CHECK: @simple_global = internal global i8 42
- at 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 }
+ at llvm.global_ctors = appending global [2 x { i32, ptr, ptr }] [
+ { i32, ptr, ptr } { i32 65535, ptr @init_comdat_global, ptr @comdat_global },
+ { i32, ptr, ptr } { i32 65535, ptr @init_simple_global, ptr 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 }]
+; CHECK: @llvm.global_ctors = appending global [1 x { i32, ptr, ptr }]
+; CHECK: [{ i32, ptr, ptr } { i32 65535, ptr @init_comdat_global, ptr @comdat_global }]
define void @init_comdat_global() {
- store i8 42, i8* @comdat_global
+ store i8 42, ptr @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
+ store i8 42, ptr @simple_global
ret void
}
; CHECK-NOT: @init_simple_global()
-define i8* @use_simple() {
- ret i8* @simple_global
+define ptr @use_simple() {
+ ret ptr @simple_global
}
-; CHECK: define i8* @use_simple()
+; CHECK: define ptr @use_simple()
-define i8* @use_comdat() {
- ret i8* @comdat_global
+define ptr @use_comdat() {
+ ret ptr @comdat_global
}
-; CHECK: define i8* @use_comdat()
+; CHECK: define ptr @use_comdat()
diff --git a/llvm/test/Transforms/GlobalOpt/recursively-delete-dead-inst-assertion.ll b/llvm/test/Transforms/GlobalOpt/recursively-delete-dead-inst-assertion.ll
index eb3b32032f113..52b958693308a 100644
--- a/llvm/test/Transforms/GlobalOpt/recursively-delete-dead-inst-assertion.ll
+++ b/llvm/test/Transforms/GlobalOpt/recursively-delete-dead-inst-assertion.ll
@@ -5,16 +5,16 @@
; a constant in the meantime. Make sure this does not cause an assertion
; failure.
- at a = internal global i32** null
- at b = internal global i32*** @a
+ at a = internal global ptr null
+ at b = internal global ptr @a
define void @test() {
; CHECK-LABEL: @test(
; CHECK-NEXT: ret void
;
- %v1 = load i32***, i32**** @b
- %v2 = load i32**, i32*** %v1
- store i32** %v2, i32*** @a
+ %v1 = load ptr, ptr @b
+ %v2 = load ptr, ptr %v1
+ store ptr %v2, ptr @a
ret void
}
diff --git a/llvm/test/Transforms/GlobalOpt/shrink-address-to-bool.ll b/llvm/test/Transforms/GlobalOpt/shrink-address-to-bool.ll
index 8084876872425..19b175ce533e3 100644
--- a/llvm/test/Transforms/GlobalOpt/shrink-address-to-bool.ll
+++ b/llvm/test/Transforms/GlobalOpt/shrink-address-to-bool.ll
@@ -1,17 +1,17 @@
;RUN: opt -S -passes=globalopt -f %s | FileCheck %s
;CHECK: @foo = {{.*}}, !dbg !0
- at foo = global i64 ptrtoint ([1 x i64]* @baa to i64), align 8, !dbg !0
+ at foo = global i64 ptrtoint (ptr @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
+ %0 = load i64, ptr @foo, align 8, !dbg !19
+ %1 = inttoptr i64 %0 to ptr, !dbg !19
+ %cmp = icmp ugt ptr @baa, %1, !dbg !20
%conv = zext i1 %cmp to i32, !dbg !20
- store i64 0, i64* @foo, align 8, !dbg !21
+ store i64 0, ptr @foo, align 8, !dbg !21
ret void, !dbg !22
}
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
index 1c917413c6f00..e453857a25863 100644
--- a/llvm/test/Transforms/GlobalOpt/shrink-global-to-bool-check-debug.ll
+++ b/llvm/test/Transforms/GlobalOpt/shrink-global-to-bool-check-debug.ll
@@ -4,19 +4,19 @@
define void @store() {
entry:
- store i32 5, i32* @foo, align 4
+ store i32 5, ptr @foo, align 4
ret void
}
define i32 @bar() {
entry:
- %0 = load i32, i32* @foo, align 4
+ %0 = load i32, ptr @foo, align 4
ret i32 %0
}
;CHECK: @bar
;CHECK-NEXT: entry:
-;CHECK-NEXT: %.b = load i1, i1* @foo, align 1, !dbg ![[DbgLocLoadSel:[0-9]+]]
+;CHECK-NEXT: %.b = load i1, ptr @foo, align 1, !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]+]]
diff --git a/llvm/test/Transforms/GlobalOpt/shrink-global-to-bool.ll b/llvm/test/Transforms/GlobalOpt/shrink-global-to-bool.ll
index bdd515bf2e557..d9f336f837ad1 100644
--- a/llvm/test/Transforms/GlobalOpt/shrink-global-to-bool.ll
+++ b/llvm/test/Transforms/GlobalOpt/shrink-global-to-bool.ll
@@ -12,32 +12,32 @@
define void @test_global_var(i1 %i) {
; CHECK-LABEL: @test_global_var(
-; CHECK: store volatile i32 10, i32* undef, align 4
+; CHECK: store volatile i32 10, ptr undef, align 4
;
entry:
br i1 %i, label %bb1, label %exit
bb1:
- store i32 10, i32* @gvar
+ store i32 10, ptr @gvar
br label %exit
exit:
- %ld = load i32, i32* @gvar
- store volatile i32 %ld, i32* undef
+ %ld = load i32, ptr @gvar
+ store volatile i32 %ld, ptr undef
ret void
}
define void @test_lds_var(i1 %i) {
; CHECK-LABEL: @test_lds_var(
-; CHECK: store i32 10, i32 addrspace(3)* @lvar, align 4
-; CHECK: [[LD:%.*]] = load i32, i32 addrspace(3)* @lvar, align 4
-; CHECK: store volatile i32 [[LD]], i32* undef, align 4
+; CHECK: store i32 10, ptr addrspace(3) @lvar, align 4
+; CHECK: [[LD:%.*]] = load i32, ptr addrspace(3) @lvar, align 4
+; CHECK: store volatile i32 [[LD]], ptr undef, align 4
;
entry:
br i1 %i, label %bb1, label %exit
bb1:
- store i32 10, i32 addrspace(3)* @lvar
+ store i32 10, ptr addrspace(3) @lvar
br label %exit
exit:
- %ld = load i32, i32 addrspace(3)* @lvar
- store volatile i32 %ld, i32* undef
+ %ld = load i32, ptr addrspace(3) @lvar
+ store volatile i32 %ld, ptr undef
ret void
}
diff --git a/llvm/test/Transforms/GlobalOpt/static-const-bitcast.ll b/llvm/test/Transforms/GlobalOpt/static-const-bitcast.ll
index 27e4ade2b5c4c..efdc12a51b3f6 100644
--- a/llvm/test/Transforms/GlobalOpt/static-const-bitcast.ll
+++ b/llvm/test/Transforms/GlobalOpt/static-const-bitcast.ll
@@ -10,45 +10,42 @@ $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
- at llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } {
-i32 65535, void ()* @_GLOBAL__sub_I_const_static.cc, i8* null }]
+ at llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } {
+i32 65535, ptr @_GLOBAL__sub_I_const_static.cc, ptr null }]
-define dso_local i32 @AsBits(float* %x) #0 {
+define dso_local i32 @AsBits(ptr %x) #0 {
entry:
- %0 = bitcast float* %x to i32*
- %1 = load i32, i32* %0, align 4
- ret i32 %1
+ %0 = load i32, ptr %x, align 4
+ ret i32 %0
}
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*))
+ call void @Wrapper(ptr @kA, float 0x3FB99999A0000000)
+ %0 = call ptr @llvm.invariant.start.p0(i64 4, ptr @kA)
ret void
}
-define linkonce_odr dso_local void @Wrapper(%class.Wrapper* %this, float %x) unnamed_addr #0 comdat align 2 {
+define linkonce_odr dso_local void @Wrapper(ptr %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
+ store float %x, ptr %x.addr, align 4
+ %call = call i32 @AsBits(ptr %x.addr)
+ store i32 %call, ptr %this, align 4
ret void
}
-declare {}* @llvm.invariant.start.p0i8(i64, i8* nocapture) #2
+declare ptr @llvm.invariant.start.p0(i64, ptr nocapture) #2
; Function Attrs: nounwind uwtable
-define dso_local void @LoadIt(%struct.A* %c) #0 {
+define dso_local void @LoadIt(ptr %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)
+ call void @llvm.memcpy.p0.p0.i64(ptr align 4 %c, ptr align 4 @kA, 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
+declare void @llvm.memcpy.p0.p0.i64(ptr nocapture writeonly, ptr nocapture readonly, i64, i1) #2
; Function Attrs: uwtable
define internal void @_GLOBAL__sub_I_const_static.cc() #1 section ".text.startup" {
diff --git a/llvm/test/Transforms/GlobalOpt/store-struct-element.ll b/llvm/test/Transforms/GlobalOpt/store-struct-element.ll
index 29d242d36c5d4..1f09ff2b9f9ee 100644
--- a/llvm/test/Transforms/GlobalOpt/store-struct-element.ll
+++ b/llvm/test/Transforms/GlobalOpt/store-struct-element.ll
@@ -4,20 +4,20 @@
@A = local_unnamed_addr global %class.Class undef, align 4
@B = local_unnamed_addr global %class.Class undef, align 4
- at llvm.global_ctors = appending global [2 x { i32, void ()*, i8* }] [
- { i32, void ()*, i8* } { i32 65535, void ()* @initA, i8* null },
- { i32, void ()*, i8* } { i32 65535, void ()* @initB, i8* null }
+ at llvm.global_ctors = appending global [2 x { i32, ptr, ptr }] [
+ { i32, ptr, ptr } { i32 65535, ptr @initA, ptr null },
+ { i32, ptr, ptr } { i32 65535, ptr @initB, ptr null }
]
define internal void @initA() section "__TEXT,__StaticInit,regular,pure_instructions" {
entry:
- store i32 -1, i32* bitcast (%class.Class* @A to i32*), align 4
+ store i32 -1, ptr @A, align 4
ret void
}
define internal void @initB() section "__TEXT,__StaticInit,regular,pure_instructions" {
entry:
- store i8 -1, i8* bitcast (%class.Class* @B to i8*), align 4
+ store i8 -1, ptr @B, align 4
ret void
}
diff --git a/llvm/test/Transforms/GlobalOpt/stored-once-
diff erent-type.ll b/llvm/test/Transforms/GlobalOpt/stored-once-
diff erent-type.ll
index 60178797f68c8..ed1891e794585 100644
--- a/llvm/test/Transforms/GlobalOpt/stored-once-
diff erent-type.ll
+++ b/llvm/test/Transforms/GlobalOpt/stored-once-
diff erent-type.ll
@@ -10,7 +10,7 @@ define void @store() {
; CHECK-LABEL: @store(
; CHECK-NEXT: ret void
;
- store i32 42, i32* bitcast ([4 x i8]* @g to i32*)
+ store i32 42, ptr @g
ret void
}
@@ -18,7 +18,7 @@ define i32 @load1() {
; CHECK-LABEL: @load1(
; CHECK-NEXT: ret i32 42
;
- %v = load i32, i32* bitcast ([4 x i8]* @g to i32*)
+ %v = load i32, ptr @g
ret i32 %v
}
@@ -26,15 +26,15 @@ define i16 @load2() {
; CHECK-LABEL: @load2(
; CHECK-NEXT: ret i16 42
;
- %v = load i16, i16* bitcast ([4 x i8]* @g to i16*)
+ %v = load i16, ptr @g
ret i16 %v
}
define [4 x i8] @load3() {
; CHECK-LABEL: @load3(
-; CHECK-NEXT: [[V:%.*]] = load [4 x i8], [4 x i8]* bitcast (i32* @g to [4 x i8]*), align 1
+; CHECK-NEXT: [[V:%.*]] = load [4 x i8], ptr @g, align 1
; CHECK-NEXT: ret [4 x i8] [[V]]
;
- %v = load [4 x i8], [4 x i8]* @g
+ %v = load [4 x i8], ptr @g
ret [4 x i8] %v
}
diff --git a/llvm/test/Transforms/GlobalOpt/stored-once-through-gep.ll b/llvm/test/Transforms/GlobalOpt/stored-once-through-gep.ll
index 6f9d53fd36888..bb83f38d1046f 100644
--- a/llvm/test/Transforms/GlobalOpt/stored-once-through-gep.ll
+++ b/llvm/test/Transforms/GlobalOpt/stored-once-through-gep.ll
@@ -14,8 +14,7 @@ define void @store() {
; CHECK-LABEL: @store(
; CHECK-NEXT: ret void
;
- %addr = getelementptr inbounds %s, %s* bitcast (i32* @g to %s*), i64 0, i32 0
- store i32 1, i32* %addr, align 4
+ store i32 1, ptr @g, align 4
ret void
}
@@ -25,6 +24,6 @@ define i32 @load() {
; CHECK-NEXT: ret i32 1
;
call fastcc void @store()
- %v = load i32, i32* @g
+ %v = load i32, ptr @g
ret i32 %v
}
diff --git a/llvm/test/Transforms/GlobalOpt/stored-once-value-type.ll b/llvm/test/Transforms/GlobalOpt/stored-once-value-type.ll
index a971f74f3d77c..e1ed8836979b3 100644
--- a/llvm/test/Transforms/GlobalOpt/stored-once-value-type.ll
+++ b/llvm/test/Transforms/GlobalOpt/stored-once-value-type.ll
@@ -2,24 +2,22 @@
; RUN: opt -passes=globalopt < %s -S | FileCheck %s
; Check that we don't try to set a global initializer to a value of a
diff erent type.
-; In this case, we were trying to set @0's initializer to be i32* null.
+; In this case, we were trying to set @0's initializer to be ptr null.
-%T = type { i32* }
+%T = type { ptr }
- at 0 = internal global %T* null
+ at 0 = internal global ptr null
define void @a() {
; CHECK-LABEL: @a(
; CHECK-NEXT: ret void
;
- %1 = tail call i8* @_Znwm(i64 8)
- %2 = bitcast i8* %1 to %T*
- %3 = getelementptr inbounds %T, %T* %2, i64 0, i32 0
- store i32* null, i32** %3, align 8
- store i8* %1, i8** bitcast (%T** @0 to i8**), align 8
- %4 = load i64*, i64** bitcast (%T** @0 to i64**), align 8
- %5 = load atomic i64, i64* %4 acquire, align 8
+ %1 = tail call ptr @_Znwm(i64 8)
+ store ptr null, ptr %1, align 8
+ store ptr %1, ptr @0, align 8
+ %2 = load ptr, ptr @0, align 8
+ %3 = load atomic i64, ptr %2 acquire, align 8
ret void
}
-declare i8* @_Znwm(i64)
+declare ptr @_Znwm(i64)
diff --git a/llvm/test/Transforms/GlobalOpt/storepointer-compare-no-null-opt.ll b/llvm/test/Transforms/GlobalOpt/storepointer-compare-no-null-opt.ll
index 7a777e41b7fee..c94921a88618c 100644
--- a/llvm/test/Transforms/GlobalOpt/storepointer-compare-no-null-opt.ll
+++ b/llvm/test/Transforms/GlobalOpt/storepointer-compare-no-null-opt.ll
@@ -1,7 +1,7 @@
; RUN: opt < %s -passes=globalopt -S | FileCheck %s
; CHECK: global
- at G = internal global void ()* null ; <void ()**> [#uses=2]
+ at G = internal global ptr null ; <ptr> [#uses=2]
define internal void @Actual() {
; CHECK-LABEL: Actual(
@@ -10,17 +10,17 @@ define internal void @Actual() {
define void @init() {
; CHECK-LABEL: init(
-; CHECK: store void ()* @Actual, void ()** @G
- store void ()* @Actual, void ()** @G
+; CHECK: store ptr @Actual, ptr @G
+ store ptr @Actual, ptr @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
+ %FP = load ptr, ptr @G ; <ptr> [#uses=2]
+; CHECK: %FP = load ptr, ptr @G
+ %CC = icmp eq ptr %FP, null ; <i1> [#uses=1]
+; CHECK: %CC = icmp eq ptr %FP, null
br i1 %CC, label %isNull, label %DoCall
; CHECK: br i1 %CC, label %isNull, label %DoCall
diff --git a/llvm/test/Transforms/GlobalOpt/storepointer-compare.ll b/llvm/test/Transforms/GlobalOpt/storepointer-compare.ll
index fdb3b131a8c98..89efe26dbdc81 100644
--- a/llvm/test/Transforms/GlobalOpt/storepointer-compare.ll
+++ b/llvm/test/Transforms/GlobalOpt/storepointer-compare.ll
@@ -4,20 +4,20 @@
; 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.
- at G = internal global void ()* null ; <void ()**> [#uses=2]
+ at G = internal global ptr null ; <ptr> [#uses=2]
define internal void @Actual() {
ret void
}
define void @init() {
- store void ()* @Actual, void ()** @G
+ store ptr @Actual, ptr @G
ret void
}
define void @doit() {
- %FP = load void ()*, void ()** @G ; <void ()*> [#uses=2]
- %CC = icmp eq void ()* %FP, null ; <i1> [#uses=1]
+ %FP = load ptr, ptr @G ; <ptr> [#uses=2]
+ %CC = icmp eq ptr %FP, null ; <i1> [#uses=1]
br i1 %CC, label %isNull, label %DoCall
DoCall: ; preds = %0
diff --git a/llvm/test/Transforms/GlobalOpt/storepointer-no-null-opt.ll b/llvm/test/Transforms/GlobalOpt/storepointer-no-null-opt.ll
index db8b050b9275a..a759de98f05f3 100644
--- a/llvm/test/Transforms/GlobalOpt/storepointer-no-null-opt.ll
+++ b/llvm/test/Transforms/GlobalOpt/storepointer-no-null-opt.ll
@@ -1,6 +1,6 @@
; RUN: opt < %s -passes=globalopt -S | FileCheck %s
- at G = internal global void ()* null ; <void ()**> [#uses=2]
+ at G = internal global ptr null ; <ptr> [#uses=2]
; CHECK: global
define internal void @Actual() {
@@ -10,16 +10,16 @@ define internal void @Actual() {
define void @init() {
; CHECK-LABEL: init(
-; CHECK: store void ()* @Actual, void ()** @G
- store void ()* @Actual, void ()** @G
+; CHECK: store ptr @Actual, ptr @G
+ store ptr @Actual, ptr @G
ret void
}
define void @doit() #0 {
; CHECK-LABEL: doit(
-; CHECK: %FP = load void ()*, void ()** @G
+; CHECK: %FP = load ptr, ptr @G
; CHECK: call void %FP()
- %FP = load void ()*, void ()** @G ; <void ()*> [#uses=1]
+ %FP = load ptr, ptr @G ; <ptr> [#uses=1]
call void %FP( )
ret void
}
diff --git a/llvm/test/Transforms/GlobalOpt/storepointer.ll b/llvm/test/Transforms/GlobalOpt/storepointer.ll
index 64e5d7f9da0ac..9a88ee0a21763 100644
--- a/llvm/test/Transforms/GlobalOpt/storepointer.ll
+++ b/llvm/test/Transforms/GlobalOpt/storepointer.ll
@@ -1,19 +1,19 @@
; RUN: opt < %s -passes=globalopt -S | FileCheck %s
; CHECK-NOT: global
- at G = internal global void ()* null ; <void ()**> [#uses=2]
+ at G = internal global ptr null ; <ptr> [#uses=2]
define internal void @Actual() {
ret void
}
define void @init() {
- store void ()* @Actual, void ()** @G
+ store ptr @Actual, ptr @G
ret void
}
define void @doit() {
- %FP = load void ()*, void ()** @G ; <void ()*> [#uses=1]
+ %FP = load ptr, ptr @G ; <ptr> [#uses=1]
call void %FP( )
ret void
}
diff --git a/llvm/test/Transforms/GlobalOpt/tls.ll b/llvm/test/Transforms/GlobalOpt/tls.ll
index add7b2224dc12..6ba003ff30b2e 100644
--- a/llvm/test/Transforms/GlobalOpt/tls.ll
+++ b/llvm/test/Transforms/GlobalOpt/tls.ll
@@ -3,10 +3,10 @@
declare void @wait()
declare void @signal()
-declare void @start_thread(void ()*)
+declare void @start_thread(ptr)
@x = internal thread_local global [100 x i32] zeroinitializer, align 16
- at ip = internal global i32* null, align 8
+ at ip = internal global ptr null, align 8
; PR14309: GlobalOpt would think that the value of @ip is always the address of
; x[1]. However, that address is
diff erent for
diff erent threads so @ip cannot
@@ -15,34 +15,34 @@ declare void @start_thread(void ()*)
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
+ store ptr getelementptr inbounds ([100 x i32], ptr @x, i64 0, i64 1), ptr @ip, align 8
; Run g on a new thread.
- tail call void @start_thread(void ()* @g) nounwind
+ tail call void @start_thread(ptr @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
+ store i32 0, ptr getelementptr inbounds ([100 x i32], ptr @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
+ %0 = load ptr, ptr @ip, align 8
- %1 = load i32, i32* %0, align 4
+ %1 = load i32, ptr %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: load ptr, ptr @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 ptr getelementptr inbounds ([100 x i32], ptr @x, i64 0, i64 1), ptr @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
+ store i32 50, ptr getelementptr inbounds ([100 x i32], ptr @x, i64 0, i64 1), align 4
tail call void @signal() nounwind
ret void
diff --git a/llvm/test/Transforms/GlobalOpt/trivialstore.ll b/llvm/test/Transforms/GlobalOpt/trivialstore.ll
index 87efe5d60561b..f56083a069f5d 100644
--- a/llvm/test/Transforms/GlobalOpt/trivialstore.ll
+++ b/llvm/test/Transforms/GlobalOpt/trivialstore.ll
@@ -1,19 +1,19 @@
; RUN: opt < %s -passes=globalopt -S | FileCheck %s
; CHECK-NOT: G
- at G = internal global i32 17 ; <i32*> [#uses=3]
+ at G = internal global i32 17 ; <ptr> [#uses=3]
define void @foo() {
- store i32 17, i32* @G
+ store i32 17, ptr @G
ret void
}
define i32 @bar() {
- %X = load i32, i32* @G ; <i32> [#uses=1]
+ %X = load i32, ptr @G ; <i32> [#uses=1]
ret i32 %X
}
define internal void @dead() {
- store i32 123, i32* @G
+ store i32 123, ptr @G
ret void
}
diff --git a/llvm/test/Transforms/GlobalOpt/undef-ctor-dtor.ll b/llvm/test/Transforms/GlobalOpt/undef-ctor-dtor.ll
index 00aa45dc3afcb..b14c5fca2e58e 100644
--- a/llvm/test/Transforms/GlobalOpt/undef-ctor-dtor.ll
+++ b/llvm/test/Transforms/GlobalOpt/undef-ctor-dtor.ll
@@ -2,8 +2,8 @@
; Gracefully handle undef global_ctors/global_dtors
-; CHECK: @llvm.global_ctors = appending global [0 x { i32, void ()*, i8* }] undef
-; CHECK: @llvm.global_dtors = appending global [0 x { i32, void ()*, i8* }] undef
+; CHECK: @llvm.global_ctors = appending global [0 x { i32, ptr, ptr }] undef
+; CHECK: @llvm.global_dtors = appending global [0 x { i32, ptr, ptr }] undef
- at llvm.global_ctors = appending global [0 x { i32, void ()*, i8* }] undef
- at llvm.global_dtors = appending global [0 x { i32, void ()*, i8* }] undef
+ at llvm.global_ctors = appending global [0 x { i32, ptr, ptr }] undef
+ at llvm.global_dtors = appending global [0 x { i32, ptr, ptr }] undef
diff --git a/llvm/test/Transforms/GlobalOpt/undef-init.ll b/llvm/test/Transforms/GlobalOpt/undef-init.ll
index fb0029158ba8e..958f9ac68112c 100644
--- a/llvm/test/Transforms/GlobalOpt/undef-init.ll
+++ b/llvm/test/Transforms/GlobalOpt/undef-init.ll
@@ -1,17 +1,17 @@
; RUN: opt < %s -passes=globalopt -S | FileCheck %s
; CHECK-NOT: store
- at llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [ { i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__I__Z3foov, i8* null } ] ; <[1 x { i32, void ()*, i8* }]*> [#uses=0]
- at X.0 = internal global i32 undef ; <i32*> [#uses=2]
+ at llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [ { i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__I__Z3foov, ptr null } ] ; <ptr> [#uses=0]
+ at X.0 = internal global i32 undef ; <ptr> [#uses=2]
define i32 @_Z3foov() {
entry:
- %tmp.1 = load i32, i32* @X.0 ; <i32> [#uses=1]
+ %tmp.1 = load i32, ptr @X.0 ; <i32> [#uses=1]
ret i32 %tmp.1
}
define internal void @_GLOBAL__I__Z3foov() {
entry:
- store i32 1, i32* @X.0
+ store i32 1, ptr @X.0
ret void
}
diff --git a/llvm/test/Transforms/GlobalOpt/unnamed-addr.ll b/llvm/test/Transforms/GlobalOpt/unnamed-addr.ll
index c954ccf5bf446..ac8d8e203b05f 100644
--- a/llvm/test/Transforms/GlobalOpt/unnamed-addr.ll
+++ b/llvm/test/Transforms/GlobalOpt/unnamed-addr.ll
@@ -21,43 +21,42 @@ define internal void @used_internal() {
define i32 @get_e() {
call void @used_internal()
- %t = load i32, i32* @e
+ %t = load i32, ptr @e
ret i32 %t
}
define void @set_e(i32 %x) {
- store i32 %x, i32* @e
+ store i32 %x, ptr @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
+ %arrayidx4 = getelementptr inbounds [4 x i8], ptr @d, i64 0, i64 %i
+ %tmp5 = load i8, ptr %arrayidx4, align 1
+ %tmp6 = load i8, ptr @d, 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
+ store i32 %x, ptr @a, align 4
+ store i32 %x, ptr @b, align 4
+ store i32 %x, ptr @c, align 4
ret void
}
-define i32 @foo(i32* %x) nounwind readnone optsize ssp {
+define i32 @foo(ptr %x) nounwind readnone optsize ssp {
entry:
- %cmp = icmp eq i32* %x, @a
+ %cmp = icmp eq ptr %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 [
+ switch i64 ptrtoint (ptr @b to i64), label %sw.epilog [
i64 1, label %return
i64 0, label %return
]
@@ -71,18 +70,18 @@ return:
define i32 @zed() {
entry:
- %tmp1 = load i32, i32* @c, align 4
+ %tmp1 = load i32, ptr @c, align 4
ret i32 %tmp1
}
define float @use_addrspace_cast_for_load() {
- %p = addrspacecast float addrspace(3)* @f to float*
- %v = load float, float* %p
+ %p = addrspacecast ptr addrspace(3) @f to ptr
+ %v = load float, ptr %p
ret float %v
}
define void @use_addrspace_cast_for_store(float %x) {
- %p = addrspacecast float addrspace(3)* @f to float*
- store float %x, float* %p
+ %p = addrspacecast ptr addrspace(3) @f to ptr
+ store float %x, ptr %p
ret void
}
diff --git a/llvm/test/Transforms/GlobalOpt/x86_mmx_load.ll b/llvm/test/Transforms/GlobalOpt/x86_mmx_load.ll
index e63b74da73fdb..e352900e2a458 100644
--- a/llvm/test/Transforms/GlobalOpt/x86_mmx_load.ll
+++ b/llvm/test/Transforms/GlobalOpt/x86_mmx_load.ll
@@ -7,6 +7,6 @@ define i32 @load_mmx() {
; CHECK-LABEL: @load_mmx(
; CHECK-NEXT: ret i32 0
;
- %temp = load x86_mmx, x86_mmx* bitcast (<1 x i64>* @m64 to x86_mmx*)
+ %temp = load x86_mmx, ptr @m64
ret i32 0
}
diff --git a/llvm/test/Transforms/GlobalOpt/zeroinitializer-gep-load.ll b/llvm/test/Transforms/GlobalOpt/zeroinitializer-gep-load.ll
index 514e6fde620bb..b6bbb8057c6af 100644
--- a/llvm/test/Transforms/GlobalOpt/zeroinitializer-gep-load.ll
+++ b/llvm/test/Transforms/GlobalOpt/zeroinitializer-gep-load.ll
@@ -3,8 +3,8 @@
@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
+ %arrayidx = getelementptr inbounds [10 x i32], ptr @zero, i64 0, i64 %idx
+ %l = load i32, ptr %arrayidx
ret i32 %l
; CHECK-LABEL: @test1(
; CHECK: ret i32 0
More information about the llvm-commits
mailing list