//===---------------------------------------------------------------------===//
// MachineFunction implementation
//===---------------------------------------------------------------------===//
-MachineBasicBlock* ilist_traits<MachineBasicBlock>::createNode()
-{
+
+MachineBasicBlock* ilist_traits<MachineBasicBlock>::createSentinel() {
MachineBasicBlock* dummy = new MachineBasicBlock();
LeakDetector::removeGarbageObject(dummy);
return dummy;
void ilist_traits<MachineBasicBlock>::transferNodesFromList(
iplist<MachineBasicBlock, ilist_traits<MachineBasicBlock> >& toList,
ilist_iterator<MachineBasicBlock> first,
- ilist_iterator<MachineBasicBlock> last)
-{
+ ilist_iterator<MachineBasicBlock> last) {
if (Parent != toList.Parent)
for (; first != last; ++first)
first->Parent = toList.Parent;
// Print Constant Pool
getConstantPool()->print(OS);
-
+
+ const MRegisterInfo *MRI = getTarget().getRegisterInfo();
+
+ if (livein_begin() != livein_end()) {
+ OS << "Live Ins:";
+ for (livein_iterator I = livein_begin(), E = livein_end(); I != E; ++I) {
+ if (MRI)
+ OS << " " << MRI->getName(I->first);
+ else
+ OS << " Reg #" << I->first;
+ }
+ OS << "\n";
+ }
+ if (liveout_begin() != liveout_end()) {
+ OS << "Live Outs:";
+ for (liveout_iterator I = liveout_begin(), E = liveout_end(); I != E; ++I)
+ if (MRI)
+ OS << " " << MRI->getName(*I);
+ else
+ OS << " Reg #" << *I;
+ OS << "\n";
+ }
+
for (const_iterator BB = begin(); BB != end(); ++BB)
BB->print(OS);
/// CreateStackObject - Create a stack object for a value of the specified type.
///
int MachineFrameInfo::CreateStackObject(const Type *Ty, const TargetData &TD) {
- return CreateStackObject((unsigned)TD.getTypeSize(Ty),
+ return CreateStackObject((unsigned)TD.getTypeSize(Ty),
TD.getTypeAlignment(Ty));
}
for (unsigned i = 0, e = Objects.size(); i != e; ++i) {
const StackObject &SO = Objects[i];
- OS << " <fi #" << (int)(i-NumFixedObjects) << "> is ";
+ OS << " <fi #" << (int)(i-NumFixedObjects) << ">: ";
if (SO.Size == 0)
OS << "variable sized";
else
- OS << SO.Size << " byte" << (SO.Size != 1 ? "s" : " ");
+ OS << "size is " << SO.Size << " byte" << (SO.Size != 1 ? "s," : ",");
+ OS << " alignment is " << SO.Alignment << " byte"
+ << (SO.Alignment != 1 ? "s," : ",");
if (i < NumFixedObjects)
OS << " fixed";