[RISCV] Generalize combineBinOpOfZExt to allow sext (#230472)
This combine narrows binary ops so they're performed at a smaller LMUL.
The combine currently only handles cases where both operands are zext,
but we can also allow sext.
If any operand is sexted then we need to sext the result as the sign bit
may not be zero.
We can't handle udiv + urem if either of the operands are sext, since
sign extending a narrower udiv/urem gives incorrect results. E.g. `udiv
(sext (i8 -1) to i32), (zext (i8 2) to i32)`:
- At i32: `udiv 0xffffffff, 2 = 0x7fffffff`
- Narrowed to i16: `sext (udiv 0xffff, 2) to i32 = sext 0x7fff to i32 =
0x00007ffff`
[RISC-V][MC] Add test for C/Zce implication in .option arch (#230298)
Add MC test coverage for 80f1acc631ca
(https://github.com/llvm/llvm-project/pull/229905). Previously, with
`rv32i` running `.option arch, +zca; .option arch, -zca` resulted in
`error: can't disable zca extension; c extension requires zca extension`,
`.option arch, +zca, +zcb, +zcmp, +zcmt; .option arch, -zcmt` resulted
in `error: can't disable zcmt extension; zce extension requires zcmt extension`,
and `.option arch, +zca, +zclsd; .option arch, +f` resulted in
`error: 'zclsd' and 'zcf' extensions are incompatible`.
This commit was created with the help of AI tools
Pull-Request: https://github.com/llvm/llvm-project/pull/230298
[flang] Classify intrinsic functions as SIMPLE (#223160)
Classify standard intrinsic functions as `SIMPLE` per Fortran 2023 16.1(2).
This change also:
- Classifies extensions as `SIMPLE` where applicable
- Documents the `SIMPLE` and non-`SIMPLE` classifications of extensions
in Extensions.md
- Updates procedure-interface tests affected by the new `SIMPLE`
classification
- Updates F202X.md to reflect the current `SIMPLE` implementation status
Part of the `SIMPLE` procedure support tracked in #221457.
sysutils/clout: new port
clout is a small Unix utility that colorizes command standard error
output. It executes a command, captures its standard error, and
writes it to the terminal using a selected ANSI color.
Co-authored-by: Michael Osipov <michaelo at FreeBSD.org>
PR: 298486
sysutils/clout: new port
clout is a small Unix utility that colorizes command standard error
output. It executes a command, captures its standard error, and
writes it to the terminal using a selected ANSI color.
Co-authored-by: Michael Osipov <michaelo at FreeBSD.org>
PR: 298486
[LLDB] Add user documentation for DIL. (#228275)
Add documentation for users (and programmers) about what DIL is, what it
does, and how it can be controlled.
[ASan][Darwin] Support gapless shadow layout for iOS 27.0 (#217530)
This is the second PR in a series that upstreams support for iOS 27.0
(see #217527 for the first).
When the shadow can be placed entirely above app memory (as on iOS 27),
there is no need to split shadow into low/high halves with a middle gap.
This PR adopts a "gapless" layout in ASAN, in which all of application
memory is in `[kLowMemBeg, kLowMemEnd]` and shadow is `[kLowShadowBeg,
kLowShadowEnd]`. The "high" region is unnecessary and thus unused
(because of the way it is defined, `kHighMemBeg > kHighMemEnd` in this
new layout, which conveniently means that `AddrIsInHighMem(p)` is always
false) -- this is a bit jank and unintuitive, but it keeps the diff
between iOS and other platforms relatively small.
- Add kGaplessShadow (Darwin-only) to detect this configuration.
- Teach `InitializeShadowMemory` to reserve one contiguous shadow region
and protect only the shadow-of-shadow when kGaplessShadow is true
- Update PrintAddressSpaceLayout to print the single-region layout.
rdar://167657399
[sanitizer_common][Darwin] Add debug memory region support for iOS 27.0 (#217527)
Replaces #216885 (but not from a fork so I can use stacked PRs)
iOS 27.0 bumps the address space from 36 to 39 bits on some devices, and
reserves address space for sanitizer shadow memory which is unavailable
to normal applications. This is the first of a series of PRs which
upstreams support for this configuration.
- Add `SANITIZER_IOSDEVICE` and `SANITIZER_EMBEDDED_VM_LAYOUT` macros
for physical devices / devices that support the 39-bit layout; bump
Darwin iOS/ARM64 `SANITIZER_MMAP_RANGE_SIZE` from 36 to 39 bits on
physical devices.
- Add `ActivateDebugMemory` / `DebugMemoryActive` and tag mmap
allocations above `DARWIN_DEBUG_MEMORY_START` with `VM_MEMORY_DEBUG`
when using the debug range; verify returned addresses fall within the
expected range.
- Replace `GetAppReservedRanges` with `GetAppRanges`, populated from
sysctls (on supported devices) which report what ranges are available to
[11 lines not shown]