summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/PowerPC/PPCISelLowering.cpp
diff options
context:
space:
mode:
authorSanjay Patel <spatel@rotateright.com>2015-07-09 17:28:37 +0000
committerSanjay Patel <spatel@rotateright.com>2015-07-09 17:28:37 +0000
commite2361d4a184a57fb3e96294918dfbdc9f7cb2d72 (patch)
treece7dfb6f590d5f1c8663dbc95633ad365de63f93 /llvm/lib/Target/PowerPC/PPCISelLowering.cpp
parent578caf5da7f648e7e60f316779b6f2f7e1cb8e03 (diff)
downloadbcm5719-llvm-e2361d4a184a57fb3e96294918dfbdc9f7cb2d72.tar.gz
bcm5719-llvm-e2361d4a184a57fb3e96294918dfbdc9f7cb2d72.zip
fix an invisible bug when combining repeated FP divisors
This patch fixes bugs that were exposed by the addition of fast-math-flags in the DAG: r237046 ( http://reviews.llvm.org/rL237046 ): 1. When replacing a division node, it's not enough to RAUW. We should call CombineTo() to delete dead nodes and combine again. 2. Because we are changing the DAG, we can't return an empty SDValue after the transform. As the code comments say: Visitation implementation - Implement dag node combining for different node types. The semantics are as follows: Return Value: SDValue.getNode() == 0 - No change was made SDValue.getNode() == N - N was replaced, is dead and has been handled. otherwise - N should be replaced by the returned Operand. The new test case shows no difference with or without this patch, but it will crash if we re-apply r237046 or enable FMF via the current -enable-fmf-dag cl::opt. Differential Revision: http://reviews.llvm.org/D9893 llvm-svn: 241826
Diffstat (limited to 'llvm/lib/Target/PowerPC/PPCISelLowering.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud