[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