Hi, Today I managed to link ioquake3, but generating a binary does not work yet. 1) On OSX, I get: Error: Code generator does not support intrinsic function 'llvm.ppc.altivec.lvsl'! when I do: llc file.bc -march=c -o file.c 2) On Linux X86, llc does not give any problem, but I get this while compiling the generated .c file: error: unknown register name 'S' in 'asm' This is the offending line (notice the "S" on the last line): __asm__ volatile ("\tpushal\t\t\t\t\n\tmovl %0,%%esi\t\t\n\tmovl % 1,%%edi\t\t\n\tcall *%2\t\t\t\n\tmovl %%esi,%0\t\t\n\tmo\ vl %%edi,%1\t\t\n\tpopal\t\t\t\t\n" :"=m"(memProgramStack_2E_5872),"=m"(memOpStack_2E_5873) :"m"(memEntryPoint_2E_5874),"m"(memProgramStack_2E_5872),"m"(me mOpStack_2E_5873) :"D","S"); Apparently, leaving out "S" helps (compiling the .c file works), but what does it do and why is it here? 3) Regarding bug 1446 (http://llvm.org/bugs/show_bug.cgi?id=1446): the proposed patch for the file called sv_client.c indeed works on OSX, but on Linux X86 -O3 it still does not work. More in particular, the frontend is now stuck inside the for-loop on lines 176-->391 of PromoteMemoryToRegister.cpp when in the control flow of -scalarrepl: #4 0x08764f72 in (anonymous namespace)::PromoteMem2Reg::run (this=0xbff9bfa0) at /home/bram/workspace/svn/aspicere2/trunk/llvm/lib/Transforms/ Utils/PromoteMemoryToRegister.cpp:271 #5 0x08767021 in llvm::PromoteMemToReg (Allocas=@0xbff9c120, ET=@0x8b14c10, DF=@0x8b14d98, AST=0x0) at /home/bram/workspace/svn/aspicere2/trunk/llvm/lib/Transforms/ Utils/PromoteMemoryToRegister.cpp:812 #6 0x08744713 in (anonymous namespace)::SROA::performPromotion (this=0x8b14f38, F=@0x8bc8468) at /home/bram/workspace/svn/aspicere2/trunk/llvm/lib/Transforms/ Scalar/ScalarReplAggregates.cpp:130 #7 0x087445ba in (anonymous namespace)::SROA::runOnFunction (this=0x8b14f38, F=@0x8bc8468) at /home/bram/workspace/svn/aspicere2/trunk/llvm/lib/Transforms/ Scalar/ScalarReplAggregates.cpp:101 #8 0x08826499 in llvm::FPPassManager::runOnFunction (this=0x8b15d00, F=@0x8bc8468) at /home/bram/workspace/svn/aspicere2/trunk/llvm/lib/VMCore/ PassManager.cpp:1145 #9 0x08826237 in llvm::FunctionPassManagerImpl::run (this=0x8b14e78, F=@0x8bc8468) at /home/bram/workspace/svn/aspicere2/trunk/llvm/lib/VMCore/ PassManager.cpp:1103 #10 0x0882611f in llvm::FunctionPassManager::run (this=0x8b156e8, F=@0x8bc8468) at /home/bram/workspace/svn/aspicere2/trunk/llvm/lib/VMCore/ PassManager.cpp:1048 Kind regards, Bram Adams GH-SEL, INTEC, Ghent University (Belgium)
Hi Bram, Could you submit bug reports for all of these problems? Thanks! -bw On 5/29/07, Bram Adams <bram.adams at ugent.be> wrote:> Hi, > > Today I managed to link ioquake3, but generating a binary does not > work yet. > > > 1) On OSX, I get: > > Error: Code generator does not support intrinsic function > 'llvm.ppc.altivec.lvsl'! > > when I do: llc file.bc -march=c -o file.c > > > 2) On Linux X86, llc does not give any problem, but I get this while > compiling the generated .c file: > > error: unknown register name 'S' in 'asm' > > This is the offending line (notice the "S" on the last line): > > __asm__ volatile ("\tpushal\t\t\t\t\n\tmovl %0,%%esi\t\t\n\tmovl % > 1,%%edi\t\t\n\tcall *%2\t\t\t\n\tmovl %%esi,%0\t\t\n\tmo\ > vl %%edi,%1\t\t\n\tpopal\t\t\t\t\n" > :"=m"(memProgramStack_2E_5872),"=m"(memOpStack_2E_5873) > :"m"(memEntryPoint_2E_5874),"m"(memProgramStack_2E_5872),"m"(me > mOpStack_2E_5873) > :"D","S"); > > Apparently, leaving out "S" helps (compiling the .c file works), but > what does it do and why is it here? > > > 3) Regarding bug 1446 (http://llvm.org/bugs/show_bug.cgi?id=1446): > the proposed patch for the file called sv_client.c indeed works on > OSX, but on Linux X86 -O3 it still does not work. More in particular, > the frontend is now stuck inside the for-loop on lines 176-->391 of > PromoteMemoryToRegister.cpp when in the control flow of -scalarrepl: > > #4 0x08764f72 in (anonymous namespace)::PromoteMem2Reg::run > (this=0xbff9bfa0) > at /home/bram/workspace/svn/aspicere2/trunk/llvm/lib/Transforms/ > Utils/PromoteMemoryToRegister.cpp:271 > #5 0x08767021 in llvm::PromoteMemToReg (Allocas=@0xbff9c120, > ET=@0x8b14c10, DF=@0x8b14d98, AST=0x0) > at /home/bram/workspace/svn/aspicere2/trunk/llvm/lib/Transforms/ > Utils/PromoteMemoryToRegister.cpp:812 > #6 0x08744713 in (anonymous namespace)::SROA::performPromotion > (this=0x8b14f38, F=@0x8bc8468) > at /home/bram/workspace/svn/aspicere2/trunk/llvm/lib/Transforms/ > Scalar/ScalarReplAggregates.cpp:130 > #7 0x087445ba in (anonymous namespace)::SROA::runOnFunction > (this=0x8b14f38, F=@0x8bc8468) > at /home/bram/workspace/svn/aspicere2/trunk/llvm/lib/Transforms/ > Scalar/ScalarReplAggregates.cpp:101 > #8 0x08826499 in llvm::FPPassManager::runOnFunction (this=0x8b15d00, > F=@0x8bc8468) > at /home/bram/workspace/svn/aspicere2/trunk/llvm/lib/VMCore/ > PassManager.cpp:1145 > #9 0x08826237 in llvm::FunctionPassManagerImpl::run (this=0x8b14e78, > F=@0x8bc8468) > at /home/bram/workspace/svn/aspicere2/trunk/llvm/lib/VMCore/ > PassManager.cpp:1103 > #10 0x0882611f in llvm::FunctionPassManager::run (this=0x8b156e8, > F=@0x8bc8468) > at /home/bram/workspace/svn/aspicere2/trunk/llvm/lib/VMCore/ > PassManager.cpp:1048 > > > > Kind regards, > > > Bram Adams > GH-SEL, INTEC, Ghent University (Belgium) > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >
I was poking around, but I didn't spot a PayPal link for the t-shirts and/or supporting LLVM. Any follow-up from the pre-meeting discussions? -Gabe
On Tue, 29 May 2007, Bram Adams wrote:> Today I managed to link ioquake3, but generating a binary does not > work yet. > 1) On OSX, I get: > > Error: Code generator does not support intrinsic function > 'llvm.ppc.altivec.lvsl'! > > when I do: llc file.bc -march=c -o file.cThe C backend doesn't support all target-specific intrinsics.> 2) On Linux X86, llc does not give any problem, but I get this while > compiling the generated .c file: > > error: unknown register name 'S' in 'asm' > > This is the offending line (notice the "S" on the last line): > > __asm__ volatile ("\tpushal\t\t\t\t\n\tmovl %0,%%esi\t\t\n\tmovl % > 1,%%edi\t\t\n\tcall *%2\t\t\t\n\tmovl %%esi,%0\t\t\n\tmo\ > vl %%edi,%1\t\t\n\tpopal\t\t\t\t\n" > :"=m"(memProgramStack_2E_5872),"=m"(memOpStack_2E_5873) > :"m"(memEntryPoint_2E_5874),"m"(memProgramStack_2E_5872),"m"(me > mOpStack_2E_5873) > :"D","S"); > > Apparently, leaving out "S" helps (compiling the .c file works), but > what does it do and why is it here?Please file a bug with this in a self-contained .c file. Thanks!> 3) Regarding bug 1446 (http://llvm.org/bugs/show_bug.cgi?id=1446): > the proposed patch for the file called sv_client.c indeed works on > OSX, but on Linux X86 -O3 it still does not work. More in particular, > the frontend is now stuck inside the for-loop on lines 176-->391 of > PromoteMemoryToRegister.cpp when in the control flow of -scalarrepl:Very strange. Is everything up to date? -Chris -- http://nondot.org/sabre/ http://llvm.org/
Hi, Op 30-mei-07, om 06:31 heeft Chris Lattner het volgende geschreven:>> when I do: llc file.bc -march=c -o file.c > > The C backend doesn't support all target-specific intrinsics.OK (http://llvm.org/bugs/show_bug.cgi?id=1481).> Please file a bug with this in a self-contained .c file. Thanks!Has happened: http://llvm.org/bugs/show_bug.cgi?id=1482.> Very strange. Is everything up to date?Yes, I applied your patch but it still hangs on -O3, not on -O0 (http://llvm.org/bugs/show_bug.cgi?id=1446). Kind regards, Bram Adams GH-SEL, INTEC, Ghent University (Belgium)