llvm-mirror/test/Transforms/LICM
George Burgess IV e908528176 [Analysis] Make LocationSizes carry an 'imprecise' bit
There are places where we need to merge multiple LocationSizes of
different sizes into one, and get a sensible result.

There are other places where we want to optimize aggressively based on
the value of a LocationSizes (e.g. how can a store of four bytes be to
an area of storage that's only two bytes large?)

This patch makes LocationSize hold an 'imprecise' bit to note whether
the LocationSize can be treated as an upper-bound and lower-bound for
the size of a location, or just an upper-bound.

This concludes the series of patches leading up to this. The most recent
of which is r344108.

Fixes PR36228.

Differential Revision: https://reviews.llvm.org/D44748

llvm-svn: 344114
2018-10-10 06:39:40 +00:00
..
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 [AST] Generalize argument specific aliasing 2018-09-07 21:36:11 +00:00
assume.ll [LICM] Hoist assumes out of loops 2018-08-10 22:21:56 +00:00
atomics.ll [LICM] Hoist stores of invariant values to invariant addresses out of loops 2018-08-29 21:49:30 +00:00
basictest.ll
bisect-state.ll
call-hoisting.ll [LICM] Fix a test so it actualy checks what was meant [NFC] 2018-08-21 21:27:26 +00:00
constexpr.ll
crash.ll
debug-value.ll
dropped-tbaa.ll
extra-copies.ll
fence.ll [LICM] hoist fences out of loops w/o memory operations 2018-08-09 20:18:42 +00:00
funclet.ll [LICM] Hoist stores of invariant values to invariant addresses out of loops 2018-08-29 21:49:30 +00:00
guards.ll [NFC] Add Requires: asserts where needed 2018-09-13 04:43:24 +00:00
hoist-bitcast-load.ll
hoist-debuginvariant.ll [MustExecute] Fix a debug invariant issue in isGuaranteedToExecute() 2018-05-25 13:02:59 +00:00
hoist-deref-load.ll Re-enable "[ValueTracking] Teach isKnownNonNullFromDominatingCondition about AND" 2018-08-06 11:14:18 +00:00
hoist-fast-fdiv.ll Fix invariant fdiv hoisting in LICM 2018-06-23 04:01:28 +00:00
hoist-invariant-load.ll
hoist-mustexec.ll [NFC] Add Requires: asserts where needed 2018-09-13 04:43:24 +00:00
hoist-nounwind.ll
hoist-round.ll
hoisting.ll [LICM] Add tests from D50786 [NFC] 2018-08-21 00:42:07 +00:00
infinite_loops.ll [MustExecute] Fix algorithmic bug in isGuaranteedToExecute. PR38514 2018-08-17 06:19:17 +00:00
int_sideeffect.ll
invariant.start.ll [LICM] Hoist an invariant_start out of loops if there are no stores executed before it 2018-08-24 16:24:48 +00:00
lcssa-ssa-promoter.ll
loopsink-pr38462.ll LoopSink: Don't sink into blocks without an insertion point (PR38462) 2018-08-29 06:55:27 +00:00
loopsink.ll NFC - Various typo fixes in tests 2018-07-04 13:28:39 +00:00
no-preheader-test.ll
opt-remarks-conditional-load.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
opt-remarks-intervening-store.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
opt-remarks.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
pr23608.ll
pr26843.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
pr27262.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
pr32129.ll
pr35342.ll [LICM] Fix PR35342 2017-11-17 20:38:25 +00:00
pr36228.ll [Analysis] Make LocationSizes carry an 'imprecise' bit 2018-10-10 06:39:40 +00:00
pr37323.ll [LICM] Preserve DT and LoopInfo specifically 2018-05-24 15:58:34 +00:00
PR19798.ll
PR21582.ll
PR24013.ll
preheader-safe.ll [LICM] Compute a must execute property for the prefix of the header as we go 2018-05-04 21:35:00 +00:00
Preserve-LCSSA.ll
promote-order.ll [LICM] Hoist stores of invariant values to invariant addresses out of loops 2018-08-29 21:49:30 +00:00
promote-tls.ll
read-only-calls.ll [LICM] Add a diagnostic analysis for identifying alias information 2018-08-17 13:44:00 +00:00
scalar-promote-memmodel.ll
scalar-promote-unwind.ll
scalar-promote.ll [LICM] Add tests from D50786 [NFC] 2018-08-21 00:42:07 +00:00
sink-foldable.ll Re-commit : [LICM] Allow sinking when foldable in loop 2017-12-15 20:33:24 +00:00
sink.ll
sinking.ll [LICM] Remove unneccessary safety check to increase sinking effectiveness 2018-08-03 00:21:56 +00:00
speculate.ll
store-hoisting.ll Add a todo and tests to Address a review commnt from D50925 [NFC] 2018-08-29 22:09:21 +00:00
strlen.ll
unrolled-deeply-nested.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
update-scev.ll
volatile-alias.ll