[llvm] b116ee4 - Lanai: Use TableGen to set libcall calling conventions (#146080)

via llvm-commits llvm-commits at lists.llvm.org
Tue Jul 8 01:16:02 PDT 2025


Author: Matt Arsenault
Date: 2025-07-08T17:15:58+09:00
New Revision: b116ee4536caeff8e0b5ef975b206ed669cdf7d2

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

LOG: Lanai: Use TableGen to set libcall calling conventions (#146080)

Added: 
    

Modified: 
    llvm/include/llvm/IR/RuntimeLibcalls.td
    llvm/lib/Target/Lanai/LanaiISelLowering.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/include/llvm/IR/RuntimeLibcalls.td b/llvm/include/llvm/IR/RuntimeLibcalls.td
index f8667269ec8cb..c15ffa0653335 100644
--- a/llvm/include/llvm/IR/RuntimeLibcalls.td
+++ b/llvm/include/llvm/IR/RuntimeLibcalls.td
@@ -1389,6 +1389,18 @@ def __hexagon_fast2_sqrtdf2 : RuntimeLibcallImpl<SQRT_F64>;
 def __hexagon_memcpy_likely_aligned_min32bytes_mult8bytes
     : RuntimeLibcallImpl<HEXAGON_MEMCPY_LIKELY_ALIGNED_MIN32BYTES_MULT8BYTES>;
 
+//===----------------------------------------------------------------------===//
+// Lanai Runtime Libcalls
+//===----------------------------------------------------------------------===//
+
+def isLanai : RuntimeLibcallPredicate<"TT.getArch() == Triple::lanai">;
+
+// Use fast calling convention for library functions.
+def LanaiSystemLibrary
+    : SystemRuntimeLibrary<isLanai, (add DefaultRuntimeLibcallImpls)> {
+  let DefaultLibcallCallingConv = FASTCC;
+}
+
 //===----------------------------------------------------------------------===//
 // Mips16 Runtime Libcalls
 //===----------------------------------------------------------------------===//

diff  --git a/llvm/lib/Target/Lanai/LanaiISelLowering.cpp b/llvm/lib/Target/Lanai/LanaiISelLowering.cpp
index 6fb73c5d18966..d23c5f43ad4ff 100644
--- a/llvm/lib/Target/Lanai/LanaiISelLowering.cpp
+++ b/llvm/lib/Target/Lanai/LanaiISelLowering.cpp
@@ -150,10 +150,6 @@ LanaiTargetLowering::LanaiTargetLowering(const TargetMachine &TM,
   // statements. Re-evaluate this on new benchmarks.
   setMinimumJumpTableEntries(100);
 
-  // Use fast calling convention for library functions.
-  for (RTLIB::LibcallImpl LC : RTLIB::libcall_impls())
-    setLibcallImplCallingConv(LC, CallingConv::Fast);
-
   MaxStoresPerMemset = 16; // For @llvm.memset -> sequence of stores
   MaxStoresPerMemsetOptSize = 8;
   MaxStoresPerMemcpy = 16; // For @llvm.memcpy -> sequence of stores


        


More information about the llvm-commits mailing list