Skip to content
Snippets Groups Projects
  • Chris Bieneman's avatar
    a0e3ceda
    [CMake] Add support for generating profdata for clang from training files · a0e3ceda
    Chris Bieneman authored
    Summary:
    This patch adds support for using LIT to drive generating PGO profile data for clang.
    
    This first pass implementation should work on Linux and Unix based platforms. If you build clang using CMake with LLVM_BUILD_INSTRUMENTED=On the CMake build generates a generate-profdata target that will use the just-built clang to build any test files (see hello_world.cpp as an example). Each test compile will generate profraw files for each clang process. After all tests have run CMake will merge the profraw files using llvm-profdata.
    
    Future opportunities for extension:
    * Support for Build->Profile->Build bootstrapping
    * Support for linker order file generation using a similar mechanism and the same training data
    * Support for Windows
    
    Reviewers: dexonsmith, friss, bogner, cmatthews, vsk, silvas
    
    Subscribers: cfe-commits
    
    Differential Revision: http://reviews.llvm.org/D15462
    
    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@255740 91177308-0d34-0410-b5e6-96231b3b80d8
    a0e3ceda
    History
    [CMake] Add support for generating profdata for clang from training files
    Chris Bieneman authored
    Summary:
    This patch adds support for using LIT to drive generating PGO profile data for clang.
    
    This first pass implementation should work on Linux and Unix based platforms. If you build clang using CMake with LLVM_BUILD_INSTRUMENTED=On the CMake build generates a generate-profdata target that will use the just-built clang to build any test files (see hello_world.cpp as an example). Each test compile will generate profraw files for each clang process. After all tests have run CMake will merge the profraw files using llvm-profdata.
    
    Future opportunities for extension:
    * Support for Build->Profile->Build bootstrapping
    * Support for linker order file generation using a similar mechanism and the same training data
    * Support for Windows
    
    Reviewers: dexonsmith, friss, bogner, cmatthews, vsk, silvas
    
    Subscribers: cfe-commits
    
    Differential Revision: http://reviews.llvm.org/D15462
    
    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@255740 91177308-0d34-0410-b5e6-96231b3b80d8
Code owners
Assign users and groups as approvers for specific file changes. Learn more.