[LLVMdev] Turning on/off instruction extensions

Pablo Barrio
Fri, 02 Dec 2011 18:08:29 -0000

I applied the patch to the trunk version successfully, although I get an error
in between:

1 out of 1 hunk FAILED -- saving rejects to file
lib/Transforms/IPO/CMakeLists.txt.rej

Can I ignore the error? The patch exits normally except for that error.

Also, I tried to apply the patch to the LLVM 3.0 but does not work at all. Is
the trunk version the only one where the patch can be applied?

Thanks ahead,
Pablo

On 29/11/2011, at 16:38, Hal Finkel wrote:

> On Tue, 2011-11-29 at 16:26 +0100, Pablo Barrio wrote:
>> On 28/11/2011, at 18:52, Hal Finkel wrote:
>>
>>> On Mon, 2011-11-28 at 17:49 +0100, Pablo Barrio wrote:
>>>> How can I install the patch? Any step-by-step guide?
>>>
>>> First, grab the trunk versions of llvm and clang. This is detailed
on
>>> http://clang.llvm.org/get_started.html
>>>
>>> Then you apply the patch. On a Unix-like system, this is something
like:
>>> cd llvm
>>> patch -p1 < /path/to/the-patch-file.diff
>>>
>>
>> I tried to apply the patch to llvm 2.9 (not the trunk) but it shows a
lot of "... hunk FAILED -- saving rejects to file ...". Is it safe to
ignore these errors? Is it impossible to apply this patch to LLVM 2.9? Do you
have a version of the patch compatible with 2.9?
>>
>
> Unfortunately, I don't have a version for 2.9.
>
> -Hal
>
>> Right now I cannot switch to the trunk version.
>>
>> Thanks in advance,
>> Pablo
>>
>>> Then you rebuild.
>>>
>>> If you have any further questions, or need a more-detailed answer,
>>> please let me know.
>>>
>>> -Hal
>>>
>>>>
>>>> Thanks,
>>>> Pablo
>>>>
>>>> On 24/11/2011, at 15:33, Hal Finkel wrote:
>>>>
>>>>> On Thu, 2011-11-24 at 15:09 +0100, Pablo Barrio
López-Cortijo wrote:
>>>>>> Hi everybody,
>>>>>>
>>>>>> I'm trying to run some examples with different
backend options (turning
>>>>>> on/off SSE, 3dnow, or MMX instructions). However, I
don't see any
>>>>>> difference in terms of execution time. Does anybody
know which language
>>>>>> constructs (in C/C++ preferably) should I try to make
these instructions
>>>>>> generated (and thus make a difference between a backend
that enables
>>>>>> them or not) ?
>>>>>>
>>>>>> I tried generating vector instructions with loops but
it's not
>>>>>> happening. Perhaps Polly can generate vector
instructions?
>>>>>
>>>>> You can also try my basic-block autovectorization patch.
>>>>>
>>>>>
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20111121/132206.html
>>>>>
>>>>> After applying the patch (I recommend applying it to the
current trunk),
>>>>> then run clang with the flags:
>>>>> -mllvm -vectorize -mllvm -unroll-allow-partial
>>>>> (the -unroll-allow-partial is not necessary for the
vectorization, but
>>>>> tends to expose additional vectorization opportunities).
The basic-block
>>>>> vectorizer has a number of flags that can be used to
customize its
>>>>> behavior, so if it is not vectorizing something that you
think it should
>>>>> be (or is doing something performance detrimental), please
let me know
>>>>> and I'll be happy to help.
>>>>>
>>>>> -Hal
>>>>>
>>>>>>
>>>>>> Thanks ahead,
>>>>>>
>>>>>> Pablo
>>>>>> DIE-UPM
>>>>>> Madrid
>>>>>>
>>>>>> _______________________________________________
>>>>>> LLVM Developers mailing list
>>>>>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>>>>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>>>>
>>>>> --
>>>>> Hal Finkel
>>>>> Postdoctoral Appointee
>>>>> Leadership Computing Facility
>>>>> Argonne National Laboratory
>>>>>
>>>>
>>>
>>> --
>>> Hal Finkel
>>> Postdoctoral Appointee
>>> Leadership Computing Facility
>>> Argonne National Laboratory
>>>
>>
>
> --
> Hal Finkel
> Postdoctoral Appointee
> Leadership Computing Facility
> Argonne National Laboratory
>