Commit 2ec664a
authored
[release/9.0-staging] [mono][interp] Minor SSA fixes (#116428)
* [mono][interp] Add possibility to configure interp options from env var
* [mono][interp] Update var definition when inserting new instructions during cprop (#116179)
The definition was not updated, leading to invalid optimizations later on.
* [mono][interp] Fix broken code attempting to reapply superinstruction optimization (#116069)
For each instruction in a basic block we check for patterns. In a certain case, once we replaced the instruction with a new one, we were attempting to do a loop reiteration by setting `ins = ins->prev` so after the loop reincrements with `ins = ins->next` we check super instruction patterns again for the current instruction. This is broken if `ins` was the first instruction in a basic block, aka `ins->prev` is NULL. This used to be impossible before SSA optimizations, since super instruction pass was applying optimizations in a single basic block only.1 parent 805cb73 commit 2ec664a
2 files changed
+10
-4
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8981 | 8981 | | |
8982 | 8982 | | |
8983 | 8983 | | |
| 8984 | + | |
| 8985 | + | |
| 8986 | + | |
| 8987 | + | |
8984 | 8988 | | |
8985 | 8989 | | |
8986 | 8990 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3124 | 3124 | | |
3125 | 3125 | | |
3126 | 3126 | | |
| 3127 | + | |
3127 | 3128 | | |
3128 | 3129 | | |
3129 | 3130 | | |
| |||
3204 | 3205 | | |
3205 | 3206 | | |
3206 | 3207 | | |
| 3208 | + | |
3207 | 3209 | | |
3208 | 3210 | | |
3209 | 3211 | | |
| |||
3400 | 3402 | | |
3401 | 3403 | | |
3402 | 3404 | | |
3403 | | - | |
| 3405 | + | |
3404 | 3406 | | |
3405 | 3407 | | |
| 3408 | + | |
| 3409 | + | |
3406 | 3410 | | |
3407 | 3411 | | |
3408 | 3412 | | |
| |||
3801 | 3805 | | |
3802 | 3806 | | |
3803 | 3807 | | |
3804 | | - | |
3805 | | - | |
3806 | | - | |
| 3808 | + | |
3807 | 3809 | | |
3808 | 3810 | | |
3809 | 3811 | | |
| |||
0 commit comments