search for: then2

Displaying 20 results from an estimated 25 matches for "then2".

Did you mean: then
2017 Jul 06
2
Dataflow analysis regression in 3.7
On Thu, Jul 6, 2017 at 7:00 AM, Davide Italiano <davide at freebsd.org> wrote: > On Wed, Jul 5, 2017 at 3:59 PM, Johan Engelen via llvm-dev > <llvm-dev at lists.llvm.org> wrote: > > Hi all, > > I just found an optimization regression regarding simple > > dataflow/constprop analysis: > > https://godbolt.org/g/Uz8P7t > > > > This code >
2013 Nov 19
3
[LLVMdev] Curiosity about transform changes under Sanitizers (Was: [PATCH] Disable branch folding with MemorySanitizer)
...> For example, >>>> 1: if (x < 0) >>>> 2: if (y < 0) >>>> 3: do_something(); >>>> is transformed into something like >>>> %0 = and i32 %y, %x >>>> %1 = icmp slt i32 %0, 0 >>>> br i1 %1, label %if.then2, label %if.end3 >>>> where all 3 instructions are associated with line 1. >>>> >>>> This patch disables folding of conditional branches in functions with >>>> sanitize_memory attribute. >>>> >>>> http://llvm-reviews.chandlerc.c...
2013 Nov 19
0
[LLVMdev] Curiosity about transform changes under Sanitizers (Was: [PATCH] Disable branch folding with MemorySanitizer)
...t;>> 1: if (x < 0) >>>>> 2: if (y < 0) >>>>> 3: do_something(); >>>>> is transformed into something like >>>>> %0 = and i32 %y, %x >>>>> %1 = icmp slt i32 %0, 0 >>>>> br i1 %1, label %if.then2, label %if.end3 >>>>> where all 3 instructions are associated with line 1. >>>>> >>>>> This patch disables folding of conditional branches in functions with >>>>> sanitize_memory attribute. >>>>> >>>>> http://...
2013 Nov 19
3
[LLVMdev] Curiosity about transform changes under Sanitizers (Was: [PATCH] Disable branch folding with MemorySanitizer)
...0) >>>>>> 2: if (y < 0) >>>>>> 3: do_something(); >>>>>> is transformed into something like >>>>>> %0 = and i32 %y, %x >>>>>> %1 = icmp slt i32 %0, 0 >>>>>> br i1 %1, label %if.then2, label %if.end3 >>>>>> where all 3 instructions are associated with line 1. >>>>>> >>>>>> This patch disables folding of conditional branches in functions with >>>>>> sanitize_memory attribute. >>>>>> >>...
2019 Sep 30
3
[cfe-dev] CFG simplification question, and preservation of branching in the original code
...i32 %b) local_unnamed_addr #0 { > entry: > %cmp = icmp slt i32 %a, 0 > %sub = sub nsw i32 0, %a > %spec.select = select i1 %cmp, i32 %sub, i32 %a > %a.lobit = lshr i32 %a, 31 > %0 = trunc i32 %a.lobit to i16 > %cmp1 = icmp slt i32 %b, 0 > br i1 %cmp1, label %if.then2, label %if.end4 > > if.then2: ; preds = %entry > %sub3 = sub nsw i32 0, %b > %1 = xor i16 %0, 1 > br label %if.end4 > > if.end4: ; preds = %if.then2, %entry > %b.addr.0 = phi i32 [ %sub3...
2019 Sep 29
2
[cfe-dev] CFG simplification question, and preservation of branching in the original code
...a, i32 %b) local_unnamed_addr #0 { > entry: > %cmp = icmp slt i32 %a, 0 > %sub = sub nsw i32 0, %a > %a.addr.0 = select i1 %cmp, i32 %sub, i32 %a > %a.lobit = lshr i32 %a, 31 > %0 = trunc i32 %a.lobit to i16 > %cmp1 = icmp slt i32 %b, 0 > br i1 %cmp1, label %if.then2, label %if.end4 > > if.then2: ; preds = %entry > %sub3 = sub nsw i32 0, %b > %1 = xor i16 %0, 1 > br label %if.end4 > > if.end4: ; preds = %if.then2, %entry > %b.addr.0 = phi i32 [ %sub3...
2013 Nov 19
1
[LLVMdev] Curiosity about transform changes under Sanitizers (Was: [PATCH] Disable branch folding with MemorySanitizer)
...0) >>>>>> 2: if (y < 0) >>>>>> 3: do_something(); >>>>>> is transformed into something like >>>>>> %0 = and i32 %y, %x >>>>>> %1 = icmp slt i32 %0, 0 >>>>>> br i1 %1, label %if.then2, label %if.end3 >>>>>> where all 3 instructions are associated with line 1. >>>>>> >>>>>> This patch disables folding of conditional branches in functions with >>>>>> sanitize_memory attribute. >>>>>> >>...
2013 Nov 19
5
[LLVMdev] Curiosity about transform changes under Sanitizers (Was: [PATCH] Disable branch folding with MemorySanitizer)
...gt; 2: if (y < 0) > >>>>>> 3: do_something(); > >>>>>> is transformed into something like > >>>>>> %0 = and i32 %y, %x > >>>>>> %1 = icmp slt i32 %0, 0 > >>>>>> br i1 %1, label %if.then2, label %if.end3 where all 3 > >>>>>> instructions are associated with line 1. > >>>>>> > >>>>>> This patch disables folding of conditional branches in functions > >>>>>> with sanitize_memory attribute. > >>...
2013 Nov 19
0
[LLVMdev] Curiosity about transform changes under Sanitizers (Was: [PATCH] Disable branch folding with MemorySanitizer)
...0) >>>>>> 2: if (y < 0) >>>>>> 3: do_something(); >>>>>> is transformed into something like >>>>>> %0 = and i32 %y, %x >>>>>> %1 = icmp slt i32 %0, 0 >>>>>> br i1 %1, label %if.then2, label %if.end3 where all 3 >>>>>> instructions are associated with line 1. >>>>>> >>>>>> This patch disables folding of conditional branches in functions >>>>>> with sanitize_memory attribute. >>>>>> >&g...
2019 Sep 30
2
[cfe-dev] CFG simplification question, and preservation of branching in the original code
...@test(i32 %a, i32 %b) local_unnamed_addr #0 { > entry: > %cmp = icmp slt i32 %a, 0 > %sub = sub nsw i32 0, %a > %spec.select = select i1 %cmp, i32 %sub, i32 %a > %a.lobit = lshr i32 %a, 31 > %0 = trunc i32 %a.lobit to i16 > %cmp1 = icmp slt i32 %b, 0 > br i1 %cmp1, label %if.then2, label %if.end4 > > if.then2: ; preds = %entry > %sub3 = sub nsw i32 0, %b > %1 = xor i16 %0, 1 > br label %if.end4 > > if.end4: ; preds = %if.then2, > %entry > %b.addr.0 = phi i32 [ %sub3, %...
2013 Nov 19
0
[LLVMdev] Curiosity about transform changes under Sanitizers (Was: [PATCH] Disable branch folding with MemorySanitizer)
...0) >>>>>> 2: if (y < 0) >>>>>> 3: do_something(); >>>>>> is transformed into something like >>>>>> %0 = and i32 %y, %x >>>>>> %1 = icmp slt i32 %0, 0 >>>>>> br i1 %1, label %if.then2, label %if.end3 where all 3 >>>>>> instructions are associated with line 1. >>>>>> >>>>>> This patch disables folding of conditional branches in functions >>>>>> with sanitize_memory attribute. >>>>>> >>...
2017 Jul 07
3
Dataflow analysis regression in 3.7
...: ; preds = %entry > br label %if.end > > if.end: ; preds = %if.else, %if.then > %a.0 = phi i32 [ %mul, %if.then ], [ 5, %if.else ] > %cmp1 = icmp eq i32 %a.0, 4 > br i1 %cmp1, label %if.then2, label %if.else3 > > if.then2: ; preds = %if.end > br label %cleanup > > if.else3: ; preds = %if.end > br label %cleanup > > cleanup: ; preds = %if....
2013 Nov 19
2
[LLVMdev] Curiosity about transform changes under Sanitizers (Was: [PATCH] Disable branch folding with MemorySanitizer)
...lt; 0) > > >>>>>> 3: do_something(); > > >>>>>> is transformed into something like > > >>>>>> %0 = and i32 %y, %x > > >>>>>> %1 = icmp slt i32 %0, 0 > > >>>>>> br i1 %1, label %if.then2, label %if.end3 where all 3 > > >>>>>> instructions are associated with line 1. > > >>>>>> > > >>>>>> This patch disables folding of conditional branches in > > >>>>>> functions > > >>>&gt...
2013 Nov 19
0
[LLVMdev] Curiosity about transform changes under Sanitizers (Was: [PATCH] Disable branch folding with MemorySanitizer)
...t;>>> 2: if (y < 0) > >>>>>> 3: do_something(); > >>>>>> is transformed into something like > >>>>>> %0 = and i32 %y, %x > >>>>>> %1 = icmp slt i32 %0, 0 > >>>>>> br i1 %1, label %if.then2, label %if.end3 where all 3 > >>>>>> instructions are associated with line 1. > >>>>>> > >>>>>> This patch disables folding of conditional branches in > >>>>>> functions > >>>>>> with sanitize_...
2019 Oct 01
3
[cfe-dev] CFG simplification question, and preservation of branching in the original code
...: >>> %cmp = icmp slt i32 %a, 0 >>> %sub = sub nsw i32 0, %a >>> %spec.select = select i1 %cmp, i32 %sub, i32 %a >>> %a.lobit = lshr i32 %a, 31 >>> %0 = trunc i32 %a.lobit to i16 >>> %cmp1 = icmp slt i32 %b, 0 >>> br i1 %cmp1, label %if.then2, label %if.end4 >>> >>> if.then2: ; preds = %entry >>> %sub3 = sub nsw i32 0, %b >>> %1 = xor i16 %0, 1 >>> br label %if.end4 >>> >>> if.end4: ; preds =...
2013 Nov 19
0
[LLVMdev] Curiosity about transform changes under Sanitizers (Was: [PATCH] Disable branch folding with MemorySanitizer)
...lt; 0) > > >>>>>> 3: do_something(); > > >>>>>> is transformed into something like > > >>>>>> %0 = and i32 %y, %x > > >>>>>> %1 = icmp slt i32 %0, 0 > > >>>>>> br i1 %1, label %if.then2, label %if.end3 where all 3 > > >>>>>> instructions are associated with line 1. > > >>>>>> > > >>>>>> This patch disables folding of conditional branches in > > >>>>>> functions > > >>>&g...
2019 Sep 25
2
[cfe-dev] CFG simplification question, and preservation of branching in the original code
Changing the order of the checks in CodeGenPrepare::optimizeSelectInst() sounds good to me. But you may need to go further for optimum performance. For example, we may be canonicalizing math/logic IR patterns into 'select' such as in the recent: https://reviews.llvm.org/D67799 So if you want those to become ALU ops again rather than branches, then you need to do the transform later in
2013 Nov 19
4
[LLVMdev] Curiosity about transform changes under Sanitizers (Was: [PATCH] Disable branch folding with MemorySanitizer)
...gt; 2: if (y < 0) > >>>>>> 3: do_something(); > >>>>>> is transformed into something like > >>>>>> %0 = and i32 %y, %x > >>>>>> %1 = icmp slt i32 %0, 0 > >>>>>> br i1 %1, label %if.then2, label %if.end3 where all 3 > >>>>>> instructions are associated with line 1. > >>>>>> > >>>>>> This patch disables folding of conditional branches in functions > >>>>>> with sanitize_memory attribute. > >>...
2018 May 16
0
GlobalAddress lowering strategy
...; preds = %entry tail call void @abort() #3 unreachable if.end: ; preds = %entry %1 = load i32, i32* getelementptr inbounds ([4 x i32], [4 x i32]* @a, i32 0, i32 1), align 4 %cmp1 = icmp eq i32 %1, 3 br i1 %cmp1, label %if.end3, label %if.then2 if.then2: ; preds = %if.end tail call void @abort() #3 unreachable if.end3: ; preds = %if.end %2 = load i32, i32* getelementptr inbounds ([4 x i32], [4 x i32]* @a, i32 0, i32 2), align 4 %cmp4 = icmp eq i32 %...
2019 Oct 03
2
[cfe-dev] CFG simplification question, and preservation of branching in the original code
...mp slt i32 %a, 0 >>>> %sub = sub nsw i32 0, %a >>>> %spec.select = select i1 %cmp, i32 %sub, i32 %a >>>> %a.lobit = lshr i32 %a, 31 >>>> %0 = trunc i32 %a.lobit to i16 >>>> %cmp1 = icmp slt i32 %b, 0 >>>> br i1 %cmp1, label %if.then2, label %if.end4 >>>> >>>> if.then2: ; preds = %entry >>>> %sub3 = sub nsw i32 0, %b >>>> %1 = xor i16 %0, 1 >>>> br label %if.end4 >>>> >>>> if.end4:...