Age | Commit message (Collapse) | Author |
|
Rationale:
This refactoring introduces data types to heap locations.
This will allow better type disambiguation in the future.
As a first showcase, it already removes rather error-prone
"exceptional" code in LSE dealing with array types on null
values. Furthermore, many LSA specific details started to "leak"
into clients, which is also error-prone. This refactoring moves
such details back into just LSA, where it belongs.
Test: test-art-host,target
Bug: b/77906240
Change-Id: Id327bbe86dde451a942c9c5f9e83054c36241882
|
|
Bug: 65168732
Test: art/test/run-test ... 586-checker-null-array-get
Change-Id: Icc4f9e899e494aa0db11a10e7570d496c256e356
|
|
Previously 1 of the methods were failing checker with javac/dx.
Move their old bytecode to a smali file to retain testing of those
optimizations.
Rewrite the checker tests in Main.java to use the javac/dx-generated
bytecode.
Test: art/test/run-test --64 --host --optimizing --build-with-javac-dx 586-checker-null-array-get
Bug: 62950048
Bug: 36902714
Change-Id: Ib320509422a358e116c24bb1b33442c0cf09ba25
|
|
Simplifies code generation by removing a null check. The null case
is rare.
Ritzperf code size: 13107624 -> 13095336
Also addressed comments from previous CL.
Bug: 32577579
Test: test-art-host, run ritzperf both with CC
Change-Id: I2b31e800867112869d7f0643e16c08826296979e
|
|
The DCHECK was too strong, as we could come from a field or array
get on null, instead of null directly.
bug:27831001
(cherry picked from commit 65fef30952bb92acec7ed36f7f431d93f7ce88b3)
Change-Id: Ia3ba1235e95408d66349a02fc438df9c2cf9e255
|
|
The null constant might be hiding under a HBoundType
(which we could clean up in instruction simplifier, but
that is orthogonal).
bug:27683874
Change-Id: Ide8ec5bcd439ec0fca5e54175ebeedc5a9f679a3
|
|
Due to the dex specification, we can be in a state where
two array get with the same dex register inputs are typed
differently.
bug:27683874
Change-Id: Ia821fd32e86c306093372249e7686332a7584263
|