1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 11:13:28 +01:00
Commit Graph

8018 Commits

Author SHA1 Message Date
David Tenty
1ecd800968 Use portable flag with nm in extract_symbols.py
Summary:
nm is one of the tools that extract_symbols.py can use to extract
symbols from llvm libraries as part of the build process. This patch
updates the invocation of nm to use the -P POSIX option for "portable
output" so we get a consistently parsable output format on all
platforms.

A link to the relevant nm format: https://pubs.opengroup.org/onlinepubs/9699919799/utilities/nm.html

Reviewers: hubert.reinterpretcast, stevewan, sfertile

Reviewed By: stevewan

Subscribers: llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D69004
2019-10-23 16:48:22 -04:00
Michael Liao
fdd7033910 Relax assertions when there's really no entries. [NFC] 2019-10-22 15:26:30 -04:00
Nico Weber
2a387b2c49 gn build: make sync build work with git revs now that svn is gone 2019-10-22 14:19:35 -04:00
Tom Stellard
765d042114 Update git-llvm script to push to GitHub
Summary:
Note: This patch should not be pushed until SVN has become read-only.
It should be the first patch committed directly to GitHub.

This patch updates git-llvm to check for merge commits and then push
changes to GitHub if none are found.  All logic related to SVN has been
removed.

Reviewers: jyknight

Subscribers: lenary, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D67772
2019-10-22 16:23:25 +00:00
GN Sync Bot
ddfc4ba437 gn build: Merge r375483
llvm-svn: 375484
2019-10-22 05:09:35 +00:00
Julian Lettner
0922c685e0 [lit] Move increase_process_limit to ParallelRun
Increasing the process limit only makes sense when we use multiple
processes.

llvm-svn: 375474
2019-10-22 01:13:30 +00:00
Julian Lettner
a2e4ecc39c [lit] Simplify test scheduling via multiprocessing.Pool
llvm-svn: 375458
2019-10-21 21:57:18 +00:00
Julian Lettner
2cc38e997a [lit] Remove redundancy from names and comments
llvm-svn: 375456
2019-10-21 21:41:59 +00:00
GN Sync Bot
04c2c24154 gn build: Merge r375390
llvm-svn: 375393
2019-10-21 08:06:38 +00:00
Martin Storsjo
5adfd48a47 [LLDB] [Windows] Initial support for ARM register contexts
Differential Revision: https://reviews.llvm.org/D69226

llvm-svn: 375392
2019-10-21 08:02:34 +00:00
GN Sync Bot
7bed98bf74 gn build: Merge r375375
llvm-svn: 375376
2019-10-20 20:44:56 +00:00
Peter Collingbourne
8bc0d42879 gn build: Build compiler-rt code with -fvisibility=hidden.
This matches the CMake build.

Differential Revision: https://reviews.llvm.org/D69202

llvm-svn: 375299
2019-10-18 22:52:17 +00:00
GN Sync Bot
37bfd16fca gn build: Merge r375288
llvm-svn: 375289
2019-10-18 21:11:20 +00:00
Julian Lettner
227838e7cc [lit] Reduce value of synthesized timeouts
Large timeout values (one year, positive infinity) trip up Python on
Windows with "OverflowError: timeout value is too large".  One week
seems to work and is still large enough in practice.

Thanks to Simon Pilgrim for helping me test this.
https://reviews.llvm.org/rL375171

llvm-svn: 375264
2019-10-18 17:59:46 +00:00
Julian Lettner
dbaacebca7 [lit] Remove unnecessary tracking of test_index
llvm-svn: 375263
2019-10-18 17:31:48 +00:00
Julian Lettner
e55060e8c3 [lit] Only send back test result from worker process
Avoid sending back the whole run.Test object (which needs to be pickled)
from the worker process when we are only interested in the test result.

llvm-svn: 375262
2019-10-18 17:31:45 +00:00
GN Sync Bot
0ba2cc2656 gn build: Merge r375254
llvm-svn: 375256
2019-10-18 16:52:12 +00:00
James Molloy
703b48d1bc [DFAPacketizer] Fix large compile-time regression for VLIW targets
D68992 / rL375086 refactored the packetizer and removed a bunch of logic. Unfortunately it creates an Automaton object whenever a DFAPacketizer is required. These objects have no longevity, and in particular on a debug build the population of the Automaton's transition map from the underlying table is very slow (because it is called ~10 times per MachineFunction, in the testcase I'm looking at).

This patch changes Automaton to wrap its underlying constant data in std::shared_ptr, which allows trivial copy construction. The DFAPacketizer creation function now creates a static archetypical Automaton and copies that whenever a new DFAPacketizer is required.

This takes a testcase down from ~20s to ~0.5s in debug mode.

llvm-svn: 375240
2019-10-18 14:48:35 +00:00
Julian Lettner
3d3b941407 [lit] Move resolving of XFAIL result codes out of Test.setResult
This will allow us to serialize just the result object instead of the
whole lit.Test object back from the worker to the main lit process.

llvm-svn: 375195
2019-10-18 00:50:37 +00:00
Julian Lettner
e117eb0745 [lit] worker.py: Improve code for executing a single test
llvm-svn: 375194
2019-10-18 00:50:34 +00:00
Julian Lettner
f375645db1 [lit] Move computation of deadline up into base class
llvm-svn: 375171
2019-10-17 21:12:45 +00:00
Julian Lettner
d32e4461f8 Reland "[lit] Synthesize artificial deadline"
We always want to use a deadline when calling `result.await`.  Let's
synthesize an artificial deadline (now plus one year) to simplify code
and do less busy waiting.

Thanks to Reid Kleckner for diagnosing that a deadline for of "positive
infinity" does not work with Python 3 anymore.  See commit:
4ff1e34b606d9a9fcfd8b8b5449a558315af94e5

I tested this patch with Python 2 and Python 3.

llvm-svn: 375165
2019-10-17 20:22:32 +00:00
Reid Kleckner
5a85664c1d Revert [lit] Synthesize artificial deadline
Python on Windows raises this OverflowError:
      gotit = waiter.acquire(True, timeout)
  OverflowError: timestamp too large to convert to C _PyTime_t

So it seems this API behave the same way on every OS.

Also reverts the dependent commit a660dc590a5e8dafa1ba6ed56447ede151d17bd9.

llvm-svn: 375143
2019-10-17 17:44:35 +00:00
Julian Lettner
3389018456 [lit] Move computation of deadline up into base class
llvm-svn: 375130
2019-10-17 16:01:21 +00:00
Julian Lettner
bad68e8a48 [lit] Synthesize artificial deadline
We always want to use a deadline when calling `result.await`.  Let's
synthesize an artificial deadline (positive infinity) to simplify code
and do less busy waiting.

llvm-svn: 375129
2019-10-17 16:01:18 +00:00
Julian Lettner
97faa7e214 [lit] Create derived classes for serial/parallel test runs
The hope is that with a little OO we can nicely factor out the
differences.

llvm-svn: 375128
2019-10-17 16:01:15 +00:00
Joel E. Denny
edf9d7d6c1 Revert r375114: "[lit] Make internal diff work in pipelines"
This series of patches still breaks a Windows bot.

llvm-svn: 375121
2019-10-17 14:43:42 +00:00
Joel E. Denny
b9976a677b Revert r375116: "[lit] Extend internal diff to support - argument"
This series of patches still breaks a Windows bot.

llvm-svn: 375120
2019-10-17 14:43:26 +00:00
Joel E. Denny
aec550af4d [lit] Extend internal diff to support - argument
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: 375116
2019-10-17 14:03:06 +00:00
Joel E. Denny
bf6da93c86 [lit] Make internal diff work in pipelines
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: 375114
2019-10-17 14:02:42 +00:00
James Molloy
6a1a01b4ac [DFAPacketizer] Use DFAEmitter. NFC.
Summary:
This is a NFC change that removes the NFA->DFA construction and emission logic from DFAPacketizerEmitter and instead uses the generic DFAEmitter logic. This allows DFAPacketizer to use the Automaton class from Support and remove a bunch of logic there too.

After this patch, DFAPacketizer is mostly logic for grepping Itineraries and collecting functional units, with no state machine logic. This will allow us to modernize by removing the 16-functional-unit limit and supporting non-itinerary functional units. This is all for followup patches.

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D68992

llvm-svn: 375086
2019-10-17 08:34:29 +00:00
Daniel Sanders
c61330bed8 Correct placement of #ifndef NDEBUG in r375067
llvm-svn: 375071
2019-10-17 01:21:53 +00:00
Daniel Sanders
17873a7a4c [gicombiner] Add the run-time rule disable option
Summary:
Each generated helper can be configured to generate an option that disables
rules in that helper. This can be used to bisect rulesets.

The disable bits are stored in a SparseVector as this is very cheap for the
common case where nothing is disabled. It gets more expensive the more rules
are disabled but you're generally doing that for debug purposes where
performance is less of a concern.

Depends on D68426

Reviewers: volkan, bogner

Reviewed By: volkan

Subscribers: hiraditya, Petar.Avramovic, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D68438

llvm-svn: 375067
2019-10-17 00:37:04 +00:00
Julian Lettner
a6b968c4a5 [lit] Improve lit.Run class
* Push timing of overall test time into run module
* Make lit.Run a proper class
* Add a few TODO comments

llvm-svn: 375065
2019-10-17 00:29:59 +00:00
Daniel Sanders
bb60c325a9 [gicombiner] Hoist pure C++ combine into the tablegen definition
Summary:
This is just moving the existing C++ code around and will be NFC w.r.t
AArch64. Renamed 'CombineBr' to something more descriptive
('ElideByByInvertingCond') at the same time.

The remaining combines in AArch64PreLegalizeCombiner require features that
aren't implemented at this point and will be hoisted as they are added.

Depends on D68424

Reviewers: bogner, volkan

Subscribers: kristof.beyls, hiraditya, Petar.Avramovic, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D68426

llvm-svn: 375057
2019-10-16 23:53:35 +00:00
Julian Lettner
ccc80cdad1 [lit] Remove unnecessary usage of lit.Run
llvm-svn: 375056
2019-10-16 23:31:32 +00:00
Julian Lettner
ae427743d9 [lit] Do not create semaphores when we do not need them
Parallelism groups and semaphores are only required for parallel
execution.

llvm-svn: 375055
2019-10-16 23:25:46 +00:00
Julian Lettner
e4647a3f18 [lit] Factor out separate methods for parallel and serial execution
llvm-svn: 375054
2019-10-16 23:25:41 +00:00
Julian Lettner
735efd9ec8 [lit] Print warning if we fail to delete temp directory
llvm-svn: 375049
2019-10-16 22:20:28 +00:00
Julian Lettner
d77ccb350f [lit] Skip creation of tmp dir if we don't actually run any tests
llvm-svn: 375048
2019-10-16 22:20:25 +00:00
Julian Lettner
197ffb0a98 [lit] Remove return value from print_summary function
llvm-svn: 375047
2019-10-16 21:58:21 +00:00
Julian Lettner
df6fa17f22 [lit] Small refactoring and cleanups in main.py
* Remove outdated precautions for Python versions < 2.7
* Remove dead code related to `maxIndividualTestTime` option
* Move printing of test and result summary out of main into its own
  function

Reviewed By: rnk

Differential Revision: https://reviews.llvm.org/D68847

llvm-svn: 375046
2019-10-16 21:53:20 +00:00
Joel E. Denny
e4446c81f4 [lit] Fix internal diff's --strip-trailing-cr and use it
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 in text
mode, which in Windows causes `\r\n` to be replaced with `\n`.
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: 375020
2019-10-16 17:21:57 +00:00
Joel E. Denny
a871d949f1 [lit] Clean up internal diff's encoding handling
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.

Avoid failures for Python 2.7 used on some Windows bots by
transforming diff output with `lit.util.to_string` before writing it
to stdout.

Finally, add some tests for encoding handling.

Reviewed By: rnk

Differential Revision: https://reviews.llvm.org/D68664

llvm-svn: 375018
2019-10-16 17:21:24 +00:00
GN Sync Bot
6e7b175c95 gn build: Merge r374982
llvm-svn: 374983
2019-10-16 09:59:01 +00:00
Julian Lettner
b4d63156ac [lit] Add back LitTestCase
This essentially reverts a commit [1] that removed the adaptor for
Python unittests.  The code has been slightly refactored to make it more
additive: all code is contained in LitTestCase.py.

Usage sites will require a small adaption:
```
[old]
  import lit.discovery
  ...
  test_suite = lit.discovery.load_test_suite(...)

[new]
  import lit.LitTestCase
  ...
  test_suite = lit.LitTestCase.load_test_suite(...)
```

This was put back on request by Daniel Dunbar, since I wrongly assumed
that the functionality is unused.  At least llbuild still uses this [2].

[1] 70ca752ccf6a8f362aea25ccd3ee2bbceca93b20
[2] https://github.com/apple/swift-llbuild/blob/master/utils/Xcode/LitXCTestAdaptor/LitTests.py#L16

Reviewed By: ddunbar

Differential Revision: https://reviews.llvm.org/D69002

llvm-svn: 374947
2019-10-15 20:57:20 +00:00
GN Sync Bot
6ffa29505a gn build: Merge r374903
llvm-svn: 374904
2019-10-15 15:33:04 +00:00
GN Sync Bot
3a80452ca9 gn build: Merge r374899
llvm-svn: 374900
2019-10-15 14:53:40 +00:00
GN Sync Bot
361ddfe900 gn build: Merge r374882
llvm-svn: 374883
2019-10-15 11:55:38 +00:00
Djordje Todorovic
92fe99bef8 [llvm-locstats] Fix 'only params' no entry value stats
Adding the missing line.

llvm-svn: 374875
2019-10-15 10:12:14 +00:00