|Where are expression trees of SUIF in MachineSUIF? firstname.lastname@example.org (kanvard) (2006-11-26)|
|Re: Where are expression trees of SUIF in MachineSUIF? email@example.com (Uncle Noah) (2006-11-27)|
|Re: Where are expression trees of SUIF in MachineSUIF? firstname.lastname@example.org (kanvard) (2006-11-29)|
|Re: Where are expression trees of SUIF in MachineSUIF? email@example.com (Uncle Noah) (2006-11-30)|
|Re: Where are expression trees of SUIF in MachineSUIF? firstname.lastname@example.org (David Z Maze) (2006-12-01)|
|Re: Where are expression trees of SUIF in MachineSUIF? email@example.com (Uncle Noah) (2006-12-03)|
|From:||"Uncle Noah" <firstname.lastname@example.org>|
|Date:||27 Nov 2006 17:43:41 -0500|
|Posted-Date:||27 Nov 2006 17:43:41 EST|
Hi. BTW the best place to talk about Machine-SUIF in particular would
> MachineSUIF has an instruction selection pass "do_gen -target_lib" and
> a register allocation pass "do_raga".
The instruction selection pass won't do much unless you fill it with
lots of optimizations especially peepholes working on SUIFvm IR level.
Machine-SUIF has rather extensive documentation and a clean but heavy
API. It requires some time (some months) to get going.
do_raga applies "George-Appel" or "iterated-coalescing" register
allocation. Practically, it is a rather good allocator, reusing hard
regs to the maximum. This complicates instruction scheduling (i mean
narrows performance benefits that you can get from scheduling).
> I am going to build a instruction selector using iburg/lburg/olive
> and then use the register allocator of MachineSUIF.
LCC and LANCE work pretty well with these tools. Machine-SUIF would
require quite some work. I've never heard of anyone doing it (and
> How to build a code generator using iburg/lburg/olive in MachineSUIF
You have to build clean expression trees. Unfortunately such facilities
fall on the SUIF side. SUIF (1 or 2) are kind of frontends (down to
high/low SUIF which are a form of typed expession trees).
My 2c would be on bringing Machine-SUIF closer to the APIs of the code
selection tools. Thus, you have to rebuild the required trees from
SUIFvm rather from the SUIF (frontend) dat a structures.
Still, i don't feel confident with SUIF frontend (and it's completely
unsupported) that's why i believe my 2c is more pragmatic.
> Do i need to build such a tree pattern-matcher in SUIF, use
> "do_lower, do_s2m" to transform IR from SUIF to MachineSUIF, and
> then use "do_raga" of MachineSUIF to do register allocation? Where
> are expression trees of SUIF in MachineSUIF? Do i need to build
> expression trees from MachineSUIF IR using MachineSUIF libraries?
Your last point is what i would bet on. Do your work on either SUIF or
Machine-SUIF alone. To mess with both would be more difficult. Don't
worry about "raga", it can be retargeted under small effort. Take
example of Alpha or ARM.
> Thank you!
You are welcome.
Return to the
Search the comp.compilers archives again.