[midend]重命名Sra指令的kind标识

This commit is contained in:
rain2133
2025-08-13 14:55:46 +08:00
parent ea944f6ba0
commit 60cb8d6e49
4 changed files with 7 additions and 7 deletions

View File

@@ -517,7 +517,7 @@ void RISCv64ISel::selectNode(DAGNode* node) {
CurMBB->addInstruction(std::move(instr)); CurMBB->addInstruction(std::move(instr));
break; break;
} }
case Instruction::kSRA: { case Instruction::kSra: {
auto rhs_const = dynamic_cast<ConstantInteger*>(rhs); auto rhs_const = dynamic_cast<ConstantInteger*>(rhs);
auto instr = std::make_unique<MachineInstr>(RVOpcodes::SRAIW); auto instr = std::make_unique<MachineInstr>(RVOpcodes::SRAIW);
instr->addOperand(std::make_unique<RegOperand>(dest_vreg)); instr->addOperand(std::make_unique<RegOperand>(dest_vreg));

View File

@@ -751,7 +751,7 @@ class Instruction : public User {
kPhi = 0x1UL << 39, kPhi = 0x1UL << 39,
kBitItoF = 0x1UL << 40, kBitItoF = 0x1UL << 40,
kBitFtoI = 0x1UL << 41, kBitFtoI = 0x1UL << 41,
kSRA = 0x1UL << 42, kSra = 0x1UL << 42,
kMulh = 0x1UL << 43 kMulh = 0x1UL << 43
}; };
@@ -855,7 +855,7 @@ public:
return "BitItoF"; return "BitItoF";
case kBitFtoI: case kBitFtoI:
return "BitFtoI"; return "BitFtoI";
case kSRA: case kSra:
return "ashr"; return "ashr";
default: default:
return "Unknown"; return "Unknown";
@@ -868,7 +868,7 @@ public:
bool isBinary() const { bool isBinary() const {
static constexpr uint64_t BinaryOpMask = static constexpr uint64_t BinaryOpMask =
(kAdd | kSub | kMul | kDiv | kRem | kAnd | kOr | kSRA | kMulh) | (kAdd | kSub | kMul | kDiv | kRem | kAnd | kOr | kSra | kMulh) |
(kICmpEQ | kICmpNE | kICmpLT | kICmpGT | kICmpLE | kICmpGE); (kICmpEQ | kICmpNE | kICmpLT | kICmpGT | kICmpLE | kICmpGE);
return kind & BinaryOpMask; return kind & BinaryOpMask;
} }

View File

@@ -218,7 +218,7 @@ class IRBuilder {
return createBinaryInst(Instruction::kOr, Type::getIntType(), lhs, rhs, name); return createBinaryInst(Instruction::kOr, Type::getIntType(), lhs, rhs, name);
} ///< 创建按位或指令 } ///< 创建按位或指令
BinaryInst * createSRAInst(Value *lhs, Value *rhs, const std::string &name = "") { BinaryInst * createSRAInst(Value *lhs, Value *rhs, const std::string &name = "") {
return createBinaryInst(Instruction::kSRA, Type::getIntType(), lhs, rhs, name); return createBinaryInst(Instruction::kSra, Type::getIntType(), lhs, rhs, name);
} ///< 创建算术右移指令 } ///< 创建算术右移指令
BinaryInst * createMulhInst(Value *lhs, Value *rhs, const std::string &name = "") { BinaryInst * createMulhInst(Value *lhs, Value *rhs, const std::string &name = "") {
return createBinaryInst(Instruction::kMulh, Type::getIntType(), lhs, rhs, name); return createBinaryInst(Instruction::kMulh, Type::getIntType(), lhs, rhs, name);

View File

@@ -240,7 +240,7 @@ void SysYPrinter::printInst(Instruction *pInst) {
case Kind::kMul: case Kind::kMul:
case Kind::kDiv: case Kind::kDiv:
case Kind::kRem: case Kind::kRem:
case Kind::kSRA: case Kind::kSra:
case Kind::kMulh: case Kind::kMulh:
case Kind::kFAdd: case Kind::kFAdd:
case Kind::kFSub: case Kind::kFSub:
@@ -274,7 +274,7 @@ void SysYPrinter::printInst(Instruction *pInst) {
case Kind::kMul: std::cout << "mul"; break; case Kind::kMul: std::cout << "mul"; break;
case Kind::kDiv: std::cout << "sdiv"; break; case Kind::kDiv: std::cout << "sdiv"; break;
case Kind::kRem: std::cout << "srem"; break; case Kind::kRem: std::cout << "srem"; break;
case Kind::kSRA: std::cout << "ashr"; break; case Kind::kSra: std::cout << "ashr"; break;
case Kind::kMulh: std::cout << "mulh"; break; case Kind::kMulh: std::cout << "mulh"; break;
case Kind::kFAdd: std::cout << "fadd"; break; case Kind::kFAdd: std::cout << "fadd"; break;
case Kind::kFSub: std::cout << "fsub"; break; case Kind::kFSub: std::cout << "fsub"; break;