Clean up some DOxygen comments.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170629 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Jim Grosbach 2012-12-20 01:14:48 +00:00
parent 39758cd55d
commit 46367768f7

View File

@ -146,7 +146,7 @@ public:
const uint16_t *ImplicitDefs; // Registers implicitly defined by this instr const uint16_t *ImplicitDefs; // Registers implicitly defined by this instr
const MCOperandInfo *OpInfo; // 'NumOperands' entries about operands const MCOperandInfo *OpInfo; // 'NumOperands' entries about operands
/// getOperandConstraint - Returns the value of the specific constraint if /// \brief Returns the value of the specific constraint if
/// it is set. Returns -1 if it is not set. /// it is set. Returns -1 if it is not set.
int getOperandConstraint(unsigned OpNum, int getOperandConstraint(unsigned OpNum,
MCOI::OperandConstraint Constraint) const { MCOI::OperandConstraint Constraint) const {
@ -158,12 +158,12 @@ public:
return -1; return -1;
} }
/// getOpcode - Return the opcode number for this descriptor. /// \brief Return the opcode number for this descriptor.
unsigned getOpcode() const { unsigned getOpcode() const {
return Opcode; return Opcode;
} }
/// getNumOperands - Return the number of declared MachineOperands for this /// \brief Return the number of declared MachineOperands for this
/// MachineInstruction. Note that variadic (isVariadic() returns true) /// MachineInstruction. Note that variadic (isVariadic() returns true)
/// instructions may have additional operands at the end of the list, and note /// instructions may have additional operands at the end of the list, and note
/// that the machine instruction may include implicit register def/uses as /// that the machine instruction may include implicit register def/uses as
@ -172,7 +172,7 @@ public:
return NumOperands; return NumOperands;
} }
/// getNumDefs - Return the number of MachineOperands that are register /// \brief Return the number of MachineOperands that are register
/// definitions. Register definitions always occur at the start of the /// definitions. Register definitions always occur at the start of the
/// machine operand list. This is the number of "outs" in the .td file, /// machine operand list. This is the number of "outs" in the .td file,
/// and does not include implicit defs. /// and does not include implicit defs.
@ -180,11 +180,10 @@ public:
return NumDefs; return NumDefs;
} }
/// getFlags - Return flags of this instruction. /// \brief Return flags of this instruction.
///
unsigned getFlags() const { return Flags; } unsigned getFlags() const { return Flags; }
/// isVariadic - Return true if this instruction can have a variable number of /// \brief Return true if this instruction can have a variable number of
/// operands. In this case, the variable operands will be after the normal /// operands. In this case, the variable operands will be after the normal
/// operands but before the implicit definitions and uses (if any are /// operands but before the implicit definitions and uses (if any are
/// present). /// present).
@ -192,35 +191,37 @@ public:
return Flags & (1 << MCID::Variadic); return Flags & (1 << MCID::Variadic);
} }
/// hasOptionalDef - Set if this instruction has an optional definition, e.g. /// \brief Set if this instruction has an optional definition, e.g.
/// ARM instructions which can set condition code if 's' bit is set. /// ARM instructions which can set condition code if 's' bit is set.
bool hasOptionalDef() const { bool hasOptionalDef() const {
return Flags & (1 << MCID::HasOptionalDef); return Flags & (1 << MCID::HasOptionalDef);
} }
/// isPseudo - Return true if this is a pseudo instruction that doesn't /// \brief Return true if this is a pseudo instruction that doesn't
/// correspond to a real machine instruction. /// correspond to a real machine instruction.
/// ///
bool isPseudo() const { bool isPseudo() const {
return Flags & (1 << MCID::Pseudo); return Flags & (1 << MCID::Pseudo);
} }
/// \brief Return true if the instruction is a return.
bool isReturn() const { bool isReturn() const {
return Flags & (1 << MCID::Return); return Flags & (1 << MCID::Return);
} }
/// \brief Return true if the instruction is a call.
bool isCall() const { bool isCall() const {
return Flags & (1 << MCID::Call); return Flags & (1 << MCID::Call);
} }
/// isBarrier - Returns true if the specified instruction stops control flow /// \brief Returns true if the specified instruction stops control flow
/// from executing the instruction immediately following it. Examples include /// from executing the instruction immediately following it. Examples include
/// unconditional branches and return instructions. /// unconditional branches and return instructions.
bool isBarrier() const { bool isBarrier() const {
return Flags & (1 << MCID::Barrier); return Flags & (1 << MCID::Barrier);
} }
/// isTerminator - Returns true if this instruction part of the terminator for /// \brief Returns true if this instruction part of the terminator for
/// a basic block. Typically this is things like return and branch /// a basic block. Typically this is things like return and branch
/// instructions. /// instructions.
/// ///
@ -230,7 +231,7 @@ public:
return Flags & (1 << MCID::Terminator); return Flags & (1 << MCID::Terminator);
} }
/// isBranch - Returns true if this is a conditional, unconditional, or /// \brief Returns true if this is a conditional, unconditional, or
/// indirect branch. Predicates below can be used to discriminate between /// indirect branch. Predicates below can be used to discriminate between
/// these cases, and the TargetInstrInfo::AnalyzeBranch method can be used to /// these cases, and the TargetInstrInfo::AnalyzeBranch method can be used to
/// get more information. /// get more information.
@ -238,13 +239,13 @@ public:
return Flags & (1 << MCID::Branch); return Flags & (1 << MCID::Branch);
} }
/// isIndirectBranch - Return true if this is an indirect branch, such as a /// \brief Return true if this is an indirect branch, such as a
/// branch through a register. /// branch through a register.
bool isIndirectBranch() const { bool isIndirectBranch() const {
return Flags & (1 << MCID::IndirectBranch); return Flags & (1 << MCID::IndirectBranch);
} }
/// isConditionalBranch - Return true if this is a branch which may fall /// \brief Return true if this is a branch which may fall
/// through to the next instruction or may transfer control flow to some other /// through to the next instruction or may transfer control flow to some other
/// block. The TargetInstrInfo::AnalyzeBranch method can be used to get more /// block. The TargetInstrInfo::AnalyzeBranch method can be used to get more
/// information about this branch. /// information about this branch.
@ -252,7 +253,7 @@ public:
return isBranch() & !isBarrier() & !isIndirectBranch(); return isBranch() & !isBarrier() & !isIndirectBranch();
} }
/// isUnconditionalBranch - Return true if this is a branch which always /// \brief Return true if this is a branch which always
/// transfers control flow to some other block. The /// transfers control flow to some other block. The
/// TargetInstrInfo::AnalyzeBranch method can be used to get more information /// TargetInstrInfo::AnalyzeBranch method can be used to get more information
/// about this branch. /// about this branch.
@ -260,7 +261,7 @@ public:
return isBranch() & isBarrier() & !isIndirectBranch(); return isBranch() & isBarrier() & !isIndirectBranch();
} }
/// Return true if this is a branch or an instruction which directly /// \brief Return true if this is a branch or an instruction which directly
/// writes to the program counter. Considered 'may' affect rather than /// writes to the program counter. Considered 'may' affect rather than
/// 'does' affect as things like predication are not taken into account. /// 'does' affect as things like predication are not taken into account.
bool mayAffectControlFlow(const MCInst &MI, const MCRegisterInfo &RI) const { bool mayAffectControlFlow(const MCInst &MI, const MCRegisterInfo &RI) const {
@ -271,7 +272,7 @@ public:
return hasDefOfPhysReg(MI, PC, RI); return hasDefOfPhysReg(MI, PC, RI);
} }
/// isPredicable - Return true if this instruction has a predicate operand /// \brief Return true if this instruction has a predicate operand
/// that controls execution. It may be set to 'always', or may be set to other /// that controls execution. It may be set to 'always', or may be set to other
/// values. There are various methods in TargetInstrInfo that can be used to /// values. There are various methods in TargetInstrInfo that can be used to
/// control and modify the predicate in this instruction. /// control and modify the predicate in this instruction.
@ -279,30 +280,28 @@ public:
return Flags & (1 << MCID::Predicable); return Flags & (1 << MCID::Predicable);
} }
/// isCompare - Return true if this instruction is a comparison. /// \brief Return true if this instruction is a comparison.
bool isCompare() const { bool isCompare() const {
return Flags & (1 << MCID::Compare); return Flags & (1 << MCID::Compare);
} }
/// isMoveImmediate - Return true if this instruction is a move immediate /// \brief Return true if this instruction is a move immediate
/// (including conditional moves) instruction. /// (including conditional moves) instruction.
bool isMoveImmediate() const { bool isMoveImmediate() const {
return Flags & (1 << MCID::MoveImm); return Flags & (1 << MCID::MoveImm);
} }
/// isBitcast - Return true if this instruction is a bitcast instruction. /// \brief Return true if this instruction is a bitcast instruction.
///
bool isBitcast() const { bool isBitcast() const {
return Flags & (1 << MCID::Bitcast); return Flags & (1 << MCID::Bitcast);
} }
/// isSelect - Return true if this is a select instruction. /// \brief Return true if this is a select instruction.
///
bool isSelect() const { bool isSelect() const {
return Flags & (1 << MCID::Select); return Flags & (1 << MCID::Select);
} }
/// isNotDuplicable - Return true if this instruction cannot be safely /// \brief Return true if this instruction cannot be safely
/// duplicated. For example, if the instruction has a unique labels attached /// duplicated. For example, if the instruction has a unique labels attached
/// to it, duplicating it would cause multiple definition errors. /// to it, duplicating it would cause multiple definition errors.
bool isNotDuplicable() const { bool isNotDuplicable() const {
@ -331,7 +330,7 @@ public:
// Side Effect Analysis // Side Effect Analysis
//===--------------------------------------------------------------------===// //===--------------------------------------------------------------------===//
/// mayLoad - Return true if this instruction could possibly read memory. /// \brief Return true if this instruction could possibly read memory.
/// Instructions with this flag set are not necessarily simple load /// Instructions with this flag set are not necessarily simple load
/// instructions, they may load a value and modify it, for example. /// instructions, they may load a value and modify it, for example.
bool mayLoad() const { bool mayLoad() const {
@ -339,7 +338,7 @@ public:
} }
/// mayStore - Return true if this instruction could possibly modify memory. /// \brief Return true if this instruction could possibly modify memory.
/// Instructions with this flag set are not necessarily simple store /// Instructions with this flag set are not necessarily simple store
/// instructions, they may store a modified value based on their operands, or /// instructions, they may store a modified value based on their operands, or
/// may not actually modify anything, for example. /// may not actually modify anything, for example.
@ -472,8 +471,7 @@ public:
return ImplicitUses; return ImplicitUses;
} }
/// getNumImplicitUses - Return the number of implicit uses this instruction /// \brief Return the number of implicit uses this instruction
/// has.
unsigned getNumImplicitUses() const { unsigned getNumImplicitUses() const {
if (ImplicitUses == 0) return 0; if (ImplicitUses == 0) return 0;
unsigned i = 0; unsigned i = 0;
@ -495,8 +493,7 @@ public:
return ImplicitDefs; return ImplicitDefs;
} }
/// getNumImplicitDefs - Return the number of implicit defs this instruction /// \brief Return the number of implicit defs this instruct has.
/// has.
unsigned getNumImplicitDefs() const { unsigned getNumImplicitDefs() const {
if (ImplicitDefs == 0) return 0; if (ImplicitDefs == 0) return 0;
unsigned i = 0; unsigned i = 0;
@ -504,7 +501,7 @@ public:
return i; return i;
} }
/// hasImplicitUseOfPhysReg - Return true if this instruction implicitly /// \brief Return true if this instruction implicitly
/// uses the specified physical register. /// uses the specified physical register.
bool hasImplicitUseOfPhysReg(unsigned Reg) const { bool hasImplicitUseOfPhysReg(unsigned Reg) const {
if (const uint16_t *ImpUses = ImplicitUses) if (const uint16_t *ImpUses = ImplicitUses)
@ -513,7 +510,7 @@ public:
return false; return false;
} }
/// hasImplicitDefOfPhysReg - Return true if this instruction implicitly /// \brief Return true if this instruction implicitly
/// defines the specified physical register. /// defines the specified physical register.
bool hasImplicitDefOfPhysReg(unsigned Reg, bool hasImplicitDefOfPhysReg(unsigned Reg,
const MCRegisterInfo *MRI = 0) const { const MCRegisterInfo *MRI = 0) const {
@ -524,7 +521,7 @@ public:
return false; return false;
} }
/// Return true if this instruction defines the specified physical /// \brief Return true if this instruction defines the specified physical
/// register, either explicitly or implicitly. /// register, either explicitly or implicitly.
bool hasDefOfPhysReg(const MCInst &MI, unsigned Reg, bool hasDefOfPhysReg(const MCInst &MI, unsigned Reg,
const MCRegisterInfo &RI) const { const MCRegisterInfo &RI) const {
@ -535,22 +532,21 @@ public:
return hasImplicitDefOfPhysReg(Reg, &RI); return hasImplicitDefOfPhysReg(Reg, &RI);
} }
/// getSchedClass - Return the scheduling class for this instruction. The /// \brief Return the scheduling class for this instruction. The
/// scheduling class is an index into the InstrItineraryData table. This /// scheduling class is an index into the InstrItineraryData table. This
/// returns zero if there is no known scheduling information for the /// returns zero if there is no known scheduling information for the
/// instruction. /// instruction.
///
unsigned getSchedClass() const { unsigned getSchedClass() const {
return SchedClass; return SchedClass;
} }
/// getSize - Return the number of bytes in the encoding of this instruction, /// \brief Return the number of bytes in the encoding of this instruction,
/// or zero if the encoding size cannot be known from the opcode. /// or zero if the encoding size cannot be known from the opcode.
unsigned getSize() const { unsigned getSize() const {
return Size; return Size;
} }
/// findFirstPredOperandIdx() - Find the index of the first operand in the /// \brief Find the index of the first operand in the
/// operand list that is used to represent the predicate. It returns -1 if /// operand list that is used to represent the predicate. It returns -1 if
/// none is found. /// none is found.
int findFirstPredOperandIdx() const { int findFirstPredOperandIdx() const {