summaryrefslogtreecommitdiffstats
path: root/llvm/utils
Commit message (Collapse)AuthorAgeFilesLines
* [lit] Try yet again to fix new tests that fail on Windows botsJoel E. Denny2019-10-121-0/+3
| | | | | | | | | | | | | | | | | | | | | I seem to have misread the bot logs on my last attempt. When lit's internal diff runs on Windows under Python 2.7, it's text diffs not binary diffs that need decoding to avoid this error when writing the diff to stdout: ``` UnicodeEncodeError: 'ascii' codec can't encode characters in position 7-8: ordinal not in range(128) ``` There is no `decode` attribute in this case under Python 3.6.8 under Ubuntu, so this patch checks for the `decode` attribute before using it here. Hopefully nothing else is needed when `decode` isn't available. It might take a couple more attempts to figure out what error handling, if any, is needed for this decoding. llvm-svn: 374665
* Revert r374657: "[lit] Try again to fix new tests that fail on Windows bots"Joel E. Denny2019-10-122-7/+6
| | | | llvm-svn: 374664
* [lit] Try again to fix new tests that fail on Windows botsJoel E. Denny2019-10-122-6/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Based on the bot logs, when lit's internal diff runs on Windows, it looks like binary diffs must be decoded also for Python 2.7. Otherwise, writing the diff to stdout fails with: ``` UnicodeEncodeError: 'ascii' codec can't encode characters in position 7-8: ordinal not in range(128) ``` I did not need to decode using Python 2.7.15 under Ubuntu. When I do it anyway in that case, `errors="backslashreplace"` fails for me: ``` TypeError: don't know how to handle UnicodeDecodeError in error callback ``` However, `errors="ignore"` works, so this patch uses that, hoping it'll work on Windows as well. This patch leaves `errors="backslashreplace"` for Python >= 3.5 as there's no evidence yet that doesn't work and it produces more informative binary diffs. This patch also adjusts some lit tests to succeed for either error handler. This patch adjusts changes introduced by D68664. llvm-svn: 374657
* Revert r374654: "[lit] Try to fix new tests that fail on Windows bots"Joel E. Denny2019-10-121-20/+20
| | | | llvm-svn: 374656
* [lit] Try to fix new tests that fail on Windows botsJoel E. Denny2019-10-121-20/+20
| | | | llvm-svn: 374654
* [lit] Fix a few oversights in r374651 that broke some botsJoel E. Denny2019-10-121-1/+1
| | | | llvm-svn: 374653
* [lit] Fix internal diff's --strip-trailing-cr and use itJoel E. Denny2019-10-126-4/+73
| | | | | | | | | | | | | | | | | | | | | | | | | Using GNU diff, `--strip-trailing-cr` removes a `\r` appearing before a `\n` at the end of a line. Without this patch, lit's internal diff only removes `\r` if it appears as the last character. That seems useless. This patch fixes that. This patch also adds `--strip-trailing-cr` to some tests that fail on Windows bots when D68664 is applied. Based on what I see in the bot logs, I think the following is happening. In each test there, lit diff is comparing a file with `\r\n` line endings to a file with `\n` line endings. Without D68664, lit diff reads those files with Python's universal newlines support activated, causing `\r` to be dropped. However, with D68664, lit diff reads the files in binary mode instead and thus reports that every line is different, just as GNU diff does (at least under Ubuntu). Adding `--strip-trailing-cr` to those tests restores the previous behavior while permitting the behavior of lit diff to be more like GNU diff. Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D68839 llvm-svn: 374652
* Reland r374392: [lit] Extend internal diff to support -UJoel E. Denny2019-10-124-6/+136
| | | | | | | | | | To avoid breaking some tests, D66574, D68664, D67643, and D68668 landed together. However, D68664 introduced an issue now addressed by D68839, with which these are now all relanding. Differential Revision: https://reviews.llvm.org/D68668 llvm-svn: 374651
* Reland r374390: [lit] Extend internal diff to support `-` argumentJoel E. Denny2019-10-127-5/+146
| | | | | | | | | | To avoid breaking some tests, D66574, D68664, D67643, and D68668 landed together. However, D68664 introduced an issue now addressed by D68839, with which these are now all relanding. Differential Revision: https://reviews.llvm.org/D67643 llvm-svn: 374650
* Reland r374389: [lit] Clean up internal diff's encoding handlingJoel E. Denny2019-10-127-33/+86
| | | | | | | | | | To avoid breaking some tests, D66574, D68664, D67643, and D68668 landed together. However, D68664 introduced an issue now addressed by D68839, with which these are now all relanding. Differential Revision: https://reviews.llvm.org/D68664 llvm-svn: 374649
* Reland r374388: [lit] Make internal diff work in pipelinesJoel E. Denny2019-10-125-241/+276
| | | | | | | | | | To avoid breaking some tests, D66574, D68664, D67643, and D68668 landed together. However, D68664 introduced an issue now addressed by D68839, with which these are now all relanding. Differential Revision: https://reviews.llvm.org/D66574 llvm-svn: 374648
* [lit] Remove setting of the target-windows featureMartin Storsjo2019-10-121-2/+0
| | | | | | | | | No other OSes use a target-<os> feature, and no tests depend on it any lomger. Differential Revision: https://reviews.llvm.org/D68450 llvm-svn: 374639
* gn build: (manually) merge r374606 betterNico Weber2019-10-111-2/+5
| | | | llvm-svn: 374611
* gn build: Merge r235758GN Sync Bot2019-10-111-0/+1
| | | | llvm-svn: 374610
* gn build: Cmanually) merge r374590Nico Weber2019-10-114-7/+58
| | | | llvm-svn: 374608
* [lit] Small cleanups in main.pyJulian Lettner2019-10-111-25/+25
| | | | | | | | | | | | * Extract separate function for running tests from main * Push single-usage imports to point of usage * Remove unnecessary sys.exit(0) calls Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D68836 llvm-svn: 374602
* [lit] Change regex filter to ignore caseJulian Lettner2019-10-113-22/+17
| | | | | | | | | | | Make regex filter `--filter=REGEX` option more lenient via `re.IGNORECASE`. Reviewed By: yln Differential Revision: https://reviews.llvm.org/D68834 llvm-svn: 374601
* gn build: (manually) merge r374110Nico Weber2019-10-111-0/+1
| | | | llvm-svn: 374575
* gn build: Merge r374558GN Sync Bot2019-10-111-0/+1
| | | | llvm-svn: 374560
* [FileCheck] Implement --ignore-case option.Kai Nacke2019-10-111-0/+5
| | | | | | | | | | | | The FileCheck utility is enhanced to support a `--ignore-case` option. This is useful in cases where the output of Unix tools differs in case (e.g. case not specified by Posix). Reviewers: Bigcheese, jakehehrlich, rupprecht, espindola, alexshap, jhenderson, MaskRay Differential Revision: https://reviews.llvm.org/D68146 llvm-svn: 374538
* [TableGen] Fix a bug that MCSchedClassDesc is interfered between different ↵QingShan Zhang2019-10-111-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SchedModel Assume that, ModelA has scheduling resource for InstA and ModelB has scheduling resource for InstB. This is what the llvm::MCSchedClassDesc looks like: llvm::MCSchedClassDesc ModelASchedClasses[] = { ... InstA, 0, ... InstB, -1,... }; llvm::MCSchedClassDesc ModelBSchedClasses[] = { ... InstA, -1,... InstB, 0,... }; The -1 means invalid num of macro ops, while it is valid if it is >=0. This is what we look like now: llvm::MCSchedClassDesc ModelASchedClasses[] = { ... InstA, 0, ... InstB, 0,... }; llvm::MCSchedClassDesc ModelBSchedClasses[] = { ... InstA, 0,... InstB, 0,... }; And compiler hit the assertion here because the SCDesc is valid now for both InstA and InstB. Differential Revision: https://reviews.llvm.org/D67950 llvm-svn: 374524
* gn build: Merge r374476GN Sync Bot2019-10-101-0/+1
| | | | llvm-svn: 374482
* [lit] Break main into smaller functionsJulian Lettner2019-10-101-181/+199
| | | | | | | | | | | This change is purely mechanical. I will do further cleanups of parameter usages. Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D68830 llvm-svn: 374452
* [lit] Add comment explaining the LIT_OPTS env var overrides command line optionsJulian Lettner2019-10-101-2/+4
| | | | | | | Normally, command line options override environment variables. Add comment to state that we are doing the reverse on purpose. llvm-svn: 374441
* [lit] Bring back `--threads` option aliasJulian Lettner2019-10-101-1/+1
| | | | | | | | Bring back `--threads` option which was lost in the move of the command line argument parsing code to cl_arguments.py. Update docs since `--workers` is preferred. llvm-svn: 374432
* Revert r374388: "[lit] Make internal diff work in pipelines"Joel E. Denny2019-10-105-276/+241
| | | | | | This breaks a Windows bot. llvm-svn: 374429
* Revert r374389: "[lit] Clean up internal diff's encoding handling"Joel E. Denny2019-10-107-86/+33
| | | | | | This breaks a Windows bot. llvm-svn: 374427
* Revert r374390: "[lit] Extend internal diff to support `-` argument"Joel E. Denny2019-10-107-146/+5
| | | | | | This breaks a Windows bot. llvm-svn: 374426
* Revert r374392: "[lit] Extend internal diff to support -U"Joel E. Denny2019-10-104-136/+6
| | | | | | This breaks a Windows bot. llvm-svn: 374425
* [lit] Leverage argparse features to remove some codeJulian Lettner2019-10-103-34/+28
| | | | | | | | Reviewed By: rnk, serge-sans-paille Differential Revision: https://reviews.llvm.org/D68589 llvm-svn: 374405
* [lit] Move argument parsing/validation to separate fileJulian Lettner2019-10-102-159/+228
| | | | | | | | Reviewed By: serge-sans-paille Differential Revision: https://reviews.llvm.org/D68529 llvm-svn: 374400
* gn build: restore tablegen restat optimization after r373664Nico Weber2019-10-101-0/+2
| | | | llvm-svn: 374395
* [lit] Extend internal diff to support -UJoel E. Denny2019-10-104-6/+136
| | | | | | | | | | | | | | | | | | | | | | When using lit's internal shell, RUN lines like the following accidentally execute an external `diff` instead of lit's internal `diff`: ``` # RUN: program | diff -U1 file - ``` Such cases exist now, in `clang/test/Analysis` for example. We are preparing patches to ensure lit's internal `diff` is called in such cases, which will then fail because lit's internal `diff` doesn't recognize `-U` as a command-line option. This patch adds `-U` support. Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D68668 llvm-svn: 374392
* gn build: merge r374381 more (effectively a no-op)Nico Weber2019-10-101-0/+1
| | | | llvm-svn: 374391
* [lit] Extend internal diff to support `-` argumentJoel E. Denny2019-10-107-5/+146
| | | | | | | | | | | | | | | | | | | | | | When using lit's internal shell, RUN lines like the following accidentally execute an external `diff` instead of lit's internal `diff`: ``` # RUN: program | diff file - ``` Such cases exist now, in `clang/test/Analysis` for example. We are preparing patches to ensure lit's internal `diff` is called in such cases, which will then fail because lit's internal `diff` doesn't recognize `-` as a command-line option. This patch adds support for `-` to mean stdin. Reviewed By: probinson, rnk Differential Revision: https://reviews.llvm.org/D67643 llvm-svn: 374390
* [lit] Clean up internal diff's encoding handlingJoel E. Denny2019-10-107-33/+86
| | | | | | | | | | | | | | | | | As suggested by rnk at D67643#1673043, instead of reading files multiple times until an appropriate encoding is found, read them once as binary, and then try to decode what was read. For python >= 3.5, don't fail when attempting to decode the `diff_bytes` output in order to print it. Finally, add some tests for encoding handling. Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D68664 llvm-svn: 374389
* [lit] Make internal diff work in pipelinesJoel E. Denny2019-10-105-241/+276
| | | | | | | | | | | | | | | | | | | | | | | | | | | When using lit's internal shell, RUN lines like the following accidentally execute an external `diff` instead of lit's internal `diff`: ``` # RUN: program | diff file - # RUN: not diff file1 file2 | FileCheck %s ``` Such cases exist now, in `clang/test/Analysis` for example. We are preparing patches to ensure lit's internal `diff` is called in such cases, which will then fail because lit's internal `diff` cannot currently be used in pipelines and doesn't recognize `-` as a command-line option. To enable pipelines, this patch moves lit's `diff` implementation into an out-of-process script, similar to lit's `cat` implementation. A follow-up patch will implement `-` to mean stdin. Reviewed By: probinson, stella.stamenova Differential Revision: https://reviews.llvm.org/D66574 llvm-svn: 374388
* gn build: Merge r374381GN Sync Bot2019-10-101-0/+2
| | | | llvm-svn: 374383
* Revert "[FileCheck] Implement --ignore-case option."Dmitri Gribenko2019-10-101-656/+651
| | | | | | | This reverts commit r374339. It broke tests: http://lab.llvm.org:8011/builders/clang-x86_64-debian-fast/builds/19066 llvm-svn: 374359
* [FileCheck] Implement --ignore-case option.Kai Nacke2019-10-101-651/+656
| | | | | | | | | | | | The FileCheck utility is enhanced to support a `--ignore-case` option. This is useful in cases where the output of Unix tools differs in case (e.g. case not specified by Posix). Reviewers: Bigcheese, jakehehrlich, rupprecht, espindola, alexshap, jhenderson, MaskRay Differential Revision: https://reviews.llvm.org/D68146 llvm-svn: 374339
* [update_cc_test_checks] Support 'clang | opt | FileCheck'Simon Tatham2019-10-101-6/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some clang lit tests use a pipeline of the form // RUN: %clang [args] -O0 %s | opt [specific optimizations] | FileCheck %s to make the expected test output depend on as few optimization phases as possible, for stability. But when you write a RUN line of this form, you lose the ability to use update_cc_test_checks.py to automatically generate the expected output, because it only supports two-stage pipelines consisting of '%clang | FileCheck' (or %clang_cc1). This change extends the set of supported RUN lines so that pipelines with an invocation of `opt` in the middle can still be automatically handled. To implement it, I've adjusted `get_function_body()` so that it can cope with an arbitrary sequence of intermediate pipeline commands. But the code that decides which RUN lines to consider is more conservative: it only adds clang | opt | FileCheck to the set of supported lines, because I didn't want to accidentally include some other kind of line that doesn't output IR at all. (Also in this commit is the minimal change to make this script work at all, after r373912 added an extra parameter to `add_ir_checks`.) Reviewers: MaskRay, xbolva00 Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D68406 llvm-svn: 374287
* gn build: Merge r374277GN Sync Bot2019-10-101-0/+1
| | | | llvm-svn: 374278
* gn build: (manually) merge r374271Nico Weber2019-10-105-7/+23
| | | | llvm-svn: 374272
* gn build: Merge r374245GN Sync Bot2019-10-091-0/+1
| | | | llvm-svn: 374260
* gn build: (manually) merge r374219Nico Weber2019-10-092-0/+14
| | | | llvm-svn: 374249
* [lit] Refactor ProgressDisplayJulian Lettner2019-10-095-119/+124
| | | | | | | | | | | | Move progress display to separate file. Simplify some code paths. Decouple from other components via progress callback. Remove unused `_Display` class. Reviewed By: serge-sans-paille Differential Revision: https://reviews.llvm.org/D68525 llvm-svn: 374194
* [TableGen] Fix crash when using HwModes in CodeEmitterGenJames Molloy2019-10-091-1/+2
| | | | | | | | When an instruction has an encoding definition for only a subset of the available HwModes, ensure we just avoid generating an encoding rather than crash. llvm-svn: 374150
* Unify the two CRC implementationsHans Wennborg2019-10-091-1/+0
| | | | | | | | | | | | | | | | | | | | | David added the JamCRC implementation in r246590. More recently, Eugene added a CRC-32 implementation in r357901, which falls back to zlib's crc32 function if present. These checksums are essentially the same, so having multiple implementations seems unnecessary. This replaces the CRC-32 implementation with the simpler one from JamCRC, and implements the JamCRC interface in terms of CRC-32 since this means it can use zlib's implementation when available, saving a few bytes and potentially making it faster. JamCRC took an ArrayRef<char> argument, and CRC-32 took a StringRef. This patch changes it to ArrayRef<uint8_t> which I think is the best choice, and simplifies a few of the callers nicely. Differential revision: https://reviews.llvm.org/D68570 llvm-svn: 374148
* gn build: unbreak libcxx build after r374116 by restoring gen_link_script.py ↵Nico Weber2019-10-082-1/+51
| | | | | | for gn llvm-svn: 374129
* [tblgen] Add getOperatorAsDef() to RecordDaniel Sanders2019-10-082-13/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: While working with DagInit's, it's often the case that you expect the operator to be a reference to a def. This patch adds a wrapper for this common case to reduce the amount of boilerplate callers need to duplicate repeatedly. getOperatorAsDef() returns the record if the DagInit has an operator that is a DefInit. Otherwise, it prints a fatal error. There's only a few pre-existing examples in LLVM at the moment and I've left a few instances of the code this simplifies as they had more specific error messages than the generic one this produces. I'm going to be using this a fair bit in my subsequent patches. Reviewers: bogner, volkan, nhaehnle Reviewed By: nhaehnle Subscribers: nhaehnle, hiraditya, asb, rbar, johnrusso, simoncook, apazos, sabuasal, niosHD, jrtc27, MaskRay, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, PkmX, jocewei, lenary, s.egerton, pzheng, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D68424 llvm-svn: 374101
OpenPOWER on IntegriCloud