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

Side by Side Diff: runtime/bin/main.cc

Issue 1584443002: VM: Precompiled rodata snapshot. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: win32, android build Created 4 years, 11 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
OLDNEW
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 <stdlib.h> 5 #include <stdlib.h>
6 #include <string.h> 6 #include <string.h>
7 #include <stdio.h> 7 #include <stdio.h>
8 8
9 #include "include/dart_api.h" 9 #include "include/dart_api.h"
10 #include "include/dart_tools_api.h" 10 #include "include/dart_tools_api.h"
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
77 static const char* precompiled_snapshot_directory = NULL; 77 static const char* precompiled_snapshot_directory = NULL;
78 78
79 79
80 // Global flag that is used to indicate that we want to compile everything in 80 // Global flag that is used to indicate that we want to compile everything in
81 // the same way as precompilation before main, then continue running in the 81 // the same way as precompilation before main, then continue running in the
82 // same process. 82 // same process.
83 static bool has_noopt = false; 83 static bool has_noopt = false;
84 84
85 85
86 extern const char* kPrecompiledLibraryName; 86 extern const char* kPrecompiledLibraryName;
87 extern const char* kPrecompiledSymbolName; 87 extern const char* kPrecompiledInstructionsSymbolName;
88 extern const char* kPrecompiledDataSymbolName;
88 static const char* kPrecompiledVmIsolateName = "precompiled.vmisolate"; 89 static const char* kPrecompiledVmIsolateName = "precompiled.vmisolate";
89 static const char* kPrecompiledIsolateName = "precompiled.isolate"; 90 static const char* kPrecompiledIsolateName = "precompiled.isolate";
90 static const char* kPrecompiledInstructionsName = "precompiled.S"; 91 static const char* kPrecompiledInstructionsName = "precompiled.S";
91 92
92 93
93 // Global flag that is used to indicate that we want to trace resolution of 94 // Global flag that is used to indicate that we want to trace resolution of
94 // URIs and the loading of libraries, parts and scripts. 95 // URIs and the loading of libraries, parts and scripts.
95 static bool has_trace_loading = false; 96 static bool has_trace_loading = false;
96 97
97 98
(...skipping 1356 matching lines...) Expand 10 before | Expand all | Expand 10 after
1454 vm_options.AddArgument("--load_deferred_eagerly"); 1455 vm_options.AddArgument("--load_deferred_eagerly");
1455 } 1456 }
1456 1457
1457 Dart_SetVMFlags(vm_options.count(), vm_options.arguments()); 1458 Dart_SetVMFlags(vm_options.count(), vm_options.arguments());
1458 1459
1459 // Start event handler. 1460 // Start event handler.
1460 TimerUtils::InitOnce(); 1461 TimerUtils::InitOnce();
1461 EventHandler::Start(); 1462 EventHandler::Start();
1462 1463
1463 const uint8_t* instructions_snapshot = NULL; 1464 const uint8_t* instructions_snapshot = NULL;
1465 const uint8_t* data_snapshot = NULL;
1464 if (has_run_precompiled_snapshot) { 1466 if (has_run_precompiled_snapshot) {
1465 instructions_snapshot = reinterpret_cast<const uint8_t*>( 1467 instructions_snapshot = reinterpret_cast<const uint8_t*>(
1466 LoadLibrarySymbol(kPrecompiledLibraryName, kPrecompiledSymbolName)); 1468 LoadLibrarySymbol(kPrecompiledLibraryName,
1469 kPrecompiledInstructionsSymbolName));
1470 data_snapshot = reinterpret_cast<const uint8_t*>(
1471 LoadLibrarySymbol(kPrecompiledLibraryName, kPrecompiledDataSymbolName));
1467 ReadPrecompiledSnapshotFile(kPrecompiledVmIsolateName, 1472 ReadPrecompiledSnapshotFile(kPrecompiledVmIsolateName,
1468 &vm_isolate_snapshot_buffer); 1473 &vm_isolate_snapshot_buffer);
1469 ReadPrecompiledSnapshotFile(kPrecompiledIsolateName, 1474 ReadPrecompiledSnapshotFile(kPrecompiledIsolateName,
1470 &isolate_snapshot_buffer); 1475 &isolate_snapshot_buffer);
1471 } 1476 }
1472 1477
1473 // Initialize the Dart VM. 1478 // Initialize the Dart VM.
1474 char* error = Dart_Initialize( 1479 char* error = Dart_Initialize(
1475 vm_isolate_snapshot_buffer, instructions_snapshot, 1480 vm_isolate_snapshot_buffer, instructions_snapshot, data_snapshot,
1476 CreateIsolateAndSetup, NULL, NULL, ShutdownIsolate, 1481 CreateIsolateAndSetup, NULL, NULL, ShutdownIsolate,
1477 DartUtils::OpenFile, 1482 DartUtils::OpenFile,
1478 DartUtils::ReadFile, 1483 DartUtils::ReadFile,
1479 DartUtils::WriteFile, 1484 DartUtils::WriteFile,
1480 DartUtils::CloseFile, 1485 DartUtils::CloseFile,
1481 DartUtils::EntropySource, 1486 DartUtils::EntropySource,
1482 GetVMServiceAssetsArchiveCallback); 1487 GetVMServiceAssetsArchiveCallback);
1483 if (error != NULL) { 1488 if (error != NULL) {
1484 if (do_vm_shutdown) { 1489 if (do_vm_shutdown) {
1485 EventHandler::Stop(); 1490 EventHandler::Stop();
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
1531 Platform::Exit(Process::GlobalExitCode()); 1536 Platform::Exit(Process::GlobalExitCode());
1532 } 1537 }
1533 1538
1534 } // namespace bin 1539 } // namespace bin
1535 } // namespace dart 1540 } // namespace dart
1536 1541
1537 int main(int argc, char** argv) { 1542 int main(int argc, char** argv) {
1538 dart::bin::main(argc, argv); 1543 dart::bin::main(argc, argv);
1539 UNREACHABLE(); 1544 UNREACHABLE();
1540 } 1545 }
OLDNEW
« no previous file with comments | « runtime/bin/gen_snapshot.cc ('k') | runtime/bin/run_vm_tests.cc » ('j') | runtime/vm/heap.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698