Skip to content

Commit fbfc09b

Browse files
committed
RuntimeLibcalls: Cleanup sincos predicate functions
The darwinHasSinCos wasn't actually used for sincos, only the stret variant. Rename this to reflect that, and introduce a new one for enabling sincos.
1 parent 581f775 commit fbfc09b

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

llvm/include/llvm/IR/RuntimeLibcalls.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ struct RuntimeLibcallsInfo {
116116
// opcode.
117117
CmpInst::Predicate SoftFloatCompareLibcallPredicates[RTLIB::UNKNOWN_LIBCALL];
118118

119-
static bool darwinHasSinCos(const Triple &TT) {
119+
static bool darwinHasSinCosStret(const Triple &TT) {
120120
assert(TT.isOSDarwin() && "should be called with darwin triple");
121121
// Don't bother with 32 bit x86.
122122
if (TT.getArch() == Triple::x86)
@@ -131,6 +131,12 @@ struct RuntimeLibcallsInfo {
131131
return true;
132132
}
133133

134+
/// Return true if the target has sincosf/sincos/sincosl functions
135+
static bool hasSinCos(const Triple &TT) {
136+
return TT.isGNUEnvironment() || TT.isOSFuchsia() ||
137+
(TT.isAndroid() && !TT.isAndroidVersionLT(9));
138+
}
139+
134140
void initSoftFloatCmpLibcallPredicates();
135141

136142
/// Set default libcall names. If a target wants to opt-out of a libcall it

llvm/lib/IR/RuntimeLibcalls.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,7 @@ void RuntimeLibcallsInfo::initLibcalls(const Triple &TT) {
271271
break;
272272
}
273273

274-
if (darwinHasSinCos(TT)) {
274+
if (darwinHasSinCosStret(TT)) {
275275
setLibcallName(RTLIB::SINCOS_STRET_F32, "__sincosf_stret");
276276
setLibcallName(RTLIB::SINCOS_STRET_F64, "__sincos_stret");
277277
if (TT.isWatchABI()) {
@@ -315,8 +315,7 @@ void RuntimeLibcallsInfo::initLibcalls(const Triple &TT) {
315315
setLibcallName(RTLIB::EXP10_F64, "__exp10");
316316
}
317317

318-
if (TT.isGNUEnvironment() || TT.isOSFuchsia() ||
319-
(TT.isAndroid() && !TT.isAndroidVersionLT(9))) {
318+
if (hasSinCos(TT)) {
320319
setLibcallName(RTLIB::SINCOS_F32, "sincosf");
321320
setLibcallName(RTLIB::SINCOS_F64, "sincos");
322321
setLibcallName(RTLIB::SINCOS_F80, "sincosl");

0 commit comments

Comments
 (0)