Displaying 20 results from an estimated 34765 matches for "body".
2015 Sep 03
2
[RFC] New pass: LoopExitValues
...s these to scevgep values that already exist.
*** Code after LSR ***
; Function Attrs: nounwind optsize
define void @matrix_mul(i32 %Size, i32* nocapture %Dst, i32* nocapture
readonly %Src, i32 %Val) #0 {
entry:
%cmp.25 = icmp eq i32 %Size, 0
br i1 %cmp.25, label %for.cond.cleanup, label %for.body.4.lr.ph.preheader
for.body.4.lr.ph.preheader: ; preds = %entry
%0 = shl i32 %Size, 2
br label %for.body.4.lr.ph
for.body.4.lr.ph: ; preds =
%for.body.4.lr.ph.preheader, %for.cond.cleanup.3
%lsr.iv5 = phi i32* [ %Src, %for.body.4.lr.ph.pr...
2020 Jun 09
2
LoopStrengthReduction generates false code
...ffer = common dso_local global [10 x i32] zeroinitializer, align 4
; Function Attrs: nounwind
define dso_local void @some_main(i32* %result) local_unnamed_addr #0 {
entry:
tail call void @fill_array(i32* getelementptr inbounds ([10 x i32], [10 x i32]* @buffer, i32 0, i32 0)) #2
br label %while.body
while.body: ; preds = %entry, %while.body
%i.010 = phi i32 [ 0, %entry ], [ %inc, %while.body ]
%arrayidx = getelementptr inbounds [10 x i32], [10 x i32]* @buffer, i32 0, i32 %i.010
%0 = load i32, i32* %arrayidx, align 4, !tbaa !2
%cmp1 = icmp ne i32 %...
2020 Jun 09
2
LoopStrengthReduction generates false code
...ign 4
>>
>> ; Function Attrs: nounwind
>> define dso_local void @some_main(i32* %result) local_unnamed_addr #0 {
>> entry:
>> tail call void @fill_array(i32* getelementptr inbounds ([10 x i32], [10 x i32]*
>> @buffer, i32 0, i32 0)) #2
>> br label %while.body
>>
>> while.body: ; preds = %entry, %while.body
>> %i.010 = phi i32 [ 0, %entry ], [ %inc, %while.body ]
>> %arrayidx = getelementptr inbounds [10 x i32], [10 x i32]* @buffer, i32 0,
>> i32 %i.010
>> %0 = load i32, i32* %...
2015 Dec 09
2
persuading licm to do the right thing
...double zap(long n) {
double sum = 0;
for (long i = 0; i < n; i++)
sum += v[i];
return sum;
}
yielding
@v = common global double* null, align 8
; Function Attrs: nounwind readonly uwtable
define double @zap(i64 %n) #0 {
entry:
%cmp4 = icmp sgt i64 %n, 0
br i1 %cmp4, label %for.body.lr.ph, label %for.end
for.body.lr.ph: ; preds = %entry
%0 = load double** @v, align 8, !tbaa !1
br label %for.body
for.body: ; preds = %for.body, %
for.body.lr.ph
%i.06 = phi i64 [ 0, %for.body.lr.ph ], [ %inc, %for.b...
2020 Jun 10
2
LoopStrengthReduction generates false code
The IR after LSR is:
*** IR Dump After Loop Strength Reduction ***
; Preheader:
entry:
tail call void @fill_array(i32* getelementptr inbounds ([10 x i32], [10 x i32]* @buffer, i32 0, i32 0)) #2
br label %while.body
; Loop:
while.body: ; preds = %while.body, %entry
%lsr.iv = phi i32 [ %lsr.iv.next, %while.body ], [ 0, %entry ]
%uglygep = getelementptr i8, i8* bitcast ([10 x i32]* @buffer to i8*), i32 %lsr.iv
%uglygep1 = bitcast i8* %uglygep to i32*
%0 = load i32,...
2015 Dec 09
2
persuading licm to do the right thing
...n; i++)
> sum += v[i];
> return sum;
> }
>
>
> yielding
>
> @v = common global double* null, align 8
>
> ; Function Attrs: nounwind readonly uwtable
> define double @zap(i64 %n) #0 {
> entry:
> %cmp4 = icmp sgt i64 %n, 0
> br i1 %cmp4, label %for.body.lr.ph, label %for.end
>
> for.body.lr.ph: ; preds = %entry
> %0 = load double** @v, align 8, !tbaa !1
> br label %for.body
>
> for.body: ; preds = %for.body, %
> for.body.lr.ph
> %i.06 = phi i64...
2008 Aug 13
3
Search for (any of) multiple terms slow
...are some figures (the IMAP commands are shown as issued by Thunderbird and
recorded by Dovecot rawlog).
While searching, I can see the 'imap' process using 100% CPU time.
Searching for "xyz" in Archive and subfolders
4 secs
32 select "Archive"
33 uid SEARCH UNDELETED BODY "xyz"
34 select "Archive.2004"
35 UID fetch 1:* (FLAGS)
36 uid SEARCH UNDELETED BODY "xyz"
37 select "Archive.2004.2005"
38 UID fetch 1:* (FLAGS)
39 uid SEARCH UNDELETED BODY "xyz"
40 select "Archive.2004.2005.2006"
41 UID fetch 1:* (FLAGS...
2016 May 19
4
GEP index canonicalization
...wever that introduces
truncations, which can't be optimized away by simple peephole
optimizations in the backend anymore.
Does it make sense to add a target hook for this?
-Manuel
Example:
define void @foo(i32 %n, i32* %a) {
entry:
%cmp1 = icmp slt i32 0, %n
br i1 %cmp1, label %for.body, label %for.end
for.body: ; preds = %for.body,
%entry
%i = phi i32 [ %inc, %for.body ], [ 0, %entry ]
%ptr = getelementptr inbounds i32, i32* %a, i32 %i
store i32 %i, i32* %ptr, align 4
%inc = add nsw i32 %i, 1
%cmp = icmp slt i32 %inc, %n...
2013 Jan 29
2
[LLVMdev] Apparent indeterminism in PreVerifier
Hello everybody,
I have a case of suspected indeterminism and I would like to verify that
it is not a known issue before I dig deep into it.
It seems to happen during PreVerifier pass ("Preliminary module
verification"). The little I understand/assume about it, a verifier pass is
not supposed to chan...
2013 Aug 22
2
[LLVMdev] scev questions
...not compute the loop exit
count. It appears SCEV cannot handle the non-unit increment of the loop
counter. Is this a known limitation of SCEV or is there something that can
be improved (and if so where should I start looking?)
Thanks,
Paul
Here's the IR for the loop and the SCEV dump:
for.body: ; preds =
%for.body.lr.ph, %for.body
%i.07 = phi i32 [ 0, %for.body.lr.ph ], [ %add1, %for.body ]
%s.06 = phi i32 [ 0, %for.body.lr.ph ], [ %add, %for.body ]
%a.addr.05 = phi i32* [ %a, %for.body.lr.ph ], [ %incdec.ptr, %for.body ]
%incdec.ptr = gete...
2015 Dec 09
2
persuading licm to do the right thing
...;
>> }
>>
>>
>> yielding
>>
>> @v = common global double* null, align 8
>>
>> ; Function Attrs: nounwind readonly uwtable
>> define double @zap(i64 %n) #0 {
>> entry:
>> %cmp4 = icmp sgt i64 %n, 0
>> br i1 %cmp4, label %for.body.lr.ph, label %for.end
>>
>> for.body.lr.ph: ; preds = %entry
>> %0 = load double** @v, align 8, !tbaa !1
>> br label %for.body
>>
>> for.body: ; preds = %for.body, %
>> for.body.l...
2016 Aug 01
2
LLVM Loop vectorizer - 2 vector.body blocks appear
...oopVectorize.cpp code (retrieved at the
beginning of July 2016) I ran the following piece of C code:
void foo(long *A, long *B, long *C, long N) {
for (long i = 0; i < N; ++i) {
C[i] = A[i] + B[i];
}
}
The vectorized LLVM program I obtain contains 2 vector.body blocks - one named
"vector.body" and the other "vector.body34" for example. The code seems correct - the
first "vector.body" block is responsible for the vector add of a number of vector elements
multiple of VF * UF. There are 2 epilogues which makes things a bit st...
2006 Feb 17
2
Accessing just the body of email in text format?
I am interested in accessing the body of the email in text format using IMAP to receive emails.
So far I have tried the following
#body = imap.fetch(message_id, "BODY[TEXT]")
#body = imap.fetch(message_id, ["BODY[]"])[0].attr[''BODY[]'']
But both of the above give me body...
2019 Aug 26
2
SCEV related question
...}
}
Here is the IR before the pass where I expect SCEV to return trip-count
value
; Function Attrs: nofree norecurse nounwind uwtable writeonly
define dso_local void @topup(i32* nocapture %a, i64 %i) local_unnamed_addr
#0 {
entry:
%cmp3 = icmp ult i64 %i, 16
br i1 %cmp3, label %for.body.preheader, label %for.end
for.body.preheader: ; preds = %entry
br label %for.body
for.body: ; preds =
%for.body.preheader, %for.body
%i.addr.04 = phi i64 [ %inc, %for.body ], [ %i, %for.body.preheader ]
%arrayidx = g...
2015 Dec 09
2
persuading licm to do the right thing
...gt;> yielding
>>>
>>> @v = common global double* null, align 8
>>>
>>> ; Function Attrs: nounwind readonly uwtable
>>> define double @zap(i64 %n) #0 {
>>> entry:
>>> %cmp4 = icmp sgt i64 %n, 0
>>> br i1 %cmp4, label %for.body.lr.ph, label %for.end
>>>
>>> for.body.lr.ph: ; preds = %entry
>>> %0 = load double** @v, align 8, !tbaa !1
>>> br label %for.body
>>>
>>> for.body: ; preds = %for.bod...
2013 Jul 11
1
[LLVMdev] Scalar Evolution and Loop Trip Count.
...a[i] = b[i] + c[i];
}
When I run scalar evolution on the bit code, I get a backedge-taken
count which is obviously wrong.
$> cat loop.ll
; Function Attrs: nounwind
define void @add(i32* noalias nocapture %a, i32* noalias nocapture %b,
i32* noalias nocapture %c) #0 {
entry:
br label %for.body
for.body: ; preds = %entry,
%for.body
%arrayidx.phi = phi i32* [ %b, %entry ], [ %arrayidx.inc, %for.body ]
%arrayidx3.phi = phi i32* [ %c, %entry ], [ %arrayidx3.inc, %for.body ]
%arrayidx5.phi = phi i32* [ %a, %entry ], [ %arrayidx5.inc, %for.bod...
2011 Mar 06
2
Can body() return a function's body intact, in order, and as characters ready for editing?
Is my understanding correct that the body()
function currently can't return a function's body
intact, in order, and as characters ready for
editing?
My testing and reading of body()'s help indicate
that it can not.
Here's what I'm seeing.
Consider pasting
1+
and a function containing
x^2
together to...
2013 Jan 29
2
[LLVMdev] Apparent indeterminism in PreVerifier
...: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu]
>> On Behalf Of Sergei Larin
>> Sent: Tuesday, January 29, 2013 10:31 AM
>> To: llvmdev at cs.uiuc.edu
>> Subject: [LLVMdev] Apparent indeterminism in PreVerifier
>>
>>
>> Hello everybody,
>>
>>
>> I have a case of suspected indeterminism and I would like to verify
>> that it is not a known issue before I dig deep into it.
>> It seems to happen during PreVerifier pass ("Preliminary module
>> verification"). The little I understand/ass...
2013 Jan 29
0
[LLVMdev] Apparent indeterminism in PreVerifier
...ginal Message-----
> From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu]
> On Behalf Of Sergei Larin
> Sent: Tuesday, January 29, 2013 10:31 AM
> To: llvmdev at cs.uiuc.edu
> Subject: [LLVMdev] Apparent indeterminism in PreVerifier
>
>
> Hello everybody,
>
>
> I have a case of suspected indeterminism and I would like to verify
> that it is not a known issue before I dig deep into it.
> It seems to happen during PreVerifier pass ("Preliminary module
> verification"). The little I understand/assume about it, a verifie...
2018 Aug 15
2
[SCEV] Why is backedge-taken count <nsw> instead of <nuw>?
...clang on the following code:
void func(unsigned n) {
> for (unsigned long x = 1; x < n; ++x)
> dummy(x);
> }
I get the following llvm ir:
define void @func(i32 %n) {
> entry:
> %conv = zext i32 %n to i64
> %cmp5 = icmp ugt i32 %n, 1
> br i1 %cmp5, label %for.body, label %for.cond.cleanup
> for.cond.cleanup: ; preds = %for.body,
> %entry
> ret void
> for.body: ; preds = %entry,
> %for.body
> %x.06 = phi i64 [ %inc, %for.body ], [ 1, %entry ]
> tail call void @d...