2007/10/22, Paolo Bonzini <[EMAIL PROTECTED]> wrote: > J.C. Pizarro wrote: > > Are they mixed into a single > >> variable declaration? Are they treated as separate variables and > >> handled later by the register allocator? > > If possible, the former. If not possible, they are kept as separate > variables. This happens if the subscripted variables have overlapping > live ranges because of optimizations that were made on the SSA form.
Please, to use temporaly the SSA form for the analysis of live ranges of the variables , but don't use it to generate SSA-optimized code. > > > Is not it easy to write 3 stages GENERIC->GIMPLE->RTL instead of 5 stages? > > > > Is meaningful the optimization of the complex bi-transformation > > GIMPLE->SSA->GIMPLE? > > I don't know what you mean, but yes, there is value in going to SSA and > back. SSA makes global optimization much easier, and that's the main > improvement introduced in GCC 4.0 and later refined. Of course not all > optimizations benefit from SSA, some (such as OpenMP implementation) > only benefit from having a high-level intermediate representation > (GIMPLE). But most do, in one way or the other. Wrong, SSA doesn't make global optimization much easier, no such global optimization exists for SSA, and SSA makes harder the reincorporation of others kinds of specific optimizers that they need to optimize still more. > In the future, GCC might instead do GENERIC->GIMPLE->SSA->RTL, without > going back to GIMPLE. But the SSA step is there to stay. :-) In the future, GCC will no be the best compiler, the best compiler could be a powerful compiler with inferences's machines, learning machines, logic machines, etc where the men don't think in the specific algorithms. > > Paolo > J.C. Pizarro