History log of /art/compiler/optimizing/escape.cc
Revision Date Author Comments
293f1c006cc283345630ea38266f3ee38b624d5d 09-Nov-2017 Mingyao Yang <mingyao@google.com> Check invocation's side effects for LSE.

More optimization is allowed if an invocation doesn't do read/write.

Test: run-test on host.
Change-Id: Id80e2fa90b8c843afd852778e8f7e6c69c765ad5
025c1a69ea548f1477d160bd477364336109078a 30-Oct-2017 Mingyao Yang <mingyao@google.com> Simplify handling of finalizable in LSE.

Finalizable is treated as being returned which simplifies its handling.

Test: run-test on host, 530-checker-lse contains tests on finalizable.
Change-Id: I492470e4d2ba88865029675c51cf10325af47057
71bf7b43380eb445973f32a7f789d9670f8cc97d 16-Nov-2016 Aart Bik <ajcbik@google.com> Optimizations around escape analysis. With tests.

Details:
(1) added new intrinsics
(2) implemented optimizations
more !can be null information
more null check removals
replace return-this uses with incoming parameter
remove dead StringBuffer/Builder calls (with escape analysis)
(3) Fixed exposed bug in CanBeMoved()

Performance gain:
This improves CafeineString by about 360%
(removes null check from first loop, eliminates second loop completely)

Test: test-art-host

Change-Id: Iaf16a1b9cab6a7386f43d71c6b51dd59600e81c1
96fd51d52de759be442accd4df99eb2520bdd023 28-Nov-2016 Aart Bik <ajcbik@google.com> Moved escape analysis to reusable module

Rationale:
This prepares other optimizations that
want to do some simple escape analysis.
Also introduces ability for client
to inject a case-specific function.

Test: test-art-host
Change-Id: Ie38a1e24e4479dc40154673db589ec1c82fb73b9