[LLVMbugs] [Bug 658] NEW: register allocators need callee saved regs

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Wed Nov 9 01:05:01 PST 2005


http://llvm.cs.uiuc.edu/bugs/show_bug.cgi?id=658

           Summary: register allocators need callee saved regs
           Product: libraries
           Version: trunk
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: minor
          Priority: P2
         Component: Register Allocator
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: duraid at octopus.com.au


on IA64, the "unix-tbl" and "unix-smail" Prolangs-C tests make llc segfault:

/home/builddonkey/builddir/llvm/Debug/bin/llc  -f Output/unix-smail.llvm.bc -o
Output/unix-smail.llc.s
/home/builddonkey/builddir/llvm/Debug/bin/llc((anonymous
namespace)::PrintStackTrace()+0x30)[0x4000000001359500]
/home/builddonkey/builddir/llvm/Debug/bin/llc((anonymous
namespace)::SignalHandler(int)+0x300)[0x4000000001359c00]
[0xa0000000000107e0]
/home/builddonkey/builddir/llvm/Debug/bin/llc((anonymous
namespace)::LocalSpiller::ClobberPhysReg(unsigned int, std::map<int, unsigned
int, std::less<int>, std::allocator<std::pair<int const, unsigned int> > >&,
std::map<unsigned int, int, std::less<unsigned int>,
std::allocator<std::pair<unsigned int const, int> > >&)+0xb0)[0x4000000000da7840]
/home/builddonkey/builddir/llvm/Debug/bin/llc((anonymous
namespace)::LocalSpiller::RewriteMBB(llvm::MachineBasicBlock&, llvm::VirtRegMap
const&)+0x1b50)[0x4000000000da9490]
/home/builddonkey/builddir/llvm/Debug/bin/llc((anonymous
namespace)::LocalSpiller::runOnMachineFunction(llvm::MachineFunction&,
llvm::VirtRegMap const&)+0x350)[0x4000000000e4a4c0]
/home/builddonkey/builddir/llvm/Debug/bin/llc((anonymous
namespace)::RA::runOnMachineFunction(llvm::MachineFunction&)+0x6a0)[0x4000000000d8dfd0]
...


The reason seems to be (thanks Chris) that IA64 has *no* callee saved predicate
registers, and so the register allocator freaks out if there is a bool live
across a call.

(The workaround is of course to just define some callee-saved predicate registers.)



------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.




More information about the llvm-bugs mailing list