I think the answer is the dataflow analysis part of the dragon book. Take common subexpression elimination for example, available expression analysis will be performed to achieve this optimization for non-SSA IR.
I'm aware this is an old thread, but I thought it would be worth a brief comment given the relevance of some work I've done.
Personally I hope the answer to this question is yes, since last year I started a personal project to implement an LLVM compiler for AGC (LLVM, Clang).
I found it took a lot of effort just to manipulate the existing framework of the ...