[LLVMdev] GVN Infinite loop

Arushi Aggarwal arushi987 at gmail.com
Wed May 4 09:55:23 PDT 2011


That trick worked. Filed as bug 9841.

Thanks,
Arushi

On Wed, May 4, 2011 at 7:12 AM, Chris Lattner <clattner at apple.com> wrote:

>
> On May 3, 2011, at 3:25 PM, Arushi Aggarwal wrote:
>
> > Hi,
> >
> > GVN seems to be running in an infinite loop on my example. I have
> attached the output of one iteration. I cant seem to reduce the testcase
> either.
> >
> > Any pointers to how to reduce the test case.
>
> Bugzilla can reduce testcases that cause infinite loops (it has a -timeout
> flag), I'd try it.  Even if this doesn't help, please do file a bug with
> whatever you have.  This is likely to be a recent regression.
>
> -Chris
>
> >
> > THanks,
> > Arushi
> >
> > GVN iteration: 8
> > GVN WIDENED LOAD:   %0 = load i8* getelementptr inbounds
> (%struct.CHESS_POSITION* @search, i64 0, i32 23), align 2, !dbg !875
> > TO:   %1 = load i16* bitcast (i8* getelementptr inbounds
> (%struct.CHESS_POSITION* @search, i64 0, i32 23) to i16*), align 2
> > GVN COERCED INST:
> >   %0 = load i8* getelementptr inbounds (%struct.CHESS_POSITION* @search,
> i64 0, i32 23), align 2, !dbg !875
> >   %1 = load i16* bitcast (i8* getelementptr inbounds
> (%struct.CHESS_POSITION* @search, i64 0, i32 23) to i16*), align 2
> >   %3 = load i16* bitcast (i8* getelementptr inbounds
> (%struct.CHESS_POSITION* @search, i64 0, i32 23) to i16*), align 2
> >
> >
> > GVN removed:   %3 = load i16* bitcast (i8* getelementptr inbounds
> (%struct.CHESS_POSITION* @search, i64 0, i32 23) to i16*), align 2
> > GVN WIDENED LOAD:   %0 = load i8* getelementptr inbounds
> (%struct.CHESS_POSITION* @search, i64 0, i32 23), align 2, !dbg !875
> > TO:   %1 = load i16* bitcast (i8* getelementptr inbounds
> (%struct.CHESS_POSITION* @search, i64 0, i32 23) to i16*), align 2
> > GVN COERCED INST:
> >   %0 = load i8* getelementptr inbounds (%struct.CHESS_POSITION* @search,
> i64 0, i32 23), align 2, !dbg !875
> >   %1 = load i16* bitcast (i8* getelementptr inbounds
> (%struct.CHESS_POSITION* @search, i64 0, i32 23) to i16*), align 2
> >   %6 = load i16* bitcast (i8* getelementptr inbounds
> (%struct.CHESS_POSITION* @search, i64 0, i32 23) to i16*), align 2
> >
> >
> > GVN removed:   %6 = load i16* bitcast (i8* getelementptr inbounds
> (%struct.CHESS_POSITION* @search, i64 0, i32 23) to i16*), align 2
> > GVN WIDENED LOAD:   %0 = load i8* getelementptr inbounds
> (%struct.CHESS_POSITION* @search, i64 0, i32 23), align 2, !dbg !875
> > TO:   %1 = load i16* bitcast (i8* getelementptr inbounds
> (%struct.CHESS_POSITION* @search, i64 0, i32 23) to i16*), align 2
> > GVN COERCED INST:
> >   %0 = load i8* getelementptr inbounds (%struct.CHESS_POSITION* @search,
> i64 0, i32 23), align 2, !dbg !875
> >   %1 = load i16* bitcast (i8* getelementptr inbounds
> (%struct.CHESS_POSITION* @search, i64 0, i32 23) to i16*), align 2
> >   %9 = load i16* bitcast (i8* getelementptr inbounds
> (%struct.CHESS_POSITION* @search, i64 0, i32 23) to i16*), align 2
> >
> >
> > GVN removed:   %9 = load i16* bitcast (i8* getelementptr inbounds
> (%struct.CHESS_POSITION* @search, i64 0, i32 23) to i16*), align 2
> > GVN removed:   %10 = trunc i16 %1 to i8
> > GVN removed:   %10 = trunc i16 %3 to i8
> > GVN removed:   %10 = trunc i16 %5 to i8
> > GVN iteration: 9
> >
> > _______________________________________________
> > LLVM Developers mailing list
> > LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110504/7b42256d/attachment.html>


More information about the llvm-dev mailing list