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

Evgenii Stepanov via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Jun 22 16:40:24 PDT 2020


eugenis added inline comments.


================
Comment at: clang/lib/CodeGen/CGCall.cpp:4095
+    }
+  }
   call->setCallingConv(getRuntimeCC());
----------------
guiand wrote:
> jdoerfert wrote:
> > Why would we do this? Function attributes are valid at the call site, no need to copy them.
> Do you mean that for some definition: `define @foo(i32 frozen %a, i32 frozen %b)`, it's valid to issue a call instruction like `call @foo(i32 %a, i32 %b)` and its operands will be correctly identified as `frozen`? That's the kind of behavior I was seeing and I wasn't sure if it was an error.
If you see CallBase::paramHasAttr, function definition attributes will be taken into account when available.

I'm not sure what happens for indirect calls that do not have a Callee - we need to make sure that the frontend emits the callsite attributes that match the signature of the call.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D81678





More information about the cfe-commits mailing list