Commit 441c570
authored
Defensively copy IRCode from semi-concrete eval for inlining (#48963)
Currently, semi-concrete eval results are one-to-one associated with
a particular callsite, so in theory we can destroy them during
inlining and nothing bad will happen. However, since we propagate
them using the `:info` field, this breaks the assumption that we
can copy IRCode around and re-run the compiler on it without ill
effect. In general, the `:info` field is assumed generally
immutable and mutating the IR containted therein breaks all sorts
of assumptions. Perhaps in the future, we can avoid destroying
the IRCode that we're about to inline, which would make all this
copying unnecessary (note that we're already copying for every case
other than semi-concrete eval), but for now just fix the robustness
issue here.1 parent 369660f commit 441c570
1 file changed
+1
-1
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1475 | 1475 | | |
1476 | 1476 | | |
1477 | 1477 | | |
1478 | | - | |
| 1478 | + | |
1479 | 1479 | | |
1480 | 1480 | | |
1481 | 1481 | | |
| |||
0 commit comments