search for: _crit_edge

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] &gt...