Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade to LLVM 12 #81451

Merged
merged 12 commits into from
Mar 4, 2021
Merged

Upgrade to LLVM 12 #81451

merged 12 commits into from
Mar 4, 2021

Commits on Feb 28, 2021

  1. Support LLVM 12 in rustc

    nikic committed Feb 28, 2021
    Configuration menu
    Copy the full SHA
    55f345f View commit details
    Browse the repository at this point in the history
  2. Explicitly mark x86-interrupt ABI argument as byval

    The first argument to an x86-interrupt ABI function was implicitly
    treated as byval prior to LLVM 12. Since LLVM 12, it has to be
    marked as such explicitly: llvm/llvm-project@2e0e03c
    nikic committed Feb 28, 2021
    Configuration menu
    Copy the full SHA
    092643a View commit details
    Browse the repository at this point in the history

Commits on Mar 1, 2021

  1. Update submodule to LLVM 12

    nikic committed Mar 1, 2021
    Configuration menu
    Copy the full SHA
    ff2111a View commit details
    Browse the repository at this point in the history
  2. Build newer version of cmake in Docker images

    LLVM requires CMake 3.13.4, which is only available as of Ubuntu 20.04.
    On images using an older version, build it manually.
    nikic committed Mar 1, 2021
    Configuration menu
    Copy the full SHA
    1e21b2c View commit details
    Browse the repository at this point in the history
  3. Build both Python 2 and Python 3 on x86 dist builders

    Python 2 is needed for Clang 10, Python 3 for LLVM 12.
    
    The Python 2 dependency could be removed by upgrading to Clang 11,
    but that causes linker errors of unclear origin.
    nikic committed Mar 1, 2021
    Configuration menu
    Copy the full SHA
    b763d9a View commit details
    Browse the repository at this point in the history
  4. Don't directly expose coverage::CounterMappingRegion via FFI

    The definition of this struct changes in LLVM 12 due to the addition
    of branch coverage support. To avoid future mismatches, declare our
    own struct and then convert between them.
    nikic committed Mar 1, 2021
    Configuration menu
    Copy the full SHA
    1d280b0 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    41b8158 View commit details
    Browse the repository at this point in the history
  6. Mark pure asm as willreturn

    nikic committed Mar 1, 2021
    Configuration menu
    Copy the full SHA
    bc96516 View commit details
    Browse the repository at this point in the history
  7. Set CMAKE_SYSTEM_NAME for solaris/illumos

    When cross-compiling to solaris/illumos targets, set
    CMAKE_SYSTEM_NAME to SunOS.
    nikic committed Mar 1, 2021
    Configuration menu
    Copy the full SHA
    34352d4 View commit details
    Browse the repository at this point in the history
  8. Build cmake earlier on dist-x86_64-musl

    musl-toolchain.sh is called with REPLACE_CC=1, so it will replace
    the host compiler and the subsequent cmake build will fail because
    it cannot find the openssl headers.
    
    Move the cmake build earlier, so it happens before the compiler
    is replaced.
    nikic committed Mar 1, 2021
    Configuration menu
    Copy the full SHA
    ea0aa8d View commit details
    Browse the repository at this point in the history

Commits on Mar 3, 2021

  1. Schedule ThinLTOBuffer passes again after sanitizer passes

    This works around a design defect in the LLVM 12 pass builder
    implementation. In LLVM 13, the PreLink ThinLTO pipeline properly
    respects the OptimizerLastEPCallbacks.
    nikic committed Mar 3, 2021
    Configuration menu
    Copy the full SHA
    9a8acea View commit details
    Browse the repository at this point in the history
  2. Explicitly disable preinline during pgo-use test

    We previously used -Os to disable this pass, but since
    https://reviews.llvm.org/D91673 this no longer works. Explicitly
    disable it using -Cllvm-args instead.
    nikic committed Mar 3, 2021
    Configuration menu
    Copy the full SHA
    ab03c56 View commit details
    Browse the repository at this point in the history