Optimizing: Remove redundant hash set copy in GVN

During the GVN analysis, a basic block inherits the set of movable
instructions from its dominator. If the block is the only successor
of the dominating block, there is no need for cloning of the parent
set (a very expensive operation).

Change-Id: I59e033b9e9e093984dc8e903e3a7be1cb3645cc2
diff --git a/compiler/optimizing/gvn.cc b/compiler/optimizing/gvn.cc
index 89bba2d..cb448c8 100644
--- a/compiler/optimizing/gvn.cc
+++ b/compiler/optimizing/gvn.cc
@@ -270,7 +270,7 @@
     set = new (allocator_) ValueSet(allocator_);
   } else {
     HBasicBlock* dominator = block->GetDominator();
-    set = sets_.Get(dominator->GetBlockId())->Copy();
+    set = sets_.Get(dominator->GetBlockId());
     if (dominator->GetSuccessors().Size() != 1 || dominator->GetSuccessors().Get(0) != block) {
       // We have to copy if the dominator has other successors, or `block` is not a successor
       // of the dominator.