[llvm] r267479 - Add optimization bisect opt-in calls for AArch64 passes

Renato Golin via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 25 15:23:31 PDT 2016


Tim,

I spent more time reviewing the ARM side, and maybe haven't given as
much attention to the AArch64 side as I should.

Can you have a look to make sure none of these passes are required for
correctness?

The discussion is in the ARM side:

http://reviews.llvm.org/D19449

cheers,
--renato

On 25 April 2016 at 22:58, Andrew Kaylor via llvm-commits
<llvm-commits at lists.llvm.org> wrote:
> Author: akaylor
> Date: Mon Apr 25 16:58:52 2016
> New Revision: 267479
>
> URL: http://llvm.org/viewvc/llvm-project?rev=267479&view=rev
> Log:
> Add optimization bisect opt-in calls for AArch64 passes
>
> Differential Revision: http://reviews.llvm.org/D19394
>
>
> Modified:
>     llvm/trunk/lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp
>     llvm/trunk/lib/Target/AArch64/AArch64AddressTypePromotion.cpp
>     llvm/trunk/lib/Target/AArch64/AArch64AdvSIMDScalarPass.cpp
>     llvm/trunk/lib/Target/AArch64/AArch64CleanupLocalDynamicTLSPass.cpp
>     llvm/trunk/lib/Target/AArch64/AArch64CollectLOH.cpp
>     llvm/trunk/lib/Target/AArch64/AArch64ConditionOptimizer.cpp
>     llvm/trunk/lib/Target/AArch64/AArch64ConditionalCompares.cpp
>     llvm/trunk/lib/Target/AArch64/AArch64DeadRegisterDefinitionsPass.cpp
>     llvm/trunk/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
>     llvm/trunk/lib/Target/AArch64/AArch64PromoteConstant.cpp
>     llvm/trunk/lib/Target/AArch64/AArch64RedundantCopyElimination.cpp
>     llvm/trunk/lib/Target/AArch64/AArch64StorePairSuppress.cpp
>
> Modified: llvm/trunk/lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp?rev=267479&r1=267478&r2=267479&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp (original)
> +++ llvm/trunk/lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp Mon Apr 25 16:58:52 2016
> @@ -311,6 +311,9 @@ public:
>  //===----------------------------------------------------------------------===//
>
>  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<AArch64Subtarget>().isCortexA53() ||
>          F.getSubtarget<AArch64Subtarget>().isCortexA57()))
>
> Modified: llvm/trunk/lib/Target/AArch64/AArch64AddressTypePromotion.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AArch64AddressTypePromotion.cpp?rev=267479&r1=267478&r2=267479&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/AArch64/AArch64AddressTypePromotion.cpp (original)
> +++ llvm/trunk/lib/Target/AArch64/AArch64AddressTypePromotion.cpp Mon Apr 25 16:58:52 2016
> @@ -479,6 +479,9 @@ void AArch64AddressTypePromotion::analyz
>  }
>
>  bool AArch64AddressTypePromotion::runOnFunction(Function &F) {
> +  if (skipFunction(F))
> +    return false;
> +
>    if (!EnableAddressTypePromotion || F.isDeclaration())
>      return false;
>    Func = &F;
>
> Modified: llvm/trunk/lib/Target/AArch64/AArch64AdvSIMDScalarPass.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AArch64AdvSIMDScalarPass.cpp?rev=267479&r1=267478&r2=267479&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/AArch64/AArch64AdvSIMDScalarPass.cpp (original)
> +++ llvm/trunk/lib/Target/AArch64/AArch64AdvSIMDScalarPass.cpp Mon Apr 25 16:58:52 2016
> @@ -402,6 +402,9 @@ bool AArch64AdvSIMDScalar::runOnMachineF
>    bool Changed = false;
>    DEBUG(dbgs() << "***** AArch64AdvSIMDScalar *****\n");
>
> +  if (skipFunction(*mf.getFunction()))
> +    return false;
> +
>    MRI = &mf.getRegInfo();
>    TII = mf.getSubtarget().getInstrInfo();
>
>
> Modified: llvm/trunk/lib/Target/AArch64/AArch64CleanupLocalDynamicTLSPass.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AArch64CleanupLocalDynamicTLSPass.cpp?rev=267479&r1=267478&r2=267479&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/AArch64/AArch64CleanupLocalDynamicTLSPass.cpp (original)
> +++ llvm/trunk/lib/Target/AArch64/AArch64CleanupLocalDynamicTLSPass.cpp Mon Apr 25 16:58:52 2016
> @@ -39,6 +39,9 @@ struct LDTLSCleanup : public MachineFunc
>    LDTLSCleanup() : MachineFunctionPass(ID) {}
>
>    bool runOnMachineFunction(MachineFunction &MF) override {
> +    if (skipFunction(*MF.getFunction()))
> +      return false;
> +
>      AArch64FunctionInfo *AFI = MF.getInfo<AArch64FunctionInfo>();
>      if (AFI->getNumLocalDynamicTLSAccesses() < 2) {
>        // No point folding accesses if there isn't at least two.
>
> Modified: llvm/trunk/lib/Target/AArch64/AArch64CollectLOH.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AArch64CollectLOH.cpp?rev=267479&r1=267478&r2=267479&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/AArch64/AArch64CollectLOH.cpp (original)
> +++ llvm/trunk/lib/Target/AArch64/AArch64CollectLOH.cpp Mon Apr 25 16:58:52 2016
> @@ -1041,6 +1041,9 @@ static void collectInvolvedReg(const Mac
>  }
>
>  bool AArch64CollectLOH::runOnMachineFunction(MachineFunction &MF) {
> +  if (skipFunction(*MF.getFunction()))
> +    return false;
> +
>    const TargetRegisterInfo *TRI = MF.getSubtarget().getRegisterInfo();
>    const MachineDominatorTree *MDT = &getAnalysis<MachineDominatorTree>();
>
>
> Modified: llvm/trunk/lib/Target/AArch64/AArch64ConditionOptimizer.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AArch64ConditionOptimizer.cpp?rev=267479&r1=267478&r2=267479&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/AArch64/AArch64ConditionOptimizer.cpp (original)
> +++ llvm/trunk/lib/Target/AArch64/AArch64ConditionOptimizer.cpp Mon Apr 25 16:58:52 2016
> @@ -318,6 +318,9 @@ bool AArch64ConditionOptimizer::adjustTo
>  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<MachineDominatorTree>();
>    MRI = &MF.getRegInfo();
>
> Modified: llvm/trunk/lib/Target/AArch64/AArch64ConditionalCompares.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AArch64ConditionalCompares.cpp?rev=267479&r1=267478&r2=267479&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/AArch64/AArch64ConditionalCompares.cpp (original)
> +++ llvm/trunk/lib/Target/AArch64/AArch64ConditionalCompares.cpp Mon Apr 25 16:58:52 2016
> @@ -889,6 +889,9 @@ bool AArch64ConditionalCompares::tryConv
>  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();
>
> Modified: llvm/trunk/lib/Target/AArch64/AArch64DeadRegisterDefinitionsPass.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AArch64DeadRegisterDefinitionsPass.cpp?rev=267479&r1=267478&r2=267479&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/AArch64/AArch64DeadRegisterDefinitionsPass.cpp (original)
> +++ llvm/trunk/lib/Target/AArch64/AArch64DeadRegisterDefinitionsPass.cpp Mon Apr 25 16:58:52 2016
> @@ -149,6 +149,9 @@ bool AArch64DeadRegisterDefinitions::run
>    bool Changed = false;
>    DEBUG(dbgs() << "***** AArch64DeadRegisterDefinitions *****\n");
>
> +  if (skipFunction(*MF.getFunction()))
> +    return false;
> +
>    for (auto &MBB : MF)
>      if (processMachineBasicBlock(MBB))
>        Changed = true;
>
> Modified: llvm/trunk/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp?rev=267479&r1=267478&r2=267479&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp (original)
> +++ llvm/trunk/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp Mon Apr 25 16:58:52 2016
> @@ -1934,6 +1934,9 @@ bool AArch64LoadStoreOpt::enableNarrowLd
>  }
>
>  bool AArch64LoadStoreOpt::runOnMachineFunction(MachineFunction &Fn) {
> +  if (skipFunction(*Fn.getFunction()))
> +    return false;
> +
>    Subtarget = &static_cast<const AArch64Subtarget &>(Fn.getSubtarget());
>    TII = static_cast<const AArch64InstrInfo *>(Subtarget->getInstrInfo());
>    TRI = Subtarget->getRegisterInfo();
>
> Modified: llvm/trunk/lib/Target/AArch64/AArch64PromoteConstant.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AArch64PromoteConstant.cpp?rev=267479&r1=267478&r2=267479&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/AArch64/AArch64PromoteConstant.cpp (original)
> +++ llvm/trunk/lib/Target/AArch64/AArch64PromoteConstant.cpp Mon Apr 25 16:58:52 2016
> @@ -109,6 +109,8 @@ public:
>    /// 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) {
>
> Modified: llvm/trunk/lib/Target/AArch64/AArch64RedundantCopyElimination.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AArch64RedundantCopyElimination.cpp?rev=267479&r1=267478&r2=267479&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/AArch64/AArch64RedundantCopyElimination.cpp (original)
> +++ llvm/trunk/lib/Target/AArch64/AArch64RedundantCopyElimination.cpp Mon Apr 25 16:58:52 2016
> @@ -167,6 +167,8 @@ bool AArch64RedundantCopyElimination::op
>
>  bool AArch64RedundantCopyElimination::runOnMachineFunction(
>      MachineFunction &MF) {
> +  if (skipFunction(*MF.getFunction()))
> +    return false;
>    TRI = MF.getSubtarget().getRegisterInfo();
>    MRI = &MF.getRegInfo();
>    bool Changed = false;
>
> Modified: llvm/trunk/lib/Target/AArch64/AArch64StorePairSuppress.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AArch64StorePairSuppress.cpp?rev=267479&r1=267478&r2=267479&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/AArch64/AArch64StorePairSuppress.cpp (original)
> +++ llvm/trunk/lib/Target/AArch64/AArch64StorePairSuppress.cpp Mon Apr 25 16:58:52 2016
> @@ -115,6 +115,9 @@ bool AArch64StorePairSuppress::isNarrowF
>  }
>
>  bool AArch64StorePairSuppress::runOnMachineFunction(MachineFunction &MF) {
> +  if (skipFunction(*MF.getFunction()))
> +    return false;
> +
>    const TargetSubtargetInfo &ST = MF.getSubtarget();
>    TII = static_cast<const AArch64InstrInfo *>(ST.getInstrInfo());
>    TRI = ST.getRegisterInfo();
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits


More information about the llvm-commits mailing list