From 0d1fad12f0855130bf811e48bb4446019f7bcfe5 Mon Sep 17 00:00:00 2001 From: Bill Currie Date: Tue, 29 Jun 2021 09:12:57 +0900 Subject: [PATCH] [qfcc] Add some comments --- tools/qfcc/source/dags.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tools/qfcc/source/dags.c b/tools/qfcc/source/dags.c index ea040587a..cc453ae55 100644 --- a/tools/qfcc/source/dags.c +++ b/tools/qfcc/source/dags.c @@ -266,14 +266,21 @@ dag_make_children (dag_t *dag, statement_t *s, for (i = 0; i < 3; i++) { dagnode_t *node = dag_node (operands[i + 1]); dagnode_t *killer = 0; + if (node && node->killed) { + // If the node has been killed, then a new node is needed killer = node->killed; node = 0; } + if (!node) { + // No valid node found (either first reference to the value, + // or the value's node was killed). node = leaf_node (dag, operands[i + 1], s->expr); } if (killer) { + // When an operand refers to a killed node, it must be + // evaluated AFTER the killing node has been evaluated. set_add (node->edges, killer->number); } children[i] = node;