diff options
author | 2022-12-05 14:38:00 +0000 | |
---|---|---|
committer | 2022-12-06 13:45:37 +0000 | |
commit | 31242a99a1b58ce5267c1a74ad96a9d0b6dc1a94 (patch) | |
tree | c7ff6d1c5894656eff061277f8f2ce10233f4a02 /compiler/optimizing/builder.h | |
parent | 4f715add9d7f1bc84cfb4fe958ce4afdbdac67c2 (diff) |
Update domination chain and RPO manually in MaybeAddExtraGotoBlocks
There's no need to recompute the whole graph as we know what changed.
As a drive-by, we now don't return false for graphs with irreducible
loops so we can remove that restriction from the builder. However,
if a graph with irreducible loops hits this path it means that:
A) it's being inlined
B) Has irreducible loops
We don't inline graphs with irreducible loops, and after building
for inline we don't remove them either because constant folding
and instruction simplifier don't remove them, and DCE doesn't
run for graphs with irreducible loops. So, in terms of dex2oat's
outputs nothing should change.
Test: art/test/testrunner/testrunner.py --host --64 --optimizing -b
Change-Id: I8cbf1b5f0518bb5dd14ffd751100ea81f5478863
Diffstat (limited to 'compiler/optimizing/builder.h')
-rw-r--r-- | compiler/optimizing/builder.h | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/compiler/optimizing/builder.h b/compiler/optimizing/builder.h index 85fa8d4123..145dbfb6b9 100644 --- a/compiler/optimizing/builder.h +++ b/compiler/optimizing/builder.h @@ -57,8 +57,7 @@ class HGraphBuilder : public ValueObject { // When inlining, we sometimes want to add an extra Goto block before the Exit block. This is done // in the building phase as we do not allow the inlining phase to add new instructions. - // Returns false if the graph we are adding the extra block has irreducible loops. - bool MaybeAddExtraGotoBlocks(); + void MaybeAddExtraGotoBlocks(); HGraph* const graph_; const DexFile* const dex_file_; |