Count switch as branch.
Rationale:
Builder heuristics bail for method without branches. A method with a
switch should not be discarded that easily.
Boot size delta (oat files, sailfish arm64): + 16488 bytes
Test: test-art-host,target
Bug: b/77652521
Change-Id: I6f90fcd65263e85024d8a268bcd8bfa739af2c6f
diff --git a/compiler/optimizing/block_builder.cc b/compiler/optimizing/block_builder.cc
index 95f2e98..d9df23f 100644
--- a/compiler/optimizing/block_builder.cc
+++ b/compiler/optimizing/block_builder.cc
@@ -107,6 +107,7 @@
number_of_branches_++;
MaybeCreateBlockAt(dex_pc + instruction.GetTargetOffset());
} else if (instruction.IsSwitch()) {
+ number_of_branches_++; // count as at least one branch (b/77652521)
DexSwitchTable table(instruction, dex_pc);
for (DexSwitchTableIterator s_it(table); !s_it.Done(); s_it.Advance()) {
MaybeCreateBlockAt(dex_pc + s_it.CurrentTargetOffset());