[PATCH] D37460: [GVN] Prevent LoadPRE from hoisting through guards

Max Kazantsev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 6 02:25:56 PDT 2017


mkazantsev updated this revision to Diff 113971.
mkazantsev retitled this revision from "[GVN] Prevent LoadPRE from hoisting through guards and assumes" to "[GVN] Prevent LoadPRE from hoisting through guards".
mkazantsev edited the summary of this revision.
mkazantsev added a comment.

1. Removed assumes-related stuff.
2. Added a motivating test and comment.
3. Daniel, I didn't get what you mean under using ordered instructions to do this stuff. OrderedInstructions can only answer if a particular guard dominates our load. It will still take linear time to gather the guards, and for them we know for sure that they dominate the load and don't basically need to ask anything from OrderdeInstructions. I used `any_of` to speed the things up, but don't see any way to reduce complexity.

Could you please explain what you mean under using OrderedInstructions for gaining amortized constant complexity?


https://reviews.llvm.org/D37460

Files:
  lib/Transforms/Scalar/GVN.cpp
  test/Transforms/GVN/PRE/pre-load-guards.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D37460.113971.patch
Type: text/x-patch
Size: 5679 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170906/f49c1dc1/attachment.bin>


More information about the llvm-commits mailing list