Skip to content
Commits on Apr 29, 2016
  1. @filcab

    Unify XDEBUG and EXPENSIVE_CHECKS (into the latter), and add an optio…

    filcab committed Apr 29, 2016
    …n to the cmake build to enable them.
    
    Summary:
    Historically, we had a switch in the Makefiles for turning on "expensive
    checks". This has never been ported to the cmake build, but the
    (dead-ish) code is still around.
    
    This will also make it easier to turn it on in buildbots.
    
    Reviewers: chandlerc
    
    Subscribers: jyknight, mzolotukhin, RKSimon, gberry, llvm-commits
    
    Differential Revision: http://reviews.llvm.org/D19723
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268050 91177308-0d34-0410-b5e6-96231b3b80d8
  2. @tobig

    cmake: Set LINK_POLLY_INTO_TOOLS to ON (v2)

    tobig committed Apr 29, 2016
    This is the second try. This time we disable this feature if no Polly checkout
    is available. For this to work we need to check if tools/polly is present
    early enough that our decision is known before cmake generates Config/config.h.
    
    With Polly checked into LLVM it was since a long time possible to compile
    clang/opt/bugpoint with Polly support directly linked in, instead of only
    providing Polly as a separate loadable module. This commit switches the
    default from providing Polly as a module to linking Polly into tools, such
    that it becomes unnecessary to load the Polly module when playing with Polly.
    Such configuration has shown a lot more convenient for day-to-day Polly use.
    
    This change does not impact the default behavior of any tool, if Polly is not
    explicitly enabled when calling clang/opt/bugpoint Polly does not affect
    compilation.
    
    This change also does not impact normal LLVM/clang checkouts that do not
    contain Polly.
    
    Reviewers: jdoerfert, Meinersbur
    
    Subscribers: pollydev, llvm-commits
    
    Differential Revision: http://reviews.llvm.org/D19711
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268048 91177308-0d34-0410-b5e6-96231b3b80d8
  3. @tobig

    Revert "cmake: Set LINK_POLLY_INTO_TOOLS to ON"

    tobig committed Apr 29, 2016
    This reverts commit r268033 as it breaks some buildbots.
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268035 91177308-0d34-0410-b5e6-96231b3b80d8
  4. @tobig

    cmake: Set LINK_POLLY_INTO_TOOLS to ON

    tobig committed Apr 29, 2016
    With Polly checked into LLVM it was since a long time possible to compile
    clang/opt/bugpoint with Polly support directly linked in, instead of only
    providing Polly as a separate loadable module. This commit switches the
    default from providing Polly as a module to linking Polly into tools, such
    that it becomes unnecessary to load the Polly module when playing with Polly.
    Such configuration has shown a lot more convenient for day-to-day Polly use.
    
    This change does not impact the default behavior of any tool, if Polly is not
    explicitly enabled when calling clang/opt/bugpoint Polly does not affect
    compilation.
    
    This change also does not impact normal LLVM/clang checkouts that do not
    contain Polly.
    
    Reviewers: jdoerfert, Meinersbur, sebpop, etherzhhb, zinob, hiraditya
    
    Subscribers: pollydev, llvm-commits
    
    Differential Revision: http://reviews.llvm.org/D19711
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268033 91177308-0d34-0410-b5e6-96231b3b80d8
Commits on Apr 28, 2016
  1. @llvm-beanz

    [CMake] [Darwin] Use libtool instead of ar && ranlib

    llvm-beanz committed Apr 28, 2016
    Summary: Using libtool instead of ar and ranlib on Darwin shaves a minute off my clang build. This is because on Darwin libtool is optimized to give hints to the kernel about filesystem interactions that allow it to be faster.
    
    Reviewers: bogner, pete
    
    Subscribers: llvm-commits
    
    Differential Revision: http://reviews.llvm.org/D19611
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@267930 91177308-0d34-0410-b5e6-96231b3b80d8
Commits on Apr 12, 2016
  1. @AaronBallman

    Moving llvm-test-depends and test-depends into the Tests folder; NFC,…

    AaronBallman committed Apr 12, 2016
    … this simply cleans up the generated solution so that these targets don't live in the root folder of the IDE.
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266078 91177308-0d34-0410-b5e6-96231b3b80d8
Commits on Mar 28, 2016
  1. @rnk

    dos2unix CMakeLists.txt

    rnk committed Mar 28, 2016
    The sign now reads "0 days since the last line ending confusion"
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@264609 91177308-0d34-0410-b5e6-96231b3b80d8
  2. @mspertus

    Forgot to commit this file in revision 264601

    mspertus committed Mar 28, 2016
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@264602 91177308-0d34-0410-b5e6-96231b3b80d8
Commits on Mar 14, 2016
  1. @bogner

    llvm-shlib: Remove the option to override __cxa_atexit

    bogner committed Mar 14, 2016
    If anybody is actually using this, it probably doesn't do what they
    think it does. This actually causes the dylib to *export* a
    __cxa_atexit symbol, so anything that links it probably loses their
    exit time destructors as well as disabling LLVM's.
    
    This just removes the option entirely. If somebody does need this
    behaviour we should figure out a more principled way to do it.
    
    This is effectively a revert of r223805.
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@263498 91177308-0d34-0410-b5e6-96231b3b80d8
Commits on Mar 2, 2016
  1. @llvm-beanz

    [CMake] Add test-depends target to build dependencies of check-all

    llvm-beanz committed Mar 2, 2016
    This is just another convenience target for bots to use. It enables isolation of building and testing.
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262494 91177308-0d34-0410-b5e6-96231b3b80d8
  2. @llvm-beanz

    [CMake] Add distribution target that is the "just-build" side of inst…

    llvm-beanz committed Mar 2, 2016
    …all-distribution
    
    This is just a convenience target to allow limiting what you build.
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262427 91177308-0d34-0410-b5e6-96231b3b80d8
Commits on Feb 26, 2016
  1. @llvm-beanz

    [CMake] Allow LLVM_TARGETS_TO_BUILD to accept "Native"

    llvm-beanz committed Feb 26, 2016
    This allows a user to specify "Native" as a target when configuring LLVM. Native will resolve to the LLVM_NATIVE_ARCH, which is the target that supports code generation for the host.
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262070 91177308-0d34-0410-b5e6-96231b3b80d8
Commits on Feb 23, 2016
  1. @llvm-beanz

    [CMake] Create an install-distribution target driven by LLVM_DISTRIBU…

    llvm-beanz committed Feb 23, 2016
    …TION_COMPONENTS
    
    The idea here is to provide a customizable install target that only depends on building the things you actually want to install. It relies on each component being installed having an auto-generated install-${component}, which in turn depends only on the target being installed.
    
    This is fundamentally a workaround for the fact that CMake generates build files which have their "install" target depend on the "all" target. This results in "ninja install" building a bunch of unneeded things.
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@261681 91177308-0d34-0410-b5e6-96231b3b80d8
Commits on Feb 18, 2016
  1. @llvm-beanz

    [CMake] Properly set CMAKE_BUILD_TYPE to Debug by default

    llvm-beanz committed Feb 18, 2016
    Summary:
    PR26666: CMAKE_BUILD_TYPE was previously being reset to blank.
    
    Reviewers: rnk, beanz
    
    Subscribers: llvm-commits
    
    Patch By: Derek Bruening
    
    Differential Revision: http://reviews.llvm.org/D17398
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@261273 91177308-0d34-0410-b5e6-96231b3b80d8
Commits on Feb 10, 2016
  1. @qcolombet

    [CMake] Add a macro definition to detect if we are building GlobalISel:

    qcolombet committed Feb 10, 2016
    LLVM_BUILD_GLOBAL_ISEL
    
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260457 91177308-0d34-0410-b5e6-96231b3b80d8
Commits on Jan 20, 2016
  1. @qcolombet

    [GlobalISel] Add the proper cmake plumbing.

    qcolombet committed Jan 20, 2016
    This patch adds the necessary plumbing to cmake to build the sources related to
    GlobalISel.
    
    To build the sources related to GlobalISel, we need to add -DBUILD_GLOBAL_ISEL=ON.
    By default, this is OFF, thus GlobalISel sources will not impact people that do
    not explicitly opt-in.
    
    Differential Revision: http://reviews.llvm.org/D15983
    
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258344 91177308-0d34-0410-b5e6-96231b3b80d8
Commits on Jan 13, 2016
  1. @zmodem

    Update version to 3.9.

    zmodem committed Jan 13, 2016
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257627 91177308-0d34-0410-b5e6-96231b3b80d8
Commits on Jan 9, 2016
  1. @danliew

    Revert "Teach the CMake build system to run lit's test suite. These c…

    danliew committed Jan 9, 2016
    …an be run"
    
    This reverts r257221.
    
    This caused several build bot failures
    
    * It looks like some of the tests don't work correctly under Windows
    * It looks like the lit per test timeout tests fail
    
    So I'm reverting for now. Once the above failures are fixed running
    lit's tests can be enabled again.
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257268 91177308-0d34-0410-b5e6-96231b3b80d8
Commits on Jan 8, 2016
  1. @danliew

    Teach the CMake build system to run lit's test suite. These can be run

    danliew committed Jan 8, 2016
    directy with ``make check-lit`` and are run as part of
    ``make check-all``.
    
    In principle we should run lit's testsuite before testing LLVM using lit
    so that any problems with lit get discovered before testing LLVM so we
    can bail out early.  However this implementation (``check-all`` runs all
    tests together) seemed simpler and will still report failing lit tests.
    
    Note that the tests and the configured ``lit.site.cfg`` have to be
    copied into the build directory to avoid polluting the source tree.
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257221 91177308-0d34-0410-b5e6-96231b3b80d8
Commits on Dec 16, 2015
  1. @d0k

    Generate a clang CompilationDatabase when running CMake

    d0k committed Dec 16, 2015
    This generates a compile_commands.json file, which tells tools like
    YouCompleteMe and clang_complete exactly how to build each source file.
    
    Patch by Justin Lebar!
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255789 91177308-0d34-0410-b5e6-96231b3b80d8
Commits on Dec 3, 2015
  1. @llvm-beanz

    [CMake] Add option LLVM_EXTERNALIZE_DEBUGINFO

    llvm-beanz committed Dec 3, 2015
    Summary: This adds support for generating dSYM files and stripping debug info from executables and dylibs. It also supports passing -object_path_lto to the linker to generate dSYMs for LTO builds.
    
    Reviewers: bogner, friss
    
    Subscribers: llvm-commits
    
    Differential Revision: http://reviews.llvm.org/D15133
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254627 91177308-0d34-0410-b5e6-96231b3b80d8
Commits on Nov 11, 2015
  1. @llvm-beanz

    [CMake] Add support for building the llvm test-suite as part of an LL…

    llvm-beanz committed Nov 11, 2015
    …VM build using clang and lld
    
    Summary:
    This patch adds a new CMake module for working with ExternalProjects. This wrapper for ExternalProject supports using just-built tools and can hook up dependencies properly so that projects get cleared out.
    
    The example usage here is for the llvm test-suite. In this example, the test-suite is setup as dependent on clang and lld if they are in-tree. If the clang or lld binaries change the test-suite is re-configured, cleaned, and rebuilt.
    
    This cleanup and abstraction wrapping ExternalProject can be extended and applied to other runtime libraries like compiler-rt and libcxx.
    
    Reviewers: samsonov, jroelofs, rengolin, jmolloy
    
    Subscribers: jmolloy, llvm-commits
    
    Differential Revision: http://reviews.llvm.org/D14513
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252747 91177308-0d34-0410-b5e6-96231b3b80d8
Commits on Nov 4, 2015
  1. @espindola

    Relax the check for ninja.

    espindola committed Nov 4, 2015
    On fedora the ninja executable is called ninja-build :-(
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252062 91177308-0d34-0410-b5e6-96231b3b80d8
Commits on Oct 27, 2015
  1. @llvm-beanz

    [CMake] Get rid of LLVM_DYLIB_EXPORT_ALL, and make it the default, ad…

    llvm-beanz committed Oct 27, 2015
    …d libLLVM-C on darwin to cover the C API needs.
    
    Summary:
    We've had a lot of discussion in the past about the meaningful and useful default behaviors for the llvm-shlib tool. The original implementation was heavily geared toward Apple's use, and I think that was wrong. This patch seeks to correct that.
    
    I've removed the LLVM_DYLIB_EXPORT_ALL variable and made libLLVM export everything by default.
    
    I've also added a new target that is only built on Darwin for libLLVM-C as a library that re-exports the LLVM-C API. This library is not built on Linux because ELF doesn't support re-export libraries in the same way MachO does.
    
    Reviewers: chapuni, resistor, bogner, axw
    
    Subscribers: llvm-commits
    
    Differential Revision: http://reviews.llvm.org/D13842
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@251411 91177308-0d34-0410-b5e6-96231b3b80d8
Commits on Oct 20, 2015
  1. @llvm-beanz

    [CMake] All the checks for if LLVM_VERSION_* variables are set need t…

    llvm-beanz committed Oct 20, 2015
    …o be if(DEFINED ...)
    
    This is because if you set one of the variables to 0, if(NOT ...) is true, which isn't what you actually want. Should have thought that through better the first time.
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@250841 91177308-0d34-0410-b5e6-96231b3b80d8
Commits on Oct 14, 2015
  1. @llvm-beanz

    [CMake] Make LLVM_VERSION_* variables user definable

    llvm-beanz committed Oct 14, 2015
    CMake's set command overwrites existing values. Package maintainers may want or need to set the version variables manually, so we need to only set them if they are not already defined. Note I use the "if(NOT DEFINED ...)" syntax deliberately in the last case because empty string is a valid value for the suffx, but not the other variables.
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@250333 91177308-0d34-0410-b5e6-96231b3b80d8
  2. @llvm-beanz

    [CMake] Fixing the bots I broke.

    llvm-beanz committed Oct 14, 2015
    I meant to put the POLICY setting below the version defaults.
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@250276 91177308-0d34-0410-b5e6-96231b3b80d8
  3. @llvm-beanz

    [CMake] Set Policy CMP0048 to NEW

    llvm-beanz committed Oct 14, 2015
    CMake 3.0 introduced the VERSION option for the project() command. If you don't specify the VERSION in the function it will clear out variables matching ${PROJECT_NAME}_VERSION_${MAJOR|MINOR|PATCH|TWEAK}.
    
    This makes overriding LLVM_VERSION_* not work properly with newer versions of CMake. To make this work properly we need to:
    
    (1) Optionally set the policy to NEW
    (2) Move default versions and setting PACKAGE_VERSION to before the call to project()
    (3) If the policy is set, pass the VERSION and LANGUAGES options in the new format
    
    This change should have no behavioral change for CMake versions before 3.0, and it makes the behavior of later versions match the earlier versions.
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@250275 91177308-0d34-0410-b5e6-96231b3b80d8
Commits on Oct 13, 2015
  1. @llvm-beanz

    [CMake] LLVM_PROFDATA_FILE only works if you're using clang, so we sh…

    llvm-beanz committed Oct 13, 2015
    …ould error out if it is specified when not using clang.
    
    Also updated the CMake docs.
    
    Based on post-commit review of r250108 from Sean Silvas.
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@250150 91177308-0d34-0410-b5e6-96231b3b80d8
Commits on Oct 12, 2015
  1. @llvm-beanz

    [CMake] Adding support for passing in profiling data.

    llvm-beanz committed Oct 12, 2015
    Adds LLVM_PROFDATA_FILE option to allow specifying a profile data file to be used during compilation of LLVM and subprojects.
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@250108 91177308-0d34-0410-b5e6-96231b3b80d8
Commits on Sep 11, 2015
  1. @llvm-beanz

    [CMake] [Darwin] Need to set lto_library on CMAKE_MODULE_LINKER_FLAGS…

    llvm-beanz committed Sep 11, 2015
    … as well
    
    This is a follow-on to r247308.
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@247443 91177308-0d34-0410-b5e6-96231b3b80d8
Commits on Sep 10, 2015
  1. @llvm-beanz
  2. @chandlerc

    Add a way to skip the Go bindings tests even when Go is configured in

    chandlerc committed Sep 10, 2015
    CMake.
    
    The Go bindings tests in an unoptimized build take over 30 seconds for
    me, making it the slowest test in 'check-llvm' by a factor of two.
    
    I've only rigged this up fully to the CMake build. If someone is
    interested in rigging it up to the autoconf build, they're welcome to do
    so.
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@247243 91177308-0d34-0410-b5e6-96231b3b80d8
Commits on Sep 9, 2015
  1. @JosephTremoulet

    [CMake] Flag recursive cmake invocations for cross-compile

    JosephTremoulet committed Sep 9, 2015
    Summary:
    Cross-compilation uses recursive cmake invocations to build native host
    tools.  These recursive invocations only forward a fixed set of
    variables/options, since the native environment is generally the default.
    This change adds -DLLVM_TARGET_IS_CROSSCOMPILE_HOST=TRUE to the recursive
    cmake invocations, so that cmake files can distinguish these recursive
    invocations from top-level ones, which can explain why expected options
    are unset.
    
    LLILC will use this to avoid trying to generate its build rules in the
    crosscompile native host target (where it is not needed), which would fail
    if attempted because LLILC requires a cmake variable passed on the command
    line, which is not forwarded in the recursive invocation.
    
    Reviewers: rnk, beanz
    
    Subscribers: llvm-commits
    
    Differential Revision: http://reviews.llvm.org/D12679
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@247151 91177308-0d34-0410-b5e6-96231b3b80d8
Commits on Sep 5, 2015
  1. @axw

    [cmake] rework LLVM_LINK_LLVM_DYLIB option handling

    axw committed Sep 5, 2015
    Summary:
    This diff attempts to address the concerns raised in
    http://reviews.llvm.org/D12488.
    
    We introduce a new USE_SHARED option to llvm_config,
    which, if set, causes the target to be linked against
    libLLVM.
    
    add_llvm_utility now uniformly disables linking against
    libLLVM. These utilities are not intended for distribution,
    and this keeps the option handling more centralised.
    
    llvm-shlib is now processes before any other "tools"
    subdirectories, ensuring the libLLVM target is defined
    before its dependents.
    
    One main difference from what was requested: llvm_config
    does not prune LLVM_DYLIB_COMPONENTS from the components
    passed into explicit_llvm_config. This is because the "all"
    component does something special, adding additional
    libraries (namely libLTO). Adding the component libraries
    after libLLVM should not be a problem, as symbols will be
    resolved in libLLVM first.
    
    Finally, I'm not really happy with the
    DISABLE_LLVM_LINK_LLVM option, but I'm not sure of a
    better way to get the following:
     - link all tools and shared libraries to libLLVM if
       LLVM_LINK_LLVM_DYLIB is set
     - some way of explicitly *not* doing so for utilities
       and libLLVM itself
    Suggestions for improvement here are particularly welcome.
    
    Reviewers: beanz
    
    Subscribers: llvm-commits
    
    Differential Revision: http://reviews.llvm.org/D12590
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@246918 91177308-0d34-0410-b5e6-96231b3b80d8
Something went wrong with that request. Please try again.