Some phi-nodes are not needed. For example, a phi-node having a unique value (either a single operand or several but all identical) can be safely replaced with this unique value. Such trivial ph nodes are already removed. The object of this series is to detect and remove more complex trivial phi-nodes: ones where the operands are themselves defined by a phi-node and when doing the transitive closure there is only a single independent value. Such phi-nodes can also be safely be replaced by this unique value. This series is available for review & testing in the Git repository at: git://github.com/lucvoo/sparse-dev.git rem-trivial-phi ---------------------------------------------------------------- Luc Van Oostenryck (8): move DEF_OPCODE() to header file trivial-phi: add testcase for unneeded trivial phi-nodes trivial-phi: make clean_up_phi() more sequential trivial-phi: extract trivial_phi() from clean_up_phi() trivial-phi: early return trivial-phi: use a temp var for the real source trivial-phi: directly return the unique value trivial-phi: remove more complex trivial phi-nodes linearize.h | 8 ++++++ simplify.c | 63 ++++++++++++++++++++++++++++------------- validation/optim/trivial-phis.c | 14 +++++++++ 3 files changed, 66 insertions(+), 19 deletions(-) create mode 100644 validation/optim/trivial-phis.c