summaryrefslogtreecommitdiff
path: root/compiler/optimizing/graph_checker_test.cc
diff options
context:
space:
mode:
author Santiago Aboy Solanes <solanes@google.com> 2022-11-03 14:19:45 +0000
committer Santiago Aboy Solanes <solanes@google.com> 2022-11-04 10:29:44 +0000
commit968db0cb2dde0a992727bfa4ed3537f4087ed2f5 (patch)
treecb2a2deb1bb445cab1ccafb71e10006633f017c9 /compiler/optimizing/graph_checker_test.cc
parentbab6beb1f1299c13a0be5fbb4344facb6d7be7e3 (diff)
Refine where stores are visible in LSE even more
In aosp/2219242 we allowed LSE to run in catch blocks but when setting the restrictions we were overly restrictive and we weren't allowing LSE to run in catches where we should have e.g. try { ... } catch (ArrayIndexOutOfBoundsException expected) { ... LSE can now run here for some instructions ... try { ... } catch (ArrayIndexOutOfBoundsException expectedToo) { ... } } If a catch block starts a try we would have something like Nop LoadException ClearException The `... LSE can now run here ...` instructions above TryBoundary kind:entry and it would have xhandlers. The instructions before the TryBoundary kind:entry are not considered to be part of a try and they behave like normal code would. As a note if code that looks like: try { try { ... } catch (ArrayIndexOutOfBoundsException expectedToo) { ... throwing instructions here ... } } catch (ArrayIndexOutOfBoundsException expected) { ... } the `throwing instructions here` will not be part of the catch block. Instead, we would have Nop LoadException ClearException TryBoundary kind:entry // Next block, within the TryBoundary and considered part of a try The `... throwing instructions here ...` instructions Test: art/test/testrunner/testrunner.py --host --64 --optimizing -b Bug: 227283233 Change-Id: I6b0cf66bc710a9009514f59076ae3ef0bbc287b7
Diffstat (limited to 'compiler/optimizing/graph_checker_test.cc')
0 files changed, 0 insertions, 0 deletions