[PATCH] D66132: [CodeGen] Add `isSpeculativeExecutionForbidden()` to `TargetTransformInfo`
Anton Afanasyev via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Aug 13 05:08:39 PDT 2019
anton-afanasyev added a comment.
In D66132#1626811 <https://reviews.llvm.org/D66132#1626811>, @lebedev.ri wrote:
> I feel like this is lacking words.
> What problem is this addressing?
> Is it correctness-one or performance?
> The current hook feels a little bit weird.
> Does it mean to completely ban speculative execution?
> If then there is a lot more places where it should be used, and not using it there may be surprising.
> Or does it only mean to ban PRE? But then, what was the original problem?
> Or should it be per-MI hook?
> etc
The problem is discussed here: https://bugs.llvm.org/show_bug.cgi?id=42405
Per-MI hook already exists -- it is `hasSideEffect()`. But for particular targets setting this to `true` is undesirable, this breaks existing optimizations (though it could really have side effect, like `div` for aarch64. This change means to ban PRE at all, yes.
@igorb could add something here.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D66132/new/
https://reviews.llvm.org/D66132
More information about the llvm-commits
mailing list