OLD | NEW |
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 | 5 |
6 // Defined when linking against shared lib on Windows. | 6 // Defined when linking against shared lib on Windows. |
7 #if defined(USING_V8_SHARED) && !defined(V8_SHARED) | 7 #if defined(USING_V8_SHARED) && !defined(V8_SHARED) |
8 #define V8_SHARED | 8 #define V8_SHARED |
9 #endif | 9 #endif |
10 | 10 |
(...skipping 19 matching lines...) Expand all Loading... |
30 #include "src/gdb-jit.h" | 30 #include "src/gdb-jit.h" |
31 #endif | 31 #endif |
32 | 32 |
33 #ifdef ENABLE_VTUNE_JIT_INTERFACE | 33 #ifdef ENABLE_VTUNE_JIT_INTERFACE |
34 #include "src/third_party/vtune/v8-vtune.h" | 34 #include "src/third_party/vtune/v8-vtune.h" |
35 #endif | 35 #endif |
36 | 36 |
37 #include "src/d8.h" | 37 #include "src/d8.h" |
38 #include "src/ostreams.h" | 38 #include "src/ostreams.h" |
39 | 39 |
| 40 #include "include/v8-sampler.h" |
| 41 #include "include/v8-tracing-controller.h" |
40 #include "include/libplatform/libplatform.h" | 42 #include "include/libplatform/libplatform.h" |
41 #ifndef V8_SHARED | 43 #ifndef V8_SHARED |
42 #include "src/api.h" | 44 #include "src/api.h" |
43 #include "src/base/cpu.h" | 45 #include "src/base/cpu.h" |
44 #include "src/base/logging.h" | 46 #include "src/base/logging.h" |
45 #include "src/base/platform/platform.h" | 47 #include "src/base/platform/platform.h" |
46 #include "src/base/sys-info.h" | 48 #include "src/base/sys-info.h" |
47 #include "src/basic-block-profiler.h" | 49 #include "src/basic-block-profiler.h" |
48 #include "src/snapshot/natives.h" | 50 #include "src/snapshot/natives.h" |
49 #include "src/utils.h" | 51 #include "src/utils.h" |
(...skipping 2391 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2441 #ifndef V8_SHARED | 2443 #ifndef V8_SHARED |
2442 g_platform = i::FLAG_verify_predictable | 2444 g_platform = i::FLAG_verify_predictable |
2443 ? new PredictablePlatform() | 2445 ? new PredictablePlatform() |
2444 : v8::platform::CreateDefaultPlatform(); | 2446 : v8::platform::CreateDefaultPlatform(); |
2445 #else | 2447 #else |
2446 g_platform = v8::platform::CreateDefaultPlatform(); | 2448 g_platform = v8::platform::CreateDefaultPlatform(); |
2447 #endif // !V8_SHARED | 2449 #endif // !V8_SHARED |
2448 | 2450 |
2449 v8::V8::InitializePlatform(g_platform); | 2451 v8::V8::InitializePlatform(g_platform); |
2450 v8::V8::Initialize(); | 2452 v8::V8::Initialize(); |
| 2453 // Initialize tracing controller support |
| 2454 TracingController::SetUp(); |
2451 if (options.natives_blob || options.snapshot_blob) { | 2455 if (options.natives_blob || options.snapshot_blob) { |
2452 v8::V8::InitializeExternalStartupData(options.natives_blob, | 2456 v8::V8::InitializeExternalStartupData(options.natives_blob, |
2453 options.snapshot_blob); | 2457 options.snapshot_blob); |
2454 } else { | 2458 } else { |
2455 v8::V8::InitializeExternalStartupData(argv[0]); | 2459 v8::V8::InitializeExternalStartupData(argv[0]); |
2456 } | 2460 } |
2457 SetFlagsFromString("--trace-hydrogen-file=hydrogen.cfg"); | 2461 SetFlagsFromString("--trace-hydrogen-file=hydrogen.cfg"); |
2458 SetFlagsFromString("--trace-turbo-cfg-file=turbo.cfg"); | 2462 SetFlagsFromString("--trace-turbo-cfg-file=turbo.cfg"); |
2459 SetFlagsFromString("--redirect-code-traces-to=code.asm"); | 2463 SetFlagsFromString("--redirect-code-traces-to=code.asm"); |
2460 int result = 0; | 2464 int result = 0; |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2492 Isolate::Scope scope(isolate); | 2496 Isolate::Scope scope(isolate); |
2493 Initialize(isolate); | 2497 Initialize(isolate); |
2494 PerIsolateData data(isolate); | 2498 PerIsolateData data(isolate); |
2495 | 2499 |
2496 #ifndef V8_SHARED | 2500 #ifndef V8_SHARED |
2497 if (options.dump_heap_constants) { | 2501 if (options.dump_heap_constants) { |
2498 DumpHeapConstants(reinterpret_cast<i::Isolate*>(isolate)); | 2502 DumpHeapConstants(reinterpret_cast<i::Isolate*>(isolate)); |
2499 return 0; | 2503 return 0; |
2500 } | 2504 } |
2501 #endif | 2505 #endif |
| 2506 TracingController::StartTracing(isolate); |
2502 | 2507 |
2503 if (options.stress_opt || options.stress_deopt) { | 2508 if (options.stress_opt || options.stress_deopt) { |
2504 Testing::SetStressRunType(options.stress_opt | 2509 Testing::SetStressRunType(options.stress_opt |
2505 ? Testing::kStressTypeOpt | 2510 ? Testing::kStressTypeOpt |
2506 : Testing::kStressTypeDeopt); | 2511 : Testing::kStressTypeDeopt); |
2507 options.stress_runs = Testing::GetStressRuns(); | 2512 options.stress_runs = Testing::GetStressRuns(); |
2508 for (int i = 0; i < options.stress_runs && result == 0; i++) { | 2513 for (int i = 0; i < options.stress_runs && result == 0; i++) { |
2509 printf("============ Stress %d/%d ============\n", i + 1, | 2514 printf("============ Stress %d/%d ============\n", i + 1, |
2510 options.stress_runs); | 2515 options.stress_runs); |
2511 Testing::PrepareStressRun(i); | 2516 Testing::PrepareStressRun(i); |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2547 } | 2552 } |
2548 OnExit(isolate); | 2553 OnExit(isolate); |
2549 #ifndef V8_SHARED | 2554 #ifndef V8_SHARED |
2550 // Dump basic block profiling data. | 2555 // Dump basic block profiling data. |
2551 if (i::BasicBlockProfiler* profiler = | 2556 if (i::BasicBlockProfiler* profiler = |
2552 reinterpret_cast<i::Isolate*>(isolate)->basic_block_profiler()) { | 2557 reinterpret_cast<i::Isolate*>(isolate)->basic_block_profiler()) { |
2553 i::OFStream os(stdout); | 2558 i::OFStream os(stdout); |
2554 os << *profiler; | 2559 os << *profiler; |
2555 } | 2560 } |
2556 #endif // !V8_SHARED | 2561 #endif // !V8_SHARED |
| 2562 TracingController::StopTracing(); |
2557 isolate->Dispose(); | 2563 isolate->Dispose(); |
| 2564 TracingController::TearDown(); |
2558 V8::Dispose(); | 2565 V8::Dispose(); |
2559 V8::ShutdownPlatform(); | 2566 V8::ShutdownPlatform(); |
2560 delete g_platform; | 2567 delete g_platform; |
2561 | 2568 |
2562 return result; | 2569 return result; |
2563 } | 2570 } |
2564 | 2571 |
2565 } // namespace v8 | 2572 } // namespace v8 |
2566 | 2573 |
2567 | 2574 |
2568 #ifndef GOOGLE3 | 2575 #ifndef GOOGLE3 |
2569 int main(int argc, char* argv[]) { | 2576 int main(int argc, char* argv[]) { |
2570 return v8::Shell::Main(argc, argv); | 2577 return v8::Shell::Main(argc, argv); |
2571 } | 2578 } |
2572 #endif | 2579 #endif |
OLD | NEW |