[LLVMdev] Turning on/off instruction extensions

Hal Finkel hfinkel at anl.gov
Mon Dec 12 08:07:51 PST 2011


On Mon, 2011-12-12 at 12:59 +0100, Pablo Barrio wrote:
> Hi Hal,
> 
> On 02/12/11 21:06, Hal Finkel wrote:
> > On Fri, 2011-12-02 at 19:08 +0100, Pablo Barrio wrote:
> >> 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.
> > The attached patch should apply cleanly.
> >
> > Thanks for the feedback,
> > Hal
> 
> I'm still getting the following error:
> 
> ---
> 1 out of 3 hunks FAILED -- saving rejects to file 
> lib/Transforms/IPO/PassManagerBuilder.cpp.rej
> ---
> 
> I'm using LLVM rev. 146369 (current trunk). Is it the same as you? If 
> not, tell me your revision and I'll try again.

LLVM develops quickly ;) -- The patch you have is again out of sync.
I'll send an updated patch to the list soon.

> 
> Suggestion: would it be possible to have a patch for the stable version 
> (LLVM 3.0)?

I'll add that to my TODO list, but I probably won't get to it until
after the current patch finishes code review. I'll worry about
backporting after that.

 -Hal

> 
> Thanks ahead,
> Pablo
> >> 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
> >>>
> 
> 

-- 
Hal Finkel
Postdoctoral Appointee
Leadership Computing Facility
Argonne National Laboratory




More information about the llvm-dev mailing list