Displaying 1 result from an estimated 1 matches for "mad_bit_crc".
2008 May 08
3
[LLVMdev] Unnatural loops with O0
...to further investigate this behavior.
To show the problem, I have included an example from libmad:
llvm-gcc -fdump-tree-all -O0 -I. -D_GNU_SOURCE -D__STDC_LIMIT_MACROS
-O0 -m32 -I/usr/include -c bit.c -o Output/bit.bc -emit-llvm
opt -print-cfg Output/bit.bc -o test.bc -f
dot -o test.ps -Tps cfg.mad_bit_crc.dot
In the CFG of mad_bit_crc(), the second while loop is entered from two
other basic blocks.
From what I have seen, this does not happen in the front end. GCC does
transform the loop to a do-while, but does not duplicate the condition.
One work-around that I have found is to insert a label r...