[llvm] [MC, X86] emitInstruction: remove virtual function calls due to Intel JCC Erratum (PR #96835)

Fangrui Song via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 26 20:29:23 PDT 2024


================
@@ -1546,3 +1547,32 @@ MCAsmBackend *llvm::createX86_64AsmBackend(const Target &T,
     return new ELFX86_X32AsmBackend(T, OSABI, STI);
   return new ELFX86_64AsmBackend(T, OSABI, STI);
 }
+
+namespace {
+class X86ELFStreamer : public MCELFStreamer {
+public:
+  X86ELFStreamer(MCContext &Context, std::unique_ptr<MCAsmBackend> TAB,
----------------
MaskRay wrote:

It's in `llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFStreamer.cpp`, which doesn't support Intel JCC Erratum.

There is some way to split X86AsmBackend.cpp into X86ELFStreamer.cpp, but that would be a quite large refactoring and otherwise do not yield a noticeable gain.

https://github.com/llvm/llvm-project/pull/96835


More information about the llvm-commits mailing list