mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 11:13:28 +01:00
7ddff7f375
skip sub-subloops. The logic to skip subloops dated from when this code was shared with the cached case. Once it was factored out to only run in the case of recomputed subloops it became a dangerous bug. If a subsubloop contained an interfering instruction it would be silently skipped from the alias sets for LICM. With the old pass manager this was extremely hard to trigger as it would require failing to visit these subloops with the LICM pass but then visiting the outer loop somehow. I've not yet contrived any test case that actually manages to trigger this. But with the new pass manager we don't do the cross-loop caching hack that the old PM does and so we recompute alias set information from first principles. While this seems much cleaner and simpler it exposed this bug and would subtly miscompile code due to failing to correctly model the aliasing constraints of deeply nested loops. llvm-svn: 293273 |
||
---|---|---|
.. | ||
2003-02-26-LoopExitNotDominated.ll | ||
2003-02-27-NestedLoopExitBlocks.ll | ||
2003-02-27-PreheaderExitNodeUpdate.ll | ||
2003-02-27-PreheaderProblem.ll | ||
2003-02-27-StoreSinkPHIs.ll | ||
2003-02-28-PromoteDifferentType.ll | ||
2003-05-02-LoadHoist.ll | ||
2003-12-11-SinkingToPHI.ll | ||
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 | ||
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 | ||
2009-12-10-LICM-Indbr-Crash.ll | ||
2011-04-06-HoistMissedASTUpdate.ll | ||
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 | ||
assume.ll | ||
atomics.ll | ||
basictest.ll | ||
bisect-state.ll | ||
constexpr.ll | ||
crash.ll | ||
debug-value.ll | ||
extra-copies.ll | ||
funclet.ll | ||
hoist-bitcast-load.ll | ||
hoist-deref-load.ll | ||
hoist-invariant-load.ll | ||
hoist-nounwind.ll | ||
hoist-round.ll | ||
hoisting.ll | ||
lcssa-ssa-promoter.ll | ||
loopsink.ll | ||
no-preheader-test.ll | ||
opt-remarks-conditional-load.ll | ||
opt-remarks-intervening-store.ll | ||
opt-remarks.ll | ||
pr23608.ll | ||
pr26843.ll | ||
pr27262.ll | ||
PR19798.ll | ||
PR21582.ll | ||
PR24013.ll | ||
preheader-safe.ll | ||
Preserve-LCSSA.ll | ||
promote-order.ll | ||
promote-tls.ll | ||
scalar-promote-memmodel.ll | ||
scalar-promote-unwind.ll | ||
scalar-promote.ll | ||
sink.ll | ||
sinking.ll | ||
speculate.ll | ||
unrolled-deeply-nested.ll | ||
update-scev.ll | ||
volatile-alias.ll |