Hi, I've just merged my SSA branch which replaces the SSA conversion by one using the 'classical' way (via the iterated dominance frontier) which was waiting since March. This rewrite of the SSA conversion solves two main problems: 1) the phi-nodes was not always placed wheer their corresponding paths joined 2) the way undefined var were handled created self-defined pseudos or chains of self-defined pseudos (now they are tracked as PSEUDO_UNDEF). This is a big step toward correct SSA but more is still needed: - Fix/rewrite simplify_loads() which suffers from the same problems as the main conversion. Ideally, it should reuse the new code. Some work is already done in this direction but the context is quite different, more concerned about pointers than with 'simple' variables, and needs more work. - SSA is broken, probably in several ways, during BB simplification. - Some incorrect phi-nodes may be created during linearization (when some branches are inactive/never reachable). Also: - a lot of places can make good use of the dominance tree. - UNDEFs must be handled: * issue warning for unintilized vars * offer an option to initialize them to 0 - some optimizations are possible on the new SSA conversion (but the performance is equivalent or slightly better than it was). -- Luc