Index: llvm/lib/Target/ARC/ARCAsmPrinter.cpp =================================================================== --- llvm/lib/Target/ARC/ARCAsmPrinter.cpp +++ llvm/lib/Target/ARC/ARCAsmPrinter.cpp @@ -42,6 +42,8 @@ StringRef getPassName() const override { return "ARC Assembly Printer"; } void emitInstruction(const MachineInstr *MI) override; + + bool runOnMachineFunction(MachineFunction &MF) override; }; } // end anonymous namespace @@ -61,6 +63,12 @@ EmitToStreamer(*OutStreamer, TmpInst); } +bool ARCAsmPrinter::runOnMachineFunction(MachineFunction &MF) { + // Functions are 4-byte aligned. + MF.ensureAlignment(Align(4)); + AsmPrinter::runOnMachineFunction(MF); +} + // Force static initialization. extern "C" LLVM_EXTERNAL_VISIBILITY void LLVMInitializeARCAsmPrinter() { RegisterAsmPrinter X(getTheARCTarget()); Index: llvm/lib/Target/ARC/ARCMachineFunctionInfo.h =================================================================== --- llvm/lib/Target/ARC/ARCMachineFunctionInfo.h +++ llvm/lib/Target/ARC/ARCMachineFunctionInfo.h @@ -33,10 +33,7 @@ explicit ARCFunctionInfo(MachineFunction &MF) : ReturnStackOffsetSet(false), VarArgsFrameIndex(0), - ReturnStackOffset(-1U), MaxCallStackReq(0) { - // Functions are 4-byte aligned. - MF.setAlignment(Align(4)); - } + ReturnStackOffset(-1U), MaxCallStackReq(0) {} ~ARCFunctionInfo() {}