[PATCH] D151082: [GuardUtils] Allow intermmediate blocks between widenable branch and deopt block
Artur Pilipenko via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon May 22 19:51:17 PDT 2023
apilipenko added a comment.
Why do we even care that an edge from a widenable condition branch terminates with a deopt? Widenable condition alone should be enough for widening.
We might want to know that a widened condition will result in a deopt for profitability purposes. We know that a deopt path is very unlikely and the runtime will be able to heal from the widening if we go that path. But we can check for these concerns separately and explicitly. We can use BFI to determine if a path is rare. We can introduce a new metadata to mark branches that can be healed after widening.
BTW, we use make implicit metadata for a similar purpose - to indicate that a branch can be "speculated" and the runtime can heal from this speculation.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D151082/new/
https://reviews.llvm.org/D151082
More information about the llvm-commits
mailing list