[AArch64] Make the list of LSE supported operations explicit (#171126)
Similar to #167760 this makes the list of LSE atomics explicit in case
new operations are added in the future. UIncWrap, UDecWrap, USubCond and
USubSat are excluded.
Fixes #170450
Add more missing `LLVM_ABI` annotations (#168765)
This patch updates various LLVM headers to properly add the `LLVM_ABI`
and `LLVM_ABI_FOR_TEST` annotations ot build LLVM as a DLL on Windows.
This effort is tracked in #109483.
[mlir] Fix -Wparentheses warning [NFC]
Without this gcc warned
../../mlir/lib/Dialect/SCF/IR/SCF.cpp:3748:70: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
[OpenMP] Fix -Wparentheses warning [NFC]
Without this gcc warned
../lib/Frontend/OpenMP/OMPIRBuilder.cpp:5082:45: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
[AArch64]SIMD fpcvt codegen for rounding nodes (#165546)
This is followup patch to
https://github.com/llvm/llvm-project/pull/157680, which allows simd
fpcvt instructions to be generated from l/llround and l/llrint nodes.
[FMV][AArch64] Allow user to override version priority. (#150267)
Implements https://github.com/ARM-software/acle/pull/404
This allows the user to specify "featA+featB;priority=[1-255]" where
priority=255 means highest priority. If the explicit priority string is
omitted then the priority of "featA+featB" is implied, which is lower
than priority=1.
Internally this gets expanded using special FMV features P0 ... P7 which
can encode up to 256-1 priority levels (excluding all zeros). Those do
not have corresponding detection bit at pos FEAT_#enum so I made this
field optional in FMVInfo. Also they don't affect the codegen or name
mangling of versioned functions.
[NFC][AMDGPU] Remove unused TableGen generated enum (#171170)
This GenericEnum was just adding separate values for VOP3P_Pseudo
opcodes in the same namespace as existing opcodes that did not match.
They were defined in AMDGPUGenSearchableTables.inc by tablegen emitter
but were guarded out by #ifdef. Because of that, they were never
included in the code, so the compiler never reported the naming
conflict and the bug never had a chance to surface.
[AMDGPU][SIInsertWaitCnts] Use RegUnits-based tracking (#162077)
The pass was already "reinventing" the concept just to deal with 16 bit
registers. Clean up the entire tracking logic to only use register
units.
There are no test changes because functionality didn't change, except:
- We can now track more LDS DMA IDs if we need it (up to `1 << 16`)
- The debug prints also changed a bit because we now talk in terms of
register units.
This also changes the tracking to use a DenseMap instead of a massive
fixed size table. This trades a bit of access speed for a smaller memory
footprint. Allocating and memsetting a huge table to zero caused a
non-negligible performance impact (I've observed up to 50% of the time
in the pass spent in the `memcpy` built-in on a big test file).
I also think we don't access these often enough to really justify using
a vector. We do a few accesses per instruction, but not much more. In a
huge 120MB LL file, I can barely see the trace of the DenseMap accesses.
[lldb][docs] Fix header level warnings in a few documents
All these are using H1 for the main heading but H3 for the
rest, Sphinx warns about this:
WARNING: Non-consecutive header level increase; H1 to H3 [myst.header]
[lldb][docs] Fix plain text markers in Contributing
RST tries to resolve things in single backticks to a reference,
which is not the intention here. Double backticks indicates
plain text formatting.
Fixes warnings in the docs build:
contributing.rst:92: WARNING: 'any' reference target not found: A1
contributing.rst:92: WARNING: 'any' reference target not found: B1
contributing.rst:92: WARNING: 'any' reference target not found: B2
contributing.rst:92: WARNING: 'any' reference target not found: A2
contributing.rst:95: WARNING: 'any' reference target not found: A1->B1
contributing.rst:95: WARNING: 'any' reference target not found: B2->C2
contributing.rst:95: WARNING: 'any' reference target not found: C3->A3
contributing.rst:100: WARNING: 'any' reference target not found: LLDB_ACCEPTABLE_PLUGIN_DEPENDENCIES
contributing.rst:100: WARNING: 'any' reference target not found: LLDB_TOLERATED_PLUGIN_DEPENDENCIES
[llvm-mca][AArch64] Merge Neoverse NEON tests (NFC) (#170881)
Follow-on from #170324 to also refactor the NEON tests to reuse the
input assembly across all Neoverse cores.
The approach is as follows:
- Inputs for Neoverse N1/N2/N3 NEON tests are already identical, so
first combine those.
- Inputs for V2/V3/V3AE NEON tests are also already identical, but
differ from N-cores, so combine those separately.
- Most significantly, input for V1 differs from all other cores
primarily because of 24f0901 (#128892).
- Split out features that are not supported across all cores.
- Split out FEAT_I8MM, FEAT_FHM, FEAT_FCMA. N1 doesn't have this
feature but all other Neoverse cores do. Also adds coverage for
N2/N3 since they were missing tests.
- Split out FEAT_BF16. V1 doesn't have this feature but all other
Neoverse cores do. Also adds coverage for N1/N2/N3 since they were
[23 lines not shown]
[lldb][docs] Remove syntax hint from some output blocks
This tries to parse the block as that language but in these
cases fails because they aren't purely that language. This
falls back to a permissive mode which is fine, but highlights
the invalid tokens like errors which isn't great.
Instead don't try to highlight these blocks. This fixes 4
warnings seen in the docs build:
lldb/docs/use/tutorials/custom-frame-recognizers.md:43: WARNING: Lexing literal_block <...> as "c++" resulted in an error at token: '#'. Retrying in relaxed mode.
lldb/docs/use/tutorials/script-driven-debugging.md:175: WARNING: Lexing literal_block <...> as "c++" resulted in an error at token: '#'. Retrying in relaxed mode.
lldb/docs/use/tutorials/script-driven-debugging.md:426: WARNING: Lexing literal_block <...> as "c++" resulted in an error at token: '#'. Retrying in relaxed mode.
lldb/docs/use/tutorials/writing-custom-commands.md:416: WARNING: Lexing literal_block <...> as "python3" resulted in an error at token: '$'. Retrying in relaxed mode.
[lldb][docs] Fix plaintext marker in variables doc
Single backtick tries to make a reference to something
and if that fails, renders as plain text.
These 3 weren't finding a reference and so produced
a warning:
variable.rst:975: WARNING: 'any' reference target not found: max_children