[PATCH] D124119: [InstCombine] Combine instructions of type or/and where AND masks can be combined.

Alexander Kornienko via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon May 30 15:27:28 PDT 2022


alexfh added a comment.

In D124119#3545576 <https://reviews.llvm.org/D124119#3545576>, @RKSimon wrote:

> @alexfh it sounds more likely that there are 2 transforms fighting each other? Can you find a bugpoint test case by just setting a short ish timeout?

I'm working on a reduced test case. So far I have collected profile from the first few seconds of clang invocation. It may help understanding what's happening:

  - 99.58% clang::BackendConsumer::HandleTranslationUnit                                                                                                                                                                            ◆
     - 99.43% clang::EmitBackendOutput                                                                                                                                                                                              ▒
        - 99.43% (anonymous namespace)::EmitAssemblyHelper::RunOptimizationPipeline                                                                                                                                                 ▒
           - llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run                                                                                                                                              ▒
              - 99.24% llvm::detail::PassModel<llvm::Module, llvm::ModuleToFunctionPassAdaptor, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module>>::run                                                                  ▒
                 - llvm::ModuleToFunctionPassAdaptor::run                                                                                                                                                                           ▒
                    - 99.24% llvm::detail::PassModel<llvm::Function, llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function>>::run                 ▒
                       - llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>::run                                                                                                                              ▒
                          - 98.82% llvm::detail::PassModel<llvm::Function, llvm::InstCombinePass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function>>::run                                                              ▒
                             - llvm::InstCombinePass::run                                                                                                                                                                           ▒
                                - 98.81% combineInstructionsOverFunction                                                                                                                                                            ▒
                                   - 98.26% llvm::InstCombinerImpl::run                                                                                                                                                             ▒
                                      - 72.80% llvm::InstCombinerImpl::visitOr                                                                                                                                                      ▒
                                         - 21.67% llvm::InstCombinerImpl::SimplifyUsingDistributiveLaws                                                                                                                             ▒
                                            - 18.71% SimplifyOrInst                                                                                                                                                                 ▒
                                               - 9.82% SimplifyAssociativeBinOp                                                                                                                                                     ▒
                                                  - 9.44% SimplifyOrInst                                                                                                                                                            ▒
                                                     - 3.44% expandCommutativeBinOp                                                                                                                                                 ▒
                                                        - 3.36% expandBinOp                                                                                                                                                         ▒
                                                           + 3.07% SimplifyOrInst                                                                                                                                                   ▒
                                                     + 2.36% expandBinOp                                                                                                                                                            ▒
                                                       2.19% simplifyOrLogic                                                                                                                                                        ▒
                                               + 3.53% expandBinOp                                                                                                                                                                  ▒
                                                 2.36% simplifyOrLogic                                                                                                                                                              ▒
                                               + 1.69% expandCommutativeBinOp                                                                                                                                                       ▒
                                            + 1.58% llvm::InstCombinerImpl::tryFactorization                                                                                                                                        ▒
                                            + 0.68% llvm::Constant::getAllOnesValue                                                                                                                                                 ▒
                                         - 20.35% SimplifyOrInst                                                                                                                                                                    ▒
                                            - 9.20% SimplifyAssociativeBinOp                                                                                                                                                        ▒
                                               - 9.03% SimplifyOrInst                                                                                                                                                               ▒
                                                  + 3.94% expandCommutativeBinOp                                                                                                                                                    ▒
                                                  + 3.12% expandBinOp                                                                                                                                                               ▒
                                                    1.21% simplifyOrLogic                                                                                                                                                           ▒
                                            + 7.08% expandBinOp                                                                                                                                                                     ▒
                                            - 2.00% expandCommutativeBinOp                                                                                                                                                          ▒
                                               + 1.95% expandBinOp                                                                                                                                                                  ▒
                                              1.29% simplifyOrLogic                                                                                                                                                                 ▒
                                         - 10.74% llvm::InstCombinerImpl::SimplifyDemandedInstructionBits                                                                                                                           ▒
                                            - 10.61% llvm::InstCombinerImpl::SimplifyDemandedUseBits                                                                                                                                ▒
                                               - 9.99% llvm::InstCombinerImpl::SimplifyDemandedBits                                                                                                                                 ▒
                                                  - 9.75% llvm::InstCombinerImpl::SimplifyDemandedUseBits                                                                                                                           ▒
                                                     - 6.72% llvm::InstCombinerImpl::SimplifyDemandedBits                                                                                                                           ▒
                                                        + 6.55% llvm::InstCombinerImpl::SimplifyDemandedUseBits                                                                                                                     ▒
                                                     + 1.86% llvm::InstCombinerImpl::SimplifyMultipleUseDemandedBits                                                                                                                ▒
                                         - 9.86% llvm::InstCombinerImpl::SimplifyAssociativeOrCommutative                                                                                                                           ▒
                                            - 9.42% SimplifyOrInst                                                                                                                                                                  ▒
                                               + 4.36% expandCommutativeBinOp                                                                                                                                                       ▒
                                               + 3.20% expandBinOp                                                                                                                                                                  ▒
                                                 1.14% simplifyOrLogic                                                                                                                                                              ▒
                                         + 5.44% llvm::InstCombinerImpl::matchBSwapOrBitReverse                                                                                                                                     ▒
                                         + 0.95% llvm::InstCombinerImpl::matchSelectFromAndOr                                                                                                                                       ▒
                                           0.59% llvm::IRBuilderBase::CreateAnd                                                                                                                                                     ▒
                                      - 16.98% llvm::InstCombinerImpl::visitAnd                                                                                                                                                     ▒
                                         + 8.63% llvm::InstCombinerImpl::SimplifyDemandedInstructionBits                                                                                                                            ▒
                                         + 3.31% SimplifyAndInst                                                                                                                                                                    ▒
                                         + 1.59% llvm::InstCombinerImpl::SimplifyAssociativeOrCommutative                                                                                                                           ▒
                                      + 3.26% llvm::InstCombinerImpl::visitLShr                                                                                                                                                     ▒


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D124119/new/

https://reviews.llvm.org/D124119



More information about the llvm-commits mailing list