Skip to content

ARM: Unconditionally set eabi libcall calling convs in RuntimeLibcalls #146083

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Conversation

arsenm
Copy link
Contributor

@arsenm arsenm commented Jun 27, 2025

This fully consolidates all the calling convention configuration into
RuntimeLibcallInfo. I'm assuming that __aeabi functions have a universal
calling convention, and on other ABIs just don't use them. This will
enable splitting of RuntimeLibcallInfo into the ABI and lowering component.

Copy link
Contributor Author

arsenm commented Jun 27, 2025

This stack of pull requests is managed by Graphite. Learn more about stacking.

@llvmbot
Copy link
Member

llvmbot commented Jun 27, 2025

@llvm/pr-subscribers-backend-arm
@llvm/pr-subscribers-tablegen

@llvm/pr-subscribers-llvm-ir

Author: Matt Arsenault (arsenm)

Changes

This fully consolidates all the calling convention configuration into
RuntimeLibcallInfo. I'm assuming that __aeabi functions have a universal
calling convention, and on other ABIs just don't use them. This will
enable splitting of RuntimeLibcallInfo into the ABI and lowering component.


Full diff: https://github.com/llvm/llvm-project/pull/146083.diff

2 Files Affected:

  • (modified) llvm/lib/IR/RuntimeLibcalls.cpp (+39)
  • (modified) llvm/lib/Target/ARM/ARMISelLowering.cpp (+71-88)
diff --git a/llvm/lib/IR/RuntimeLibcalls.cpp b/llvm/lib/IR/RuntimeLibcalls.cpp
index b08ee16791dfd..9f24e9d1fc4b1 100644
--- a/llvm/lib/IR/RuntimeLibcalls.cpp
+++ b/llvm/lib/IR/RuntimeLibcalls.cpp
@@ -98,6 +98,45 @@ static void setARMLibcallNames(RuntimeLibcallsInfo &Info, const Triple &TT,
     Info.setLibcallImpl(RTLIB::SDIVREM_I32, RTLIB::__divmodsi4);
     Info.setLibcallImpl(RTLIB::UDIVREM_I32, RTLIB::__udivmodsi4);
   }
