Skip to content
  1. May 20, 2018
  2. May 17, 2018
    • Chris Bieneman's avatar
      [CMake] Support runtimes in distributions · 8a534b03
      Chris Bieneman authored
      Summary:
      This patch adds a new internal variable
      LLVM_RUNTIME_DISTRIBUTION_COMPONENTS which specifies distribution
      components that are part of runtime projects, and thus should be exposed
      from runtime configuraitons up into the top-level CMake configurations.
      
      This is required for allowing runtime components to be included in
      LLVM_DISTRIBUTION_COMPONENTS because we verify that the build and
      install targets exist for every component specified for the
      distribution.
      
      Without this patch runtimes and builtins can only be included in
      distributions in whole, not by component.
      
      Reviewers: phosek
      
      Reviewed By: phosek
      
      Subscribers: mgorny, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D46705
      
      llvm-svn: 332631
      8a534b03
    • Chris Bieneman's avatar
      [CMake] Make optimizing sanitizer builds optional · c2e8e20f
      Chris Bieneman authored
      This behavior has been the default for a long time, so the default value is On, however this can make it difficult to debug sanitizer failures, so we should have an option to turn it off.
      
      llvm-svn: 332628
      c2e8e20f
  3. Apr 24, 2018
    • Nico Weber's avatar
      Remove LLVM_INSTALL_CCTOOLS_SYMLINKS · 8c77bf9e
      Nico Weber authored
      It used to symlink dsymutil to llvm-dsymutil, but after r327790 llvm's dsymutil
      binary is now called dsymutil without prefix.
      
      r327792 then reversed the direction of the symlink if
      LLVM_INSTALL_CCTOOLS_SYMLINKS was set, but that looks like a buildfix and not
      like something anyone should need.
      
      https://reviews.llvm.org/D45966
      
      llvm-svn: 330727
      8c77bf9e
  4. Apr 11, 2018
  5. Apr 02, 2018
  6. Mar 21, 2018
    • David Blaikie's avatar
      Ensure that DataTypes.h is installed now that it's moved to llvm-c · c72984f8
      David Blaikie authored
      llvm-svn: 328130
      c72984f8
    • David Blaikie's avatar
      Reapply Support layering fixes. · 99e17253
      David Blaikie authored
      Compiler.h is used by Demangle (which Support depends on) - so sink it
      into Demangle to avoid a circular dependency
      
      DataTypes.h is used by llvm-c (which Support depends on) - so sink it
      into llvm-c.
      
      DataTypes.h could probably be fixed the other way - making llvm-c depend
      on Support instead of Support depending on llvm-c - if anyone feels
      that's the better option, happy to work with them on that.
      
      I /think/ this'll address the layering issues that previous attempts to
      commit this have triggered in the Modules buildbot, but I haven't been
      able to reproduce that build so can't say for sure. If anyone's having
      trouble with this - it might be worth taking a look to see if there's a
      quick fix/something small I missed rather than revert, but no worries.
      
      llvm-svn: 328123
      99e17253
    • Jonas Devlieghere's avatar
      Revert "Move DataTypes.h from Support to llvm-c to fix layering." · daf69ac2
      Jonas Devlieghere authored
      This reverts r328065.
      
      I missed this one in r328085 and the bots were still failing.
      
      llvm-svn: 328095
      daf69ac2
    • David Blaikie's avatar
      Move DataTypes.h from Support to llvm-c to fix layering. · 1963e4b9
      David Blaikie authored
      Support depends on llvm-c (a few typedefs, macros, etc - Types.h,
      Disassembler.h, and TargetMachine.h.
      
      This could be done the other way - those macros/typedefs/etc could be
      moved into Support and used from llvm-c instead. If someone feels that's
      a better direction to go, happy to discuss it/try it out/etc.
      
      llvm-svn: 328065
      1963e4b9
  7. Mar 01, 2018
  8. Feb 10, 2018
  9. Feb 08, 2018
  10. Jan 25, 2018
  11. Jan 24, 2018
  12. Jan 19, 2018
  13. Jan 03, 2018
  14. Dec 18, 2017
    • Don Hinton's avatar
      [cmake] Update experimental target error message · 0fa52c7d
      Don Hinton authored
      Summary:
      Update this error message indicate this test only ensures experimental
      targets were passed via LLVM_EXPERIMENTAL_TARGETS_TO_BUILD.
      
      Originally, this test validated all targets, but in r184923, it was moved
      after the LLVMBUILDTOOL test, which also validates all targets, making
      that part of the test redundant.
      
      Differential Revision: https://reviews.llvm.org/D41273
      
      llvm-svn: 321012
      0fa52c7d
  15. Dec 14, 2017
    • Shoaib Meenai's avatar
      [cmake] Only attempt to install MSVC system libraries on Windows · 7fe22d61
      Shoaib Meenai authored
      Newer versions of CMake (I'm on 3.10, but I believe 3.9 behaves the same
      way) attempt to query the system for information about the VS 2017
      install. Unfortunately, this query fails on non-Windows systems:
      
        cmake_host_system_information does not recognize <key> VS_15_DIR
      
      CMake isn't going to find these system libraries on non-Windows anyway
      (and we were previously silencing the resultant warnings in our
      cross-compilation toolchain), so it makes sense to just omit the
      attempted installation entirely on non-Windows.
      
      Differential Revision: https://reviews.llvm.org/D41220
      
      llvm-svn: 320724
      7fe22d61
  16. Dec 12, 2017
  17. Dec 08, 2017
  18. Dec 07, 2017
  19. Nov 30, 2017
    • Shoaib Meenai's avatar
      [llvm] Add stripped installation targets · a7ac2cb6
      Shoaib Meenai authored
      CMake's generated installation scripts support `CMAKE_INSTALL_DO_STRIP`
      to enable stripping the installed binaries. LLVM's build system doesn't
      expose this option to the `install-` targets, but it's useful in
      conjunction with `install-distribution`.
      
      Add a new function to create the install targets, which creates both the
      regular install target and a second install target that strips during
      installation. Change the creation of all installation targets to use
      this new function. Stripping doesn't make a whole lot of sense for some
      installation targets (e.g. the LLVM headers), but consistency doesn't
      hurt.
      
      I'll make other repositories (e.g. clang, compiler-rt) use this in a
      follow-up, and then add an `install-distribution-stripped` target to
      actually accomplish the end goal of creating a stripped distribution. I
      don't want to do that step yet because the creation of that target would
      depend on the presence of the `install-*-stripped` target for each
      distribution component, and the distribution components from other
      repositories will be missing that target right now.
      
      Differential Revision: https://reviews.llvm.org/D40620
      
      llvm-svn: 319480
      a7ac2cb6
  20. Nov 21, 2017
    • Zachary Turner's avatar
      Re-revert "Refactor debuginfo-tests." · 79708b54
      Zachary Turner authored
      This is still breaking greendragon.
      
      At this point I give up until someone can fix the greendragon
      bots, and I will probably abandon this effort in favor of using
      a private github repository.
      
      llvm-svn: 318722
      79708b54
  21. Nov 20, 2017
    • Zachary Turner's avatar
      Resubmit "Refactor debuginfo-tests" again. · 8b6ef88e
      Zachary Turner authored
      This was reverted due to the tests being run twice on some
      build bots.  Each run had a slightly different configuration
      due to the way in which it was being invoked.  This fixes
      the problem (albeit in a somewhat hacky way).  Hopefully in
      the future we can get rid of the workflow of running
      debuginfo-tests as part of clang, and then this hack can
      go away.
      
      llvm-svn: 318697
      8b6ef88e
  22. Nov 17, 2017
    • Zachary Turner's avatar
      Re-revert "Refactor debuginfo-tests" · b5c237ec
      Zachary Turner authored
      This is still broken because it causes certain tests to be
      run twice with slightly different configurations, which is
      wrong in some cases.
      
      You can observe this by running:
      
        ninja -nv check-all | grep debuginfo-tests
      
      And seeing that it passes clang/test and clang/test/debuginfo-tests
      to lit, which causes it to run debuginfo-tests twice.  The fix is
      going to involve either:
      
        a) figuring out that we're running in this "deprecated" configuration,
           and then deleting the clang/test/debuginfo-tests path, which should
           cause it to behave identically to before, or:
        b) make lit smart enough that it doesn't descend into a sub-suite if
           that sub-suite already has a lit.cfg file.
      
      llvm-svn: 318486
      b5c237ec
  23. Nov 16, 2017
    • Zachary Turner's avatar
      Resubmit "Refactor debuginfo-tests" · 5e420717
      Zachary Turner authored
      This was reverted due to some failures on specific darwin buildbots,
      the issue being that the new lit configuration was not setting the
      SDKROOT environment variable.  We've tested a fix locally and confirmed
      that it works, so this patch resubmits everything with the fix
      applied.
      
      llvm-svn: 318435
      5e420717
    • Daniel Sanders's avatar
      [globalisel][tablegen] Generate rule coverage and use it to identify untested rules · f76f3154
      Daniel Sanders authored
      Summary:
      This patch adds a LLVM_ENABLE_GISEL_COV which, like LLVM_ENABLE_DAGISEL_COV,
      causes TableGen to instrument the generated table to collect rule coverage
      information. However, LLVM_ENABLE_GISEL_COV goes a bit further than
      LLVM_ENABLE_DAGISEL_COV. The information is written to files
      (${CMAKE_BINARY_DIR}/gisel-coverage-* by default). These files can then be
      concatenated into ${LLVM_GISEL_COV_PREFIX}-all after which TableGen will
      read this information and use it to emit warnings about untested rules.
      
      This technique could also be used by SelectionDAG and can be further
      extended to detect hot rules and give them priority over colder rules.
      
      Usage:
      * Enable LLVM_ENABLE_GISEL_COV in CMake
      * Build the compiler and run some tests
      * cat gisel-coverage-[0-9]* > gisel-coverage-all
      * Delete lib/Target/*/*GenGlobalISel.inc*
      * Build the compiler
      
      Known issues:
      * ${LLVM_GISEL_COV_PREFIX}-all must be generated as a manual
        step due to a lack of a portable 'cat' command. It should be the
        concatenation of all ${LLVM_GISEL_COV_PREFIX}-[0-9]* files.
      * There's no mechanism to discard coverage information when the ruleset
        changes
      
      Depends on D39742
      
      Reviewers: ab, qcolombet, t.p.northover, aditya_nandakumar, rovka
      
      Reviewed By: rovka
      
      Subscribers: vsk, arsenm, nhaehnle, mgorny, kristof.beyls, javed.absar, igorb, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D39747
      
      llvm-svn: 318356
      f76f3154
  24. Nov 14, 2017
  25. Nov 10, 2017
    • Zachary Turner's avatar
      [debuginfo-tests] Make debuginfo-tests work in a standard configuration. · 0f2ce11d
      Zachary Turner authored
      Previously, debuginfo-tests was expected to be checked out into
      clang/test and then the tests would automatically run as part of
      check-clang.  This is not a standard workflow for handling
      external projects, and it brings with it some serious drawbacks
      such as the inability to depend on things other than clang, which
      we will need going forward.
      
      The goal of this patch is to migrate towards a more standard
      workflow.  To ease the transition for build bot maintainers,
      this patch tries not to break the existing workflow, but instead
      simply deprecate it to give maintainers a chance to update
      the build infrastructure.
      
      Differential Revision: https://reviews.llvm.org/D39605
      
      llvm-svn: 317925
      0f2ce11d
  26. Nov 04, 2017
  27. Nov 02, 2017
    • Shoaib Meenai's avatar
      [tools] Add option to install binutils symlinks · 08bb38f7
      Shoaib Meenai authored
      The LLVM tools can be used as a replacement for binutils, in which case
      it's convenient to create symlinks with the binutils names. Add support
      for these symlinks in the build system. As with any other llvm tool
      symlinks, the user can limit the installed symlinks by only adding the
      desired ones to `LLVM_TOOLCHAIN_TOOLS`.
      
      Differential Revision: https://reviews.llvm.org/D39530
      
      llvm-svn: 317272
      08bb38f7
    • Shoaib Meenai's avatar
      [cmake] Remove policy conditionals · c542c3e0
      Shoaib Meenai authored
      LLVM now requires a minimum of cmake 3.4.3, and all the policies
      currently being set are present in that cmake version, so the
      conditionals will always be true and are therefore unnecessary. The
      movation is that the conditionals can give the false impression that the
      policy settings are optional, whereas for example it's necessary to set
      CMP0056 in order for `check_linker_flags` to operate correctly after
      r316972. Inline the project version and language setting in the process.
      
      Differential Revision: https://reviews.llvm.org/D39442
      
      llvm-svn: 317264
      c542c3e0
    • Shoaib Meenai's avatar
      [cmake] Switch FATAL_ERROR to SEND_ERROR · 909f5c9b
      Shoaib Meenai authored
      It's possible for multiple distribution components to have missing
      targets, and it's a lot more convenient to get all those errors in one
      shot rather than having to fix them individually.
      
      llvm-svn: 317148
      909f5c9b
  28. Oct 31, 2017
    • Shoaib Meenai's avatar
      [cmake] Make check_linker_flags operate via linker flags · 72404b80
      Shoaib Meenai authored
      `check_linker_flags` currently sets the *compiler* flags (via
      `CMAKE_REQUIRED_FLAGS`), and thus implicitly relies on cmake's default
      behavior of passing the compiler flags to the linker. This breaks when
      cmake's build rules have been altered to not pollute the link line with
      compiler flags (which can be desirable for build cleanliness). Instead,
      set `CMAKE_EXE_LINKER_FLAGS` explicitly and use `CMP0056` to ensure the
      linker flags are passed along. Additionally, since we're inside a
      function, we can just alter the variable directly (as the alteration
      will be limited to the scope of the function) rather than saving and
      restoring the old value.
      
      Differential Revision: https://reviews.llvm.org/D39431
      
      llvm-svn: 316972
      72404b80
  29. Oct 19, 2017
    • Chris Bieneman's avatar
      [CMake] Allow parent projects to use in-source builds · 2a0a8fb6
      Chris Bieneman authored
      LLVM checks if it is performing an in-source build and then stop the
      build. However, this check is also triggered if LLVM is being build as
      part of a parent project, which prevents the parent project itself from
      using in-source builds. For example, CMake allows a parent project to
      specify the output of its subproject:
      
      add_subdirectory(llvm llvm_build)
      
      This tells CMake to conduct an out-tree build of LLVM, which without
      this patch will still fails because what is being tested is the parent
      project, not LLVM. This is fixed by using the "CURRENT" variable, which
      is only concerned by the CMakeLists that is actually bein processed at
      the moment.
      
      Tests:
      Ran `make check-llvm`.
      
      Patch by Henrique Jung <henriquenj_AT_gmail_DOT_com>
      
      llvm-svn: 316142
      2a0a8fb6
  30. Oct 17, 2017
    • Matthias Braun's avatar
      cmake: BSD: Mark /usr/local/include as system include directory · cf3ab11c
      Matthias Braun authored
      We add /usr/local/include to the include directory list for some BSD
      systems. We should mark this as a system directory to avoid files from
      /usr/local/include getting picked over files shipping with llvm.
      
      This typically manifested as gtest headers installed with the system
      getting picked over the ones shipping with llvm.
      
      Patch by Petr Penzin <penzin.dev@gmail.com>
      
      Differential Revision: https://reviews.llvm.org/D37415
      
      llvm-svn: 315952
      cf3ab11c
  31. Oct 15, 2017
Loading