summaryrefslogtreecommitdiffstats
path: root/clang/test/OpenMP/target_exit_data_codegen.cpp
diff options
context:
space:
mode:
authorSanjay Patel <spatel@rotateright.com>2019-08-09 21:37:32 +0000
committerSanjay Patel <spatel@rotateright.com>2019-08-09 21:37:32 +0000
commit26b2c114515a8d011a952fe414ac92417298ea00 (patch)
treecd545bd820a14edad8ae3414cca1c4c60cbda948 /clang/test/OpenMP/target_exit_data_codegen.cpp
parent0a317df59f2392a2f1ba84e5def398e109d2e47f (diff)
downloadbcm5719-llvm-26b2c114515a8d011a952fe414ac92417298ea00.tar.gz
bcm5719-llvm-26b2c114515a8d011a952fe414ac92417298ea00.zip
[DAGCombiner] exclude x*2.0 from normal negation profitability rules
This is the codegen part of fixing: https://bugs.llvm.org/show_bug.cgi?id=32939 Even with the optimal/canonical IR that is ideally created by D65954, we would reverse that transform in DAGCombiner and end up with the same asm on AArch64 or x86. I see 2 options for trying to correct this: 1. Limit isNegatibleForFree() by special-casing the fmul pattern (this patch). 2. Avoid creating (fmul X, 2.0) in the 1st place by adding a special-case transform to SelectionDAG::getNode() and/or SelectionDAGBuilder::visitFMul() that matches the transform done by DAGCombiner. This seems like the less intrusive patch, but if there's some other reason to prefer 1 option over the other, we can change to the other option. Differential Revision: https://reviews.llvm.org/D66016 llvm-svn: 368490
Diffstat (limited to 'clang/test/OpenMP/target_exit_data_codegen.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud