Commit Graph

13737 Commits

Author SHA1 Message Date
Freddy Ye
f4509cf284 [X86][MC] Support enc/dec for SETZUCC and promoted SETCC. (#86473)
apx-spec: https://cdrdv2.intel.com/v1/dl/getContent/784266
apx-syntax-recommendation:
https://cdrdv2.intel.com/v1/dl/getContent/817241
2024-04-11 10:18:29 +08:00
Arthur Eubanks
9786a3b4cf [gn build] Port 0a1317564a 2024-04-10 23:41:11 +00:00
Arthur Eubanks
233edab876 [gn build] Port 5d7d6ad663 2024-04-10 23:41:11 +00:00
Arthur Eubanks
4027066683 [gn build] Port 59e66c515a 2024-04-10 23:41:10 +00:00
Arthur Eubanks
19e516fbed [gn build] Port 1fda1776e3 2024-04-10 23:41:10 +00:00
Peter Collingbourne
4ae8694cca gn build: Manually port a30662fc2a 2024-04-09 13:24:20 -07:00
Björn Pettersson
5d9d740c39 Remove the unused IntervalPartition analysis pass (#88133)
This removes the old legacy PM "intervals" analysis pass (aka
IntervalPartition). It also removes the associated Interval and
IntervalIterator help classes.

Reasons for removal:
1) The pass is not used by llvm-project (not even being tested by
   any regression tests).
2) Pass has not been ported to new pass manager, which at least
   indicates that it isn't used by the middle-end.
3) ASan reports heap-use-after-free on
      ++I;  // After the first one...
   even if false is passed to intervals_begin. Not sure if that is
   a false positive, but it makes the code a bit less trustworthy.
2024-04-09 20:12:26 +02:00
Arthur Eubanks
1c4ec8def6 [gn build] Port d288444447 2024-04-09 00:17:47 +00:00
Arthur Eubanks
65c57bf242 [gn build] Port 7a4e89761a 2024-04-09 00:17:47 +00:00
Arthur Eubanks
b2f8172d72 [gn build] Port 27b2d7d4bb 2024-04-09 00:17:47 +00:00
Arthur Eubanks
5772fc890f [gn build] Add missing dependency 2024-04-05 17:42:36 +00:00
Arthur Eubanks
965e053eb3 [gn build] Port f5960c168d 2024-04-05 17:37:46 +00:00
Arthur Eubanks
6411aaf99c [gn build] Port e84a757222 2024-04-05 17:37:45 +00:00
Arthur Eubanks
666fd665e9 [gn build] Port 30f6eafaa9 2024-04-05 17:37:44 +00:00
Arthur Eubanks
0e60cf7f4b [gn build] Manually port 68b939f9 2024-04-05 17:37:30 +00:00
David Spickett
aff197ff21 Reland "[flang][clang] Add Visibility specific help text for options (#81869)"
This reverts commit 67d20412b4.

This includes fixes for clanginstallapi.
2024-04-05 08:27:59 +00:00
David Spickett
67d20412b4 Revert "[flang][clang] Add Visibility specific help text for options (#81869)"
This reverts commit 7e958f64ef.

