llvm-project/clang/cmake/caches
Jonathan Roelofs 901c776d06 Don't defer to the GCC driver for linking arm-baremetal
Also comes with a cmake cache for building the runtime bits:

 $ cmake <normal cmake flags> \
   -DBAREMETAL_ARMV6M_SYSROOT=/path/to/sysroot \
   -DBAREMETAL_ARMV7M_SYSROOT=/path/to/sysroot \
   -DBAREMETAL_ARMV7EM_SYSROOT=/path/to/sysroot \
   -C /path/to/clang/cmake/caches/BaremetalARM.cmake \
   /path/to/llvm

https://reviews.llvm.org/D33259

llvm-svn: 303873
2017-05-25 15:42:13 +00:00
..
3-stage-base.cmake [CMake] Removing LLVM_ENABLE_TIMESTAMPS from the cache files 2016-05-05 21:08:41 +00:00
3-stage.cmake [CMake] Only configure Native target in stage 1, configure all in other stages 2016-02-26 21:23:59 +00:00
Apple-stage1.cmake [CMake] Apple stage1 doesn't need to set libcxx options 2016-08-15 20:15:22 +00:00
Apple-stage2-ThinLTO.cmake Add a cmake cache file for a stage-2 build with ThinLTO 2017-03-09 01:18:31 +00:00
Apple-stage2.cmake Partially revert r302685 and swith Apple-style full LTO builds to 2017-05-10 22:14:23 +00:00
BaremetalARM.cmake Don't defer to the GCC driver for linking arm-baremetal 2017-05-25 15:42:13 +00:00
DistributionExample-stage2.cmake [CMake] Adding example distribution CMake cache files 2016-10-26 15:41:38 +00:00
DistributionExample.cmake Fix two-stage build on windows using DistributionExample cmake cache 2017-05-11 13:19:24 +00:00
Fuchsia-stage2.cmake [CMake] Enable ARM target in Fuchsia toolchain 2017-04-20 23:06:53 +00:00
Fuchsia.cmake [CMake] Support building Fuchsia toolchain on Darwin 2017-04-13 21:09:42 +00:00
PGO-stage2-instrumented.cmake [CMake] Adding toolchain targets to PGO and Apple CMake caches 2016-08-17 21:51:38 +00:00
PGO-stage2.cmake [CMake] Support a simple case for bootstrap builds to generate PGO data 2016-01-05 23:51:42 +00:00
PGO.cmake [CMake] Support thin LTO in PGO CMake cache 2016-10-19 21:12:04 +00:00
README.txt [CMake] Updating caches README with explanations of useful cache files. 2016-02-09 06:49:08 +00:00

README.txt

CMake Caches
============

This directory contains CMake cache scripts that pre-populate the CMakeCache in
a build directory with commonly used settings.

You can use the caches files with the following CMake invocation:

cmake -G <build system>
  -C <path to cache file>
  [additional CMake options (i.e. -DCMAKE_INSTALL_PREFIX=<install path>)]
  <path to llvm>

Options specified on the command line will override options in the cache files.

The following cache files exist.

Apple-stage1
------------

The Apple stage1 cache configures a two stage build similar to how Apple builds
the clang shipped with Xcode. The build files generated from this invocation has
a target named "stage2" which performs an LTO build of clang.

The Apple-stage2 cache can be used directly to match the build settings Apple
uses in shipping builds without doing a full bootstrap build.

PGO
---

The PGO CMake cache can be used to generate a multi-stage instrumented compiler.
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).

3-stage
-------

This cache file can be used to generate a 3-stage clang build. You can configure
using the following CMake command:

cmake -C <path to clang>/cmake/caches/3-stage.cmake -G Ninja <path to llvm>

You can then run "ninja stage3-clang" to build stage1, stage2 and stage3 clangs.

This is useful for finding non-determinism the compiler by verifying that stage2
and stage3 are identical.