+
+  static const RTLIB::LibcallImpl AAPCS_Libcalls[] = {
+      RTLIB::__aeabi_dadd,       RTLIB::__aeabi_ddiv,
+      RTLIB::__aeabi_dmul,       RTLIB::__aeabi_dsub,
+      RTLIB::__aeabi_dcmpeq__ne, RTLIB::__aeabi_dcmpeq__eq,
+      RTLIB::__aeabi_dcmplt,     RTLIB::__aeabi_dcmple,
+      RTLIB::__aeabi_dcmpge,     RTLIB::__aeabi_dcmpgt,
+      RTLIB::__aeabi_dcmpun,     RTLIB::__aeabi_fadd,
+      RTLIB::__aeabi_fdiv,       RTLIB::__aeabi_fmul,
+      RTLIB::__aeabi_fsub,       RTLIB::__aeabi_fcmpeq__ne,
+      RTLIB::__aeabi_fcmpeq__eq, RTLIB::__aeabi_fcmplt,
+      RTLIB::__aeabi_fcmple,     RTLIB::__aeabi_fcmpge,
+      RTLIB::__aeabi_fcmpgt,     RTLIB::__aeabi_fcmpun,
+      RTLIB::__aeabi_d2iz,       RTLIB::__aeabi_d2uiz,
+      RTLIB::__aeabi_d2lz,       RTLIB::__aeabi_d2ulz,
+      RTLIB::__aeabi_f2iz,       RTLIB::__aeabi_f2uiz,
+      RTLIB::__aeabi_f2lz,       RTLIB::__aeabi_f2ulz,
+      RTLIB::__aeabi_d2f,        RTLIB::__aeabi_d2h,
+      RTLIB::__aeabi_f2d,        RTLIB::__aeabi_i2d,
+      RTLIB::__aeabi_ui2d,       RTLIB::__aeabi_l2d,
+      RTLIB::__aeabi_ul2d,       RTLIB::__aeabi_i2f,
+      RTLIB::__aeabi_ui2f,       RTLIB::__aeabi_l2f,
+      RTLIB::__aeabi_ul2f,       RTLIB::__aeabi_lmul,
+      RTLIB::__aeabi_llsl,       RTLIB::__aeabi_llsr,
+      RTLIB::__aeabi_lasr,       RTLIB::__aeabi_idiv__i8,
+      RTLIB::__aeabi_idiv__i16,  RTLIB::__aeabi_idiv__i32,
+      RTLIB::__aeabi_ldivmod,    RTLIB::__aeabi_uidiv__i8,
+      RTLIB::__aeabi_uidiv__i16, RTLIB::__aeabi_uidiv__i32,
+      RTLIB::__aeabi_uldivmod,   RTLIB::__aeabi_f2h,
+      RTLIB::__aeabi_d2h,        RTLIB::__aeabi_h2f,
+      RTLIB::__aeabi_memcpy,     RTLIB::__aeabi_memmove,
+      RTLIB::__aeabi_memset,     RTLIB::__aeabi_memcpy4,
+      RTLIB::__aeabi_memcpy8,    RTLIB::__aeabi_memmove4,
+      RTLIB::__aeabi_memmove8,   RTLIB::__aeabi_memset4,
+      RTLIB::__aeabi_memset8,    RTLIB::__aeabi_memclr,
+      RTLIB::__aeabi_memclr4,    RTLIB::__aeabi_memclr8};
+
+  for (RTLIB::LibcallImpl Impl : AAPCS_Libcalls)
+    Info.setLibcallImplCallingConv(Impl, CallingConv::ARM_AAPCS);
 }
 
 static void setLongDoubleIsF128Libm(RuntimeLibcallsInfo &Info,
diff --git a/llvm/lib/Target/ARM/ARMISelLowering.cpp b/llvm/lib/Target/ARM/ARMISelLowering.cpp
index 78ef3c23e8423..2ece698df264b 100644
--- a/llvm/lib/Target/ARM/ARMISelLowering.cpp
+++ b/llvm/lib/Target/ARM/ARMISelLowering.cpp
@@ -578,9 +578,8 @@ ARMTargetLowering::ARMTargetLowering(const TargetMachine &TM_,
       };
       // clang-format on
 
-      for (const auto &LC : LibraryCalls) {
+      for (const auto &LC : LibraryCalls)
         setLibcallImpl(LC.Op, LC.Impl);
-      }
     }
   }
 
