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 [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html