mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-04 21:30:49 +00:00
7016cf66ee
The <undef> flag says that a MachineOperand doesn't read its register, or doesn't depend on the previous value of its register. A full register def never depends on the previous register value. A partial register def may depend on the previous value if it is intended to update part of a register. For example: %vreg10:dsub_0<def,undef> = COPY %vreg1 %vreg10:dsub_1<def> = COPY %vreg2 The first copy instruction defines the full %vreg10 register with the bits not covered by dsub_0 defined as <undef>. It is not considered a read of %vreg10. The second copy modifies part of %vreg10 while preserving the rest. It has an implicit read of %vreg10. This patch adds a MachineOperand::readsReg() method to determine if an operand reads its register. Previously, this was modelled by adding a full-register <imp-def> operand to the instruction. This approach makes it possible to determine directly from a MachineOperand if it reads its register. No scanning of MI operands is required. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141124 91177308-0d34-0410-b5e6-96231b3b80d8 |
||
---|---|---|
.. | ||
PBQP | ||
Analysis.h | ||
AsmPrinter.h | ||
BinaryObject.h | ||
CalcSpillWeights.h | ||
CallingConvLower.h | ||
EdgeBundles.h | ||
FastISel.h | ||
FunctionLoweringInfo.h | ||
GCMetadata.h | ||
GCMetadataPrinter.h | ||
GCs.h | ||
GCStrategy.h | ||
IntrinsicLowering.h | ||
ISDOpcodes.h | ||
JITCodeEmitter.h | ||
LatencyPriorityQueue.h | ||
LexicalScopes.h | ||
LinkAllAsmWriterComponents.h | ||
LinkAllCodegenComponents.h | ||
LiveInterval.h | ||
LiveIntervalAnalysis.h | ||
LiveStackAnalysis.h | ||
LiveVariables.h | ||
MachineBasicBlock.h | ||
MachineBlockFrequencyInfo.h | ||
MachineBranchProbabilityInfo.h | ||
MachineCodeEmitter.h | ||
MachineCodeInfo.h | ||
MachineConstantPool.h | ||
MachineDominators.h | ||
MachineFrameInfo.h | ||
MachineFunction.h | ||
MachineFunctionAnalysis.h | ||
MachineFunctionPass.h | ||
MachineInstr.h | ||
MachineInstrBuilder.h | ||
MachineJumpTableInfo.h | ||
MachineLoopInfo.h | ||
MachineLoopRanges.h | ||
MachineMemOperand.h | ||
MachineModuleInfo.h | ||
MachineModuleInfoImpls.h | ||
MachineOperand.h | ||
MachinePassRegistry.h | ||
MachineRegisterInfo.h | ||
MachineRelocation.h | ||
MachineSSAUpdater.h | ||
MachORelocation.h | ||
ObjectCodeEmitter.h | ||
Passes.h | ||
ProcessImplicitDefs.h | ||
PseudoSourceValue.h | ||
RegAllocPBQP.h | ||
RegAllocRegistry.h | ||
RegisterScavenging.h | ||
RuntimeLibcalls.h | ||
ScheduleDAG.h | ||
ScheduleHazardRecognizer.h | ||
SchedulerRegistry.h | ||
ScoreboardHazardRecognizer.h | ||
SelectionDAG.h | ||
SelectionDAGISel.h | ||
SelectionDAGNodes.h | ||
SlotIndexes.h | ||
TargetLoweringObjectFileImpl.h | ||
ValueTypes.h | ||
ValueTypes.td |