Skip to content

Commit fea1584

Browse files
committed
ARM: Remove idiv runtime call aliases
Really only the i32 variants exist. We don't need synthetic aliases for illegal types which will be promoted.
1 parent 155359c commit fea1584

File tree

3 files changed

+6
-16
lines changed

3 files changed

+6
-16
lines changed

llvm/include/llvm/IR/RuntimeLibcalls.td

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1399,13 +1399,9 @@ def __aeabi_lasr : RuntimeLibcallImpl<SRA_I64>; // CallingConv::ARM_AAPCS
13991399

14001400
// Integer division functions
14011401
// RTABI chapter 4.3.1
1402-
def __aeabi_idiv__i8 : RuntimeLibcallImpl<SDIV_I8, "__aeabi_idiv">; // CallingConv::ARM_AAPCS
1403-
def __aeabi_idiv__i16 : RuntimeLibcallImpl<SDIV_I16, "__aeabi_idiv">; // CallingConv::ARM_AAPCS
1404-
def __aeabi_idiv__i32 : RuntimeLibcallImpl<SDIV_I32, "__aeabi_idiv">; // CallingConv::ARM_AAPCS
1402+
def __aeabi_idiv : RuntimeLibcallImpl<SDIV_I32, "__aeabi_idiv">; // CallingConv::ARM_AAPCS
14051403
def __aeabi_ldivmod : RuntimeLibcallImpl<SDIVREM_I64>; // CallingConv::ARM_AAPCS
1406-
def __aeabi_uidiv__i8 : RuntimeLibcallImpl<UDIV_I8, "__aeabi_uidiv">; // CallingConv::ARM_AAPCS
1407-
def __aeabi_uidiv__i16 : RuntimeLibcallImpl<UDIV_I16, "__aeabi_uidiv">; // CallingConv::ARM_AAPCS
1408-
def __aeabi_uidiv__i32 : RuntimeLibcallImpl<UDIV_I32, "__aeabi_uidiv">; // CallingConv::ARM_AAPCS
1404+
def __aeabi_uidiv : RuntimeLibcallImpl<UDIV_I32, "__aeabi_uidiv">; // CallingConv::ARM_AAPCS
14091405
def __aeabi_uldivmod : RuntimeLibcallImpl<UDIVREM_I64>; // CallingConv::ARM_AAPCS
14101406

14111407
def __aeabi_idivmod : RuntimeLibcallImpl<SDIVREM_I32>; // CallingConv::ARM_AAPCS

llvm/lib/IR/RuntimeLibcalls.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,9 @@ static void setARMLibcallNames(RuntimeLibcallsInfo &Info, const Triple &TT,
4747
RTLIB::__aeabi_ui2f, RTLIB::__aeabi_l2f,
4848
RTLIB::__aeabi_ul2f, RTLIB::__aeabi_lmul,
4949
RTLIB::__aeabi_llsl, RTLIB::__aeabi_llsr,
50-
RTLIB::__aeabi_lasr, RTLIB::__aeabi_idiv__i8,
51-
RTLIB::__aeabi_idiv__i16, RTLIB::__aeabi_idiv__i32,
50+
RTLIB::__aeabi_lasr, RTLIB::__aeabi_idiv,
5251
RTLIB::__aeabi_idivmod, RTLIB::__aeabi_uidivmod,
53-
RTLIB::__aeabi_ldivmod, RTLIB::__aeabi_uidiv__i8,
54-
RTLIB::__aeabi_uidiv__i16, RTLIB::__aeabi_uidiv__i32,
52+
RTLIB::__aeabi_ldivmod, RTLIB::__aeabi_uidiv,
5553
RTLIB::__aeabi_uldivmod, RTLIB::__aeabi_f2h,
5654
RTLIB::__aeabi_d2h, RTLIB::__aeabi_h2f,
5755
RTLIB::__aeabi_memcpy, RTLIB::__aeabi_memmove,

llvm/lib/Target/ARM/ARMISelLowering.cpp

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -669,13 +669,9 @@ ARMTargetLowering::ARMTargetLowering(const TargetMachine &TM_,
669669

670670
// Integer division functions
671671
// RTABI chapter 4.3.1
672-
{ RTLIB::SDIV_I8, RTLIB::__aeabi_idiv__i8 },
673-
{ RTLIB::SDIV_I16, RTLIB::__aeabi_idiv__i16 },
674-
{ RTLIB::SDIV_I32, RTLIB::__aeabi_idiv__i32},
672+
{ RTLIB::SDIV_I32, RTLIB::__aeabi_idiv },
675673
{ RTLIB::SDIV_I64, RTLIB::__aeabi_ldivmod },
676-
{ RTLIB::UDIV_I8, RTLIB::__aeabi_uidiv__i8 },
677-
{ RTLIB::UDIV_I16, RTLIB::__aeabi_uidiv__i16 },
678-
{ RTLIB::UDIV_I32, RTLIB::__aeabi_uidiv__i32 },
674+
{ RTLIB::UDIV_I32, RTLIB::__aeabi_uidiv },
679675
{ RTLIB::UDIV_I64, RTLIB::__aeabi_uldivmod },
680676
};
681677
// clang-format on

0 commit comments

Comments
 (0)