1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 11:13:28 +01:00
llvm-mirror/include/llvm/CodeGen
Jakob Stoklund Olesen 6a4a23b14f Add a MachineOperand::isTied() flag.
While in SSA form, a MachineInstr can have pairs of tied defs and uses.
The tied operands are used to represent read-modify-write operands that
must be assigned the same physical register.

Previously, tied operand pairs were computed from fixed MCInstrDesc
fields, or by using black magic on inline assembly instructions.

The isTied flag makes it possible to add tied operands to any
instruction while getting rid of (some of) the inlineasm magic.

Tied operands on normal instructions are needed to represent predicated
individual instructions in SSA form. An extra <tied,imp-use> operand is
required to represent the output value when the instruction predicate is
false.

Adding a predicate to:

  %vreg0<def> = ADD %vreg1, %vreg2

Will look like:

  %vreg0<tied,def> = ADD %vreg1, %vreg2, pred:3, %vreg7<tied,imp-use>

The virtual register %vreg7 is the value given to %vreg0 when the
predicate is false. It will be assigned the same physreg as %vreg0.

This commit adds the isTied flag and sets it based on MCInstrDesc when
building an instruction. The flag is not used for anything yet.

llvm-svn: 162774
2012-08-28 18:34:41 +00:00
..
PBQP Fix a stub signature. HeuristicReduce should return a bool. 2012-08-23 19:06:23 +00:00
Analysis.h
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 Fix a quadratic algorithm in MachineBranchProbabilityInfo. 2012-08-20 22:01:38 +00:00
MachineBlockFrequencyInfo.h
MachineBranchProbabilityInfo.h Fix a quadratic algorithm in MachineBranchProbabilityInfo. 2012-08-20 22:01:38 +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 Add a getName function to MachineFunction. Use it in places that previously did getFunction()->getName(). Remove includes of Function.h that are no longer needed. 2012-08-22 06:07:19 +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
MachineModuleInfo.h
MachineModuleInfoImpls.h
MachineOperand.h Add a MachineOperand::isTied() flag. 2012-08-28 18:34:41 +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 Simplify the computeOperandLatency API. 2012-08-23 00:39:43 +00:00
ScheduleDAGInstrs.h Simplify the computeOperandLatency API. 2012-08-23 00:39:43 +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 Remove extra MayLoad/MayStore flags from atomic_load/store. 2012-08-28 03:11:32 +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