[LLVMdev] Hang in InstCombiner::DoOneIteration
Rob Grapes
Rob.Grapes at umajin.com
Wed Feb 11 20:00:01 PST 2015
Hi,
I'm hoping someone here can help me.
I've just updated to LLVM 3.5.0 and when I run the following I eventually get a crash when I run out of memory.
opt -O2 bug.ll
I'll try 3.5.1, then if that's still fails I'll try trunk.
It seems to be related to the
%5 = fptrunc double %4 to float
line which is continually being added to the work list.
Rob.
bug.ll contains the following:
; ModuleID = 'bug.u'
target datalayout = "e-m:w-p:32:32-i64:64-f80:32-n8:16:32-S32"
target triple = "i686-pc-windows-msvc"
%string = type { i8*, i8* }
%vec3 = type { float, float, float }
%var = type { i32, i64 }
%object = type { i8*, %string, %string, i8* }
@hue = global double 0.000000e+00
; Function Attrs: noinline nounwind
declare double @rand__d__v() #0
; Function Attrs: noinline nounwind
declare %vec3* @vec3__PZ4vec3__fff(float, float, float) #0
; Function Attrs: noinline nounwind
define i32 @main__i__v() #0 {
locals:
br label %entry
entry: ; preds = %locals
%0 = call double @rand__d__v() #1
store double %0, double* @hue
%1 = load double* @hue
%2 = fadd double %1, 0x3FE3C6EF372FE951
store double %2, double* @hue
%3 = load double* @hue
%4 = frem double %3, 1.000000e+00
%5 = fptrunc double %4 to float
%6 = call %vec3* @vec3__PZ4vec3__fff(float %5, float 0x3FD3333340000000, float 0x3FEE666660000000) #1
ret i32 0
}
attributes #0 = { noinline nounwind }
attributes #1 = { nounwind }
The last few lines from the log are as follows:
[2015-02-12 16:48:08.678188100] 0xb81c40 Executing Pass 'Interprocedural Sparse Conditional Constant Propagation' on Module 'bug.ll'...
0xb94e90 Required Analyses: Target Library Information
-*- 'Interprocedural Sparse Conditional Constant Propagation' is the last user of following pass instances. Free theseinstances
[2015-02-12 16:48:08.683191600] 0xb81c40 Freeing Pass 'Interprocedural Sparse Conditional Constant Propagation' on Module 'bug.ll'...
[2015-02-12 16:48:08.686193300] 0xb81c40 Executing Pass 'Global Variable Optimizer' on Module 'bug.ll'...
0xb845b0 Required Analyses: Target Library Information
-*- 'Global Variable Optimizer' is the last user of following pass instances. Free these instances
[2015-02-12 16:48:08.688194100] 0xb81c40 Freeing Pass 'Global Variable Optimizer' on Module 'bug.ll'...
[2015-02-12 16:48:08.690195800] 0xb81c40 Executing Pass 'Dead Argument Elimination' on Module 'bug.ll'...
-*- 'Dead Argument Elimination' is the last user of following pass instances. Free these instances
[2015-02-12 16:48:08.694198400] 0xb81c40 Freeing Pass 'Dead Argument Elimination' on Module 'bug.ll'...
[2015-02-12 16:48:08.696202400] 0xb81c40 Executing Pass 'Function Pass Manager' on Module 'bug.ll'...
[2015-02-12 16:48:08.698201000] 0xba8638 Executing Pass 'Combine redundant instructions' on Function 'main__i__v'...
0xbb0fc8 Required Analyses: Target Library Information
-------------- next part --------------
A non-text attachment was scrubbed...
Name: bug.ll
Type: application/octet-stream
Size: 1075 bytes
Desc: bug.ll
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150212/47c3e899/attachment.obj>
More information about the llvm-dev
mailing list