Skip to content
  1. Mar 26, 2015
    • Sanjoy Das's avatar
      [ADT][CMake][AutoConf] Fail-fast iterators for DenseMap · 8ce6499b
      Sanjoy Das authored
      Summary:
      This patch is an attempt at making `DenseMapIterator`s "fail-fast".
      Fail-fast iterators that have been invalidated due to insertion into
      the host `DenseMap` deterministically trip an assert (in debug mode)
      on access, instead of non-deterministically hitting memory corruption
      issues.
      
      Enabling fail-fast iterators breaks the LLVM C++ ABI, so they are
      predicated on `LLVM_ENABLE_ABI_BREAKING_CHECKS`.
      `LLVM_ENABLE_ABI_BREAKING_CHECKS` by default flips with
      `LLVM_ENABLE_ASSERTS`, but can be clamped to ON or OFF using the CMake /
      autoconf build system.
      
      Reviewers: chandlerc, dexonsmith, rnk, zturner
      
      Subscribers: llvm-commits
      
      Differential Revision: http://reviews.llvm.org/D8351
      
      llvm-svn: 233310
      8ce6499b
  2. Mar 25, 2015
    • Justin Bogner's avatar
      test: Fix the dependencies for the check-llvm-* targets · 35b4b1a4
      Justin Bogner authored
      In r233009 we gained specific check-llvm-* build targets for invoking
      specific parts of the test suite, but they were copying the
      dependencies for check-all, rather than just listing the dependencies
      for check-llvm.
      
      This moves the creation of these targets next to the check-llvm
      target, and uses that target's configuration rather than the check-all
      config.
      
      llvm-svn: 233174
      35b4b1a4
  3. Mar 23, 2015
  4. Mar 18, 2015
    • Chris Bieneman's avatar
      Revert "Generate targets for each lit suite." · 244bbf8b
      Chris Bieneman authored
      This change broke Polly. I'll track down the failure when I have a chance and re-apply the change.
      
      llvm-svn: 232676
      244bbf8b
    • Chris Bieneman's avatar
      Generate targets for each lit suite. · 86ee1515
      Chris Bieneman authored
      Summary:
      This change makes CMake scan for lit suites and generate a target for each lit test suite. The targets follow the format check-<project>-<suite path>.
      
      For example:
      check-llvm-unit - Runs the LLVM unit tests
      check-llvm-codegen-arm - Runs the ARM codeine tests
      
      Note: These targets are not generated during multi-configuration generators (i.e. Xcode and Visual Studio) because target clutter impacts UI usability.
      
      Reviewers: chandlerc
      
      Subscribers: aemerson, llvm-commits
      
      Differential Revision: http://reviews.llvm.org/D8380
      
      llvm-svn: 232671
      86ee1515
    • Reid Kleckner's avatar
      CMake: Disable ENABLE_EXPORTS for executables with MSVC · 3e8c445c
      Reid Kleckner authored
      The MSVC linker won't produce a .lib file for an executable that doesn't
      export anything, and LLVM doesn't maintain dllexport annotations or .def
      files listing all C++ symbols. It also doesn't support exporting all
      symbols, like binutils ld.
      
      CMake 3.2 changed the Ninja generator to list both the .exe and .lib
      files as outputs of executable build targets. Ninja would always re-link
      executables with ENABLE_EXPORTS because the .lib output file was not
      present, and therefore the target was out of date.
      
      llvm-svn: 232662
      3e8c445c
  5. Mar 10, 2015
  6. Mar 07, 2015
  7. Feb 27, 2015
  8. Feb 25, 2015
    • Zachary Turner's avatar
      [CMake] Set policy CMP0051 to OLD globally. · b7e41581
      Zachary Turner authored
      When you use generator expressions in a library sources list,
      and then later access the SOURCES property, the OLD behavior
      (CMake 3.0 and earlier) would not include these expressions in
      the SOURCES property.  The NEW behavior (starting in CMake 3.1)
      is that they do include the generator expressions in the SOURCES
      property.
      
      Differential Revision: http://reviews.llvm.org/D7870
      Reviewed By: Chris Bieneman
      
      llvm-svn: 230396
      b7e41581
  9. Feb 24, 2015
  10. Feb 23, 2015
  11. Feb 20, 2015
  12. Feb 18, 2015
  13. Feb 15, 2015
  14. Feb 14, 2015
  15. Feb 09, 2015
  16. Feb 03, 2015
  17. Jan 14, 2015
  18. Dec 29, 2014
    • Chandler Carruth's avatar
      [py3] Teach the CMake build to reject Python versions older than 2.7. · d86ab891
      Chandler Carruth authored
      Continue to require Python 2 however as recent experiments suggest
      LLDB's build requires it.
      
      llvm-svn: 224948
      d86ab891
    • Chandler Carruth's avatar
      [cmake] Start making LLVM_LIBDIR_SUFFIX effective by adding it to · a78e24e5
      Chandler Carruth authored
      *numerous* places where it was missing in the CMake build. The primary
      change here is that the suffix is now actually used for all of the lib
      directories in the LLVM project's CMake. The various subprojects still
      need similar treatment.
      
      This is the first of a series of commits to try to make LLVM's cmake
      effective in a multilib Linux installation. I don't think many people
      are seriously using this variable so I'm hoping the fallout will be
      minimal. A somewhat unfortunate consequence of the nature of these
      commits is that until I land all of them, they will in part make the
      brokenness of our multilib support more apparant. At the end, things
      should actually work.
      
      llvm-svn: 224919
      a78e24e5
  19. Dec 09, 2014
    • Chris Bieneman's avatar
      Adding a new option to CMake to disable C++ atexit on llvm-shlib. · 5d388e11
      Chris Bieneman authored
      Summary:
      This is desirable for WebKit and other clients of the llvm-shlib because C++ exit time destructors have a tendency to crash when invoked from multi-threaded applications.
      
      Ideally this option will be temporary, because the ideal fix is to just not have exit time destructors.
      
      Reviewers: chapuni, ributzka
      
      Reviewed By: ributzka
      
      Subscribers: llvm-commits
      
      Differential Revision: http://reviews.llvm.org/D6572
      
      llvm-svn: 223805
      5d388e11
  20. Dec 01, 2014
  21. Nov 19, 2014
  22. Nov 17, 2014
  23. Nov 07, 2014
    • Rafael Espindola's avatar
      Pass PRIVATE to target_link_libraries if using shared libraries. · f9dcf902
      Rafael Espindola authored
      A shared library (unlike a .a), has its dependencies recorded in the library and
      we can pass PRIVATE to target_link_libraries.
      
      This patch then removes some bogus dependencies when using
      BUILD_SHARED_LIBS=ON. For example, we go from
      
      build lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/AggressiveAntiDepBreaker.cpp.o:
      CXX_COMPILER /home/espindola/llvm/llvm/lib/CodeGen/AggressiveAntiDepBreaker.cpp
      || include/llvm/IR/intrinsics_gen lib/libLLVMSupport.so
      lib/libLLVMCore.so lib/libLLVMBitReader.so
      lib/libLLVMTransformUtils.so lib/libLLVMInstCombine.so
      lib/libLLVMScalarOpts.so lib/libLLVMipa.so lib/libLLVMAnalysis.so
      lib/libLLVMMCParser.so lib/libLLVMMC.so lib/libLLVMObject.so
      lib/libLLVMTarget.so lib/libLLVMProfileData.so
      
      to
      
      build lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/AggressiveAntiDepBreaker.cpp.o:
      CXX_COMPILER /home/espindola/llvm/llvm/lib/CodeGen/AggressiveAntiDepBreaker.cpp
      || include/llvm/IR/intrinsics_gen lib/libLLVMSupport.so
      lib/libLLVMCore.so lib/libLLVMTransformUtils.so
      lib/libLLVMScalarOpts.so lib/libLLVMAnalysis.so lib/libLLVMMC.so
      lib/libLLVMTarget.so
      
      In fact, build.ninja goes from 5231028 bytes to 4896759 bytes.
      
      With this, old verisons of bfd ld (2.24 is OK, 2.23 warns) will print a bogus
      warning when building with BUILD_SHARED_LIBS.
      
      llvm-svn: 221530
      f9dcf902
  24. Oct 23, 2014
    • Chris Bieneman's avatar
      Adding llvm-shlib to CMake build system with a few new bells and whistles · adffd014
      Chris Bieneman authored
      Summary:
      This patch adds a new CMake build setting LLVM_BUILD_LLVM_DYLIB, which defaults to OFF. When set to ON, this will generate a shared library containing most of LLVM. The contents of the shared library can be overriden by specifying LLVM_DYLIB_COMPONENTS. LLVM_DYLIB_COMPONENTS can be set to a semi-colon delimited list of any LLVM components that you llvm-config can resolve.
      
      On Windows, unless you are using Cygwin, you must specify an explicit symbol export file using LLVM_EXPORTED_SYMBOL_FILE. On Cygwin and all unix-like platforms if you do not specify LLVM_EXPORTED_SYMBOL_FILE, an export file containing only the LLVM C API will be auto-generated from the list of LLVM components specified in LLVM_DYLIB_COMPONENTS.
      
      Reviewers: rnk
      
      Reviewed By: rnk
      
      Subscribers: rnk, llvm-commits
      
      Differential Revision: http://reviews.llvm.org/D5890
      
      llvm-svn: 220490
      adffd014
  25. Sep 27, 2014
  26. Sep 04, 2014
    • Chris Bieneman's avatar
      Enabling LLVM & Clang to be cross-compiled using CMake from a single configuration command line · 5007741d
      Chris Bieneman authored
      The basic idea is similar to the existing cross compilation support. A directory must be configured to build host versions of tablegen tools and llvm-config. This directory can be user provided (and configured), or it can be created during the build. During a build the native build directory will be configured and built to supply the tablegen tools used during the build. A user could also explicitly provide the tablegen executables to run on the CMake command line.
      
      llvm-svn: 217105
      5007741d
  27. Aug 01, 2014
  28. Jul 29, 2014
  29. Jul 04, 2014
  30. Jun 23, 2014
Loading