llvm-project/clang/cmake/caches
Alex Brachet 925eaeb3f4 Revert "[CMake] Drop libLTO and switch to PIE for Fuchsia toolchain"
This reverts commit a6f621b8ca.

We suspect that this patch might be the culprit that is causing
every llvm executable to be sigkill'd immediately on Apple Silicon
machines. Notably, the only other cache file with CMAKE_POSITION_INDEPENDENT_CODE
is Apple's and they have it off.
2022-11-17 03:37:58 +00:00
..
3-stage-base.cmake Update PGO and 3-stage cache files 2022-04-27 14:41:56 -05:00
3-stage.cmake
Android-stage2.cmake Revert "[cmake] Use `CMAKE_INSTALL_LIBDIR` too" 2022-08-18 22:46:32 -04:00
Android.cmake Revert "[cmake] Use `CMAKE_INSTALL_LIBDIR` too" 2022-08-18 22:46:32 -04:00
Apple-stage1.cmake [apple clang] disable in-process CC1 to preserve crashlog compatibility 2020-06-05 10:55:42 -07:00
Apple-stage2-ThinLTO.cmake
Apple-stage2.cmake [clang] Explicitly add libcxx and libcxxabi runtimes during Stage2 builds 2022-08-24 09:13:29 -04:00
BOLT-PGO.cmake [CMake] Disable BOLT instrumentation of Clang on instrumented build 2022-10-19 18:24:05 -07:00
BOLT.cmake [CMake] Add clang-bolt target 2022-09-23 10:10:31 +02:00
BaremetalARM.cmake Re-land [CodeView] Add full repro to LF_BUILDINFO record 2022-01-19 19:44:37 -05:00
CrossWinToARMLinux.cmake [CMake] Update cache file for Win to ARM Linux cross toolchain builders. NFC. 2022-10-06 19:40:33 -07:00
DistributionExample-stage2.cmake
DistributionExample.cmake
Fuchsia-stage2.cmake Revert "[CMake] Drop libLTO and switch to PIE for Fuchsia toolchain" 2022-11-17 03:37:58 +00:00
Fuchsia.cmake [cmake] Remove LLVM_INCLUDE_GO_TESTS variable 2022-10-14 16:34:36 +02:00
HLSL.cmake [CMake] Add `CLANG_ENABLE_HLSL` CMake option 2022-09-27 12:33:22 -05:00
MultiDistributionExample.cmake Fixed a number of typos 2022-08-01 13:13:18 -04:00
PGO-stage2-instrumented.cmake
PGO-stage2.cmake Update PGO and 3-stage cache files 2022-04-27 14:41:56 -05:00
PGO.cmake Update PGO and 3-stage cache files 2022-04-27 14:41:56 -05:00
README.txt

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.