From 98cae0e8835a1eb8fcb0e43870c04ed934cc51ac Mon Sep 17 00:00:00 2001 From: Richard-Qin-X Date: Thu, 13 Aug 2026 19:38:37 +0800 Subject: [CodeGen] Match LLVM branch relaxation semantics --- backend/utils/TableGen/Common/CodeGenInstruction.cpp | 5 +++++ backend/utils/TableGen/Common/CodeGenTarget.h | 1 + backend/utils/TableGen/InstrInfoEmitter.cpp | 5 +++-- 3 files changed, 9 insertions(+), 2 deletions(-) (limited to 'backend/utils') diff --git a/backend/utils/TableGen/Common/CodeGenInstruction.cpp b/backend/utils/TableGen/Common/CodeGenInstruction.cpp index fc6b400..d06fbfc 100644 --- a/backend/utils/TableGen/Common/CodeGenInstruction.cpp +++ b/backend/utils/TableGen/Common/CodeGenInstruction.cpp @@ -428,6 +428,7 @@ CodeGenTarget::normalizeImplicitRegisters(const std::vectorsecond : 0, .EncodingCategory = HasEncodingCategory ? EncodingCategory->second : 0, + .SizeInBytes = Instruction.SizeInBytes, .AssemblyFormat = HasAssemblyFormat ? AssemblyFormat->second : 0, .RequiresMemoryOperands = Instruction.RequiresMemoryOperands, .Owner = std::string(*Owner), @@ -547,6 +548,10 @@ CodeGenTarget::normalizeImplicitRegisters(const std::vector Flags; std::uint32_t SchedulingClass = 0; std::uint32_t EncodingCategory = 0; + std::uint32_t SizeInBytes = 0; std::uint32_t AssemblyFormat = 0; bool RequiresMemoryOperands = false; std::string Owner; diff --git a/backend/utils/TableGen/InstrInfoEmitter.cpp b/backend/utils/TableGen/InstrInfoEmitter.cpp index 795a718..b06134f 100644 --- a/backend/utils/TableGen/InstrInfoEmitter.cpp +++ b/backend/utils/TableGen/InstrInfoEmitter.cpp @@ -179,8 +179,9 @@ std::string emitInstructionInfo(const NormalizedTargetModel &Model) { Output << "InstructionFlag::" << Flag << ", "; Output << "}, .SchedulingClass = SchedulingClassID::fromValue(" << Instruction.SchedulingClass << "), .EncodingCategory = EncodingCategoryID::fromValue(" - << Instruction.EncodingCategory << "), .AssemblyFormat = AssemblyFormatID::fromValue(" - << Instruction.AssemblyFormat << "), .RequiresMemoryOperands = " + << Instruction.EncodingCategory << "), .SizeInBytes = " << Instruction.SizeInBytes + << ", .AssemblyFormat = AssemblyFormatID::fromValue(" << Instruction.AssemblyFormat + << "), .RequiresMemoryOperands = " << (Instruction.RequiresMemoryOperands ? "true" : "false") << ", .Owner = PseudoOwner::" << Instruction.Owner << ", .Deadline = PipelineStage::" << Instruction.Deadline -- cgit v1.2.3