[llvm] [CVP] Check whether the default case is reachable (PR #79993)

via llvm-commits llvm-commits at lists.llvm.org
Fri Feb 9 06:11:53 PST 2024


alexfh wrote:

A bit longer run under perf gives:
```
-   99.98%     0.00%  clang    clang               [.] clang_main(int, char**, llvm::ToolContext const&)                                                                                                                                            ▒
   - clang_main(int, char**, llvm::ToolContext const&)                                                                                                                                                                                              ▒
      - 99.98% clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::__u::pair<int, clang::driver::Command const*> >&)                                                                                  ▒
           clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::__u::pair<int, clang::driver::Command const*> >&, bool) const                                                                          ▒
           clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const                                                                                                                    ▒
           clang::driver::CC1Command::Execute(llvm::ArrayRef<std::__u::optional<llvm::StringRef> >, std::__u::basic_string<char, std::__u::char_traits<char>, std::__u::allocator<char> >*, bool*) const                                            ▒
           llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>)                                                                                                                                                                       ▒
           void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::__u::optional<llvm::StringRef> >, std::__u::basic_string<char, std::__u::char_traits<char>, std::__u::allocator<char> >*, bool*) con▒
         - ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&)                                                                                                                                                            ▒
            - 99.98% cc1_main(llvm::ArrayRef<char const*>, char const*, void*)                                                                                                                                                                      ▒
               - 99.98% clang::ExecuteCompilerInvocation(clang::CompilerInstance*)                                                                                                                                                                  ▒
                  - 99.98% clang::CompilerInstance::ExecuteAction(clang::FrontendAction&)                                                                                                                                                           ▒
                     - 99.98% clang::FrontendAction::Execute()                                                                                                                                                                                      ▒
                        - clang::CodeGenAction::ExecuteAction()                                                                                                                                                                                     ▒
                           - 99.95% clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, cla▒
                              - 99.28% llvm::legacy::PassManagerImpl::run(llvm::Module&)                                                                                                                                                            ▒
                                 - 99.28% llvm::FPPassManager::runOnModule(llvm::Module&)                                                                                                                                                           ▒
                                    - 99.28% llvm::FPPassManager::runOnFunction(llvm::Function&)                                                                                                                                                    ▒
                                       - 99.17% llvm::MachineFunctionPass::runOnFunction(llvm::Function&)                                                                                                                                           ▒
                                          - 60.87% (anonymous namespace)::MachineBlockPlacement::runOnMachineFunction(llvm::MachineFunction&)                                                                                                       ▒
                                             - 60.87% (anonymous namespace)::MachineBlockPlacement::buildCFGChains()                                                                                                                                ▒
                                                - 60.79% (anonymous namespace)::MachineBlockPlacement::buildLoopChains(llvm::MachineLoop const&)                                                                                                    ▒
                                                     55.20% llvm::MachineBranchProbabilityInfo::getEdgeProbability(llvm::MachineBasicBlock const*, llvm::MachineBasicBlock const*) const                                                            ▒
                                                   - 4.24% (anonymous namespace)::MachineBlockPlacement::TopFallThroughFreq(llvm::MachineBasicBlock const*, llvm::SmallSetVector<llvm::MachineBasicBlock const*, 16u> const&)                       ▒
                                                        0.80% llvm::MachineBasicBlock::getSuccProbability(std::__u::__wrap_iter<llvm::MachineBasicBlock* const*>) const                                                                             ▒
                                                     1.22% llvm::MachineBasicBlock::getSuccProbability(std::__u::__wrap_iter<llvm::MachineBasicBlock* const*>) const                                                                                ▒
                                          - 12.05% (anonymous namespace)::TailDuplicateBase::runOnMachineFunction(llvm::MachineFunction&)                                                                                                           ▒
                                             - 12.05% llvm::TailDuplicator::tailDuplicateBlocks()                                                                                                                                                   ▒
                                                  10.40% llvm::TailDuplicator::shouldTailDuplicate(bool, llvm::MachineBasicBlock&)                                                                                                                  ▒
                                                - 1.65% llvm::TailDuplicator::tailDuplicateAndUpdate(bool, llvm::MachineBasicBlock*, llvm::MachineBasicBlock*, llvm::SmallVectorImpl<llvm::MachineBasicBlock*>*, llvm::function_ref<void (llvm::Mach▒
                                                     0.91% llvm::MachineBasicBlock::isSuccessor(llvm::MachineBasicBlock const*) const                                                                                                               ▒
                                          - 8.89% (anonymous namespace)::BranchFolderPass::runOnMachineFunction(llvm::MachineFunction&)                                                                                                             ▒
                                             - llvm::BranchFolder::OptimizeFunction(llvm::MachineFunction&, llvm::TargetInstrInfo const*, llvm::TargetRegisterInfo const*, llvm::MachineLoopInfo*, bool)                                            ▒
                                                  4.09% llvm::MachineBasicBlock::hasEHPadSuccessor() const                                                                                                                                          ▒
                                                  3.11% llvm::MachineBasicBlock::mayHaveInlineAsmBr() const                                                                                                                                         ▒
                                                - 1.40% llvm::BranchFolder::OptimizeBranches(llvm::MachineFunction&)                                                                                                                                ▒
                                                   - 1.40% llvm::BranchFolder::OptimizeBlock(llvm::MachineBasicBlock*)                                                                                                                              ▒
                                                      + 1.35% llvm::MachineBasicBlock::canFallThrough()                                                                                                                                             ▒
                                          - 7.91% (anonymous namespace)::PHIElimination::runOnMachineFunction(llvm::MachineFunction&)                                                                                                               ▒
                                               7.34% llvm::LiveVariables::isLiveOut(llvm::Register, llvm::MachineBasicBlock const&)                                                                                                                 ▒
                                          - 5.95% llvm::MachineCycleInfoWrapperPass::runOnMachineFunction(llvm::MachineFunction&)                                                                                                                   ▒
                                               5.95% llvm::GenericCycleInfoCompute<llvm::GenericSSAContext<llvm::MachineFunction> >::run(llvm::MachineBasicBlock*)                                                                                  ▒
                                          + 0.93% llvm::MachineBlockFrequencyInfo::runOnMachineFunction(llvm::MachineFunction&)                                                                                                                     ▒
                                          + 0.76% (anonymous namespace)::MachineSinking::runOnMachineFunction(llvm::MachineFunction&)                                                                                                               ▒
                              + 0.67% (anonymous namespace)::EmitAssemblyHelper::RunOptimizationPipeline(clang::BackendAction, std::__u::unique_ptr<llvm::raw_pwrite_stream, std::__u::default_delete<llvm::raw_pwrite_stream> >&, std::__u::unique_▒
```

https://github.com/llvm/llvm-project/pull/79993


More information about the llvm-commits mailing list