[lldb] Adopt ProcessAddress in the read memory APIs (NFC) (#214088)
Relevant RFC:
https://discourse.llvm.org/t/rfc-address-spaces-support-in-lldb/91222/
Previous PR #206370 adding the AddressSpace definitions.
- switches the read memory virtuals from lldb::addr_t to const
ProcessAddress & and updates every override. No behavior change
expected.
**Test Plan**
- Depending on the buildbots for all other platforms.
[lldb] Keep DW_OP_fbreg results address-sized (#216641)
DW_OP_fbreg adds its signed displacement as an int64_t, which can widen
a 32-bit frame-base Scalar to 64 bits. Canonicalize the pushed result
using the evaluator's existing generic conversion so subsequent
arithmetic uses the target address width.
Add an i386 regression test that checks 32-bit wrapping and the
resulting APSInt width.
Fixes #211007
[BOLT][AArch64] Add call relaxation pass (#173952)
Add a function call relaxation pass that groups functions into clusters,
each with a maximum size of 128MB. This pass is enabled using the
`--relax-exp` option.
* Within each cluster: function calls do not require relaxation.
* Between clusters: thunks are created at the cluster boundaries to
handle inter-cluster calls. These thunks can be either short or long,
depending on the proximity of the thunk destination. When possible, a
long thunk may be shared by both adjacent clusters.
* Hot functions: if all hot functions (after reordering) fit within a
single cluster (under 128MB), no thunks are needed on the hot path, as
determined by the profile.
* PLT behavior: for the Procedure Linkage Table (PLT), it is currently
assumed that the hottest cluster will be placed adjacent to the PLT, so
[8 lines not shown]
[Driver] Treat -O4 as -O3 in clang::getOptimizationLevel, which is called when building LTO link command (#216450)
#169762 (commit e60a69ab8a9e7) replaced the -O option handling in
`tools::addLTOOptions` with `getOptimizationLevel()`, but
`getOptimizationLevel` doesn't expect -O4, while `addLTOOptions` used to
accept and without diagnostics. Teach `getOptimizationLevel` about -O4
and don't diagnose to revert to the old behavior.
---------
Co-authored-by: Wael Yehia <wyehia at ca.ibm.com>
[NFC][MemProf] Replace memprofraw with YAML in memprofmissingfunc.ll test
Use split-file to create a basic `.memprofdata` file to be used in the test. This also allows us to remove the REQUIRES because we are no longer reading a binary file.
[flang] Fix incorrect DSE of VALUE dummy arg copy stores due to TBAA mismatch (#215366)
Assisted by : IBM Bob
**Problem:**
When a BIND(C) derived-type dummy argument with the VALUE attribute is
large
enough to be passed on the stack (e.g. PPC64 byval ABI), Flang lowers it
as
a local `fir.alloca` with a `fir.declare` carrying
`fortran_attrs = value`. Before this fix, `AddAliasTags` classified
accesses
to that alloca under the `"allocated data"` TBAA subtree
(`SourceKind::Allocate`). However, other accesses to the same dummy
variable
were tagged under the `"dummy arg data"` subtree
(`SourceKind::Argument`).
Because these two subtrees are siblings under `"any data access"`,
LLVM's
[47 lines not shown]