Revision: 18357
Author:   [email protected]
Date:     Wed Dec 18 17:18:23 2013 UTC
Log:      Improve ==/=== comparison in Hydrogen for monomorphic maps

[email protected]

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

Modified:
 /branches/bleeding_edge/src/hydrogen.cc

=======================================
--- /branches/bleeding_edge/src/hydrogen.cc     Wed Dec 18 11:58:58 2013 UTC
+++ /branches/bleeding_edge/src/hydrogen.cc     Wed Dec 18 17:18:23 2013 UTC
@@ -9193,10 +9193,11 @@
   if (combined_type->Is(Type::Receiver())) {
     if (Token::IsEqualityOp(op)) {
       // Can we get away with map check and not instance type check?
+      HValue* operand_to_check =
+ left->block()->block_id() < right->block()->block_id() ? left : right;
       if (combined_type->IsClass()) {
         Handle<Map> map = combined_type->AsClass();
-        AddCheckMap(left, map);
-        AddCheckMap(right, map);
+        AddCheckMap(operand_to_check, map);
         HCompareObjectEqAndBranch* result =
             New<HCompareObjectEqAndBranch>(left, right);
         if (FLAG_emit_opt_code_positions) {
@@ -9205,10 +9206,9 @@
         }
         return result;
       } else {
-        BuildCheckHeapObject(left);
-        Add<HCheckInstanceType>(left, HCheckInstanceType::IS_SPEC_OBJECT);
-        BuildCheckHeapObject(right);
-        Add<HCheckInstanceType>(right, HCheckInstanceType::IS_SPEC_OBJECT);
+        BuildCheckHeapObject(operand_to_check);
+        Add<HCheckInstanceType>(operand_to_check,
+                                HCheckInstanceType::IS_SPEC_OBJECT);
         HCompareObjectEqAndBranch* result =
             New<HCompareObjectEqAndBranch>(left, right);
         return result;

--
--
v8-dev mailing list
[email protected]
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 [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to