http://llvm.org/bugs/show_bug.cgi?id=19314

            Bug ID: 19314
           Summary: [ARM64] Use of __sincos_stret on non-Darwin platforms.
           Product: tools
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: llc
          Assignee: [email protected]
          Reporter: [email protected]
                CC: [email protected], [email protected],
                    [email protected], [email protected],
                    [email protected]
    Classification: Unclassified

>From ARM64ISelLowering.cpp:
-----------------------------------------------------------------------
// For iOS, we don't want to the normal expansion of a libcall to
// sincos. We want to issue a libcall to __sincos_stret to avoid memory
// traffic.
   setOperationAction(ISD::FSINCOS, MVT::f64, Custom);
   setOperationAction(ISD::FSINCOS, MVT::f32, Custom);
-----------------------------------------------------------------------

This code needs to be conditionalized to accommodate non-Darwin platforms. 
This is causing link-time failures for a few SPEC benchmarks when using the
–fno-math-errno flag, which is required for peak performance.

I believe it suffices to just expand these on non-Darwin platforms:
-  setOperationAction(ISD::FSINCOS, MVT::f64, Custom);
-  setOperationAction(ISD::FSINCOS, MVT::f32, Custom);
+  setOperationAction(ISD::FSINCOS, MVT::f64, Expand);
+  setOperationAction(ISD::FSINCOS, MVT::f32, Expand);

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs

Reply via email to