static OperandPlaceholder
CreateMatchReference(InstructionMatcher *InsnMatcher,
- const StringRef InsnVarName, const StringRef SymbolicName) {
+ StringRef InsnVarName, StringRef SymbolicName) {
OperandPlaceholder Result(OP_MatchReference);
Result.MatchReference.InsnMatcher = InsnMatcher;
Result.MatchReference.InsnVarName = InsnVarName;
/// InstructionOperandMatcher is the only subclass that can return non-null
/// for this.
virtual Optional<const OperandMatcher *>
- getOptionalOperand(const StringRef SymbolicName) const {
+ getOptionalOperand(StringRef SymbolicName) const {
assert(!SymbolicName.empty() && "Cannot lookup unnamed operand");
return None;
}
}
unsigned getOperandIndex() const { return OpIdx; }
- std::string getOperandExpr(const StringRef InsnVarName) const {
+ std::string getOperandExpr(StringRef InsnVarName) const {
return (InsnVarName + ".getOperand(" + llvm::to_string(OpIdx) + ")").str();
}
/// Emit a C++ expression that tests whether the instruction named in
/// InsnVarName matches all the predicate and all the operands.
void emitCxxPredicateExpr(raw_ostream &OS, RuleMatcher &Rule,
- const StringRef InsnVarName) const {
+ StringRef InsnVarName) const {
OS << "(/* ";
if (SymbolicName.empty())
OS << "Operand " << OpIdx;
return None;
}
- const OperandMatcher &getOperand(const StringRef SymbolicName) const {
+ const OperandMatcher &getOperand(StringRef SymbolicName) const {
Optional<const OperandMatcher *>OM = getOptionalOperand(SymbolicName);
if (OM.hasValue())
return *OM.getValue();