#include "llvm/ADT/UniqueVector.h"
#include "llvm/GlobalValue.h"
#include "llvm/Pass.h"
+#include "llvm/Target/TargetOptions.h"
namespace llvm {
///
bool hasDebugInfo() const { return !CompileUnits.empty(); }
+ /// needsFrameInfo - Returns true if we need to gather callee-saved register
+ /// move info for the frame.
+ bool needsFrameInfo() const { return hasDebugInfo() || ExceptionHandling; }
+
/// NextLabelID - Return the next unique label id.
///
unsigned NextLabelID() {
#include "llvm/Target/TargetData.h"
#include "llvm/Target/TargetFrameInfo.h"
#include "llvm/Target/TargetMachine.h"
-#include "llvm/Target/TargetOptions.h"
#include <ostream>
#include <string>
using namespace llvm;
unsigned TargetAlign = MF.getTarget().getFrameInfo()->getStackAlignment();
unsigned MaxAlign = MFI->getMaxAlignment();
- if (MMI) {
+ if (MMI && MMI->needsFrameInfo()) {
// Mark effective beginning of when frame pointer becomes valid.
FrameLabelId = MMI->NextLabelID();
BuildMI(MBB, MBBI, TII.get(PPC::LABEL)).addImm(FrameLabelId);
}
}
- if (MMI) {
+ if (MMI && MMI->needsFrameInfo()) {
std::vector<MachineMove> &Moves = MMI->getFrameMoves();
if (NegFrameSize) {
}
}
- if (MMI) {
+ if (MMI && MMI->needsFrameInfo()) {
// Mark effective beginning of when frame pointer becomes valid.
FrameLabelId = MMI->NextLabelID();
BuildMI(MBB, MBBI, TII.get(X86::LABEL)).addImm(FrameLabelId);
MBB.insert(MBBI, MI);
}
- if (MMI) {
+ if (MMI && MMI->needsFrameInfo()) {
std::vector<MachineMove> &Moves = MMI->getFrameMoves();
if (NumBytes) {