summaryrefslogtreecommitdiffstats
path: root/lldb/source/Core/Module.cpp
diff options
context:
space:
mode:
authorUlrich Weigand <ulrich.weigand@de.ibm.com>2019-12-04 10:27:02 +0100
committerUlrich Weigand <ulrich.weigand@de.ibm.com>2019-12-04 10:32:35 +0100
commitc3d05c1b5209122dbb18e2d7126c14359b6dfa90 (patch)
tree648d30876dbf910ecc47ba21f2fe49faf8f6e446 /lldb/source/Core/Module.cpp
parent4d37f18b29cc3fd1abd336ec10baca17694d035f (diff)
downloadbcm5719-llvm-c3d05c1b5209122dbb18e2d7126c14359b6dfa90.tar.gz
bcm5719-llvm-c3d05c1b5209122dbb18e2d7126c14359b6dfa90.zip
[SelectionDAG] Expand nnan FMINNUM/FMAXNUM to select sequence
InstCombine may synthesize FMINNUM/FMAXNUM nodes from fcmp+select sequences (where the fcmp is marked nnan). Currently, if the target does not otherwise handle these nodes, they'll get expanded to libcalls to fmin/fmax. However, these functions may reside in libm, which may introduce a library dependency that was not originally present in the source code, potentially resulting in link failures. To fix this problem, add code to TargetLowering::expandFMINNUM_FMAXNUM to expand FMINNUM/FMAXNUM to a compare+select sequence instead of the libcall. This is done only if the node is marked as "nnan"; in this case, the expansion to compare+select is always correct. This also suffices to catch all cases where FMINNUM/FMAXNUM was synthesized as above. Differential Revision: https://reviews.llvm.org/D70965
Diffstat (limited to 'lldb/source/Core/Module.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud