RuntimeLibcalls: Pass in ABI name from MCOptions (#144894)

ARM needs this to compute the available libcalls.
This commit is contained in:
Matt Arsenault
2025-06-23 22:14:44 +09:00
committed by GitHub
parent c7d9b6ed5d
commit 58987d2e34
3 changed files with 7 additions and 5 deletions

View File

@@ -58,8 +58,8 @@ struct RuntimeLibcallsInfo {
const Triple &TT,
ExceptionHandling ExceptionModel = ExceptionHandling::None,
FloatABI::ABIType FloatABI = FloatABI::Default,
EABI EABIVersion = EABI::Default) {
initLibcalls(TT, ExceptionModel, FloatABI, EABIVersion);
EABI EABIVersion = EABI::Default, StringRef ABIName = "") {
initLibcalls(TT, ExceptionModel, FloatABI, EABIVersion, ABIName);
}
/// Rename the default libcall routine name for the specified libcall.
@@ -150,7 +150,8 @@ private:
/// Set default libcall names. If a target wants to opt-out of a libcall it
/// should be placed here.
LLVM_ABI void initLibcalls(const Triple &TT, ExceptionHandling ExceptionModel,
FloatABI::ABIType FloatABI, EABI ABIType);
FloatABI::ABIType FloatABI, EABI ABIType,
StringRef ABIName);
};
} // namespace RTLIB

View File

@@ -633,7 +633,8 @@ void RTLIB::initCmpLibcallCCs(ISD::CondCode *CmpLibcallCCs) {
/// NOTE: The TargetMachine owns TLOF.
TargetLoweringBase::TargetLoweringBase(const TargetMachine &tm)
: TM(tm), Libcalls(TM.getTargetTriple(), TM.Options.ExceptionModel,
TM.Options.FloatABIType, TM.Options.EABIVersion) {
TM.Options.FloatABIType, TM.Options.EABIVersion,
TM.Options.MCOptions.getABIName()) {
initActions();
// Perform these initializations only once.

View File

@@ -359,7 +359,7 @@ static void setLongDoubleIsF128Libm(RuntimeLibcallsInfo &Info,
void RuntimeLibcallsInfo::initLibcalls(const Triple &TT,
ExceptionHandling ExceptionModel,
FloatABI::ABIType FloatABI,
EABI EABIVersion) {
EABI EABIVersion, StringRef ABIName) {
initSoftFloatCmpLibcallPredicates();
initSoftFloatCmpLibcallPredicates();