[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