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? 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 >
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
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 >