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

9549 Commits

Author SHA1 Message Date
Florian Hahn
db0b0dabe6 [AsmWriter] Factor out mnemonic generation to accessible getMnemonic.
This patch factors out the part of printInstruction that gets the
mnemonic string for a given MCInst. This is intended to be used
subsequently for the instruction-mix remarks to display the final
mnemonic (D90040).

Unfortunately making `getMnemonic` available to the AsmPrinter
seems to require making it virtual. Not sure if there's a way around
that with the current layering of the AsmPrinters.

Reviewed By: Paul-C-Anagnostopoulos

Differential Revision: https://reviews.llvm.org/D90039
2020-11-17 09:47:38 +00:00
LLVM GN Syncbot
0bc59c8f71 [gn build] Port 8dbe44cb293 2020-11-16 14:58:16 +00:00
Jan Svoboda
f2ea1a89f7 [clang][cli] Add support for options with two flags for controlling the same field.
This enables automatically parsing and generating CC1 arguments for options where two flags control the same field, e.g. -fexperimental-new-pass-manager and -fno-experimental new pass manager.

Reviewed By: Bigcheese, dexonsmith

Original patch by Daniel Grumberg.

Differential Revision: https://reviews.llvm.org/D83071
2020-11-16 10:21:54 +01:00
Wang, Pengfei
c275334e12 [CodeGen][X86] Remove unused trivial check-prefixes from all CodeGen/X86 directory.
I had manually removed unused prefixes from CodeGen/X86 directory for more than 100 tests.
I checked the change history for each of them at the beginning, and then I mainly focused on the format since I found all of the unused prefixes were result from either insensible copy or residuum after functional update.
I think it's OK to remove the remaining X86 tests by script now. I wrote a rough script which works for me in most tests. I put it in llvm/utils temporarily for review and hope it may help other components owners.
The tests in this patch are all generated by the tool and checked by update tool for the autogenerated tests. I skimmed them and checked about 30 tests and didn't find any unexpected changes.

Reviewed By: mtrofin, MaskRay

Differential Revision: https://reviews.llvm.org/D91496
2020-11-16 09:45:55 +08:00
Nico Weber
106408c120 [gn build] (manually) merge e51631ca4cf 2020-11-14 10:12:15 -05:00
Paul C. Anagnostopoulos
17cd31c30e [TableGen] Add frontend/backend phase timing capability.
Describe in the BackEnd Developer's Guide. Instrument a few backends.

Remove an old unused timing facility. Add a null backend for timing
the parser.

Differential Revision: https://reviews.llvm.org/D91388
2020-11-14 10:10:29 -05:00
Roman Lebedev
f948b65a66 Revert "clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM"
See discussion in https://bugs.llvm.org/show_bug.cgi?id=45073 / https://reviews.llvm.org/D66324#2334485
the implementation is known-broken for certain inputs,
the bugreport was up for a significant amount of timer,
and there has been no activity to address it.
Therefore, just completely rip out all of misexpect handling.

I suspect, fixing it requires redesigning the internals of MD_misexpect.
Should anyone commit to fixing the implementation problem,
starting from clean slate may be better anyways.

This reverts commit 7bdad08429411e7d0ecd58cd696b1efe3cff309e,
and some of it's follow-ups, that don't stand on their own.
2020-11-14 13:12:38 +03:00
Matt Arsenault
846afa6d9e emacs: Add callbr to keyword list 2020-11-13 15:20:06 -05:00
Arthur Eubanks
27a2f57976 [gn build] Port 8741a76f 2020-11-13 09:17:52 -08:00
Nico Weber
79a7d81750 [gn build] (semi-manually) Port 6a8099e0f61 2020-11-13 11:20:23 -05:00
Nico Weber
351cccb545 [gn build] more hotfix after 17df195f70 to unbreak llvm-config tests 2020-11-13 10:03:05 -05:00
Nico Weber
5a29fda5e7 [gn build] Port 8bb6347939b 2020-11-13 09:55:24 -05:00
Nico Weber
bc1485d26a [gn build] (manually) merge 1d0676b54c4e3 2020-11-13 09:41:19 -05:00
Nico Weber
843410425e [gn build] Hotfix to unbreak build after 9218ff50f9308 2020-11-13 09:26:43 -05:00
Jan Svoboda
506cd0f5d7 Reland [clang][cli] Port ObjCMTAction to new option parsing system
Merge existing marhsalling info kinds and add some primitives to
express flag options that contribute to a bitfield.

Depends on D82574

Original patch by Daniel Grumberg.

Reviewed By: Bigcheese

Differential Revision: https://reviews.llvm.org/D82860
2020-11-13 13:42:54 +01:00
serge-sans-paille
82b6e6053d llvmbuildectomy - replace llvm-build by plain cmake
No longer rely on an external tool to build the llvm component layout.

Instead, leverage the existing `add_llvm_componentlibrary` cmake function and
introduce `add_llvm_component_group` to accurately describe component behavior.

These function store extra properties in the created targets. These properties
are processed once all components are defined to resolve library dependencies
and produce the header expected by llvm-config.

Differential Revision: https://reviews.llvm.org/D90848
2020-11-13 10:35:24 +01:00
serge-sans-paille
65ee119111 [nfc] Fix missing include 2020-11-13 10:35:23 +01:00
Nico Weber
0407c54a3f [gn build] (manually) port 410626c9b56 2020-11-12 18:21:22 -05:00
Nico Weber
d3ab6c543e Revert "[gn build] (semi-manually) port 173b51169b8"
This reverts commit 37a1336de722c6920a24e8cd4278e396402f1b2a.
173b51169b8 was reverted in 777ca48.
2020-11-12 13:54:24 -05:00
Nico Weber
8157d3d3d3 [gn build] (semi-manually) port 173b51169b8 2020-11-12 12:18:27 -05:00
Mehdi Amini
e9ac5bd316 Revert "[clang][cli] Port ObjCMTAction to new option parsing system"
This reverts commit 09248a5d25bb1c9f357247fa3da8fbe4470e9c67.

Some builds are broken. I suspect a `static constexpr` in a class missing a
definition out of class (required pre-c++17).
2020-11-11 20:01:03 +00:00
LLVM GN Syncbot
1270e4ba61 [gn build] Port 250de7388b3 2020-11-11 14:04:25 +00:00
Nico Weber
692744bd80 [gn build] (manually) port 98aa067109e 2020-11-11 08:40:13 -05:00
Nico Weber
bcdea69bd7 [gn build] (semi-manually) Port 454579e46a87 2020-11-11 08:40:13 -05:00
Nico Weber
6727bd6030 Revert "[gn build] (semi-manually) Port 98aa067109"
This reverts commit 04ce13e497be60f51d340e649c72138d49cb13e9.
The commit message was wrong. Will reland with fixed message.
2020-11-11 08:40:12 -05:00
Nico Weber
a8df49c390 [gn build] (semi-manually) Port 98aa067109 2020-11-11 07:37:15 -05:00
Jan Svoboda
75210ece0c [clang][cli] Port ObjCMTAction to new option parsing system
Merge existing marhsalling info kinds and add some primitives to
express flag options that contribute to a bitfield.

