[PATCH] D20116: Add speculatable function attribute

Matt Arsenault via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 27 09:20:52 PDT 2017


arsenm added a comment.

In https://reviews.llvm.org/D20116#710866, @nlopes wrote:

> Let me maybe zoom out and give a different perspective:
>  Right now call site and function attributes are an AND of predicates that are always guaranteed to hold for that specific call site or for all call sites, respectively.
>  Predicates include things like doesn't write to memory, only writes to memory that is not observable, etc.  Using attributes we can state that several of these predicates hold.
>  In the ideal world, predicates wouldn't overlap, although since we can only state ANDs of predicates and not ORs, some overlap may be need in practice.


It behaves as an or right now? Last time I checked the implementation, call sites just scan its attributes and then check the set on the declaration


https://reviews.llvm.org/D20116





More information about the llvm-commits mailing list