On Tue, 12 Dec 2006, Christopher Li wrote: > > Thanks for your explain. I see, you want to generate the dominator > first. Basically, yes. That way, when we start generating code in any basic block, we usually either (a) have the outputs from the dominators or (b) we're the top block in a loop and any freedom we can use to pick our preferred registers is probably a good thing. The current "example.c" was very much written with the intent that it would not ever do any _smart_ register allocation, but just allocate registers on-the-fly. But doing that requires that you set things up so that the stupid approach can still get reasonable results. The way the death-notes work etc was all designed exactly so that the register "allocator" never really needed any global visibility at all, it could just work on an instruction-per-instruction basis. That said, the simplicity of it all in example.c still doesn't mean that it _works_. It really doesn't, and isn't even really close. But it occasionally results in code that looks _almost_ like it could be run ;) Linus - To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html