[llvm] 7f90a5c - MCAsmBackend: Simplify FT_Data/FT_Relaxable code
Fangrui Song via llvm-commits
llvm-commits at lists.llvm.org
Sun Jul 6 23:40:27 PDT 2025
Author: Fangrui Song
Date: 2025-07-06T23:40:21-07:00
New Revision: 7f90a5c2d8d19680de82aee20c18a5f2b958c943
URL: https://github.com/llvm/llvm-project/commit/7f90a5c2d8d19680de82aee20c18a5f2b958c943
DIFF: https://github.com/llvm/llvm-project/commit/7f90a5c2d8d19680de82aee20c18a5f2b958c943.diff
LOG: MCAsmBackend: Simplify FT_Data/FT_Relaxable code
Added:
Modified:
llvm/lib/MC/MCAsmBackend.cpp
llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
Removed:
################################################################################
diff --git a/llvm/lib/MC/MCAsmBackend.cpp b/llvm/lib/MC/MCAsmBackend.cpp
index e8c684c644f42..39ef521031069 100644
--- a/llvm/lib/MC/MCAsmBackend.cpp
+++ b/llvm/lib/MC/MCAsmBackend.cpp
@@ -138,21 +138,9 @@ bool MCAsmBackend::isDarwinCanonicalPersonality(const MCSymbol *Sym) const {
const MCSubtargetInfo *MCAsmBackend::getSubtargetInfo(const MCFragment &F) {
const MCSubtargetInfo *STI = nullptr;
- switch (F.getKind()) {
- case MCFragment::FT_Data: {
- auto &DF = cast<MCDataFragment>(F);
- STI = DF.getSubtargetInfo();
- assert(!DF.hasInstructions() || STI != nullptr);
- break;
- }
- case MCFragment::FT_Relaxable: {
- auto &RF = cast<MCRelaxableFragment>(F);
- STI = RF.getSubtargetInfo();
- assert(!RF.hasInstructions() || STI != nullptr);
- break;
- }
- default:
- break;
+ if (auto *DF = dyn_cast<MCEncodedFragment>(&F)) {
+ STI = DF->getSubtargetInfo();
+ assert(!DF->hasInstructions() || STI != nullptr);
}
return STI;
}
diff --git a/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp b/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
index 8f667ad232a12..f669e6010d20d 100644
--- a/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
+++ b/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
@@ -422,14 +422,10 @@ static size_t getSizeForInstFragment(const MCFragment *F) {
if (!F || !F->hasInstructions())
return 0;
// MCEncodedFragmentWithContents being templated makes this tricky.
- switch (F->getKind()) {
- default:
+ if (auto *DF = dyn_cast<MCEncodedFragment>(F))
+ return DF->getContents().size();
+ else
llvm_unreachable("Unknown fragment with instructions!");
- case MCFragment::FT_Data:
- return cast<MCDataFragment>(*F).getContents().size();
- case MCFragment::FT_Relaxable:
- return cast<MCRelaxableFragment>(*F).getContents().size();
- }
}
/// Return true if we can insert NOP or prefixes automatically before the
More information about the llvm-commits
mailing list