Failing on multiple bots.
2024-04-05 08:15:35 +00:00
David Spickett
7e958f64ef [flang][clang] Add Visibility specific help text for options (#81869)
And use it to print the correct default OpenMP version for flang and
flang -fc1.

This change adds an optional `HelpTextsForVariants` to options. This
allows you to change the help text that gets shown in documentation and
`--help` based on the program its being generated for.

As `OptTable` needs to be constexpr compatible, I have used a std::array
of help text variants. Each entry is:
(list of visibilities) - > help text string

So for the OpenMP version we have (flang, fc1) -> "OpenMP version for
flang is...".

So you can have multiple visibilities use the same string. The number of
entries is currently set to 1, and the number of visibilities per entry
is 2, because that's the maximum we need for now. The code is written so
we can increase these numbers later, and the unused elements will be initialised.

I have not applied this to group descriptions just because I don't know
of one that needs changing. It could easily be enabled for those too if
needed. There are minor changes to them just to get it all to compile.

This approach of storing many help strings per option in the 1 driver
library seemed preferable to making a whole new library for Flang (even
if that would mostly be including stuff from Clang).
2024-04-05 09:03:16 +01:00
Vitaly Buka
49f0b536fd [UBSAN] Rename remove-traps to lower-allow-check (#84853) 2024-04-04 21:29:46 -07:00
Shilei Tian
cfadf3f622 [TableGen] Fix a potential crash when operand doesn't appear in the instruction pattern (#87663)
We have a check of whether an operand is in the instruction pattern, and
emit an
error if it is not, but we simply continue execution, including directly
dereferencing a point-like object `InVal`, which will be just created
when
accessing the map. It contains a `nullptr` so dereferencing it causes
crash.
This is a very trivial fix.
2024-04-04 20:29:26 -04:00
Arthur Eubanks
258dd64978 [gn build] Port fd38366e45 2024-04-04 17:05:32 +00:00
Arthur Eubanks
13e7572111 [gn build] Port 8bb9443333 2024-04-04 17:05:31 +00:00
Arthur Eubanks
6cf532891f [gn build] Port 3365d62179 2024-04-04 17:05:30 +00:00
Arthur Eubanks
0f7266a97c [gn build] Manually port 6f2d8cc0 2024-04-04 17:05:11 +00:00
Arthur Eubanks
fb2a380b5d [gn build] Manually port 1679b27 2024-04-04 16:47:29 +00:00
Simon Pilgrim
ecb34599bd [X86] Add missing immediate qualifier to the (V)ROUND instructions (#87636)
Makes it easier to algorithmically recreate the instruction name in various analysis scripts I'm working on
2024-04-04 15:20:16 +01:00
Pengcheng Wang
b342d87f89 [TableGen][NFC] Add maybe_unused to MRI (#87044)
This suppresses warning `unused variable 'MRI' [-Wunused-variable]`
for those fusions that don't need `MRI`.
2024-04-01 18:04:28 +08:00
superZWT123
da1d3d8fb9 [TableGen] Introduce a less aggressive suppression for HwMode Decoder… (#86060)
1. Remove 'AllModes' and 'DefaultMode' suffixes for DecoderTables under
default HwMode.
2. Introduce a less aggressive suppression for HwMode DecoderTable, only
reduce necessary tables duplications. This allows encodings under
different HwModes to retain the original DecoderNamespace.
3. Change 'suppress-per-hwmode-duplicates' command option from bool type
to enum type, allowing users to choose what level of suppression to use.
2024-04-01 17:19:46 +08:00
Shilei Tian
360f7f5674 [GlobalISel] Call setInstrAndDebugLoc before tryCombineAll (#86993)
This can remove all unnecessary redundant calls in each combiner.
2024-03-29 15:27:28 -04:00
LLVM GN Syncbot
1403cf67a6 [gn build] Port 316634ff59 2024-03-29 11:12:23 +00:00
LLVM GN Syncbot
aeab2bb55e [gn build] Port 1d99d7a6f8 2024-03-29 08:00:41 +00:00
J. Ryan Stinnett
8a7f021f9e [GitHub] Fix typos in automation (#86886) 2024-03-28 10:37:31 +00:00
Marc Auberer
0fda758f26 [GISEL][NFC] Refactor OperandPredicateMatcher::isHigherPriorityThan (#86837)
Fixes #86827

This will simplify code, de-duplicate some logic and fix the faulty bool
compare.

cc @dcb314
2024-03-28 01:19:09 +01:00
Craig Topper
baf66ec061 [Target][RISCV] Add HwMode support to subregister index size/offset. (#86368)
This is needed to provide proper size and offset for the GPRPair subreg
indices on RISC-V. The size of a GPR already uses HwMode. Previously we
said the subreg indices have unknown size and offset, but this stops
DwarfExpression::addMachineReg from being able to find the registers
that make up the pair.

I believe this fixes https://github.com/llvm/llvm-project/issues/85864
but need to verify.
2024-03-27 12:19:28 -07:00
LLVM GN Syncbot
b343b02a88 [gn build] Port 4f9aab2b50 2024-03-27 13:14:36 +00:00
Pierre van Houtryve
4f9aab2b50 [NFC][TableGen][GlobalISel] Move MIR pattern parsing out of combiner (#86789)
Reland of cfa0833ccc
2024-03-27 13:53:36 +01:00
LLVM GN Syncbot
408c36522f [gn build] Port 1103a2a337 2024-03-27 12:00:32 +00:00
Tom Stellard
de917dc20e [workflow] Don't add a comment when the first run of the formatter passes (#86335)
This was inadvertently changed in
2120f57410.
2024-03-25 15:04:11 -07:00
Justin Fargnoli
36713a47c8 [utils] Use Python3 for bisect-skip-count (#84979) 2024-03-25 14:09:25 -07:00
Nico Weber
6187f271d1 [gn] port fa3d789df1 more (tblgen restructure)
I had missed that both tblgens still both need a bunch of identical
cpp files. Let's just reintroduce the source_set() for them, even
though the CMake build removed the object library for them in favor
of duplicating the file list for some reason.
2024-03-25 13:46:46 -04:00
Nico Weber
5ef09540e1 [gn] port 4fb0805c65
That's an old commit, but it suddenly became load-bearing, maybe
due to 0cf4788d9d
2024-03-25 13:11:25 -04:00
Justin Bogner
a83ed0423d [DirectX] Follow naming conventions for enumerators in DXILABI.h. NFC (#86237)
These all-caps names differ from the llvm naming conventions for no good
reason, and `VOID` in all caps can cause problems in windows
environments (see [1]). Rename them to UpperCamelCase.

[1]: https://github.com/clangd/clangd/issues/1983
2024-03-25 09:49:32 -07:00
Nico Weber
002f7808c9 [gn] port fa3d789df1 (tblgen restructure) 2024-03-25 12:36:17 -04:00
Joseph Huber
46a737cef2 [LLVM] Fix linking object library in tablegen
Summary:
The patch https://github.com/llvm/llvm-project/pull/80847 introduced
some changes to how we build tablegen. Some files weren't build included
properly on my build. We don't need to fish out the objects directly
from an object library build, we can simply add it to the link libraries
and CMake will include them for you. This fixed the issue of missings
defs for me and is more canonical.
2024-03-25 08:02:53 -05:00
NagyDonat
e1d4ddb0c6 Reapply "[analyzer] Accept C library functions from the std namespace" again (#85791)
This reapplies 80ab8234ac again, after
fixing a name collision warning in the unit tests (see the revert commit
13ccaf9b9d for details).

In addition to the previously applied changes, this commit also clarifies the
code in MallocChecker that distinguishes POSIX "getline()" and C++ standard
library "std::getline()" (which are two completely different functions). Note
that "std::getline()" was (accidentally) handled correctly even without this
clarification; but it's better to explicitly handle and test this corner case.

---------

Co-authored-by: Balazs Benics <benicsbalazs@gmail.com>
2024-03-25 12:43:51 +01:00
pvanhout
7434a6b96c [TableGen] Fix Linker Errors
Fix linker errors after landing fa3d789df1
2024-03-25 10:50:08 +01:00
Pierre van Houtryve
fa3d789df1 [RFC][TableGen] Restructure TableGen Source (#80847)
Refactor of the llvm-tblgen source into:
- a "Basic" library, which contains the bare minimum utilities to build
`llvm-min-tablegen`
- a "Common" library which contains all of the helpers for TableGen
backends. Such helpers can be shared by more than one backend, and even
unit tested (e.g. CodeExpander is, maybe we can add more over time)

Fixes #80647
2024-03-25 09:40:35 +01:00
Sergei Barannikov
5e5b656102 [MC] Make MCParsedAsmOperand::getReg() return MCRegister (#86444) 2024-03-25 05:13:48 +03:00
LLVM GN Syncbot
8e698a1d8e [gn build] Port b68e2eba0b 2024-03-24 00:56:59 +00:00
Nico Weber
a118769ec8 [gn] port 3bc71c2abf 2024-03-23 20:56:45 -04:00