[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