Depends on D82574

Reviewed By: Bigcheese

Differential Revision: https://reviews.llvm.org/D82860
2020-11-11 13:03:02 +01:00
Jan Svoboda
0eaf6b346b [NFC] First test commit 2020-11-11 10:20:11 +01:00
Peter Collingbourne
0a0956e1c0 gn build: (manually) Port ae032e27 and 21f83113.
__register_frame and __deregister_frame are associated with the
.eh_frame section, which I think is used on all of our platforms
except Windows and 32-bit ARM (which uses the ARM EHABI).

Also add a file that was added to lld/MachO.
2020-11-10 15:50:40 -08:00
Arthur Eubanks
68130813e8 [update_test_checks] Allow opt to have .exe file extension
Reviewed By: rnk

Differential Revision: https://reviews.llvm.org/D91091
2020-11-09 15:50:30 -08:00
LLVM GN Syncbot
9ac1d1b82f [gn build] Port dbfa69c5024 2020-11-09 23:03:42 +00:00
Jan Svoboda
4f20c5bff5 Port some floating point options to new option marshalling infrastructure
This ports a number of OpenCL and fast-math flags for floating point
over to the new marshalling infrastructure.

As part of this, `Opt{In,Out}FFlag` were enhanced to allow other flags to
imply them, via `DefaultAnyOf<>`. For example:
```
defm signed_zeros : OptOutFFlag<"signed-zeros", ...,
  "LangOpts->NoSignedZero",
  DefaultAnyOf<[cl_no_signed_zeros, menable_unsafe_fp_math]>>;
```
defines `-fsigned-zeros` (`false`) and `-fno-signed-zeros` (`true`)
linked to the keypath `LangOpts->NoSignedZero`, defaulting to `false`,
but set to `true` implicitly if one of `-cl-no-signed-zeros` or
`-menable-unsafe-fp-math` is on.

Note that the initial patch was written Daniel Grumberg.

Differential Revision: https://reviews.llvm.org/D82756
2020-11-09 18:00:10 -05:00
LLVM GN Syncbot
345ed810ca [gn build] Port 9ca6fc4e095 2020-11-09 14:31:09 +00:00
LLVM GN Syncbot
2f720b3a66 [gn build] Port d725f1ce531 2020-11-07 19:18:18 +00:00
Kazu Hirata
e786f8b19e [TableGen] Use llvm::is_contained (NFC) 2020-11-06 14:18:01 -08:00
Jay Foad
0cb73d61a1 [TableGen] Indentation and whitespace fixes in generated code. NFC.
Some of these were found by running clang-format over the generated
code, although that complains about far more issues than I have fixed
here.

Differential Revision: https://reviews.llvm.org/D90937
2020-11-06 16:10:57 +00:00
Valentin Clement
8c87b66158 [flang][openacc] Add parsing tests and semantic check for set directive
This patch add some parsing and clause validity tests for the set directive.
It makes use of the possibility introduces in patch D90770 to check the restriction
were one of the default_async, device_num and device_type clauses is required but also
not more than once on the set directive.

Reviewed By: sameeranjoshi

Differential Revision: https://reviews.llvm.org/D90771
2020-11-05 22:57:58 -05:00
Valentin Clement
021bbc7b82 [openacc][openmp] Allow duplicate between required and allowed once/exclusive
Validity check introduce in D90241 are a bit too restrict and this patch propose to losen
them a bit. The duplicate clauses is now check only between the three allowed lists and between the
requiredClauses and allowedClauses lists. This allows to enable some check where a clause can be
required but also appear only once on the directive. We found these kind of restriction useful
on the set directive in OpenACC for example.

Reviewed By: kiranchandramohan

Differential Revision: https://reviews.llvm.org/D90770
2020-11-05 16:21:26 -05:00
Nico Weber
a93ee77123 [gn build] (manually) port 82f86ae01 more 2020-11-05 14:12:33 -05:00
Nico Weber
acf50db150 [gn build] (manually) port 82f86ae01 2020-11-05 14:11:26 -05:00
LLVM GN Syncbot
2bde9e6972 [gn build] Port 659f4bd87ef 2020-11-05 15:11:13 +00:00
Steven Wan
8a4871ee91 Add info about the cherry-picked commit and contributor 2020-11-04 14:23:27 -05:00
Steven Wan
54d3d00751 [PowerPC] Rename mftbl to mftb
`mftb` and `mftbl` are equivalent, there is no need to have two names for doing the same thing, rename `mftbl` to only have `mftb`.

Differential Revision: https://reviews.llvm.org/D89506
2020-11-04 14:23:27 -05:00
LLVM GN Syncbot
d609931b08 [gn build] Port d1b2a523191 2020-11-04 15:36:49 +00:00
LLVM GN Syncbot
05c2fcc211 [gn build] Port 73b6cb67dcd 2020-11-04 12:00:24 +00:00
LLVM GN Syncbot
d19e12083d [gn build] Port 1124bf4ab77 2020-11-04 12:00:24 +00:00
Nico Weber
7fc5c0fdb0 [gn build] try to port 707d69ff32309b 2020-11-04 07:00:05 -05:00
Vitaly Buka
7d04bf155f [sanitizer] Remove ANDROID_NDK_VERSION 2020-11-04 01:15:25 -08:00
Valentin Clement
683b5fd7b1 [openmp][openacc][NFC] Simplify access and validation of DirectiveBase information
This patch adds some helper in the DirectiveLanguage wrapper to initialize it from
the RecordKeeper and validate the records. This simplify arguments in lots of function
since only the DirectiveLanguge is passed.

Reviewed By: kiranchandramohan

Differential Revision: https://reviews.llvm.org/D90358
2020-11-03 11:13:06 -05:00
LLVM GN Syncbot
f3c13cd376 [gn build] Port 1667d23e585 2020-11-03 13:58:51 +00:00
Nico Weber
ae77e74525 [gn build] (manually) port 1af3cb5424d 2020-11-03 08:58:23 -05:00
Sam McCall
870b03306d [clangd] Fix check-clangd with no clang built
- pass required=False to use_clang(), as we don't need it
- fix required=False (which was unused and rotted):
  - make derived substitutions conditional on it
  - add a feature so we can disable tests that need it
- conditionally disable our one test that depends on %resource_dir.
  This doesn't seem right from first principles, but isn't a big deal.

Differential Revision: https://reviews.llvm.org/D90528
2020-11-02 21:10:43 +01:00
LLVM GN Syncbot
3fae7c2ab5 [gn build] Port c17da8676a0 2020-11-02 18:32:12 +00:00
Nico Weber
386c41e2e2 [gn build] Run git ls-files '*.gn' '*.gni' | xargs llvm/utils/gn/gn.py format 2020-11-02 10:49:54 -05:00
Nico Weber
ed2dff4f4d [gn build] (manually) port c6eaa14e11 2020-11-02 10:43:38 -05:00
Nico Weber
f30ddf1336 [gn build] (manually) port 76a168bce01 better 2020-11-02 10:14:58 -05:00
Evgeny Leviant
6daa076b36 [TableGen][SchedModels] Fix read/write variant substitution
Patch fixes case when sched class has write and read variants belonging
to different processor models.

Differential revision: https://reviews.llvm.org/D89777
2020-11-02 17:39:04 +03:00
Nico Weber
63eb68a1b7 [gn build] (manually) port 76a168bce01 2020-11-02 09:22:44 -05:00
LLVM GN Syncbot
8b5751e5aa [gn build] Port 756f5978410 2020-10-31 05:19:04 +00:00
Mircea Trofin
3afc00f390 [FileCheck] Report missing prefixes when more than one is provided.
If more than a prefix is provided - e.g. --check-prefixes=CHECK,FOO - we
don't report if (say) FOO is never used. This may lead to a gap in our
test coverage.

This patch introduces a new option, --allow-unused-prefixes. It
currently is set to true, keeping today's behavior. After we explicitly
set it in tests where this behavior was actually intentional, we will
switch it to false by default.

Differential Revision: https://reviews.llvm.org/D90281
2020-10-30 12:39:29 -07:00
LLVM GN Syncbot
46e2484ccc [gn build] Port ac49500cd04 2020-10-30 19:18:17 +00:00
LLVM GN Syncbot
944684f022 [gn build] Port 940d0a310dc 2020-10-30 18:08:01 +00:00
LLVM GN Syncbot
2f3cec0d0b [gn build] Port 84e8257937e 2020-10-30 17:54:57 +00:00
Nico Weber
5eee0feeab [gn build] port e58660750e76
Made necessary by c479e0c99459e4, which requires std::timespec
to exist, which it only does in c++17 and later.
2020-10-30 13:49:27 -04:00
serge-sans-paille
9755b5cd4d [lit] Ship and bundle license for lit package
lit is bundled independently from LLVM in at least one location
(https://pypi.org/project/lit/), it's easier to state its license locally.

Differential Revision: https://reviews.llvm.org/D90136
2020-10-30 15:34:00 +01:00
LLVM GN Syncbot
c4068d104f [gn build] Port 00090a2b826 2020-10-30 02:36:24 +00:00
Marcel Hlopko
d70c0f894f Remove HAVE_VCS_VERSION_INC, not needed
This preprocessor define was meant to be used to conditionally include VCSVersion.inc. However, the define was always set, and it was the content of the header that was conditionally generated. Therefore HAVE_VCS_VERSION_INC should be cleaned up.

Reviewed By: gribozavr2, MaskRay

Differential Revision: https://reviews.llvm.org/D84623
2020-10-29 13:09:05 -07:00
Peter Collingbourne
215544881e gn build: Define HWASAN_WITH_INTERCEPTORS=1 for hwasan_new_delete.cpp as well. 2020-10-28 15:42:07 -07:00
Jay Foad
84f5fe8d70 [TableGen] Treat reg as isolated in reg$foo (but not in ${foo}reg)
D9844 fixed a problem where the ss suffix in the AsmString "cmp${cc}ss"
was recognised as the X86 SS register, by only recognising a token as a
register name if it is "isolated", i.e. surrounded by separator
characters.

In the AMDGPU backend there are many operands like $clamp which expand
to an optional string " clamp" including the preceding space, so we want
to have AsmStrings including sequences like "vcc$clamp" where vcc is a
register name.

This patch relaxes the rules for an isolated token, to say that it's OK
if the token is immediately followed by a '$'.

Differential Revision: https://reviews.llvm.org/D90315
2020-10-28 21:39:39 +00:00
LLVM GN Syncbot
140ee27fee [gn build] Port 23ed570af1c 2020-10-28 20:46:36 +00:00
Valentin Clement
9b83f369c4 [openmp][openacc] Check for duplicate clauses for directive
Check for duplicate clauses associated with directive. Clauses can appear only once
in the 4 lists associated with each directive (allowedClauses, allowedOnceClauses,
allowedExclusiveClauses, requiredClauses). Duplicates were already present (removed with this
patch) or were introduce in new patches by mistake (D89861).

Reviewed By: kiranchandramohan

Differential Revision: https://reviews.llvm.org/D90241
2020-10-28 15:12:38 -04:00
Thomas Lively
04b9d0883f [WebAssembly] Prototype extending multiplication SIMD instructions
As proposed in https://github.com/WebAssembly/simd/pull/376. This commit
implements new builtin functions and intrinsics for these instructions, but does
not yet add them to wasm_simd128.h because they have not yet been merged to the
proposal. These are the first instructions with opcodes greater than 0xff, so
this commit updates the MC layer and disassembler to handle that correctly.

Differential Revision: https://reviews.llvm.org/D90253
2020-10-28 09:38:59 -07:00
LLVM GN Syncbot
ee39116789 [gn build] Port 23c8da25ef7 2020-10-28 13:16:58 +00:00
LLVM GN Syncbot
c157783fc3 [gn build] Port 47369e194a4 2020-10-28 12:31:40 +00:00
LLVM GN Syncbot
1a919179a5 [gn build] Port e025d09b216 2020-10-27 19:40:30 +00:00
LLVM GN Syncbot
c5ea71af15 [gn build] Port ce6900c6cb5 2020-10-27 19:40:29 +00:00
LLVM GN Syncbot
05d3fe531a [gn build] Port 46c3d5cb05d 2020-10-27 18:08:19 +00:00
LLVM GN Syncbot
3188a13350 [gn build] Port 850325348ae 2020-10-27 12:17:41 +00:00
Aaron Puchert
ec700eefc9 Add release tarballs for libclc
Fixes PR47917.

Reviewed By: tstellar

Differential Revision: https://reviews.llvm.org/D90100
2020-10-26 20:33:24 +01:00
LLVM GN Syncbot
6d69d5bffc [gn build] Port 61bc18de0b2 2020-10-26 08:07:25 +00:00
Nathan Ridge
2f0a524fbb [clangd] Add a TestWorkspace utility
TestWorkspace allows easily writing tests involving multiple
files that can have inclusion relationships between them.

BackgroundIndexTest.RelationsMultiFile is refactored to use
TestWorkspace, and moved to FileIndexTest as it no longer
depends on BackgroundIndex.

Differential Revision: https://reviews.llvm.org/D89297
2020-10-24 20:15:17 -04:00
Arthur Eubanks
d924016b11 [gn build] Add missing comma 2020-10-23 12:01:23 -07:00
Nick Desaulniers
e95a065d26 [IR] add fn attr for no_stack_protector; prevent inlining on mismatch
It's currently ambiguous in IR whether the source language explicitly
did not want a stack a stack protector (in C, via function attribute
no_stack_protector) or doesn't care for any given function.

It's common for code that manipulates the stack via inline assembly or
that has to set up its own stack canary (such as the Linux kernel) would
like to avoid stack protectors in certain functions. In this case, we've
been bitten by numerous bugs where a callee with a stack protector is
inlined into an __attribute__((__no_stack_protector__)) caller, which
generally breaks the caller's assumptions about not having a stack
protector. LTO exacerbates the issue.

While developers can avoid this by putting all no_stack_protector
functions in one translation unit together and compiling those with
-fno-stack-protector, it's generally not very ergonomic or as
ergonomic as a function attribute, and still doesn't work for LTO. See also:
https://lore.kernel.org/linux-pm/20200915172658.1432732-1-rkir@google.com/
https://lore.kernel.org/lkml/20200918201436.2932360-30-samitolvanen@google.com/T/#u

Typically, when inlining a callee into a caller, the caller will be
upgraded in its level of stack protection (see adjustCallerSSPLevel()).
By adding an explicit attribute in the IR when the function attribute is
used in the source language, we can now identify such cases and prevent
inlining.  Block inlining when the callee and caller differ in the case that one
contains `nossp` when the other has `ssp`, `sspstrong`, or `sspreq`.

Fixes pr/47479.

Reviewed By: void

Differential Revision: https://reviews.llvm.org/D87956
2020-10-23 11:55:39 -07:00
Amara Emerson
a5ff88d2db [AArch64][GlobalISel] Introduce a new post-isel optimization pass.
There are two optimizations here:

1. Consider the following code:
 FCMPSrr %0, %1, implicit-def $nzcv
 %sel1:gpr32 = CSELWr %_, %_, 12, implicit $nzcv
 %sub:gpr32 = SUBSWrr %_, %_, implicit-def $nzcv
 FCMPSrr %0, %1, implicit-def $nzcv
 %sel2:gpr32 = CSELWr %_, %_, 12, implicit $nzcv
This kind of code where we have 2 FCMPs each feeding a CSEL can happen
when we have a single IR fcmp being used by two selects. During selection,
to ensure that there can be no clobbering of nzcv between the fcmp and the
csel, we have to generate an fcmp immediately before each csel is
selected.

However, often we can essentially CSE these together later in MachineCSE.
This doesn't work though if there are unrelated flag-setting instructions
in between the two FCMPs. In this case, the SUBS defines NZCV
but it doesn't have any users, being overwritten by the second FCMP.

Our solution here is to try to convert flag setting operations between
a interval of identical FCMPs, so that CSE will be able to eliminate one.

2. SelectionDAG imported patterns for arithmetic ops currently select the
flag-setting ops for CSE reasons, and add the implicit-def $nzcv operand
to those instructions. However if those impdef operands are not marked as
dead, the peephole optimizations are not able to optimize them into non-flag
setting variants. The optimization here is to find these dead imp-defs and
mark them as such.

This pass is only enabled when optimizations are enabled.

Differential Revision: https://reviews.llvm.org/D89415
2020-10-23 10:18:36 -07:00
LLVM GN Syncbot
df8c67668f [gn build] Port dbbc4f4e226 2020-10-23 17:06:41 +00:00
Alex Orlov
41781efce1 Added utility to launch tests on a target remotely.
Runs an executable on a remote host.
This is meant to be used as an executor when running the LLVM and the Libraries tests on a target.

Reviewed By: vvereschaka

Differential Revision: https://reviews.llvm.org/D89349
2020-10-23 20:52:30 +04:00
LLVM GN Syncbot
5b19aaf8b1 [gn build] Port 00255f41929 2020-10-23 16:19:55 +00:00
Paulo Matos
f7fc888024 [WebAssembly] Implementation of (most) table instructions
Implementation of instructions table.get, table.set, table.grow,
table.size, table.fill, table.copy.

Missing instructions are table.init and elem.drop as they deal with
element sections which are not yet implemented.

Added more tests to tables.s

Differential Revision: https://reviews.llvm.org/D89797
2020-10-23 08:42:54 -07:00
Nico Weber
45a7f324f8 [gn build] port 48e4b0f (__config_site revert)
This reverts commit b3ca53e14274642274be8fe7db8b43dc3c146366.
This reverts commit 8b7dac81d378c339d3e55f6f51cd0c42803903ad.
This reverts commit 37c030f81a9fdd7a7e1b6fa5407b277c1ab1afa1.
2020-10-23 09:45:34 -04:00
Nico Weber
ae1574313b [gn build] (semi-manually) port 147b9497e79 2020-10-22 18:19:59 -04:00
Arthur Eubanks
890b22aff8 [gn build] Add missing clangd dependencies
Fixes
$ ninja obj/build/rel/gen/clang-tools-extra/clangd/CompletionModel.CompletionModel.obj

Some tablegen include files from clang/include/clang/AST and
clang/include/clang/Sema need to be generated before CompletionModel is
compiled.

Reviewed By: thakis

Differential Revision: https://reviews.llvm.org/D89657
2020-10-22 09:04:30 -07:00
LLVM GN Syncbot
88e6dc86b8 [gn build] Port be39a6fe6fc 2020-10-22 09:39:53 +00:00
Nico Weber
dbdd52cab6 [gn build] try to fix clang build after 37c030f81a9fdd
37c030f81a9fdd made it so that depending on //libcxx/include
automatically added the copied header dir to the include search path.
For some reason, clang can't build against the copied libcxx headers
(it complains about ldiv_t not being a type). I don't have a mac
to debug right now, but for the clang target this change was
unintentional anyways -- only depend on the copies target, instead
of on the target that also adjusts the include path.
2020-10-21 14:11:18 -04:00
Nico Weber
31900dae4d [gn build] try to fix up deps of __config_site after 37c030f81a 2020-10-21 12:57:50 -04:00
Nico Weber
f565b5becd [gn build] (manually) port 5d796645d6c8cade (libcxx __config change) 2020-10-21 12:54:30 -04:00
Nico Weber
d803683939 [gn build] (manually) port 54fa9ecd3088 2020-10-21 12:54:30 -04:00
Ben Dunbobbin
02eba0fee9 [LIT] fixed up accidentally committed EOF problems. 2020-10-21 13:29:58 +01:00
Ben Dunbobbin
cf3dae7375 [LIT] error if directly named test won't be run indirectly
Currently, a LIT test named directly (on the command line) will
be run even if the name of the test file does not meet the rules
to be considered a test in the LIT test configuration files for
its test suite. For example, if the test does not have a
recognised file extension.

This makes it relatively easy to write a LIT test that won't
actually be run. I did in: https://reviews.llvm.org/D82567

This patch adds an error to avoid users doing that. There is a
small performance overhead for this check. A command line option
has been added so that users can opt into the old behaviour.

Differential Revision: https://reviews.llvm.org/D83069
2020-10-21 13:21:29 +01:00
LLVM GN Syncbot
da51f34f77 [gn build] Port 848a68a032d 2020-10-20 17:56:26 +00:00
Nico Weber
bb3716f11b [gn build] assert clang-format does not depend on AST, Frontend, Sema at gn time
To catch things like https://reviews.llvm.org/D69854 and
https://reviews.llvm.org/D89708 earlier next time they happen.
2020-10-20 10:23:42 -04:00
Nico Weber
edb91e97ed [gn build] belatedly port 3ddac7e56363 2020-10-20 10:20:11 -04:00
Nico Weber
1f88b0c5f5 [gn build] port a2214757e2ca more 2020-10-20 10:20:11 -04:00
LLVM GN Syncbot
806ad918a8 [gn build] Port c0cdd22c72f 2020-10-20 13:20:27 +00:00
LLVM GN Syncbot
ba971880b9 [gn build] Port a2214757e2c 2020-10-20 13:20:26 +00:00
Nico Weber
147c31910c Revert "Revert "[gn build] (manually) port d09b08919ca""
This reverts commit 6ca3dd97352013375f907d92a7e1aed7ab80fbc3.
d09b08919ca relanded in 53065c543fe3f1.
2020-10-20 09:09:30 -04:00
Nico Weber
659577b7a3 Revert "[gn build] (manually) port d09b08919ca"
This reverts commit 4d2d287a030fe81a5bf9d982ed8ea26fe3bcee6b.
d09b08919ca got reverted in 7ecd60bb702.
2020-10-19 20:01:06 -04:00
Atmn Patel
cbe95c4921 [LangRef] Define mustprogress attribute
LLVM IR currently assumes some form of forward progress. This form is
not explicitly defined anywhere, and is the cause of miscompilations
in most languages that are not C++11 or later. This implicit forward progress
guarantee can not be opted out of on a function level nor on a loop
level. Languages such as C (C11 and later), C++ (pre-C++11), and Rust
have different forward progress requirements and this needs to be
evident in the IR.

Specifically, C11 and onwards (6.8.5, Paragraph 6) states that "An
iteration statement whose controlling expression is not a constant
expression, that performs no input/output operations, does not access
volatile objects, and performs no synchronization or atomic operations
in its body, controlling expression, or (in the case of for statement)
its expression-3, may be assumed by the implementation to terminate."
C++11 and onwards does not have this assumption, and instead assumes
that every thread must make progress as defined in [intro.progress] when
it comes to scheduling.

This was initially brought up in [0] as a bug, a solution was presented
in [1] which is the current workaround, and the predecessor to this
change was [2].

After defining a notion of forward progress for IR, there are two
options to address this:
1) Set the default to assuming Forward Progress and provide an opt-out for functions and an opt-in for loops.
2) Set the default to not assuming Forward Progress and provide an opt-in for functions, and an opt-in for loops.

Option 2) has been selected because only C++11 and onwards have a
forward progress requirement and it makes sense for them to opt-into it
via the defined `mustprogress` function attribute.  The `mustprogress`
function attribute indicates that the function is required to make
forward progress as defined. This is sharply in contrast to the status
quo where this is implicitly assumed. In addition, `willreturn` implies `mustprogress`.

The background for why this definition was chosen is in [3] and for why
the option was chosen is in [4] and the corresponding thread(s). The implementation is in D85393, the
clang patch is in D86841, the LoopDeletion patch is in D86844, the
Inliner patches are in D87180 and D87262, and there will be more
incoming.

[0] https://bugs.llvm.org/show_bug.cgi?id=965#c25
[1] https://lists.llvm.org/pipermail/llvm-dev/2017-October/118558.html
[2] https://reviews.llvm.org/D65718
[3] https://lists.llvm.org/pipermail/llvm-dev/2020-September/144919.html
[4] https://lists.llvm.org/pipermail/llvm-dev/2020-September/145023.html

Reviewed By: jdoerfert, efriedma, nikic

Differential Revision: https://reviews.llvm.org/D86233
2020-10-19 13:34:27 -04:00
Alex Richardson
80cd8e218f [lit] Avoid calling realpath() for every printed message
I did some profiling of lit while trying to optimize the libc++ test
startup for remote hosts and it turns out that there is a realpath() call
for every message printed and this shows up in the profile.
The inspect.getframeinfo() function calls realpath() internally and
moreover we don't need most of the other information returned from it.
This patch uses inspect.getsourcefile() and os.path.abspath() to remove
../ from the path instead. Not resolving symlinks reduces the startup time
for running a single test with lit by about 50ms for me.

Reviewed By: ldionne, yln
Differential Revision: https://reviews.llvm.org/D89186
2020-10-19 16:21:34 +01:00
Evgeny Leviant
343576899e [ARM][SchedModels] Convert IsPredicatedPred to MCSchedPredicate
Differential revision: https://reviews.llvm.org/D89553
2020-10-19 11:37:54 +03:00
David Sherwood
4d9ff7d9d6 [SVE] Replace TypeSize comparison operators in llvm/utils/TableGen
In CodeGenDAGPatterns.cpp we were relying upon TypeSize comparison
operators for ordering types, when we can actually just use the known
minimum size since the scalable property is already being taken into
account. Also, in TypeInfer::EnforceSameSize I fixed some implicit
TypeSize->uint64_t casts by changing the code to test the equality
of TypeSize objects instead.

In other places I have replaced calls to getSizeInBits() with
getFixedSizeInBits() because we are only ever expecting integer values.

Differential Revision: https://reviews.llvm.org/D88947
2020-10-19 08:21:36 +01:00
LLVM GN Syncbot
c330f53100 [gn build] Port 6154c4115cd 2020-10-19 04:23:08 +00:00
LLVM GN Syncbot
3640a6462f [gn build] Port 0aec49c8531 2020-10-19 04:23:07 +00:00
Craig Topper
159c8567b3 [X86] Sort the tables before printing in X86FoldTablesEmitter.
This makes diffing with the manual tables easier. And if we ever
directly use the autogenerated tables instead of the manual tables
we'll need them to be in sorted order for the binary search.
2020-10-18 17:39:38 -07:00
Nico Weber
f99c52a3a0 [gn build] (manually) port d09b08919ca 2020-10-18 12:17:55 -04:00
Craig Topper
e59aedc474 [X86] Remove unnecessary defaulted argument from function in X86FoldTablesEmitter.cpp. NFC
Nothing ever calls it with anything other than the default value.
So just delete it and the code that handled the non-default value.
2020-10-17 22:21:32 -07:00
LLVM GN Syncbot
92111fd84e [gn build] Port 3d4bba302d2 2020-10-16 18:13:18 +00:00
Nico Weber
fac13d2341 [gn build] (manually) port 3d4bba302d246 2020-10-16 14:12:38 -04:00
Nico Weber
6865cba465 [gn bulid] Remove phantom WebAssembly tablegen() calls
Apparenlty I added these in https://reviews.llvm.org/rL350628 but
I'm not sure why. They never existed in the CMake build, and now
they're causing trouble.
2020-10-15 16:14:11 -04:00
Paul C. Anagnostopoulos
0c4c5ded27 [RISCV] [TableGen] Modify RISCVCompressInstEmitter.cpp to use getAllDerivedDefinitions(). 2020-10-15 10:11:12 -04:00
LLVM GN Syncbot
9f80ca3aba [gn build] Port f0875971249 2020-10-13 20:50:32 +00:00
LLVM GN Syncbot
3ab165d1a9 [gn build] Port 77bb3ebebbc 2020-10-13 19:14:10 +00:00
LLVM GN Syncbot
7af631872f [gn build] Port 662ed9e67ad 2020-10-13 19:14:09 +00:00
Ahsan Saghir
179c563da5 [PowerPC] Add assemble disassemble intrinsics for MMA
This patch adds support for assemble disassemble intrinsics
for MMA.

Reviewed By: bsaleil, #powerpc

Differential Revision: https://reviews.llvm.org/D88739
2020-10-13 13:21:58 -05:00
LLVM GN Syncbot
9b4c282db0 [gn build] Port b76dc111dd0 2020-10-13 17:53:40 +00:00
LLVM GN Syncbot
b114391be7 [gn build] Port 44b7cf2983b 2020-10-13 17:53:39 +00:00
Raphael Isemann
ff389f157f [lldb][NFC] Fix some invalid escapes sequences in Python strings
I recently had to run the test suite with a debug Python which got started
warning about some invalid escape sequences in LLDB's Python code. They all
attempt to add a backslash by doing a single backslash instead of a double
backslash in a normal string. This seems to work fine for now, but Python says
this behaviour is deprecated, so this patch turns all those strings into raw
strings (where a single backslash is actually a single backslash)

Reviewed By: JDevlieghere

Differential Revision: https://reviews.llvm.org/D88289
2020-10-13 16:04:24 +02:00
Evgeny Leviant
71a9feee28 Fix Windows/MSVC build after 6e56046f65
Commit 6e56046f65 may trigger SEGV in llvm-tablegen if the latter
is built with -DLLVM_OPTIMIZED_TABLEGEN=OFF. The reason of SEGV was
accessing stale memory after expansion of std::vector.
2020-10-13 15:24:58 +03:00
Evgeny Leviant
a5e5f602ef [TableGen][SchedModels] Fix aliasing of SchedWriteVariant
Differential revision: https://reviews.llvm.org/D89114
2020-10-13 13:05:24 +03:00
LLVM GN Syncbot
9263495686 [gn build] Port 412cdcf2edf 2020-10-13 01:07:55 +00:00
Paul C. Anagnostopoulos
69c806cfe8 [TableGen] Add overload of RecordKeeper::getAllDerivedDefinitions()
and use in PseudoLowering backend.
Now the two getAllDerivedDefinitions() use StringRef and Arrayref.
Use all_of() in getAllDerivedDefinitions().
2020-10-12 16:40:09 -04:00
Nico Weber
68c9b7691c [gn build] Add libclang_rt.ios.a, libclang_rt.iossim.a to the build
It's built with just-built clang, like all other compiler-rt parts
in the GN build.

This requires adding some cross build support to the mac toolchain.

Also add explicit mmacosx-version-min and miphoneos-version-min
flags to the build.

ios.a is only built with the arm64 slice, iossim.a only with the
x86_64 slice for now. (The latter should maybe become host_cpu
when Arm Macs become a common iOS development platform.)

With this, it's possible to build chromium/iOS with a GN-built LLVM.

Differential Revision: https://reviews.llvm.org/D89260
2020-10-12 16:21:04 -04:00
LLVM GN Syncbot
d1ef7ad43b [gn build] Port f9317f7bf6b 2020-10-12 13:27:45 +00:00
sstefan1
6a1e373c9c [IR][FIX] Intrinsics - don't apply default willreturn if IntrNoReturn is specified
Summary: Since willreturn will soon be added as default attribute, we can end up with both noreturn and willreturn on the same intrinsic. This was exposed by llvm.wasm.throw which has IntrNoReturn.

Reviewers: jdoerfert, arsenm

Differential Revision: https://reviews.llvm.org/D88644
2020-10-12 11:29:33 +02:00
Kito Cheng
b69d089152 [Tablegen][SubtargetEmitter] Print TuneCPU in Subtarget::ParseSubtargetFeatures
Let user able to know which -tune-cpu are used now.

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D88951
2020-10-12 14:46:44 +08:00
David Green
08b29d77c1 [TblGen][Scheduling] Fix debug output. NFC
This just moves some newlines to the expected places.
2020-10-10 10:04:28 +01:00
LLVM GN Syncbot
eaed84a6bd [gn build] Port 0741a2c9cac 2020-10-09 13:54:24 +00:00
Kazushi (Jam) Marukawa
9d098730c5 [VE] Add new MVT types for NEC SX Aurora VE vector
This patch adds entries for:
    v64i64
    v128i64
    v256i64
    v64f64
    v128f64
    v256f64

Reviewed By: simoll

Differential Revision: https://reviews.llvm.org/D88776
2020-10-09 12:07:41 +09:00
Dan Liew
a50a440b7c [lit] Try to remove the flakeyness of shtest-timeout.py and googletest-timeout.py.
The tests previously relied on the `short.py` and `FirstTest.subTestA`
script being executed on a machine within a short time window (1 or 2
seconds). While this "seems to work" it can fail on resource constrained
machines. We could bump the timeout a little bit (bumping it too
much would mean the test would take a long time to execute) but it wouldn't
really solve the problem of the test being prone to failures.

This patch tries to remove this flakeyness by separating testing into
two separate parts:

1. Testing if a test can hit a timeout.
2. Testing if a test can run to completion in the presence of a
timeout.

This way we can give (1.) a really short timeout (to make the test run
as fast as possible) and (2.) a really long timeout. This means for (2.)
we are no longer trying to rely on the "short" test executing within
some short time window. Instead the window is now 3600 seconds which
should be long enough even for a heavily resource constrained machine to
execute the "short" test.

Thanks to Julian Lettner for suggesting this approach. This superseeds
my original approach in https://reviews.llvm.org/D88807.

This patch also changes the command line override test to run the quick
test rather than the slow one to make the test run faster.

Differential Revision: https://reviews.llvm.org/D89020
2020-10-08 10:46:18 -07:00
Nico Weber
385deec198 [gn build] (manually) port 9b58b0c06e6 better 2020-10-08 10:13:54 -04:00
Nico Weber
aaecbeabb4 [gn build] (manually) port 9b58b0c06e6 2020-10-08 10:08:45 -04:00
Min-Yih Hsu
b05cf821e6 [M680x0] Add google/benchmark's CycleTimer support for M68K
This is a cherrypick of the upstream fix commit ffe1342 onto
`llvm/utils/benchmark` and `libcxx/utils/google-benchmark`.
This adds CycleTimer implementation for M680x0, which simply
uses `gettimeofday` same as MIPS.

Differential Review: https://reviews.llvm.org/D88868
2020-10-07 14:58:36 -07:00
LLVM GN Syncbot
c887e89634 [gn build] Port ddf1864ace4 2020-10-07 15:50:43 +00:00
Nico Weber
667a8e234b [gn build] (manually) port ce1365f8f7e 2020-10-07 10:33:51 -04:00
Nico Weber
2e9cf00e3d [gn build] manually port 5e4409f308177 2020-10-06 18:43:49 -04:00
Alexandre Ganea
8eda5d6321 Revert [lit] Support running tests on Windows without GnuWin32
This reverts b3418cb4eb1456c41606f4621dcfa362fe54183c and d12ae042e17b27ebc8d2b5ae3d8dd5f88384d093

This breaks some external bots, see discussion in https://reviews.llvm.org/D84380

In the meanwhile, please use `cmake -DLLVM_LIT_TOOLS_DIR="C:/Program Files/Git/usr/bin"` or add it to %PATH%.
2020-10-06 15:38:18 -04:00
LLVM GN Syncbot
045458557c [gn build] Port aa2b593f149 2020-10-06 14:49:44 +00:00
LLVM GN Syncbot
f024187bee [gn build] Port d6c9dc3c17e 2020-10-06 12:02:07 +00:00
Joseph Huber
058a89097b Revert "[OpenMP] Add Error Handling for Conflicting Pointer Sizes for Target Offload"
Reverting because detecting architecture size doesn't work on all
platforms.

This reverts commit eaf73293cb6b8d45dd85ffced57aea7ad4177754.
2020-10-05 12:35:39 -04:00
Joseph Huber
34a590c455 [OpenMP] Add Error Handling for Conflicting Pointer Sizes for Target Offload
Summary:
This patch adds an error to Clang that detects if OpenMP offloading is
used between two architectures with incompatible pointer sizes. This
ensures that the data mapping can be done correctly and solves an issue
in code generation generating the wrong size pointer. This patch adds a
new lit substitution, %omp_powerpc_triple that, if the system is 32-bit or
64-bit, sets the powerpc triple accordingly. This was required to fix
some OpenMP tests that automatically populated the target architecture.

Reviewers: jdoerfert

Subscribers: cfe-commits guansong sstefan1 yaxunl delcypher

Tags: OpenMP clang LLVM

Differential Revision: https://reviews.llvm.org/D88594
2020-10-05 11:02:13 -04:00
Dmitry Preobrazhensky
487e45e4f5 [TableGen] Added a function for identification of unsupported opcodes.
This change implements generation of a function which may be used by a backend to check if a given instruction is supported for a specific subtarget.

Reviewers: sdesmalen

Differential Revision: https://reviews.llvm.org/D88214
2020-10-05 14:23:41 +03:00
Gabriel Hjort Åkerlund
ba5a05d667 [TableGen][GlobalISel] add handling of nested *_SUBREG
When nesting INSERT_SUBREG and EXTRACT_SUBREG, GlobalISelEmitter would
fail to find the register class of the nested node. This patch fixes
that for registers with subregs.

Reviewed By: arsenm

Differential Revision: https://reviews.llvm.org/D88487
2020-10-05 10:42:18 +02:00
LLVM GN Syncbot
90e91d175f [gn build] Port 6c6cd5f8a97 2020-10-04 19:10:39 +00:00
LLVM GN Syncbot
235ba6748a [gn build] Port ace644030e6 2020-10-02 23:59:59 +00:00
Arthur Eubanks
63659fb23e [gn build] Don't define CINDEX_EXPORTS
This causes
../../clang/include\clang-c/Platform.h(23,11): warning: 'CINDEX_EXPORTS' macro redefined [-Wmacro-redefined]
  #define CINDEX_EXPORTS
2020-10-02 10:39:49 -07:00
LLVM GN Syncbot
6db7f6f068 [gn build] Port 0c1bb4f8851 2020-10-02 14:24:01 +00:00
Paul C. Anagnostopoulos
6ec902749c [TableGen] New backend to print detailed records.
Pertinent lints are fixed.
2020-10-02 10:22:13 -04:00
Arthur Eubanks
f70b28627d [gn build] Support building with ThinLTO
Differential Revision: https://reviews.llvm.org/D88584
2020-10-01 13:48:31 -07:00
Reid Kleckner
f0bf98943a [lit] Fix Python 2/3 compat in new winreg search code
This should fix the test failures on the clang win64 bot:
http://lab.llvm.org:8011/builders/clang-x64-windows-msvc/builds/18830
It has been red since Sept 23-ish.

This was subtle to debug. Windows has 'find' and 'sort' utilities in
C:\Windows\system32, but they don't support all the same flags as the
coreutils programs. I configured the buildbot above with Python 2.7
64-bit (hey, it was set up in 2016). When I installed git for Windows, I
opted to add all the Unix utilities that come with git to the system
PATH. This is *almost* enough to make the LLVM tests pass, but not
quite, because if you use the system PATH, the Windows version of find
and sort come first, but the tests that use diff, cmp, etc, will all
pass. So only a handful of tests will fail, and with cryptic error
messages.

The code changed in this CL doesn't work with Python 2. Before
Python 3.2, the winreg.OpenKey function did not accept the `access=`
keyword argument, the caller was required to pass an unused `reserved`
positional argument of 0. The try/except/pass around the OpenKey
operation masked this usage error in Python 2.

Further, the result of the registry operation has to be converted from
unicode to add it to the environment, but that was incidental.
2020-10-01 12:22:28 -07:00
LLVM GN Syncbot
fb69abb068 [gn build] Port f6b1323bc68 2020-10-01 14:18:52 +00:00
LLVM GN Syncbot
77de5cb36a [gn build] Port d53b4bee0cc 2020-10-01 12:55:59 +00:00
LLVM GN Syncbot
d8d20d81de [gn build] Port 413577a8790 2020-09-30 10:09:34 +00:00
Xiang1 Zhang
92910706f0 [X86] Support Intel Key Locker
Key Locker provides a mechanism to encrypt and decrypt data with an AES key without having access
to the raw key value by converting AES keys into “handles”. These handles can be used to perform the
same encryption and decryption operations as the original AES keys, but they only work on the current
system and only until they are revoked. If software revokes Key Locker handles (e.g., on a reboot),
then any previous handles can no longer be used.

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D88398
2020-09-30 18:08:45 +08:00
Arthur Eubanks
a8a0bb5888 [gn build] Add missing dependency to Extensions 2020-09-29 20:12:00 -07:00
LLVM GN Syncbot
51ad2660a8 [gn build] Port 6d193ba3337 2020-09-29 17:50:16 +00:00
LLVM GN Syncbot
117b16b4b6 [gn build] Port 54d9f743c8b 2020-09-29 00:24:06 +00:00
Nico Weber
cce683e16e [gn build] Re-run CompletionModelCodegen when input json files change 2020-09-28 16:58:00 -04:00
Paul C. Anagnostopoulos
90d4bf8784 [TableGen] Improved messages in PseudoLoweringEmitter. 2020-09-28 10:18:22 -04:00
LLVM GN Syncbot
9643d50ff5 [gn build] Port 018066d9475 2020-09-28 11:38:04 +00:00
Fangrui Song
4e56e25d41 Internalize functions from various tools. NFC
And internalize some classes if I noticed them:)
2020-09-26 15:57:13 -07:00
Nico Weber
247d4d7f35 [gn build] update TODO 2020-09-26 12:42:50 -04:00
LLVM GN Syncbot
e82f648232 [gn build] Port e336b74c995 2020-09-25 12:13:19 +00:00
Zachary Turner
072701ad39 [lit] Support running tests on Windows without GnuWin32
Historically, we have told contributors that GnuWin32 is a pre-requisite
because our tests depend on utilities such as sed, grep, diff, and more.
However, Git on Windows includes versions of these utilities in its
installation.  Furthermore, GnuWin32 has not been updated in many years.
For these reasons, it makes sense to have the ability to run llvm tests
in a way that is both:
  a) Easier on the user (less stuff to install)
  b) More up-to-date (The verions that ship with git are at least as
     new, if not newer, than the versions in GnuWin32.

We add support for this here by attempting to detect where Git is
installed using the Windows registry, confirming the existence of
several common Unix tools, and then adding this location to lit's PATH
environment.

Differential Revision: https://reviews.llvm.org/D84380
2020-09-24 08:21:43 -04:00
Arthur Eubanks
f8ee6ee28a [gn build] Allow option to build with asan/tsan/ubsan
Reviewed By: thakis

Differential Revision: https://reviews.llvm.org/D88056
2020-09-23 11:24:38 -07:00
Paul C. Anagnostopoulos
a0352b58a7 Enhance TableGen so that backends can produce better error messages.
Modify SearchableTableEmitter.cpp to take advantage.
Clean up formatting and capitalization issues.
2020-09-23 13:35:32 -04:00
LLVM GN Syncbot
260bab443f [gn build] Port 8a64689e264 2020-09-22 18:07:36 +00:00
LLVM GN Syncbot
a70054367a [gn build] Port 848d66fafd2 2020-09-22 18:07:35 +00:00
LLVM GN Syncbot
b039eded77 [gn build] Port af582c9b0f3 2020-09-22 06:47:54 +00:00
Baptiste Saleil
85360aaf7b [PowerPC] Add vector pair load/store instructions and vector pair register class
This patch adds support for the lxvp, lxvpx, plxvp, stxvp, stxvpx and pstxvp
instructions in the PowerPC backend. These instructions allow loading and
storing VSX register pairs. This patch also adds the VSRp register class
definition needed for these instructions.

Differential Revision: https://reviews.llvm.org/D84359
2020-09-21 10:27:47 -05:00
Simon Pilgrim
c24ea426d7 Update update_analyze_test_checks.py to support API changes from D83004 2020-09-21 16:09:05 +01:00
LLVM GN Syncbot
3f2961bc88 [gn build] Port 4fc0214a101 2020-09-21 12:47:54 +00:00
Nico Weber
fa66d9af58 [gn build] Port 2124ca1d5cb 2020-09-19 08:34:58 -04:00
Nico Weber
d4bdf8df2e [gn build] (manually) merge 2124ca1d5 2020-09-19 08:29:55 -04:00
Nico Weber
9723fed320 Revert "Revert "[gn build] (manually) port 9b6765e784b3" anf follow-ups"
This reverts commit 90fffdd0f705bfb480810cef087305567dc4f6cf.
The original change relanded.
2020-09-19 08:28:38 -04:00
Nico Weber
a5b0afab2f [gn build] (manually) port 5495b691646 2020-09-18 21:27:49 -04:00
Nico Weber
6200c8c5c9 Revert "[gn build] (manually) port 9b6765e784b3" anf follow-ups
9b6765e784b3 was reverted in 549e55b3d5634.

This reverts commit 442801a7b9b5460114498c48c12b8af40e495188.
This reverts commit 929d91a55616d4fcf4754044b063644807b87fbe.
This reverts commit 7c2d83347f4ea146af1aca72fe289294aaf212be.
2020-09-18 21:14:27 -04:00
Nico Weber
6640720520 clang: Make changes in 7c8bb409f31e py2.7-compatible 2020-09-18 16:15:37 -04:00
Nico Weber
671cddeebe [gn build] add file i forgot to add in 929d91a55616 2020-09-18 16:01:00 -04:00
Nico Weber
28eea2351a [gn build] (manually) port 9b6765e784b3 more 2020-09-18 15:56:34 -04:00
Nico Weber
9376a275d8 [gn build] Do not sync filenames containing variable references 2020-09-18 15:34:33 -04:00
Nico Weber
cbeef0ae5c [gn build] (manually) port 9b6765e784b3 2020-09-18 15:26:58 -04:00
Matt Arsenault
15d1f58f1b emacs: Add nofree and willreturn to list of attributes 2020-09-18 09:48:33 -04:00
David Greene
6628767888 [UpdateCCTestChecks] Include generated functions if asked
Add the --include-generated-funcs option to update_cc_test_checks.py so that any
functions created by the compiler that don't exist in the source will also be
checked.

We need to maintain the output order of generated function checks so that
CHECK-LABEL works properly.  To do so, maintain a list of functions output for
each prefix in the order they are output.  Use this list to output checks for
generated functions in the proper order.

Differential Revision: https://reviews.llvm.org/D83004
2020-09-18 06:34:59 -05:00
Gabriel Hjort Åkerlund
7fb62030d9 [TableGen][GlobalISel] Fix handling of zero_reg
When generating matching tables for GlobalISel, TableGen would output
"::zero_reg" whenever encountering the zero_reg, which in turn would
result in compilation error. This patch fixes that by instead outputting
NoRegister (== 0), which is the same result that TableGen produces when
generating matching tables for ISelDAG.

Reviewed By: arsenm

Differential Revision: https://reviews.llvm.org/D86215
2020-09-18 11:01:11 +02:00
LLVM GN Syncbot
363f3d6efc [gn build] Port 7e4c6fb8546 2020-09-17 19:09:34 +00:00
Nico Weber
8542f0e600 [gn build] (manually) port c9af34027bc 2020-09-17 06:33:24 -04:00
LLVM GN Syncbot
0dbccab8b5 [gn build] Port a895040eb02 2020-09-17 03:02:00 +00:00
LLVM GN Syncbot
94a2e109f9 [gn build] Port b04c1a9d312 2020-09-17 01:54:10 +00:00
Nico Weber
54684569c2 [gn build] (manually) port 1321160a2 2020-09-16 18:29:07 -04:00
David Greene
eb1409d08e [UpdateTestChecks] Allow $ in function names
Some compilers generation functions with '$' in their names, so recognize those
functions.

This also requires recognizing function names inside quotes in some contexts in
order to escape certain characters.

Differential Revision: https://reviews.llvm.org/D82995
2020-09-16 14:34:18 -05:00
LLVM GN Syncbot
05cd8277f1 [gn build] Port 56069b5c71c 2020-09-16 19:03:25 +00:00