[LLVMdev] loop pragmas

Tobias Grosser tobias at grosser.es
Wed Nov 21 09:32:47 PST 2012


On 11/21/2012 03:45 PM, Krzysztof Parzyszek wrote:
> On 11/21/2012 6:53 AM, Tobias Grosser wrote:
>>
>> o Blocks future optimizations
>>
>> At the moment LLVM performs little loop optimizations. Hence, the
>> original structure is not changed too much.
>
> I'm thinking of this in terms of parallelization directives.  The
> optimizations that rely on such annotations would need to be done as
> early as possible, before any optimization that could invalidate them.
> If the annotation can become false, you are right---it's probably not a
> good idea to have it as the medium.

If we use metadata to model annotations, we need to ensure that it is 
either correct or in case a transformation can not guarantee the 
correctness of the meta data, that it is removed.

The next point is that we should choose a meta-data representation that 
is not removed by the most trivial transformation.

> Other types of annotations that are
> "harmless" are probably good to have, for example "unroll-by" (assuming
> that this is a suggestion to the compiler, not an order).

To my knowledge, we are avoiding to allow the user to 'tune' the 
compiler. Manual tuning may be good for a certain piece of hardware, but 
will have negative effects on other platforms.

Instead of providing facilities to tune the hardware, we should 
understand why LLVM does not choose the right unrolling factor. Maybe 
there is additional information that can help LLVM to derive that 
information.

Cheers
Tobi




More information about the llvm-dev mailing list