[llvm] e3ee6bb - [JITLink][i386] Make ELFLinkGraphBuilder_i386 a regular (non-template) class.

Lang Hames via llvm-commits llvm-commits at lists.llvm.org
Wed May 7 02:30:58 PDT 2025


Author: Lang Hames
Date: 2025-05-07T19:30:50+10:00
New Revision: e3ee6bbd384ef4c583b9f7bca4253ae0fba90a70

URL: https://github.com/llvm/llvm-project/commit/e3ee6bbd384ef4c583b9f7bca4253ae0fba90a70
DIFF: https://github.com/llvm/llvm-project/commit/e3ee6bbd384ef4c583b9f7bca4253ae0fba90a70.diff

LOG: [JITLink][i386] Make ELFLinkGraphBuilder_i386 a regular (non-template) class.

The ELF type for i386 is always ELF32LE so we can pass ELF32LE directly to the
base class template (ELFLinkGraphBuilder).

Added: 
    

Modified: 
    llvm/lib/ExecutionEngine/JITLink/ELF_i386.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/ExecutionEngine/JITLink/ELF_i386.cpp b/llvm/lib/ExecutionEngine/JITLink/ELF_i386.cpp
index 4ce43c1962c84..a703b77e7c50b 100644
--- a/llvm/lib/ExecutionEngine/JITLink/ELF_i386.cpp
+++ b/llvm/lib/ExecutionEngine/JITLink/ELF_i386.cpp
@@ -110,9 +110,10 @@ class ELFJITLinker_i386 : public JITLinker<ELFJITLinker_i386> {
   }
 };
 
-template <typename ELFT>
-class ELFLinkGraphBuilder_i386 : public ELFLinkGraphBuilder<ELFT> {
+class ELFLinkGraphBuilder_i386 : public ELFLinkGraphBuilder<object::ELF32LE> {
 private:
+  using ELFT = object::ELF32LE;
+
   static Expected<i386::EdgeKind_i386> getRelocationKind(const uint32_t Type) {
     using namespace i386;
     switch (Type) {
@@ -253,9 +254,9 @@ createLinkGraphFromELFObject_i386(MemoryBufferRef ObjectBuffer,
 
   auto &ELFObjFile = cast<object::ELFObjectFile<object::ELF32LE>>(**ELFObj);
 
-  return ELFLinkGraphBuilder_i386<object::ELF32LE>(
-             (*ELFObj)->getFileName(), ELFObjFile.getELFFile(), std::move(SSP),
-             (*ELFObj)->makeTriple(), std::move(*Features))
+  return ELFLinkGraphBuilder_i386((*ELFObj)->getFileName(),
+                                  ELFObjFile.getELFFile(), std::move(SSP),
+                                  (*ELFObj)->makeTriple(), std::move(*Features))
       .buildGraph();
 }
 


        


More information about the llvm-commits mailing list