Hi,<br>
<br>
In my experiments, I need to disable several linking optimizations.
However, bzip2, vortex and eon failed if "-disable-opt" was passed to
gccld. I tried the out-of-box llvm and the building process provided by
llvm-test. The same problem was observed, when I specified
EXTRA_LINKTIME_OPT_FLAGS = -disable-opt on Makefile.program and
simplied typed "make" under llvm-test/External/SPEC/CINT2000. Seems
that these errors come from llc backend. But I have to stick to x86
backend because otherwise I can not control the optimization passes
that gcc will put on the generated c code.<br>
<br>
I am wondering if this problem is a llc bug or some implicit rules. I really appreciate if it is solved.<br>
<br>
Thanks,<br>
Jing<br>
<br>
==============error messages for vortex:=================<br>
/home/snir/jingyu/resources/llvm/build2/Debug/bin/gccas Output/255.vortex.linked.rll -o Output/255.vortex.linked.bc<br>
/home/snir/jingyu/resources/llvm/build2/Debug/bin/gccld
-L/home/snir/jingyu/resources/llvm/cfrontend/x86/llvm-gcc/bin/../lib/gcc/i686-pc-linux-gnu/3.4-llvm
-L/home/snir/jingyu/resources/llvm/cfrontend/x86/llvm-gcc/bin/../lib
Output/255.vortex.linked.bc<br>
-disable-opt -lc -lpthread -lltdl -lm -lcrtend -o Output/255.vortex.llvm<br>
/home/snir/jingyu/resources/llvm/build2/Debug/bin/llc -f Output/255.vortex.llvm.bc -o Output/255.vortex.llc.s<br>
llc:
/home/snir/jingyu/resources/llvm/build2/../llvm2/llvm/lib/Target/X86/X86ISelLowering.cpp:2405:
virtual llvm::SDOperand
llvm::X86TargetLowering::LowerOperation(llvm::SDOperand,
llvm::SelectionDAG&): Assertion `isFP && "Illegal integer
SetCC!"'
failed./home/snir/jingyu/resources/llvm/build2/Debug/bin/llc((anonymous
namespace)::PrintStackTrace()+0x1a)[0x87a818e]<br>
/home/snir/jingyu/resources/llvm/build2/Debug/bin/llc((anonymous namespace)::SignalHandler(int)+0xe9)[0x87a841d]<br>
/lib/tls/libc.so.6[0x420277b8]<br>
/lib/tls/libc.so.6(abort+0x1d5)[0x42028c55]<br>
/lib/tls/libc.so.6[0x42021043]<br>
/home/snir/jingyu/resources/llvm/build2/Debug/bin/llc(llvm::X86TargetLowering::LowerOperation(llvm::SDOperand,
llvm::SelectionDAG&)+0x26c5)[0x83fe515]<br>
/home/snir/jingyu/resources/llvm/build2/Debug/bin/llc((anonymous
namespace)::SelectionDAGLegalize::LegalizeOp(llvm::SDOperand)+0xa318)[0x851262c]<br>
/home/snir/jingyu/resources/llvm/build2/Debug/bin/llc((anonymous
namespace)::SelectionDAGLegalize::PromoteOp(llvm::SDOperand)+0x3030)[0x851c3cc]<br>
/home/snir/jingyu/resources/llvm/build2/Debug/bin/llc((anonymous
namespace)::SelectionDAGLegalize::HandleOp(llvm::SDOperand)+0xa9)[0x85080bf]<br>
/home/snir/jingyu/resources/llvm/build2/Debug/bin/llc((anonymous
namespace)::SelectionDAGLegalize::LegalizeDAG()+0x236)[0x8507a4e]<br>
/home/snir/jingyu/resources/llvm/build2/Debug/bin/llc(llvm::SelectionDAG::Legalize()+0x48)[0x852848c]<br>
/home/snir/jingyu/resources/llvm/build2/Debug/bin/llc(llvm::SelectionDAGISel::CodeGenAndEmitDAG(llvm::SelectionDAG&)+0x75)[0x854f957]<br>
/home/snir/jingyu/resources/llvm/build2/Debug/bin/llc(llvm::SelectionDAGISel::SelectBasicBlock(llvm::BasicBlock*,
llvm::MachineFunction&,
llvm::FunctionLoweringInfo&)+0xd8)[0x854fb1e]<br>
/home/snir/jingyu/resources/llvm/build2/Debug/bin/llc(llvm::SelectionDAGISel::runOnFunction(llvm::Function&)+0x2cd)[0x854e111]<br>
/home/snir/jingyu/resources/llvm/build2/Debug/bin/llc((anonymous
namespace)::X86DAGToDAGISel::runOnFunction(llvm::Function&)+0x25)[0x84ea18b]<br>
/home/snir/jingyu/resources/llvm/build2/Debug/bin/llc(llvm::FunctionPassManagerT::runPass(llvm::FunctionPass*,
llvm::Function*)+0x1f)[0x86e004b]<br>
/home/snir/jingyu/resources/llvm/build2/Debug/bin/llc(llvm::PassManagerT<llvm::FTraits>::runPasses(llvm::Function*,
std::map<llvm::Pass*, std::vector<llvm::Pass*,
std::allocator<llvm::Pass*> >, std::less<llvm::Pass*>,
std::allocator<std::pair<llvm::Pass*<br>
const, std::vector<llvm::Pass*, std::allocator<llvm::Pass*> > > > >&)+0x13e)[0x86de7e0]<br>
/home/snir/jingyu/resources/llvm/build2/Debug/bin/llc(llvm::PassManagerT<llvm::FTraits>::runOnUnit(llvm::Function*)+0x17b)[0x86de667]<br>
/home/snir/jingyu/resources/llvm/build2/Debug/bin/llc(llvm::FunctionPassManagerT::runOnFunction(llvm::Function&)+0x25)[0x86e00e9]<br>
/home/snir/jingyu/resources/llvm/build2/Debug/bin/llc(llvm::FunctionPass::runOnModule(llvm::Module&)+0xa5)[0x867420f]<br>
/home/snir/jingyu/resources/llvm/build2/Debug/bin/llc(llvm::ModulePassManager::runPass(llvm::ModulePass*,
llvm::Module*)+0x1f)[0x86e1c11]<br>
/home/snir/jingyu/resources/llvm/build2/Debug/bin/llc(llvm::PassManagerT<llvm::MTraits>::runPasses(llvm::Module*,
std::map<llvm::Pass*, std::vector<llvm::Pass*,
std::allocator<llvm::Pass*> >, std::less<llvm::Pass*>,
std::allocator<std::pair<llvm::Pass* const,
std::vector<llvm::Pass*, std::allocator<llvm::Pass*> > >
>
>&)+0x13e)[0x86e0a4e]/home/snir/jingyu/resources/llvm/build2/Debug/bin/llc(llvm::PassManagerT<llvm::MTraits>::runOnUnit(llvm::Module*)+0x17b)[0x86e08d5]<br>
/home/snir/jingyu/resources/llvm/build2/Debug/bin/llc(llvm::ModulePassManager::runOnModule(llvm::Module&)+0x25)[0x867329d]<br>
/home/snir/jingyu/resources/llvm/build2/Debug/bin/llc(llvm::PassManager::run(llvm::Module&)+0x23)[0x867362d]<br>
/home/snir/jingyu/resources/llvm/build2/Debug/bin/llc(main+0xd67)[0x83c589b]<br>
/lib/tls/libc.so.6(__libc_start_main+0xe4)[0x42015704]<br>
/home/snir/jingyu/resources/llvm/build2/Debug/bin/llc(dlopen+0x45)[0x83c49a1]<br>
make[1]: *** [Output/255.vortex.llc.s] Aborted (core dumped)<br>
<br>
<br>
==========error messages for bzip2:===========<br>
...<br>
gcc Output/256.bzip2.llc.s -lm -lm -o Output/256.bzip2.llc<br>
/home/snir/jingyu/resources/llvm/llvm2/llvm/projects/llvm-test/External/SPEC/Sandbox.sh
llc-train Output/256.bzip2.out-llc
/home/snir/jingyu/resources/llvm/build2/projects/llvm-test/External/speccpu2000/benchspec/CINT2000/256.bzip2/data/train/input/
\<br>
/home/snir/jingyu/resources/llvm/llvm2/llvm/projects/llvm-test/RunSafely.sh
500 /dev/null input.compressed.out \<br>
../256.bzip2.llc `cat
/home/snir/jingyu/resources/llvm/build2/projects/llvm-test/External/speccpu2000/benchspec/CINT2000/256.bzip2/data/train/input/control`<br>
Running: /home/snir/jingyu/resources/llvm/llvm2/llvm/projects/llvm-test/RunSafely.sh<br>
500 /dev/null input.compressed.out ../256.bzip2.llc input.compressed 8<br>
(cd Output/llc-train; cat input.compressed.out) > Output/256.bzip2.out-llc<br>
cp Output/llc-train/input.compressed.out.time Output/256.bzip2.out-llc.time<br>
/home/snir/jingyu/resources/llvm/llvm2/llvm/projects/llvm-test/DiffOutput.sh
"/home/snir/jingyu/resources/llvm/build2/Debug/bin/fpcmp " llc 256.bzip2<br>
/home/snir/jingyu/resources/llvm/build2/Debug/bin/fpcmp: Comparison failed, not a numeric difference.<br>
******************** TEST (llc) '256.bzip2' FAILED! ********************<br>
Execution Context Diff:<br>
******************** TEST (llc) '256.bzip2' ****************************<br>
<br>
<br>
<br>
========error messages for eon============<br>
...<br>
Running:
/home/snir/jingyu/resources/llvm/llvm2/llvm/projects/llvm-test/RunSafely.sh
500 /dev/null cook_log.out
/home/snir/jingyu/resources/llvm/build2/Debug/bin/lli
-force-interpreter=false ../252.eon.llvm.bc chair.control.cook
chair.camera chair.surfaces chair.cook.ppm ppm pixels_out.cook<br>
Core was generated by `/home/snir/jingyu/resources/llvm/build2/Debug/bin/lli -force-interpreter=false'.<br>
Program terminated with signal 11, Segmentation fault.<br>
#0 0x4055c292 in ?? ()<br>
#0 0x4055c292 in ?? ()<br>
#1 0x405500c8 in ?? ()<br>
#2 0x0846fb12 in
llvm::ExecutionEngine::runFunctionAsMain(llvm::Function*,
std::vector<std::string, std::allocator<std::string> >
const&, char const* const*)<br>
(this=0x8e00ae0, Fn=0x8a0c378, argv=@0x890fe5c, envp=0xbfffe35c)<br>
at /home/snir/jingyu/resources/llvm/build2/../llvm2/llvm/lib/ExecutionEngine/ExecutionEngine.cpp:154<br>
#3 0x083ba550 in main (argc=9, argv=0xbfffe334, envp=0xbfffe35c)<br>
at /home/snir/jingyu/resources/llvm/build2/../llvm2/llvm/tools/lli/lli.cpp:105<br>
#4 0x42015704 in __libc_start_main () from /lib/tls/libc.so.6<br>
(cd Output/jit-train; cat pixels_out.cook pixels_out.kajiya pixels_out.rushmeier) > Output/252.eon.out-jit<br>
cat: pixels_out.cook: No such file or directory<br>
cat: pixels_out.kajiya: No such file or directory<br>
cat: pixels_out.rushmeier: No such file or directory<br>
make[1]: [Output/252.eon.out-jit] Error 1 (ignored)<br>
cp Output/jit-train/cook_log.out.time Output/252.eon.out-jit.time<br>
/home/snir/jingyu/resources/llvm/llvm2/llvm/projects/llvm-test/DiffOutput.sh
"/home/snir/jingyu/resources/llvm/build2/Debug/bin/fpcmp -a
0.005" jit 252.eon<br>
******************** TEST (jit) '252.eon' FAILED! ********************<br>
Execution Context Diff:<br>
******************** TEST (jit) '252.eon' ****************************<br>
make[1]: Leaving directory `/home/snir/jingyu/resources/llvm/build2/projects/llvm-test/External/SPEC/CINT2000/252.eon'<br>
<br>