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

Side by Side Diff: src/compiler.cc

Issue 1301583005: Rename ParserInfo::function() and CompilationInfo::function() to literal(). (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 4 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
« no previous file with comments | « src/compiler.h ('k') | src/compiler/ast-graph-builder.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 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/compiler.h" 5 #include "src/compiler.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "src/ast-numbering.h" 9 #include "src/ast-numbering.h"
10 #include "src/bootstrapper.h" 10 #include "src/bootstrapper.h"
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 #define PARSE_INFO_GETTER_WITH_DEFAULT(type, name, def) \ 57 #define PARSE_INFO_GETTER_WITH_DEFAULT(type, name, def) \
58 type CompilationInfo::name() const { \ 58 type CompilationInfo::name() const { \
59 return parse_info() ? parse_info()->name() : def; \ 59 return parse_info() ? parse_info()->name() : def; \
60 } 60 }
61 61
62 62
63 PARSE_INFO_GETTER(Handle<Script>, script) 63 PARSE_INFO_GETTER(Handle<Script>, script)
64 PARSE_INFO_GETTER(bool, is_eval) 64 PARSE_INFO_GETTER(bool, is_eval)
65 PARSE_INFO_GETTER(bool, is_native) 65 PARSE_INFO_GETTER(bool, is_native)
66 PARSE_INFO_GETTER(bool, is_module) 66 PARSE_INFO_GETTER(bool, is_module)
67 PARSE_INFO_GETTER(FunctionLiteral*, literal)
67 PARSE_INFO_GETTER_WITH_DEFAULT(LanguageMode, language_mode, STRICT) 68 PARSE_INFO_GETTER_WITH_DEFAULT(LanguageMode, language_mode, STRICT)
68 PARSE_INFO_GETTER_WITH_DEFAULT(Handle<JSFunction>, closure, 69 PARSE_INFO_GETTER_WITH_DEFAULT(Handle<JSFunction>, closure,
69 Handle<JSFunction>::null()) 70 Handle<JSFunction>::null())
70 PARSE_INFO_GETTER(FunctionLiteral*, function)
71 PARSE_INFO_GETTER_WITH_DEFAULT(Scope*, scope, nullptr) 71 PARSE_INFO_GETTER_WITH_DEFAULT(Scope*, scope, nullptr)
72 PARSE_INFO_GETTER(Handle<Context>, context) 72 PARSE_INFO_GETTER(Handle<Context>, context)
73 PARSE_INFO_GETTER(Handle<SharedFunctionInfo>, shared_info) 73 PARSE_INFO_GETTER(Handle<SharedFunctionInfo>, shared_info)
74 74
75 #undef PARSE_INFO_GETTER 75 #undef PARSE_INFO_GETTER
76 #undef PARSE_INFO_GETTER_WITH_DEFAULT 76 #undef PARSE_INFO_GETTER_WITH_DEFAULT
77 77
78 78
79 // Exactly like a CompilationInfo, except being allocated via {new} and it also 79 // Exactly like a CompilationInfo, except being allocated via {new} and it also
80 // creates and enters a Zone on construction and deallocates it on destruction. 80 // creates and enters a Zone on construction and deallocates it on destruction.
(...skipping 20 matching lines...) Expand all
101 bool CompilationInfo::has_shared_info() const { 101 bool CompilationInfo::has_shared_info() const {
102 return parse_info_ && !parse_info_->shared_info().is_null(); 102 return parse_info_ && !parse_info_->shared_info().is_null();
103 } 103 }
104 104
105 105
106 bool CompilationInfo::has_context() const { 106 bool CompilationInfo::has_context() const {
107 return parse_info_ && !parse_info_->context().is_null(); 107 return parse_info_ && !parse_info_->context().is_null();
108 } 108 }
109 109
110 110
111 bool CompilationInfo::has_literal() const {
112 return parse_info_ && parse_info_->literal() != nullptr;
113 }
114
115
116 bool CompilationInfo::has_scope() const {
117 return parse_info_ && parse_info_->scope() != nullptr;
118 }
119
120
111 CompilationInfo::CompilationInfo(ParseInfo* parse_info) 121 CompilationInfo::CompilationInfo(ParseInfo* parse_info)
112 : CompilationInfo(parse_info, nullptr, BASE, parse_info->isolate(), 122 : CompilationInfo(parse_info, nullptr, BASE, parse_info->isolate(),
113 parse_info->zone()) { 123 parse_info->zone()) {
114 // Compiling for the snapshot typically results in different code than 124 // Compiling for the snapshot typically results in different code than
115 // compiling later on. This means that code recompiled with deoptimization 125 // compiling later on. This means that code recompiled with deoptimization
116 // support won't be "equivalent" (as defined by SharedFunctionInfo:: 126 // support won't be "equivalent" (as defined by SharedFunctionInfo::
117 // EnableDeoptimizationSupport), so it will replace the old code and all 127 // EnableDeoptimizationSupport), so it will replace the old code and all
118 // its type feedback. To avoid this, always compile functions in the snapshot 128 // its type feedback. To avoid this, always compile functions in the snapshot
119 // with deoptimization support. 129 // with deoptimization support.
120 if (isolate_->serializer_enabled()) EnableDeoptimizationSupport(); 130 if (isolate_->serializer_enabled()) EnableDeoptimizationSupport();
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
203 code_stub()->GetExtraICState(), code_stub()->GetStubType()) 213 code_stub()->GetExtraICState(), code_stub()->GetStubType())
204 : Code::ComputeFlags(Code::OPTIMIZED_FUNCTION); 214 : Code::ComputeFlags(Code::OPTIMIZED_FUNCTION);
205 } 215 }
206 216
207 217
208 // Primitive functions are unlikely to be picked up by the stack-walking 218 // Primitive functions are unlikely to be picked up by the stack-walking
209 // profiler, so they trigger their own optimization when they're called 219 // profiler, so they trigger their own optimization when they're called
210 // for the SharedFunctionInfo::kCallsUntilPrimitiveOptimization-th time. 220 // for the SharedFunctionInfo::kCallsUntilPrimitiveOptimization-th time.
211 bool CompilationInfo::ShouldSelfOptimize() { 221 bool CompilationInfo::ShouldSelfOptimize() {
212 return FLAG_crankshaft && 222 return FLAG_crankshaft &&
213 !(function()->flags() & AstProperties::kDontSelfOptimize) && 223 !(literal()->flags() & AstProperties::kDontSelfOptimize) &&
214 !function()->dont_optimize() && 224 !literal()->dont_optimize() &&
215 function()->scope()->AllowsLazyCompilation() && 225 literal()->scope()->AllowsLazyCompilation() &&
216 (!has_shared_info() || !shared_info()->optimization_disabled()); 226 (!has_shared_info() || !shared_info()->optimization_disabled());
217 } 227 }
218 228
219 229
220 void CompilationInfo::EnsureFeedbackVector() { 230 void CompilationInfo::EnsureFeedbackVector() {
221 if (feedback_vector_.is_null()) { 231 if (feedback_vector_.is_null()) {
222 feedback_vector_ = isolate()->factory()->NewTypeFeedbackVector( 232 feedback_vector_ = isolate()->factory()->NewTypeFeedbackVector(
223 function()->feedback_vector_spec()); 233 literal()->feedback_vector_spec());
224 } 234 }
225 235
226 // It's very important that recompiles do not alter the structure of the 236 // It's very important that recompiles do not alter the structure of the
227 // type feedback vector. 237 // type feedback vector.
228 CHECK(!feedback_vector_->SpecDiffersFrom(function()->feedback_vector_spec())); 238 CHECK(!feedback_vector_->SpecDiffersFrom(literal()->feedback_vector_spec()));
229 } 239 }
230 240
231 241
232 bool CompilationInfo::has_simple_parameters() { 242 bool CompilationInfo::has_simple_parameters() {
233 return scope()->has_simple_parameters(); 243 return scope()->has_simple_parameters();
234 } 244 }
235 245
236 246
237 bool CompilationInfo::MayUseThis() const { 247 bool CompilationInfo::MayUseThis() const {
238 return scope()->has_this_declaration() && scope()->receiver()->is_used(); 248 return scope()->has_this_declaration() && scope()->receiver()->is_used();
(...skipping 441 matching lines...) Expand 10 before | Expand all | Expand 10 after
680 690
681 691
682 MUST_USE_RESULT static MaybeHandle<Code> GetUnoptimizedCodeCommon( 692 MUST_USE_RESULT static MaybeHandle<Code> GetUnoptimizedCodeCommon(
683 CompilationInfo* info) { 693 CompilationInfo* info) {
684 VMState<COMPILER> state(info->isolate()); 694 VMState<COMPILER> state(info->isolate());
685 PostponeInterruptsScope postpone(info->isolate()); 695 PostponeInterruptsScope postpone(info->isolate());
686 696
687 // Parse and update CompilationInfo with the results. 697 // Parse and update CompilationInfo with the results.
688 if (!Parser::ParseStatic(info->parse_info())) return MaybeHandle<Code>(); 698 if (!Parser::ParseStatic(info->parse_info())) return MaybeHandle<Code>();
689 Handle<SharedFunctionInfo> shared = info->shared_info(); 699 Handle<SharedFunctionInfo> shared = info->shared_info();
690 FunctionLiteral* lit = info->function(); 700 FunctionLiteral* lit = info->literal();
691 shared->set_language_mode(lit->language_mode()); 701 shared->set_language_mode(lit->language_mode());
692 SetExpectedNofPropertiesFromEstimate(shared, lit->expected_property_count()); 702 SetExpectedNofPropertiesFromEstimate(shared, lit->expected_property_count());
693 MaybeDisableOptimization(shared, lit->dont_optimize_reason()); 703 MaybeDisableOptimization(shared, lit->dont_optimize_reason());
694 704
695 if (FLAG_ignition && info->closure()->PassesFilter(FLAG_ignition_filter)) { 705 if (FLAG_ignition && info->closure()->PassesFilter(FLAG_ignition_filter)) {
696 // Compile bytecode for the interpreter. 706 // Compile bytecode for the interpreter.
697 if (!GenerateBytecode(info)) return MaybeHandle<Code>(); 707 if (!GenerateBytecode(info)) return MaybeHandle<Code>();
698 } else { 708 } else {
699 // Compile unoptimized code. 709 // Compile unoptimized code.
700 if (!CompileUnoptimizedCode(info)) return MaybeHandle<Code>(); 710 if (!CompileUnoptimizedCode(info)) return MaybeHandle<Code>();
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
764 DCHECK(!info->is_context_specializing()); 774 DCHECK(!info->is_context_specializing());
765 DCHECK(info->osr_ast_id().IsNone()); 775 DCHECK(info->osr_ast_id().IsNone());
766 Handle<SharedFunctionInfo> shared(function->shared()); 776 Handle<SharedFunctionInfo> shared(function->shared());
767 SharedFunctionInfo::AddSharedCodeToOptimizedCodeMap(shared, code); 777 SharedFunctionInfo::AddSharedCodeToOptimizedCodeMap(shared, code);
768 } 778 }
769 } 779 }
770 780
771 781
772 static bool Renumber(ParseInfo* parse_info) { 782 static bool Renumber(ParseInfo* parse_info) {
773 if (!AstNumbering::Renumber(parse_info->isolate(), parse_info->zone(), 783 if (!AstNumbering::Renumber(parse_info->isolate(), parse_info->zone(),
774 parse_info->function())) { 784 parse_info->literal())) {
775 return false; 785 return false;
776 } 786 }
777 Handle<SharedFunctionInfo> shared_info = parse_info->shared_info(); 787 Handle<SharedFunctionInfo> shared_info = parse_info->shared_info();
778 if (!shared_info.is_null()) { 788 if (!shared_info.is_null()) {
779 FunctionLiteral* lit = parse_info->function(); 789 FunctionLiteral* lit = parse_info->literal();
780 shared_info->set_ast_node_count(lit->ast_node_count()); 790 shared_info->set_ast_node_count(lit->ast_node_count());
781 MaybeDisableOptimization(shared_info, lit->dont_optimize_reason()); 791 MaybeDisableOptimization(shared_info, lit->dont_optimize_reason());
782 shared_info->set_dont_crankshaft(lit->flags() & 792 shared_info->set_dont_crankshaft(lit->flags() &
783 AstProperties::kDontCrankshaft); 793 AstProperties::kDontCrankshaft);
784 } 794 }
785 return true; 795 return true;
786 } 796 }
787 797
788 798
789 bool Compiler::Analyze(ParseInfo* info) { 799 bool Compiler::Analyze(ParseInfo* info) {
790 DCHECK(info->function() != NULL); 800 DCHECK_NOT_NULL(info->literal());
791 if (!Rewriter::Rewrite(info)) return false; 801 if (!Rewriter::Rewrite(info)) return false;
792 if (!Scope::Analyze(info)) return false; 802 if (!Scope::Analyze(info)) return false;
793 if (!Renumber(info)) return false; 803 if (!Renumber(info)) return false;
794 DCHECK(info->scope() != NULL); 804 DCHECK_NOT_NULL(info->scope());
795 return true; 805 return true;
796 } 806 }
797 807
798 808
799 bool Compiler::ParseAndAnalyze(ParseInfo* info) { 809 bool Compiler::ParseAndAnalyze(ParseInfo* info) {
800 if (!Parser::ParseStatic(info)) return false; 810 if (!Parser::ParseStatic(info)) return false;
801 return Compiler::Analyze(info); 811 return Compiler::Analyze(info);
802 } 812 }
803 813
804 814
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
943 } 953 }
944 function->ReplaceCode(*code); 954 function->ReplaceCode(*code);
945 DCHECK(function->is_compiled()); 955 DCHECK(function->is_compiled());
946 return true; 956 return true;
947 } 957 }
948 958
949 959
950 // TODO(turbofan): In the future, unoptimized code with deopt support could 960 // TODO(turbofan): In the future, unoptimized code with deopt support could
951 // be generated lazily once deopt is triggered. 961 // be generated lazily once deopt is triggered.
952 bool Compiler::EnsureDeoptimizationSupport(CompilationInfo* info) { 962 bool Compiler::EnsureDeoptimizationSupport(CompilationInfo* info) {
953 DCHECK(info->function() != NULL); 963 DCHECK_NOT_NULL(info->literal());
954 DCHECK(info->scope() != NULL); 964 DCHECK(info->has_scope());
955 Handle<SharedFunctionInfo> shared = info->shared_info(); 965 Handle<SharedFunctionInfo> shared = info->shared_info();
956 if (!shared->has_deoptimization_support()) { 966 if (!shared->has_deoptimization_support()) {
957 // TODO(titzer): just reuse the ParseInfo for the unoptimized compile. 967 // TODO(titzer): just reuse the ParseInfo for the unoptimized compile.
958 CompilationInfoWithZone unoptimized(info->closure()); 968 CompilationInfoWithZone unoptimized(info->closure());
959 // Note that we use the same AST that we will use for generating the 969 // Note that we use the same AST that we will use for generating the
960 // optimized code. 970 // optimized code.
961 ParseInfo* parse_info = unoptimized.parse_info(); 971 ParseInfo* parse_info = unoptimized.parse_info();
962 parse_info->set_literal(info->function()); 972 parse_info->set_literal(info->literal());
963 parse_info->set_scope(info->scope()); 973 parse_info->set_scope(info->scope());
964 parse_info->set_context(info->context()); 974 parse_info->set_context(info->context());
965 unoptimized.EnableDeoptimizationSupport(); 975 unoptimized.EnableDeoptimizationSupport();
966 // If the current code has reloc info for serialization, also include 976 // If the current code has reloc info for serialization, also include
967 // reloc info for serialization for the new code, so that deopt support 977 // reloc info for serialization for the new code, so that deopt support
968 // can be added without losing IC state. 978 // can be added without losing IC state.
969 if (shared->code()->kind() == Code::FUNCTION && 979 if (shared->code()->kind() == Code::FUNCTION &&
970 shared->code()->has_reloc_info_for_serialization()) { 980 shared->code()->has_reloc_info_for_serialization()) {
971 unoptimized.PrepareForSerializing(); 981 unoptimized.PrepareForSerializing();
972 } 982 }
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
1011 parse_info.set_parse_restriction(NO_PARSE_RESTRICTION); 1021 parse_info.set_parse_restriction(NO_PARSE_RESTRICTION);
1012 info.MarkAsDebug(); 1022 info.MarkAsDebug();
1013 1023
1014 VMState<COMPILER> state(info.isolate()); 1024 VMState<COMPILER> state(info.isolate());
1015 1025
1016 if (!Parser::ParseStatic(&parse_info)) { 1026 if (!Parser::ParseStatic(&parse_info)) {
1017 isolate->clear_pending_exception(); 1027 isolate->clear_pending_exception();
1018 return false; 1028 return false;
1019 } 1029 }
1020 1030
1021 FunctionLiteral* lit = info.function(); 1031 FunctionLiteral* lit = parse_info.literal();
1022 LiveEditFunctionTracker live_edit_tracker(isolate, lit); 1032 LiveEditFunctionTracker live_edit_tracker(isolate, lit);
1023 1033
1024 if (!CompileUnoptimizedCode(&info)) { 1034 if (!CompileUnoptimizedCode(&info)) {
1025 isolate->clear_pending_exception(); 1035 isolate->clear_pending_exception();
1026 return false; 1036 return false;
1027 } 1037 }
1028 shared->ReplaceCode(*info.code()); 1038 shared->ReplaceCode(*info.code());
1029 return true; 1039 return true;
1030 } 1040 }
1031 1041
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
1074 ParseInfo parse_info(&zone, script); 1084 ParseInfo parse_info(&zone, script);
1075 CompilationInfo info(&parse_info); 1085 CompilationInfo info(&parse_info);
1076 PostponeInterruptsScope postpone(info.isolate()); 1086 PostponeInterruptsScope postpone(info.isolate());
1077 VMState<COMPILER> state(info.isolate()); 1087 VMState<COMPILER> state(info.isolate());
1078 1088
1079 // Get rid of old list of shared function infos. 1089 // Get rid of old list of shared function infos.
1080 info.MarkAsFirstCompile(); 1090 info.MarkAsFirstCompile();
1081 info.parse_info()->set_global(); 1091 info.parse_info()->set_global();
1082 if (!Parser::ParseStatic(info.parse_info())) return; 1092 if (!Parser::ParseStatic(info.parse_info())) return;
1083 1093
1084 LiveEditFunctionTracker tracker(info.isolate(), info.function()); 1094 LiveEditFunctionTracker tracker(info.isolate(), parse_info.literal());
1085 if (!CompileUnoptimizedCode(&info)) return; 1095 if (!CompileUnoptimizedCode(&info)) return;
1086 if (info.has_shared_info()) { 1096 if (info.has_shared_info()) {
1087 Handle<ScopeInfo> scope_info = 1097 Handle<ScopeInfo> scope_info =
1088 ScopeInfo::Create(info.isolate(), info.zone(), info.scope()); 1098 ScopeInfo::Create(info.isolate(), info.zone(), info.scope());
1089 info.shared_info()->set_scope_info(*scope_info); 1099 info.shared_info()->set_scope_info(*scope_info);
1090 } 1100 }
1091 tracker.RecordRootFunctionInfo(info.code()); 1101 tracker.RecordRootFunctionInfo(info.code());
1092 } 1102 }
1093 1103
1094 1104
(...skipping 12 matching lines...) Expand all
1107 1117
1108 DCHECK(parse_info->is_eval() || parse_info->is_global() || 1118 DCHECK(parse_info->is_eval() || parse_info->is_global() ||
1109 parse_info->is_module()); 1119 parse_info->is_module());
1110 1120
1111 parse_info->set_toplevel(); 1121 parse_info->set_toplevel();
1112 1122
1113 Handle<SharedFunctionInfo> result; 1123 Handle<SharedFunctionInfo> result;
1114 1124
1115 { VMState<COMPILER> state(info->isolate()); 1125 { VMState<COMPILER> state(info->isolate());
1116 if (parse_info->literal() == NULL) { 1126 if (parse_info->literal() == NULL) {
1117 // Parse the script if needed (if it's already parsed, function() is 1127 // Parse the script if needed (if it's already parsed, literal() is
1118 // non-NULL). If compiling for debugging, we may eagerly compile inner 1128 // non-NULL). If compiling for debugging, we may eagerly compile inner
1119 // functions, so do not parse lazily in that case. 1129 // functions, so do not parse lazily in that case.
1120 ScriptCompiler::CompileOptions options = parse_info->compile_options(); 1130 ScriptCompiler::CompileOptions options = parse_info->compile_options();
1121 bool parse_allow_lazy = (options == ScriptCompiler::kConsumeParserCache || 1131 bool parse_allow_lazy = (options == ScriptCompiler::kConsumeParserCache ||
1122 String::cast(script->source())->length() > 1132 String::cast(script->source())->length() >
1123 FLAG_min_preparse_length) && 1133 FLAG_min_preparse_length) &&
1124 !info->is_debug(); 1134 !info->is_debug();
1125 1135
1126 parse_info->set_allow_lazy_parsing(parse_allow_lazy); 1136 parse_info->set_allow_lazy_parsing(parse_allow_lazy);
1127 if (!parse_allow_lazy && 1137 if (!parse_allow_lazy &&
1128 (options == ScriptCompiler::kProduceParserCache || 1138 (options == ScriptCompiler::kProduceParserCache ||
1129 options == ScriptCompiler::kConsumeParserCache)) { 1139 options == ScriptCompiler::kConsumeParserCache)) {
1130 // We are going to parse eagerly, but we either 1) have cached data 1140 // We are going to parse eagerly, but we either 1) have cached data
1131 // produced by lazy parsing or 2) are asked to generate cached data. 1141 // produced by lazy parsing or 2) are asked to generate cached data.
1132 // Eager parsing cannot benefit from cached data, and producing cached 1142 // Eager parsing cannot benefit from cached data, and producing cached
1133 // data while parsing eagerly is not implemented. 1143 // data while parsing eagerly is not implemented.
1134 parse_info->set_cached_data(nullptr); 1144 parse_info->set_cached_data(nullptr);
1135 parse_info->set_compile_options(ScriptCompiler::kNoCompileOptions); 1145 parse_info->set_compile_options(ScriptCompiler::kNoCompileOptions);
1136 } 1146 }
1137 if (!Parser::ParseStatic(parse_info)) { 1147 if (!Parser::ParseStatic(parse_info)) {
1138 return Handle<SharedFunctionInfo>::null(); 1148 return Handle<SharedFunctionInfo>::null();
1139 } 1149 }
1140 } 1150 }
1141 1151
1142 DCHECK(!info->is_debug() || !parse_info->allow_lazy_parsing()); 1152 DCHECK(!info->is_debug() || !parse_info->allow_lazy_parsing());
1143 1153
1144 info->MarkAsFirstCompile(); 1154 info->MarkAsFirstCompile();
1145 1155
1146 FunctionLiteral* lit = info->function(); 1156 FunctionLiteral* lit = parse_info->literal();
1147 LiveEditFunctionTracker live_edit_tracker(isolate, lit); 1157 LiveEditFunctionTracker live_edit_tracker(isolate, lit);
1148 1158
1149 // Measure how long it takes to do the compilation; only take the 1159 // Measure how long it takes to do the compilation; only take the
1150 // rest of the function into account to avoid overlap with the 1160 // rest of the function into account to avoid overlap with the
1151 // parsing statistics. 1161 // parsing statistics.
1152 HistogramTimer* rate = info->is_eval() 1162 HistogramTimer* rate = info->is_eval()
1153 ? info->isolate()->counters()->compile_eval() 1163 ? info->isolate()->counters()->compile_eval()
1154 : info->isolate()->counters()->compile(); 1164 : info->isolate()->counters()->compile();
1155 HistogramTimerScope timer(rate); 1165 HistogramTimerScope timer(rate);
1156 1166
(...skipping 545 matching lines...) Expand 10 before | Expand all | Expand 10 after
1702 : (FLAG_trace_hydrogen && 1712 : (FLAG_trace_hydrogen &&
1703 info()->closure()->PassesFilter(FLAG_trace_hydrogen_filter)); 1713 info()->closure()->PassesFilter(FLAG_trace_hydrogen_filter));
1704 return (tracing_on && 1714 return (tracing_on &&
1705 base::OS::StrChr(const_cast<char*>(FLAG_trace_phase), name_[0]) != NULL); 1715 base::OS::StrChr(const_cast<char*>(FLAG_trace_phase), name_[0]) != NULL);
1706 } 1716 }
1707 1717
1708 1718
1709 #if DEBUG 1719 #if DEBUG
1710 void CompilationInfo::PrintAstForTesting() { 1720 void CompilationInfo::PrintAstForTesting() {
1711 PrintF("--- Source from AST ---\n%s\n", 1721 PrintF("--- Source from AST ---\n%s\n",
1712 PrettyPrinter(isolate(), zone()).PrintProgram(function())); 1722 PrettyPrinter(isolate(), zone()).PrintProgram(literal()));
1713 } 1723 }
1714 #endif 1724 #endif
1715 } // namespace internal 1725 } // namespace internal
1716 } // namespace v8 1726 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler.h ('k') | src/compiler/ast-graph-builder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698