[PATCH] D45576: [RFC] Allow target to handle STRICT floating-point nodes

Cameron McInally via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 27 09:32:34 PDT 2018


cameron.mcinally added a comment.

The patterns look great. I'm still not comfortable enough to review the target-independent changes, so will leave that to someone else.

The FPC register use on non-strict operations may be overly restrictive though. Here's a pathological test case to illustrate:

void foo(int a, int b) {

  while(something) {
    call_that_may_modify_FPC();
    int x = a / b;
    use(x);  
  }

}

Since a and b are local to the function, the *non-strict* DIV could be hoisted out of the loop. If we assume that calls implicitly define FPC, which I think we must to model global state, wouldn't that prevent the hoist of this non-strict DIV?


Repository:
  rL LLVM

https://reviews.llvm.org/D45576





More information about the llvm-commits mailing list