Skip to content
  1. 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
  2. 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
  3. 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
  4. Nov 14, 2017
  5. 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
  6. Nov 04, 2017
  7. 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
  8. 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
  9. 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
  10. 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
  11. Oct 15, 2017
    • Krzysztof Parzyszek's avatar
      Phony change to CMakeLists.txt to (hopefully) trigger regeneration · bc7f806c
      Krzysztof Parzyszek authored
      Ninja doesn't seem to recognize a change in a CMakeLists.txt in a
      subdirectory, so r315861 is not having any effect.
      
      llvm-svn: 315870
      bc7f806c
    • Aaron Ballman's avatar
      Reverting r315590; it did not include changes for llvm-tblgen, which is... · 615eb470
      Aaron Ballman authored
      Reverting r315590; it did not include changes for llvm-tblgen, which is causing link errors for several people.
      
      Error LNK2019 unresolved external symbol "public: void __cdecl `anonymous namespace'::MatchableInfo::dump(void)const " (?dump@MatchableInfo@?A0xf4f1c304@@QEBAXXZ) referenced in function "public: void __cdecl `anonymous namespace'::AsmMatcherEmitter::run(class llvm::raw_ostream &)" (?run@AsmMatcherEmitter@?A0xf4f1c304@@QEAAXAEAVraw_ostream@llvm@@@Z) llvm-tblgen D:\llvm\2017\utils\TableGen\AsmMatcherEmitter.obj 1
      
      llvm-svn: 315854
      615eb470
  12. Oct 12, 2017
  13. Sep 29, 2017
    • Brian Gesiak's avatar
      Revert "[CMake] Remove `CMAKE_.*_OUTPUT_DIRECTORY` (NFCI)" · 615a3bbd
      Brian Gesiak authored
      Summary:
      It appears polly makes use of the `CMAKE_RUNTIME_OUTPUT_DIRECTORY` variable
      when configuring its lit test suite. Reverting this for now.
      
      llvm-svn: 314551
      615a3bbd
    • Brian Gesiak's avatar
      [CMake] Remove `CMAKE_.*_OUTPUT_DIRECTORY` (NFCI) · cccbed84
      Brian Gesiak authored
      Summary:
      Three `CMAKE_.*_OUTPUT_DIRECTORY` variables used to be set in CMake and
      referenced in various other parts of the project. However, in r198205
      chapuni added a note to "don't set them anymore", and any remaining
      references to them were subsequently removed in r198316 and r199592.
      
      Now that the variables are no longer used anywhere, remove them, along
      with the comments advising against using them any longer.
      
      Test Plan:
      I ran `check-all` and confirmed the tests built and passed.
      
      Reviewers: beanz, chapuni
      
      Reviewed By: beanz
      
      Subscribers: mgorny
      
      Differential Revision: https://reviews.llvm.org/D38389
      
      llvm-svn: 314550
      cccbed84
    • Brian Gesiak's avatar
      [CMake] Fix typo "Wraning" (NFC) · 16b86e7d
      Brian Gesiak authored
      Summary:
      The typo was added in https://reviews.llvm.org/rL247151.
      It should be "warning", not "wraning".
      
      llvm-svn: 314486
      16b86e7d
  14. Sep 27, 2017
    • Brian Gesiak's avatar
      [CMake] Fix typo: "in-tree" -> "in-source" (NFC) · 88f2aa12
      Brian Gesiak authored
      Summary:
      *In-source builds* of LLVM, in which a user invokes `cmake` from within the
      LLVM source directory, or invokes `cmake -B/path/to/source/dir/of/llvm`,
      are explicitly checked for and disallowed by LLVM's `CMakeLists.txt`.
      
      *In-tree builds*, on the other hand, refer to when the source directories
      of projects such as Clang are nested within the `llvm/tools` source
      directory. These are not disallowed, and are in fact a common way of
      building LLVM and Clang.
      
      Revise the comment to match the logic underneath it: it checks for an
      "in-source build", not an "in-tree build".
      
      Reviewers: beanz
      
      Reviewed By: beanz
      
      Subscribers: mgorny
      
      Differential Revision: https://reviews.llvm.org/D38317
      
      llvm-svn: 314348
      88f2aa12
    • Don Hinton's avatar
      Cleanup some problems with LLVM_ENABLE_DUMP in release builds, and · 53eb6371
      Don Hinton authored
      always set LLVM_ENABLE_DUMP=ON for +Asserts builds.
      
      Differential Revision: https://reviews.llvm.org/D38306
      
      llvm-svn: 314346
      53eb6371
  15. Sep 26, 2017
  16. Sep 20, 2017
  17. Sep 16, 2017
    • Zachary Turner's avatar
      Resubmit "[lit] Force site configs to run before source-tree configs" · ce92db13
      Zachary Turner authored
      This is a resubmission of r313270.  It broke standalone builds of
      compiler-rt because we were not correctly generating the llvm-lit
      script in the standalone build directory.
      
      The fixes incorporated here attempt to find llvm/utils/llvm-lit
      from the source tree returned by llvm-config.  If present, it
      will generate llvm-lit into the output directory.  Regardless,
      the user can specify -DLLVM_EXTERNAL_LIT to point to a specific
      lit.py on their file system.  This supports the use case of
      someone installing lit via a package manager.  If it cannot find
      a source tree, and -DLLVM_EXTERNAL_LIT is either unspecified or
      invalid, then we print a warning that tests will not be able
      to run.
      
      Differential Revision: https://reviews.llvm.org/D37756
      
      llvm-svn: 313407
      ce92db13
  18. Sep 15, 2017
  19. Sep 14, 2017
    • Zachary Turner's avatar
      [lit] Force site configs to be run before source-tree configs · a0e55b64
      Zachary Turner authored
      This patch simplifies LLVM's lit infrastructure by enforcing an ordering
      that a site config is always run before a source-tree config.
      
      A significant amount of the complexity from lit config files arises from
      the fact that inside of a source-tree config file, we don't yet know if
      the site config has been run.  However it is *always* required to run
      a site config first, because it passes various variables down through
      CMake that the main config depends on.  As a result, every config
      file has to do a bunch of magic to try to reverse-engineer the location
      of the site config file if they detect (heuristically) that the site
      config file has not yet been run.
      
      This patch solves the problem by emitting a mapping from source tree
      config file to binary tree site config file in llvm-lit.py. Then, during
      discovery when we find a config file, we check to see if we have a
      target mapping for it, and if so we use that instead.
      
      This mechanism is generic enough that it does not affect external users
      of lit. They will just not have a config mapping defined, and everything
      will work as normal.
      
      On the other hand, for us it allows us to make many simplifications:
      
      * We are guaranteed that a site config will be executed first
      * Inside of a main config, we no longer have to assume that attributes
        might not be present and use getattr everywhere.
      * We no longer have to pass parameters such as --param llvm_site_config=<path>
        on the command line.
      * It is future-proof, meaning you don't have to edit llvm-lit.in to add
        support for new projects.
      * All of the duplicated logic of trying various fallback mechanisms of
        finding a site config from the main config are now gone.
      
      One potentially noteworthy thing that was required to implement this
      change is that whereas the ninja check targets previously used the first
      method to spawn lit, they now use the second. In particular, you can no
      longer run lit.py against the source tree while specifying the various
      `foo_site_config=<path>` parameters.  Instead, you need to run
      llvm-lit.py.
      
      Differential Revision: https://reviews.llvm.org/D37756
      
      llvm-svn: 313270
      a0e55b64
  20. Sep 13, 2017
    • Zachary Turner's avatar
      Revert "Determine up front which projects are enabled." · 1929ffd4
      Zachary Turner authored
      This was intended to be a generic CMake solution to a problem
      shared across several projects.  It turns out it doesn't interact
      very well certain CMake configurations, and furthermore the
      "problem" is actually not a problem, as the problematic code
      is never executed to begin with.  So this really isn't solving
      anything.
      
      llvm-svn: 313191
      1929ffd4
    • Zachary Turner's avatar
      Determine up front which projects are enabled. · c7fc9394
      Zachary Turner authored
      Some projects need to add conditional dependencies on other projects.
      compiler-rt is already doing this, and I attempted to add this to
      debuginfo-tests when I ran into the ordering problem, that you can't
      conditionally add a dependency unless that dependency's CMakeLists.txt
      has already been run (which would allow you to say if (TARGET foo).
      
      The solution to this seems to be to determine very early on the entire
      set of projects which is enabled. This is complicated by the fact that
      there are multiple ways to enable projects, and different tree layouts
      (e.g. mono-repo, out of -tree, external, etc). This patch attempts to
      centralize all of this into one place, and then updates compiler-rt to
      demonstrate as a proof of concept how this can simplify code.
      
      Differential Revision: https://reviews.llvm.org/D37637
      
      llvm-svn: 313091
      c7fc9394
  21. Aug 29, 2017
    • Reid Kleckner's avatar
      [cmake] Stop putting the revision info in LLVM_VERSION_STRING · b8ae2b13
      Reid Kleckner authored
      Summary:
      This reduces the number of build actions after a no-op commit from
      thousands to about six, which should be acceptable. If six actions is
      still too many, developers can disable the LLVM_APPEND_VC_REV cmake
      option.
      
      llvm-config.h is a widely included header that should rarely change.
      Before this patch, it would change after every re-configure. Very few
      users of llvm-config.h need to know the precise version, and those that
      do can migrate to incorporating LLVM_REVISION as provided by
      llvm/Support/VCSRevision.h.
      
      This should bring LLVM back to the behavior that it had before r306858
      from June 30 2017. Most LLVM tools will now print a version string like
      "6.0.0svn" instead of "6.0.0-git-c40c2a23de4".
      
      Fixes PR34308
      
      Reviewers: pcc, rafael, hans
      
      Subscribers: mgorny, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D37272
      
      llvm-svn: 312043
      b8ae2b13
  22. Aug 13, 2017
  23. Aug 03, 2017
  24. Aug 02, 2017
  25. Jul 31, 2017
    • Reid Kleckner's avatar
      [lit] Avoid copying llvm/utils/lit/tests/Inputs with lit site configs · 1b4e9ae3
      Reid Kleckner authored
      Summary:
      This is an alternative solution to running the lit test suite on bots
      without polluting the source directory. Each input test suite gets an
      auto-generated site config in the build directory that points back to
      the test input source directory.
      
      This adds some cmake comlexity, but now we don't need to remove and
      re-copy the test input directory before every test.
      
      Reviewers: delcypher, modocache
      
      Subscribers: mgorny, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D36026
      
      llvm-svn: 309602
      1b4e9ae3
  26. Jul 27, 2017
  27. Jul 23, 2017
  28. Jul 20, 2017
  29. Jul 19, 2017
Loading