1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 10:42:39 +01:00
llvm-mirror/test/Transforms/LICM
Nikita Popov ea8b19209c [LICM] Remove MaybePromotable set (PR50367)
The MaybePromotable set keeps track of loads/stores for which
promotion was not attempted yet. Normally, any load/stores that
are promoted in the current iteration will be removed from this
set, because they naturally MustAlias with the promoted value.
However, if the source program has UB with metadata claiming that
a store is NoAlias, while it is actually MustAlias, and multiple
different pointers are promoted in the same iteration, it can
happen that a store is removed that is still in the MaybePromotable
set, causing a use-after-free.

While this could be fixed by explicitly invalidating values in
MaybePromotable in the LoopPromoter, I'm going with the more
radical option of dropping the set entirely here and check all
load/stores on each promotion iteration. As promotion, and especially
repeated promotion, are quite rare, this doesn't seem to have any
impact on compile-time.

Fixes https://bugs.llvm.org/show_bug.cgi?id=50367.
2021-05-18 20:26:01 +02:00
..
AArch64 [AArch64][SVE] Drop "argmemonly" from gather/scatter with vector base. 2020-09-25 16:01:05 -07:00
AMDGPU
Inputs [LICM] Make Loop ICM profile aware again 2020-09-15 17:21:58 -07:00
2003-02-26-LoopExitNotDominated.ll [BasicAA] Rename deprecated -basicaa to -basic-aa 2020-06-26 20:41:37 -07:00
2003-02-27-NestedLoopExitBlocks.ll
2003-02-27-PreheaderExitNodeUpdate.ll
2003-02-27-PreheaderProblem.ll [SimplifyCFG] MergeBlockIntoPredecessor() already knows how to preserve DomTree 2020-12-17 01:03:49 +03:00
2003-02-27-StoreSinkPHIs.ll
2003-02-28-PromoteDifferentType.ll
2003-05-02-LoadHoist.ll
2003-12-11-SinkingToPHI.ll Re-apply "[lli] Make -jit-kind=orc the default JIT engine" 2021-03-30 12:08:26 +02:00
2004-09-14-AliasAnalysisInvalidate.ll
2004-11-17-UndefIndexCrash.ll
2006-09-12-DeadUserOfSunkInstr.ll
2007-05-22-VolatileSink.ll
2007-07-30-AliasSet.ll [NewPM][LoopUnswitch] Pin loop-unswitch to legacy PM or use simple-loop-unswitch 2020-08-06 10:56:00 -07:00
2007-09-17-PromoteValue.ll
2007-09-24-PromoteNullValue.ll
2007-10-01-PromoteSafeValue.ll
2008-05-20-AliasSetVAArg.ll
2008-07-22-LoadGlobalConstant.ll [BasicAA] Rename deprecated -basicaa to -basic-aa 2020-06-26 20:41:37 -07:00
2009-12-10-LICM-Indbr-Crash.ll
2011-04-06-HoistMissedASTUpdate.ll [BasicAA] Rename deprecated -basicaa to -basic-aa 2020-06-26 20:41:37 -07:00
2011-04-06-PromoteResultOfPromotion.ll
2011-04-09-RAUW-AST.ll
2011-07-06-Alignment.ll
2014-09-10-doFinalizationAssert.ll
alias-set-tracker-loss.ll
AliasSetMemSet.ll
argmemonly-call.ll [NewPM][MSSA] Fix failures under NPM due to -enable-mssa-loop-dependency 2020-09-23 15:17:43 -07:00
assume.ll [BasicAA] Rename deprecated -basicaa to -basic-aa 2020-06-26 20:41:37 -07:00
atomics.ll [NewPM][MSSA] Fix failures under NPM due to -enable-mssa-loop-dependency 2020-09-23 15:17:43 -07:00
basictest.ll
bisect-state.ll
call-hoisting.ll [BasicAA] Rename deprecated -basicaa to -basic-aa 2020-06-26 20:41:37 -07:00
callbr-crash.ll
constexpr.ll [BasicAA] Rename deprecated -basicaa to -basic-aa 2020-06-26 20:41:37 -07:00
convergent.ll Prevent LICM and machineLICM from hoisting convergent operations 2020-11-06 10:26:39 -08:00
crash.ll
debug-value.ll [BasicAA] Rename deprecated -basicaa to -basic-aa 2020-06-26 20:41:37 -07:00
dropped-tbaa.ll Rename scoped-noalias -> scoped-noalias-aa 2020-07-24 12:14:27 -07:00
explicit_guards.ll [BasicAA] Rename deprecated -basicaa to -basic-aa 2020-06-26 20:41:37 -07:00
extra-copies.ll
fence.ll [BasicAA] Rename deprecated -basicaa to -basic-aa 2020-06-26 20:41:37 -07:00
freeze.ll
funclet.ll
gc-relocate.ll [LICM] Fix a crash when sinking instructions w/token operands 2021-03-17 11:18:46 -07:00
guards.ll [BasicAA] Rename deprecated -basicaa to -basic-aa 2020-06-26 20:41:37 -07:00
hoist-alloc.ll [nofree] Restrict semantics to memory visible to caller 2021-04-16 11:38:55 -07:00
hoist-bitcast-load.ll [LoopSimplifyCFG][NewPM] Rename simplify-cfg -> loop-simplifycfg 2020-09-21 08:27:19 -07:00
hoist-debuginvariant.ll
hoist-deref-load.ll Autogen some tests for ease of update 2021-03-22 11:06:29 -07:00
hoist-fast-fdiv.ll
hoist-invariant-load.ll [BasicAA] Rename -disable-basicaa to -disable-basic-aa to be consistent with the canonical name "basic-aa" 2020-06-26 20:55:44 -07:00
hoist-mustexec.ll [BasicAA] Rename deprecated -basicaa to -basic-aa 2020-06-26 20:41:37 -07:00
hoist-nounwind.ll [BasicAA] Rename deprecated -basicaa to -basic-aa 2020-06-26 20:41:37 -07:00
hoist-phi.ll
hoist-round.ll [FPEnv] Intrinsic llvm.roundeven 2020-05-26 19:24:58 +07:00
hoisting-preheader-debugloc.ll [Instruction] Add dropLocation and updateLocationAfterHoist helpers 2020-09-24 15:00:04 -07:00
hoisting.ll [SVE] Fix isLoadInvariantInLoop for scalable vectors 2020-09-15 08:30:19 +01:00
infinite_loops.ll [BasicAA] Rename deprecated -basicaa to -basic-aa 2020-06-26 20:41:37 -07:00
int_sideeffect.ll
invariant.start.ll [BasicAA] Rename deprecated -basicaa to -basic-aa 2020-06-26 20:41:37 -07:00
lcssa-ssa-promoter.ll [BasicAA] Rename deprecated -basicaa to -basic-aa 2020-06-26 20:41:37 -07:00
loopsink-pr38462.ll Reland: Expand existing loopsink testing to also test loopsinking using new pass manager and fix LICM bug. 2020-11-20 10:26:33 -05:00
loopsink-pr39570.ll Reland: Expand existing loopsink testing to also test loopsinking using new pass manager and fix LICM bug. 2020-11-20 10:26:33 -05:00
loopsink-pr39695.ll Reland: Expand existing loopsink testing to also test loopsinking using new pass manager and fix LICM bug. 2020-11-20 10:26:33 -05:00
loopsink.ll Reland: Expand existing loopsink testing to also test loopsinking using new pass manager and fix LICM bug. 2020-11-20 10:26:33 -05:00
no-hoist-prof.ll [LICM] Make Loop ICM profile aware again 2020-09-15 17:21:58 -07:00
no-preheader-test.ll
opt-remarks-conditional-load.ll
opt-remarks-intervening-store.ll
opt-remarks.ll
outer-loop-deleted-before-licm.ll
pr23608.ll [FileCheck] Enforce --allow-unused-prefixes=false for llvm/test/Transforms 2020-12-09 08:51:38 -08:00
pr26843.ll [BasicAA] Rename deprecated -basicaa to -basic-aa 2020-06-26 20:41:37 -07:00
pr27262.ll [BasicAA] Rename deprecated -basicaa to -basic-aa 2020-06-26 20:41:37 -07:00
pr32129.ll [NewPM][LoopUnswitch] Pin loop-unswitch to legacy PM or use simple-loop-unswitch 2020-08-06 10:56:00 -07:00
pr35342.ll
pr36228.ll
pr37323.ll
pr38513.ll [BasicAA] Rename -disable-basicaa to -disable-basic-aa to be consistent with the canonical name "basic-aa" 2020-06-26 20:55:44 -07:00
pr40317.ll For some tests targeting SystemZ, -march=z13 ---> -mcpu=z13 2020-07-29 19:18:01 -07:00
pr42969.ll Rename scoped-noalias -> scoped-noalias-aa 2020-07-24 12:14:27 -07:00
pr50367.ll [LICM] Remove MaybePromotable set (PR50367) 2021-05-18 20:26:01 +02:00
PR19798.ll
PR21582.ll [BasicAA] Rename deprecated -basicaa to -basic-aa 2020-06-26 20:41:37 -07:00
PR24013.ll
pragma-licm-disable.ll [BasicAA] Rename deprecated -basicaa to -basic-aa 2020-06-26 20:41:37 -07:00
preheader-safe.ll
Preserve-LCSSA.ll [NewPM][LoopUnswitch] Pin loop-unswitch to legacy PM or use simple-loop-unswitch 2020-08-06 10:56:00 -07:00
promote-atomic.ll Reapply [LICM] Make promotion faster 2021-03-11 10:50:28 +01:00
promote-capture.ll [LICM] Make capture check more precise 2021-04-19 20:34:23 +02:00
promote-order.ll [NewPM][MSSA] Fix failures under NPM due to -enable-mssa-loop-dependency 2020-09-23 15:17:43 -07:00
promote-tls.ll [tbaa] Rename type-based-aa -> tbaa 2020-07-30 19:51:35 -07:00
read-only-calls.ll [NewPM][MSSA] Fix failures under NPM due to -enable-mssa-loop-dependency 2020-09-23 15:17:43 -07:00
read-volatile-register.ll AArch64+ARM: make LLVM consider system registers volatile. 2020-07-15 09:47:36 +01:00
scalar-promote-memmodel.ll [tbaa] Rename type-based-aa -> tbaa 2020-07-30 19:51:35 -07:00
scalar-promote-unwind.ll [BasicAA] Rename deprecated -basicaa to -basic-aa 2020-06-26 20:41:37 -07:00
scalar-promote.ll [tbaa] Rename type-based-aa -> tbaa 2020-07-30 19:51:35 -07:00
sink-debuginfo-preserve.ll
sink-foldable.ll [NFC] Update tests 2020-05-05 15:28:40 +01:00
sink-promote.ll [BasicAA] Rename deprecated -basicaa to -basic-aa 2020-06-26 20:41:37 -07:00
sink-with-coroutine.ll [LICM][Coroutine] Don't sink stores from loops with coro.suspend instructions 2021-03-03 15:21:57 -08:00
sink.ll [LICM] Make Loop ICM profile aware again 2020-09-15 17:21:58 -07:00
sinking.ll [BasicAA] Rename deprecated -basicaa to -basic-aa 2020-06-26 20:41:37 -07:00
speculate.ll
store-hoisting.ll [NewPM][MSSA] Fix failures under NPM due to -enable-mssa-loop-dependency 2020-09-23 15:17:43 -07:00
strlen.ll Reapply "[InferAttributes] Materialize all infered attributes for declaration"" and follow on patches. 2021-04-14 16:38:07 -07:00
unrolled-deeply-nested.ll [BasicAA] Rename deprecated -basicaa to -basic-aa 2020-06-26 20:41:37 -07:00
update-scev.ll [test][NewPM] Fix update-scev.ll under NPM 2020-09-22 19:26:30 -07:00
volatile-alias.ll [BasicAA] Rename deprecated -basicaa to -basic-aa 2020-06-26 20:41:37 -07:00