[LV] Add tests with predicated early exits.
Add test coverage for predicated early exits, without instructions that
need predication after the early exits.
[Clang] Introduce OverflowBehaviorType for fine-grained overflow control (#148914)
Introduce `OverflowBehaviorType` (OBT), a new type attribute in Clang
that provides developers with fine-grained control over the overflow
behavior of integer types. This feature allows for a more nuanced
approach to integer safety, achieving better granularity than global
compiler flags like `-fwrapv` and `-ftrapv`. Type specifiers are also
available as keywords `__ob_wrap` and `__ob_trap`.
These can be applied to integer types (both signed and unsigned) as well
as typedef declarations, where the behavior is one of the following:
* `wrap`: Guarantees that arithmetic operations on the type will wrap on
overflow, similar to `-fwrapv`. This suppresses UBSan's integer overflow
checks for the attributed type and prevents eager compiler
optimizations.
* `trap`: Enforces overflow checking for the type, even when global
flags like `-fwrapv` would otherwise suppress it.
[7 lines not shown]
[lldb] Check the shared cache binary provider for Simulator sessions (#182216)
The code to check with the shared cache binary provider was previously
in the native host platform (PlatformDarwinDevice), but it also needs to
be called from PlatformAppleSimulator for simulator debug sessions. Move
the code to the base class PlatformDarwin and call it from both
subclasses. No changes to the code itself, just moving it to the base
class.
rdar://170693756
[SCEV] Introduce SCEVUse wrapper type (NFC)
Add SCEVUse as a PointerIntPair wrapper around const SCEV * to prepare
for storing additional per-use information.
This commit contains the mechanical changes of adding an intial SCEVUse
wrapper and updating all relevant interfaces to take SCEVUse. Note that
currently the integer part is never set, and all SCEVUses are
considered canonical.
[SCEV] Introduce SCEVUse wrapper type (NFC)
Add SCEVUse as a PointerIntPair wrapper around const SCEV * to prepare
for storing additional per-use information.
This commit contains the mechanical changes of adding an intial SCEVUse
wrapper and updating all relevant interfaces to take SCEVUse. Note that
currently the integer part is never set, and all SCEVUses are
considered canonical.
[NFC][CodeGen] Rewrite comment for `getSubRegisterClass` (#182339)
Change the description of `getSubRegisterClass` to be more accurate.
Additionally, reformat some existing comments to use `\p` to denote
function parameters.
[ASan] Fix crash in __asan_region_is_poisoned at application memory boundaries (#180223)
`__asan_region_is_poisoned()` can crash when called on a region fully
contained in the last 8 bytes (shadow-granularity) before the end of an
ASan application memory range (kLowMemEnd / kMidMemEnd / kHighMemEnd).
The function performs a fast-path check by rounding UP the begin address
and rounding DOWN the end address of the region (aligned to
`ASAN_SHADOW_GRANULARITY`) and then scanning the corresponding shadow
range via `MemToShadow()` and `mem_is_zero()`. The implementation of
`MemToShadow()` assumes that `RoundUpTo(beg, ASAN_SHADOW_GRANULARITY)`
remains within the same application memory range. That assumption is
incorrect near upper bound of a range: for example, begin address within
the last 8 bytes of the high memory range
(`kHighMemEnd=0x0000'7fff'ffff'ffff`), which is the max user address of
VAS on x86_64, may be rounded UP so it crosses the upper bound
kHighMemEnd. In such cases MemToShadow() is invoked on an out-of-range
address and crashes.
[23 lines not shown]
[LTO] Refactor LTO link optimization remarks handling (NFC) (#181269)
Centralize the setup and finalization of optimization remarks for LTO
link actions
outside of the pass pipeline. This ensures that remarks are correctly
captured across
all exit paths from the LTO pipeline.
The motivation for this refactoring is to provide a cleaner and more
robust
interface for managing diagnostics, and to enable easier remark emission
during
the thin link phase in a follow-on PR.
Key changes:
- Added a setupOptimizationRemarks on the LTO class. Call it from
LTO::run
and remove the existing setup from runRegularLTO.
- Added a unified diagnostic API to the LTO class (emitRemark) and use
[4 lines not shown]
[mlir][vector] Add apply_patterns.vector.multi_reduction_unrolling. (#182113)
* Adds vector transform op
`apply_patterns.vector.multi_reduction_unrolling`
* Adds test for `populateVectorMultiReductionUnrollingPatterns`
* Deletes old test files `vector-multi-reduction-lowering.mlir` and
`vector-multi-reduction-lowering-outer.mlir`. Tests that exercise these
patterns exist in `vector-multi-reduction-flattening.mlir`,
`vector-multi-reduction-reorder-and-expand.mlir` and
`vector-multi-reduction-unrolling.mlir`
Assisted-by: claude
Reuse output from register_update_ips
This commit adds changes to reflect changed function signature of create_cert where we now pass in hostname details instead of querying them separately.
[lldb][tests/FreeBSDKernel] Skip tests on non-FreeBSD hosts (#182363)
#181283 removed fvc but it still remains in tests. This causes testing
on non-FreeBSD hosts. Thus add `skipUnlessPlatform` decorator.
Signed-off-by: Minsoo Choo <minsoochoo0122 at proton.me>
[RISCV] Use FSHR in LowerShiftRightParts for P extension on RV64. (#181234)
We can't do the NSRLI trick on RV64, but we can use srx similar to what
we do in LowerShiftLeftParts. We need an additional fixup step for the
FSHR result that NSRLI doesn't need.
Assisted-by: claude