llvm-mirror/include/llvm
Chandler Carruth 67c334679c Move the CodeExtractor utility to a dedicated header file / source file,
and expose it as a utility class rather than as free function wrappers.

The simple free-function interface works well for the bugpoint-specific
pass's uses of code extraction, but in an upcoming patch for more
advanced code extraction, they simply don't expose a rich enough
interface. I need to expose various stages of the process of doing the
code extraction and query information to decide whether or not to
actually complete the extraction or give up.

Rather than build up a new predicate model and pass that into these
functions, just take the class that was actually implementing the
functions and lift it up into a proper interface that can be used to
perform code extraction. The interface is cleaned up and re-documented
to work better in a header. It also is now setup to accept the blocks to
be extracted in the constructor rather than in a method.

In passing this essentially reverts my previous commit here exposing
a block-level query for eligibility of extraction. That is no longer
necessary with the more rich interface as clients can query the
extraction object for eligibility directly. This will reduce the number
of walks of the input basic block sequence by quite a bit which is
useful if this enters the normal optimization pipeline.

llvm-svn: 156163
2012-05-04 10:18:49 +00:00
..
ADT Add a FoldingSetVector datastructure which is analogous to a SetVector, 2012-05-03 23:38:34 +00:00
Analysis A pile of long over-due refactorings here. There are some very, *very* 2012-05-04 00:58:03 +00:00
Assembly Prune some includes and forward declarations. 2012-03-26 06:58:25 +00:00
Bitcode Fix windows compilation warning. Patch by Micah. 2012-03-21 20:00:30 +00:00
CodeGen Target independent Hexagon Packetizer fix. 2012-05-01 21:28:30 +00:00
Config Add rudimentary CMake logic for detecting Graphviz. 2012-05-03 21:51:05 +00:00
DebugInfo DebugInfo: Add equality operators and default constructor to DILineInfo. 2011-09-21 01:13:16 +00:00
ExecutionEngine Fix some formatting, grammar and style issues and add a couple of missing comments. 2012-04-29 12:40:47 +00:00
MC Make member variables of AsmToken private. Remove unnecessary forward declarations. Remove an unnecessary include. 2012-04-15 22:00:22 +00:00
Object Implement GDB integration for source level debugging of code JITed using 2012-04-16 22:12:58 +00:00
Support Update SmallVector to support move semantics if the host does. 2012-05-02 05:39:15 +00:00
TableGen Move llvm-tblgen's StringMatcher into the TableGen library so it can 2012-05-02 17:32:48 +00:00
Target Remove the SubRegClasses field from RegisterClass descriptions. 2012-05-04 03:30:34 +00:00
Transforms Move the CodeExtractor utility to a dedicated header file / source file, 2012-05-04 10:18:49 +00:00
Argument.h Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch 2011-12-20 02:50:00 +00:00
Attributes.h Don't use static CTORs for the Attributes constants, while still keeping the class type-safe 2012-02-08 01:11:21 +00:00
AutoUpgrade.h remove autoupgrade support for really old-style debug info intrinsics. 2011-11-27 06:18:33 +00:00
BasicBlock.h Add a constified getLandingPad() method. 2012-01-31 00:26:24 +00:00
CallGraphSCCPass.h
CallingConv.h
CMakeLists.txt build/cmake: Use tblgen macro directly instead of llvm_tablegen, which just 2011-11-04 19:04:23 +00:00
Constant.h Convert assert(0) to llvm_unreachable 2012-02-05 22:14:15 +00:00
ConstantRangesSet.h Related to PR1255. Let's begin. I'll commit classes that corresponds to our latest PR1255 discussion posts in llvm-commits. 2012-04-24 18:31:10 +00:00
Constants.h Efficient Constant Uniquing. 2012-02-05 20:54:10 +00:00
CRSBuilder.h Related to PR1255. Let's begin. I'll commit classes that corresponds to our latest PR1255 discussion posts in llvm-commits. 2012-04-24 18:31:10 +00:00
DefaultPasses.h Add a couple missing includes; found while analyzing LLVM headers. 2011-11-04 18:19:43 +00:00
DerivedTypes.h Cache the sized-ness of struct types, once we reach the steady state of 2012-03-07 02:33:09 +00:00
Function.h [Support] Drop verbose _ATTRIBUTE from LLVM_ATTRIBUTE_{READONLY,READNONE} macro 2012-03-09 16:30:33 +00:00
GlobalAlias.h Remove DEFINE_TRANSPARENT_CASTED_OPERAND_ACCESSORS, folding its 2011-08-22 09:37:03 +00:00
GlobalValue.h Re-fix the issue Bill fixed in r147899 in a slightly different way, which doesn't abuse the semantics of linker_private. We don't really want to merge any string constant with a weak_odr global. 2012-01-11 22:06:46 +00:00
GlobalVariable.h land David Blaikie's patch to de-constify Type, with a few tweaks. 2011-07-18 04:54:35 +00:00
GVMaterializer.h
InitializePasses.h ThreadSanitizer, a race detector. First LLVM commit. 2012-02-13 22:50:51 +00:00
InlineAsm.h Prune some includes and forward declarations. 2012-03-26 06:58:25 +00:00
InstrTypes.h Add some missing anchors. 2011-12-01 08:00:17 +00:00
Instruction.def [unwind removal] Remove all of the code for the dead 'unwind' instruction. There 2012-02-06 21:44:22 +00:00
Instruction.h Move Instruction::isSafeToSpeculativelyExecute out of VMCore and 2011-12-14 23:49:11 +00:00
Instructions.h Fix accidentally constant conditions found by uncommitted improvements to -Wconstant-conversion. 2012-04-09 16:29:35 +00:00
IntrinsicInst.h Remove the eh.exception and eh.selector intrinsics. Also remove a hack to copy 2012-01-31 01:46:13 +00:00
Intrinsics.h land David Blaikie's patch to de-constify Type, with a few tweaks. 2011-07-18 04:54:35 +00:00
Intrinsics.td Remove the now-dead llvm.eh.exception and llvm.eh.selector intrinsics. 2012-01-31 01:58:48 +00:00
IntrinsicsARM.td
IntrinsicsCellSPU.td
IntrinsicsHexagon.td Revert r155365, r155366, and r155367. All three of these have regression 2012-04-23 18:25:57 +00:00
IntrinsicsPowerPC.td
IntrinsicsPTX.td
IntrinsicsX86.td Remove AVX vpermil intrinsics. I removed their uses from clang headers and builtins a while back. 2012-04-18 05:24:00 +00:00
IntrinsicsXCore.td Update IntrinsicsXCore.td with the normal LLVM notice at the top of the file. 2011-10-13 21:08:11 +00:00
LinkAllPasses.h Add a basic-block autovectorization pass. 2012-02-01 03:51:43 +00:00
LinkAllVMCore.h
Linker.h Prune some includes and forward declarations. 2012-03-26 06:58:25 +00:00
LLVMContext.h Rename "fpaccuracy" metadata to the more generic "fpmath". That's because I'm 2012-04-14 12:36:06 +00:00
Metadata.h Fix pasto. 2012-04-11 20:20:37 +00:00
Module.h Add a flag to the struct type finder to collect only those types which have 2012-04-21 23:59:16 +00:00
OperandTraits.h Remove DEFINE_TRANSPARENT_CASTED_OPERAND_ACCESSORS, folding its 2011-08-22 09:37:03 +00:00
Operator.h Remove support for the special 'fast' value for fpmath accuracy for the moment. 2012-04-16 19:39:33 +00:00
Pass.h Added TargetPassConfig::disablePass/substitutePass as a general mechanism to override specific passes. 2012-02-15 03:21:47 +00:00
PassAnalysisSupport.h Add a couple missing includes; found while analyzing LLVM headers. 2011-11-04 18:19:43 +00:00
PassManager.h Add pass printer passes in the right place. 2012-02-01 07:16:20 +00:00
PassManagers.h Add pass printer passes in the right place. 2012-02-01 07:16:20 +00:00
PassRegistry.h
PassSupport.h Add Tsan annotations to the pass system. 2011-12-08 00:15:41 +00:00
SymbolTableListTraits.h
Type.h add StructType helpers too. 2012-01-26 00:06:44 +00:00
Use.h
User.h Convert assert(0) to llvm_unreachable 2012-02-05 22:14:15 +00:00
Value.h The MDString class stored a StringRef to the string which was already in a 2012-04-10 20:12:16 +00:00
ValueSymbolTable.h