Skip to content
  1. Jan 18, 2019
    • Nico Weber's avatar
      mac: Correctly disable tools/lto tests when building with LLVM_ENABLE_PIC=OFF · 71ac58e3
      Nico Weber authored
      llvm/tools sets LLVM_TOOL_LTO_BUILD to Off if LLVM_ENABLE_PIC=OFF, but that's
      not visible in llvm/test.
      
      r289662 added the llvm_tool_lto_build lit parameter, there the intent was to
      use it with an explicit -DLLVM_TOOL_LTO_BUILD=OFF, which is visible globally.
      On the review for that (D27739), a mild preference was expressed for using a
      lit parameter over checking the existence of libLTO.dylib. Since that works
      with the LLVM_ENABLE_PIC=OFF case too and since it matches what we do for the
      gold plugin, switch to that approach.
      
      Differential Revision: https://reviews.llvm.org/D56805
      
      llvm-svn: 351515
      71ac58e3
  2. Jan 03, 2019
  3. Dec 12, 2018
  4. Sep 26, 2018
    • Lang Hames's avatar
      Reapply r343058 with a fix for -DLLVM_ENABLE_THREADS=OFF. · f0a3fd88
      Lang Hames authored
      Modifies lit to add a 'thread_support' feature that can be used in lit test
      REQUIRES clauses. The thread_support flag is set if -DLLVM_ENABLE_THREADS=ON
      and unset if -DLLVM_ENABLE_THREADS=OFF. The lit flag is used to disable the
      multiple-compile-threads-basic.ll testcase when threading is disabled.
      
      llvm-svn: 343122
      f0a3fd88
  5. Sep 25, 2018
  6. Aug 09, 2018
  7. Jul 20, 2018
  8. Jun 20, 2018
  9. May 07, 2018
  10. Apr 13, 2018
  11. Apr 03, 2018
  12. Mar 18, 2018
  13. Mar 08, 2018
  14. Jan 08, 2018
  15. Nov 29, 2017
  16. Nov 28, 2017
  17. Nov 27, 2017
  18. Nov 15, 2017
  19. Nov 04, 2017
  20. Nov 03, 2017
    • Jake Ehrlich's avatar
      Add feature to determine if host architecture is 64-bit in llvm-lit · 6fe84be9
      Jake Ehrlich authored
      I have a test that I'd like to add to llvm that demands using more than
      32-bits worth of address space. This test can't be run on 32-bit systems
      because they don't have enough address space. The host triple should be
      used to determine this instead of config.host_arch because on Debian
      systems config.host_arch is not correct. This change adds the
      "host-arch-is-64bit" feature to allow tests to restrict themselves to
      the 64-bit case.
      
      Differential Revision: https://reviews.llvm.org/D39465
      
      llvm-svn: 317281
      6fe84be9
  21. Oct 18, 2017
  22. Oct 06, 2017
    • Zachary Turner's avatar
      [lit] Improve tool substitution in lit. · 96b04b68
      Zachary Turner authored
      This addresses two sources of inconsistency in test configuration
      files.
      
      1. Substitution boundaries.  Previously you would specify a
         substitution, such as 'lli', and then additionally a set
         of characters that should fail to match before and after
         the tool.  This was used, for example, so that matches that
         are parts of full paths would not be replaced.  But not all
         tools did this, and those that did would often re-invent
         the set of characters themselves, leading to inconsistency.
         Now, every tool substitution defaults to using a sane set
         of reasonable defaults and you have to explicitly opt out
         of it.  This actually fixed a few latent bugs that were
         never being surfaced, but only on accident.
      
      2. There was no standard way for the system to decide how to
         locate a tool.  Sometimes you have an explicit path, sometimes
         we would search for it and build up a path ourselves, and
         sometimes we would build up a full command line.  Furthermore,
         there was no standardized way to handle missing tools.  Do we
         warn, fail, ignore, etc?  All of this is now encapsulated in
         the ToolSubst class.  You either specify an exact command to
         run, or an instance of FindTool('<tool-name>') and everything
         else just works.  Furthermore, you can specify an action to
         take if the tool cannot be resolved.
      
      Differential Revision: https://reviews.llvm.org/D38565
      
      llvm-svn: 315085
      96b04b68
    • Zachary Turner's avatar
      Run pyformat on lit code. · c9814480
      Zachary Turner authored
      llvm-svn: 315084
      c9814480
  23. Sep 22, 2017
  24. Sep 21, 2017
    • Zachary Turner's avatar
      Revert "[lit] Refactor out some more common lit configuration code." · 5f2fd9b7
      Zachary Turner authored
      This is breaking several bots.  I have enough information to
      investigate, so I'm reverting to green until I get it figured
      out.
      
      llvm-svn: 313922
      5f2fd9b7
    • Zachary Turner's avatar
      [lit] Refactor out some more common lit configuration code. · 0d36b657
      Zachary Turner authored
      debuginfo-tests has need to reuse a lot of common configuration
      from clang and lld, and in general it seems like all of the
      projects which are tightly coupled (e.g. lld, clang, llvm, lldb,
      etc) can benefit from knowing about one other.  For example,
      lldb needs to know various things about how to run clang in its
      test suite.  Since there's a lot of common substitutions and
      operations that need to be shared among projects, sinking this
      up into LLVM makes sense.
      
      In addition, this patch introduces a function add_tool_substitution
      which handles all the dirty intricacies of matching tool names
      which was previously copied around the various config files.  This
      is now a simple straightforward interface which is hard to mess
      up.
      
      Differential Revision: https://reviews.llvm.org/D37944
      
      llvm-svn: 313919
      0d36b657
    • Zachary Turner's avatar
      [lit] Make lit support config files with .py extension. · 957d6115
      Zachary Turner authored
      Many editors and Python-related diagnostics tools such as
      debuggers break or fail in mysterious ways when python files
      don't end in .py.  This is especially true on Windows, but
      still exists on other platforms.  I don't want to be too heavy
      handed in changing everything across the board, but I do want
      to at least *allow* lit configs to have .py extensions.  This
      patch makes the discovery process first look for a config file
      with a .py extension, and if one is not found, then looks for
      a config file using the old method.  So for existing users, there
      should be no functional change.
      
      Differential Revision: https://reviews.llvm.org/D37838
      
      llvm-svn: 313849
      957d6115
  25. Sep 19, 2017
  26. Sep 16, 2017
  27. Sep 15, 2017
  28. 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
Loading