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
> > >>>>...
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:...