llvm / llvm-project

The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
http://llvm.org
Other
28.57k stars 11.81k forks source link

bugpoint crash #1354

Closed llvmbot closed 14 years ago

llvmbot commented 17 years ago
Bugzilla Link 982
Resolution FIXED
Resolved on Feb 22, 2010 12:52
Version trunk
OS Linux
Attachments bc bugpoint was running on
Reporter LLVM Bugzilla Contributor

Extended Description

the attached program (probably not helpful) crashes when removing a function with:

andrewl@fenris:~/llvm/projects/llvm-test/MultiSource/Benchmarks/mediabench/gsm/toast$ make bugpoint-llc /home/andrewl/llvm/Debug/bin/bugpoint Output/toast.llvm.bc -run-llc
-input=/dev/null -output=Output/toast.out-nat -timeout=500 --tool-args --args -- -cpl /home/andrewl/llvm/projects/llvm-test/MultiSource/Benchmarks/mediabench/gsm/toast/../data/clinton.pcm Read input file : 'Output/toast.llvm.bc' All input ok Found gcc: /usr/bin/gcc Initializing execution environment: Running the code generator to test for a crash: Checking the code generator...

*** Input program does not match reference diff! Debugging code generator problem! Checking to see if the program is misoptimized when these functions are run through the passes: gsm_norm APCM_quantization_xmaxc_to_exp_mant APCM_inverse_quantization RPE_grid_positioning Decoding_of_the_coded_Log_Area_Ratios Coefficients_0_12 Coefficients_13_26 Coefficients_27_39 LARp_to_rp Short_term_analysis_filtering... <29 total> While deleting: int () * %generic_init Use still stuck around after Def is destroyed: { sbyte *, sbyte *, sbyte *, int () *, int () *, int (short *) *, int (short *) * } { sbyte* getelementptr ([7 x sbyte]* %str20, int 0, int 0), sbyte* getelementptr ([44 x sbyte]* %l21_str, int 0, int 0), sbyte* getelementptr ([3 x sbyte]* %l9_str4, int 0, int 0), int ()* %generic_init, int ()* %generic_init, int (short*)* %linear_input, int (short*)* %linear_output } Use still stuck around after Def is destroyed: { sbyte *, sbyte *, sbyte *, int () *, int () *, int (short *) *, int (short *) * } { sbyte* getelementptr ([7 x sbyte]* %str20, int 0, int 0), sbyte* getelementptr ([44 x sbyte]* %l21_str, int 0, int 0), sbyte* getelementptr ([3 x sbyte]* %l9_str4, int 0, int 0), int ()* %generic_init, int ()* %generic_init, int (short*)* %linear_input, int (short*)* %linear_output } Use still stuck around after Def is destroyed: { sbyte *, sbyte *, sbyte *, int () *, int () *, int (short *) *, int (short *) * } { sbyte* getelementptr ([6 x sbyte]* %l11_str2, int 0, int 0), sbyte* getelementptr ([28 x sbyte]* %str18, int 0, int 0), sbyte* getelementptr ([3 x sbyte]* %str319, int 0, int 0), int ()* %generic_init, int ()* %generic_init, int (short*)* %alaw_input, int (short*)* %alaw_output } Use still stuck around after Def is destroyed: { sbyte *, sbyte *, sbyte *, int () *, int () *, int (short *) *, int (short *) * } { sbyte* getelementptr ([6 x sbyte]* %l11_str2, int 0, int 0), sbyte* getelementptr ([28 x sbyte]* %str18, int 0, int 0), sbyte* getelementptr ([3 x sbyte]* %str319, int 0, int 0), int ()* %generic_init, int ()* %generic_init, int (short*)* %alaw_input, int (short*)* %alaw_output } Use still stuck around after Def is destroyed: { sbyte *, sbyte *, sbyte *, int () *, int () *, int (short *) *, int (short *) * } { sbyte* getelementptr ([6 x sbyte]* %l11_str1, int 0, int 0), sbyte* getelementptr ([34 x sbyte]* %l20_str, int 0, int 0), sbyte* getelementptr ([3 x sbyte]* %str17, int 0, int 0), int ()* %generic_init, int ()* %generic_init, int (short*)* %ulaw_input, int (short*)* %ulaw_output } Use still stuck around after Def is destroyed: { sbyte *, sbyte *, sbyte *, int () *, int () *, int (short *) *, int (short *) * } { sbyte* getelementptr ([6 x sbyte]* %l11_str1, int 0, int 0), sbyte* getelementptr ([34 x sbyte]* %l20_str, int 0, int 0), sbyte* getelementptr ([3 x sbyte]* %str17, int 0, int 0), int ()* %generic_init, int ()* %generic_init, int (short*)* %ulaw_input, int (short*)* %ulaw_output } Use still stuck around after Def is destroyed: { sbyte *, sbyte *, sbyte *, int () *, int () *, int (short *) *, int (short *) * } { sbyte* getelementptr ([6 x sbyte]* %l11_str1, int 0, int 0), sbyte* getelementptr ([34 x sbyte]* %l20_str, int 0, int 0), sbyte* getelementptr ([3 x sbyte]* %str17, int 0, int 0), int ()* %generic_init, int ()* %generic_init, int (short*)* %ulaw_input, int (short*)* %ulaw_output } Use still stuck around after Def is destroyed: { sbyte *, sbyte *, sbyte *, int () *, int () *, int (short *) *, int (short *) * } { sbyte* getelementptr ([6 x sbyte]* %l11_str2, int 0, int 0), sbyte* getelementptr ([28 x sbyte]* %str18, int 0, int 0), sbyte* getelementptr ([3 x sbyte]* %str319, int 0, int 0), int ()* %generic_init, int ()* %generic_init, int (short*)* %alaw_input, int (short*)* %alaw_output } Use still stuck around after Def is destroyed: { sbyte *, sbyte *, sbyte *, int () *, int () *, int (short *) *, int (short *) * } { sbyte* getelementptr ([7 x sbyte]* %str20, int 0, int 0), sbyte* getelementptr ([44 x sbyte]* %l21_str, int 0, int 0), sbyte* getelementptr ([3 x sbyte]* %l9_str4, int 0, int 0), int ()* %generic_init, int ()* %generic_init, int (short*)* %linear_input, int (short*)* %linear_output } Use still stuck around after Def is destroyed: { sbyte *, sbyte *, sbyte *, int () *, int () *, int (short *) *, int (short *) * } { sbyte* getelementptr ([7 x sbyte]* %str20, int 0, int 0), sbyte* getelementptr ([44 x sbyte]* %l21_str, int 0, int 0), sbyte* getelementptr ([3 x sbyte]* %l9_str4, int 0, int 0), int ()* %generic_init, int ()* %generic_init, int (short*)* %linear_input, int (short*)* %linear_output } Use still stuck around after Def is destroyed: { sbyte *, sbyte *, sbyte *, int () *, int () *, int (short *) *, int (short *) * } { sbyte* getelementptr ([7 x sbyte]* %str20, int 0, int 0), sbyte* getelementptr ([44 x sbyte]* %l21_str, int 0, int 0), sbyte* getelementptr ([3 x sbyte]* %l9_str4, int 0, int 0), int ()* %generic_init, int ()* %generic_init, int (short*)* %linear_input, int (short*)* %linear_output } Use still stuck around after Def is destroyed: { sbyte *, sbyte *, sbyte *, int () *, int () *, int (short *) *, int (short *) * } { sbyte* getelementptr ([6 x sbyte]* %l11_str2, int 0, int 0), sbyte* getelementptr ([28 x sbyte]* %str18, int 0, int 0), sbyte* getelementptr ([3 x sbyte]* %str319, int 0, int 0), int ()* %generic_init, int ()* %generic_init, int (short*)* %alaw_input, int (short*)* %alaw_output } Use still stuck around after Def is destroyed: { sbyte *, sbyte *, sbyte *, int () *, int () *, int (short *) *, int (short *) * } { sbyte* getelementptr ([6 x sbyte]* %l11_str2, int 0, int 0), sbyte* getelementptr ([28 x sbyte]* %str18, int 0, int 0), sbyte* getelementptr ([3 x sbyte]* %str319, int 0, int 0), int ()* %generic_init, int ()* %generic_init, int (short*)* %alaw_input, int (short*)* %alaw_output } Use still stuck around after Def is destroyed: { sbyte *, sbyte *, sbyte *, int () *, int () *, int (short *) *, int (short *) * } { sbyte* getelementptr ([6 x sbyte]* %l11_str1, int 0, int 0), sbyte* getelementptr ([34 x sbyte]* %l20_str, int 0, int 0), sbyte* getelementptr ([3 x sbyte]* %str17, int 0, int 0), int ()* %generic_init, int ()* %generic_init, int (short*)* %ulaw_input, int (short*)* %ulaw_output } Use still stuck around after Def is destroyed: { sbyte *, sbyte *, sbyte *, int () *, int () *, int (short *) *, int (short *) * } { sbyte* getelementptr ([6 x sbyte]* %l11_str1, int 0, int 0), sbyte* getelementptr ([34 x sbyte]* %l20_str, int 0, int 0), sbyte* getelementptr ([3 x sbyte]* %str17, int 0, int 0), int ()* %generic_init, int ()* %generic_init, int (short*)* %ulaw_input, int (short*)* %ulaw_output } bugpoint: Value.cpp:59: virtual llvm::Value::~Value(): Assertion `use_begin() == use_end() && "Uses remain when a value is destroyed!"' failed. make: *** [Output/toast.bugpoint-llc] Aborted
lattner commented 17 years ago

This was almost certainly fixed on 2006/11/09, by this patch to bugpoint: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20061106/039715.html

-Chris

isanbard commented 17 years ago

Because we don't use 3.3 anymore, it might be okay to close this as "won't fix". If you're comfortable that it's okay with 4.x gcc, that is.

llvmbot commented 17 years ago

LLVM was compiled with gcc 3.3 in that case. I was seeing strange memory related (detected leaks) errors with LLVM on x86 when compiled with gcc 3.3 that didn't appear when compiled with later gccs. This could be another symptom of gcc 3.3 brokenness.

isanbard commented 17 years ago

This should be revisited. Does it still crash? It didn't crash for me when I updated the BC file.

isanbard commented 17 years ago

An ASM vesion of the attached bytecode file. It's out of date now.