[PATCH] D88307: [DON'T MERGE] Jump-threading for finite state automata
Evgeny Astigeevich via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Oct 5 10:47:00 PDT 2020
eastig added a comment.
>> Do you mean to improve the existing LLVM Jump Threading pass?
>
> Yes, either improve current one or write new more powerful JT pass.
IMHO, the current LLVM JT pass is a lightweight JT. It tries to balance an amount of duplicated basic blocks and to preserve loops from becoming irreducible.
Making it powerful could break design principles and contracts the pass is based on. The Aggressive JT can easily duplicate a lot of basic blocks and make loops irreducible.
Also AJT benefits more from the analyze-then-transform approach rather than from iterative approach. I saw that no additional jumps were threaded after the first pass.
There are still unanswered questions regarding AJT: what applications benefit most from it (definitely FST), where to put it in the optimizations pipeline, what heuristics to use, etc.
All of this make questionable whether the current JT should be upgraded into AJT.
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