[SPIR-V] Preserve offset alignment in pointer cast legalization (#209251)
Splitting a load/store into per-element accesses reused the original
alignment for every element, which could wrongly strengthen or discard
alignment
Compute each split access alignment via commonAlignment with its
DataLayout derived byte offset matching SPIRVLegalizerInfo.cpp
[SPIR-V] Remove dead typed pointer check in getArgSPIRVType (#209515)
Arg->getType() can never be a TypedPointerType since opaque pointers are
now the only pointer representation in LLVM IR
lang/swift6: Unbreak build with clang 21
Clang 21 appears to have a regression in wchar.h handling when c++20
modules funcationality is enabled. (Swift compiler uses clang's
modules function under the hood.)
This is a workaround to avoid a compilation error by defining the
macro _WCHAR_H_CPLUSPLUS_98_CONFORMANCE_ to 1 before the compiler
reads the system wchar.h.
PR: 296000
Reported by: Tomoaki AOKI <junchoon at dec.sakura.ne.jp>
Tested by: Tomoaki AOKI <junchoon at dec.sakura.ne.jp>
[CycleInfo] Remove GenericCycle::TopLevelCycle. NFC (#209677)
moveTopLevelCycleToNewParent maintains TopLevelCycle eagerly, rewriting
the whole re-parented subtree with depth_first. When discovery nests k
cycles one by one this is quadratic, and the df_iterator walk plus its
visited set dominate construction on deep nests (~78% of time on a
1500-deep nest).
Walk ParentCycle links in getTopLevelParentCycle instead and delete the
member. The walk is valid during construction too: parent links are
always current, and discovery queries blocks whose innermost cycle sits
at the top of the forest being merged, so the walk is short.
Aided by Claude Fable 5
[libc] Remove #include <sys/whatever.h> (#209449)
and replace with granular includes of type/macro proxy headers -- where
those headers exist. I'm leaving the creation of new proxy headers for
another patch.
Assisted by Gemini.