llvm-project/llvm/lib/Transforms/Scalar
Adam Nemet 15840393f3 [LAA] Make the set of runtime checks part of the state of LAA, NFC
This is the full set of checks that clients can further filter. IOW,
it's client-agnostic.  This makes LAA complete in the sense that it now
provides the two main results of its analysis precomputed:

1. memory dependences via getDepChecker().getInsterestingDependences()
2. run-time checks via getRuntimePointerCheck().getChecks()

However, as a consequence we now compute this information pro-actively.
Thus if the client decides to skip the loop based on the dependences
we've computed the checks unnecessarily.  In order to see whether this
was a significant overhead I checked compile time on SPEC2k6 LTO bitcode
files.  The change was in the noise.

The checks are generated in canCheckPtrAtRT, at the same place where we
used to call groupChecks to merge checks.

llvm-svn: 244368
2015-08-07 22:44:15 +00:00
..
ADCE.cpp Rename inst_range() to instructions() for consistency. NFC 2015-08-06 19:10:45 +00:00
AlignmentFromAssumptions.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
BDCE.cpp Rename inst_range() to instructions() for consistency. NFC 2015-08-06 19:10:45 +00:00
CMakeLists.txt Add a speculative execution pass 2015-05-15 17:54:48 +00:00
ConstantHoisting.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
ConstantProp.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
CorrelatedValuePropagation.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
DCE.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
DeadStoreElimination.cpp [PM/AA] Extract the ModRef enums from the AliasAnalysis class in 2015-07-22 23:15:57 +00:00
EarlyCSE.cpp Rename all references to old mailing lists to new lists.llvm.org address. 2015-08-05 03:51:17 +00:00
FlattenCFGPass.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
Float2Int.cpp Rename inst_range() to instructions() for consistency. NFC 2015-08-06 19:10:45 +00:00
GVN.cpp Drive-by fixes for LandingPad -> EHPad 2015-08-04 08:21:40 +00:00
IndVarSimplify.cpp [IndVars] Try to use existing values in RewriteLoopExitValues. 2015-07-09 18:46:12 +00:00
InductiveRangeCheckElimination.cpp Create a wrapper pass for BranchProbabilityInfo. 2015-07-15 22:48:29 +00:00
JumpThreading.cpp Drive-by fixes for LandingPad -> EHPad 2015-08-04 08:21:40 +00:00
LICM.cpp [PM/AA] Simplify the AliasAnalysis interface by removing a wrapper 2015-08-06 02:05:46 +00:00
LLVMBuild.txt Update libdeps since TLI was moved from Target to Analysis in r226078. 2015-01-15 05:21:00 +00:00
LoadCombine.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
LoopDeletion.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
LoopDistribute.cpp [LAA] Make the set of runtime checks part of the state of LAA, NFC 2015-08-07 22:44:15 +00:00
LoopIdiomRecognize.cpp [PM/AA] Extract the ModRef enums from the AliasAnalysis class in 2015-07-22 23:15:57 +00:00
LoopInstSimplify.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
LoopInterchange.cpp Revert "Remove unnecessary null check. NFC." 2015-07-27 18:37:58 +00:00
LoopRerollPass.cpp Handle loop with negtive induction variable increment 2015-07-24 22:01:49 +00:00
LoopRotation.cpp Convert a bunch of loops to foreach. NFC. 2015-08-06 20:22:46 +00:00
LoopStrengthReduce.cpp Revert "[LSR] Generate and use zero extends" 2015-08-04 01:52:05 +00:00
LoopUnrollPass.cpp [Unroll] Switch to using 'int' cost types in preparation for a somewhat 2015-08-05 18:46:21 +00:00
LoopUnswitch.cpp [LoopUnswitch] Preserve make.implicit metadata for unswitched conditions 2015-08-05 21:13:26 +00:00
LowerAtomic.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
LowerExpectIntrinsic.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
Makefile
MemCpyOptimizer.cpp [PM/AA] Extract the ModRef enums from the AliasAnalysis class in 2015-07-22 23:15:57 +00:00
MergedLoadStoreMotion.cpp [PM/AA] Extract the ModRef enums from the AliasAnalysis class in 2015-07-22 23:15:57 +00:00
NaryReassociate.cpp [NaryReassociate] remove redundant code 2015-07-23 23:13:37 +00:00
PartiallyInlineLibCalls.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
PlaceSafepoints.cpp Rename inst_range() to instructions() for consistency. NFC 2015-08-06 19:10:45 +00:00
Reassociate.cpp [Reassociation] Fix miscompile for va_arg arguments. 2015-08-06 18:44:34 +00:00
Reg2Mem.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
RewriteStatepointsForGC.cpp Rename inst_range() to instructions() for consistency. NFC 2015-08-06 19:10:45 +00:00
SCCP.cpp Convert a bunch of loops to foreach. NFC. 2015-08-06 20:22:46 +00:00
SROA.cpp [SROA] Fix a nasty pile of bugs to do with big-endian, different alloca 2015-07-22 03:32:42 +00:00
SampleProfile.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
Scalar.cpp [PM/AA] Hoist the interface for BasicAA into a header file. 2015-08-06 07:33:15 +00:00
ScalarReplAggregates.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
Scalarizer.cpp [Scalarizer] Fix potential for stale data in Scattered across invocations 2015-07-23 20:53:46 +00:00
SeparateConstOffsetFromGEP.cpp SeparateConstOffsetFromGEP: Pass address space to isLegalAddressingMode 2015-06-07 20:17:44 +00:00
SimplifyCFGPass.cpp fix typos; NFC 2015-06-24 20:42:33 +00:00
Sink.cpp [PM/AA] Extract the ModRef enums from the AliasAnalysis class in 2015-07-22 23:15:57 +00:00
SpeculativeExecution.cpp [Speculation] NFC: more header comments 2015-05-19 20:52:45 +00:00
StraightLineStrengthReduce.cpp Roll forward r243250 2015-07-26 19:10:03 +00:00
StructurizeCFG.cpp Convert a bunch of loops to foreach. NFC. 2015-08-06 20:22:46 +00:00
TailRecursionElimination.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00