[PATCH] D88307: [DON'T MERGE] Jump-threading for finite state automata

Ehsan Amiri via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 16 04:23:10 PST 2020


amehsan added a comment.

I think it is generalizable, and I will try to clarify generalization opportunities.

> There are three main components in the algorithm.
>
> 1-	Choosing a SSA variable in the loop that is interesting. (“the variable” hereafter)
> 2-	Proving the branches that depend on the value of the variable has opportunity for jump threading.
> 3-	Deciding on which blocks needs to be replicated, how much code increase we will have and which branches we can remove.

To be clear, there is a lot of work that needs to be done after step (3). That is the actual transformation that can be discussed. But my goal here was to focus on the analysis to find the opportunity and also deciding how to replicate the code, which branches/BBs will be impacted.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D88307/new/

https://reviews.llvm.org/D88307



More information about the llvm-commits mailing list