[PATCH] D30350: [LSR] Add a cap for reassociation of AllFixupsOutsideLoop type LSRUse to protect compile time
Wei Mi via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Mar 8 14:43:56 PST 2017
wmi added a comment.
Andy,
Thanks for the comment.
> I just wonder why you complete bypass the reassociation code instead of simply limiting the number of expressions that participate.
Because I feel it brings less uncertainty about the LSR result. If I limit the number of expressions that participate, suppose there is a candidate formula matters for the final LSR result, whether it will be used depends on when it is seen and it brings some uncertainty to the LSR result.
Another reason is, for LSRUse with AllFixupsOutsideLoop = true, I don't feel reassociation for their formulas matters much for the performance, since the uses are all outside of loop. From my understanding, LSRUse with AllFixupsOutsideLoop = true shouldn't have equal weight as other LSRUse with fixups inside the loop. It is ok for a LSRFixup user outside of loop to use many registers. That is why I simply choose to bypass the reassociation. If it is for LSRUse with AllFixupsOutsideLoop = false, I feel I need to be more careful.
Thanks,
Wei.
Repository:
rL LLVM
https://reviews.llvm.org/D30350
More information about the llvm-commits
mailing list