Displaying 6 results from an estimated 6 matches for "jumpthreading_8cpp_source".
2011 Jul 07
2
[LLVMdev] Missed optimization with indirectbr terminator
...but it looks like JumpThreading at
> least attempts to thread across indirect branches. You can either try
> to fix it or file a bug with your test case.
In the source it says "If the predecessor is an indirect goto, we can't
split the edge.
<http://llvm.org/docs/doxygen/html/JumpThreading_8cpp_source.html#l00914>"
Why would that be the case?
--
Carlo Alberto Ferraris <cafxx at strayorange.com
<mailto:cafxx at strayorange.com>>
website/blog <http://cafxx.strayorange.com> - +39 333 7643 235
-------------- next part --------------
An HTML attachment was scrubbed...
URL...
2011 Jul 08
4
[LLVMdev] Missed optimization with indirectbr terminator
...t;> least attempts to thread across indirect branches. You can either try
>>> to fix it or file a bug with your test case.
>> In the source it says "If the predecessor is an indirect goto, we
>> can't split the edge.
>> <http://llvm.org/docs/doxygen/html/JumpThreading_8cpp_source.html#l00914>"
>> Why would that be the case?
>
> Splitting an edge creates a block which executes when leaving a
> specific block to go to a specific successor. The only way to split an
> indirect goto is to insert code before the jump which checks for a
> specific de...
2011 Jul 07
0
[LLVMdev] Missed optimization with indirectbr terminator
On Jul 7, 2011, at 2:05 AM, Carlo Alberto Ferraris wrote:
> Consider this IR fragment produced after -O3:
>> %7:
>> %8 = phi i8* [ blockaddress(@0, %19), %19 ], [ %12, %11 ]
>> %9 = phi i32 [ %20, %19 ], [ 0, %11 ]
>> indirectbr i8* %8, [label %4, label %19]
>>
>> %19:
>> %20 = add nsw i32 %9, 1
>> %21 = icmp eq i32 %9, 9999
>> br i1 %21,
2011 Jul 07
3
[LLVMdev] Missed optimization with indirectbr terminator
Consider this IR fragment produced after -O3:
> %7:
> %8 = phi i8* [ blockaddress(@0, %19), %19 ], [ %12, %11 ]
> %9 = phi i32 [ %20, %19 ], [ 0, %11 ]
> indirectbr i8* %8, [label %4, label %19]
>
> %19:
> %20 = add nsw i32 %9, 1
> %21 = icmp eq i32 %9, 9999
> br i1 %21, label %16, label %7
the br in %19 should be optimized to branch directly to itself rather
than going
2011 Jul 07
0
[LLVMdev] Missed optimization with indirectbr terminator
On Jul 7, 2011, at 4:33 AM, Carlo Alberto Ferraris wrote:
> Il 07/07/2011 11:14, Cameron Zwarich ha scritto:
>>
>> I haven't read the code in detail, but it looks like JumpThreading at least attempts to thread across indirect branches. You can either try to fix it or file a bug with your test case.
> In the source it says "If the predecessor is an indirect goto, we
2011 Jul 08
0
[LLVMdev] Missed optimization with indirectbr terminator
..., but it looks like JumpThreading at least attempts to thread across indirect branches. You can either try to fix it or file a bug with your test case.
>>> In the source it says "If the predecessor is an indirect goto, we can't split the edge. <http://llvm.org/docs/doxygen/html/JumpThreading_8cpp_source.html#l00914>" Why would that be the case?
>> Splitting an edge creates a block which executes when leaving a
>> specific block to go to a specific successor. The only way to split an
>> indirect goto is to insert code before the jump which checks for a
>> specific de...