summaryrefslogtreecommitdiffstats
path: root/llvm/test/lit.cfg.py
Commit message (Collapse)AuthorAgeFilesLines
* Fix several issues with compiler extensionsserge-sans-paille2020-01-101-2/+2
| | | | | | | | | | | | | | | | - Update documentation now that the move to monorepo has been made - Do not tie compiler extension testing to LLVM_BUILD_EXAMPLES - No need to specify LLVM libraries for plugins - Add NO_MODULE option to match Polly specific requirements (i.e. building the module *and* linking it statically) - Issue a warning when building the compiler extension with LLVM_BYE_LINK_INTO_TOOLS=ON, as it modifies the behavior of clang, which only makes sense for testing purpose. Still mark llvm/test/Feature/load_extension.ll as XFAIL because of a ManagedStatic dependency that's going to be fixed in a seperate commit. Differential Revision: https://reviews.llvm.org/D72327
* Generalize the pass registration mechanism used by Polly to any third-party toolserge_sans_paille2020-01-021-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | There's quite a lot of references to Polly in the LLVM CMake codebase. However the registration pattern used by Polly could be useful to other external projects: thanks to that mechanism it would be possible to develop LLVM extension without touching the LLVM code base. This patch has two effects: 1. Remove all code specific to Polly in the llvm/clang codebase, replaicing it with a generic mechanism 2. Provide a generic mechanism to register compiler extensions. A compiler extension is similar to a pass plugin, with the notable difference that the compiler extension can be configured to be built dynamically (like plugins) or statically (like regular passes). As a result, people willing to add extra passes to clang/opt can do it using a separate code repo, but still have their pass be linked in clang/opt as built-in passes. Differential Revision: https://reviews.llvm.org/D61446
* Introduce llvm-install-name-toolAlexander Shaposhnikov2019-11-191-1/+3
| | | | | | | | | | This diff adds a new "driver" for llvm-objcopy which is supposed to emulate the behavior of install-name-tool. This is a recommit of b5913e6 with ubsan, test dependencies issues fixed. Differential revision: https://reviews.llvm.org/D69146 Test plan: make check-all
* Reland "[utils] Implement the llvm-locstats tool"Djordje Todorovic2019-10-021-0/+5
| | | | | | | | | | | | | | | | | | The tool reports verbose output for the DWARF debug location coverage. The llvm-locstats for each variable or formal parameter DIE computes what percentage from the code section bytes, where it is in scope, it has location description. The line 0 shows the number (and the percentage) of DIEs with no location information, but the line 100 shows the number (and the percentage) of DIEs where there is location information in all code section bytes (where the variable or parameter is in the scope). The line 50..59 shows the number (and the percentage) of DIEs where the location information is in between 50 and 59 percentage of its scope covered. Differential Revision: https://reviews.llvm.org/D66526 The cause of the test failure was resolved. llvm-svn: 373427
* Revert "Reland "[utils] Implement the llvm-locstats tool""Djordje Todorovic2019-10-011-5/+0
| | | | | | | This reverts commit rL373317 due to test failure on the clang-s390x-linux build bot. llvm-svn: 373336
* Reland "[utils] Implement the llvm-locstats tool"Djordje Todorovic2019-10-011-0/+5
| | | | | | | | | | | | | | | | The tool reports verbose output for the DWARF debug location coverage. The llvm-locstats for each variable or formal parameter DIE computes what percentage from the code section bytes, where it is in scope, it has location description. The line 0 shows the number (and the percentage) of DIEs with no location information, but the line 100 shows the number (and the percentage) of DIEs where there is location information in all code section bytes (where the variable or parameter is in the scope). The line 50..59 shows the number (and the percentage) of DIEs where the location information is in between 50 and 59 percentage of its scope covered. Differential Revision: https://reviews.llvm.org/D66526 llvm-svn: 373317
* Revert "Reland "[utils] Implement the llvm-locstats tool""Djordje Todorovic2019-09-301-5/+0
| | | | | | This reverts commit rL373183. llvm-svn: 373200
* Reland "[utils] Implement the llvm-locstats tool"Djordje Todorovic2019-09-301-0/+5
| | | | | | | | | | | | | | | | The tool reports verbose output for the DWARF debug location coverage. The llvm-locstats for each variable or formal parameter DIE computes what percentage from the code section bytes, where it is in scope, it has location description. The line 0 shows the number (and the percentage) of DIEs with no location information, but the line 100 shows the number (and the percentage) of DIEs where there is location information in all code section bytes (where the variable or parameter is in the scope). The line 50..59 shows the number (and the percentage) of DIEs where the location information is in between 50 and 59 percentage of its scope covered. Differential Revision: https://reviews.llvm.org/D66526 llvm-svn: 373183
* Revert "Reland "[utils] Implement the llvm-locstats tool""Djordje Todorovic2019-09-231-3/+0
| | | | | | This reverts commit rL372554. llvm-svn: 372580
* Reland "[utils] Implement the llvm-locstats tool"Djordje Todorovic2019-09-231-0/+3
| | | | | | | | | | | | | | | | The tool reports verbose output for the DWARF debug location coverage. The llvm-locstats for each variable or formal parameter DIE computes what percentage from the code section bytes, where it is in scope, it has location description. The line 0 shows the number (and the percentage) of DIEs with no location information, but the line 100 shows the number (and the percentage) of DIEs where there is location information in all code section bytes (where the variable or parameter is in the scope). The line 50..59 shows the number (and the percentage) of DIEs where the location information is in between 50 and 59 percentage of its scope covered. Differential Revision: https://reviews.llvm.org/D66526 llvm-svn: 372554
* [llvm-ifs][IFS] llvm Interface Stubs merging + object file generation tool.Puyan Lotfi2019-08-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | This tool merges interface stub files to produce a merged interface stub file or a stub library. Currently it for stub library generation it can produce an ELF .so stub file, or a TBD file (experimental). It will be used by the clang -emit-interface-stubs compilation pipeline to merge and assemble the per-CU stub files into a stub library. The new IFS format is as follows: --- !experimental-ifs-v1 IfsVersion: 1.0 Triple: <llvm triple> ObjectFileFormat: <ELF | TBD> Symbols: _ZSymbolName: { Type: <type>, etc... } ... Differential Revision: https://reviews.llvm.org/D66405 llvm-svn: 370499
* [Bugpoint] Only run plugins tests if plugins are enabledPetr Hosek2019-05-171-8/+2
| | | | | | | | This is a followup to r360991 which applies the same logic to LLVM. Differential Revision: https://reviews.llvm.org/D62050 llvm-svn: 360993
* Replace lit feature keyword 'not_COFF' with 'uses_COFF'.Paul Robinson2019-05-141-3/+5
| | | | | | Differential Revision: https://reviews.llvm.org/D61791 llvm-svn: 360680
* [lit][tests]Add feature libcxx-used and use it in llvm-*-fuzzer testsXing Xue2019-05-141-0/+3
| | | | | | | | | | | | | | | | When a LLVM binary such as llvm-*-fuzzer is built with libc++, it has dependency on libc++. The path to find shared libraries specified in llvm-*-fuzzer is relative. As a result, these binaries cannot be copied to an arbitrary directory and launched from there. Changes in this patch add a LIT feature to indicate that libc++ is used to build and, based on the feature exclude test cases that test by copying llvm-*-fuzzer binaries to a directory. Reviewers: hubert.reinterpretcast, dberris, amyk, jasonliu, EricWF Reviewed By: hubert.reinterpretcast, amyk Subscribers: javed.absar, jsji, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D61265 llvm-svn: 360672
* [tests] Add host-byteorder-*-endian; update XFAILs of big-endian triplesHubert Tong2019-05-011-0/+2
| | | | | | | | | | | | | | | | | | | | Summary: Triple components in `XFAIL` lines are tested against the target triple. Various tests that are expected to fail on big-endian hosts are marked as being `XFAIL` for big-endian targets. This patch corrects these tests by having them test against a new `host-byteorder-big-endian` feature. Reviewers: xingxue, sfertile, jasonliu Reviewed By: xingxue Subscribers: jvesely, nhaehnle, fedor.sergeev, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D60551 llvm-svn: 359689
* [JITLink] Add llvm-jitlink to the list of available tools in lit.Lang Hames2019-04-201-8/+8
| | | | | | | Should fix the 'llvm-jitlink command not found' errors that are appearing on some builders. llvm-svn: 358828
* Fix llvm-rc tests.Evgeniy Stepanov2019-03-271-1/+1
| | | | | | | | | | | | | | | | | | Summary: Follow-up for D56743. * Add more "--" in llvm-rc invocations. * Add llvm-rc to the tools list. This uses full path to llvm-rc in test RUN lines (llvm-lit -v), making them copy-pasteable. Reviewers: mstorsjo, zturner Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D59858 llvm-svn: 357118
* Use llvm_canonicalize_cmake_booleans for LLVM_LIBXML2_ENABLED [llvm]Nico Weber2019-01-191-1/+1
| | | | | | | | | | | | | | | r291284 added a nice mechanism to consistently pass CMake on/off toggles to lit. This change uses it for LLVM_LIBXML2_ENABLED too (which was added around the same time and doesn't use the new system yet). Also alphabetically sort the list passed to llvm_canonicalize_cmake_booleans() in llvm/test/CMakeLists.txt. No intended behavior change. Differential Revision: https://reviews.llvm.org/D56912 llvm-svn: 351615
* mac: Correctly disable tools/lto tests when building with LLVM_ENABLE_PIC=OFFNico Weber2019-01-181-1/+4
| | | | | | | | | | | | | | | | 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
* Remove unused %host_cc lit patternNico Weber2019-01-031-1/+0
| | | | | | | | | It was added in r257236 but then the one use was removed in r309517. Since no test should call %host_cc, remove the pattern. Differential Revision: https://reviews.llvm.org/D56200 llvm-svn: 350348
* [lit]Add llvm-readelf to tool substitutionsJames Henderson2018-12-121-5/+5
| | | | | | | | Reviewed by: rnk, alexsahp Differential Revision: https://reviews.llvm.org/D55564 llvm-svn: 348921
* Reapply r343058 with a fix for -DLLVM_ENABLE_THREADS=OFF.Lang Hames2018-09-261-0/+3
| | | | | | | | | 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
* [llvm-exegesis] Add lit tests (v2).Clement Courbet2018-09-251-10/+11
| | | | | | | | | | | | Summary: This revisits rL342953 by adding detection of host support. Reviewers: gchatelet, lebedev.ri, alexshap Subscribers: mgorny, tschuett, llvm-commits Differential Revision: https://reviews.llvm.org/D52464 llvm-svn: 342975
* Revert rL342953 "[llvm-exegesis] Add lit tests."Clement Courbet2018-09-251-11/+10
| | | | | | We also need to make sure that we're on the right subtarget. llvm-svn: 342955
* [llvm-exegesis] Add lit tests.Clement Courbet2018-09-251-10/+11
| | | | | | | | | | | | | | | Summary: Right now we only have unit tests. This will allow testing the whole tool. Even though We can't really check actual values, this will avoid regressions such as PR39055. Reviewers: gchatelet, alexshap Subscribers: mgorny, tschuett, llvm-commits Differential Revision: https://reviews.llvm.org/D52407 llvm-svn: 342953
* [CMake] Use normalized Windows target triplesPetr Hosek2018-08-091-5/+5
| | | | | | | | | | | Changes the default Windows target triple returned by GetHostTriple.cmake from the old environment names (which we wanted to move away from) to newer, normalized ones. This also requires updating all tests to use the new systems names in constraints. Differential Revision: https://reviews.llvm.org/D47381 llvm-svn: 339307
* And add a lit substitution for llvm-undname, as the comment says toReid Kleckner2018-07-201-1/+1
| | | | llvm-svn: 337600
* [LIT] Enable testing of LLVM gold plugin on Mac OS XEugene Leviant2018-06-201-1/+1
| | | | | | Differential revision: https://reviews.llvm.org/D48350 llvm-svn: 335136
* [tools] Adjust the lit config for llvm-stripAlexander Shaposhnikov2018-05-071-1/+2
| | | | | | Caught by the build bots. llvm-svn: 331676
* Enable debug fission for thinLTO linked via gold-pluginYunlian Jiang2018-04-131-0/+1
| | | | | | | | | | | | | | Summary: This enables debug fission on implicit ThinLTO when linked with gold. It will put the .dwo files in a directory specified by user. Reviewers: tejohnson, pcc, dblaikie Reviewed By: pcc Subscribers: JDevlieghere, mehdi_amini, inglorion Differential Revision: https://reviews.llvm.org/D44792 llvm-svn: 329988
* Remove llvm-mcmarkup.Eric Christopher2018-04-021-1/+1
| | | | | | It was never used and I've checked with the original authors. llvm-svn: 329029
* [dsymutil] Rename llvm-dsymutil -> dsymutilJonas Devlieghere2018-03-181-2/+2
| | | | | | | | | | | Now that almost all functionality of Apple's dsymutil has been upstreamed, the open source variant can be used as a drop in replacement. Hence we feel it's no longer necessary to have the llvm prefix. Differential revision: https://reviews.llvm.org/D44527 llvm-svn: 327790
* [CMake] Add missing test dependencyDavid Zarzycki2018-03-081-1/+1
| | | | | | This makes 'ninja clean ; ninja check-all' work again. llvm-svn: 327002
* Don't try to run MCJIT/OrcJIT EH tests when C++ library is statically linkedPetr Hosek2018-01-081-0/+30
| | | | | | | | | | | | | These tests assumes availability of external symbols provided by the C++ library, but those won't be available in case when the C++ library is statically linked because lli itself doesn't need these. This uses llvm-readobj -needed-libs to check if C++ library is linked as shared library and exposes that information as a feature to lit. Differential Revision: https://reviews.llvm.org/D41272 llvm-svn: 321981
* Add opt-viewer testingAdam Nemet2017-11-291-0/+5
| | | | | | | | | | | | | | | | | | | | Detects whether we have the Python modules (pygments, yaml) required by opt-viewer and hooks this up to REQUIRES. This fixes https://bugs.llvm.org/show_bug.cgi?id=34129 (the lack of opt-viewer testing). It's also related to https://github.com/apple/swift/pull/12938 and the idea is to expose LLVM_HAVE_OPT_VIEWER_MODULES to the Swift cmake. Differential Revision: https://reviews.llvm.org/D40202 Fixes since the first commit: 1. Disable syntax highlighting as different versions of pygments generate different HTML 2. Use llvm-cxxfilt from the build llvm-svn: 319324
* Revert "Add opt-viewer testing"Adam Nemet2017-11-291-5/+0
| | | | | | | | This reverts commit r319188. Breaks when c++filt is not available. llvm-svn: 319262
* Add opt-viewer testingAdam Nemet2017-11-281-0/+5
| | | | | | | | | | | | | | | Detects whether we have the Python modules (pygments, yaml) required by opt-viewer and hooks this up to REQUIRES. This fixes https://bugs.llvm.org/show_bug.cgi?id=34129 (the lack of opt-viewer testing). It's also related to https://github.com/apple/swift/pull/12938 and the idea is to expose LLVM_HAVE_OPT_VIEWER_MODULES to the Swift cmake. Differential Revision: https://reviews.llvm.org/D40202 llvm-svn: 319188
* Revert "Add opt-viewer testing"Adam Nemet2017-11-281-5/+0
| | | | | | | | This reverts commit r319073. Bot fails with a mismatch that looks like pygments-generated HTML. llvm-svn: 319146
* Add opt-viewer testingAdam Nemet2017-11-271-0/+5
| | | | | | | | | | | | | | | Detects whether we have the Python modules (pygments, yaml) required by opt-viewer and hooks this up to REQUIRES. This fixes https://bugs.llvm.org/show_bug.cgi?id=34129 (the lack of opt-viewer testing). It's also related to https://github.com/apple/swift/pull/12938 and the idea is to expose LLVM_HAVE_OPT_VIEWER_MODULES to the Swift cmake. Differential Revision: https://reviews.llvm.org/D40202 llvm-svn: 319073
* [llvm-opt-fuzzer] NFC. Add sanity tests.Igor Laevsky2017-11-151-1/+1
| | | | llvm-svn: 318293
* llvm/test/lit.cfg.py: Don't set the feature "llvm-64-bits" if -m32 is specified.NAKAMURA Takumi2017-11-041-1/+2
| | | | | FIXME: LLVM_BUILD_32_BITS should modify host_triple. llvm-svn: 317404
* Add feature to determine if host architecture is 64-bit in llvm-litJake Ehrlich2017-11-021-0/+3
| | | | | | | | | | | | | | 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
* Don't set static-libs test feature when using LLVM_LINK_LLVM_DYLIBSam Clegg2017-10-181-1/+1
| | | | | | | | | This was causing execname-options.ll to fail on the wasm waterfall. Differential Revision: https://reviews.llvm.org/D39022 llvm-svn: 316123
* [lit] Improve tool substitution in lit.Zachary Turner2017-10-061-67/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Run pyformat on lit code.Zachary Turner2017-10-061-45/+58
| | | | llvm-svn: 315084
* Resubmit "[lit] Refactor out some more common lit configuration code."Zachary Turner2017-09-211-98/+30
| | | | | | | | There were two issues, one Python 3 specific related to Unicode, and another which is that the tool substitution for lld no longer rejected matches where a / preceded the tool name. llvm-svn: 313928
* Revert "[lit] Refactor out some more common lit configuration code."Zachary Turner2017-09-211-30/+98
| | | | | | | | 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
* [lit] Refactor out some more common lit configuration code.Zachary Turner2017-09-211-98/+30
| | | | | | | | | | | | | | | | | | | | | 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
* [lit] Make lit support config files with .py extension.Zachary Turner2017-09-211-0/+354
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
OpenPOWER on IntegriCloud