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

Side by Side Diff: src/compiler.cc

Issue 10824032: Enables V8 integration with the Intel VTune performance analysis tool. This allows the VTune profi… (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Created 8 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 | 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 28 matching lines...) Expand all
39 #include "isolate-inl.h" 39 #include "isolate-inl.h"
40 #include "lithium.h" 40 #include "lithium.h"
41 #include "liveedit.h" 41 #include "liveedit.h"
42 #include "parser.h" 42 #include "parser.h"
43 #include "rewriter.h" 43 #include "rewriter.h"
44 #include "runtime-profiler.h" 44 #include "runtime-profiler.h"
45 #include "scanner-character-streams.h" 45 #include "scanner-character-streams.h"
46 #include "scopeinfo.h" 46 #include "scopeinfo.h"
47 #include "scopes.h" 47 #include "scopes.h"
48 #include "vm-state-inl.h" 48 #include "vm-state-inl.h"
49 #include "third_party/vtune/vtune-jit.h"
49 50
50 namespace v8 { 51 namespace v8 {
51 namespace internal { 52 namespace internal {
52 53
53 54
54 CompilationInfo::CompilationInfo(Handle<Script> script, Zone* zone) 55 CompilationInfo::CompilationInfo(Handle<Script> script, Zone* zone)
55 : isolate_(script->GetIsolate()), 56 : isolate_(script->GetIsolate()),
56 flags_(LanguageModeField::encode(CLASSIC_MODE)), 57 flags_(LanguageModeField::encode(CLASSIC_MODE)),
57 function_(NULL), 58 function_(NULL),
58 scope_(NULL), 59 scope_(NULL),
(...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after
363 364
364 OptimizingCompiler::Status OptimizingCompiler::GenerateAndInstallCode() { 365 OptimizingCompiler::Status OptimizingCompiler::GenerateAndInstallCode() {
365 ASSERT(last_status() == SUCCEEDED); 366 ASSERT(last_status() == SUCCEEDED);
366 Timer timer(this, &time_taken_to_codegen_); 367 Timer timer(this, &time_taken_to_codegen_);
367 ASSERT(chunk_ != NULL); 368 ASSERT(chunk_ != NULL);
368 ASSERT(graph_ != NULL); 369 ASSERT(graph_ != NULL);
369 Handle<Code> optimized_code = chunk_->Codegen(); 370 Handle<Code> optimized_code = chunk_->Codegen();
370 if (optimized_code.is_null()) return AbortOptimization(); 371 if (optimized_code.is_null()) return AbortOptimization();
371 info()->SetCode(optimized_code); 372 info()->SetCode(optimized_code);
372 RecordOptimizationStats(); 373 RecordOptimizationStats();
374 Handle<String> name = info()->function()->debug_name();
375 VTUNEJIT(AddCode(Handle<String>(name),
376 optimized_code,
377 Handle<Script>(info()->script())));
373 return SetLastStatus(SUCCEEDED); 378 return SetLastStatus(SUCCEEDED);
374 } 379 }
375 380
376 381
377 static bool GenerateCode(CompilationInfo* info) { 382 static bool GenerateCode(CompilationInfo* info) {
378 bool is_optimizing = V8::UseCrankshaft() && 383 bool is_optimizing = V8::UseCrankshaft() &&
379 !info->IsCompilingForDebugging() && 384 !info->IsCompilingForDebugging() &&
380 info->IsOptimizing(); 385 info->IsOptimizing();
381 if (is_optimizing) { 386 if (is_optimizing) {
382 return MakeCrankshaftCode(info); 387 return MakeCrankshaftCode(info);
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
490 info->is_eval() 495 info->is_eval()
491 ? Logger::EVAL_TAG 496 ? Logger::EVAL_TAG
492 : Logger::ToNativeByScript(Logger::SCRIPT_TAG, *script), 497 : Logger::ToNativeByScript(Logger::SCRIPT_TAG, *script),
493 *info->code(), 498 *info->code(),
494 *result, 499 *result,
495 String::cast(script->name()))); 500 String::cast(script->name())));
496 GDBJIT(AddCode(Handle<String>(String::cast(script->name())), 501 GDBJIT(AddCode(Handle<String>(String::cast(script->name())),
497 script, 502 script,
498 info->code(), 503 info->code(),
499 info)); 504 info));
505 VTUNEJIT(AddCode(Handle<String>(String::cast(script->name())),
506 info->code(),
507 script));
500 } else { 508 } else {
501 PROFILE(isolate, CodeCreateEvent( 509 PROFILE(isolate, CodeCreateEvent(
502 info->is_eval() 510 info->is_eval()
503 ? Logger::EVAL_TAG 511 ? Logger::EVAL_TAG
504 : Logger::ToNativeByScript(Logger::SCRIPT_TAG, *script), 512 : Logger::ToNativeByScript(Logger::SCRIPT_TAG, *script),
505 *info->code(), 513 *info->code(),
506 *result, 514 *result,
507 isolate->heap()->empty_string())); 515 isolate->heap()->empty_string()));
508 GDBJIT(AddCode(Handle<String>(), script, info->code(), info)); 516 GDBJIT(AddCode(Handle<String>(), script, info->code(), info));
517 VTUNEJIT(AddCode(Handle<String>(isolate->heap()->empty_string()),
518 info->code(),
519 script));
509 } 520 }
510 521
511 // Hint to the runtime system used when allocating space for initial 522 // Hint to the runtime system used when allocating space for initial
512 // property space by setting the expected number of properties for 523 // property space by setting the expected number of properties for
513 // the instances of the function. 524 // the instances of the function.
514 SetExpectedNofPropertiesFromEstimate(result, lit->expected_property_count()); 525 SetExpectedNofPropertiesFromEstimate(result, lit->expected_property_count());
515 526
516 script->set_compilation_state( 527 script->set_compilation_state(
517 Smi::FromInt(Script::COMPILATION_STATE_COMPILED)); 528 Smi::FromInt(Script::COMPILATION_STATE_COMPILED));
518 529
(...skipping 505 matching lines...) Expand 10 before | Expand all | Expand 10 after
1024 *code, 1035 *code,
1025 *shared, 1036 *shared,
1026 shared->DebugName())); 1037 shared->DebugName()));
1027 } 1038 }
1028 } 1039 }
1029 1040
1030 GDBJIT(AddCode(Handle<String>(shared->DebugName()), 1041 GDBJIT(AddCode(Handle<String>(shared->DebugName()),
1031 Handle<Script>(info->script()), 1042 Handle<Script>(info->script()),
1032 Handle<Code>(info->code()), 1043 Handle<Code>(info->code()),
1033 info)); 1044 info));
1045 if (tag == Logger::FUNCTION_TAG )
1046 VTUNEJIT(AddCode(Handle<String>(shared->DebugName()),
1047 Handle<Code>(info->code()),
1048 Handle<Script>(info->script())));
1034 } 1049 }
1035 1050
1036 } } // namespace v8::internal 1051 } } // namespace v8::internal
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698