[AArch64][llvm] Allow some `tlbip` insns to be used with only +tlbid
Allow `tlbip` instructions containing *E1IS*, *E1OS*, *E2IS* or *E2OS*
to be used with `+tlbid` or `+d128`. This is because the 2025 Armv9.7-A
MemSys specification says:
```
All TLBIP *E1IS*, TLBIP*E1OS*, TLBIP*E2IS* and TLBIP*E2OS* instructions
that are currently dependent on FEAT_D128 are updated to be dependent
on FEAT_D128 or FEAT_TLBID
```
[clang][modulemap] Don't call translateFile (#176288)
In some cases `SourceManager::translateFile` ends up spending a lot of
time loading source locations from PCMs, significantly slowing down
module scanning. The actual requirements are that we use local FileIDs
for module maps so that we can compute affecting module maps, and that
there is only one FileID per module map per compiler instance. This
patch simply records the FileEntry to FileID mapping and reuses it when
needed.
[AArch64][llvm] Allow some `tlbip` insns to be used with only +tlbid
Allow `tlbip` instructions containing *E1IS*, *E1OS*, *E2IS* or *E2OS*
to be used with `+tlbid` or `+d128`. This is because the 2025 Armv9.7-A
MemSys specification says:
```
All TLBIP *E1IS*, TLBIP*E1OS*, TLBIP*E2IS* and TLBIP*E2OS* instructions
that are currently dependent on FEAT_D128 are updated to be dependent
on FEAT_D128 or FEAT_TLBID
```
[lld] Fill section gaps with trap instructions (#176845)
Fills unused parts of code segments with trap instructions instead of
zeroes. This is especially useful on x86-64 since 0x00 0x00 is a
two-byte instruction that performs a memory access. Benefits:
- Provides an explicit trap when executing invalid code.
- Required for security reasons when targeting LFI.
- Makes disassembling easier, especially without symbol information.
Previously an odd number of zero bytes between sections could cause a
disassembler to incorrectly disassemble the remainder of the program.
Make gcc 15 work on powerpc
ports-gcc has been 15 for over six weeks (since 2025-12-12), but
powerpc is a slow arch and did not catch up until now.
The port was broken. This commit updates PFRAG.powerpc-main to match
what gcc 15 installs, and makes enough fixes to Ada to complete the
build, including a time_t fix for Ada which I described in
https://marc.info/?l=openbsd-ports&m=176931768310313&w=2
ok jca@
Modify llvm-gsymutil to work around invalid DW_AT_LLVM_stmt_sequence attributes. (#178034)
The DW_AT_LLVM_stmt_sequence attribute is an attribute that can be added
to a DW_TAG_subprogram DIE to uniquely identify the exact line tables
entries for a given function. This helps when we merge functions in the
same compile unit and end up with multiple sequences in the line table
that describe the same address range. Having this attribute on a
function allows us to select the right line table entries for a
function. This also helps us convert to GSYM and always get the line
tables right.
We have seen a large amount of errors when binaries have
DW_AT_LLVM_stmt_sequence attributes on functions but their values have
invalid .debug_line sequence offsets. When this would happen, the
conversion to GSYM would not emit any line table entries for that
function. This patch tries to use the DW_AT_LLVM_stmt_sequence attribute
when finding all line entries for a function, but it will fall back to
not using and requiring it to be correct. This ensures we always get the
most information in the GSYM even when DW_AT_LLVM_stmt_sequence values
[2 lines not shown]
src.opts.mk: Enable LLDB by default globally
Previously it was enabled for all architectures except but RISC-V.
Upstream made significant progress on RISC-V support over the last
year[1], and although there's still some FreeBSD-specific work to do we
can start building it now.
[1] https://jonasdevlieghere.com/post/lldb-2025/
Sponsored by: The FreeBSD Foundation
17832 memory.h has C++ namespace problems
Reviewed by: Robert Mustacchi <rm+illumos at fingolfin.org>
Approved by: Dan McDonald <danmcd at edgecast.io>
[Clang] Improve documentation for __builtin_allow_sanitize_check() (#175106)
Clarify that the builtin is intended for guarding explicit sanitizer
checks that use the runtime API to perform such checks. Update the
description to use "allowed" instead of "active" to better reflect the
intended usage and semantics, which would allow policy refinements in
future [1]. Also make the examples more concrete.
[1] https://discourse.llvm.org/t/explicit-sanitizer-checks-with-builtin-allow-sanitize-check/89383