<div dir="ltr">1. You should add a command line flag<div>2. Can you file bugs, so sebastian can look at them?<br><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jul 21, 2016 at 11:35 AM, Alina Sbirlea <span dir="ltr"><<a href="mailto:asbirlea@google.com" target="_blank">asbirlea@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">asbirlea created this revision.<br>
asbirlea added reviewers: llvm-commits, chandlerc, spop, dberlin.<br>
Herald added a subscriber: mehdi_amini.<br>
<br>
Adding a flag to diable GVN Hoisting.<br>
Note: The GVN Hoist Pass causes some Halide tests to hang. Halide will disable the pass while investigating.<br>
<br>
<a href="https://reviews.llvm.org/D22639" rel="noreferrer" target="_blank">https://reviews.llvm.org/D22639</a><br>
<br>
Files:<br>
  include/llvm/Transforms/IPO/PassManagerBuilder.h<br>
  lib/Transforms/IPO/PassManagerBuilder.cpp<br>
<br>
Index: lib/Transforms/IPO/PassManagerBuilder.cpp<br>
===================================================================<br>
--- lib/Transforms/IPO/PassManagerBuilder.cpp<br>
+++ lib/Transforms/IPO/PassManagerBuilder.cpp<br>
@@ -140,6 +140,7 @@<br>
     LibraryInfo = nullptr;<br>
     Inliner = nullptr;<br>
     ModuleSummary = nullptr;<br>
+    DisableGVNHoist = false;<br>
     DisableUnitAtATime = false;<br>
     DisableUnrollLoops = false;<br>
     BBVectorize = RunBBVectorization;<br>
@@ -232,7 +233,8 @@<br>
   FPM.add(createCFGSimplificationPass());<br>
   FPM.add(createSROAPass());<br>
   FPM.add(createEarlyCSEPass());<br>
-  FPM.add(createGVNHoistPass());<br>
+  if(!DisableGVNHoist)<br>
+    FPM.add(createGVNHoistPass());<br>
   FPM.add(createLowerExpectIntrinsicPass());<br>
 }<br>
<br>
Index: include/llvm/Transforms/IPO/PassManagerBuilder.h<br>
===================================================================<br>
--- include/llvm/Transforms/IPO/PassManagerBuilder.h<br>
+++ include/llvm/Transforms/IPO/PassManagerBuilder.h<br>
@@ -122,6 +122,7 @@<br>
   /// The module summary index to use for function importing.<br>
   const ModuleSummaryIndex *ModuleSummary;<br>
<br>
+  bool DisableGVNHoist;<br>
   bool DisableTailCalls;<br>
   bool DisableUnitAtATime;<br>
   bool DisableUnrollLoops;<br>
<br>
<br>
</blockquote></div><br></div>