Displaying 20 results from an estimated 30 matches for "_crit_edge".
2015 Nov 02
2
[StructurizeCFG] Trouble with branches out of a loop
...rithm used? Is it based on a published paper?
The input IR I have is the following:
define <4 x float> @structurizer_test(<4 x float> %inp.coerce) {
%1 = extractelement <4 x float> %inp.coerce, i32 0
%2 = fcmp ogt float %1, 0.000000e+00
br i1 %2, label %.lr.ph.i, label %._crit_edge.i
.lr.ph.i: ; preds = %7, %0
%i.03.i = phi float [ %8, %7 ], [ 0.000000e+00, %0 ]
%ret.02.i = phi <4 x float> [ %5, %7 ], [ <float 1.000000e+00, float
1.000000e+00, float 1.000000e+00, float 1.000000e+00>, %0 ]
%3 = extractelement <4 x f...
2016 May 24
1
BitcodeReader non explicit error
...%4 = icmp ult i32 %2, %3
br i1 %4, label %.lr.ph3, label %._crit_edge...
2015 Aug 20
2
loop unrolling introduces conditional branch
...mmand "opt-3.5 try.bc -mem2reg -loops -loop-simplify
-loop-rotate -lcssa -indvars -loop-unroll -unroll-count=3 -simplifycfg -S",
it gives me this IR:
*define void @_Z3fooiPi(i32 %n, i32* %array_x) #0 {*
* %1 = icmp slt i32 0, %n*
* br i1 %1, label %.lr.ph <http://lr.ph/>, label %._crit_edge*
*.lr.ph <http://lr.ph/>: ; preds
= %0, %7*
* %indvars.iv = phi i64 [ %indvars.iv.next.2, %7 ], [ 0, %0 ]*
* %2 = getelementptr inbounds i32* %array_x, i64 %indvars.iv*
* %3 = trunc i64 %indvars.iv to i32*
* store i32 %3, i32* %2*
* %indvars.iv....
2013 Jan 20
2
[LLVMdev] Inconsistent label syntax in LLVM assembly
...mp of
bison/flex grammar for LLVM.
I've noticed an inconsistency regarding label naming conventions.
For instance, the following is a segment of legit LLVM assembly
(human-readable) IR:
br i1 %38, label %17, label %39
; <label>:39 ; preds = %._crit_edge
ret void
However, ";" is a comment-line character. How is this interpreted, as
a meta-comment? (a semantically important comment)?
Other branches appear using regular conventions:
br i1 %exitcond, label %._crit_edge, label %.lr.ph
._crit_edge: ; preds = %.lr.ph, %.p...
2015 Aug 20
2
loop unrolling introduces conditional branch
...em2reg -loops -loop-simplify
> -loop-rotate -lcssa -indvars -loop-unroll -unroll-count=3 -simplifycfg -S",
> it gives me this IR:
>
> *define void @_Z3fooiPi(i32 %n, i32* %array_x) #0 {*
> * %1 = icmp slt i32 0, %n*
> * br i1 %1, label %.lr.ph <http://lr.ph/>, label %._crit_edge*
>
> *.lr.ph <http://lr.ph/>: ; preds
> = %0, %7*
> * %indvars.iv = phi i64 [ %indvars.iv.next.2, %7 ], [ 0, %0 ]*
> * %2 = getelementptr inbounds i32* %array_x, i64 %indvars.iv*
> * %3 = trunc i64 %indvars.iv to i32*
> * stor...
2012 Jan 23
1
[LLVMdev] How to identify the first BB in a loop of non-constant trip count?
Hi,
The compilation of the following code
void f(int *a, int b[], int n)
{
int i;
for(i=0; i< n; ++i)
a[i] = b[i];
}
gives the IR:
define void @f(i32* nocapture %a, i32* nocapture %b, i32 %n) nounwind {
%1 = icmp sgt i32 %n, 0
br i1 %1, label %.lr.ph, label %._crit_edge
.lr.ph: ; preds = %0
%tmp = zext i32 %n to i64
br label %2
; <label>:2 ; preds = %2, %.lr.ph
%indvar = phi i64 [ 0, %.lr.ph ], [ %indvar.next, %2 ]
%scevgep = getelementptr i32* %a, i64 %indvar
%scevge...
2015 Aug 21
2
loop unrolling introduces conditional branch
...rotate -lcssa -indvars -loop-unroll -unroll-count=3 -simplifycfg -S",
>>> it gives me this IR:
>>>
>>> *define void @_Z3fooiPi(i32 %n, i32* %array_x) #0 {*
>>> * %1 = icmp slt i32 0, %n*
>>> * br i1 %1, label %.lr.ph <http://lr.ph/>, label %._crit_edge*
>>>
>>> *.lr.ph <http://lr.ph/>: ;
>>> preds = %0, %7*
>>> * %indvars.iv = phi i64 [ %indvars.iv.next.2, %7 ], [ 0, %0 ]*
>>> * %2 = getelementptr inbounds i32* %array_x, i64 %indvars.iv*
>>> *...
2013 Jan 20
0
[LLVMdev] Inconsistent label syntax in LLVM assembly
....
>
> I've noticed an inconsistency regarding label naming conventions.
>
> For instance, the following is a segment of legit LLVM assembly (human-readable)
> IR:
>
> br i1 %38, label %17, label %39
> ; <label>:39 ; preds = %._crit_edge
> ret void
>
> However, ";" is a comment-line character. How is this interpreted, as a
> meta-comment? (a semantically important comment)?
it's just a comment and has no semantic comment. You can delete it, it won't
make any difference.
Ciao, Duncan.
>
> O...
2015 Aug 22
2
loop unrolling introduces conditional branch
...oll-count=3 -simplifycfg -S",
>>>>> it gives me this IR:
>>>>>
>>>>> *define void @_Z3fooiPi(i32 %n, i32* %array_x) #0 {*
>>>>> * %1 = icmp slt i32 0, %n*
>>>>> * br i1 %1, label %.lr.ph <http://lr.ph/>, label %._crit_edge*
>>>>>
>>>>> *.lr.ph <http://lr.ph/>: ;
>>>>> preds = %0, %7*
>>>>> * %indvars.iv = phi i64 [ %indvars.iv.next.2, %7 ], [ 0, %0 ]*
>>>>> * %2 = getelementptr inbounds i32* %a...
2013 Jan 20
3
[LLVMdev] Inconsistent label syntax in LLVM assembly
Hi Duncan
>> br i1 %38, label %17, label %39
>> ; <label>:39 ; preds = %._crit_edge
>> ret void
>>
>> However, ";" is a comment-line character. How is this interpreted, as a
>> meta-comment? (a semantically important comment)?
>
> it's just a comment and has no semantic comment. You can delete it, it won't
> make any difference...
2014 May 08
3
[LLVMdev] Small problem with the tail call elimination pass
...ret i32 %n
}
You see that the tail call is not eliminated. However, it does get eliminated
if I change to this code:
unsigned int fib(unsigned int n) {
return n <= 2 ? 1 : fib(n-1) + fib(n-2);
}
IR:
define i32 @_Z9fibj(i32 %n) #0 {
%1 = icmp ult i32 %n, 3
br i1 %1, label %tailrecurse._crit_edge, label %tailrecurse
tailrecurse: ; preds = %0, %tailrecurse
%n.tr2 = phi i32 [ %4, %tailrecurse ], [ %n, %0 ]
%accumulator.tr1 = phi i32 [ %5, %tailrecurse ], [ 1, %0 ]
%2 = add i32 %n.tr2, -1
%3 = tail call i32 @_Z9fibj(i32 %2)
%4 = add i32 %n.tr2, -...
2013 Jan 20
0
[LLVMdev] Sizeof a type?
> From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu]
> On Behalf Of Rick Mann
> Subject: [LLVMdev] Sizeof a type?
> Is there a way to get the sizeof a type?
Look at the methods of the DataLayout class.
- Chuck
THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you
2013 Jan 20
5
[LLVMdev] Sizeof a type?
Is there a way to get the sizeof a type? Say I've created a struct type without any explicit attribtues, and I want to call malloc() to allocate space for it. Can I get the size as an llvm::Constant* (or other llvm::Value*) given an llvm::StructType* or other llvm::Type*?
TIA,
--
Rick
2015 Aug 22
3
loop unrolling introduces conditional branch
...= 'bc_from_clang.bc'
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
; Function Attrs: nounwind uwtable
define void @_Z3fooiPi(i32 %n, i32* %array_x) #0 {
%1 = icmp slt i32 0, %n
br i1 %1, label %.lr.ph, label %._crit_edge
.lr.ph: ; preds = %0
%2 = add i32 %n, -1
%xtraiter = and i32 %n, 3
%lcmp.mod = icmp ne i32 %xtraiter, 0
br i1 %lcmp.mod, label %3, label %.lr.ph.split
; <label>:3 ; preds = %3, %.lr.ph
%indvars.iv.prol...
2015 Aug 22
2
loop unrolling introduces conditional branch
..., label %.lr.ph
> <https://urldefense.proofpoint.com/v2/url?u=http-3A__lr.ph&d=BQMFaQ&c=eEvniauFctOgLOKGJOplqw&r=v-ruWq0KCv2O3thJZiK6naxuXK8mQHZUmGq5FBtAmZ4&m=9pD2qNHBiPJscAs-ZzWT7q61NeZNcwsY8Io52JnaI3E&s=OaVJWcn8TI03qp9lgqeWMIVMySoyBIPowkHDEyR7lvQ&e=>,
> label %._crit_edge
>
> .lr.ph
> <https://urldefense.proofpoint.com/v2/url?u=http-3A__lr.ph&d=BQMFaQ&c=eEvniauFctOgLOKGJOplqw&r=v-ruWq0KCv2O3thJZiK6naxuXK8mQHZUmGq5FBtAmZ4&m=9pD2qNHBiPJscAs-ZzWT7q61NeZNcwsY8Io52JnaI3E&s=OaVJWcn8TI03qp9lgqeWMIVMySoyBIPowkHDEyR7lvQ&e=>:
>...
2013 Jan 20
0
[LLVMdev] Inconsistent label syntax in LLVM assembly
Hi Duncan
>>> br i1 %38, label %17, label %39
>>> ; <label>:39 ; preds = %._crit_edge
>>> ret void
>>>
>>> However, ";" is a comment-line character. How is this interpreted, as a
>>> meta-comment? (a semantically important comment)?
>>
>> it's just a comment and has no semantic comment. You can delete
>> it, it...
2012 Mar 28
2
[LLVMdev] Suboptimal code due to excessive spilling
...lded Reload
addsd 56(%esp), %xmm2 # 8-byte Folded Reload
addsd 64(%esp), %xmm2 # 8-byte Folded Reload
addsd 72(%esp), %xmm2 # 8-byte Folded Reload
addsd %xmm2, %xmm0
adcl $0, %esi
cmpl %eax, %edi
movl %edi, %ebx
jne .LBB1_2
.LBB1_3: # %._crit_edge
movsd %xmm0, 80(%esp)
fldl 80(%esp)
addl $88, %esp
popl %esi
popl %edi
popl %ebx
ret
.Ltmp20:
.size foo, .Ltmp20-foo
.Ltmp21:
.cfi_endproc
.Leh_func_end1:
====== Output B ======
======================
foo: # @foo
.Ltmp11:
.cfi_startproc
# BB#0:
pushl...
2017 Nov 14
2
[SCEV][ScalarEvolution] SE limitation impacting LV
...val1, %scalar.ph ], [ %17, %16 ]
%19 = add i32 %18, 2
%20 = zext i32 %19 to i64
%21 = getelementptr inbounds i32, i32 addrspace(1)* undef, i64 %20
%22 = ashr i32 undef, %4
store i32 %22, i32 addrspace(1)* %21, align 4
%23 = add i32 %17, 1
%24 = icmp sgt i32 %23, 61
br i1 %24, label %._crit_edge.loopexit.preheader, label %16
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20171114/e6657172/attachment.html>
2012 Apr 05
0
[LLVMdev] Suboptimal code due to excessive spilling
...lded Reload
addsd 56(%esp), %xmm2 # 8-byte Folded Reload
addsd 64(%esp), %xmm2 # 8-byte Folded Reload
addsd 72(%esp), %xmm2 # 8-byte Folded Reload
addsd %xmm2, %xmm0
adcl $0, %esi
cmpl %eax, %edi
movl %edi, %ebx
jne .LBB1_2
.LBB1_3: # %._crit_edge
movsd %xmm0, 80(%esp)
fldl 80(%esp)
addl $88, %esp
popl %esi
popl %edi
popl %ebx
ret
.Ltmp20:
.size foo, .Ltmp20-foo
.Ltmp21:
.cfi_endproc
.Leh_func_end1:
====== Output B ======
======================
foo: # @foo
.Ltmp11:
.cfi_startproc
# BB#0:
pushl...
2010 Oct 01
2
[LLVMdev] Illegal optimization in LLVM 2.8 during SelectionDAG? (Re: comparison pattern trouble - might be a bug in LLVM 2.8?)
...if (x16 == 1)
>>
>> The code which goes into isel is:
>>
>> bb.nph:
>> %0 = zext i8 %data to i32
>> %1 = zext i16 %crc to i32
>> %2 = xor i32 %1, %0
>> %3 = and i32 %2, 1
>> %4 = icmp eq i32 %3, 0
>> br i1 %4, label %bb.nph._crit_edge, label %5
>>
>> inside selectiondag this becomes:
>>
>> Legalized selection DAG:
>
> [snip]
>
>> 0x248d280: <multiple use>
>> 0x248d980: <multiple use>
>> 0x25bb7f0: i32 = xor 0x248d280, 0x248d980 [ORD=3] [ID=15]
>...