Skip to content

Commit fc327d3

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 219358e commit fc327d3

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
@@ -388,7 +388,7 @@ void RuntimeLibcallsInfo::initLibcalls(const Triple &TT) {
388388
break;
389389
}
390390

391-
if (darwinHasSinCos(TT)) {
391+
if (darwinHasSinCosStret(TT)) {
392392
setLibcallName(RTLIB::SINCOS_STRET_F32, "__sincosf_stret");
393393
setLibcallName(RTLIB::SINCOS_STRET_F64, "__sincos_stret");
394394
if (TT.isWatchABI()) {
@@ -432,8 +432,7 @@ void RuntimeLibcallsInfo::initLibcalls(const Triple &TT) {
432432
setLibcallName(RTLIB::EXP10_F64, "__exp10");
433433
}
434434

435-
if (TT.isGNUEnvironment() || TT.isOSFuchsia() ||
436-
(TT.isAndroid() && !TT.isAndroidVersionLT(9))) {
435+
if (hasSinCos(TT)) {
437436
setLibcallName(RTLIB::SINCOS_F32, "sincosf");
438437
setLibcallName(RTLIB::SINCOS_F64, "sincos");
439438
setLibcallName(RTLIB::SINCOS_F80, "sincosl");

0 commit comments

Comments
 (0)