File tree Expand file tree Collapse file tree 2 files changed +17
-8
lines changed Expand file tree Collapse file tree 2 files changed +17
-8
lines changed Original file line number Diff line number Diff line change @@ -277,14 +277,19 @@ class InlineAsm final : public Value {
277
277
// on INLINEASM and INLINEASM_BR MachineInstr's.
278
278
//
279
279
// The encoding of Flag is currently:
280
- // Bits 2-0 - A Kind::* value indicating the kind of the operand. (KindField)
281
- // Bits 15-3 - The number of SDNode operands associated with
282
- // this inline assembly operand. (NumOperands)
283
- // Bit 31 - determines if this is a matched operand. (IsMatched)
280
+ // Bits 2-0 - A Kind::* value indicating the kind of the operand.
281
+ // (KindField)
282
+ // Bits 15-3 - The number of SDNode operands associated with this inline
283
+ // assembly operand. Once lowered to MIR, this represents the
284
+ // number of MachineOperands necessary to refer to a
285
+ // MachineOperandType::MO_FrameIndex. (NumOperands)
286
+ // Bit 31 - Determines if this is a matched operand. (IsMatched)
284
287
// If bit 31 is set:
285
- // Bits 30-16 - The operand number that this operand must match. (MatchedOperandNo)
288
+ // Bits 30-16 - The operand number that this operand must match.
289
+ // (MatchedOperandNo)
286
290
// Else if bits 2-0 are Kind::Mem:
287
- // Bits 30-16 - A ConstraintCode:: value indicating the original constraint code. (MemConstraintCode)
291
+ // Bits 30-16 - A ConstraintCode:: value indicating the original
292
+ // constraint code. (MemConstraintCode)
288
293
// Else:
289
294
// Bits 30-16 - The register class ID to use for the operand. (RegClass)
290
295
//
Original file line number Diff line number Diff line change @@ -5803,11 +5803,15 @@ TargetLowering::ConstraintWeight
5803
5803
5804
5804
// / If there are multiple different constraints that we could pick for this
5805
5805
// / operand (e.g. "imr") try to pick the 'best' one.
5806
- // / This is somewhat tricky: constraints fall into four classes:
5807
- // / Other -> immediates and magic values
5806
+ // / This is somewhat tricky: constraints (TargetLowering::ConstraintType) fall
5807
+ // / into seven classes:
5808
5808
// / Register -> one specific register
5809
5809
// / RegisterClass -> a group of regs
5810
5810
// / Memory -> memory
5811
+ // / Address -> a symbolic memory reference
5812
+ // / Immediate -> immediate values
5813
+ // / Other -> magic values (such as "Flag Output Operands")
5814
+ // / Unknown -> something we don't recognize yet and can't handle
5811
5815
// / Ideally, we would pick the most specific constraint possible: if we have
5812
5816
// / something that fits into a register, we would pick it. The problem here
5813
5817
// / is that if we have something that could either be in a register or in
You can’t perform that action at this time.
0 commit comments