[LLVMdev] Auto-vectorization in GCC 4.0

Devang Patel dpatel at apple.com
Mon Jul 31 11:47:53 PDT 2006


On Jul 31, 2006, at 11:42 AM, Chris Lattner wrote:

> On Mon, 31 Jul 2006, Devang Patel wrote:
>> On Jul 31, 2006, at 11:14 AM, Vikram Adve wrote:
>>>  Does llvmgcc4 convert the high-level AST to LLVM (like  
>>> llvmgcc3x) or does  it go from GIMPL to LLVM?  If the latter,  
>>> would it be possible to allow  some TreeSSA optimizations before  
>>> emitting LLVM?
>> llvmgcc4 intercepts high-level GCC trees to GIMPLE tree  
>> transformation routines to get trees that are suitable for LLVM  
>> byte code. And TreeSSA optimizer may not be able to handle LLVM  
>> suitable GIMPLE trees. One such case is how Array references are  
>> handled (&a[i] vs a+i*size). However, I do not know exact details  
>> of LLVM byte code generation work inside llvmgcc4.
>
> Another issue is that gimple has various different forms (high  
> gimple, low gimple, and several other minor forms).  We work on  
> "high gimple", so optimizations that require low gimple or later  
> forms won't work.  I don't know what the gcc vectorizor uses, but  
> IIRC it runs late in the pipeline, so it probably is low-gimple.

Yes, it is low-gimple.

>
> I don't think the gimple->llvm translator can't handle low gimple,  
> but it may be possible to extend it.
>
> -Chris
-
Devang






More information about the llvm-dev mailing list