llvm / llvm-project

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

Error while generating ARM code with llvm-gcc #5523

Closed llvmbot closed 14 years ago

llvmbot commented 15 years ago
Bugzilla Link 5151
Resolution FIXED
Resolved on Apr 22, 2010 11:30
Version 2.6
OS All
Attachments Simplified test case
Reporter LLVM Bugzilla Contributor
CC @asl

Extended Description

While trying to compile the kernel with an arm llvm-gcc cross toolchain, I get this error triggered by net/sched/cls_basic.c of linux 2.6.28.10:

Assertion failed: ((!EarlyClobberRegs.test(Reg) || MI->isRegTiedToDefOperand(i)) && "Using an early clobbered register!"), function forward, file RegisterScavenging.cpp, line 221. 0 llc 0x0000000100bc7ef2 std::vector<llvm::sys::Path, std::allocator >::_M_insert_aux(gnu_cxx::normal_iterator<llvm::sys::Path*, std::vector<llvm::sys::Path, std::allocator > >, llvm::sys::Path const&) + 8402 1 llc 0x0000000100bc85b6 std::vector<llvm::sys::Path, std::allocator >::_M_insert_aux(gnu_cxx::normal_iterator<llvm::sys::Path, std::vector<llvm::sys::Path, std::allocator > >, llvm::sys::Path const&) + 10134 2 libSystem.B.dylib 0x00007fff8332c14a _sigtramp + 26 3 libSystem.B.dylib 0x00000001010627f2 _sigtramp + 2111006402 4 libSystem.B.dylib 0x00007fff833a8104 __pthread_markcancel + 0 5 llc 0x000000010095f78f llvm::RegisterCoalescer::getAnalysisUsage(llvm::AnalysisUsage&) const + 6943 6 llc 0x00000001009303d8 llvm::DenseMap<llvm::VNInfo, llvm::SmallPtrSet<llvm::MachineInstr, 4u>, llvm::DenseMapInfo<llvm::VNInfo>, llvm::DenseMapInfo<llvm::SmallPtrSet<llvm::MachineInstr, 4u> > >::FindAndConstruct(llvm::VNInfo const&) + 3192 7 llc 0x0000000100932ccb llvm::DenseMap<llvm::VNInfo, llvm::SmallPtrSet<llvm::MachineInstr, 4u>, llvm::DenseMapInfo<llvm::VNInfo>, llvm::DenseMapInfo<llvm::SmallPtrSet<llvm::MachineInstr, 4u> > >::FindAndConstruct(llvm::VNInfo const&) + 13675 8 llc 0x00000001008f8abb llvm::sys::Path llvm::WriteGraph<llvm::MachineFunction const>(llvm::MachineFunction const* const&, std::string const&, bool, std::string const&) + 2363 9 llc 0x0000000100b4af0a llvm::FunctionPass::~FunctionPass() + 42906 10 llc 0x0000000100b4b574 llvm::FunctionPass::~FunctionPass() + 44548 11 llc 0x0000000100b4b8b2 llvm::FunctionPass::~FunctionPass() + 45378 12 llc 0x0000000100020dc2 llvm::sys::SmartMutex::release() + 24418 13 llc 0x000000010001f238 llvm::sys::SmartMutex::release() + 17368

llvmbot commented 14 years ago

This looks to be fixed. The attached test case compiles without error.

asl commented 15 years ago

Confirmed on top of the tree. Please don't use 2.6 release for ARM - there were many bugfixes there since 2.6 release branched, it's much better to look into the recent stuff :)