<div dir="ltr">LGTM</div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jul 19, 2016 at 3:35 PM, Paul Robinson <span dir="ltr"><<a href="mailto:paul.robinson@sony.com" target="_blank">paul.robinson@sony.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">probinson created this revision.<br>
probinson added reviewers: chandlerc, dberlin.<br>
probinson added a subscriber: llvm-commits.<br>
<br>
AFAICT the new pass manager does not support this feature yet?<br>
<br>
<br>
<a href="https://reviews.llvm.org/D22545" rel="noreferrer" target="_blank">https://reviews.llvm.org/D22545</a><br>
<br>
Files:<br>
  lib/Transforms/Scalar/GVNHoist.cpp<br>
  test/Feature/optnone-opt.ll<br>
<br>
Index: test/Feature/optnone-opt.ll<br>
===================================================================<br>
--- test/Feature/optnone-opt.ll<br>
+++ test/Feature/optnone-opt.ll<br>
@@ -41,6 +41,7 @@<br>
 ; OPT-O1-DAG: Skipping pass 'Combine redundant instructions'<br>
 ; OPT-O1-DAG: Skipping pass 'Dead Store Elimination'<br>
 ; OPT-O1-DAG: Skipping pass 'Early CSE'<br>
+; OPT-O1-DAG: Skipping pass 'Early GVN Hoisting of Expressions'<br>
 ; OPT-O1-DAG: Skipping pass 'Jump Threading'<br>
 ; OPT-O1-DAG: Skipping pass 'MemCpy Optimization'<br>
 ; OPT-O1-DAG: Skipping pass 'Reassociate expressions'<br>
Index: lib/Transforms/Scalar/GVNHoist.cpp<br>
===================================================================<br>
--- lib/Transforms/Scalar/GVNHoist.cpp<br>
+++ lib/Transforms/Scalar/GVNHoist.cpp<br>
@@ -766,6 +766,8 @@<br>
   }<br>
<br>
   bool runOnFunction(Function &F) override {<br>
+    if (skipFunction(F))<br>
+      return false;<br>
     auto &DT = getAnalysis<DominatorTreeWrapperPass>().getDomTree();<br>
     auto &AA = getAnalysis<AAResultsWrapperPass>().getAAResults();<br>
     auto &MD = getAnalysis<MemoryDependenceWrapperPass>().getMemDep();<br>
<br>
<br>
</blockquote></div><br></div>