[LLVMdev] Turning on/off instruction extensions

Hal Finkel hfinkel at anl.gov
Tue Nov 29 07:38:41 PST 2011


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




More information about the llvm-dev mailing list