Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(467)

Side by Side Diff: src/hydrogen-instructions.cc

Issue 10543094: Eliminate redundant smi checks (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Delay SMI checks as long as possible Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 1694 matching lines...) Expand 10 before | Expand all | Expand 10 after
1705 stream->Add("."); 1705 stream->Add(".");
1706 stream->Add(*String::cast(*name())->ToCString()); 1706 stream->Add(*String::cast(*name())->ToCString());
1707 } 1707 }
1708 1708
1709 1709
1710 void HLoadKeyedFastElement::PrintDataTo(StringStream* stream) { 1710 void HLoadKeyedFastElement::PrintDataTo(StringStream* stream) {
1711 object()->PrintNameTo(stream); 1711 object()->PrintNameTo(stream);
1712 stream->Add("["); 1712 stream->Add("[");
1713 key()->PrintNameTo(stream); 1713 key()->PrintNameTo(stream);
1714 stream->Add("]"); 1714 stream->Add("]");
1715 if (hole_check_mode_ == PERFORM_HOLE_CHECK) { 1715 if (IsFastHoleyElementsKind(elements_kind())) {
Michael Starzinger 2012/06/12 08:10:43 It seems as if we don't need the hole_check_mode f
danno 2012/06/12 09:59:22 Done.
1716 stream->Add(" check_hole"); 1716 stream->Add(" check_hole");
1717 } 1717 }
1718 } 1718 }
1719 1719
1720 1720
1721 bool HLoadKeyedFastElement::RequiresHoleCheck() { 1721 bool HLoadKeyedFastElement::RequiresHoleCheck() {
1722 if (hole_check_mode_ == OMIT_HOLE_CHECK) { 1722 if (IsFastPackedElementsKind(elements_kind())) {
Michael Starzinger 2012/06/12 08:10:43 Likewise.
danno 2012/06/12 09:59:22 The hole check value is gone, but we still need to
1723 return false; 1723 return false;
1724 } 1724 }
1725 1725
1726 for (HUseIterator it(uses()); !it.Done(); it.Advance()) { 1726 for (HUseIterator it(uses()); !it.Done(); it.Advance()) {
1727 HValue* use = it.value(); 1727 HValue* use = it.value();
1728 if (!use->IsChange()) return true; 1728 if (!use->IsChange()) return true;
1729 } 1729 }
1730 1730
1731 return false; 1731 return false;
1732 } 1732 }
1733 1733
1734 1734
1735 void HLoadKeyedFastDoubleElement::PrintDataTo(StringStream* stream) { 1735 void HLoadKeyedFastDoubleElement::PrintDataTo(StringStream* stream) {
1736 elements()->PrintNameTo(stream); 1736 elements()->PrintNameTo(stream);
1737 stream->Add("["); 1737 stream->Add("[");
1738 key()->PrintNameTo(stream); 1738 key()->PrintNameTo(stream);
1739 stream->Add("]"); 1739 stream->Add("]");
1740 } 1740 }
(...skipping 737 matching lines...) Expand 10 before | Expand all | Expand 10 after
2478 2478
2479 2479
2480 void HCheckPrototypeMaps::Verify() { 2480 void HCheckPrototypeMaps::Verify() {
2481 HInstruction::Verify(); 2481 HInstruction::Verify();
2482 ASSERT(HasNoUses()); 2482 ASSERT(HasNoUses());
2483 } 2483 }
2484 2484
2485 #endif 2485 #endif
2486 2486
2487 } } // namespace v8::internal 2487 } } // namespace v8::internal
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698