Files
sdk/runtime
Alexander Markov a96a8a78d4 [vm/compiler] Fix environments when inserting conditional dispatch table call
Avoid adding environments on control flow instructions (block entries,
branches and gotos) when inserting conditional dispatch table calls.

UseTableDispatch pass is performed after EliminateEnvironments pass
which removes most environments including environments on those
instructions, so these environments are unnecessary and would have
been removed by EliminateEnvironments if it was run again.

Also, these environments confuse register allocation and cause
"unreachable code" crash in FindCover (called from ResolveControlFlow).

TEST=vm/dart/dynamic_module_pragmas_il_test

Change-Id: Ifb4b268e4cade2c71304798b4e0dfeacf1f8089b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/377842
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Slava Egorov <vegorov@google.com>
2024-08-02 14:09:34 +00:00
..
2024-07-30 18:08:46 +00:00