[lldb] Implement delayed breakpoints
This patch changes the Process class so that it delays *physically*
enabling/disabling breakpoints until the process is about to
resume/detach/be destroyed, potentially reducing the packets transmitted
by batching all breakpoints together.
Most classes only need to know whether a breakpoint is "logically"
enabled, as opposed to "physically" enabled (i.e. the remote server has
actually enabled the breakpoint). However, lower level classes like
derived Process classes, or StopInfo may actually need to know whether
the breakpoint was physically enabled. As such, this commit also adds a
"IsPhysicallyEnabled" API.
https://github.com/llvm/llvm-project/pull/192910
[mlir][vector] Generalize castAwayContractionLeadingOneDim (#187312)
This PR generalizes castAwayContractionLeadingOneDim to allow
accumulators with rank 1 to be matched.
With this generalization we allow the following contractions:
```
%c = vector.contract {
indexing_maps = [
affine_map<(d0, d1) -> (d0)>,
affine_map<(d0, d1) -> (d1, d0)>,
affine_map<(d0, d1) -> (d1)>],
iterator_types = ["reduction", "parallel"],
kind = #vector.kind<add>
} %0, %1, %2 : vector<64xf32>, vector<1x64xf32> into vector<1xf32>
```
to be matched and transformed to
[36 lines not shown]
[lldb][NFC] Move BreakpointSite::IsEnabled/SetEnabled into Process
The Process class is the one responsible for managing the state of a
BreakpointSite inside the process. As such, it should be the one
answering questions about the state of the site.
https://github.com/llvm/llvm-project/pull/192910
[lldb-server] Implement support for MultiBreakpoint packet
This is fairly straightforward, thanks to the helper functions created
in the previous commit.
https://github.com/llvm/llvm-project/pull/192910
[lldb-server][NFC] Factor out code handling breakpoint packets
This commit extracts the code handling breakpoint packets into a helper
function that can be used by a future implementation of the
MultiBreakpointPacket.
It is meant to be purely NFC.
There are two functions handling breakpoint packets (`handle_Z`
and `handle_z`) with a lot of repeated code. This commit did not attempt
to merge the two, as that would make the diff much larger due to subtle
differences in the error message produced by the two. The only
deduplication done is in the code processing a GDBStoppointType, where a
helper struct (`BreakpointKind`) and function (`std::optional<BreakpointKind> getBreakpointKind(GDBStoppointType stoppoint_type)`) was created.
https://github.com/llvm/llvm-project/pull/192910
[analyzer] Fix typo in ExprEngine.h (#193535)
While I was studying the code base I have spotted some typo in the
`ExprEngine.h` in this PR I have fixed these typos.
[LifetimeSafety] Simplify `AccessPath` root `PointerUnion` (#193520)
Stores generic `Expr*` and `Decl*` in `AccessPath`'s `PointerUnion` to
avoid problems where we do not have enough available low bits when more
template parameters are added.
[clang][docs] open details of C++{17,14,11} implementation by default (#193141)
Before
https://github.com/llvm/llvm-project/commit/b9c0e590f1fd4ea37da5c2b9b78d8e715c885f56
switched the C++ status page to a reverse chronological order, it made
sense to avoid wasting vertical space for already-implemented standards.
After that switch, it would make sense however to unfold them by
default.
This is for example why I had opened #61426, because CRTL+F did not show
P0588 on the status page[^1]. But not just for this paper, I think the
ease of finding papers is a good argument for folding out those tables.
[^1]: together with the fact that other status pages
([example](https://en.cppreference.com/cpp/compiler_support/20)) have
sorted this paper under C++20 rather than C++11.
[flang] Add the MLIR pass pipelines for dumping (#183144)
The flang driver never registered passes in the MLIR pass registry, so
--mlir-print-ir-before=<pass> always failed with `Cannot find option`.
This commit adds pass registration calls before CLI option parsing in
the -mmlir handler such that all ~30 pipeline passes are now selectable.
[lldb/test] Relax NSBundle formatter test for Darwin embedded platforms (#193659)
Some Foundation APIs have been migrated from Objective-C to Swift while
maintaining backward compatibility. For instance, that can cause
`NSBundle` created via `initWithURL:` to format without the `@"..."`
prefix.
Match the path string without requiring the @ prefix so the test passes
with both the ObjC and Swift implementations
rdar://175394563
Signed-off-by: Med Ismail Bennani <ismail at bennani.ma>