[PATCH] D75224: [SelectionDAG][FPEnv] Take into account SelectionDAG continuous CSE when setting the nofpexcept flag for constrained intrinsics
Sanjay Patel via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Mar 17 15:08:01 PDT 2020
spatel added a comment.
In D75224#1927019 <https://reviews.llvm.org/D75224#1927019>, @craig.topper wrote:
> Simpler version to think about. Just let Constrained intrinsics handle their own flags completely, and skip them in the common FMF handling.
>
> @spatel what do you think?
Seems fine to me. Could we do something similar for reductions since we can mistakenly drop flags on those too?
================
Comment at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:1116
if (auto *FPMO = dyn_cast<FPMathOperator>(&I)) {
- // Propagate the fast-math-flags of this IR instruction to the DAG node that
- // maps to this instruction.
- // TODO: We could handle all flags (nsw, etc) here.
- // TODO: If an IR instruction maps to >1 node, only the final node will have
- // flags set.
- if (SDNode *Node = getNodeForIRValue(&I)) {
- SDNodeFlags IncomingFlags;
- IncomingFlags.copyFMF(*FPMO);
- if (!Node->getFlags().isDefined())
- Node->setFlags(IncomingFlags);
- else
- Node->intersectFlagsWith(IncomingFlags);
- }
- }
- // Constrained FP intrinsics with fpexcept.ignore should also get
- // the NoFPExcept flag.
- if (auto *FPI = dyn_cast<ConstrainedFPIntrinsic>(&I))
- if (FPI->getExceptionBehavior() == fp::ExceptionBehavior::ebIgnore)
+ // ContrainedFPIntrinsics handle their own FMF.
+ if (!isa<ConstrainedFPIntrinsic>(&I)) {
----------------
typo - 'Constrained'
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D75224/new/
https://reviews.llvm.org/D75224
More information about the llvm-commits
mailing list