summaryrefslogtreecommitdiff
path: root/test/2238-checker-polymorphic-recursive-inlining
AgeCommit message (Collapse)Author
2022-11-02Run-tests: Rename "run" files to "run.py" David Srbecky
Make it explicit that they are python files. Make the file attributes non-executable. Test: test.py -b -r --host --optimizing --64 Change-Id: I874c8453032298bcc15dbd1030a3f7c0fd58254f
2022-10-24Revert^2 "Convert per-test run scripts to python." David Srbecky
This reverts commit 8d6a4e021e1dc4717939e05aee89c9b18e383d12. Reason for revert: Reland Test: test.py -r --all-target Test: diff emitted test commands before and after Change-Id: I8b99d9b3804615f2ebc50171a4368ad87d809300
2022-10-23Revert "Convert per-test run scripts to python." David Srbecky
This reverts commit 895c27039a57ec19efc8f526ac17b1ae28e2edd9. Reason for revert: Breaks tests Change-Id: If7d346b23731d32d1fdf31346bebcb658fbce421
2022-10-23Convert per-test run scripts to python. David Srbecky
Test: test.py -r --all-target Test: diff emitted test commands before and after Change-Id: I05003b5cde0e39ffc7d037ef875a45f13dd83755
2022-02-25Regenerate ART test files (2022-02-24). Roland Levillain
This change removes test `art-run-test-552-checker-sharpening` from automated executions (because of recent changes in this test's sources; see https://android-review.googlesource.com/1976522); and adds new test `art-run-test-835-b216762268` to automated executions (introduced by https://android-review.googlesource.com/1976525). Output of `art/test/utils/regen-test-files`: $ art/test/utils/regen-test-files Generated Blueprint files for 657 ART run-tests out of 950 (69%). Generated TEST_MAPPING entries for 404 ART run-tests out of 950 (42%): 404 ART run-tests (100%) in `mainline-presubmit` test group. 18 ART gtests (94%) in `mainline-presubmit` test group. 404 ART run-tests (100%) in `presubmit` test group. 19 ART gtests (100%) in `presubmit` test group. Test: atest --test-mapping art:presubmit Bug: 152374989 Change-Id: Ice83661df21aa7110193dd983f714731fec6b2aa
2022-02-15Limit recursive polymorphic inlining to prevent code bloat Santiago Aboy Solanes
If both NoRecursion and Wrapper implement the same method MyMethod, NoRecursion with just `return false` and Wrapper with `return BaseClass.MyMethod()` we would end up with generated code similar to: ``` if (receiver == NoRecursion) { return false; } else if (receiver == Wrapper) { // A polymorphic invoke which turns into: if (unwrappedValue.receiver == NoRecursion) { return false; } else if (unwrappedValue.receiver == Wrapper) { // A polymorphic invoke which turns into // [...] you get the gist, we do this several times. } else { // HInvokeVirtual } } else { // HInvokeVirtual } ``` After the change we would have: ``` if (receiver == NoRecursion) { return false; } else { // HInvokeVirtual } ``` This pattern was worse when there were more than one recursive polymorphic case, increasing exponentially in size. This was common to see on Wrapper classes, but uncommon otherwise. In the two wrappers plus one non-wrapper case in test/2238-, we will now generate a .cfg which is about 6% the size versus before this CL (12M -> 779K). Test: art/test/testrunner/testrunner.py --host --64 --optimizing -b Bug: 217464625 Change-Id: I3c6444193ea2f24af29d97549776a283ef177efd