[PATCH] D48705: [CodeGenPrepare] Reverse LICM pass for shift and rotate patterns.
Eli Friedman via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Jun 28 12:18:01 PDT 2018
efriedma added a comment.
I'm not sure https://reviews.llvm.org/D46946 and https://reviews.llvm.org/D47019 are good ideas in the first place, particularly https://reviews.llvm.org/D47019. Expanding an intrinsic to an 8-instruction sequence is getting past the point where we're actually getting any benefit from transforming intrinsic to native IR. Emitting a complicated lowering like that, and trying to recover it in isel seems very tricky to get right, and as far as I can tell we don't get much benefit.
If we are going to expand out x86 shift and rotate intrinsics, we should probably consider pattern-matching on IR, rather than waiting for SelectionDAG. Trying to work around isel limitations in this fashion is fragile, and will probably have a wider effect than you want.
For rotates, there was a proposal to add a generic IR intrinsic for variable rotates on llvmdev, due to the complications involved in late pattern-matching.
Repository:
rL LLVM
https://reviews.llvm.org/D48705
More information about the llvm-commits
mailing list