[PATCH] D55506: [RFC v2] Allow target to handle STRICT floating-point nodes
Kevin P. Neal via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Feb 25 06:44:49 PST 2019
kpn added a comment.
In D55506#1408435 <https://reviews.llvm.org/D55506#1408435>, @wuzish wrote:
> I think we can have a flag to indicate rounding mode for float operator such as FADD instead of STRICT_FADD, because STRICT_FADD does have side effect(chain), but some target (eg. RISCV) has static rounding mode encoded in the instruction which does not side effect. Then we can optimize specific STRICT_FADD node which ignoring exception into normal FADD with corresponding static round mode.
WRT the chain: "That's not a bug, that's a feature!"
The chain prevents reordering of floating point instructions by the SelectionDAG. That makes it required.
Some System/Z floating point instructions can take an optional per-instruction rounding mode encoded in the instruction. This does not eliminate the need for strict ordering of floating point operations.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D55506/new/
https://reviews.llvm.org/D55506
More information about the llvm-commits
mailing list