Skip to content
Snippets Groups Projects
  • Chris Bieneman's avatar
    38b19417
    [CMake] Support a simple case for bootstrap builds to generate PGO data · 38b19417
    Chris Bieneman authored
    Summary:
    This patch adds support for the clang multi-stage bootstrapping to support PGO profdata generation, and can build a 2 or 3 stage compiler.
    
    With this patch applied you can configure your build directory with the following invocation of CMake:
    
    cmake -G <generator> -C <path_to_clang>/cmake/caches/PGO.cmake <source dir>
    
    After configuration the following additional targets will be generated:
    
    stage2-instrumented:
    Builds a stage1 x86 compiler, runtime, and required tools (llvm-config, llvm-profdata) then uses that compiler to build an instrumented stage2 compiler.
    
    stage2-instrumented-generate-profdata:
    Depends on "stage2-instrumented" and will use the instrumented compiler to generate profdata based on the training files in <clang>/utils/perf-training
    
    stage2:
    Depends on "stage2-instrumented-generate-profdata" and will use the stage1 compiler with the stage2 profdata to build a PGO-optimized compiler.
    
    stage2-check-llvm:
    Depends on stage2 and runs check-llvm using the stage3 compiler.
    
    stage2-check-clang:
    Depends on stage2 and runs check-clang using the stage3 compiler.
    
    stage2-check-all:
    Depends on stage2 and runs check-all using the stage3 compiler.
    
    stage2-test-suite:
    Depends on stage2 and runs the test-suite using the stage3 compiler (requires in-tree test-suite).
    
    Reviewers: bogner, silvas, chandlerc
    
    Subscribers: cfe-commits
    
    Differential Revision: http://reviews.llvm.org/D15584
    
    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@256069 91177308-0d34-0410-b5e6-96231b3b80d8
    38b19417
    History
    [CMake] Support a simple case for bootstrap builds to generate PGO data
    Chris Bieneman authored
    Summary:
    This patch adds support for the clang multi-stage bootstrapping to support PGO profdata generation, and can build a 2 or 3 stage compiler.
    
    With this patch applied you can configure your build directory with the following invocation of CMake:
    
    cmake -G <generator> -C <path_to_clang>/cmake/caches/PGO.cmake <source dir>
    
    After configuration the following additional targets will be generated:
    
    stage2-instrumented:
    Builds a stage1 x86 compiler, runtime, and required tools (llvm-config, llvm-profdata) then uses that compiler to build an instrumented stage2 compiler.
    
    stage2-instrumented-generate-profdata:
    Depends on "stage2-instrumented" and will use the instrumented compiler to generate profdata based on the training files in <clang>/utils/perf-training
    
    stage2:
    Depends on "stage2-instrumented-generate-profdata" and will use the stage1 compiler with the stage2 profdata to build a PGO-optimized compiler.
    
    stage2-check-llvm:
    Depends on stage2 and runs check-llvm using the stage3 compiler.
    
    stage2-check-clang:
    Depends on stage2 and runs check-clang using the stage3 compiler.
    
    stage2-check-all:
    Depends on stage2 and runs check-all using the stage3 compiler.
    
    stage2-test-suite:
    Depends on stage2 and runs the test-suite using the stage3 compiler (requires in-tree test-suite).
    
    Reviewers: bogner, silvas, chandlerc
    
    Subscribers: cfe-commits
    
    Differential Revision: http://reviews.llvm.org/D15584
    
    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@256069 91177308-0d34-0410-b5e6-96231b3b80d8
Code owners
Assign users and groups as approvers for specific file changes. Learn more.