summaryrefslogtreecommitdiff
path: root/compiler/optimizing/escape.h
AgeCommit message (Collapse)Author
2022-11-07Reland "Make compiler/optimizing/ symbols hidden." VladimĂ­r Marko
This reverts commit 0a51605ddd81635135463dab08b6f7c21b58ffb0. Reason for revert: Reland after some of the required work was merged in other CLs. Also address a TODO from the original CL to mark required symbols with EXPORT in `intrinsic_objects.h`. Also mark symbols in new files as HIDDEN. Bug: 186902856 Test: m test-art-host-gtest Test: testrunner.py --host --optimizing Change-Id: I936d448983928af23614ca82c2d0bf9a645e2c52
2020-09-25Refactor Escape-analysis to use visitors Alex Light
The current escape-analysis is entirely built around finding a single 'does-escape' boolean (and a few ancillary booleans). This change adds a new VisitEscapes function that allows one to more easily track which instructions cause escapes and rewrites the other escape-analysis functions in terms of this VisitEscapes function. Test: ./test.py --host Bug: 67037140 Change-Id: Ie5ad7580544be21713d040c2943cae19ff5414d4
2019-10-14Revert "Make compiler/optimizing/ symbols hidden." Vladimir Marko
This reverts commit e2727154f25e0db9a5bb92af494d8e47b181dfcf. Reason for revert: Breaks ASAN tests (ODR violation). Bug: 142365358 Change-Id: I38103d74a1297256c81d90872b6902ff1e9ef7a4
2019-10-14Make compiler/optimizing/ symbols hidden. Vladimir Marko
Make symbols in compiler/optimizing hidden by a namespace attribute. The unit intrinsic_objects.{h,cc} is excluded as it is needed by dex2oat. As the symbols are no longer exported, gtests are now linked with the static version of the libartd-compiler library. libart-compiler.so size: - before: arm: 2396152 arm64: 3345280 - after: arm: 2016176 (-371KiB, -15.9%) arm64: 2874480 (-460KiB, -14.1%) Test: m test-art-host-gtest Test: testrunner.py --host --optimizing --jit Bug: 142365358 Change-Id: I1fb04a33351f53f00b389a1642e81a68e40912a8
2016-11-30Optimizations around escape analysis. With tests. Aart Bik
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
2016-11-28Moved escape analysis to reusable module Aart Bik
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