[LLVMdev] GVN Infinite loop

Arushi Aggarwal arushi987 at gmail.com
Tue May 3 18:53:19 PDT 2011


  Mainline.
------------------------------
From: John Criswell
Sent: Tuesday, May 03, 2011 8:34 PM
To: Arushi Aggarwal
Cc: LLVM Dev
Subject: Re: [LLVMdev] GVN Infinite loop

   On 5/3/11 5: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.


Are you running with LLVM 2.9 or LLVM mainline?

-- John T.


 Any pointers to how to reduce the test case.

 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 listLLVMdev at cs.uiuc.edu
http://llvm.cs.uiuc.eduhttp://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110503/73a6bd31/attachment.html>


More information about the llvm-dev mailing list