diff options
| author | Andrew Kaylor <andrew.kaylor@intel.com> | 2017-08-14 21:15:13 +0000 |
|---|---|---|
| committer | Andrew Kaylor <andrew.kaylor@intel.com> | 2017-08-14 21:15:13 +0000 |
| commit | 53a5fbb45fa45cba48963a6b17defa4c4f072d9d (patch) | |
| tree | 750f3d0408337c88a5ee993680853096b47bbbdf /llvm/lib/CodeGen | |
| parent | 8bf15723ae9cf59a7171981b1b0257de4d48e344 (diff) | |
| download | bcm5719-llvm-53a5fbb45fa45cba48963a6b17defa4c4f072d9d.tar.gz bcm5719-llvm-53a5fbb45fa45cba48963a6b17defa4c4f072d9d.zip | |
Add strictfp attribute to prevent unwanted optimizations of libm calls
Differential Revision: https://reviews.llvm.org/D34163
llvm-svn: 310885
Diffstat (limited to 'llvm/lib/CodeGen')
| -rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp index c7da2460356..4c8c470347b 100644 --- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp @@ -6555,10 +6555,10 @@ void SelectionDAGBuilder::visitCall(const CallInst &I) { // Check for well-known libc/libm calls. If the function is internal, it // can't be a library call. Don't do the check if marked as nobuiltin for - // some reason. + // some reason or the call site requires strict floating point semantics. LibFunc Func; - if (!I.isNoBuiltin() && !F->hasLocalLinkage() && F->hasName() && - LibInfo->getLibFunc(*F, Func) && + if (!I.isNoBuiltin() && !I.isStrictFP() && !F->hasLocalLinkage() && + F->hasName() && LibInfo->getLibFunc(*F, Func) && LibInfo->hasOptimizedCodeGen(Func)) { switch (Func) { default: break; |

