Skip to content
  1. May 31, 2016
  2. May 05, 2016
    • Chris Bieneman's avatar
      Remove LLVM_ENABLE_TIMESTAMPS · 62de33c2
      Chris Bieneman authored
      Summary:
      As per the discussion on LLVM-dev this patch proposes removing LLVM_ENABLE_TIMESTAMPS.
      
      The only complicated bit of this patch is the Windows support. On windows we used to log an error if /INCREMENTAL was passed to the linker when timestamps were disabled.
      
      With this change since timestamps in code are always disabled we will always compile on windows with /Brepro unless /INCREMENTAL is specified, and we will log a warning when /INCREMENTAL is specified to notify the user that the build will be non-deterministic.
      
      See: http://lists.llvm.org/pipermail/llvm-dev/2016-May/098990.html
      
      Reviewers: bogner, silvas, rnk
      
      Subscribers: llvm-commits
      
      Differential Revision: http://reviews.llvm.org/D19892
      
      llvm-svn: 268670
      62de33c2
    • James Y Knight's avatar
      Remove bit-rotten CppBackend. · 0c145c0c
      James Y Knight authored
      This backend was supposed to generate C++ code which will re-construct
      the LLVM IR passed as input. This seems to me to have very marginal
      usefulness in the first place.
      
      However, the code has never been updated to use IRBuilder, which makes
      its current value negative -- people who look at the output may be
      steered to use the *wrong* C++ APIs to construct IR.
      
      Furthermore, it's generated code that doesn't compile since at least
      2013.
      
      Differential Revision: http://reviews.llvm.org/D19942
      
      llvm-svn: 268631
      0c145c0c
  3. May 04, 2016
    • Tobias Grosser's avatar
      cmake: Prefix Polly options with LLVM_ to avoid variable shadowing · 3b326169
      Tobias Grosser authored
      Summary:
      Before this change certain Polly variables have been used both as user-facing
      CACHED cmake variables as well as uncached internal variables. Even though
      this seems to have worked OK in practice, the behavior only worked due to
      one variable shadowing the other. This behavior has been found confusing.
      To make the use of cmake variables more clear we now prefix the cached, user
      facing variables with LLVM_ as it is common habit for LLVM options and also
      moved the _POLLY_ term to the beginning to ensure related options are sorted
      after each other. The variables that control the behavior of LLVM/Polly are then
      set by forwarding the values set in the user facing option variables.
      As a result, Polly is now enabled with LLVM_POLLY_BUILD instead of BUILD_POLLY
      and the linking behavior of Polly is controlled with LLVM_POLLY_LINK_INTO_TOOLS
      instead of LINK_POLLY_INTO_TOOLS.
      
      Reviewers: bogner, Meinersbur
      
      Subscribers: pollydev, llvm-commits
      
      Differential Revision: http://reviews.llvm.org/D19907
      
      llvm-svn: 268537
      3b326169
  4. May 03, 2016
  5. Apr 29, 2016
    • Filipe Cabecinhas's avatar
      Unify XDEBUG and EXPENSIVE_CHECKS (into the latter), and add an option to the... · 0da99375
      Filipe Cabecinhas authored
      Unify XDEBUG and EXPENSIVE_CHECKS (into the latter), and add an option 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
      
      llvm-svn: 268050
      0da99375
    • Tobias Grosser's avatar
      cmake: Set LINK_POLLY_INTO_TOOLS to ON (v2) · d7773f72
      Tobias Grosser authored
      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
      
      llvm-svn: 268048
      d7773f72
    • Tobias Grosser's avatar
      Revert "cmake: Set LINK_POLLY_INTO_TOOLS to ON" · da299848
      Tobias Grosser authored
      This reverts commit r268033 as it breaks some buildbots.
      
      llvm-svn: 268035
      da299848
    • Tobias Grosser's avatar
      cmake: Set LINK_POLLY_INTO_TOOLS to ON · 2fd7dbe2
      Tobias Grosser authored
      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
      
      llvm-svn: 268033
      2fd7dbe2
  6. Apr 28, 2016
  7. Apr 12, 2016
  8. Mar 28, 2016
  9. Mar 14, 2016
    • Justin Bogner's avatar
      llvm-shlib: Remove the option to override __cxa_atexit · 2414c5d4
      Justin Bogner authored
      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.
      
      llvm-svn: 263498
      2414c5d4
  10. Mar 02, 2016
  11. Feb 26, 2016
  12. Feb 23, 2016
    • Chris Bieneman's avatar
      [CMake] Create an install-distribution target driven by LLVM_DISTRIBUTION_COMPONENTS · c90e12fe
      Chris Bieneman authored
      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.
      
      llvm-svn: 261681
      c90e12fe
  13. Feb 19, 2016
  14. Feb 11, 2016
  15. Jan 20, 2016
    • Quentin Colombet's avatar
      [GlobalISel] Add the proper cmake plumbing. · 105cf2b1
      Quentin Colombet authored
      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
      
      llvm-svn: 258344
      105cf2b1
  16. Jan 13, 2016
  17. Jan 09, 2016
  18. Jan 08, 2016
    • Dan Liew's avatar
      Teach the CMake build system to run lit's test suite. These can be run · 9d49638f
      Dan Liew authored
      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.
      
      llvm-svn: 257221
      9d49638f
  19. Dec 16, 2015
  20. Dec 03, 2015
  21. Nov 11, 2015
    • Chris Bieneman's avatar
      [CMake] Add support for building the llvm test-suite as part of an LLVM build using clang and lld · 788c95c3
      Chris Bieneman authored
      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
      
      llvm-svn: 252747
      788c95c3
  22. Nov 04, 2015
  23. Oct 27, 2015
    • Chris Bieneman's avatar
      [CMake] Get rid of LLVM_DYLIB_EXPORT_ALL, and make it the default, add... · 9c5e41f3
      Chris Bieneman authored
      [CMake] Get rid of LLVM_DYLIB_EXPORT_ALL, and make it the default, add 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
      
      llvm-svn: 251411
      9c5e41f3
  24. Oct 20, 2015
  25. Oct 14, 2015
    • Chris Bieneman's avatar
      [CMake] Make LLVM_VERSION_* variables user definable · f9e0b253
      Chris Bieneman authored
      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.
      
      llvm-svn: 250333
      f9e0b253
    • Chris Bieneman's avatar
      [CMake] Fixing the bots I broke. · 68ddd150
      Chris Bieneman authored
      I meant to put the POLICY setting below the version defaults.
      
      llvm-svn: 250276
      68ddd150
    • Chris Bieneman's avatar
      [CMake] Set Policy CMP0048 to NEW · 6fcc62fa
      Chris Bieneman authored
      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.
      
      llvm-svn: 250275
      6fcc62fa
  26. Oct 13, 2015
  27. Oct 12, 2015
  28. Sep 11, 2015
  29. Sep 10, 2015
  30. Sep 09, 2015
    • Joseph Tremoulet's avatar
      [CMake] Flag recursive cmake invocations for cross-compile · e5e75afe
      Joseph Tremoulet authored
      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
      
      llvm-svn: 247151
      e5e75afe
  31. Sep 05, 2015
    • Andrew Wilkins's avatar
      [cmake] rework LLVM_LINK_LLVM_DYLIB option handling · bb6d95fc
      Andrew Wilkins authored
      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
      
      llvm-svn: 246918
      bb6d95fc
Loading