[lldb][NativePDB] Find typedefs in FindTypes (#230558)
`SymbolFileNativePDB::FindTypes` only search the tag records of the TPI
stream. Clang does not emit `LF_ALIAS`, and MSVC only emits it for
integer types under `/d1typeAliasDebugRecords`, so a typedef usually
exists only as an `S_UDT` symbol naming its underlying type. No typedef
can be found by name: `type lookup` finds nothing, and expressions using
one fail with `"use of undeclared identifier"`.
This patch indexes the typedef `S_UDT` records of the globals stream by
basename and searches them in `FindTypes` after the tag types. A typedef
declared in a class is an `LF_NESTTYPE` member of the class's field
list, not an `S_UDT`, so every scope of an `S_UDT` is treated as a
namespace. It also caches the typedef Types, which `GetOrCreateTypedef`
used to recreate on every call (and `ResolveTypeUID` asserted on).
`LF_ALIAS` records (#218243) are not read yet. Once they are, they can
be found through the TPI lookup above.
[3 lines not shown]
[SeparateConstOffsetFromGEP] Accumulate offsets across expression trees (#230637)
Collect offsets from both operands so expressions `(a + 4) + (b + 5)`
can become `(a + b) + 9`.
Replace the user chain with a tree of operand replacements. Apply casts
before combining offsets and bound traversal to limit repeated searches
and rewrite expansion.
Assisted-by: GPT-6 (gpt-6-astra)
devel/llvm17: Remove the LLDB option and fix plist with DOCS
LLDB's Python script interpreter fails to build with Python 3.13
(_Py_IsFinalizing was removed), which blocks switching the default
Python version to 3.13. Rather than patching an old debugger, remove
the LLDB option as discussed in PR 292105: LLDB remains available
from devel/llvm18 and later and from the base system.
This also drops the swig build dependency and the lua53 and libedit
library dependencies.
While here, fix the plist with DOCS enabled: the openmp HTML
documentation leaves an empty _sources directory behind, and
check-plist fails with an orphaned directory. Remove it, as was
done for devel/llvm12 in a4f732450dd3.
Also drop lldb-tblgen.1 from the installed man pages: it documents
an LLDB tool that is no longer built.
PR: 299426
devel/llvm16: Remove the LLDB option and fix plist with DOCS
LLDB's Python script interpreter fails to build with Python 3.13
(_Py_IsFinalizing was removed), which blocks switching the default
Python version to 3.13. Rather than patching an old debugger, remove
the LLDB option as discussed in PR 292105: LLDB remains available
from devel/llvm18 and later and from the base system.
This also drops the swig build dependency and the lua53 and libedit
library dependencies.
While here, fix the plist with DOCS enabled: the openmp HTML
documentation leaves an empty _sources directory behind, and
check-plist fails with an orphaned directory. Remove it, as was
done for devel/llvm12 in a4f732450dd3.
Also drop lldb-tblgen.1 from the installed man pages: it documents
an LLDB tool that is no longer built.
PR: 299425
devel/llvm15: Remove the LLDB option and fix plist with DOCS
LLDB's Python script interpreter fails to build with Python 3.13
(_Py_IsFinalizing was removed), which blocks switching the default
Python version to 3.13. Rather than patching an old debugger, remove
the LLDB option as discussed in PR 292105: LLDB remains available
from devel/llvm18 and later and from the base system.
This also drops the swig build dependency and the lua53 and libedit
library dependencies.
While here, fix the plist with DOCS enabled: the openmp HTML
documentation leaves an empty _sources directory behind, and
check-plist fails with an orphaned directory. Remove it, as was
done for devel/llvm12 in a4f732450dd3.
PR: 299424
[lldb][NativePDB] Name global variables like Clang and DWARF do (#230563)
CodeView spells anonymous namespaces `'anonymous namespace'`, and
`CreateGlobalVariable` and `CreateConstantSymbol` use the CodeView name
as is, while the Clang AST, type names and `SymbolFileDWARF` all say
`(anonymous namespace)`. A qualified lookup like
`FindFirstGlobalVariable("abc::(anonymous
namespace)::g_anon_namespace_const_int")` finds nothing.
This patch replaces the CodeView spelling in the names of global
variables and constants, and stops giving `S_CONSTANT` the `"::" + name`
mangled name (they have no public symbol).
Fixes `TestCPPGlobalVariables` with PDB debug info.
rdar://190423349
[mlir][x86] Accumulate AMX VNNI tiles in place (#233388)
Accumulate AMX VNNI contraction results in place instead of through
temporary storage when the accumulator and result support direct tile
accesses.
This reduces memory traffic and improves performance for contractions in
VNNI layout with a non-zero accumulator.
Assisted-by: Claude
MachineVerifier: Reject dead and live defs of the same register (#233110)
Previously an instruction could have a dead and a live def of the same
physical register, which has no consistent interpretation.
Some passes, namely register pressure tracking, implicitly rely on the
dead flag adjustments performed by running LiveVariables. In cases of
repeated defs, LiveVariables strips dead flags. When a super-register
is only partially used, it marks the super-register def dead and adds
a live implicit-def of the used sub-register.
Prior to #222627, pressure tracking treated live defs as winning. That
PR fixed some asserts by switching to a dead wins system where any
dead flag taints those regunits for the whole instruction. #225079
reverts the remainder of #222627, back closer to the interpretation of
this verifier check.
Only a dead def with a live def of the same register is
rejected. Mixed dead flags on overlapping defs of different registers
[6 lines not shown]
[clang][bytecode] Always check for initialization in RetValue (#233189)
Since we always call `toRValue()` here, all the fields we read need to
be initialized.
Fixes https://github.com/llvm/llvm-project/issues/232904
[llvm][clang] Store the VFS on LLVMContext (#232879)
Backend code occasionally has to resolve an input path: for example
`AsmPrinter` records an absolute path to the optimization record in the
remarks section, and the integrated assembler resolves `.include`
directives coming from inline asm.
Using `llvm::sys::fs` or `llvm::MemoryBuffer::getFile*()` APIs violates
the IO sandbox, which is currently on by default for Clang with
assertions enabled. To comply with the sandbox, this PR stores the
proper VFS on `LLVMContext`, making it available to the LLVM side.
Clients that do not enable the IO sandbox do not need to change, and
will default to using `llvm::vfs::getRealFileSystem()`.
NFC, since nothing uses the VFS yet.
[flang][FIRToMemRef] Propagate nontemporal to the memref ops (#233420)
rewriteLoadOp/rewriteStoreOp forwarded only the tbaa attribute, so the
nontemporal flag set on fir.load/fir.store was silently dropped when
they were replaced by memref.load/memref.store, which model it as well.
[clang][bytecode][NFC] Make string pointer check more explicit (#233360)
We already handled block pointers above, so the isReadablePointerType()
check here is equivalent to isStringPointer().
[IR] Compare the cleanup flag of landingpads (#233424)
The cleanup flag is stored in subclass data, so neither
Instruction::hasSameSpecialState nor FunctionComparator::cmpOperations
looked at it. A `cleanup catch` landingpad was treated as identical to a
plain `catch` which caused SimplifyCFG to merge such landing pads, and
MergeFunctions to merge functions that only differed in it. Either way the
cleanup code is skipped, or run for exceptions it should not see.
doc: Update roundcube and related pacakges to 1.6.20
Previous commit was accidently one.
mail/roundcube
mail/roundcube-plugin-enigma
mail/roundcube-plugin-password
mail/roundcube-plugin-zipdownload