| Age | Commit message (Collapse) | Author |
|
The previous place `TryInlineAndReplace` did not cover all cases we try
inlining. Because we always want to intrinsify, move the code to
`TryBuildAndInline`, which is always called.
Test: test.py
Test: 638-checker-inline-cache-intrinsic
Change-Id: Id74b664f6139c00224473af6c72cb6fd858aec4c
|
|
Because instruction/register usage was compared with >=, the limits
were actually one lower than the constants. This prevented trivial
getters/setters from being inlined because they were 3 SSA
instructions.
Test: build + boot + presubmit
Bug: 185143864
Change-Id: Ie27c9163efe79bb7392c881c0165ab1164323a2c
|
|
To reduce the number of DSO's. libdexfile_external only adds a few
small functions on top of libdexfile, and it's still only those
functions that are available in the APEX stubs.
Also rename libdexfile_external_static to libdexfile_static, for
consistency.
Since libdexfile now has stubs, we need to add test_for properties to
avoid linking against the stubs in tests.
This relands https://r.android.com/1666119 that got submitted out of
order from https://r.android.com/1664026 - prerequisite changes now
submitted with https://r.android.com/1671709.
Test: Flash and boot with userdebug and eng to try both release and
debug modules.
Test: art/tools/buildbot-build.sh {--target,--host}
Test: art/build/apex/runtests.sh
Test: mmm art
Bug: 143978909
Change-Id: I6de99052d6d8a9d01d748baabbbcecfe1f4509dc
|
|
Test: 823-cha-inlining
Bug: 182538502
Change-Id: Ie3e0014804216802af0addf13751a8f89adbfdfa
|
|
Revert "Rename libdexfile_external_static to libdexfile_static (..."
Revert "Rename libdexfile_external_static to libdexfile_static (..."
Revert submission 1666119-libdexfile-noext-2
Reason for revert: broken build 7270939 on aosp-master on full-eng
Reverted Changes:
I582e49ae7:Merge libdexfile_external into libdexfile (reland)...
Iaa6a90f41:Rename libdexfile_external_static to libdexfile_st...
I4315189b2:libdexfile_external is replaced by libdexfile (rel...
Ia065119c2:Rename libdexfile_external_static to libdexfile_st...
Bug: 184929782
Change-Id: Ie69a73f4f0f745ab988e627c568f4ccb83fd1c71
Test: forrest build for aosp-master on full-eng
|
|
To reduce the number of DSO's. libdexfile_external only adds a few
small functions on top of libdexfile, and it's still only those
functions that are available in the APEX stubs.
Also rename libdexfile_external_static to libdexfile_static, for
consistency.
Since libdexfile now has stubs, we need to add test_for properties to
avoid linking against the stubs in tests.
This relands https://r.android.com/1643424 with leaving out
dex_file_ext.cc on Windows (cf. build issue b/184239856): mapped_file.h
brings in windows.h in Windows builds, which has several defines that
are incompatible with dex internals (e.g. CONST).
Test: Flash and boot with userdebug and eng to try both release and
debug modules.
Test: art/tools/buildbot-build.sh {--target,--host}
Test: art/build/apex/runtests.sh
Test: mmm art
Test: m TARGET_PRODUCT=full TARGET_BUILD_VARIANT=eng checkbuild
Bug: 143978909
Change-Id: I582e49ae797744837849db056cef2fbeacc0681e
|
|
We would incorrectly not propagate or calculate partial read values
sometimes in the presence of loops. This fixes that issue by correctly
interpreting merged-unknowns as being phis when before escapes and
propagating uses of removed reads when needed.
Test: ./test.py --host
Test: ./art/tools/compile-jar.py --dex2oat `which dex2oatd64` --profile-line 'HSLcom/android/textclassifier/common/statsd/GenerateLinksLogger;->logGenerateLinks(Ljava/lang/CharSequence;Landroid/view/textclassifier/TextLinks;Ljava/lang/String;JLcom/google/common/base/Optional;Lcom/google/common/base/Optional;)V' --arch arm64 ~/GoogleExtServices.apk -j1 --runtime-arg -verbose:compiler --dump-stats
Bug: 183554067
Change-Id: I7f6e99934237174922ef2da2b77092e74cfb6a77
|
|
Due to an oversight the default-value of a PredicatedGet did not
support being a Default value. This fixes that oversight.
Test: ./art/tools/compile-jar.py --profile-line 'HSLe/k/a/g/i;->i(Le/k/a/g/d;Ljava/io/OutputStream;)V' --arch arm64 ~/no.nrk.mobil.radio_10922_base_split.apk --compiler-filter=speed-profile --dump-stats -j1 --force-allow-oj-inlines
Test: LoadStoreEliminationTest.PredicatedLoadDefaultValue
Bug: 183898383
Change-Id: I11bccddb0b5a5c2e958690864ff2d4449a9f2fad
|
|
This tracks how many methods have been compiled by the JIT.
Bug: 170149255
Test: manual
Change-Id: Id7943818318dae26afdac7f9903cd32b7e2c4e89
|
|
In cases where all targets of a HPredicatedInstanceFieldGet
instruction are known to not be null the simplifier would attempt to
replace the default value with a null instruction. This would cause a
null-pointer dereference. Correct the simplifier to handle this case
correctly.
Moved some LSE test helper functions to CommonCompilerTestHelper to
avoid duplicating code.
Fixed an incorrect (though until now unused) constructor for
HPredicatatedInstanceFieldGet (the default value and target we
swapped).
Test: ./test.py --host
Test: ./art/tools/compile_jars.py --profile-file bad-compile.txt ~/imgur.apk
Bug: 183942773
Change-Id: I66f4ce37d768d5e457047a3f80bd4cb9aa4546a3
|
|
Remove the deprecated unofficial (not part of the spec) bytecodes.
This frees the 16 bytecodes for future use.
Bug: 170086509
Test: m test-art-host-gtest
Test: test.py -r -b --host
Change-Id: I9f6d8a2c21b88f883c8fdc1eb67b24620f313d56
|
|
We were incorrectly asserting that all inline-cache entries referring
to valid classes are resolvable. This is only true as long as the
profiles stay perfectly in sync with the framework code, which is not
likely to always be the case since we update profiles rather
infrequently. This simply loosens the dcheck to return null on
unresolvable methods when run in AOT mode.
Test: m droid
Bug: 168941430
Bug: 183514504
Change-Id: Id863b65ccead1a40643c4538df4f5215a18e39ad
|
|
Test: test.py
Bug: 170086509
Change-Id: I1e1a4abf71245c0fd37f951c9af85f62feba18ca
|
|
Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Test: run-gtests.sh
Test: testrunner.py --target --optimizing
Bug: 172332525
Change-Id: I6a91d86fd31ff33882b41646aae9fcccc157d638
|
|
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
|
|
Use a simple wrapper to allocate the LSEVisitor on the arena
stack. This allows adding additional members to the class
without running into stack frame size errors with clang.
Make the pre-allocated buffer for `store_records_` a member
of LSEVisitor as originally intended.
Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Bug: 181943478
Change-Id: I88b8ca5f9c765cc26e884e9f29cb2c870c799e13
|
|
Avoid a managed heap allocation.
Test: m test-art-host-gtest
Test: testrunner.py --host
Bug: 181943478
Change-Id: I7ce65c93ad2f59490dbfa2aaccba98b6ca1fd585
|
|
Remove the `ProfileCompilationInfo::GetHotMethodInfo()` API
and provide another API to tie profile indexes to dex files
for inline caches that avoids unnecessary heap allocations.
And look up only dex caches for the referenced dex files
when getting AOT inline caches in HInliner.
Test: m test-art-host-gtest
Test: testrunner.py --host --optimzing
Test: boots.
Bug: 181943478
Change-Id: I124ac4870b0f483c1f0422c841c4ff69fc95b7e0
|
|
Changing to invoke-virtual will cause Artmethod to be null exception
since default conflict method is not in any vtable
Bug:182496372
Signed-off-by: v-qianliguo <v-qianliguo@xiaomi.com>
Change-Id: I61f08bb13fce1270ac48cd3cc0c6f3d216e04990
|
|
Add more HashSet<> constuctors with the allocator argument.
Inherit HashSet<> constructors in HashMap<>.
Use a pre-allocated buffer with size 16 to avoid allocating
a large one (kMinBuckets = 1000) on first use. With the
default max load factor 0.7, this pre-allocated buffer is
sufficient for all methods with up to 11 stores.
Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Bug: 181943478
Change-Id: I7862b98ec9ec3ddb34693fd956fea75138d35e02
|
|
This saves 0.5% of oat file size.
(0.8% saving from this CL minus 0.3% due to go/aog/1614482)
Bug: 123510633
Test: m dump-oat
Test: m test-art-host-gtest
Test: ./art/test.py -b -r --host
Change-Id: I035b54a47b300a5808aa8c2992f87eae009fd245
|
|
Test: m
Bug: 172332525
Change-Id: I6515f326d331e9de3e4c12b48c680dad4272fd60
|
|
Do not load `is_gc_marking` from the `Thread` when it is
already available in r8 on arm and x20 on arm64.
Golem results for art-opt-cc on Odroid-C2 (higher is better):
linux-armv7 before after
NativeDowncallStaticNormal 5.4429 5.5021 (+1.088%)
NativeDowncallStaticNormal6 5.1163 5.1498 (+0.6554%)
NativeDowncallStaticNormalRefs6 4.8876 4.9188 (+0.6394%)
NativeDowncallStaticFast 15.992 16.505 (+3.207%)
NativeDowncallStaticFast6 13.466 13.705 (+1.775%)
NativeDowncallStaticFastRefs6 11.994 12.183 (+1.578%)
linux-armv8 before after
NativeDowncallStaticNormal 5.8594 5.9026 (+0.7378)
NativeDowncallStaticNormal6 5.5198 5.5607 (+0.7414)
NativeDowncallStaticNormalRefs6 5.1498 5.1862 (+0.7072)
NativeDowncallStaticFast 17.057 17.439 (+2.242%)
NativeDowncallStaticFast6 14.478 14.757 (+1.922%)
NativeDowncallStaticFastRefs6 12.183 12.376 (+1.584%)
Test: m test-art-host-gtest
Test: run-gtests.sh
Test: testrunner.py --target --optimizing --gcstress
Bug: 172332525
Change-Id: I595cd0e17a480cdfd86c548a4f9853f4b86f4047
|
|
This is in preparation of removing it from OatQuickMethodHeader.
Bug: 123510633
Test: m test-art-host-gtest
Test: ./art/test.py -b -r --host
Change-Id: I5c5adb4c040e329b81c1393aa1b80ee017729c8a
|
|
Test: m test-art-host-gtest
Test: testrunner.py --host --gcstress
Bug: 172332525
Change-Id: Id791a16135c8a947c317ed56ac88dac81cadfd2d
|
|
Added SPDX-license-identifier-Apache-2.0 to:
adbconnection/Android.bp
benchmark/Android.bp
build/Android.bp
build/Android.cpplint.mk
build/Android.gtest.mk
build/apex/Android.bp
build/boot/Android.bp
build/sdk/Android.bp
cmdline/Android.bp
compiler/Android.bp
dalvikvm/Android.bp
dex2oat/Android.bp
dexdump/Android.bp
dexlayout/Android.bp
dexlist/Android.bp
dexoptanalyzer/Android.bp
disassembler/Android.bp
dt_fd_forward/export/Android.bp
imgdiag/Android.bp
libartbase/Android.bp
libartpalette/Android.bp
libartservice/Android.bp
libartservice/tests/Android.bp
libarttools/Android.bp
libdexfile/Android.bp
libelffile/Android.bp
libnativebridge/Android.bp
libnativebridge/tests/Android.bp
libnativeloader/Android.bp
libnativeloader/test/Android.bp
libnativeloader/test/Android.mk
libprofile/Android.bp
oatdump/Android.bp
odrefresh/Android.bp
perfetto_hprof/Android.bp
profman/Android.bp
runtime/Android.bp
simulator/Android.bp
test/001-HelloWorld/Android.bp
test/001-Main/Android.bp
test/002-sleep/Android.bp
test/004-InterfaceTest/Android.bp
test/004-SignalTest/Android.bp
test/004-UnsafeTest/Android.bp
test/004-checker-UnsafeTest18/Android.bp
test/006-args/Android.bp
test/007-count10/Android.bp
test/009-instanceof/Android.bp
test/010-instance/Android.bp
test/011-array-copy/Android.bp
test/012-math/Android.bp
test/013-math2/Android.bp
test/014-math3/Android.bp
test/015-switch/Android.bp
test/016-intern/Android.bp
test/017-float/Android.bp
test/018-stack-overflow/Android.bp
test/019-wrong-array-type/Android.bp
test/020-string/Android.bp
test/021-string2/Android.bp
test/022-interface/Android.bp
test/025-access-controller/Android.bp
test/026-access/Android.bp
test/027-arithmetic/Android.bp
test/028-array-write/Android.bp
test/029-assert/Android.bp
test/030-bad-finalizer/Android.bp
test/033-class-init-deadlock/Android.bp
test/034-call-null/Android.bp
test/035-enum/Android.bp
test/036-finalizer/Android.bp
test/037-inherit/Android.bp
test/038-inner-null/Android.bp
test/039-join-main/Android.bp
test/040-miranda/Android.bp
test/041-narrowing/Android.bp
test/043-privates/Android.bp
test/044-proxy/Android.bp
test/045-reflect-array/Android.bp
test/046-reflect/Android.bp
test/047-returns/Android.bp
test/048-reflect-v8/Android.bp
test/049-show-object/Android.bp
test/050-sync-test/Android.bp
test/051-thread/Android.bp
test/052-verifier-fun/Android.bp
test/053-wait-some/Android.bp
test/054-uncaught/Android.bp
test/055-enum-performance/Android.bp
test/058-enum-order/Android.bp
test/059-finalizer-throw/Android.bp
test/061-out-of-memory/Android.bp
test/062-character-encodings/Android.bp
test/063-process-manager/Android.bp
test/067-preemptive-unpark/Android.bp
test/070-nio-buffer/Android.bp
test/072-precise-gc/Android.bp
test/072-reachability-fence/Android.bp
test/074-gc-thrash/Android.bp
test/076-boolean-put/Android.bp
test/078-polymorphic-virtual/Android.bp
test/079-phantom/Android.bp
test/080-oom-fragmentation/Android.bp
test/080-oom-throw-with-finalizer/Android.bp
test/080-oom-throw/Android.bp
test/081-hot-exceptions/Android.bp
test/082-inline-execute/Android.bp
test/083-compiler-regressions/Android.bp
test/084-class-init/Android.bp
test/086-null-super/Android.bp
test/087-gc-after-link/Android.bp
test/090-loop-formation/Android.bp
test/092-locale/Android.bp
test/093-serialization/Android.bp
test/094-pattern/Android.bp
test/095-switch-MAX_INT/Android.bp
test/096-array-copy-concurrent-gc/Android.bp
test/098-ddmc/Android.bp
test/099-vmdebug/Android.bp
test/100-reflect2/Android.bp
test/1004-checker-volatile-ref-load/Android.bp
test/101-fibonacci/Android.bp
test/102-concurrent-gc/Android.bp
test/103-string-append/Android.bp
test/104-growth-limit/Android.bp
test/105-invoke/Android.bp
test/106-exceptions2/Android.bp
test/107-int-math2/Android.bp
test/108-check-cast/Android.bp
test/109-suspend-check/Android.bp
test/110-field-access/Android.bp
test/112-double-math/Android.bp
test/114-ParallelGC/Android.bp
test/115-native-bridge/Android.bp
test/116-nodex2oat/Android.bp
test/120-hashcode/Android.bp
test/121-simple-suspend-check/Android.bp
test/122-npe/Android.bp
test/123-compiler-regressions-mt/Android.bp
test/123-inline-execute2/Android.bp
test/125-gc-and-classloading/Android.bp
test/128-reg-spill-on-implicit-nullcheck/Android.bp
test/129-ThreadGetId/Android.bp
test/132-daemon-locks-shutdown/Android.bp
test/133-static-invoke-super/Android.bp
test/1336-short-finalizer-timeout/Android.bp
test/1337-gc-coverage/Android.bp
test/1339-dead-reference-safe/Android.bp
test/136-daemon-jni-shutdown/Android.bp
test/139-register-natives/Android.bp
test/140-dce-regression/Android.bp
test/140-field-packing/Android.bp
test/143-string-value/Android.bp
test/144-static-field-sigquit/Android.bp
test/148-multithread-gc-annotations/Android.bp
test/149-suspend-all-stress/Android.bp
test/150-loadlibrary/Android.bp
test/151-OpenFileLimit/Android.bp
test/152-dead-large-object/Android.bp
test/153-reference-stress/Android.bp
test/154-gc-loop/Android.bp
test/156-register-dex-file-multi-loader/Android.bp
test/158-app-image-class-table/Android.bp
test/159-app-image-fields/Android.bp
test/163-app-image-methods/Android.bp
test/165-lock-owner-proxy/Android.bp
test/168-vmstack-annotated/Android.bp
test/169-threadgroup-jni/Android.bp
test/170-interface-init/Android.bp
test/172-app-image-twice/Android.bp
test/174-escaping-instance-of-bad-class/Android.bp
test/175-alloc-big-bignums/Android.bp
test/176-app-image-string/Android.bp
test/177-visibly-initialized-deadlock/Android.bp
test/178-app-image-native-method/Android.bp
test/179-nonvirtual-jni/Android.bp
test/1900-track-alloc/Android.bp
test/1901-get-bytecodes/Android.bp
test/1902-suspend/Android.bp
test/1903-suspend-self/Android.bp
test/1904-double-suspend/Android.bp
test/1905-suspend-native/Android.bp
test/1906-suspend-list-me-first/Android.bp
test/1907-suspend-list-self-twice/Android.bp
test/1908-suspend-native-resume-self/Android.bp
test/1909-per-agent-tls/Android.bp
test/1910-transform-with-default/Android.bp
test/1911-get-local-var-table/Android.bp
test/1912-get-set-local-primitive/Android.bp
test/1913-get-set-local-objects/Android.bp
test/1914-get-local-instance/Android.bp
test/1915-get-set-local-current-thread/Android.bp
test/1916-get-set-current-frame/Android.bp
test/1917-get-stack-frame/Android.bp
test/1919-vminit-thread-start-timing/Android.bp
test/1920-suspend-native-monitor/Android.bp
test/1921-suspend-native-recursive-monitor/Android.bp
test/1922-owned-monitors-info/Android.bp
test/1923-frame-pop/Android.bp
test/1924-frame-pop-toggle/Android.bp
test/1925-self-frame-pop/Android.bp
test/1926-missed-frame-pop/Android.bp
test/1927-exception-event/Android.bp
test/1928-exception-event-exception/Android.bp
test/1930-monitor-info/Android.bp
test/1931-monitor-events/Android.bp
test/1932-monitor-events-misc/Android.bp
test/1933-monitor-current-contended/Android.bp
test/1934-jvmti-signal-thread/Android.bp
test/1935-get-set-current-frame-jit/Android.bp
test/1936-thread-end-events/Android.bp
test/1937-transform-soft-fail/Android.bp
test/1938-transform-abstract-single-impl/Android.bp
test/1939-proxy-frames/Android.bp
test/1941-dispose-stress/Android.bp
test/1942-suspend-raw-monitor-exit/Android.bp
test/1943-suspend-raw-monitor-wait/Android.bp
test/1945-proxy-method-arguments/Android.bp
test/1947-breakpoint-redefine-deopt/Android.bp
test/1949-short-dex-file/Android.bp
test/1951-monitor-enter-no-suspend/Android.bp
test/1953-pop-frame/Android.bp
test/1954-pop-frame-jit/Android.bp
test/1955-pop-frame-jit-called/Android.bp
test/1956-pop-frame-jit-calling/Android.bp
test/1957-error-ext/Android.bp
test/1958-transform-try-jit/Android.bp
test/1959-redefine-object-instrument/Android.bp
test/1960-checker-bounds-codegen/Android.bp
test/1960-obsolete-jit-multithread-native/Android.bp
test/1961-checker-loop-vectorizer/Android.bp
test/1961-obsolete-jit-multithread/Android.bp
test/1962-multi-thread-events/Android.bp
test/1963-add-to-dex-classloader-in-memory/Android.bp
test/1967-get-set-local-bad-slot/Android.bp
test/1968-force-early-return/Android.bp
test/1969-force-early-return-void/Android.bp
test/1970-force-early-return-long/Android.bp
test/1971-multi-force-early-return/Android.bp
test/1972-jni-id-swap-indices/Android.bp
test/1973-jni-id-swap-pointer/Android.bp
test/1974-resize-array/Android.bp
test/1975-hello-structural-transformation/Android.bp
test/1976-hello-structural-static-methods/Android.bp
test/1977-hello-structural-obsolescence/Android.bp
test/1978-regular-obsolete-then-structural-obsolescence/Android.bp
test/1979-threaded-structural-transformation/Android.bp
test/1980-obsolete-object-cleared/Android.bp
test/1982-no-virtuals-structural-redefinition/Android.bp
test/1984-structural-redefine-field-trace/Android.bp
test/1985-structural-redefine-stack-scope/Android.bp
test/1986-structural-redefine-multi-thread-stack-scope/Android.bp
test/1987-structural-redefine-recursive-stack-scope/Android.bp
test/1988-multi-structural-redefine/Android.bp
test/1989-transform-bad-monitor/Android.bp
test/1990-structural-bad-verify/Android.bp
test/1991-hello-structural-retransform/Android.bp
test/1992-retransform-no-such-field/Android.bp
test/1993-fallback-non-structural/Android.bp
test/1994-final-virtual-structural/Android.bp
test/1995-final-virtual-structural-multithread/Android.bp
test/1996-final-override-virtual-structural/Android.bp
test/1997-structural-shadow-method/Android.bp
test/1998-structural-shadow-field/Android.bp
test/1999-virtual-structural/Android.bp
test/2003-double-virtual-structural/Android.bp
test/2004-double-virtual-structural-abstract/Android.bp
test/2005-pause-all-redefine-multithreaded/Android.bp
test/2008-redefine-then-old-reflect-field/Android.bp
test/201-built-in-except-detail-messages/Android.bp
test/2011-stack-walk-concurrent-instrument/Android.bp
test/2019-constantcalculationsinking/Android.bp
test/202-thread-oome/Android.bp
test/2020-InvokeVirtual-Inlining/Android.bp
test/2021-InvokeStatic-Inlining/Android.bp
test/2022-Invariantloops/Android.bp
test/2023-InvariantLoops_typecast/Android.bp
test/2024-InvariantNegativeLoop/Android.bp
test/2025-ChangedArrayValue/Android.bp
test/2026-DifferentMemoryLSCouples/Android.bp
test/2027-TwiceTheSameMemoryCouple/Android.bp
test/2028-MultiBackward/Android.bp
test/2029-contended-monitors/Android.bp
test/203-multi-checkpoint/Android.bp
test/2030-long-running-child/Android.bp
test/2031-zygote-compiled-frame-deopt/Android.bp
test/2033-shutdown-mechanics/Android.bp
test/2036-jni-filechannel/Android.bp
test/2037-thread-name-inherit/Android.bp
test/2231-checker-heap-poisoning/Android.bp
test/2232-write-metrics-to-log/Android.bp
test/300-package-override/Android.bp
test/301-abstract-protected/Android.bp
test/302-float-conversion/Android.bp
test/304-method-tracing/Android.bp
test/305-other-fault-handler/Android.bp
test/401-optimizing-compiler/Android.bp
test/402-optimizing-control-flow/Android.bp
test/403-optimizing-long/Android.bp
test/404-optimizing-allocator/Android.bp
test/405-optimizing-long-allocator/Android.bp
test/406-fields/Android.bp
test/407-arrays/Android.bp
test/408-move-bug/Android.bp
test/409-materialized-condition/Android.bp
test/410-floats/Android.bp
test/411-checker-hdiv-hrem-const/Android.bp
test/411-checker-hdiv-hrem-pow2/Android.bp
test/411-checker-instruct-simplifier-hrem/Android.bp
test/411-optimizing-arith/Android.bp
test/413-regalloc-regression/Android.bp
test/414-static-fields/Android.bp
test/418-const-string/Android.bp
test/419-long-parameter/Android.bp
test/420-const-class/Android.bp
test/421-exceptions/Android.bp
test/421-large-frame/Android.bp
test/422-instanceof/Android.bp
test/422-type-conversion/Android.bp
test/423-invoke-interface/Android.bp
test/424-checkcast/Android.bp
test/426-monitor/Android.bp
test/427-bitwise/Android.bp
test/427-bounds/Android.bp
test/429-ssa-builder/Android.bp
test/430-live-register-slow-path/Android.bp
test/433-gvn/Android.bp
test/434-shifter-operand/Android.bp
test/435-try-finally-without-catch/Android.bp
test/436-rem-float/Android.bp
test/436-shift-constant/Android.bp
test/437-inline/Android.bp
test/438-volatile/Android.bp
test/439-npe/Android.bp
test/439-swap-double/Android.bp
test/440-stmp/Android.bp
test/441-checker-inliner/Android.bp
test/443-not-bool-inline/Android.bp
test/444-checker-nce/Android.bp
test/445-checker-licm/Android.bp
test/446-checker-inliner2/Android.bp
test/447-checker-inliner3/Android.bp
test/449-checker-bce-rem/Android.bp
test/449-checker-bce/Android.bp
test/450-checker-types/Android.bp
test/451-regression-add-float/Android.bp
test/451-spill-splot/Android.bp
test/454-get-vreg/Android.bp
test/455-checker-gvn/Android.bp
test/456-baseline-array-set/Android.bp
test/458-long-to-fpu/Android.bp
test/461-get-reference-vreg/Android.bp
test/464-checker-inline-sharpen-calls/Android.bp
test/465-checker-clinit-gvn/Android.bp
test/466-get-live-vreg/Android.bp
test/469-condition-materialization/Android.bp
test/470-huge-method/Android.bp
test/471-deopt-environment/Android.bp
test/472-type-propagation/Android.bp
test/473-checker-inliner-constants/Android.bp
test/473-remove-dead-block/Android.bp
test/474-checker-boolean-input/Android.bp
test/474-fp-sub-neg/Android.bp
test/475-simplify-mul-zero/Android.bp
test/476-checker-ctor-fence-redun-elim/Android.bp
test/476-checker-ctor-memory-barrier/Android.bp
test/476-clinit-inline-static-invoke/Android.bp
test/477-checker-bound-type/Android.bp
test/477-long-2-float-convers-precision/Android.bp
test/478-checker-clinit-check-pruning/Android.bp
test/478-checker-inline-noreturn/Android.bp
test/478-checker-inliner-nested-loop/Android.bp
test/479-regression-implicit-null-check/Android.bp
test/480-checker-dead-blocks/Android.bp
test/481-regression-phi-cond/Android.bp
test/482-checker-loop-back-edge-use/Android.bp
test/483-dce-block/Android.bp
test/485-checker-dce-switch/Android.bp
test/486-checker-must-do-null-check/Android.bp
test/487-checker-inline-calls/Android.bp
test/488-checker-inline-recursive-calls/Android.bp
test/489-current-method-regression/Android.bp
test/490-checker-inline/Android.bp
test/491-current-method/Android.bp
test/492-checker-inline-invoke-interface/Android.bp
test/493-checker-inline-invoke-interface/Android.bp
test/494-checker-instanceof-tests/Android.bp
test/495-checker-checkcast-tests/Android.bp
test/496-checker-inlining-class-loader/Android.bp
test/497-inlining-and-class-loader/Android.bp
test/499-bce-phi-array-length/Android.bp
test/500-instanceof/Android.bp
test/505-simplifier-type-propagation/Android.bp
test/507-boolean-test/Android.bp
test/507-referrer/Android.bp
test/508-checker-disassembly/Android.bp
test/508-referrer-method/Android.bp
test/513-array-deopt/Android.bp
test/514-shifts/Android.bp
test/519-bound-load-class/Android.bp
test/521-checker-array-set-null/Android.bp
test/521-regression-integer-field-set/Android.bp
test/524-boolean-simplifier-regression/Android.bp
test/525-checker-arrays-fields1/Android.bp
test/525-checker-arrays-fields2/Android.bp
test/526-checker-caller-callee-regs/Android.bp
test/526-long-regalloc/Android.bp
test/527-checker-array-access-simd/Android.bp
test/527-checker-array-access-split/Android.bp
test/528-long-hint/Android.bp
test/529-long-split/Android.bp
test/530-checker-loops1/Android.bp
test/530-checker-loops2/Android.bp
test/530-checker-loops3/Android.bp
test/530-checker-loops4/Android.bp
test/530-checker-loops5/Android.bp
test/530-checker-lse-ctor-fences/Android.bp
test/530-checker-lse-simd/Android.bp
test/530-checker-lse/Android.bp
test/530-checker-lse2/Android.bp
test/530-instanceof-checkcast/Android.bp
test/530-regression-lse/Android.bp
test/532-checker-nonnull-arrayset/Android.bp
test/534-checker-bce-deoptimization/Android.bp
test/535-deopt-and-inlining/Android.bp
test/536-checker-intrinsic-optimization/Android.bp
test/537-checker-arraycopy/Android.bp
test/537-checker-jump-over-jump/Android.bp
test/538-checker-embed-constants/Android.bp
test/540-checker-rtp-bug/Android.bp
test/542-bitfield-rotates/Android.bp
test/542-inline-trycatch/Android.bp
test/542-unresolved-access-check/Android.bp
test/545-tracing-and-jit/Android.bp
test/548-checker-inlining-and-dce/Android.bp
test/549-checker-types-merge/Android.bp
test/550-checker-multiply-accumulate/Android.bp
test/550-new-instance-clinit/Android.bp
test/551-checker-clinit/Android.bp
test/551-checker-shifter-operand/Android.bp
test/551-implicit-null-checks/Android.bp
test/552-checker-sharpening/Android.bp
test/552-checker-x86-avx2-bit-manipulation/Android.bp
test/554-checker-rtp-checkcast/Android.bp
test/555-UnsafeGetLong-regression/Android.bp
test/557-checker-instruct-simplifier-ror/Android.bp
test/558-switch/Android.bp
test/559-bce-ssa/Android.bp
test/559-checker-rtp-ifnotnull/Android.bp
test/560-packed-switch/Android.bp
test/561-divrem/Android.bp
test/561-shared-slowpaths/Android.bp
test/562-bce-preheader/Android.bp
test/562-checker-no-intermediate/Android.bp
test/563-checker-invoke-super/Android.bp
test/564-checker-bitcount/Android.bp
test/564-checker-inline-loop/Android.bp
test/564-checker-negbitwise/Android.bp
test/565-checker-condition-liveness/Android.bp
test/566-checker-codegen-select/Android.bp
test/566-polymorphic-inlining/Android.bp
test/567-checker-builder-intrinsics/Android.bp
test/568-checker-onebit/Android.bp
test/570-checker-select/Android.bp
test/572-checker-array-get-regression/Android.bp
test/573-checker-checkcast-regression/Android.bp
test/576-polymorphic-inlining/Android.bp
test/577-checker-fp2int/Android.bp
test/578-bce-visit/Android.bp
test/578-polymorphic-inlining/Android.bp
test/579-inline-infinite/Android.bp
test/580-checker-round/Android.bp
test/580-crc32/Android.bp
test/581-rtp/Android.bp
test/582-checker-bce-length/Android.bp
test/583-checker-zero/Android.bp
test/584-checker-div-bool/Android.bp
test/589-super-imt/Android.bp
test/590-checker-arr-set-null-regression/Android.bp
test/591-checker-regression-dead-loop/Android.bp
test/593-checker-long-2-float-regression/Android.bp
test/594-checker-array-alias/Android.bp
test/594-load-string-regression/Android.bp
test/595-profile-saving/Android.bp
test/597-deopt-busy-loop/Android.bp
test/597-deopt-invoke-stub/Android.bp
test/597-deopt-new-string/Android.bp
test/602-deoptimizeable/Android.bp
test/603-checker-instanceof/Android.bp
test/604-hot-static-interface/Android.bp
test/605-new-string-from-bytes/Android.bp
test/607-daemon-stress/Android.bp
test/609-checker-inline-interface/Android.bp
test/609-checker-x86-bounds-check/Android.bp
test/610-arraycopy/Android.bp
test/611-checker-simplify-if/Android.bp
test/614-checker-dump-constant-location/Android.bp
test/615-checker-arm64-store-zero/Android.bp
test/616-cha-abstract/Android.bp
test/616-cha-interface/Android.bp
test/616-cha-miranda/Android.bp
test/616-cha-native/Android.bp
test/616-cha-regression-proxy-method/Android.bp
test/616-cha/Android.bp
test/617-clinit-oome/Android.bp
test/618-checker-induction/Android.bp
test/619-checker-current-method/Android.bp
test/620-checker-bce-intrinsics/Android.bp
test/622-checker-bce-regressions/Android.bp
test/623-checker-loop-regressions/Android.bp
test/625-checker-licm-regressions/Android.bp
test/626-set-resolved-string/Android.bp
test/627-checker-unroll/Android.bp
test/628-vdex/Android.bp
test/629-vdex-speed/Android.bp
test/631-checker-get-class/Android.bp
test/632-checker-char-at-bounds/Android.bp
test/635-checker-arm64-volatile-load-cc/Android.bp
test/636-arm64-veneer-pool/Android.bp
test/637-checker-throw-inline/Android.bp
test/638-checker-inline-cache-intrinsic/Android.bp
test/639-checker-code-sinking/Android.bp
test/640-checker-boolean-simd/Android.bp
test/640-checker-integer-valueof/Android.bp
test/640-checker-simd/Android.bp
test/641-checker-arraycopy/Android.bp
test/641-iterations/Android.bp
test/642-fp-callees/Android.bp
test/643-checker-bogus-ic/Android.bp
test/645-checker-abs-simd/Android.bp
test/646-checker-arraycopy-large-cst-pos/Android.bp
test/646-checker-long-const-to-int/Android.bp
test/646-checker-simd-hadd/Android.bp
test/647-jni-get-field-id/Android.bp
test/650-checker-inline-access-thunks/Android.bp
test/652-deopt-intrinsic/Android.bp
test/654-checker-periodic/Android.bp
test/655-checker-simd-arm-opt/Android.bp
test/655-jit-clinit/Android.bp
test/656-checker-simd-opt/Android.bp
test/656-loop-deopt/Android.bp
test/657-branches/Android.bp
test/658-fp-read-barrier/Android.bp
test/660-checker-sad/Android.bp
test/660-checker-simd-sad/Android.bp
test/660-clinit/Android.bp
test/661-checker-simd-reduc/Android.bp
test/661-oat-writer-layout/Android.bp
test/662-regression-alias/Android.bp
test/664-aget-verifier/Android.bp
test/665-checker-simd-zero/Android.bp
test/666-dex-cache-itf/Android.bp
test/667-checker-simd-alignment/Android.bp
test/667-jit-jni-stub/Android.bp
test/667-out-of-bounds/Android.bp
test/669-checker-break/Android.bp
test/671-npe-field-opts/Android.bp
test/672-checker-throw-method/Android.bp
test/673-checker-throw-vmethod/Android.bp
test/674-HelloWorld-Dm/Android.bp
test/674-hotness-compiled/Android.bp
test/676-proxy-jit-at-first-use/Android.bp
test/677-fsi2/Android.bp
test/679-locks/Android.bp
test/680-checker-deopt-dex-pc-0/Android.bp
test/680-sink-regression/Android.bp
test/684-checker-simd-dotprod/Android.bp
test/684-select-condition/Android.bp
test/685-deoptimizeable/Android.bp
test/687-deopt/Android.bp
test/689-multi-catch/Android.bp
test/689-zygote-jit-deopt/Android.bp
test/693-vdex-inmem-loader-evict/Android.bp
test/694-clinit-jit/Android.bp
test/695-simplify-throws/Android.bp
test/696-loop/Android.bp
test/697-checker-string-append/Android.bp
test/698-selects/Android.bp
test/700-LoadArgRegs/Android.bp
test/703-floating-point-div/Android.bp
test/704-multiply-accumulate/Android.bp
test/705-register-conflict/Android.bp
test/707-checker-invalid-profile/Android.bp
test/708-jit-cache-churn/Android.bp
test/711-checker-type-conversion/Android.bp
test/717-integer-value-of/Android.bp
test/718-zipfile-finalizer/Android.bp
test/720-thread-priority/Android.bp
test/721-osr/Android.bp
test/726-array-store/Android.bp
test/728-imt-conflict-zygote/Android.bp
test/805-TooDeepClassInstanceOf/Android.bp
test/806-TooWideClassInstanceOf/Android.bp
test/812-recursive-default/Android.bp
test/813-fp-args/Android.bp
test/814-large-field-offsets/Android.bp
test/815-invokeinterface-default/Android.bp
test/818-clinit-nterp/Android.bp
test/900-hello-plugin/Android.bp
test/901-hello-ti-agent/Android.bp
test/902-hello-transformation/Android.bp
test/903-hello-tagging/Android.bp
test/904-object-allocation/Android.bp
test/905-object-free/Android.bp
test/906-iterate-heap/Android.bp
test/907-get-loaded-classes/Android.bp
test/908-gc-start-finish/Android.bp
test/910-methods/Android.bp
test/911-get-stack-trace/Android.bp
test/913-heaps/Android.bp
test/914-hello-obsolescence/Android.bp
test/915-obsolete-2/Android.bp
test/916-obsolete-jit/Android.bp
test/917-fields-transformation/Android.bp
test/918-fields/Android.bp
test/919-obsolete-fields/Android.bp
test/920-objects/Android.bp
test/921-hello-failure/Android.bp
test/922-properties/Android.bp
test/923-monitors/Android.bp
test/924-threads/Android.bp
test/925-threadgroups/Android.bp
test/926-multi-obsolescence/Android.bp
test/927-timers/Android.bp
test/928-jni-table/Android.bp
test/930-hello-retransform/Android.bp
test/931-agent-thread/Android.bp
test/932-transform-saves/Android.bp
test/933-misc-events/Android.bp
test/937-hello-retransform-package/Android.bp
test/939-hello-transformation-bcp/Android.bp
test/940-recursive-obsolete/Android.bp
test/941-recursive-obsolete-jit/Android.bp
test/942-private-recursive/Android.bp
test/943-private-recursive-jit/Android.bp
test/944-transform-classloaders/Android.bp
test/945-obsolete-native/Android.bp
test/946-obsolete-throw/Android.bp
test/947-reflect-method/Android.bp
test/949-in-memory-transform/Android.bp
test/950-redefine-intrinsic/Android.bp
test/951-threaded-obsolete/Android.bp
test/963-default-range-smali/Android.bp
test/982-ok-no-retransform/Android.bp
test/983-source-transform-verify/Android.bp
test/984-obsolete-invoke/Android.bp
test/985-re-obsolete/Android.bp
test/986-native-method-bind/Android.bp
test/987-agent-bind/Android.bp
test/988-method-trace/Android.bp
test/989-method-trace-throw/Android.bp
test/990-field-trace/Android.bp
test/991-field-trace-2/Android.bp
test/992-source-data/Android.bp
test/993-breakpoints/Android.bp
test/994-breakpoint-line/Android.bp
test/995-breakpoints-throw/Android.bp
test/996-breakpoint-obsolete/Android.bp
test/997-single-step/Android.bp
test/Android.bp
tools/Android.bp
tools/ahat/Android.bp
tools/ahat/Android.mk
tools/art_verifier/Android.bp
tools/cpp-define-generator/Android.bp
tools/dexanalyze/Android.bp
tools/dexfuzz/Android.bp
tools/dmtracedump/Android.bp
tools/hiddenapi/Android.bp
tools/jfuzz/Android.bp
tools/jvmti-agents/breakpoint-logger/Android.bp
tools/jvmti-agents/chain-agents/Android.bp
tools/jvmti-agents/dump-jvmti-state/Android.bp
tools/jvmti-agents/enable-vlog/Android.bp
tools/jvmti-agents/field-counts/Android.bp
tools/jvmti-agents/field-null-percent/Android.bp
tools/jvmti-agents/jit-load/Android.bp
tools/jvmti-agents/list-extensions/Android.bp
tools/jvmti-agents/simple-force-redefine/Android.bp
tools/jvmti-agents/simple-profile/Android.bp
tools/jvmti-agents/ti-alloc-sample/Android.bp
tools/jvmti-agents/ti-fast/Android.bp
tools/jvmti-agents/titrace/Android.bp
tools/jvmti-agents/wrapagentproperties/Android.bp
tools/signal_dumper/Android.bp
tools/tracefast-plugin/Android.bp
tools/veridex/Android.bp
Added SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD to:
sigchainlib/Android.bp
Added SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD
SPDX-license-identifier-GPL-2.0
to:
Android.bp
Android.mk
Added SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-GPL-2.0
SPDX-license-identifier-GPL-with-classpath-exception
to:
dt_fd_forward/Android.bp
openjdkjvmti/Android.bp
Added SPDX-license-identifier-GPL-2.0
SPDX-license-identifier-GPL-with-classpath-exception
to:
openjdkjvm/Android.bp
Bug: 68860345
Bug: 151177513
Bug: 151953481
Test: m all
Exempt-From-Owner-Approval: janitorial work
Change-Id: If775045c12955fa6d72d40ccf2a09beef93d1699
Merged-in: If775045c12955fa6d72d40ccf2a09beef93d1699
|
|
Fix braino from
https://android-review.googlesource.com/1570261 .
Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Bug: 172573708
Bug: 180527726
Change-Id: I430d3e7034a3f600674763986a324d80903aaf6c
|
|
We previously crated a HandleScope in the JNI transition
frame to hold references passed as jobject (jclass, etc.)
to the native function and these references were actually
spilled twice during the transition.
We now construct the jobject as a pointer to the reference
spilled in the reserved out vreg area in the caller's frame.
And the jclass for static methods is just a pointer to the
method's declaring class. This reduces the amount of work
required in the JNI transition, both on entry (in compiled
stubs) and exit (in JniMethodEnd*).
Some additional work is required when GC visits references
of a native method as we need to walk over the method's
shorty which was unnecessary for a HandleScope.
Also fix Thread::InitStackHwm() to calculate correct stack
size needed by the new Thread::IsJniTransitionReference().
The results for StringToBytesBenchmark on blueline little
cores running at fixed frequency 1420800 are approximately
arm64 (medians from 3 runs) before after
timeGetBytesAscii EMPTY 447.33 436.86
timeGetBytesIso88591 EMPTY 440.52 431.13
timeGetBytesUtf8 EMPTY 432.31 409.82
arm (medians from 3 runs) before after
timeGetBytesAscii EMPTY 500.53 490.87
timeGetBytesIso88591 EMPTY 496.45 495.30
timeGetBytesUtf8 EMPTY 488.84 472.68
Test: m test-art-host-gtest
Test: testrunner.py --host
Test: testrunner.py --host --gcstress
Test: testrunner.py --host --jit-on-first-use
Test: testrunner.py --host --jit-on-first-use --gcstress
Test: run-gtests.sh
Test: testrunner.py --target --optimizing
Test: boots.
Bug: 172332525
Change-Id: I658f9d87071587b3e89f31c65feca976a11e9cc2
|
|
Do not move incoming stack arguments before we have spilled
the scratch register ECX.
Fix JniCompilerTest to initialize classes early so that we
really test what we were supposed to. This exposed the x86
bug fixed here.
Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Bug: 172332525
Change-Id: I7c06c8ccf18f5f66772c70f6a9a9a314668ce70d
|
|
Test: ./art/test/testrunner/testrunner.py --target --optimizing --64 -t 082-inline-execute
Test: ./art/test/testrunner/testrunner.py --host --optimizing --64 -t 082-inline-execute
Change-Id: I4b6cafa8b9e513eca7c5c139440024d87a7ef758
|
|
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
|
|
Test: ART_HEAP_POISONING=true m test-art-host-gtest
Test: ART_HEAP_POISONING=true testrunner.py --host --optimizing
Test: run-gtests.sh # with ART_HEAP_POISONING=true
Test: testrunner.py --target --optimizing # with ART_HEAP_POISONING=true
Bug: 172573708
Change-Id: I2e09b49813bdad40c1e18bf5681ba2094c5a40c1
|
|
Arm SVE register size is not fixed and can be a
multiple of 128 bits. To support that the patch
removes explicit assumptions on the SIMD register
size to be 128 bit from the vectorizer and code
generators and enables configurable SVE vector
length autovectorization, e.g. extends SIMD register
save/restore routines.
Test: art SIMD tests on VIXL simulator.
Test: art tests on FVP (steps in test/README.arm_fvp.md)
with FVP arg:
-C SVE.ScalableVectorExtension.veclen=[2,4]
(SVE vector [128,256] bits wide)
Change-Id: Icb46e7eb17f21d3bd38b16dd50f735c29b316427
|
|
Test: Added tests to 122-npe and 160-read-barrier-stress
Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Test: run-gtests.sh
Test: testrunner.py --target --optimizing
Bug: 172573708
Change-Id: I8342510565289058df218d3249ffac1eb993ca4f
|
|
The memfd_create() call fails on fugu.
Test: Rely on TH.
Bug: 177816575
Change-Id: I013742aba0c9b41aaf5aa333ddc635fe0ad58e02
|
|
This CL brings support for predicated execution for
auto-vectorizer and implements arm64 SVE vector backend.
This version passes all the VIXL simulator-runnable tests in
SVE mode with checker off (as all VecOp CHECKs need to be
adjusted for an extra input) and all tests in NEON mode.
Test: art SIMD tests on VIXL simulator.
Test: art tests on FVP (steps in test/README.arm_fvp.md)
Change-Id: Ib78bde31a15e6713d875d6668ad4458f5519605f
|
|
Avoid executing code in memory allocated with malloc() as
pointers to that memory can be tagged which interferes with
managed stack walk.
Test: m test-art-host-gtest.
Bug: 177816575
Change-Id: Id376091f82d5686adf3ab18d2980a42e78de57ce
|
|
Test: run-gtests.sh
Bug: 177816575
Change-Id: If76f186d69ac9311a81e025960c13d9b99be6e56
|
|
Bug: 175226454
Test: N/A
Change-Id: Ia83c3afa69d7e1efb9685cfaa5401242712fa02a
|
|
In a log statement we were dereferencing a pointer that could
potentially be null. Add support for safely dereferencing a pointer
for ostreams.
Test: ./test.py --host
Bug: 67037140
Change-Id: Ibe04811883575902a9b2fe8a064f18de2b2cea7b
|
|
Add workaround for vixl emitting UNPREDICTABLE instruction
in frame exit. Pop LR directly to PC when possible and emit
previously missing CFI data otherwise.
For frames that just save LR and align the stack with one
more unused word, make the frame entry a single PUSH (by
arbitrarily storing r3) and make exit a single POP (by
arbitrarily restoring r3 which we are allowed to clobber
as it's a caller-save register not used for return value).
Test: m test-art-host-gtest
Test: run-gtests.sh
Test: testrunner.py --target --32 --optimizing
Bug: 178048807
Change-Id: I8752711bfd4bcfc2c1cfa371108de393df00aeb8
|
|
This reverts commit 791df7a161ecfa28eb69862a4bc285282463b960.
This unreverts commit fc1ce4e8be0d977e3d41699f5ec746d68f63c024.
This unreverts commit b8686ce4c93eba7192ed7ef89e7ffd9f3aa6cd07.
We incorrectly failed to include PredicatedInstanceFieldGet in a few
conditions, including a DCHECK. This caused tests to fail under the
read-barrier-table-lookup configuration.
Reason for revert: Fixed 2 incorrect checks
Bug: 67037140
Test: ./art/test/testrunner/run_build_test_target.py -j70 art-gtest-read-barrier-table-lookup
Change-Id: I32b01b29fb32077fb5074e7c77a0226bd1fcaab4
|
|
This reverts commit fc1ce4e8be0d977e3d41699f5ec746d68f63c024.
Bug: 67037140
Reason for revert: Fails read-barrier-table-lookup tests.
Change-Id: I373867c728789bc14a4370b93a045481167d5f76
|
|
This reverts commit 47ac53100303e7e864b7f6d65f17b23088ccf1d6.
There was a bug in LSE where we would incorrectly record the
shadow$_monitor_ field as not having a default initial value. This
caused partial LSE to be unable to compile the Object.identityHashCode
function, causing crashes. This issue was fixed in a parent CL. Also
updated all Offsets in LSE_test to be outside of the object header
regardless of configuration.
Test: ./test.py --host
Bug: 67037140
Reason for revert: Fixed issue with shadow$_monitor_ field and offsets
Change-Id: I4fb2afff4d410da818db38ed833927dfc0f6be33
|
|
The shadow$_monitor_ field is an object header field. Unlike
shadow_klass this field has regular default initialization and we
should record this in LSE. This won't have any actual effect generally
since the only (java) use of the field is in Object.identityHashCode
and the object always escapes if the value is 0. Still this simplifies
partial LSE since we will not need to special case this field.
Test: ./test.py --host
Bug: 67037140
Change-Id: I68a8e4a4d84d42cd206e0dce37cefb19fd099b20
|
|
Several tests in load_store_elimination_test used field offsets that
were within the ObjectHeader on read-barrier configurations. Since LSE
special cases object-header fields this could cause tests to
incorrectly fail.
Test: ./test.py --host
Bug: 67037140
Change-Id: I3146f5310dd4474bbc7079ac2e7584459e5c5ac6
|
|
Using benchmarks provided by
https://android-review.googlesource.com/1420959
on blueline little cores with fixed frequency 1420800:
before after
GetByteArrayViewInt 28.989 0.028
SetByteArrayViewInt 30.114 0.028
GetByteArrayViewBigEndianInt 28.974 0.030
SetByteArrayViewBigEndianInt 30.130 0.030
Test: testrunner.py --target --32 --optimizing
Bug: 71781600
Change-Id: I40c1c2fdd829f17872c457994010f78549c895de
|
|
This reverts commit b8686ce4c93eba7192ed7ef89e7ffd9f3aa6cd07.
Bug: 67037140
Reason for revert: Fails a few tests.
Change-Id: Icf0635bffbfbba93bf0a5b854a9582c418198136
|
|
Add partial load-store elimination to the LSE pass. Partial LSE will
move object allocations which only escape along certain execution
paths closer to the escape point and allow more values to be
eliminated. It does this by creating new predicated load and store
instructions that are used when an object has only escaped some of the
time. In cases where the object has not escaped a default value will
be used.
Test: ./test.py --host
Test: ./test.py --target
Bug: 67037140
Change-Id: Idde67eb59ec90de79747cde17b552eec05b58497
|
|
This reverts commit f1d06474baa2f7c00761db39099b89ddab71bbe4.
Bug: 177554973
Bug: 112676029
Test: test.py
Test: 815-invokeinterface-default
Test: enable text-to-speech on device, no crash
Reason for revert: Fixed issue with recursive default methods
Change-Id: I2fb9336adb6c4fc920f39aa19bfe7f0a92ce059a
|