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

Side by Side Diff: src/hydrogen.cc

Issue 212163004: Hide some runtime functions. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 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/full-codegen.cc ('k') | src/hydrogen-instructions.h » ('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 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 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 1736 matching lines...) Expand 10 before | Expand all | Expand 10 after
1747 Push(Add<HLoadKeyed>(number_string_cache, value_index, 1747 Push(Add<HLoadKeyed>(number_string_cache, value_index,
1748 static_cast<HValue*>(NULL), 1748 static_cast<HValue*>(NULL),
1749 FAST_ELEMENTS, ALLOW_RETURN_HOLE)); 1749 FAST_ELEMENTS, ALLOW_RETURN_HOLE));
1750 } 1750 }
1751 if_found.Else(); 1751 if_found.Else();
1752 { 1752 {
1753 // Cache miss, fallback to runtime. 1753 // Cache miss, fallback to runtime.
1754 Add<HPushArgument>(object); 1754 Add<HPushArgument>(object);
1755 Push(Add<HCallRuntime>( 1755 Push(Add<HCallRuntime>(
1756 isolate()->factory()->empty_string(), 1756 isolate()->factory()->empty_string(),
1757 Runtime::FunctionForId(Runtime::kNumberToStringSkipCache), 1757 Runtime::FunctionForId(Runtime::kHiddenNumberToStringSkipCache),
1758 1)); 1758 1));
1759 } 1759 }
1760 if_found.End(); 1760 if_found.End();
1761 1761
1762 return Pop(); 1762 return Pop();
1763 } 1763 }
1764 1764
1765 1765
1766 HAllocate* HGraphBuilder::BuildAllocate( 1766 HAllocate* HGraphBuilder::BuildAllocate(
1767 HValue* object_size, 1767 HValue* object_size,
(...skipping 3333 matching lines...) Expand 10 before | Expand all | Expand 10 after
5101 ? ObjectLiteral::kHasFunction : ObjectLiteral::kNoFlags; 5101 ? ObjectLiteral::kHasFunction : ObjectLiteral::kNoFlags;
5102 5102
5103 Add<HPushArgument>(Add<HConstant>(closure_literals)); 5103 Add<HPushArgument>(Add<HConstant>(closure_literals));
5104 Add<HPushArgument>(Add<HConstant>(literal_index)); 5104 Add<HPushArgument>(Add<HConstant>(literal_index));
5105 Add<HPushArgument>(Add<HConstant>(constant_properties)); 5105 Add<HPushArgument>(Add<HConstant>(constant_properties));
5106 Add<HPushArgument>(Add<HConstant>(flags)); 5106 Add<HPushArgument>(Add<HConstant>(flags));
5107 5107
5108 // TODO(mvstanton): Add a flag to turn off creation of any 5108 // TODO(mvstanton): Add a flag to turn off creation of any
5109 // AllocationMementos for this call: we are in crankshaft and should have 5109 // AllocationMementos for this call: we are in crankshaft and should have
5110 // learned enough about transition behavior to stop emitting mementos. 5110 // learned enough about transition behavior to stop emitting mementos.
5111 Runtime::FunctionId function_id = Runtime::kCreateObjectLiteral; 5111 Runtime::FunctionId function_id = Runtime::kHiddenCreateObjectLiteral;
5112 literal = Add<HCallRuntime>(isolate()->factory()->empty_string(), 5112 literal = Add<HCallRuntime>(isolate()->factory()->empty_string(),
5113 Runtime::FunctionForId(function_id), 5113 Runtime::FunctionForId(function_id),
5114 4); 5114 4);
5115 } 5115 }
5116 5116
5117 // The object is expected in the bailout environment during computation 5117 // The object is expected in the bailout environment during computation
5118 // of the property values and is the value of the entire expression. 5118 // of the property values and is the value of the entire expression.
5119 Push(literal); 5119 Push(literal);
5120 5120
5121 expr->CalculateEmitStore(zone()); 5121 expr->CalculateEmitStore(zone());
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
5258 flags |= ArrayLiteral::kDisableMementos; 5258 flags |= ArrayLiteral::kDisableMementos;
5259 5259
5260 Add<HPushArgument>(Add<HConstant>(literals)); 5260 Add<HPushArgument>(Add<HConstant>(literals));
5261 Add<HPushArgument>(Add<HConstant>(literal_index)); 5261 Add<HPushArgument>(Add<HConstant>(literal_index));
5262 Add<HPushArgument>(Add<HConstant>(constants)); 5262 Add<HPushArgument>(Add<HConstant>(constants));
5263 Add<HPushArgument>(Add<HConstant>(flags)); 5263 Add<HPushArgument>(Add<HConstant>(flags));
5264 5264
5265 // TODO(mvstanton): Consider a flag to turn off creation of any 5265 // TODO(mvstanton): Consider a flag to turn off creation of any
5266 // AllocationMementos for this call: we are in crankshaft and should have 5266 // AllocationMementos for this call: we are in crankshaft and should have
5267 // learned enough about transition behavior to stop emitting mementos. 5267 // learned enough about transition behavior to stop emitting mementos.
5268 Runtime::FunctionId function_id = Runtime::kCreateArrayLiteral; 5268 Runtime::FunctionId function_id = Runtime::kHiddenCreateArrayLiteral;
5269 literal = Add<HCallRuntime>(isolate()->factory()->empty_string(), 5269 literal = Add<HCallRuntime>(isolate()->factory()->empty_string(),
5270 Runtime::FunctionForId(function_id), 5270 Runtime::FunctionForId(function_id),
5271 4); 5271 4);
5272 5272
5273 // De-opt if elements kind changed from boilerplate_elements_kind. 5273 // De-opt if elements kind changed from boilerplate_elements_kind.
5274 Handle<Map> map = Handle<Map>(boilerplate_object->map(), isolate()); 5274 Handle<Map> map = Handle<Map>(boilerplate_object->map(), isolate());
5275 literal = Add<HCheckMaps>(literal, map, top_info()); 5275 literal = Add<HCheckMaps>(literal, map, top_info());
5276 } 5276 }
5277 5277
5278 // The array is expected in the bailout environment during computation 5278 // The array is expected in the bailout environment during computation
(...skipping 897 matching lines...) Expand 10 before | Expand all | Expand 10 after
6176 // We don't optimize functions with invalid left-hand sides in 6176 // We don't optimize functions with invalid left-hand sides in
6177 // assignments, count operations, or for-in. Consequently throw can 6177 // assignments, count operations, or for-in. Consequently throw can
6178 // currently only occur in an effect context. 6178 // currently only occur in an effect context.
6179 ASSERT(ast_context()->IsEffect()); 6179 ASSERT(ast_context()->IsEffect());
6180 CHECK_ALIVE(VisitForValue(expr->exception())); 6180 CHECK_ALIVE(VisitForValue(expr->exception()));
6181 6181
6182 HValue* value = environment()->Pop(); 6182 HValue* value = environment()->Pop();
6183 if (!FLAG_hydrogen_track_positions) SetSourcePosition(expr->position()); 6183 if (!FLAG_hydrogen_track_positions) SetSourcePosition(expr->position());
6184 Add<HPushArgument>(value); 6184 Add<HPushArgument>(value);
6185 Add<HCallRuntime>(isolate()->factory()->empty_string(), 6185 Add<HCallRuntime>(isolate()->factory()->empty_string(),
6186 Runtime::FunctionForId(Runtime::kThrow), 1); 6186 Runtime::FunctionForId(Runtime::kHiddenThrow), 1);
6187 Add<HSimulate>(expr->id()); 6187 Add<HSimulate>(expr->id());
6188 6188
6189 // If the throw definitely exits the function, we can finish with a dummy 6189 // If the throw definitely exits the function, we can finish with a dummy
6190 // control flow at this point. This is not the case if the throw is inside 6190 // control flow at this point. This is not the case if the throw is inside
6191 // an inlined function which may be replaced. 6191 // an inlined function which may be replaced.
6192 if (call_context() == NULL) { 6192 if (call_context() == NULL) {
6193 FinishExitCurrentBlock(New<HAbnormalExit>()); 6193 FinishExitCurrentBlock(New<HAbnormalExit>());
6194 } 6194 }
6195 } 6195 }
6196 6196
(...skipping 5114 matching lines...) Expand 10 before | Expand all | Expand 10 after
11311 if (ShouldProduceTraceOutput()) { 11311 if (ShouldProduceTraceOutput()) {
11312 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); 11312 isolate()->GetHTracer()->TraceHydrogen(name(), graph_);
11313 } 11313 }
11314 11314
11315 #ifdef DEBUG 11315 #ifdef DEBUG
11316 graph_->Verify(false); // No full verify. 11316 graph_->Verify(false); // No full verify.
11317 #endif 11317 #endif
11318 } 11318 }
11319 11319
11320 } } // namespace v8::internal 11320 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/full-codegen.cc ('k') | src/hydrogen-instructions.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698