Displaying 20 results from an estimated 1000 matches similar to: "S3/S4 classes performance comparison"
2011 Jun 19
2
[LLVMdev] No Signed Wrap
Hi,
I am not able to understand the No Signed Wrap property. My problem is in
the Instruction combiner which combines two operations -
add1 = add 'nsw' x 5
add2 = add 'nsw' add1 1
into
add2 = add x 6. // No 'nsw' property in the combined operation.
>From the comments in the Instruction Combiner I can see that the nsw flag /
property is "conservatively
2017 Aug 07
2
vrp
Hello,
I am trying to figure out, what vrp propagation does in llvm. I tried this
program:
#include <stdio.h>
int main() {
int s = 0;
int j = 0;
for (int i = 0; i < 100; i++) {
j = j+i+1;
s+=j;
}
return (s+j);
}
And got this under optimized version ( I don't want everything to be
eliminated)
define i32 @main()
2011 Jun 19
0
[LLVMdev] No Signed Wrap
Hi Pranav,
> I am not able to understand the No Signed Wrap property. My problem is in the
> Instruction combiner which combines two operations -
> add1 = add 'nsw' x 5
> add2 = add 'nsw' add1 1
> into
> add2 = add x 6. // No 'nsw' property in the combined operation.
>
> From the comments in the Instruction Combiner I can see that the nsw flag /
2017 Aug 07
2
vrp
On Mon, Aug 7, 2017 at 2:14 AM, Anastasiya Ruzhanskaya via llvm-dev
<llvm-dev at lists.llvm.org> wrote:
> I am trying to print it like this (maybe here is smth wrong?)
>
>
> LazyValueInfo &LV = getAnalysis<LazyValueInfoWrapperPass>().getLVI();
> DominatorTree &DT =
> getAnalysis<DominatorTreeWrapperPass>().getDomTree();
> LV.printLVI(F,
2017 Jun 23
2
sieve vacation message if ....
On Fri, 23 Jun 2017 14:46:21 +0200, Stephan Bosch stated:
>Op 21-6-2017 om 19:16 schreef lejeczek:
>> hi fellas
>>
>> generic construct for(if possible): reply vacation message if
>> address is not from add1 at com1 add2 at com2
>>
>> would you share?
>
>require "vacation";
>
>if not address "from" ["add1 at com1",
2017 Aug 07
2
vrp
I am primarily interested in phi nodes and their induction variables, in
ValueTracking file there is an analysis of them, but if the upper bound is
inf, it is not working?
2017-08-07 11:41 GMT+02:00 Anastasiya Ruzhanskaya <
anastasiya.ruzhanskaya at frtk.ru>:
> So, it is not supported to determine by this instruction : %cmp = icmp slt
> i32 %i.03, 99,
> that %i.03 = phi i32 [ 0,
2014 Jul 23
3
[LLVMdev] On semantics of add instruction - nsw,nuw flags
> Then why does the Release Note say
> " the operation is guaranteed to not overflow".
It means that the person who wrote the IR has guaranteed that there's
no overflow (by some means) so LLVM can assume it during optimisation.
This guarantee might come from doing explicit checks before executing
the add/sub; or perhaps from performing the operation after a sext so
that the
2017 Jun 21
2
sieve vacation message if ....
hi fellas
generic construct for(if possible): reply vacation message
if address is not from add1 at com1 add2 at com2
would you share?
many thanks
L.
2017 Jun 23
1
sieve vacation message if ....
Op 23-6-2017 om 16:15 schreef Larry Rosenman:
> On 6/23/17, 9:13 AM, "dovecot on behalf of Jerry" <dovecot-bounces at dovecot.org on behalf of jerry at seibercom.net> wrote:
>
> On Fri, 23 Jun 2017 14:46:21 +0200, Stephan Bosch stated:
>
> >Op 21-6-2017 om 19:16 schreef lejeczek:
> >> hi fellas
> >>
> >>
2014 Jul 23
3
[LLVMdev] On semantics of add instruction - nsw,nuw flags
On Wed, Jul 23, 2014 at 4:06 PM, Rekha R <rekharamapai at nitc.ac.in> wrote:
> Ok. Got it.
>
> If *add nsw* overflows, this results in undefined value.
> But then *add* on same arguments results in well-defined value.
>
> Hence treating first one as redundant based on the second is acceptable.
> But vice versa is not.
>
If they are in different code paths, sure.
2014 Jul 23
2
[LLVMdev] On semantics of add instruction - nsw,nuw flags
Hi,
I am trying to understand the semantics of Instructions in llvm.
Are the following instructions semantically same?
* %add2 = add nsw i32 %add, %add1 %add3 = add i32 %add, %add1*
Based on my understanding from the Language Reference Manual, I think they
are different.
But then why is the *gvn* pass detecting *%add3* as redundant and deleting
it?
Your views are appreciated.
Rekha
2014 Jul 23
2
[LLVMdev] On semantics of add instruction - nsw,nuw flags
IMHO;
On undefined behaviour we can do whatever we want. If the "add nsw"
overflows this would lead to undefined behaviour.
Therefore we can assume that "add", with the same arguments will not
overflow.
On Wed, Jul 23, 2014 at 3:32 PM, Tim Northover <t.p.northover at gmail.com>
wrote:
> On 23 July 2014 06:25, Rekha R <rekharamapai at nitc.ac.in> wrote:
>
2011 Jun 19
1
[LLVMdev] No Signed Wrap
On 19 June 2011 15:46, Duncan Sands <baldrick at free.fr> wrote:
>> I am not able to understand the No Signed Wrap property. My problem is in the
>> Instruction combiner which combines two operations -
>> add1 = add 'nsw' x 5
>> add2 = add 'nsw' add1 1
>> into
>> add2 = add x 6. // No 'nsw' property in the combined operation.
2017 Mar 15
2
Data structure improvement for the SLP vectorizer
Maybe it would illustrative to give an IR example of the case I'm
interested in. Consider
define void @"julia_transform_bvn_derivs_hessian!"(double* %data,
double* %data2, double *%data3, double *%out) {
%element11 = getelementptr inbounds double, double* %data, i32 1
%load10 = load double, double* %data
%load11 = load double, double* %element11
%element21 =
2012 Oct 13
1
ipsec nat issue
Hello,
I have the following setup on linux 2.6.32... CentOS 6.x :
ipsec tunnel eth0-10.255.3.254/25 - eth1-pub add1 <-> eth1-pub add2 -
eth0-10.255.5.254/25
I am trying to SNAT remote private address 10.255.5.128/25 packets when
they come out of the ipsec tunnel to make it appear like it was from local
address 10.255.3.254. I am doing a source ping from the right side to a
device on the
2014 Nov 10
2
[LLVMdev] [Vectorization] Mis match in code generated
Hi Suyog,
Thanks for looking at this. This has recently got itself onto my TODO list
too.
> I am not sure how much all this will improve the code quality for
horizontal reduction
> (donno how frequently such pattern of horizontal reduction from same
array occurs in real world/SPECS).
Actually the main loop of 470.lbm can be SLP vectorized like this. We have
three parts to it: A fully
2017 Feb 13
2
RFC: Representing unions in TBAA
Hello all,
I'm new to the llvm community. I'm learning how things work. I noticed
that there has been some interest in improving how unions are handled. Bug
21725 is one example. I figured it might be a interesting place to start.
I discussed this with a couple people, and below is a suggestion on how
to represent unions. I would like some comments on how this fits in with
how
2013 Oct 30
2
[LLVMdev] loop vectorizer
The loop vectorizer seems to be not able to vectorize the following code:
void bar(std::uint64_t start, std::uint64_t end, float * __restrict__
c, float * __restrict__ a, float * __restrict__ b)
{
const std::uint64_t inner = 4;
for (std::uint64_t i = start ; i < end ; ++i ) {
const std::uint64_t ir0 = ( (i/inner) * 2 + 0 ) * inner + i%4;
const std::uint64_t ir1 = ( (i/inner)
2013 Oct 30
2
[LLVMdev] loop vectorizer
The debug messages are misleading. They should read “trying to vectorize a list of …”; The problem is that the SCEV analysis is unable to detect that C[ir0] and C[ir1] are consecutive. Is this loop from an important benchmark ?
Thanks,
Nadav
On Oct 30, 2013, at 11:13 AM, Frank Winter <fwinter at jlab.org> wrote:
> The SLP vectorizer apparently did something in the prologue of the
2013 Oct 30
0
[LLVMdev] loop vectorizer
The SLP vectorizer apparently did something in the prologue of the
function (where storing of arguments on the stack happens) which then
got eliminated later on (since I don't see any vector instructions in
the final IR). Below the debug output of the SLP pass:
Args: opt -O1 -vectorize-slp -debug loop.ll -S
SLP: Analyzing blocks in _Z3barmmPfS_S_.
SLP: Found 2 stores to vectorize.
SLP: