SuccessChanges

Summary

  1. [clangd] exclude symbols from document outline which do not originate from the main file (details)
  2. [LLDB] Add per-thread register infos shared pointer in gdb-remote (details)
  3. DynamicRegisterInfo calculate offsets in separate function (details)
  4. [RISCV] Optimize Branch Comparisons (details)
  5. [SVE] Restrict the usage of REINTERPRET_CAST. (details)
  6. [Orc][NFC] Turn LLJIT member ObjTransformLayer into unique_ptr (details)
  7. [Orc] Allow LLJITBuilder's CreateObjectLinkingLayer to return errors (details)
  8. [NFC][RISCV] Remove useless code in RISCVRegisterInfo.td. (details)
  9. [lldb][docs] Use sphinx instead of epydoc to generate LLDB's Python reference (details)
  10. [Orc] Fix OrcV2Examples after D94690 (details)
Commit 9cc221b99becf20397d935981eeb48cba5be7faf by ilya.golovenko
[clangd] exclude symbols from document outline which do not originate from the main file

Differential Revision: https://reviews.llvm.org/D94753
The file was modifiedclang-tools-extra/clangd/unittests/FindSymbolsTests.cpp
The file was modifiedclang-tools-extra/clangd/FindSymbols.cpp
Commit 4fd77668b2cc215f0605fe20bb989b90b29f4346 by omair.javaid
[LLDB] Add per-thread register infos shared pointer in gdb-remote

In gdb-remote process we have register infos defind as a refernce object of
GDBRemoteDynamicRegisterInfo class. In past register infos have remained
constant througout the life time of a process.

This has changed after AArch64 SVE support where register infos will have
per-thread configuration. SVE registers will have per-thread size and can
be updated while running. This patch aims to build up for that support by
changing GDBRemoteDynamicRegisterInfo reference to a shared pointer deinfed
per-thread.

Reviewed By: labath

Differential Revision: https://reviews.llvm.org/D82857
The file was modifiedlldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.h
The file was modifiedlldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
The file was modifiedlldb/source/Plugins/Process/gdb-remote/ThreadGDBRemote.h
The file was modifiedlldb/source/Plugins/Process/gdb-remote/ThreadGDBRemote.cpp
The file was modifiedlldb/source/Plugins/Process/Utility/DynamicRegisterInfo.h
The file was modifiedlldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
The file was modifiedlldb/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp
The file was modifiedlldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp
Commit b9993fcbf53aa28ca2e7696a1855affeb558b51c by omair.javaid
DynamicRegisterInfo calculate offsets in separate function

This patch pull offset calculation logic out of DynamicRegisterInfo::Finalize
into a separate function. We are going to call this function whenever we
update SVE register sizes.

Reviewed By: labath

Differential Revision: https://reviews.llvm.org/D94008
The file was modifiedlldb/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp
The file was modifiedlldb/source/Plugins/Process/Utility/DynamicRegisterInfo.h
Commit 141e45b99ca09235b985504e8108dbb3cf210fbd by selliott
[RISCV] Optimize Branch Comparisons

I noticed in D94450 that there were quite a few places where we generate
the sequence:
```
  xN <- comparison ...
  xN <- xor xN, 1
  bnez xN, symbol
```

Given we know the XOR will be used by BRCOND, which only looks at the lowest
bit, I think we can remove the XOR and just invert the branch condition in
these cases?

The case mostly seems to come up in floating point tests, where there is often
more logic to combine the results of multiple SETCCs, rather than a single
(BRCOND (SETCC ...) ...).

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D94535
The file was modifiedllvm/test/CodeGen/RISCV/half-br-fcmp.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfo.td
The file was modifiedllvm/test/CodeGen/RISCV/double-br-fcmp.ll
The file was modifiedllvm/test/CodeGen/RISCV/float-br-fcmp.ll
Commit 2b8db40c92186731effd8948049919db8cf37dee by paul.walker
[SVE] Restrict the usage of REINTERPRET_CAST.

In order to limit the number of combinations of REINTERPRET_CAST,
whilst at the same time prevent overlap with BITCAST, this patch
establishes the following rules:

1. The operand and result element types must be the same.
2. The operand and/or result type must be an unpacked type.

Differential Revision: https://reviews.llvm.org/D94593
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.h
The file was modifiedllvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
Commit a5eb9df1e3ba0a1c5d755f29f6f4cdcca4aec285 by Stefan Gränitz
[Orc][NFC] Turn LLJIT member ObjTransformLayer into unique_ptr

All other layers in LLJIT are stored as unique_ptr's already. At this point, it is not strictly necessary for ObjTransformLayer, but it makes a follow-up change more straightforward.

Reviewed By: lhames

Differential Revision: https://reviews.llvm.org/D94689
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/LLJIT.h
The file was modifiedllvm/lib/ExecutionEngine/Orc/LLJIT.cpp
Commit cf905274c6f4ec119fdb06a283070dcae4ed5881 by Stefan Gränitz
[Orc] Allow LLJITBuilder's CreateObjectLinkingLayer to return errors

It can be useful for an ObjectLinkingLayerCreator to allow callee errors to get propagated to the builder. Specifically, this is the case when the ObjectLayer uses the EHFrameRegistrationPlugin, because it requires a TPCEHFrameRegistrar and instantiation for it may fail (e.g. if the required registration symbols are missing in the target process).

Reviewed By: lhames

Differential Revision: https://reviews.llvm.org/D94690
The file was modifiedllvm/lib/ExecutionEngine/Orc/LLJIT.cpp
The file was modifiedllvm/examples/OrcV2Examples/LLJITWithGDBRegistrationListener/LLJITWithGDBRegistrationListener.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/LLJIT.h
The file was modifiedllvm/examples/OrcV2Examples/LLJITWithObjectLinkingLayerPlugin/LLJITWithObjectLinkingLayerPlugin.cpp
Commit 619eb14775990d610236288f414a486d86df47cc by kai.wang
[NFC][RISCV] Remove useless code in RISCVRegisterInfo.td.

Differential Revision: https://reviews.llvm.org/D94750
The file was modifiedllvm/lib/Target/RISCV/RISCVRegisterInfo.td
Commit bab121a1b66e85390cad019ec921febcba35519d by Raphael Isemann
[lldb][docs] Use sphinx instead of epydoc to generate LLDB's Python reference

Currently LLDB uses epydoc to generate the Python API reference for the website.
epydoc however is unmaintained since more than a decade and no longer works with
Python 3. Also whatever setup we had once for generating the documentation on
the website server no longer seems to work, so the current website documentation
has been stale since more than a year.

This patch replaces epydoc with sphinx and its automodapi plugin that can
generate Python API references. LLVM already uses sphinx for the rest of the
documentation, so this way we are more consistent with the rest of LLVM. The
only new dependency is the automodapi plugin for sphinx.

This patch effectively does the following things:
* Remove the epydoc code.
* Make a new dummy Python API page in our website that just calls the Sphinx
  command for generated the API documentation.
* Add a mock _lldb module that is only used when generating the Python API.
This way we don't have to build all of LLDB to generate the API reference.

Some notes:
* The long list of skips is necessary due to boilerplate functions that SWIG
  is generating. Sadly automodapi is not really scriptable from what I can see,
  so we have to blacklist this stuff manually.
* The .gitignore change because automodapi wants a subfolder of our
  documentation directory to place generated documentation files there. The path
  is also what is used on the website, so we can't really workaround this
  (without copying the whole `docs` dir somewhere else when we build).
* We have to use environment variables to pass our build path to our sphinx
  configuration. Sphinx doesn't support passing variables onto that script.

Reviewed By: JDevlieghere

Differential Revision: https://reviews.llvm.org/D94489
The file was addedlldb/docs/_lldb/__init__.py
The file was modifiedlldb/docs/index.rst
The file was modified.gitignore
The file was modifiedlldb/docs/conf.py
The file was modifiedllvm/cmake/modules/AddSphinxTarget.cmake
The file was addedlldb/docs/python_api.rst
The file was modifiedlldb/docs/CMakeLists.txt
Commit 6edc3fe598aff04f9c1de6cc2ac97950b73b832d by Stefan Gränitz
[Orc] Fix OrcV2Examples after D94690

Differential Revision: https://reviews.llvm.org/D94690
The file was modifiedllvm/examples/OrcV2Examples/LLJITDumpObjects/LLJITDumpObjects.cpp
The file was modifiedllvm/examples/OrcV2Examples/LLJITWithObjectLinkingLayerPlugin/LLJITWithObjectLinkingLayerPlugin.cpp
The file was modifiedllvm/examples/OrcV2Examples/LLJITWithGDBRegistrationListener/LLJITWithGDBRegistrationListener.cpp