llvm-project/llvm/test/Transforms/GlobalOpt
Nikita Popov 5969e5743a [IR] Handle large element size when calculating GEP indices
This is a fix for the issue reported at
https://reviews.llvm.org/D110043#3019942:
The ElementSize is a uint64_t and as such may be larger than the
index space, or be negative in the index space. This is UB, but
shouldn't cause assertion failures.

We address this by detecting whether the size is too large and
use a zero index in that case (which is always conservatively
correct).

Differential Revision: https://reviews.llvm.org/D110437
2021-09-24 22:20:20 +02:00
..
PowerPC
2004-10-10-CastStoreOnce.ll
2005-06-15-LocalizeConstExprCrash.ll
2005-09-27-Crash.ll
2006-07-07-InlineAsmCrash.ll OpaquePtr: Bulk update tests to use typed sret 2020-11-20 17:58:26 -05:00
2006-11-01-ShrinkGlobalPhiCrash.ll
2007-04-05-Crash.ll
2007-05-13-Crash.ll
2007-06-04-PackedStruct.ll
2007-11-09-GEP-GEP-Crash.ll
2008-01-03-Crash.ll
2008-01-13-OutOfRangeSROA.ll
2008-01-29-VolatileGlobal.ll
2008-04-26-SROA-Global-Align.ll
2008-07-17-addrspace.ll
2008-12-16-HeapSRACrash-2.ll
2008-12-16-HeapSRACrash.ll
2009-01-13-phi-user.ll
2009-02-15-BitcastAlias.ll
2009-02-15-ResolveAlias.ll
2009-03-05-dbg.ll
2009-03-06-Anonymous.ll
2009-03-07-PromotePtrToBool.ll
2009-06-01-RecursivePHI.ll
2009-11-16-BrokenPerformHeapAllocSRoA.ll Revert "[GlobalOpt] Revert valgrind hacks" 2021-04-13 17:47:07 -07:00
2009-11-16-MallocSingleStoreToGlobalVar.ll
2010-02-25-MallocPromote.ll
2010-02-26-MallocSROA.ll
2010-10-19-WeakOdr.ll
2011-04-09-EmptyGlobalCtors.ll
2012-05-11-blockaddress.ll
2021-08-02-CastStoreOnceP2I.ll [GlobalOpt] Fix the assert for stored once non-pointer to global address 2021-08-02 19:23:29 -04:00
2021-08-03-StoreOnceLoadMultiCasts.ll [GlobalOpt] Fix the load types when OptimizeGlobalAddressOfMalloc 2021-08-03 19:22:53 -04:00
GSROA-section.ll
MallocSROA-section-no-null-opt.ll [IR] Convert null-pointer-is-valid into an enum attribute 2020-05-15 19:41:07 +02:00
MallocSROA-section.ll [GlobalOpt] Remove heap SROA 2021-05-11 11:34:37 -07:00
SROA-section.ll
address_space_initializer.ll Reapply "[GlobalOpt][FIX] Do not embed initializers into AS!=0 globals"" 2021-09-10 15:22:56 -05:00
alias-resolve.ll [GlobalOpt] Don't replace alias with aliasee if aliasee is interposable 2021-04-22 13:12:34 -07:00
alias-used-address-space.ll
alias-used-section.ll
alias-used.ll
amdgcn-ctor-alloca.ll
array-elem-refs.ll
assume.ll
atexit.ll
atomic.ll
available_externally_global_ctors.ll
basictest.ll
blockaddress.ll
cleanup-pointer-root-users.ll Revert "[GlobalOpt] Revert valgrind hacks" 2021-04-13 17:47:07 -07:00
coldcc_stress_test.ll
compiler-used.ll
const-return-status-atomic.ll [GlobalOpt] Fix an incorrect Modified status 2020-09-02 15:00:45 +02:00
const-return-status.ll [GlobalOpt] Fix an incorrect Modified status 2020-09-02 15:00:45 +02:00
constant-can-trap.ll [GlobalOpt] don't hoist constant expressions that can trap 2021-08-27 08:10:20 -04:00
constantexpr-dangle.ll
constantfold-initializers.ll
crash-2.ll
crash.ll
ctor-list-opt-constexpr.ll
ctor-list-opt-inbounds.ll
ctor-list-opt.ll
cxx-dtor.ll
dead-store-status.ll Revert "[GlobalOpt] Revert valgrind hacks" 2021-04-13 17:47:07 -07:00
deaddeclaration.ll
deadfunction.ll
deadglobal-2.ll
deadglobal-diarglist-use.ll [IR] Make TypeFinder aware of DIArgList values 2021-05-28 17:09:45 +02:00
deadglobal.ll
evaluate-bitcast-2.ll
evaluate-bitcast-3.ll
evaluate-bitcast-4.ll Fix for Bug 48055. 2020-12-04 11:05:01 -08:00
evaluate-bitcast.ll
evaluate-call-errors.ll [GVN] add early exit to ConstantFoldLoadThroughBitcast [NFC] 2020-07-13 21:44:17 -04:00
evaluate-call.ll
evaluate-constfold-call.ll
externally-initialized-aggregate.ll
externally-initialized-global-ctr.ll [GlobalOpt] recompute alignments for loads and stores of updated globals 2021-05-20 12:12:21 -04:00
externally-initialized.ll
fastcc.ll Reapply "OpaquePtr: Turn inalloca into a type attribute" 2021-03-29 08:55:30 -04:00
global-demotion.ll
globalsra-align.ll [GlobalOpt] recompute alignments for loads and stores of updated globals 2021-05-20 12:12:21 -04:00
globalsra-multigep.ll
globalsra-partial.ll
globalsra-unknown-index.ll
globalsra.ll
heap-sra-1-no-null-opt.ll [IR] Convert null-pointer-is-valid into an enum attribute 2020-05-15 19:41:07 +02:00
heap-sra-1.ll [GlobalOpt] Remove heap SROA 2021-05-11 11:34:37 -07:00
heap-sra-2-no-null-opt.ll [IR] Convert null-pointer-is-valid into an enum attribute 2020-05-15 19:41:07 +02:00
heap-sra-2.ll [GlobalOpt] Remove heap SROA 2021-05-11 11:34:37 -07:00
heap-sra-phi-no-null-opt.ll [IR] Convert null-pointer-is-valid into an enum attribute 2020-05-15 19:41:07 +02:00
heap-sra-phi.ll [GlobalOpt] Remove heap SROA 2021-05-11 11:34:37 -07:00
int_sideeffect.ll
integer-bool-dwarf.ll
integer-bool.ll
invariant-nodatalayout.ll
invariant.group.ll [Evaluator] Bitcast result of pointer stripping 2021-04-21 13:32:29 -07:00
invariant.ll
invoke.ll
iterate.ll
large-element-size.ll [IR] Handle large element size when calculating GEP indices 2021-09-24 22:20:20 +02:00
large-int-crash.ll
load-store-global-no-null-opt.ll [IR] Convert null-pointer-is-valid into an enum attribute 2020-05-15 19:41:07 +02:00
load-store-global.ll
localize-constexpr-debuginfo.ll
localize-constexpr.ll
long-compilation-global-sra.ll
malloc-promote-1-no-null-opt.ll [IR] Convert null-pointer-is-valid into an enum attribute 2020-05-15 19:41:07 +02:00
malloc-promote-1.ll [IR] Convert null-pointer-is-valid into an enum attribute 2020-05-15 19:41:07 +02:00
malloc-promote-2-no-null-opt.ll [IR] Convert null-pointer-is-valid into an enum attribute 2020-05-15 19:41:07 +02:00
malloc-promote-2.ll [IR] Convert null-pointer-is-valid into an enum attribute 2020-05-15 19:41:07 +02:00
malloc-promote-3.ll
malloc-promote-4.ll This patch extends the OptimizeGlobalAddressOfMalloc to handle the null check of global pointer variables. It is disabled with https://reviews.llvm.org/rGb7cd291c1542aee12c9e9fde6c411314a163a8ea. This PR is to reenable it while fixing the original problem reported. The fix is to set the store value correctly when creating store for the new created global init bool symbol. 2021-07-20 12:27:26 -04:00
memcpy.ll
memset-null.ll
memset.ll
metadata.ll
musttail_cc.ll
naked_functions.ll
new-promote.ll [GlobalOpt] support ConstantExpr use of global address for OptimizeGlobalAddressOfMalloc 2021-07-31 18:42:02 -04:00
null-check-global-value.ll [GlobalOpt] Fix the assert for null check of global value 2021-08-24 20:47:33 -04:00
null-check-is-use-pr35760.ll This patch extends the OptimizeGlobalAddressOfMalloc to handle the null check of global pointer variables. It is disabled with https://reviews.llvm.org/rGb7cd291c1542aee12c9e9fde6c411314a163a8ea. This PR is to reenable it while fixing the original problem reported. The fix is to set the store value correctly when creating store for the new created global init bool symbol. 2021-07-20 12:27:26 -04:00
null-check-not-use-pr35760.ll This patch extends the OptimizeGlobalAddressOfMalloc to handle the null check of global pointer variables. It is disabled with https://reviews.llvm.org/rGb7cd291c1542aee12c9e9fde6c411314a163a8ea. This PR is to reenable it while fixing the original problem reported. The fix is to set the store value correctly when creating store for the new created global init bool symbol. 2021-07-20 12:27:26 -04:00
phi-select.ll
pr21191.ll
pr33686.ll
preallocated.ll [GlobalOpt] Remove preallocated calls when possible 2020-06-18 09:56:13 -07:00
preserve-comdats.ll
shrink-address-to-bool.ll
shrink-global-to-bool-check-debug.ll [GlobalOpt] Explicitly set alignment of bool load/store operations. 2020-04-12 16:03:12 -07:00
shrink-global-to-bool.ll [GlobalOpt] Do not shrink global to bool for an unfavorable AS 2021-09-16 23:13:30 -04:00
static-const-bitcast.ll
store-struct-element.ll [GlobalOpt] Fix a miscompile when evaluating struct initializers. 2021-07-14 15:37:01 -07:00
stored-once-value-type.ll [GlobalOpt] Check stored once value's type before setting global initializer 2021-08-17 14:34:29 -07:00
storepointer-compare-no-null-opt.ll [IR] Convert null-pointer-is-valid into an enum attribute 2020-05-15 19:41:07 +02:00
storepointer-compare.ll
storepointer-no-null-opt.ll [IR] Convert null-pointer-is-valid into an enum attribute 2020-05-15 19:41:07 +02:00
storepointer.ll
tls.ll
trivialstore.ll
undef-init.ll
unnamed-addr.ll [globalopt] Teach to look through `addrspacecast`. 2020-10-16 08:43:09 -04:00
zeroinitializer-gep-load.ll