Index: llvm/trunk/lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp =================================================================== --- llvm/trunk/lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp +++ llvm/trunk/lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp @@ -311,6 +311,9 @@ //===----------------------------------------------------------------------===// bool AArch64A57FPLoadBalancing::runOnMachineFunction(MachineFunction &F) { + if (skipFunction(*F.getFunction())) + return false; + // Don't do anything if this isn't an A53 or A57. if (!(F.getSubtarget().isCortexA53() || F.getSubtarget().isCortexA57())) Index: llvm/trunk/lib/Target/AArch64/AArch64AddressTypePromotion.cpp =================================================================== --- llvm/trunk/lib/Target/AArch64/AArch64AddressTypePromotion.cpp +++ llvm/trunk/lib/Target/AArch64/AArch64AddressTypePromotion.cpp @@ -479,6 +479,9 @@ } bool AArch64AddressTypePromotion::runOnFunction(Function &F) { + if (skipFunction(F)) + return false; + if (!EnableAddressTypePromotion || F.isDeclaration()) return false; Func = &F; Index: llvm/trunk/lib/Target/AArch64/AArch64AdvSIMDScalarPass.cpp =================================================================== --- llvm/trunk/lib/Target/AArch64/AArch64AdvSIMDScalarPass.cpp +++ llvm/trunk/lib/Target/AArch64/AArch64AdvSIMDScalarPass.cpp @@ -402,6 +402,9 @@ bool Changed = false; DEBUG(dbgs() << "***** AArch64AdvSIMDScalar *****\n"); + if (skipFunction(*mf.getFunction())) + return false; + MRI = &mf.getRegInfo(); TII = mf.getSubtarget().getInstrInfo(); Index: llvm/trunk/lib/Target/AArch64/AArch64CleanupLocalDynamicTLSPass.cpp =================================================================== --- llvm/trunk/lib/Target/AArch64/AArch64CleanupLocalDynamicTLSPass.cpp +++ llvm/trunk/lib/Target/AArch64/AArch64CleanupLocalDynamicTLSPass.cpp @@ -39,6 +39,9 @@ LDTLSCleanup() : MachineFunctionPass(ID) {} bool runOnMachineFunction(MachineFunction &MF) override { + if (skipFunction(*MF.getFunction())) + return false; + AArch64FunctionInfo *AFI = MF.getInfo(); if (AFI->getNumLocalDynamicTLSAccesses() < 2) { // No point folding accesses if there isn't at least two. Index: llvm/trunk/lib/Target/AArch64/AArch64CollectLOH.cpp =================================================================== --- llvm/trunk/lib/Target/AArch64/AArch64CollectLOH.cpp +++ llvm/trunk/lib/Target/AArch64/AArch64CollectLOH.cpp @@ -1041,6 +1041,9 @@ } bool AArch64CollectLOH::runOnMachineFunction(MachineFunction &MF) { + if (skipFunction(*MF.getFunction())) + return false; + const TargetRegisterInfo *TRI = MF.getSubtarget().getRegisterInfo(); const MachineDominatorTree *MDT = &getAnalysis(); Index: llvm/trunk/lib/Target/AArch64/AArch64ConditionOptimizer.cpp =================================================================== --- llvm/trunk/lib/Target/AArch64/AArch64ConditionOptimizer.cpp +++ llvm/trunk/lib/Target/AArch64/AArch64ConditionOptimizer.cpp @@ -318,6 +318,9 @@ bool AArch64ConditionOptimizer::runOnMachineFunction(MachineFunction &MF) { DEBUG(dbgs() << "********** AArch64 Conditional Compares **********\n" << "********** Function: " << MF.getName() << '\n'); + if (skipFunction(*MF.getFunction())) + return false; + TII = MF.getSubtarget().getInstrInfo(); DomTree = &getAnalysis(); MRI = &MF.getRegInfo(); Index: llvm/trunk/lib/Target/AArch64/AArch64ConditionalCompares.cpp =================================================================== --- llvm/trunk/lib/Target/AArch64/AArch64ConditionalCompares.cpp +++ llvm/trunk/lib/Target/AArch64/AArch64ConditionalCompares.cpp @@ -889,6 +889,9 @@ bool AArch64ConditionalCompares::runOnMachineFunction(MachineFunction &MF) { DEBUG(dbgs() << "********** AArch64 Conditional Compares **********\n" << "********** Function: " << MF.getName() << '\n'); + if (skipFunction(*MF.getFunction())) + return false; + TII = MF.getSubtarget().getInstrInfo(); TRI = MF.getSubtarget().getRegisterInfo(); SchedModel = MF.getSubtarget().getSchedModel(); Index: llvm/trunk/lib/Target/AArch64/AArch64DeadRegisterDefinitionsPass.cpp =================================================================== --- llvm/trunk/lib/Target/AArch64/AArch64DeadRegisterDefinitionsPass.cpp +++ llvm/trunk/lib/Target/AArch64/AArch64DeadRegisterDefinitionsPass.cpp @@ -149,6 +149,9 @@ bool Changed = false; DEBUG(dbgs() << "***** AArch64DeadRegisterDefinitions *****\n"); + if (skipFunction(*MF.getFunction())) + return false; + for (auto &MBB : MF) if (processMachineBasicBlock(MBB)) Changed = true; Index: llvm/trunk/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp =================================================================== --- llvm/trunk/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp +++ llvm/trunk/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp @@ -1934,6 +1934,9 @@ } bool AArch64LoadStoreOpt::runOnMachineFunction(MachineFunction &Fn) { + if (skipFunction(*Fn.getFunction())) + return false; + Subtarget = &static_cast(Fn.getSubtarget()); TII = static_cast(Subtarget->getInstrInfo()); TRI = Subtarget->getRegisterInfo(); Index: llvm/trunk/lib/Target/AArch64/AArch64PromoteConstant.cpp =================================================================== --- llvm/trunk/lib/Target/AArch64/AArch64PromoteConstant.cpp +++ llvm/trunk/lib/Target/AArch64/AArch64PromoteConstant.cpp @@ -109,6 +109,8 @@ /// global variables with module scope. bool runOnModule(Module &M) override { DEBUG(dbgs() << getPassName() << '\n'); + if (skipModule(M)) + return false; bool Changed = false; PromotionCacheTy PromotionCache; for (auto &MF : M) { Index: llvm/trunk/lib/Target/AArch64/AArch64RedundantCopyElimination.cpp =================================================================== --- llvm/trunk/lib/Target/AArch64/AArch64RedundantCopyElimination.cpp +++ llvm/trunk/lib/Target/AArch64/AArch64RedundantCopyElimination.cpp @@ -167,6 +167,8 @@ bool AArch64RedundantCopyElimination::runOnMachineFunction( MachineFunction &MF) { + if (skipFunction(*MF.getFunction())) + return false; TRI = MF.getSubtarget().getRegisterInfo(); MRI = &MF.getRegInfo(); bool Changed = false; Index: llvm/trunk/lib/Target/AArch64/AArch64StorePairSuppress.cpp =================================================================== --- llvm/trunk/lib/Target/AArch64/AArch64StorePairSuppress.cpp +++ llvm/trunk/lib/Target/AArch64/AArch64StorePairSuppress.cpp @@ -115,6 +115,9 @@ } bool AArch64StorePairSuppress::runOnMachineFunction(MachineFunction &MF) { + if (skipFunction(*MF.getFunction())) + return false; + const TargetSubtargetInfo &ST = MF.getSubtarget(); TII = static_cast(ST.getInstrInfo()); TRI = ST.getRegisterInfo();