llvm-project/llvm/test/Transforms/GlobalOpt
Sanjay Patel 416a119f9e [GlobalOpt] don't hoist constant expressions that can trap
We try to forward a stored-once-constant-value from one global access
to another, but that's not safe if the constant value is an expression
that can trap.

The tests are reduced from the miscompile examples in:
https://llvm.org/PR47578

Differential Revision: https://reviews.llvm.org/D108771
2021-08-27 08:10:20 -04: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
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-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
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