OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, 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 library compiler_configuration; | 5 library compiler_configuration; |
6 | 6 |
7 import 'dart:io' show Platform; | 7 import 'dart:io' show Platform; |
8 | 8 |
9 import 'runtime_configuration.dart' show RuntimeConfiguration; | 9 import 'runtime_configuration.dart' show RuntimeConfiguration; |
10 | 10 |
(...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
335 } | 335 } |
336 | 336 |
337 CompilationCommand computeCompilationCommand( | 337 CompilationCommand computeCompilationCommand( |
338 String tempDir, | 338 String tempDir, |
339 String buildDir, | 339 String buildDir, |
340 CommandBuilder commandBuilder, | 340 CommandBuilder commandBuilder, |
341 List arguments, | 341 List arguments, |
342 Map<String, String> environmentOverrides) { | 342 Map<String, String> environmentOverrides) { |
343 var exec = "$buildDir/dart_bootstrap"; | 343 var exec = "$buildDir/dart_bootstrap"; |
344 var args = new List(); | 344 var args = new List(); |
345 args.add("--gen-precompiled-snapshot=$tempDir"); | 345 args.add("--snapshot=$tempDir"); |
| 346 args.add("--snapshot-kind=app-aot"); |
346 if (useBlobs) { | 347 if (useBlobs) { |
347 args.add("--use_blobs"); | 348 args.add("--use-blobs"); |
348 } | 349 } |
349 if (isAndroid && arch == 'arm') { | 350 if (isAndroid && arch == 'arm') { |
350 args.add('--no-sim-use-hardfp'); | 351 args.add('--no-sim-use-hardfp'); |
351 } | 352 } |
352 args.addAll(arguments); | 353 args.addAll(arguments); |
353 | 354 |
354 return commandBuilder.getCompilationCommand('precompiler', tempDir, !useSdk, | 355 return commandBuilder.getCompilationCommand('precompiler', tempDir, !useSdk, |
355 bootstrapDependencies(buildDir), exec, args, environmentOverrides); | 356 bootstrapDependencies(buildDir), exec, args, environmentOverrides); |
356 } | 357 } |
357 | 358 |
(...skipping 10 matching lines...) Expand all Loading... |
368 shared = '-shared'; | 369 shared = '-shared'; |
369 libname = 'libprecompiled.so'; | 370 libname = 'libprecompiled.so'; |
370 } else if (Platform.isMacOS) { | 371 } else if (Platform.isMacOS) { |
371 cc = 'clang'; | 372 cc = 'clang'; |
372 shared = '-dynamiclib'; | 373 shared = '-dynamiclib'; |
373 libname = 'libprecompiled.dylib'; | 374 libname = 'libprecompiled.dylib'; |
374 } else { | 375 } else { |
375 throw "Platform not supported: ${Platform.operatingSystem}"; | 376 throw "Platform not supported: ${Platform.operatingSystem}"; |
376 } | 377 } |
377 if (isAndroid) { | 378 if (isAndroid) { |
378 // TODO: If we're not using "--use_blobs" we need to use the arm cross | 379 // TODO: If we're not using "--use-blobs" we need to use the arm cross |
379 // compiler instead of just 'gcc' for . | 380 // compiler instead of just 'gcc' for . |
380 } | 381 } |
381 | 382 |
382 var cc_flags; | 383 var cc_flags; |
383 if (arch == 'x64') { | 384 if (arch == 'x64') { |
384 cc_flags = "-m64"; | 385 cc_flags = "-m64"; |
385 } else if (arch == 'simarm64') { | 386 } else if (arch == 'simarm64') { |
386 cc_flags = "-m64"; | 387 cc_flags = "-m64"; |
387 } else if (arch == 'ia32') { | 388 } else if (arch == 'ia32') { |
388 cc_flags = "-m32"; | 389 cc_flags = "-m32"; |
389 } else if (arch == 'simarm') { | 390 } else if (arch == 'simarm') { |
390 cc_flags = "-m32"; | 391 cc_flags = "-m32"; |
391 } else if (arch == 'simmips') { | 392 } else if (arch == 'simmips') { |
392 cc_flags = "-m32"; | 393 cc_flags = "-m32"; |
393 } else if (arch == 'arm') { | 394 } else if (arch == 'arm') { |
394 cc_flags = null; | 395 cc_flags = null; |
395 } else if (arch == 'mips') { | 396 } else if (arch == 'mips') { |
396 cc_flags = "-EL"; | 397 cc_flags = "-EL"; |
397 } else { | 398 } else { |
398 throw "Architecture not supported: $arch"; | 399 throw "Architecture not supported: $arch"; |
399 } | 400 } |
400 | 401 |
401 var exec = cc; | 402 var exec = cc; |
402 var args = (cc_flags != null) ? [ shared, cc_flags ] : [ shared ]; | 403 var args = (cc_flags != null) ? [ shared, cc_flags ] : [ shared ]; |
403 args.addAll([ | 404 args.addAll([ |
404 '-o', | 405 '-o', |
405 '$tempDir/$libname', | 406 '$tempDir/$libname', |
406 '$tempDir/precompiled.S' | 407 '$tempDir/snapshot.S' |
407 ]); | 408 ]); |
408 | 409 |
409 return commandBuilder.getCompilationCommand('assemble', tempDir, !useSdk, | 410 return commandBuilder.getCompilationCommand('assemble', tempDir, !useSdk, |
410 bootstrapDependencies(buildDir), exec, args, environmentOverrides); | 411 bootstrapDependencies(buildDir), exec, args, environmentOverrides); |
411 } | 412 } |
412 | 413 |
413 // This step reduces the amount of space needed to run the precompilation | 414 // This step reduces the amount of space needed to run the precompilation |
414 // tests by 60%. | 415 // tests by 60%. |
415 CompilationCommand computeRemoveAssemblyCommand( | 416 CompilationCommand computeRemoveAssemblyCommand( |
416 String tempDir, | 417 String tempDir, |
417 String buildDir, | 418 String buildDir, |
418 CommandBuilder commandBuilder, | 419 CommandBuilder commandBuilder, |
419 List arguments, | 420 List arguments, |
420 Map<String, String> environmentOverrides) { | 421 Map<String, String> environmentOverrides) { |
421 var exec = 'rm'; | 422 var exec = 'rm'; |
422 var args = ['$tempDir/precompiled.S']; | 423 var args = ['$tempDir/snapshot.S']; |
423 | 424 |
424 return commandBuilder.getCompilationCommand( | 425 return commandBuilder.getCompilationCommand( |
425 'remove_assembly', | 426 'remove_assembly', |
426 tempDir, | 427 tempDir, |
427 !useSdk, | 428 !useSdk, |
428 bootstrapDependencies(buildDir), | 429 bootstrapDependencies(buildDir), |
429 exec, | 430 exec, |
430 args, | 431 args, |
431 environmentOverrides); | 432 environmentOverrides); |
432 } | 433 } |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
483 if (isChecked) multiplier *= 2; | 484 if (isChecked) multiplier *= 2; |
484 return multiplier; | 485 return multiplier; |
485 } | 486 } |
486 | 487 |
487 CommandArtifact computeCompilationArtifact( | 488 CommandArtifact computeCompilationArtifact( |
488 String buildDir, | 489 String buildDir, |
489 String tempDir, | 490 String tempDir, |
490 CommandBuilder commandBuilder, | 491 CommandBuilder commandBuilder, |
491 List arguments, | 492 List arguments, |
492 Map<String, String> environmentOverrides) { | 493 Map<String, String> environmentOverrides) { |
493 String outputName = computeOutputName(tempDir); | |
494 return new CommandArtifact(<Command>[ | 494 return new CommandArtifact(<Command>[ |
495 this.computeCompilationCommand(outputName, buildDir, | 495 this.computeCompilationCommand(tempDir, buildDir, |
496 CommandBuilder.instance, arguments, environmentOverrides) | 496 CommandBuilder.instance, arguments, environmentOverrides) |
497 ], outputName, 'application/dart-snapshot'); | 497 ], tempDir, 'application/dart-snapshot'); |
498 } | |
499 | |
500 String computeOutputName(String tempDir) { | |
501 var randName = TestUtils.getRandomNumber().toString(); | |
502 return '$tempDir/test.$randName'; | |
503 } | 498 } |
504 | 499 |
505 CompilationCommand computeCompilationCommand( | 500 CompilationCommand computeCompilationCommand( |
506 String outputName, | 501 String tempDir, |
507 String buildDir, | 502 String buildDir, |
508 CommandBuilder commandBuilder, | 503 CommandBuilder commandBuilder, |
509 List arguments, | 504 List arguments, |
510 Map<String, String> environmentOverrides) { | 505 Map<String, String> environmentOverrides) { |
511 var exec = "$buildDir/dart_bootstrap"; | 506 var exec = "$buildDir/dart_bootstrap"; |
512 var args = new List(); | 507 var args = new List(); |
513 args.add("--full-snapshot-after-run=$outputName"); | 508 args.add("--snapshot=$tempDir"); |
| 509 args.add("--snapshot-kind=app-after-run"); |
514 args.addAll(arguments); | 510 args.addAll(arguments); |
515 | 511 |
516 return commandBuilder.getCompilationCommand( | 512 return commandBuilder.getCompilationCommand( |
517 'dart2snapshot', | 513 'dart2snapshot', |
518 outputName, | 514 tempDir, |
519 !useSdk, | 515 !useSdk, |
520 bootstrapDependencies(buildDir), | 516 bootstrapDependencies(buildDir), |
521 exec, | 517 exec, |
522 args, | 518 args, |
523 environmentOverrides); | 519 environmentOverrides); |
524 } | 520 } |
525 | 521 |
526 List<String> computeCompilerArguments( | 522 List<String> computeCompilerArguments( |
527 vmOptions, sharedOptions, originalArguments) { | 523 vmOptions, sharedOptions, originalArguments) { |
528 List<String> args = []; | 524 List<String> args = []; |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
609 RuntimeConfiguration runtimeConfiguration, | 605 RuntimeConfiguration runtimeConfiguration, |
610 String buildDir, | 606 String buildDir, |
611 TestInformation info, | 607 TestInformation info, |
612 List<String> vmOptions, | 608 List<String> vmOptions, |
613 List<String> sharedOptions, | 609 List<String> sharedOptions, |
614 List<String> originalArguments, | 610 List<String> originalArguments, |
615 CommandArtifact artifact) { | 611 CommandArtifact artifact) { |
616 return <String>[]; | 612 return <String>[]; |
617 } | 613 } |
618 } | 614 } |
OLD | NEW |