summaryrefslogtreecommitdiff
path: root/chapter05/README.md
diff options
context:
space:
mode:
authorTamas Hadhazy <helsgithub15@gmail.com>2024-09-28 16:40:17 +0100
committerCliff Click <cliffc@acm.org>2024-09-29 09:28:57 -0700
commit6c4ff259b8428870eee1429d364a28426f1a6d2e (patch)
tree0e3c3a4a12396599a2fb6161cc314bff1b94f5c4 /chapter05/README.md
parent4fa25c5441c75824d2d0ca800e79f66bc6815b5f (diff)
downloadSimple-6c4ff259b8428870eee1429d364a28426f1a6d2e.tar.gz
Simple-6c4ff259b8428870eee1429d364a28426f1a6d2e.zip
c will die when the scope dies.
Diffstat (limited to 'chapter05/README.md')
-rw-r--r--chapter05/README.md4
1 files changed, 3 insertions, 1 deletions
diff --git a/chapter05/README.md b/chapter05/README.md
index ef7f79da..5619c450 100644
--- a/chapter05/README.md
+++ b/chapter05/README.md
@@ -164,7 +164,9 @@ To resolve this, a Φ (Phi) function is inserted.
b = Phi(2, 1);
c = Phi(1, 0); // dead
```
-`c` has no uses, after merging the scopes together it can be removed.
+`c` will die when the scope where `c` is defined dies. This does not happen when merging but after the `return`.
+The reason why `b` stays alive is because `return` is using it as one of its inputs.
+
Before, we go ahead and parse down the if statement we duplicate the scope:
```java
ScopeNode fScope = _scope.dup();