Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 #include "vm/compiler.h" | 5 #include "vm/compiler.h" |
| 6 | 6 |
| 7 #include "vm/assembler.h" | 7 #include "vm/assembler.h" |
| 8 | 8 |
| 9 #include "vm/ast_printer.h" | 9 #include "vm/ast_printer.h" |
| 10 #include "vm/block_scheduler.h" | 10 #include "vm/block_scheduler.h" |
| (...skipping 1046 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1057 isolate->object_store()->clear_sticky_error(); | 1057 isolate->object_store()->clear_sticky_error(); |
| 1058 return error.raw(); | 1058 return error.raw(); |
| 1059 } | 1059 } |
| 1060 UNREACHABLE(); | 1060 UNREACHABLE(); |
| 1061 return Error::null(); | 1061 return Error::null(); |
| 1062 } | 1062 } |
| 1063 | 1063 |
| 1064 | 1064 |
| 1065 RawError* Compiler::CompileFunction(Thread* thread, | 1065 RawError* Compiler::CompileFunction(Thread* thread, |
| 1066 const Function& function) { | 1066 const Function& function) { |
| 1067 VMTagScope tagScope(thread->isolate(), VMTag::kCompileUnoptimizedTagId); | 1067 Isolate* isolate = thread->isolate(); |
| 1068 VMTagScope tagScope(isolate, VMTag::kCompileUnoptimizedTagId); | |
| 1069 TimelineDurationScope tds(isolate, | |
| 1070 isolate->GetCompilerStream(), | |
| 1071 "CompileFunction"); | |
| 1072 if (tds.enabled()) { | |
| 1073 tds.SetNumArguments(1); | |
| 1074 tds.CopyArgument( | |
| 1075 0, | |
| 1076 "function", | |
| 1077 const_cast<char*>(function.QualifiedUserVisibleNameCString())); | |
| 1078 } | |
|
siva
2015/06/12 19:50:34
I think you should really switch this code to a ma
Cutch
2015/06/12 23:18:56
Done.
| |
| 1068 CompilationPipeline* pipeline = | 1079 CompilationPipeline* pipeline = |
| 1069 CompilationPipeline::New(thread->zone(), function); | 1080 CompilationPipeline::New(thread->zone(), function); |
| 1070 | 1081 |
| 1071 const bool optimized = | 1082 const bool optimized = |
| 1072 Compiler::always_optimize() && function.IsOptimizable(); | 1083 Compiler::always_optimize() && function.IsOptimizable(); |
| 1073 | 1084 |
| 1074 return CompileFunctionHelper(pipeline, function, optimized, | 1085 return CompileFunctionHelper(pipeline, function, optimized, |
| 1075 Isolate::kNoDeoptId); | 1086 Isolate::kNoDeoptId); |
| 1076 } | 1087 } |
| 1077 | 1088 |
| (...skipping 24 matching lines...) Expand all Loading... | |
| 1102 if (FLAG_trace_compiler) { | 1113 if (FLAG_trace_compiler) { |
| 1103 ISL_Print("Ensure unoptimized code for %s\n", function.ToCString()); | 1114 ISL_Print("Ensure unoptimized code for %s\n", function.ToCString()); |
| 1104 } | 1115 } |
| 1105 return Error::null(); | 1116 return Error::null(); |
| 1106 } | 1117 } |
| 1107 | 1118 |
| 1108 | 1119 |
| 1109 RawError* Compiler::CompileOptimizedFunction(Thread* thread, | 1120 RawError* Compiler::CompileOptimizedFunction(Thread* thread, |
| 1110 const Function& function, | 1121 const Function& function, |
| 1111 intptr_t osr_id) { | 1122 intptr_t osr_id) { |
| 1112 VMTagScope tagScope(thread->isolate(), VMTag::kCompileOptimizedTagId); | 1123 Isolate* isolate = thread->isolate(); |
| 1124 VMTagScope tagScope(isolate, VMTag::kCompileOptimizedTagId); | |
| 1125 TimelineDurationScope tds(isolate, | |
| 1126 isolate->GetCompilerStream(), | |
| 1127 "CompileOptimizedFunction"); | |
| 1128 if (tds.enabled()) { | |
| 1129 tds.SetNumArguments(1); | |
| 1130 tds.CopyArgument( | |
| 1131 0, | |
| 1132 "function", | |
| 1133 const_cast<char*>(function.QualifiedUserVisibleNameCString())); | |
| 1134 } | |
|
siva
2015/06/12 19:50:34
TIMELINE_FUNCTION_COMPILATION_DURATION(isolate, "O
Cutch
2015/06/12 23:18:56
Done.
| |
| 1113 CompilationPipeline* pipeline = | 1135 CompilationPipeline* pipeline = |
| 1114 CompilationPipeline::New(thread->zone(), function); | 1136 CompilationPipeline::New(thread->zone(), function); |
| 1115 return CompileFunctionHelper(pipeline, function, true, osr_id); | 1137 return CompileFunctionHelper(pipeline, function, true, osr_id); |
| 1116 } | 1138 } |
| 1117 | 1139 |
| 1118 | 1140 |
| 1119 // This is only used from unit tests. | 1141 // This is only used from unit tests. |
| 1120 RawError* Compiler::CompileParsedFunction( | 1142 RawError* Compiler::CompileParsedFunction( |
| 1121 ParsedFunction* parsed_function) { | 1143 ParsedFunction* parsed_function) { |
| 1122 LongJumpScope jump; | 1144 LongJumpScope jump; |
| (...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1322 const Object& result = | 1344 const Object& result = |
| 1323 PassiveObject::Handle(isolate->object_store()->sticky_error()); | 1345 PassiveObject::Handle(isolate->object_store()->sticky_error()); |
| 1324 isolate->object_store()->clear_sticky_error(); | 1346 isolate->object_store()->clear_sticky_error(); |
| 1325 return result.raw(); | 1347 return result.raw(); |
| 1326 } | 1348 } |
| 1327 UNREACHABLE(); | 1349 UNREACHABLE(); |
| 1328 return Object::null(); | 1350 return Object::null(); |
| 1329 } | 1351 } |
| 1330 | 1352 |
| 1331 } // namespace dart | 1353 } // namespace dart |
| OLD | NEW |