summaryrefslogtreecommitdiff
path: root/compiler/optimizing/graph_checker.cc
AgeCommit message (Collapse)Author
2024-09-13riscv64: Add node Rol, fix InstructionBuilder Anton Romanov
This reverts commit 744830cb242c82c4637e6fb303b36d0371c84979. Reason for revert: updated CHECKer test to use rolw instead of rol. Change-Id: I50e34c6ac69488a9c083f04c6382df4302e8e7d3
2024-09-11Revert "riscv64: Add node Rol, fix InstructionBuilder" Nicolas Geoffray
This reverts commit 39927bc359ccbe65371213c4559126b05dcfb117. Reason for revert: Failure on bot with: error: Statement could not be matched starting from line 1089612 TestRotate.java:95: rol {{a\d+}}, {{a\d+}}, {{a\d+}} ISA_FEATURES = {'rv64gcv_zba_zbb_zbs': True} READ_BARRIER_TYPE = baker 567-checker-builder-intrinsics FAILED: [run-test:1074] CFG checker failed $ ssh -q -F /b/s/w/ir/cache/builder/art/test/testrunner/ssh_config -p 10001 ubuntu@localhost "rm -rf /home/ubuntu/art-test-chroot/data/run-test/test-343039" 567-checker-builder-intrinsics files deleted from host and from target ---------- test-art-target-run-test-ndebug-prebuild-optimizing-no-relocate-ntrace-cms-checkjni-picimage-ndebuggable-no-jvmti-567-checker-builder-intrinsics64 Change-Id: Ic1fd87c331c9eba315af6c98c3ad393766327417
2024-09-10riscv64: Add node Rol, fix InstructionBuilder Anton Romanov
Add new IR node Rol (rotate left). This allows to generate 1 (one) risc-v instruction from Integer(Long).rotateLeft intrinsic instead of 2 instructions (Ror+Neg). Fix InstructionBuilder: build Rol from rotateLeft instead of Ror+Neg. Add unfolding of Rol node in InstructionSimplifier(Arm, Arm64 and X86 Int64 type) to Neg+Ror. By compiling with dex2oat all the methods of applications below I got: in Facebook 1 Ror+Neg pattern, in Minecraft 5 Ror+Neg patterns. Test: art/test/testrunner/testrunner.py --target --64 --ndebug --optimizing Change-Id: Ic28610c6fab4f66386f2fbc0f7223ef2c0e644b6
2024-09-02Typo fix: instrinsic -> intrinsic Santiago Aboy Solanes
Change-Id: I6116b792d156970cefc277d2ea6af05627917d09
2024-09-02Don't devirtualize to an intrinsic invalid after the builder phase Santiago Aboy Solanes
As a drive-by, print the intrisic itself and not its index in graph_checker.cc. Bug: 362091596 Test: Compile the app in the bug Change-Id: I55c857f193d334d1a40cac637dfedf6334522f00
2024-03-25Remove extra uses of ClearAllBits Santiago Aboy Solanes
ArenaBitVector creation guarantees it starts empty. Add a debug check to make sure this assumption doesn't change. Note that ArenaAllocator guarantees zero-initialized memory but ScopedArenaAllocators do not. This is fine either way since the BitVector constructor calls ClearAllBits. Bug: 329037671 Test: art/test/testrunner/testrunner.py --host --64 --optimizing -b Change-Id: Icbf5e5dd1869e80b5d5828ecca9f13de30c0242b
2024-03-19Remove the environment from ArraySets which can't throw Santiago Aboy Solanes
When clearing the NeedsTypeCheck flag in ArraySet instructions, we can remove the environment as it is no longer needed. Also add a check in GraphChecker that instructions have an environment iff they need one. Test: art/test/testrunner/testrunner.py --host --64 --optimizing -b Change-Id: I698d9d88bc7c6c8569caf6397cbebf29b34585d5
2024-02-28Speed up GraphChecker::VisitInstruction Santiago Aboy Solanes
We were seeing slowdowns in graphs with many instructions within the same block. We can use the seen_ids_ bit vector to speed things up. The app in the bug goes from timeouting at 60 minutes, to compiling in ~8 minutes. Bug: 311599964 Test: art/test/testrunner/testrunner.py --host --64 --optimizing -b Test: Compile the app in the bug with dex2oatd Change-Id: I8a3801c635633d736a97cfd6b563399266a15d20
2024-02-19Do HuntForOriginalReference for the value in WBE Santiago Aboy Solanes
This allows to better detect when we have a null value at compile time. Bug: 260843353 Test: art/test/testrunner/testrunner.py --host --64 --optimizing -b Change-Id: Idb2a37a52fb379ea6264be3258d5babd10cf1273
2024-01-29Revert^7 "Disable write-barrier elimination pass" Santiago Aboy Solanes
This reverts commit 1ba3516e8c3e2b86c73084893dd297f468469181. Reason for revert: PS1 is reland as-is PS2 has two related fixes (for RISC-V and arm64) taking into account that when we store zero, we use a special register. Bug: 301833859 Bug: 310755375 Bug: 260843353 Test: lunch cf_riscv64_wear-trunk_staging-userdebug && m Test: lunch starnix_wear_yukawa-trunk_staging-userdebug && m Change-Id: I5e69890fd56404ddde56ebc457179241363d9243
2024-01-24Revert^6 "Disable write-barrier elimination pass" Matthew Reynolds
This reverts commit 1be176f5a78750e2f0e32470f8c83e3d1643954d. Reason for revert: Potential cause of build breakage for cf_riscv64_wear-trunk_staging-userdebug build 11353124 Change-Id: I5db1c9fba1edd4ab1eef30e2b547bb9649af5c10
2024-01-24Revert^5 "Disable write-barrier elimination pass" Santiago Aboy Solanes
This reverts commit 31b949bc4a76e5c6d00a8e18c346f123b5321a1c. Reason for revert: PS1 is reland as-is PS2 has two fixes: * Missed poisoning heap references in a code path * Removed incorrect DCHECK Change-Id: I81b317ddc704dbd8a173f5d5c624dbc69e2d9e60 Test: art/test/testrunner/testrunner.py --host --64 --optimizing -b Test: art/test/testrunner/testrunner.py --target --64 --optimizing -b Both commnands with `export ART_HEAP_POISONING=true` Bug: 301833859 Bug: 310755375 Bug: 260843353
2024-01-23Fix crash when inlining intrinsics with specialized HIR Santiago Aboy Solanes
During the inliner phase if we recognize an intrinsic, we insert it. This is problematic since there are some intrinsics which we only expect during the instruction builder phase. This CL skips inlining those intrinsics. Potentially, we could generate the graphs for those intrinsics and inline it, but it needs refactoring of inliner.cc. Bug: 319045458 Fixes: 319045458 Test: art/test/testrunner/testrunner.py --host --64 --optimizing -b Test: Locally compiling the app in the bug Change-Id: Ied3ec87e5655cec3bdfd978eb5c7411ddb102360
2024-01-22Revert^4 "Disable write-barrier elimination pass" Santiago Aboy Solanes
This reverts commit b5b98b9bb31acb2deffb692c50d0fbc71476663b. Reason for revert: Breaks tests in arm64 + heap poison configurations Bug: 310755375 Bug: 260843353 Change-Id: I682c74987a365497e0dbe47eba26a9ccf0513561
2024-01-22Revert^3 "Disable write-barrier elimination pass" Santiago Aboy Solanes
This reverts commit 9f8df195b7ff2ce47eec4e9b193ff3214ebed19c. Reason for revert: Fix for x86_64 with heap poison enabled This case uses a temp with index `1` in the regular FieldSet case. This is done like this due to GenerateVarHandleSet also calling HandleFieldSet. The bug was that we were allocating only one temp in the regular FieldSet case and therefore not having the temp with index `1` available. PS1 is the revert as-is. PS2 contains the fix. Test: art/test/testrunner/testrunner.py --host --64 --optimizing -b Test: Same command with heap poison enabled too Bug: 301833859 Bug: 310755375 Bug: 260843353 Change-Id: Ie2740b4c443158c4e72810ce1d8268353c5f0055
2024-01-22Create list of intrinsics with specialized HIR. Vladimir Marko
Split the intrinsics list to differentiate intrinsics with and without HIR. Eliminate unreachable intrinsic functions for intrinsics with HIR. Test: m test-art-host-gtest Test: restrunner.py --host --optimizing Bug: 319045458 Change-Id: I6144ef6b6ec547c30f2911c41125a1f07f6f6d50
2024-01-19Revert^2 "Disable write-barrier elimination pass" Santiago Aboy Solanes
This reverts commit 7c1dd6e2d1893f288214413c4b97273980f3aa4a. Reason for revert: build breakages, using a different number of temps vs the expected (crashing in https://cs.android.com/android/platform/superproject/main/+/main:art/compiler/optimizing/code_generator_x86_64.cc;l=5488;drc=7c1dd6e2d1893f288214413c4b97273980f3aa4a) Change-Id: I843c039394dd666776ea5bcb5b10b1f47df12d53
2024-01-19Revert "Disable write-barrier elimination pass" Santiago Aboy Solanes
This reverts commit 5a3271d7caafefd10a20f5a5db09d2c178838b76. Reason for revert: This CL has two fixes (codegen not doing a null check if a write barrier is being relied on, and codegen not recomputing skipping write barriers), regression tests, a new runtime check which runs in debug mode for the CC GC to ensure that the card table is set correctly for skipped write barriers, and new compile time (graph checker) tests to ensure graph consistency. This patchset updates the WriteBarrierKind to be {emit being relied on, emit not being relied on, dont emit}, which leaves the null check skip implementation to codegen. Test 2247- is removed from knownfailures.json but still skipped in MTS due to SLO requirements. Test: art/test/testrunner/testrunner.py --host --64 --optimizing -b Bug: 301833859 Bug: 310755375 Bug: 260843353 Change-Id: I025597e284b2765986e2091538680ee629fb5ae7
2023-11-14Move valid intrinsic check to graph checker Santiago Aboy Solanes
Test: art/test/testrunner/testrunner.py --host --64 -b --optimizing Change-Id: I1edfa3edc9c5e6106cba1cb540dc7fe0d1ae8fc0
2023-10-18Speed up graph checker by avoiding HInstructionList::Contains calls Santiago Aboy Solanes
With extra bookeeping we can look in a set, instead of a list. Bug: 304483915 Test: art/test/testrunner/testrunner.py --host --64 -b --optimizing Change-Id: Ia390a709b2d310590cd9296c56d9f586c72705df
2023-10-04Speed up graph checker for graphs with instructions with many uses Santiago Aboy Solanes
As part of VisitInstruction, we verify that the instruction's input_record is present in the corresponding input's GetUses. If an instruction is used in many places (e.g. 200K+ uses), the linear search through GetUses is too slow. We can use bookkeeping to search in a set, instead of a list. This makes dex2oatd over an order of magnitude faster for such cases. Bug: 301264418 Test: Manually compile the app+profile in the bug Change-Id: I3dd6d1b9b2fd65a4bf5ee8324602a412e3f1715f
2023-04-27Optimizing: Add `HInstruction::As##type()`. Vladimir Marko
After the old implementation was renamed in https://android-review.googlesource.com/2526708 , we introduce a new function with the old name but new behavior, just `DCHECK()`-ing the instruction kind before casting down the pointer. We change appropriate calls from `As##type##OrNull()` to `As##type()` to avoid unncessary run-time checks and reduce the size of libart-compiler.so. Test: m test-art-host-gtest Test: testrunner.py --host --optimizing Test: run-gtests.sh Test: testrunner.py --target --optimizing Bug: 181943478 Change-Id: I025681612a77ca2157fed4886ca47f2053975d4e
2023-04-27Optimizing: Rename `As##type` to `As##type##OrNull`. Vladimir Marko
The null type check in the current implementation of `HInstruction::As##type()` often cannot be optimized away by clang++. It is therefore beneficial to have two functions HInstruction::As##type() HInstruction::As##type##OrNull() where the first function never returns null but the second one can return null. The additional text "OrNull" shall also flag the possibility of yielding null to the developer which may help avoid bugs similar to what we have seen previously. This requires renaming the existing function that can return null and introducing new function that cannot. However, defining the new function `HInstruction::As##type()` in the same change as renaming the old one would risk introducing bugs by missing a rename. Therefore we simply rename the old function here and the new function shall be introduced in a separate change with all behavioral changes being explicit. Test: m test-art-host-gtest Test: testrunner.py --host --optimizing Test: buildbot-build.sh --target Bug: 181943478 Change-Id: I4defd85038e28fe3506903ba3f33f723682b3298
2023-04-25Use `down_cast<>` in `HInstruction::As##type()`. Vladimir Marko
One overload used `down_cast<>` and the other used `static_cast<>`, so make it consistent. Also avoid some unnecessary `As##type()` calls and make some style adjustments. Test: m test-art-host-gtest Change-Id: I1f368a0c21647b44fffb7361dbb92d8a09fbe904
2023-02-28Code sinking cleanups Santiago Aboy Solanes
* Reword/refactor sinking throwing instructions * Removed redundant GetSuccessors().empty() check * Created a check in GraphCheker regarding no successors * Update gtest to comply with the new check * Typo fixes Test: art/test/testrunner/testrunner.py --host --64 --optimizing -b Change-Id: Ibf27266f29570a4b1b63bb9bd80e5906207527c0
2023-02-15Remove RTI validation from our checks Santiago Aboy Solanes
It is possible to have untyped RTI in valid graphs due to e.g. dead code, redundant phis not replaced yet. By removing this validation, we shift the burden of the validation to the user of the RTI. Bug: 252799892 Fixes: 252799892 Test: art/test/testrunner/testrunner.py --host --64 --optimizing -b Test: dex2oat compiling the apps in the bug Change-Id: I112497bf10c180b651fd5b6e268799bc3abb27b3
2023-01-13Update the graph flags and check consistency Santiago Aboy Solanes
Check that the flags are up to date in graph checker. Mainly a correctness check CL but it brings slight code size reduction (e.g. not needing vreg info if HasMonitorOperations is false). Update loop_optimization_test to stop using `LocalRun` directly as it meant that it was breaking assumptions (i.e. top_loop_ was nullptr when it was expected to have a value). Bug: 264278131 Test: art/test/testrunner/testrunner.py --host --64 --optimizing -b Change-Id: I29765b3be46d4bd7c91ea9c80f7565a3c88fae2e
2023-01-03GraphChecker: Call VisitInstruction in VisitConstant Santiago Aboy Solanes
Fix some LSE gtests that were adding some instructions in the entry block which don't belong there in normal graphs (e.g. ArraySet, NewInstance) Bug: 262862764 Fixes: 262862764 Test: art/test/testrunner/testrunner.py --host --64 --optimizing -b Test: m test-art-host-gtest-art_compiler_tests64 Change-Id: I1ea4f3eaf79d4b98b441dcf89f73c7009a6fa9b4
2022-12-19Graph checker fixups Santiago Aboy Solanes
* Add missing VisitInstrucion in VisitLoadException. * Add commented VisitInstrucion in VisitConstant. See bug for details. * For consistency, moved all the VisitInstruction to the beginning of the methods. * Add a check in VisitTryBoundary to check for the HasTryCatch flag. Bug: 262862764 Test: art/test/testrunner/testrunner.py --host --64 --optimizing -b Change-Id: I26f06dabea44671f6bce838c60083e1bb0babef4
2022-12-16Set HasMonitorOperations in the outer graph when inlining Santiago Aboy Solanes
If the callee graph has monitor operations, the outer graph will have them too when inlining. If we don't do this, e.g. we will skip adding the needed vreg info https://cs.android.com/android/platform/superproject/+/master:art/compiler/optimizing/code_generator.cc;l=1193;drc=434d968b4af0bc8af9889170250bee3e08839bea. Test: art/test/testrunner/testrunner.py --host --64 --optimizing -b Change-Id: I97817ea93c12727bb7d198fb5abea21c32d181c9
2022-12-05Update CanTriggerGC flag for ArraySet Santiago Aboy Solanes
ArraySet instructions can trigger a GC only when perforing a type check. When clearing the needs type check flag, we should also clear the CanTriggerGC flag from the instruction's side effects. Note that once we clear the needs type check flag, we never set it again. Add check in graph checker that the needs type check and the can trigger GC flag are consistent. Add can_trigger_gc property to graph visualizer that reflects whether the ArraySet instruction can trigger a GC. Test: art/test/testrunner/testrunner.py --host --64 --optimizing -b Change-Id: I4c74f902aabf2339bd292e9b24737f55d2737440
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
2022-09-08Reland "Add an environment to the beginning of catch blocks" Santiago Aboy Solanes
This reverts commit 37fe26288aaacae0f26873131dd92704796e09ec. Reason for revert: Pattern match fix Bug: 227283224 Test: art/test/testrunner/testrunner.py --host --64 --optimizing -b Test: art/test/testrunner/testrunner.py --host --64 --optimizing -b --debuggable 565-checker-condition-liveness (also for --target) Change-Id: Iaf784c12fb6229df6cfbd9a1b43467f5ed43c4d4
2022-09-06Revert "Add an environment to the beginning of catch blocks" Santiago Aboy Solanes
This reverts commit f976aa822dd35496e4e936b5802af0d53d39ac95. Reason for revert: breaking some tests https://ci.chromium.org/ui/p/art/builders/ci/angler-armv8-ndebug/3244/blamelist Change-Id: I5c2732e81bef8a7e83b661b1b947d7c079994c1b
2022-09-06Add an environment to the beginning of catch blocks Santiago Aboy Solanes
We can use the HNop to generate an environment for us and start using the existing environment infrastructure (e.g. EmitEnvironment) for recording the catch block's environment. This is done to provide support for try catch inlining since it requires several environments rather than just the one. When doing so, we now have a HNop at the beginning of each catch block. We have to modify code sinking to allow it to sink code past this HNop because if we don't we will sink code right before this instruction which will break the invariant of that HNop being the first instruction of a catch block. Test: art/test/testrunner/testrunner.py --host --64 --optimizing -b Change-Id: I16e7b8cad499fd2d6f7415112b46206db8daf544
2022-06-08Revert^2 "ART: Removes SuspendCheck for plain Stelios Ioannou
loops with a low trip count." This change removes SuspendCheck for plain loops with a low trip count. The SuspendCheck in the codegen makes sure that the thread can be interrupted during execution for GC. Not being able to do so might decrease the responsiveness of GC in the case when a very long loop or a long recursion is being executed. However, for plain loops with a small trip count, the removal of SuspendCheck should not affect the GC's responsiveness by a large margin. Consequently, since the thread won't be interrupted for plain loops, it is assumed that the performance might increase by removing SuspendCheck. Also add explicit checks to existing code to ensure that SuspendCheck is never null when it is used. This reverts commit 8f6b99fba2d043265a84d599a967d52f66738ad6 Reason for revert: Included fix for CHAGuardVisitor::HoistGuard crash by disabling codegen for optimized SuspendCheck nodes instead of removing the SuspendCheck node itself. Test: art/test.py -v -j12 --host --64 -t 2233-checker\ -remove-loop-suspend-check --run-test --optimizing Change-Id: Id6296aded91e1cf49b8f3f339dc83613cbedf876
2021-09-29Revert "ART: Removes SuspendCheck for plain loops with a low trip count." Nicolas Geoffray
This reverts commit 3de02fb67de386368c9fe39ab5a0133afcf1d785. Reason for revert: b/201413752 Change-Id: I8a3a56cfb81fa88f49992615696260dfbc79bb67
2021-09-13ART: Removes SuspendCheck for plain loops with a low trip count. Stelios Ioannou
This change removes SuspendCheck for plain loops with a low trip count. The SuspendCheck in the codegen makes sure that the thread can be interrupted during execution for GC. Not being able to do so might decrease the responsiveness of GC in the case when a very long loop or a long recursion is being executed. However, for plain loops with a small trip count, the removal of SuspendCheck should not affect the GC's responsiveness by a large margin. Consequently, since the thread won't be interrupted for plain loops, it is assumed that the performance might increase by removing SuspendCheck. Test: art/test.py -v -j12 --host --64 -t 2233-checker\ -remove-loop-suspend-check --run-test --optimizing Change-Id: Ic9f1387059669645ad836d8277bfbc7553aa6e2f
2021-05-24dex2oat: Abort app compilation without boot image. Vladimir Marko
Also avoid crash in GraphChecker for bad instructions that throw into catch block but do not have an environment. And DCHECK() that java_lang_Double_doubleToRawLongBits and java_lang_Float_floatToRawIntBits are intrinsics. Test: New test Dex2oatTest.MissingBootImageTest. Test: m test-art-host-gtest Test: testrunner.py --host --optimizing Bug: 188684102 Change-Id: I13ec2ee8a7968c0a5652aa67ec6291d07a986c80
2020-07-24Update language to comply with Android’s inclusive language guidance Ian Pedowitz
See https://source.android.com/setup/contribute/respectful-code for reference Bug: 161896447 Bug: 161850439 Bug: 161336379 Test: m -j checkbuild cts docs tests Change-Id: I32d869c274a5d9a3dac63221e25874fe685d38c4
2020-06-09ART: Introduce predicated vector instructions. Artem Serov
This CL introduces a minimal changes to the IR to support autovectorization with use of predicated execution of SIMD instructions (e.g. Arm SVE). Test: test-art-target, test-art-host. Change-Id: Ibb7c5520fec6b858fb29f0dde19ec65501831a3a
2020-01-08Add OptimizingUnitTestHelper::GraphChecker methods Evgeny Astigeevich
GraphChecker should be always used in gtests where it is possible. Currently only ImprovedOptimizingUnitTest allows unit tests to use GraphChecker. Unit tests based on OptimizingUnitTest cannot use this functionality. Another issue is that GraphChecker has reference type information checks which unit tests cannot satisfy. The CL resolves the issues by: * Adding a public GraphChecker::SetRefTypeInfoCheckEnabled. * Adding a private OptimizingUnitTestHelper::CheckGraph(HGraph* graph, bool check_ref_type_info). * Adding a public OptimizingUnitTestHelper::CheckGraph(graph) to perform all checks. * Adding a public OptimizingUnitTestHelper::CheckGraphSkipRefTypeInfoChecks(graph) to perform all checks but reference type information checks. * Updating ImprovedOptimizingUnitTest::CheckGraph to use OptimizingUnitTestHelper::CheckGraph. To demonstrate how the new API can be used, unit tests for the Load-Store-Analysis pass are updated. Test: test.py --host --optimizing --jit --gtest Test: test.py --target --optimizing --jit Test: run-gtests.sh Change-Id: I7ca0983e66d9904073f0d711b3de96cccfe42746
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
2018-12-27ART: Refactor for bugprone-argument-comment Andreas Gampe
Handles compiler. Bug: 116054210 Test: WITH_TIDY=1 mmma art Change-Id: I5cdfe73c31ac39144838a2736146b71de037425e
2018-05-03Perform rudimentary check on graph size for no-change assertions. Aart Bik
Rationale: This will find blatant violations of asserting a no-change pass change if the graph size changed nevertheless. Bug: 78171933 Test: test-art-host,target Change-Id: I07b38e71c75dd6f728246d096976c8333b363329
2018-03-27Revert^4 "Compiler changes for bitstring based type checks." Vladimir Marko
Disabled the build time flag. (No image version bump needed.) Bug: 26687569 Bug: 64692057 Bug: 76420366 This reverts commit 3fbd3ad99fad077e5c760e7238bcd55b07d4c06e. Change-Id: I5d83c4ce8a7331c435d5155ac6e0ce1c77d60004
2018-03-26Revert^3 "Compiler changes for bitstring based type checks." Andreas Gampe
This reverts commit 3f41323cc9da335e9aa4f3fbad90a86caa82ee4d. Reason for revert: Fails sporadically. Bug: 26687569 Bug: 64692057 Bug: 76420366 Change-Id: I84d1e9e46c58aeecf17591ff71fbac6a1e583909
2018-03-22Revert^2 "Compiler changes for bitstring based type checks." Vladimir Marko
Add extra output for debugging failures and re-enable the bitstring type checks. Test: m test-art-host-gtest Test: testrunner.py --host --optimizing --jit Test: testrunner.py --host -t 670-bitstring-type-check Test: Pixel 2 XL boots. Test: testrunner.py --target --optimizing --jit Test: testrunner.py --target -t 670-bitstring-type-check Bug: 64692057 Bug: 26687569 This reverts commit bff7a52e2c6c9e988c3ed1f12a2da0fa5fd37cfb. Change-Id: I090e241983f3ac6ed8394d842e17716087d169ac
2018-01-25Revert "Compiler changes for bitstring based type checks." Nicolas Geoffray
Bug: 64692057 Bug: 71853552 Bug: 26687569 This reverts commit eb0ebed72432b3c6b8c7b38f8937d7ba736f4567. Change-Id: I7daeaa077960ba41b2ed42bc47f17501621be4be