summaryrefslogtreecommitdiff
path: root/compiler/driver/compiler_options.h
AgeCommit message (Collapse)Author
2021-04-30Enable mini-debug-info by default.David Srbecky
All paths explicitly enable or disable the command line option. However, if we missed some or developers use stand-alone tools, default to working backtraces, which is the common intention. Change-Id: I1d308f2be881522ecfb945d5f679065e726d32aa
2021-03-18Remove DexToDexCompilerDavid Srbecky
Since quickening is deprecated, it is no longer used. This CL only removes compile-time dead code. Bug: 170086509 Test: test-art-host-gtest Test: test.py -r -b --host Change-Id: I46c02fb7a9304f8361cecfafb9507c906a93592f
2021-02-09[metrics] Report some ART metadataEric Holk
Adds reporting for some metadata associated with ART metrics, including timestamp relative to ART startup, the session id, and the process's user id. It additionally outputs placeholders for the compilation reason and compiler filter, but these need some additional plumbing from the Runtime and OatFileManager to fill in, so those will come in a followup CL. This CL also includes a fair amount of refactoring around metrics reporting and handling the session data. Example output: *** ART internal metrics *** Metadata: timestamp_since_start_ms: 768 session_id: 5026277321588503825 uid: 123456 compilation_reason: Unknown compiler_filter: (unspecified) Metrics: ClassVerificationTotalTime: count = 4167 JitMethodCompileTime: range = 0...1000000, buckets: 7,0,0,0,0,0 *** Done dumping ART internal metrics *** Test: ./test/run-test --host --jit 2232-write-metrics-to-log Change-Id: Ic74b503b135d71099d9e26bf660b60e4cc3a46bc
2020-12-10Make RTP::Visit robust against input orderAlex Light
ReferenceTypePropogation::Visit(ArrayRef) relied on the input having a particular order with known values at the front then topological. This could cause issues if the list was not properly sorted, causing the RTP to silently fail. This makes RTP robust against the ordering of inputs for this function. Test: ./test.py --host Bug: 67037140 Change-Id: I03c522ea745f271ce438c82f7c6f3ab476c8249a
2020-05-20Add compiler type to CompilerOptions.Vladimir Marko
Let CompilerOptions hold the information whether it is AOT or JIT compilation, or Zygote JIT for shared code. Test: m test-art-host-gtest Test: testrunner.py --host --optimizing --jit Test: aosp_taimen-userdebug boots. Change-Id: Id9200572406f8e43d99b8b61ef0e3edf43b52fff
2020-04-01Add explicit compiler option to enable test-specific features.David Srbecky
We can no longer rely on checking the "core.art" image name, since we plan to remove it and use the shipped boot image. This option enables test-specific features, such as $noinline$. Test: ./art/test.py -r --optimizing --64 Bug: 147817558 Change-Id: Iadac6e1b0f46e83efd0551fb8462a6b268ad33d8
2020-03-27Revert^4 "Add "linkage" test options""David Sehr
This reverts commit 16c08ca97486f535698f1a1b17f0332bfe78e95a. Reason for revert: Disabled on device testing Change-Id: I8d5442e0ebb6383ebfbce98f1857b5e844e0d5e1 Bug: none Test: make test-art-host-gtest-dex2oat_test
2020-03-27Revert "Revert "Revert "Add "linkage" test options"""Nicolas Geoffray
This reverts commit 80c0c50de048da458c707adde5b0499d75f8253a. Reason for revert: Test fails on device: https://ci.chromium.org/p/art/builders/ci/angler-armv8-ndebug/1306? Change-Id: I19e9b9e24023b2d7b6b86114c7a9e4018f65b2b8
2020-03-26Revert "Revert "Add "linkage" test options""David Sehr
This reverts commit 91a8e6f60c508c6e010b6ef8e4056e3a6f04c447. Reason for revert: Moved tests to gtest and under compilation only. Change-Id: I60899694946353bfcd334473c20bb17c84f095e0 Bug: none Test: make test-art-host-gtest-dex2oat_test
2020-03-23Revert "Add "linkage" test options"Nicolas Geoffray
This reverts commit 873bb64b8815b3f6a350ce109eb54ec770369d22. Reason for revert: Test in CL fails on device, see: https://ci.chromium.org/p/art/builders/ci/angler-armv7-ndebug/1302? Change-Id: I18d8204f40bbc0f89eb230656e14966035b0b1c3
2020-03-20Add "linkage" test optionsDavid Sehr
Add options to control "linkage" model. This involves checking for redefinitions and subclassing classloaders. Bug: none Test: 1964-redefinition Change-Id: I0cb3c725b7d62f7c6c0958dc6d5f9b55d6258fd5
2020-02-28Revert "Revert "If generating an image, run initialization and other ↵Nicolas Geoffray
optimizations."" This reverts commit bbec8a6fc720ee5ce572d3fb63617fb0af6addc7. Reason for revert: Fix vdex compilation with app images. Test: 628-vdex Bug: 150193586 Change-Id: Ic4d0445f277caf9405c18938c1f39ee08b9bf2fd
2020-02-26Revert "If generating an image, run initialization and other optimizations."Eric Holk
This reverts commit ada8536c19e57cbfe55dcb3c72aa95e79365ed21. Reason for revert: test failures Change-Id: I8640fe842d7f2255b5749403c798094f9e365fda
2020-02-25If generating an image, run initialization and other optimizations.Nicolas Geoffray
The biggest reason for this CL is to ensure a boot image and a boot image extension always have their conflict tables filled. Test: test.py Bug: 149894949 Change-Id: I7bada1b3697322ce78b4f352dec854651c0e995c
2020-02-20Do not verify dex files for --compiler-filter=assume-verified.Vladimir Marko
Reduces the compilation time for the boot image extension with said filter by over 0.5s (comparing the best observed timing "before" to the worst observed timing "after"). Test: aosp_taimen-userdebug boots; adb root && \ adb shell stop && \ adb shell setprop dalvik.vm.boot-image \ 'boot.art:/nonx/boot-framework.art!/system/etc/boot-image.prof' && \ adb shell 'setprop dalvik.vm.extra-opts \ "-Ximage-compiler-option --compiler-filter=assume-verified"' && \ adb shell start # Starts correctly # Check dex2oat timing in logcat Bug: 119800099 Change-Id: I3fc82c9485385ff5e0ccc5031e1141a685ee6c19
2020-02-07Fix ART code around JIT zygote.Nicolas Geoffray
- The right image location for it now ends with a profile - Add profile locations to image spaces, so the JIT knows what to compile - Remove now deprecated ApexImage related code. Bug:119800099 Test: boots, methods from framework gets compiled by zygote Change-Id: Ie31b62d0a25f1b50e266c1537c43307d7b29e138
2020-01-28Fix name-based detection of JIT-zygote boot image extension.Ulya Trafimovich
ART detects JIT-zygote boot image by the image name. This has been broken since boot image extension has been enabled for JIT-zygote config in CL I5493e575ebf90bad1d5ad2850004d54590bbc079. This CL replaces 'kApexBootImage' with 'kApexBootImageExtension', since the JIT-zygote image is always used with extension. Test: compare boot-framework.art and apex-framework.art, they were identical before this CL, and differ after this CL. Test: JIT-zygote config boots, steps 1-2: 1. Temporarily enable Jit zygote in the product device config (in this case device/google/muskie/aosp_walleye.mk): +# System server should not contain compiled code. +PRODUCT_SYSTEM_SERVER_COMPILER_FILTER := verify + +# Use the apex image for preopting. +DEXPREOPT_USE_APEX_IMAGE := true + +# Have the runtime pick up the apex image. +PRODUCT_PROPERTY_OVERRIDES += \ + dalvik.vm.boot-image=/apex/com.android.art/javalib/apex.art:/system/framework/apex-framework.art 2. Build and flash: $ lunch aosp_walleye-userdebug && m \ && adb reboot bootloader && fastboot flashall -w Change-Id: Ifd3d3c13107c2e4514eed7c4e2b1bbc5a5a12245
2019-07-30Compiler changes for boot image extension.Vladimir Marko
Test: m test-art-host-gtest Test: testrunnner.py --host --optimizing Test: aosp_taimen-userdebug boots. Test: run-gtest.sh Test: testrunner.py --target --optimizing Change-Id: I8e999c96ec908f26d8c529edc9d2a3be49a9379a
2019-07-17Add option for controling app image class initializationMathieu Chartier
The new option is --initialize-app-image-classes. This attempts to initialize app image classes by running the class initializers ahead of time. Will test this through test 660, but there are currently aborts when it's enabled. Test: test-art-host Bug: 70735003 Change-Id: Icc05683b23098a15531097f67aad17144f0badaf
2019-07-03Remove small and tiny method optionsMathieu Chartier
These are unused and nops. Test: test-art-host-gtest Change-Id: I6421387d53ec8692cf420be71ec47e1ef5e61f19
2019-04-30Make compiling an apex image explicit.Nicolas Geoffray
And when compiling an apex image, discard dex files not present in an apex. Test: m Bug: 119800099 Change-Id: Ie91c5b8d271783f04e4c1501f315a3ec59137475
2019-03-05Refactor compiler tests around CompilerDriver.Vladimir Marko
Introduce CommonCompilerDriverTest and inherit that in tests that need to use CompilerDriver. This is in preparation for moving the CompilerDriver to dex2oat/. Test: m test-art-host-gtest Change-Id: I46cf0bc1df4327569eef5526eeab0781473173a1
2019-02-20ART: Reduce dependencies on CompilerDriver.Vladimir Marko
Preparation for moving CompilerDriver and other stuff from libart-compiler.so to dex2oat. Test: m test-art-host-gtest Test: testrunner.py --host --optimizing Change-Id: Ic221ebca4b8c79dd1549316921ace655f2e3f0fe
2019-02-06Replace StringPiece with std::string_view in HashSet.Vladimir Marko
Update HashSet comment and related code. Also remove dead CompilerOptions declarations with StringPiece parameters. Test: m test-art-host-gtest Test: testrunner.py --host --optimizing Bug: 123750182 Change-Id: I4a39d0e8e0392a414129369c5b304ec4813e9ed5
2018-12-06Refactor CompilerDriver::CompileAll().Vladimir Marko
Treat verification results and image classes as mutable only in CompilerDriver::PreCompile(), and treat them as immutable during compilation, accessed through the CompilerOptions. This severs the dependency of the inliner on the CompilerDriver. Test: m test-art-host-gtest Test: testrunner.py --host --optimizing Change-Id: I594a0213ca6a5003c19b4bd488af98db4358d51d
2018-12-03ART: ARM64: Pass ISA features to VIXL macroassembler.Artem Serov
VIXL macroassembler should be initialized properly to support Armv8.X features in order to emit corresponding instructions. Test: codegen_test.cc, relative_patcher_arm64_test. Test: test-art-host, test-art-target. Change-Id: I2f9e155c28b4d2252a3cfb19717f5d25824d5e11
2018-11-29Add image compressed blocksMathieu Chartier
Add support for splitting the image into a set of solid blocks. Added dex2oat option --max-image-block-size and correspodning image unit test. Motivation: Enable parallel image decompression in the future. Bug: 116052292 Test: test-art-host Change-Id: I37c6c6a43ef94c4a62bf38a0cf51f26ce06347ac
2018-11-21Merge "ART: Add profile-compile-check support"Andreas Gampe
2018-11-15Rewrite image type in CompilerOptions.Vladimir Marko
Prepare for introduction of boot image extension. Test: m test-art-host-gtest Test: testrunner.py --host --optimizing Test: Pixel 2 XL boots. Change-Id: Id007c4aeb4ada84fe65c1148fdf67e8a412e5b74
2018-11-14ART: Rewrite core image detection.Vladimir Marko
Remove unused compiler option `core_image_` and cache the IsCompilingWithCoreImage in the CompilerOptions instead. Test: m test-art-host-gtest Test: testrunner.py --host --optimizing Change-Id: Idcf3b6c96dab9a39f823a16778e7698589442cd8
2018-11-08Move profile compilation info to CompilerOptions.Vladimir Marko
Remove one HInliner dependency on the CompilerDriver. Test: m test-art-host-gtest Test: testrunner.py --host --optimizing Change-Id: If6f0ab864095641b5697c8c6f5100520f91d5e53
2018-10-16ART: Add profile-compile-check supportAndreas Gampe
Add --check-profiled-methods, which verifies that all methods mentioned in a profile for a guided compilation are actually compiled instead of being punted. As outcome it may log or abort dex2oat. TODO: Extend dex2oat_test Bug: 76145463 Test: mmma art Test: m test-art-host Change-Id: I956113b55796d0666db9dbfd387105a7d27b0868
2018-10-16Add logic to eagerly resolve const-string for startup methodsMathieu Chartier
Added dex2oat option --resolve-startup-const-strings=<true|false> If true, this option causes the compiler driver to resolve all const-strings that are referenced from methods marked as "startup" in the profile. Bug: 116059983 Test: test-art-host Change-Id: I61cf9e945c125671fc4ab4b50458a911318a837f
2018-10-10Introduce a 'baseline' variant for the compiler.Nicolas Geoffray
Implemented as a stripped down version of the optimizing compiler, not running any optimization. Adjust code to still work with expectations in code generators. bug: 111397239 Test: test.py --baseline Change-Id: I4328283825f9a890616e7496ed4c1e77d6bcc5dd
2018-08-28Use 'final' and 'override' specifiers directly in ART.Roland Levillain
Remove all uses of macros 'FINAL' and 'OVERRIDE' and replace them with 'final' and 'override' specifiers. Remove all definitions of these macros as well, which were located in these files: - libartbase/base/macros.h - test/913-heaps/heaps.cc - test/ti-agent/ti_macros.h ART is now using C++14; the 'final' and 'override' specifiers have been introduced in C++11. Test: mmma art Change-Id: I256c7758155a71a2940ef2574925a44076feeebf
2018-06-25Move instruction_set_ to CompilerOptions.Vladimir Marko
Removes CompilerDriver dependency from ImageWriter and several other classes. Test: m test-art-host-gtest Test: testrunner.py --host --optimizing Test: Pixel 2 XL boots. Test: m test-art-target-gtest Test: testrunner.py --target --optimizing Change-Id: I3c5b8ff73732128b9c4fad9405231a216ea72465
2018-06-25Move dex_files_for_oat_file_ to CompilerOptions.Vladimir Marko
A step toward removing the CompilerDriver dependency from several classes, including HSharpening and ImageWriter. Test: m test-art-host-gtest Test: testrunner.py --host --optimizing Change-Id: I364ef66511fdf855cb11b12c818a40572b037727
2018-06-25Move image_classes_ to CompilerOptions.Vladimir Marko
Test: m test-art-host-gtest Test: testrunner.py --host --optimizing Change-Id: Ifb30e071d7b39ae939fc3f83d7eba82fd077c7e8
2018-05-08ART: Add --dump-pass-timings compiler option.Vladimir Marko
This replaces the old --dump-passes option removed in https://android-review.googlesource.com/549200 . Using --dump-timing for timing optimization passes makes the high level timings useless, so return to using two different options for these. Test: Manually run dex2oat with --dump-timings, --dump-pass-timings and both. Change-Id: Iddc4cfee35652fb493656e7d6081a898c2894f72
2018-04-26Clean up include pathsDavid Sehr
Remove runtime/globals.h and make clients point to the right globals.h (libartbase/base/globals.h). Also make within-libartbase includes relative rather than using base/, etc. Bug: 22322814 Test: make -j 40 checkbuild Change-Id: I99de63fc851d48946ab401e2369de944419041c7
2018-03-05Move most of runtime/base to libartbase/baseDavid Sehr
Enforce the layering that code in runtime/base should not depend on runtime by separating it into libartbase. Some of the code in runtime/base depends on the Runtime class, so it cannot be moved yet. Also, some of the tests depend on CommonRuntimeTest, which itself needs to be factored (in a subsequent CL). Bug: 22322814 Test: make -j 50 checkbuild make -j 50 test-art-host Change-Id: I8b096c1e2542f829eb456b4b057c71421b77d7e2
2018-01-29Add compiler option for counting hotness in compiled code.Nicolas Geoffray
For eventually easier profiling of boot classpath and system server. bug: 30934496 Test: 674-hotness-compiled Change-Id: I0f63c644527b74f6ef2649f481c2a1c731bb9f21
2017-11-28Clean some dex2oat options.Nicolas Geoffray
Remove dump-passes inherited from Quick days, and move dump-timings and dump-stats to CompilerStats. Test: test.py Change-Id: Ie79be858a141e59dc0b2a87d8cb5a5248a5bc7af
2017-11-08cpplint: Cleanup errorsIgor Murashkin
Cleanup errors from upstream cpplint in preparation for moving art's cpplint fork to upstream tip-of-tree cpplint. Test: cd art && mm Bug: 68951293 Change-Id: I15faed4594cbcb8399850f8bdee39d42c0c5b956
2017-11-07ART: Add compiler option for code deduplicationAndreas Gampe
Add --deduplicate-code and --no-deduplicate-code to ease in experiments with deduplication, e.g., profiling. Add dex2oat test. Test: m test-art-host Change-Id: Ib6c7fe082f43c5f76c8463cc563e2503c9a50480
2017-10-19ART: Add abort-on-soft-verifier-errorAndreas Gampe
Add an option to abort compilation if any class fails compile-time verification. Bug: 65318848 Bug: 67358823 Test: m test-art-host-gtest-dex2oat_test Change-Id: I5d2a7cd1d2ed048ab39d6f787ecc9eb2f41d3d77
2017-10-06ART: Use CmdlineParser in dex2oatAndreas Gampe
Refactor dex2oat and the compiler to use the cmdline parser. In an effort to standardize command-line parsing and make it easier to add new properties in a principled manner. Test: m test-art-host Change-Id: Ia077a56234dbf579d7ca3430fef325b57aa06333
2017-08-17Disable app image for very large appsMathieu Chartier
App images prevent dex2oat unloading and should not be used in this mode. Disable app image generation when very large app mode is detected. Bug: 63467744 Test: test-art-host-gtest-dex2oat_test (cherry picked from commit df8a96a1cde9dafbb1811358be1fbba6d3aec267) Change-Id: Icd5b0d9d3e61ececffe60f7472aaee8a54d1847b
2017-08-10Instrument ARM64 generated code to check the Marking Register.Roland Levillain
Generate run-time code in the Optimizing compiler checking that the Marking Register's value matches `self.tls32_.is.gc_marking` in debug mode (on target; and on host with JIT, or with AOT when compiling the core image). If a check fails, abort. Test: m test-art-target Test: m test-art-target with tree built with ART_USE_READ_BARRIER=false Test: ARM64 device boot test with libartd. Bug: 37707231 Change-Id: Ie9b322b22b3d26654a06821e1db71dbda3c43061
2017-06-29Code cleanup around compiler options and JIT.Nicolas Geoffray
Now support passing --verbose-methods and --dump-cfg. Test: test.py Test: ./out/host/linux-x86/bin/art -Xcompiler-option --dump-cfg=foo.cfg -Xcompiler-option --verbose-methods=run -Xcompiler-option --compiler-filter=quicken -Xusejit:true -cp benchmarks.dex benchmarks.DeltaBlue.java.DeltaBlue Change-Id: I75ffed146ffff43ef70f3e9e80a160751e08cb04