@@ -594,94 +593,91 @@ ARMTargetLowering::ARMTargetLowering(const TargetMachine &TM_,
     static const struct {
       const RTLIB::Libcall Op;
       const RTLIB::LibcallImpl Impl;
-      const CallingConv::ID CC;
     } LibraryCalls[] = {
       // Double-precision floating-point arithmetic helper functions
       // RTABI chapter 4.1.2, Table 2
-      { RTLIB::ADD_F64, RTLIB::__aeabi_dadd, CallingConv::ARM_AAPCS },
-      { RTLIB::DIV_F64, RTLIB::__aeabi_ddiv, CallingConv::ARM_AAPCS },
-      { RTLIB::MUL_F64, RTLIB::__aeabi_dmul, CallingConv::ARM_AAPCS },
-      { RTLIB::SUB_F64, RTLIB::__aeabi_dsub, CallingConv::ARM_AAPCS },
+      { RTLIB::ADD_F64, RTLIB::__aeabi_dadd },
+      { RTLIB::DIV_F64, RTLIB::__aeabi_ddiv },
+      { RTLIB::MUL_F64, RTLIB::__aeabi_dmul },
+      { RTLIB::SUB_F64, RTLIB::__aeabi_dsub },
 
       // Double-precision floating-point comparison helper functions
       // RTABI chapter 4.1.2, Table 3
-      { RTLIB::OEQ_F64, RTLIB::__aeabi_dcmpeq__ne, CallingConv::ARM_AAPCS },
-      { RTLIB::UNE_F64, RTLIB::__aeabi_dcmpeq__eq, CallingConv::ARM_AAPCS },
-      { RTLIB::OLT_F64, RTLIB::__aeabi_dcmplt, CallingConv::ARM_AAPCS },
-      { RTLIB::OLE_F64, RTLIB::__aeabi_dcmple, CallingConv::ARM_AAPCS },
-      { RTLIB::OGE_F64, RTLIB::__aeabi_dcmpge, CallingConv::ARM_AAPCS },
-      { RTLIB::OGT_F64, RTLIB::__aeabi_dcmpgt, CallingConv::ARM_AAPCS },
-      { RTLIB::UO_F64,  RTLIB::__aeabi_dcmpun, CallingConv::ARM_AAPCS },
+      { RTLIB::OEQ_F64, RTLIB::__aeabi_dcmpeq__ne },
+      { RTLIB::UNE_F64, RTLIB::__aeabi_dcmpeq__eq },
+      { RTLIB::OLT_F64, RTLIB::__aeabi_dcmplt },
+      { RTLIB::OLE_F64, RTLIB::__aeabi_dcmple },
+      { RTLIB::OGE_F64, RTLIB::__aeabi_dcmpge },
+      { RTLIB::OGT_F64, RTLIB::__aeabi_dcmpgt },
+      { RTLIB::UO_F64,  RTLIB::__aeabi_dcmpun },
 
       // Single-precision floating-point arithmetic helper functions
       // RTABI chapter 4.1.2, Table 4
-      { RTLIB::ADD_F32, RTLIB::__aeabi_fadd, CallingConv::ARM_AAPCS },
-      { RTLIB::DIV_F32, RTLIB::__aeabi_fdiv, CallingConv::ARM_AAPCS },
-      { RTLIB::MUL_F32, RTLIB::__aeabi_fmul, CallingConv::ARM_AAPCS },
-      { RTLIB::SUB_F32, RTLIB::__aeabi_fsub, CallingConv::ARM_AAPCS },
+      { RTLIB::ADD_F32, RTLIB::__aeabi_fadd },
+      { RTLIB::DIV_F32, RTLIB::__aeabi_fdiv },
+      { RTLIB::MUL_F32, RTLIB::__aeabi_fmul },
+      { RTLIB::SUB_F32, RTLIB::__aeabi_fsub },
 
       // Single-precision floating-point comparison helper functions
       // RTABI chapter 4.1.2, Table 5
-      { RTLIB::OEQ_F32, RTLIB::__aeabi_fcmpeq__ne, CallingConv::ARM_AAPCS },
-      { RTLIB::UNE_F32, RTLIB::__aeabi_fcmpeq__eq, CallingConv::ARM_AAPCS },
-      { RTLIB::OLT_F32, RTLIB::__aeabi_fcmplt, CallingConv::ARM_AAPCS},
-      { RTLIB::OLE_F32, RTLIB::__aeabi_fcmple, CallingConv::ARM_AAPCS },
-      { RTLIB::OGE_F32, RTLIB::__aeabi_fcmpge, CallingConv::ARM_AAPCS },
-      { RTLIB::OGT_F32, RTLIB::__aeabi_fcmpgt, CallingConv::ARM_AAPCS },
-      { RTLIB::UO_F32,  RTLIB::__aeabi_fcmpun, CallingConv::ARM_AAPCS },
+      { RTLIB::OEQ_F32, RTLIB::__aeabi_fcmpeq__ne },
+      { RTLIB::UNE_F32, RTLIB::__aeabi_fcmpeq__eq },
+      { RTLIB::OLT_F32, RTLIB::__aeabi_fcmplt},
+      { RTLIB::OLE_F32, RTLIB::__aeabi_fcmple },
+      { RTLIB::OGE_F32, RTLIB::__aeabi_fcmpge },
+      { RTLIB::OGT_F32, RTLIB::__aeabi_fcmpgt },
+      { RTLIB::UO_F32,  RTLIB::__aeabi_fcmpun },
 
       // Floating-point to integer conversions.
       // RTABI chapter 4.1.2, Table 6
-      { RTLIB::FPTOSINT_F64_I32, RTLIB::__aeabi_d2iz,  CallingConv::ARM_AAPCS },
-      { RTLIB::FPTOUINT_F64_I32, RTLIB::__aeabi_d2uiz, CallingConv::ARM_AAPCS },
-      { RTLIB::FPTOSINT_F64_I64, RTLIB::__aeabi_d2lz,  CallingConv::ARM_AAPCS },
-      { RTLIB::FPTOUINT_F64_I64, RTLIB::__aeabi_d2ulz, CallingConv::ARM_AAPCS },
-      { RTLIB::FPTOSINT_F32_I32, RTLIB::__aeabi_f2iz,  CallingConv::ARM_AAPCS },
-      { RTLIB::FPTOUINT_F32_I32, RTLIB::__aeabi_f2uiz, CallingConv::ARM_AAPCS },
-      { RTLIB::FPTOSINT_F32_I64, RTLIB::__aeabi_f2lz,  CallingConv::ARM_AAPCS },
-      { RTLIB::FPTOUINT_F32_I64, RTLIB::__aeabi_f2ulz, CallingConv::ARM_AAPCS },
+      { RTLIB::FPTOSINT_F64_I32, RTLIB::__aeabi_d2iz },
+      { RTLIB::FPTOUINT_F64_I32, RTLIB::__aeabi_d2uiz },
+      { RTLIB::FPTOSINT_F64_I64, RTLIB::__aeabi_d2lz },
+      { RTLIB::FPTOUINT_F64_I64, RTLIB::__aeabi_d2ulz },
+      { RTLIB::FPTOSINT_F32_I32, RTLIB::__aeabi_f2iz },
+      { RTLIB::FPTOUINT_F32_I32, RTLIB::__aeabi_f2uiz },
+      { RTLIB::FPTOSINT_F32_I64, RTLIB::__aeabi_f2lz },
+      { RTLIB::FPTOUINT_F32_I64, RTLIB::__aeabi_f2ulz },
 
       // Conversions between floating types.
       // RTABI chapter 4.1.2, Table 7
-      { RTLIB::FPROUND_F64_F32, RTLIB::__aeabi_d2f, CallingConv::ARM_AAPCS },
-      { RTLIB::FPROUND_F64_F16, RTLIB::__aeabi_d2h, CallingConv::ARM_AAPCS },
-      { RTLIB::FPEXT_F32_F64,   RTLIB::__aeabi_f2d, CallingConv::ARM_AAPCS },
+      { RTLIB::FPROUND_F64_F32, RTLIB::__aeabi_d2f },
+      { RTLIB::FPROUND_F64_F16, RTLIB::__aeabi_d2h },
+      { RTLIB::FPEXT_F32_F64,   RTLIB::__aeabi_f2d },
 
       // Integer to floating-point conversions.
       // RTABI chapter 4.1.2, Table 8
-      { RTLIB::SINTTOFP_I32_F64, RTLIB::__aeabi_i2d,  CallingConv::ARM_AAPCS },
-      { RTLIB::UINTTOFP_I32_F64, RTLIB::__aeabi_ui2d, CallingConv::ARM_AAPCS },
-      { RTLIB::SINTTOFP_I64_F64, RTLIB::__aeabi_l2d,  CallingConv::ARM_AAPCS },
-      { RTLIB::UINTTOFP_I64_F64, RTLIB::__aeabi_ul2d, CallingConv::ARM_AAPCS },
-      { RTLIB::SINTTOFP_I32_F32, RTLIB::__aeabi_i2f,  CallingConv::ARM_AAPCS },
-      { RTLIB::UINTTOFP_I32_F32, RTLIB::__aeabi_ui2f, CallingConv::ARM_AAPCS },
-      { RTLIB::SINTTOFP_I64_F32, RTLIB::__aeabi_l2f,  CallingConv::ARM_AAPCS },
-      { RTLIB::UINTTOFP_I64_F32, RTLIB::__aeabi_ul2f, CallingConv::ARM_AAPCS },
+      { RTLIB::SINTTOFP_I32_F64, RTLIB::__aeabi_i2d },
+      { RTLIB::UINTTOFP_I32_F64, RTLIB::__aeabi_ui2d },
+      { RTLIB::SINTTOFP_I64_F64, RTLIB::__aeabi_l2d },
+      { RTLIB::UINTTOFP_I64_F64, RTLIB::__aeabi_ul2d },
+      { RTLIB::SINTTOFP_I32_F32, RTLIB::__aeabi_i2f },
+      { RTLIB::UINTTOFP_I32_F32, RTLIB::__aeabi_ui2f },
+      { RTLIB::SINTTOFP_I64_F32, RTLIB::__aeabi_l2f },
+      { RTLIB::UINTTOFP_I64_F32, RTLIB::__aeabi_ul2f },
 
       // Long long helper functions
       // RTABI chapter 4.2, Table 9
-      { RTLIB::MUL_I64, RTLIB::__aeabi_lmul, CallingConv::ARM_AAPCS },
-      { RTLIB::SHL_I64, RTLIB::__aeabi_llsl, CallingConv::ARM_AAPCS },
-      { RTLIB::SRL_I64, RTLIB::__aeabi_llsr, CallingConv::ARM_AAPCS },
-      { RTLIB::SRA_I64, RTLIB::__aeabi_lasr, CallingConv::ARM_AAPCS },
+      { RTLIB::MUL_I64, RTLIB::__aeabi_lmul },
+      { RTLIB::SHL_I64, RTLIB::__aeabi_llsl },
+      { RTLIB::SRL_I64, RTLIB::__aeabi_llsr },
+      { RTLIB::SRA_I64, RTLIB::__aeabi_lasr },
 
       // Integer division functions
       // RTABI chapter 4.3.1
-      { RTLIB::SDIV_I8,  RTLIB::__aeabi_idiv__i8,   CallingConv::ARM_AAPCS },
-      { RTLIB::SDIV_I16, RTLIB::__aeabi_idiv__i16,  CallingConv::ARM_AAPCS },
-      { RTLIB::SDIV_I32, RTLIB::__aeabi_idiv__i32,  CallingConv::ARM_AAPCS },
-      { RTLIB::SDIV_I64, RTLIB::__aeabi_ldivmod,    CallingConv::ARM_AAPCS },
-      { RTLIB::UDIV_I8,  RTLIB::__aeabi_uidiv__i8,  CallingConv::ARM_AAPCS },
-      { RTLIB::UDIV_I16, RTLIB::__aeabi_uidiv__i16, CallingConv::ARM_AAPCS },
-      { RTLIB::UDIV_I32, RTLIB::__aeabi_uidiv__i32, CallingConv::ARM_AAPCS },
-      { RTLIB::UDIV_I64, RTLIB::__aeabi_uldivmod,   CallingConv::ARM_AAPCS },
+      { RTLIB::SDIV_I8,  RTLIB::__aeabi_idiv__i8 },
+      { RTLIB::SDIV_I16, RTLIB::__aeabi_idiv__i16 },
+      { RTLIB::SDIV_I32, RTLIB::__aeabi_idiv__i32},
+      { RTLIB::SDIV_I64, RTLIB::__aeabi_ldivmod },
+      { RTLIB::UDIV_I8,  RTLIB::__aeabi_uidiv__i8 },
+      { RTLIB::UDIV_I16, RTLIB::__aeabi_uidiv__i16 },
+      { RTLIB::UDIV_I32, RTLIB::__aeabi_uidiv__i32 },
+      { RTLIB::UDIV_I64, RTLIB::__aeabi_uldivmod },
     };
     // clang-format on
 
-    for (const auto &LC : LibraryCalls) {
+    for (const auto &LC : LibraryCalls)
       setLibcallImpl(LC.Op, LC.Impl);
-      setLibcallImplCallingConv(LC.Impl, LC.CC);
-    }
 
     // EABI dependent RTLIB
     if (TM.Options.EABIVersion == EABI::EABI4 ||
@@ -689,36 +685,25 @@ ARMTargetLowering::ARMTargetLowering(const TargetMachine &TM_,
       static const struct {
         const RTLIB::Libcall Op;
         const RTLIB::LibcallImpl Impl;
-        const CallingConv::ID CC;
       } MemOpsLibraryCalls[] = {
           // Memory operations
           // RTABI chapter 4.3.4
-          {RTLIB::MEMCPY, RTLIB::__aeabi_memcpy, CallingConv::ARM_AAPCS},
-          {RTLIB::MEMMOVE, RTLIB::__aeabi_memmove, CallingConv::ARM_AAPCS},
-          {RTLIB::MEMSET, RTLIB::__aeabi_memset, CallingConv::ARM_AAPCS},
-          {RTLIB::AEABI_MEMCPY4, RTLIB::__aeabi_memcpy4,
-           CallingConv::ARM_AAPCS},
-          {RTLIB::AEABI_MEMCPY8, RTLIB::__aeabi_memcpy8,
-           CallingConv::ARM_AAPCS},
-          {RTLIB::AEABI_MEMMOVE4, RTLIB::__aeabi_memmove4,
-           CallingConv::ARM_AAPCS},
-          {RTLIB::AEABI_MEMMOVE8, RTLIB::__aeabi_memmove8,
-           CallingConv::ARM_AAPCS},
-          {RTLIB::AEABI_MEMSET4, RTLIB::__aeabi_memset4,
-           CallingConv::ARM_AAPCS},
-          {RTLIB::AEABI_MEMSET8, RTLIB::__aeabi_memset8,
-           CallingConv::ARM_AAPCS},
-          {RTLIB::AEABI_MEMCLR, RTLIB::__aeabi_memclr, CallingConv::ARM_AAPCS},
-          {RTLIB::AEABI_MEMCLR4, RTLIB::__aeabi_memclr4,
-           CallingConv::ARM_AAPCS},
-          {RTLIB::AEABI_MEMCLR8, RTLIB::__aeabi_memclr8,
-           CallingConv::ARM_AAPCS},
+          {RTLIB::MEMCPY, RTLIB::__aeabi_memcpy},
+          {RTLIB::MEMMOVE, RTLIB::__aeabi_memmove},
+          {RTLIB::MEMSET, RTLIB::__aeabi_memset},
+          {RTLIB::AEABI_MEMCPY4, RTLIB::__aeabi_memcpy4},
+          {RTLIB::AEABI_MEMCPY8, RTLIB::__aeabi_memcpy8},
+          {RTLIB::AEABI_MEMMOVE4, RTLIB::__aeabi_memmove4},
+          {RTLIB::AEABI_MEMMOVE8, RTLIB::__aeabi_memmove8},
+          {RTLIB::AEABI_MEMSET4, RTLIB::__aeabi_memset4},
+          {RTLIB::AEABI_MEMSET8, RTLIB::__aeabi_memset8},
+          {RTLIB::AEABI_MEMCLR, RTLIB::__aeabi_memclr},
+          {RTLIB::AEABI_MEMCLR4, RTLIB::__aeabi_memclr4},
+          {RTLIB::AEABI_MEMCLR8, RTLIB::__aeabi_memclr8},
       };
 
-      for (const auto &LC : MemOpsLibraryCalls) {
+      for (const auto &LC : MemOpsLibraryCalls)
         setLibcallImpl(LC.Op, LC.Impl);
-        setLibcallImplCallingConv(LC.Impl, LC.CC);
-      }
     }
   }
 
@@ -746,16 +731,14 @@ ARMTargetLowering::ARMTargetLowering(const TargetMachine &TM_,
     static const struct {
       const RTLIB::Libcall Op;
       const RTLIB::LibcallImpl Impl;
-      const CallingConv::ID CC;
     } LibraryCalls[] = {
-        {RTLIB::FPROUND_F32_F16, RTLIB::__aeabi_f2h, CallingConv::ARM_AAPCS},
-        {RTLIB::FPROUND_F64_F16, RTLIB::__aeabi_d2h, CallingConv::ARM_AAPCS},
-        {RTLIB::FPEXT_F16_F32, RTLIB::__aeabi_h2f, CallingConv::ARM_AAPCS},
+        {RTLIB::FPROUND_F32_F16, RTLIB::__aeabi_f2h},
+        {RTLIB::FPROUND_F64_F16, RTLIB::__aeabi_d2h},
+        {RTLIB::FPEXT_F16_F32, RTLIB::__aeabi_h2f},
     };
 
     for (const auto &LC : LibraryCalls) {
       setLibcallImpl(LC.Op, LC.Impl);
-      setLibcallImplCallingConv(LC.Impl, LC.CC);
     }
   } else if (!TT.isOSBinFormatMachO()) {
     setLibcallImpl(RTLIB::FPROUND_F32_F16, RTLIB::__gnu_f2h_ieee);

@arsenm arsenm force-pushed the users/arsenm/runtime-libcalls/remove-table-soft-float-compare-types branch 2 times, most recently from 4e8ecb3 to effe1ad Compare July 7, 2025 09:46
@arsenm arsenm force-pushed the users/arsenm/arm/set-eabi-libcall-calling-convs-in-runtime-libcalls branch from 7663236 to b49694f Compare July 7, 2025 09:46
@arsenm arsenm force-pushed the users/arsenm/runtime-libcalls/remove-table-soft-float-compare-types branch from effe1ad to 1070967 Compare July 8, 2025 01:24
@arsenm arsenm force-pushed the users/arsenm/arm/set-eabi-libcall-calling-convs-in-runtime-libcalls branch 2 times, most recently from f5915e2 to b90e7ff Compare July 8, 2025 05:17
@arsenm arsenm force-pushed the users/arsenm/runtime-libcalls/remove-table-soft-float-compare-types branch 2 times, most recently from 48fcd78 to 0daf2fa Compare July 8, 2025 08:20
@arsenm arsenm force-pushed the users/arsenm/arm/set-eabi-libcall-calling-convs-in-runtime-libcalls branch 2 times, most recently from 57f1f29 to ce9644f Compare July 8, 2025 08:21
@arsenm arsenm force-pushed the users/arsenm/runtime-libcalls/remove-table-soft-float-compare-types branch from 0daf2fa to 66fa070 Compare July 8, 2025 08:21
@arsenm arsenm force-pushed the users/arsenm/runtime-libcalls/remove-table-soft-float-compare-types branch from 66fa070 to f06a7b1 Compare July 8, 2025 13:05
@arsenm arsenm force-pushed the users/arsenm/arm/set-eabi-libcall-calling-convs-in-runtime-libcalls branch 2 times, most recently from 30bc9f8 to fe15c75 Compare July 9, 2025 02:15
@arsenm arsenm force-pushed the users/arsenm/runtime-libcalls/remove-table-soft-float-compare-types branch from f06a7b1 to e31b61b Compare July 9, 2025 02:15
Copy link
Contributor Author

arsenm commented Jul 9, 2025

Merge activity

  • Jul 9, 8:10 AM UTC: A user started a stack merge that includes this pull request via Graphite.
  • Jul 9, 8:14 AM UTC: Graphite rebased this pull request as part of a merge.
  • Jul 9, 8:16 AM UTC: @arsenm merged this pull request with Graphite.

@arsenm arsenm force-pushed the users/arsenm/runtime-libcalls/remove-table-soft-float-compare-types branch from e31b61b to 1391620 Compare July 9, 2025 08:11
Base automatically changed from users/arsenm/runtime-libcalls/remove-table-soft-float-compare-types to main July 9, 2025 08:14
arsenm added 3 commits July 9, 2025 08:14
This fully consolidates all the calling convention configuration into
RuntimeLibcallInfo. I'm assuming that __aeabi functions have a universal
calling convention, and on other ABIs just don't use them. This will
enable splitting of RuntimeLibcallInfo into the ABI and lowering component.
@arsenm arsenm force-pushed the users/arsenm/arm/set-eabi-libcall-calling-convs-in-runtime-libcalls branch from fe15c75 to 3e51d0b Compare July 9, 2025 08:14
@arsenm arsenm merged commit deade03 into main Jul 9, 2025
7 of 9 checks passed
@arsenm arsenm deleted the users/arsenm/arm/set-eabi-libcall-calling-convs-in-runtime-libcalls branch July 9, 2025 08:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants