[PATCH] D37163: [LICM] sink through non-trivially replicable PHI
Daniel Berlin via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Sep 7 10:39:04 PDT 2017
dberlin added a comment.
Okay.
One reason we don't split critical edges by default in most passes in LLVM is that edges coming out of switches that lead to the same block are pretty much always critical.
Doing so by default for large switches leads to *huge* code blowup.
IE it goes from 1 block to N blocks, where N is the number of switch cases.
If there are multiple layers of switches, it's obviously even worse.
Have you tested on this on any switch heavy code to ensure it does not blow up code size and compile time?
https://reviews.llvm.org/D37163
More information about the llvm-commits
mailing list