llvm-6502/include/llvm/Analysis
Chandler Carruth 13086a658a Begin fleshing out an interface in TTI for modelling the costs of
generic function calls and intrinsics. This is somewhat overlapping with
an existing intrinsic cost method, but that one seems targetted at
vector intrinsics. I'll merge them or separate their names and use cases
in a separate commit.

This sinks the test of 'callIsSmall' down into TTI where targets can
control it. The whole thing feels very hack-ish to me though. I've left
a FIXME comment about the fundamental design problem this presents. It
isn't yet clear to me what the users of this function *really* care
about. I'll have to do more analysis to figure that out. Putting this
here at least provides it access to proper analysis pass tools and other
such. It also allows us to more cleanly implement the baseline cost
interfaces in TTI.

With this commit, it is now theoretically possible to simplify much of
the inline cost analysis's handling of calls by calling through to this
interface. That conversion will have to happen in subsequent commits as
it requires more extensive restructuring of the inline cost analysis.

The CodeMetrics class is now really only in the business of running over
a block of code and aggregating the metrics on that block of code, with
the actual cost evaluation done entirely in terms of TTI.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173148 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-22 11:26:02 +00:00
..
AliasAnalysis.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
AliasSetTracker.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
BlockFrequencyImpl.h Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
BlockFrequencyInfo.h
BranchProbabilityInfo.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
CallGraph.h Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
CallGraphSCCPass.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
CallPrinter.h Added -view-callgraph module pass. 2013-01-11 17:28:14 +00:00
CaptureTracking.h Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
CFGPrinter.h Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
CodeMetrics.h Switch CodeMetrics itself over to use TTI to determine if an instruction 2013-01-21 13:04:33 +00:00
ConstantFolding.h Move TargetData to DataLayout. 2012-10-08 16:38:25 +00:00
ConstantsScanner.h
DependenceAnalysis.h Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
DominanceFrontier.h
DominatorInternals.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
Dominators.h Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
DomPrinter.h
DOTGraphTraitsPass.h Remove redundant 'llvm::' qualifications 2013-01-13 16:01:15 +00:00
FindUsedTypes.h
InlineCost.h Now that the inline cost analysis is a pass, we can easily have it 2013-01-21 11:55:09 +00:00
InstructionSimplify.h Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
Interval.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
IntervalIterator.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
IntervalPartition.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
IVUsers.h Move TargetData to DataLayout. 2012-10-08 16:38:25 +00:00
LazyValueInfo.h Move TargetData to DataLayout. 2012-10-08 16:38:25 +00:00
LibCallAliasAnalysis.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
LibCallSemantics.h Revert 'Fix a typo 'iff' => 'if''. iff is an abreviation of if and only if. See: http://en.wikipedia.org/wiki/If_and_only_if Commit 164767 2012-09-27 10:14:43 +00:00
Lint.h
Loads.h Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
LoopInfo.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
LoopInfoImpl.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
LoopIterator.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
LoopPass.h LoopPass.h doesn't require Function.h. Remove unneeded #include. 2013-01-11 01:03:32 +00:00
MemoryBuiltins.h Reverting r171325 & r172363. This was causing a mis-compile on the self-hosted LTO build bots. 2013-01-17 21:28:46 +00:00
MemoryDependenceAnalysis.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
Passes.h Add a cost model analysis that allows us to estimate the cost of IR-level instructions. 2012-11-02 21:48:17 +00:00
PathNumbering.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
PathProfileInfo.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
PHITransAddr.h Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
PostDominators.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
ProfileDataLoader.h Use the new script to sort the includes of every file under lib. 2012-12-03 16:50:05 +00:00
ProfileDataTypes.h fix C++ comment in C header 2012-08-29 20:32:13 +00:00
ProfileInfo.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
ProfileInfoLoader.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
ProfileInfoTypes.h Profile: move a single enum out of ProfileInfoTypes.h into a new 2012-08-24 18:31:44 +00:00
PtrUseVisitor.h Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
RegionInfo.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
RegionIterator.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
RegionPass.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
RegionPrinter.h
ScalarEvolution.h Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
ScalarEvolutionExpander.h SCEVExpander fix. RAUW needs to update the InsertedExpressions cache. 2013-01-14 21:00:37 +00:00
ScalarEvolutionExpressions.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
ScalarEvolutionNormalization.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
SparsePropagation.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
TargetTransformInfo.h Begin fleshing out an interface in TTI for modelling the costs of 2013-01-22 11:26:02 +00:00
Trace.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
ValueTracking.h Rename isPowerOfTwo to isKnownToBeAPowerOfTwo. 2012-12-13 03:37:24 +00:00
Verifier.h