[LLVMdev] Default behavior of DeadMachineInstructionElim	deletes all instructions
    Jakob Stoklund Olesen 
    stoklund at 2pi.dk
       
    Mon May  3 10:58:32 PDT 2010
    
    
  
On May 3, 2010, at 10:21 AM, Villmow, Micah wrote:
> Jakob, 
> Here is my implementation of getAllocatableSet:
> BitVector 
> AMDILRegisterInfo::getAllocatableSet(const MachineFunction& MF,
> 		const TargetRegisterClass *RC = NULL) const
> {
> 	BitVector Allocatable(getNumRegs());
> 	Allocatable.clear();
> 	return Allocatable;
> }
Well, there's your problem.
BitVector::clear() resets the size to 0, and callers of getAllocatableSet expect a bit per physical register.
Please add an assert(NonAllocatableRegs.size() >= TRI->getNumRegs()) to DeadMachineInstructionElim.
/jakob
    
    
More information about the llvm-dev
mailing list