propagate IR-level fast-math-flags to DAG nodes; 2nd try; NFC
authorSanjay Patel <spatel@rotateright.com>
Mon, 11 May 2015 21:07:09 +0000 (21:07 +0000)
committerSanjay Patel <spatel@rotateright.com>
Mon, 11 May 2015 21:07:09 +0000 (21:07 +0000)
commitf6548b86b6b7153eb31d05dc6eafae9245735128
tree34e33ec1586cc848e0b0f5819a69e1bed7746ff4
parent383c55870eda2ce1664d8e9d199b1ba7bacd32ba
propagate IR-level fast-math-flags to DAG nodes; 2nd try; NFC

This is a less ambitious version of:
http://reviews.llvm.org/rL236546

because that was reverted in:
http://reviews.llvm.org/rL236600

because it caused memory corruption that wasn't related to FMF
but was actually due to making nodes with 2 operands derive from a
plain SDNode rather than a BinarySDNode.

This patch adds the minimum plumbing necessary to use IR-level
fast-math-flags (FMF) in the backend without actually using
them for anything yet. This is a follow-on to:
http://reviews.llvm.org/rL235997

...which split the existing nsw / nuw / exact flags and FMF
into their own struct.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237046 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/CodeGen/SelectionDAG.h
include/llvm/CodeGen/SelectionDAGNodes.h
lib/CodeGen/SelectionDAG/DAGCombiner.cpp
lib/CodeGen/SelectionDAG/SelectionDAG.cpp
lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
lib/CodeGen/SelectionDAG/TargetLowering.cpp