[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