DU-chains Vs UD-chains

2008-04-15 Thread Fran Baena
Hi all, i'm currently studing alias analysis, and i have some questions, for instance, when are the du/ud-chains calculated? Before translating to SSA form? If i'm not wrong the def-use chain connects a definition of a variable to all the uses it may flow to, and the use-def chain connects a use

Mapping back to original variables after SSA optimizations

2008-04-10 Thread Fran Baena
Hi all, i have a doubt about unSSA: is it allways possible to map back the versioned variables to the original variable? If it could be possible, is there an algorithm that describe this translation back? I have read the paper Efficiently computing static single assignment form and the control

Re: SSA Vs unSSA

2008-04-09 Thread Fran Baena
You'd want to avoid translating from tuples back to nested trees. Instead when expanding from SSA form (ok, let's make that semi-SSA form that just keeps the UD chains but gets rid of PHI nodes (and maybe overlapping life ranges)) the expander can do expression combining by following

Re: SSA Vs unSSA

2008-04-09 Thread Fran Baena
Depends on what SSA form you want. A rewriting form is problematic because backends are allowed to modify the IL behind the back of the optimizers and can emit instructions that are difficult/impossible to represent in SSA form (parallel). I don't exactly know what rewriting SSA form means.

Re: RTL definition

2008-03-11 Thread Fran Baena
Hi, By the way, RTL is not really machine-independent. The data structures are machine independent. But the contents are not. You can not, even in principle, take the RTL generated for one processor and compile it on another processor. I thought that RTL represented something close to

RTL definition

2008-03-10 Thread Fran Baena
Hi all, RTL represents a low-level language, machine-independent. But I didn't find any especification of such language represented. This is, I found no document where the language represented were described or defined in a grammar way. So, I 'd thank you to show me where the RTL-language is

Re: RTL definition

2008-03-10 Thread Fran Baena
Hi Ramana, I have read the documentation and i didn't found where it is described, maybe I searched in wrong place. RTL language definition is in rtl.def and gives the different operators and operands. info gccint on a standard linux distribution should help you figure out details

Re: RTL definition

2008-03-10 Thread Fran Baena
2008/3/10, Jim Wilson [EMAIL PROTECTED]: Fran Baena wrote: RTL represents a low-level language, machine-independent. But I didn't find any especification of such language represented. This is, I found no document where the language represented were described or defined in a grammar

SSA alias representation

2008-02-27 Thread Fran Baena
Symbols with their address taken are only renamed when they appear as virtual operands. So, if you have: p_3 = (i_5 10) ? a : b a = 4 notice that 'a' is never renamed in the LHS of the assignment. It's renamed as a virtual operand: p_3 = (i_5 10) ? a : b # a_9 =

Re: SSA alias representation

2008-02-25 Thread Fran Baena
If a name tag is associated to a ssa name, ¿when does it make sense to version a name tag? (If it does) 2008/2/21, Diego Novillo [EMAIL PROTECTED]: On 2/21/08 1:13 PM, Fran Baena wrote: 2008/2/21, Diego Novillo [EMAIL PROTECTED]: On 2/19/08 2:27 PM, Fran Baena wrote: Hi everybody

Re: SSA alias representation

2008-02-21 Thread Fran Baena
2008/2/21, Diego Novillo [EMAIL PROTECTED]: On 2/19/08 2:27 PM, Fran Baena wrote: Hi everybody, i am studing how gcc carries out Alias Representation and some questions appear. For instance, given this code portion: if ( ... ) p = a; else

SSA alias representation

2008-02-19 Thread Fran Baena
Hi everybody, i am studing how gcc carries out Alias Representation and some questions appear. For instance, given this code portion: if ( ... ) p = a; else if ( ... ) p = b; else p = c; a = 5; b = 3; d = *p4; My questions are: - both p like *p need a Name Memory Tag

Re: alias and pointers analysis

2007-11-14 Thread Fran Baena
2007/11/13, Diego Novillo [EMAIL PROTECTED]: On Nov 13, 2007 1:38 PM, Fran Baena [EMAIL PROTECTED] wrote: 1. Convert the function into GIMPLE form. Implemented in gimplify.c and c-simplify.c. 2. Find variable references in the code. Implemented in tree-dfa.c. 3. Build a control

Re: alias and pointers analysis

2007-11-13 Thread Fran Baena
Hi again, i have been studing gcc docs to undestand SSA and steps to take to get SSA form. In one GCC online document: http://gcc.gnu.org/projects/tree-ssa/#ssa, the steps to translate to SSA form are listed. Here, i copy and paste the mentioned text: [] Conversion to SSA form is a three

alias and pointers analysis

2007-10-25 Thread Fran Baena
Hi, once i have been reading lots of documents about SSA computing. I have a few questions, conceptual ones, that stop me understanding the whole goal of the method. Here i go: * Why alias analysis? I mean, the pointers could be versioned like the others vars. (I'm not saying it's not usefull, i

indirect memory op in SSA

2007-10-18 Thread Fran Baena
Hi! i am trying to implement the SSA form, inspirated in GCC way. I have found problems in processing indirect memory operations like arrays, structures and pointers. My questions are: are nodes STRUCT_FIELD_TAG, NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG used for that purpose? and, where i can find