[PATCH] D81678: Introduce noundef attribute at call sites for stricter poison analysis

Gui Andrade via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 29 11:54:24 PDT 2020


guiand added a comment.

I've run across an issue when bootstrapping clang, that manifests itself in the following code when compiled with optimizations:

  #include <math.h>
  
  float my_exp2(float a) {
      return pow(2.0, a);
  }

With this code, the call to `pow` is lifted to a `exp2`, and then the resulting call causes `llvm::verifyFunction` to fail. The error is that attributes are present past the end of the argument list.
I'm thinking that whatever code does the lifting here fails to remove the attribute list corresponding to the `2.0` parameter here.

Could anyone point me to where I might need to make a change for that?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D81678





More information about the llvm-commits mailing list