[PATCH] D70913: [FPEnv][SelectionDAG] Relax chain requirements

Ulrich Weigand via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 3 06:56:50 PST 2020


uweigand added a comment.

In D70913#1802248 <https://reviews.llvm.org/D70913#1802248>, @craig.topper wrote:

> I think this doesn't work if a constrained intrinsic is created that doesn't have have any uses, but needs to trigger an exception. The chain output ends up in PendingLoads, but PendingLoads isn't flushed if there's no stores or other operations that need to be ordered. So the basic block ends without connecting the chain from the constrained intrinsic to anything. This makes the node subject to deletion.


I guess you're right -- the current behavior seems correct only for fpexcept.maytrap but not fpexcept.strict nodes.  The latter need to be part of both getRoot and getControlRoot.  I'm not sure whether simply adding the nodes to both PendingLoads and PendingExports will work though, since then we might get duplicate chain links ... we may need a seperate list for the FP nodes.  I'll have a look.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D70913/new/

https://reviews.llvm.org/D70913





More information about the llvm-commits mailing list