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

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

Issue 9616014: Improve polymorphic loads on single slots. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Renamed CheckMap to CheckMaps. Created 8 years, 9 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
« no previous file with comments | « src/hydrogen-instructions.h ('k') | src/ia32/lithium-codegen-ia32.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 938 matching lines...) Expand 10 before | Expand all | Expand 10 after
949 case IS_SYMBOL: 949 case IS_SYMBOL:
950 *mask = kIsSymbolMask; 950 *mask = kIsSymbolMask;
951 *tag = kSymbolTag; 951 *tag = kSymbolTag;
952 return; 952 return;
953 default: 953 default:
954 UNREACHABLE(); 954 UNREACHABLE();
955 } 955 }
956 } 956 }
957 957
958 958
959 void HCheckMap::PrintDataTo(StringStream* stream) { 959 void HCheckMaps::PrintDataTo(StringStream* stream) {
960 value()->PrintNameTo(stream); 960 value()->PrintNameTo(stream);
961 stream->Add(" %p", *map()); 961 stream->Add(" [%p", *map_set()->first());
962 if (mode() == REQUIRE_EXACT_MAP) { 962 for (int i = 1; i < map_set()->length(); ++i) {
963 stream->Add(" [EXACT]"); 963 stream->Add(",%p", *map_set()->at(i));
964 } else if (!has_element_transitions_) {
965 stream->Add(" [EXACT*]");
966 } else {
967 stream->Add(" [MATCH ELEMENTS]");
968 } 964 }
965 stream->Add("]");
969 } 966 }
970 967
971 968
972 void HCheckFunction::PrintDataTo(StringStream* stream) { 969 void HCheckFunction::PrintDataTo(StringStream* stream) {
973 value()->PrintNameTo(stream); 970 value()->PrintNameTo(stream);
974 stream->Add(" %p", *target()); 971 stream->Add(" %p", *target());
975 } 972 }
976 973
977 974
978 const char* HCheckInstanceType::GetCheckName() { 975 const char* HCheckInstanceType::GetCheckName() {
(...skipping 883 matching lines...) Expand 10 before | Expand all | Expand 10 after
1862 1859
1863 1860
1864 // Implementation of type inference and type conversions. Calculates 1861 // Implementation of type inference and type conversions. Calculates
1865 // the inferred type of this instruction based on the input operands. 1862 // the inferred type of this instruction based on the input operands.
1866 1863
1867 HType HValue::CalculateInferredType() { 1864 HType HValue::CalculateInferredType() {
1868 return type_; 1865 return type_;
1869 } 1866 }
1870 1867
1871 1868
1872 HType HCheckMap::CalculateInferredType() { 1869 HType HCheckMaps::CalculateInferredType() {
1873 return value()->type(); 1870 return value()->type();
1874 } 1871 }
1875 1872
1876 1873
1877 HType HCheckFunction::CalculateInferredType() { 1874 HType HCheckFunction::CalculateInferredType() {
1878 return value()->type(); 1875 return value()->type();
1879 } 1876 }
1880 1877
1881 1878
1882 HType HCheckNonSmi::CalculateInferredType() { 1879 HType HCheckNonSmi::CalculateInferredType() {
(...skipping 404 matching lines...) Expand 10 before | Expand all | Expand 10 after
2287 2284
2288 2285
2289 void HCheckPrototypeMaps::Verify() { 2286 void HCheckPrototypeMaps::Verify() {
2290 HInstruction::Verify(); 2287 HInstruction::Verify();
2291 ASSERT(HasNoUses()); 2288 ASSERT(HasNoUses());
2292 } 2289 }
2293 2290
2294 #endif 2291 #endif
2295 2292
2296 } } // namespace v8::internal 2293 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/hydrogen-instructions.h ('k') | src/ia32/lithium-codegen-ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698