[llvm] [SelectionDAG] Add space-optimized forms of OPC_EmitRegister (PR #73291)
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Mon Dec 11 13:16:38 PST 2023
================
@@ -687,14 +687,26 @@ EmitMatcher(const Matcher *N, const unsigned Indent, unsigned CurrentIdx,
case Matcher::EmitRegister: {
const EmitRegisterMatcher *Matcher = cast<EmitRegisterMatcher>(N);
const CodeGenRegister *Reg = Matcher->getReg();
+ MVT::SimpleValueType VT = Matcher->getVT();
// If the enum value of the register is larger than one byte can handle,
// use EmitRegister2.
if (Reg && Reg->EnumValue > 255) {
- OS << "OPC_EmitRegister2, " << getEnumName(Matcher->getVT()) << ", ";
+ OS << "OPC_EmitRegister2, " << getEnumName(VT) << ", ";
OS << "TARGET_VAL(" << getQualifiedName(Reg->TheDef) << "),\n";
return 4;
} else {
- OS << "OPC_EmitRegister, " << getEnumName(Matcher->getVT()) << ", ";
+ unsigned OpBytes;
+ switch (VT) {
+ case MVT::i32:
+ case MVT::i64:
+ OpBytes = 1;
+ OS << "OPC_EmitRegisterI" << MVT(VT).getScalarSizeInBits() << ", ";
----------------
topperc wrote:
getSizeInBits
https://github.com/llvm/llvm-project/pull/73291
More information about the llvm-commits
mailing list