Re: Where are expression trees of SUIF in MachineSUIF?

"Uncle Noah" <nkavv@skiathos.physics.auth.gr>
30 Nov 2006 02:07:16 -0500

          From comp.compilers

Related articles
Where are expression trees of SUIF in MachineSUIF? kanvard@gmail.com (kanvard) (2006-11-26)
Re: Where are expression trees of SUIF in MachineSUIF? nkavv@skiathos.physics.auth.gr (Uncle Noah) (2006-11-27)
Re: Where are expression trees of SUIF in MachineSUIF? kanvard@gmail.com (kanvard) (2006-11-29)
Re: Where are expression trees of SUIF in MachineSUIF? nkavv@skiathos.physics.auth.gr (Uncle Noah) (2006-11-30)
Re: Where are expression trees of SUIF in MachineSUIF? dmaze@mit.edu (David Z Maze) (2006-12-01)
Re: Where are expression trees of SUIF in MachineSUIF? nkavv@skiathos.physics.auth.gr (Uncle Noah) (2006-12-03)
| List of all articles for this month |

From: "Uncle Noah" <nkavv@skiathos.physics.auth.gr>
Newsgroups: comp.compilers
Date: 30 Nov 2006 02:07:16 -0500
Organization: Compilers Central
References: 06-11-10706-11-130
Keywords: tools

kanvard wrote:
> Machine-SUIF is much powerful than LCC, and LCC has weak register
> allocator. LANCE is not an open source project now, i can not get its
> source code.


You are right.
Be aware of the major WEAKness of SUIF/Machine-SUIF:
Each pass works on I/O files that are SUIF binaries. Compilation times
due to this (parsing, data structure filling, binary file writing) take
much much longer (orders of magnitude).


> I think there are two means to accomplish tree parsing in
> SUIF/MachineSUIF:
>
> 1) Build AST trees from expression trees (in "tree_instr" data
> structure) of SUIF1, then use iburg/lburg to produce instruction
> selector. The output of this instruction selector is the input of
> graph-coloring register allocator of MachineSUIF.
>
> 2) Build AST trees from program SUIFvm IR of MachineSUIF. There are
> cross references between nodes of the Ownership Tree of a SUIF progam.
> That is, expression trees is hidden in the Ownership Tree of basic
> blocks of CFG.


Even though 2) is what i would do, if you do 1) you already have the
ASTs, so it might be more proper from an engineering point of view. You
might have to lower these trees into "low SUIF" form. This can be done
with the "do_lower" pass.


> I want to use some passes of SUIF1, and also need to use regsiter
> allocator of MachineSUIF.


SUIF1 breaks most useful programs if you intermix SUIF2/MachSUIF2 as
well. But you could translate suif1 binaries (.spd files) to C files
via the C backend (s2c). This could work but you never know.


> I really appreciate your help.


Nice to see that you're interested in SUIF/MachSUIF infrastructure. :)


Nikolaos Kavvadias


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.