Revision: 19150
Author:   bmeu...@chromium.org
Date:     Thu Feb  6 12:35:17 2014 UTC
Log:      Cosmetic cleanup for GVN.

R=hpa...@chromium.org

Review URL: https://codereview.chromium.org/153563006
http://code.google.com/p/v8/source/detail?r=19150

Modified:
 /branches/bleeding_edge/src/hydrogen-gvn.cc
 /branches/bleeding_edge/src/hydrogen-gvn.h

=======================================
--- /branches/bleeding_edge/src/hydrogen-gvn.cc Thu Feb  6 09:54:59 2014 UTC
+++ /branches/bleeding_edge/src/hydrogen-gvn.cc Thu Feb  6 12:35:17 2014 UTC
@@ -364,47 +364,48 @@


 HGlobalValueNumberingPhase::HGlobalValueNumberingPhase(HGraph* graph)
-      : HPhase("H_Global value numbering", graph),
-        removed_side_effects_(false),
-        block_side_effects_(graph->blocks()->length(), zone()),
-        loop_side_effects_(graph->blocks()->length(), zone()),
-        visited_on_paths_(graph->blocks()->length(), zone()) {
-    ASSERT(!AllowHandleAllocation::IsAllowed());
-    block_side_effects_.AddBlock(GVNFlagSet(), graph->blocks()->length(),
-                                 zone());
-    loop_side_effects_.AddBlock(GVNFlagSet(), graph->blocks()->length(),
+    : HPhase("H_Global value numbering", graph),
+      removed_side_effects_(false),
+      block_side_effects_(graph->blocks()->length(), zone()),
+      loop_side_effects_(graph->blocks()->length(), zone()),
+      visited_on_paths_(graph->blocks()->length(), zone()) {
+  ASSERT(!AllowHandleAllocation::IsAllowed());
+  block_side_effects_.AddBlock(GVNFlagSet(), graph->blocks()->length(),
                                 zone());
+  loop_side_effects_.AddBlock(GVNFlagSet(), graph->blocks()->length(),
+                              zone());
 }


-void HGlobalValueNumberingPhase::Reset() {
-  ASSERT(block_side_effects_.length() == graph()->blocks()->length());
-  ASSERT(loop_side_effects_.length() == graph()->blocks()->length());
-  for (int i = 0; i < graph()->blocks()->length(); ++i) {
-    block_side_effects_[i] = GVNFlagSet();
-    loop_side_effects_[i] = GVNFlagSet();
-  }
-  visited_on_paths_.Clear();
-}
+void HGlobalValueNumberingPhase::Run() {
+  ASSERT(!removed_side_effects_);
+  for (int i = FLAG_gvn_iterations; i > 0; --i) {
+    // Compute the side effects.
+    ComputeBlockSideEffects();
+
+    // Perform loop invariant code motion if requested.
+    if (FLAG_loop_invariant_code_motion) LoopInvariantCodeMotion();
+
+    // Perform the actual value numbering.
+    AnalyzeGraph();

+    // Continue GVN if we removed any side effects.
+    if (!removed_side_effects_) break;
+    removed_side_effects_ = false;

-void HGlobalValueNumberingPhase::Analyze() {
-  removed_side_effects_ = false;
-  ComputeBlockSideEffects();
-  if (FLAG_loop_invariant_code_motion) {
-    LoopInvariantCodeMotion();
+    // Clear all side effects.
+    ASSERT_EQ(block_side_effects_.length(), graph()->blocks()->length());
+    ASSERT_EQ(loop_side_effects_.length(), graph()->blocks()->length());
+    for (int i = 0; i < graph()->blocks()->length(); ++i) {
+      block_side_effects_[i].RemoveAll();
+      loop_side_effects_[i].RemoveAll();
+    }
+    visited_on_paths_.Clear();
   }
-  AnalyzeGraph();
 }


 void HGlobalValueNumberingPhase::ComputeBlockSideEffects() {
-  // The Analyze phase of GVN can be called multiple times. Clear loop side
- // effects before computing them to erase the contents from previous Analyze
-  // passes.
-  for (int i = 0; i < loop_side_effects_.length(); ++i) {
-    loop_side_effects_[i].RemoveAll();
-  }
   for (int i = graph()->blocks()->length() - 1; i >= 0; --i) {
     // Compute side effects for the block.
     HBasicBlock* block = graph()->blocks()->at(i);
=======================================
--- /branches/bleeding_edge/src/hydrogen-gvn.h  Wed Feb  5 17:21:34 2014 UTC
+++ /branches/bleeding_edge/src/hydrogen-gvn.h  Thu Feb  6 12:35:17 2014 UTC
@@ -41,18 +41,9 @@
  public:
   explicit HGlobalValueNumberingPhase(HGraph* graph);

-  void Run() {
-    int max_fixpoint_iteration_count = FLAG_gvn_iterations;
-    for (int i = 0; i < max_fixpoint_iteration_count; i++) {
-      Analyze();
-      if (!removed_side_effects_) break;
-      Reset();
-    }
-  }
+  void Run();

  private:
-  void Reset();
-  void Analyze();
   GVNFlagSet CollectSideEffectsOnPathsToDominatedBlock(
       HBasicBlock* dominator,
       HBasicBlock* dominated);

--
--
v8-dev mailing list
v8-dev@googlegroups.com
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to v8-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to