]> Witch of Git - ivy/commit
Avoid redundant loads in capture generation
authorCassie Jones <code@witchoflight.com>
Mon, 2 Mar 2020 15:07:40 +0000 (16:07 +0100)
committerCassie Jones <code@witchoflight.com>
Mon, 2 Mar 2020 15:07:40 +0000 (16:07 +0100)
commit5749658633632313f40ae9173335ee839d27e5c7
tree948ca90693b1462d0f592cb4ddb4044fc01113d8
parent3a463fcb41ae9c8dd8b6fd985a84a99da2eee55f
Avoid redundant loads in capture generation

When generating the SSA form for captures, the previous code generated
loads of all the variables that existed. This worked correctly for
some cases, but since it skipped the system in trans_expr that forwards
loads, it would sometimes generate loads to SSA variables that could
just be directly referenced instead, which would end up causing loads
from stack slots that were never written to due to optimizations.

Using trans_expr on the captured variable instead of generating loads
directly lets us reuse that capture logic, and it ends up making the
code simpler :D
.gitignore
src/trans.rs