llvm-6502/include/llvm/CodeGen
Jakob Stoklund Olesen f2c64ef519 Add an MCID::Select flag and TII hooks for optimizing selects.
Select instructions pick one of two virtual registers based on a
condition, like x86 cmov. On targets like ARM that support predication,
selects can sometimes be eliminated by predicating the instruction
defining one of the operands.

Teach PeepholeOptimizer to recognize select instructions, and ask the
target to optimize them.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162059 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-16 23:11:47 +00:00
..
PBQP Matrix simplification in PBQP may push infinite costs onto register options. 2012-04-03 16:27:16 +00:00
Analysis.h Fix a long standing tail call optimization bug. When a libcall is emitted 2012-04-10 01:51:00 +00:00
AsmPrinter.h Emit relocations for DW_AT_location entries on systems which need it. This is 2012-06-22 01:25:12 +00:00
CalcSpillWeights.h
CallingConvLower.h
DFAPacketizer.h Revert r158679 - use case is unclear (and it increases the memory footprint). 2012-06-22 20:27:13 +00:00
EdgeBundles.h Give a small negative bias to giant edge bundles. 2012-05-21 03:11:23 +00:00
FastISel.h Fall back to selection DAG isel for calls to builtin functions. 2012-08-03 04:06:28 +00:00
FunctionLoweringInfo.h
GCMetadata.h Change comment into proper Doxygen member comment. 2012-06-22 16:00:48 +00:00
GCMetadataPrinter.h
GCs.h
GCStrategy.h Convert comments to proper Doxygen comments. 2012-06-09 00:01:45 +00:00
IntrinsicLowering.h
ISDOpcodes.h Add SelectionDAG::getTargetIndex. 2012-08-07 22:37:05 +00:00
JITCodeEmitter.h
LatencyPriorityQueue.h
LexicalScopes.h Guard private fields that are unused in Release builds with #ifndef NDEBUG. 2012-06-16 21:48:13 +00:00
LinkAllAsmWriterComponents.h
LinkAllCodegenComponents.h
LiveInterval.h Completely eliminate VNInfo flags. 2012-08-03 20:59:32 +00:00
LiveIntervalAnalysis.h Make the hasPHIKills flag a computed property. 2012-08-03 20:10:24 +00:00
LiveRangeEdit.h Allow LiveRangeEdit to be created with a NULL parent. 2012-05-19 05:25:46 +00:00
LiveStackAnalysis.h
LiveVariables.h
MachineBasicBlock.h Revert "Fix a quadratic algorithm in MachineBranchProbabilityInfo." 2012-08-08 01:10:31 +00:00
MachineBlockFrequencyInfo.h
MachineBranchProbabilityInfo.h Revert "Fix a quadratic algorithm in MachineBranchProbabilityInfo." 2012-08-08 01:10:31 +00:00
MachineCodeEmitter.h
MachineCodeInfo.h
MachineConstantPool.h
MachineDominators.h
MachineFrameInfo.h Move [get|set]BasePtrStackAdjustment() from MachineFrameInfo to 2012-07-10 18:27:15 +00:00
MachineFunction.h Fix the naming of ensureAlignment. Per the coding standard function names 2012-07-06 23:13:38 +00:00
MachineFunctionAnalysis.h
MachineFunctionPass.h
MachineInstr.h Add an MCID::Select flag and TII hooks for optimizing selects. 2012-08-16 23:11:47 +00:00
MachineInstrBuilder.h Add a new kind of MachineOperand: MO_TargetIndex. 2012-08-07 18:56:39 +00:00
MachineInstrBundle.h Remove 'static' from inline functions defined in header files. 2012-06-20 08:39:33 +00:00
MachineJumpTableInfo.h Tidy up. Whitespace. 2012-05-07 02:25:53 +00:00
MachineLoopInfo.h Add "extern template" declarations now that we use explicit instantiation. 2012-06-20 20:17:20 +00:00
MachineLoopRanges.h
MachineMemOperand.h Teach CodeGen's version of computeMaskedBits to understand the range metadata. 2012-03-31 18:14:00 +00:00
MachineModuleInfo.h
MachineModuleInfoImpls.h
MachineOperand.h Reapply r161633-161634 "Partition use lists so defs always come before uses."" 2012-08-10 00:21:30 +00:00
MachinePassRegistry.h Allow targets to select the default scheduler by name. 2012-04-19 01:34:10 +00:00
MachineRegisterInfo.h Reapply r161633-161634 "Partition use lists so defs always come before uses."" 2012-08-10 00:21:30 +00:00
MachineRelocation.h
MachineScheduler.h Consistently use AnalysisID types in TargetPassConfig. 2012-07-02 19:48:37 +00:00
MachineSSAUpdater.h
MachORelocation.h
Passes.h Add an experimental -early-live-intervals option. 2012-08-03 22:12:54 +00:00
PseudoSourceValue.h
RegAllocPBQP.h
RegAllocRegistry.h
RegisterClassInfo.h Move RegisterClassInfo.h. 2012-06-06 20:29:31 +00:00
RegisterPressure.h misched: When querying RegisterPressureTracker, always save current and max pressure. 2012-06-11 23:42:23 +00:00
RegisterScavenging.h
ResourcePriorityQueue.h
RuntimeLibcalls.h
ScheduleDAG.h sched: Avoid trivially redundant DAG edges. Take the one with higher latency. 2012-06-13 02:39:00 +00:00
ScheduleDAGInstrs.h Remove unused private fields found by clang's new -Wunused-private-field. 2012-06-06 18:25:08 +00:00
ScheduleHazardRecognizer.h misched: Allow disabling scoreboard hazard checking for subtargets with a 2012-06-05 03:44:32 +00:00
SchedulerRegistry.h
ScoreboardHazardRecognizer.h Revert r158679 - use case is unclear (and it increases the memory footprint). 2012-06-22 20:27:13 +00:00
SelectionDAG.h Add SelectionDAG::getTargetIndex. 2012-08-07 22:37:05 +00:00
SelectionDAGISel.h Make ISelPosition a local variable. 2012-04-20 22:08:50 +00:00
SelectionDAGNodes.h Add dump/dumpr methods to SDValue. 2012-08-16 07:39:52 +00:00
SlotIndexes.h Fix a typo (the the => the) 2012-07-23 08:51:15 +00:00
TargetLoweringObjectFileImpl.h Move the support for using .init_array from ARM to the generic 2012-06-19 00:48:28 +00:00
ValueTypes.h Create isXBitVector methods in MVT and call them from EVT. This allows targets to call them with an MVT without needing to convert to EVT. 2012-08-11 23:31:18 +00:00
ValueTypes.td Add support for v16i32/v16i64 into the code generator. This is required for backends that use i32/i64 vectors for the getSetCCResultType function. 2012-07-26 21:22:00 +00:00