Skip to content

[AutoBump] Merge with f7d03707 (Feb 18) (52) #596

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 65 commits into
base: bump_to_4cc7d60f
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
31abb20
[clang][bytecode] Move bases and virtual bases in moveRecord (#127627)
tbaederr Feb 18, 2025
10fc06a
[X86] canonicalizeShuffleWithOp - add handling for X86ISD::VPERMV nod…
RKSimon Feb 18, 2025
df12bad
[libclc] Use CLC conversion builtins in CLC functions (#127628)
frasercrmck Feb 18, 2025
378c6fb
[libclc][NFC] Rename macro; undef at end of file
frasercrmck Feb 18, 2025
9516f44
[RISCV] Add policy operand to masked vector compare pseudos. Remove F…
topperc Feb 18, 2025
38376de
[VPlan] Build initial VPlan 0 using HCFGBuilder for inner loops. (NFC…
fhahn Feb 18, 2025
f5cf04c
[LV] Remove unused variable after 38376dee92224c66.
fhahn Feb 18, 2025
3305d9f
[bazel] Fix build after 4cc7d60fe3e060e33cb01f054e2d26870d6256b7
d0k Feb 18, 2025
e1a393e
Define Telemetry plugin for LLDB. (#126588)
oontvoo Feb 18, 2025
8806311
[MLIR][Math] Add erfc to math dialect (#126439)
jsjodin Feb 18, 2025
37bde7a
[SLP]Fix hanging on small trees with phis only with adjusted cost thr…
alexey-bataev Feb 18, 2025
f7a5f06
[AMDGPU][True16][CodeGen] FLAT_load using D16 pseudo instruction (#11…
broxigarchen Feb 18, 2025
e61deef
[Clang] Add 'instantiated_from' for enums in TextNodeDumper (#124409)
thebrandre Feb 18, 2025
7a78152
[lldb] Fix a warning
kazutakahirata Feb 18, 2025
0e960f1
[MLIR][OpenMP] Add OMP Declare Mapper MLIR Op definition (#117045)
TIFitis Feb 18, 2025
a6f2a1e
[SCEV] Generate test checks (NFC)
nikic Feb 18, 2025
55dba06
Addressed additional review comments from PR/119716. (#126757)
oontvoo Feb 18, 2025
2cb5241
Revert "[AMDGPU][True16][CodeGen] FLAT_load using D16 pseudo instruct…
nikic Feb 18, 2025
0e1ffa3
[SLP]Fix a crash when comparing phis from unreachable blocks
alexey-bataev Feb 18, 2025
0cc532b
[RISCV] Move the RISCVII namespaced enums into RISCVVType namespace i…
topperc Feb 18, 2025
270284d
[lld][MachO] Test with exported_symbol and exported_symbols_list toge…
ellishg Feb 18, 2025
9905728
[MLIR][OpenMP] Add Lowering support for OpenMP Declare Mapper directi…
TIFitis Feb 18, 2025
7a5d1e9
[AMDGPU] Avoid repeated hash lookups (NFC) (#127573)
kazutakahirata Feb 18, 2025
e0ed5e8
[Analysis] Avoid repeated hash lookups (NFC) (#127574)
kazutakahirata Feb 18, 2025
4405451
[AsmPrinter] Avoid repeated map lookups (NFC) (#127576)
kazutakahirata Feb 18, 2025
4cfeebd
[ExecutionEngine] Avoid repeated hash lookups (NFC) (#127577)
kazutakahirata Feb 18, 2025
06829f4
[Hexagon] Avoid repeated hash lookups (NFC) (#127578)
kazutakahirata Feb 18, 2025
9a4bf98
[X86] Avoid repeated hash lookups (NFC) (#127579)
kazutakahirata Feb 18, 2025
6682753
[MLIR][LLVM] Refactor globals insertion point in import (#127490)
xlauko Feb 18, 2025
bfcec19
[X86] Add test coverage for bfloat <-> half conversion
RKSimon Feb 18, 2025
7401672
[DSE] Update dereferenceable attributes when adjusting memintrinsic p…
bjope Feb 18, 2025
1fd0600
[NFC][TableGen] Cleanup iterators in CodeGenSchedule.h (#127401)
jurahul Feb 18, 2025
7b89c41
[offload] Remove redundant checks in MappingInfoTy::lookupMapping (#1…
kparzysz Feb 18, 2025
ca0c84d
[NFC] [clang] make isFlexibleArrayMemberLike Ctx const (#126656)
fmayer Feb 18, 2025
64675cc
[NVPTX] Use MCRegister. NFC
topperc Feb 18, 2025
74cb1f9
[PowerPC] Use MCRegister. NFC
topperc Feb 18, 2025
ee17955
[MLIR][OpenMP] Add OMP Mapper field to MapInfoOp (#120994)
TIFitis Feb 18, 2025
886b2ed
[MLIR][OpenMP] Add Lowering support for OpenMP custom mappers in map …
TIFitis Feb 18, 2025
d6ab12c
[MLIR][OpenMP] Add conversion support from FIR to LLVM Dialect for OM…
TIFitis Feb 18, 2025
785a5b4
[MLIR][OpenMP] Add LLVM translation support for OpenMP UserDefinedMap…
TIFitis Feb 18, 2025
f66d97f
[Analysis] Remove unused functions in CallGraphNode (#127411)
kazutakahirata Feb 18, 2025
5d4eb08
[Analysis] Remove skipSCC (#127412)
kazutakahirata Feb 18, 2025
360630b
[mlir][GPUDialect] Add cmdOption suffix consumer in GpuModuleToBinary…
MikaOvO Feb 18, 2025
49453bf
[lldb][NFC] remove AdaptedConstIterator and AdaptedIterable (#127507)
dlav-sc Feb 18, 2025
055872a
[mlir] Integrate OpAsmTypeInterface with AsmPrinter (#124700)
ZenithalHourlyRate Feb 18, 2025
7c104b6
[mlir] Introduce OpAsmAttrInterface for pretty-print (#124721)
ZenithalHourlyRate Feb 18, 2025
b22fc43
[libc++] Updates the compilers used post LLVM-20 branching. (#126564)
mordante Feb 18, 2025
1f6165e
X86: Fix convertToThreeAddress losing subregister indexes (#124098)
arsenm Feb 18, 2025
f796747
[libc++][TZDB] Improves system time zone detection. (#127339)
mordante Feb 18, 2025
aa16ca3
[mlir] Add getAlias for OpAsmTypeInterface (#126364)
ZenithalHourlyRate Feb 18, 2025
d9803af
[bazel] Port 7c104b63c7aae66cf91fa65b04011c49641b456d
d0k Feb 18, 2025
4efab09
[PowerPC] Used named subreg indices instead of hardcoded numbers. NFC…
topperc Feb 18, 2025
8e16e5c
[HLSL] Bug fix crash using Array Parameters when De-sugaring is the s…
spall Feb 18, 2025
426148b
[SandboxVec][DAG] Implement DAG maintainance on Instruction removal (…
vporpo Feb 18, 2025
5ecce45
[SandboxVec] Move seed collection into its own separate pass (#127132)
vporpo Feb 18, 2025
e31a1c8
[CodeGen] Remove getSubReg from TargetRegisterInfo. NFC (#127680)
topperc Feb 18, 2025
56e0bf2
Fix for issue #126162: warn for inconsistent Python search options (#…
dbabokin Feb 18, 2025
936fe9b
[HLSL] Add more tests to root signature metadata extraction (#127283)
joaosaffran Feb 18, 2025
ed14745
[InstCombine] Add test for regression in #127398. (NFC)
andjo403 Feb 18, 2025
083f80f
[mlir][bazel] Remove implementation from LinalgInterfaces target.
chsigg Feb 18, 2025
2775122
[libc++][NFC] Clarify libc++'s stance about implementing the Networki…
ldionne Feb 18, 2025
7f275e0
[ELF][LTO] Add baseline test for invalid relocations against runtime …
arichardson Feb 18, 2025
3a00c42
[libc++] Add Hagenberg issues and papers to the Status pages (#127510)
ldionne Feb 18, 2025
f7d0370
[AMDGPU] Generalize amdgcn.make.buffer.rsrc to fat pointers (#126828)
krzysz00 Feb 18, 2025
7326e22
[AutoBump] Merge with f7d03707 (Feb 18)
jorickert Jun 17, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 16 additions & 12 deletions .github/workflows/libcxx-build-and-test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ jobs:
stage1:
if: github.repository_owner == 'llvm'
runs-on: libcxx-self-hosted-linux
container: ghcr.io/llvm/libcxx-linux-builder:d8a0709b1090350a7fe3604d8ab78c7d62f10698
container: ghcr.io/llvm/libcxx-linux-builder:b319dfef21f6c7b0bc6a356d6b9f41a3b3b98ae9
continue-on-error: false
strategy:
fail-fast: false
Expand All @@ -48,8 +48,8 @@ jobs:
'generic-cxx26',
'generic-modules'
]
cc: [ 'clang-20' ]
cxx: [ 'clang++-20' ]
cc: [ 'clang-21' ]
cxx: [ 'clang++-21' ]
include:
- config: 'generic-gcc'
cc: 'gcc-14'
Expand All @@ -75,7 +75,7 @@ jobs:
stage2:
if: github.repository_owner == 'llvm'
runs-on: libcxx-self-hosted-linux
container: ghcr.io/llvm/libcxx-linux-builder:d8a0709b1090350a7fe3604d8ab78c7d62f10698
container: ghcr.io/llvm/libcxx-linux-builder:b319dfef21f6c7b0bc6a356d6b9f41a3b3b98ae9
needs: [ stage1 ]
continue-on-error: false
strategy:
Expand All @@ -88,18 +88,22 @@ jobs:
'generic-cxx20',
'generic-cxx23'
]
cc: [ 'clang-20' ]
cxx: [ 'clang++-20' ]
cc: [ 'clang-21' ]
cxx: [ 'clang++-21' ]
include:
- config: 'generic-gcc-cxx11'
cc: 'gcc-14'
cxx: 'g++-14'
- config: 'generic-cxx23'
cc: 'clang-18'
cxx: 'clang++-18'
- config: 'generic-cxx26'
cc: 'clang-20'
cxx: 'clang++-20'
- config: 'generic-cxx26'
cc: 'clang-19'
cxx: 'clang++-19'
# Release transition
- config: 'generic-cxx23'
cc: 'clang-18'
cxx: 'clang++-18'
steps:
- uses: actions/checkout@v4
- name: ${{ matrix.config }}
Expand Down Expand Up @@ -163,14 +167,14 @@ jobs:
- config: 'generic-msan'
machine: libcxx-self-hosted-linux
runs-on: ${{ matrix.machine }}
container: ghcr.io/llvm/libcxx-linux-builder:d8a0709b1090350a7fe3604d8ab78c7d62f10698
container: ghcr.io/llvm/libcxx-linux-builder:b319dfef21f6c7b0bc6a356d6b9f41a3b3b98ae9
steps:
- uses: actions/checkout@v4
- name: ${{ matrix.config }}
run: libcxx/utils/ci/run-buildbot ${{ matrix.config }}
env:
CC: clang-20
CXX: clang++-20
CC: clang-21
CXX: clang++-21
- uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8 # v4.3.0
if: always()
with:
Expand Down
2 changes: 1 addition & 1 deletion clang/include/clang/AST/DeclBase.h
Original file line number Diff line number Diff line change
Expand Up @@ -492,7 +492,7 @@ class alignas(8) Decl {
/// perform non-Decl specific checks based on the object's type and strict
/// flex array level.
static bool isFlexibleArrayMemberLike(
ASTContext &Context, const Decl *D, QualType Ty,
const ASTContext &Context, const Decl *D, QualType Ty,
LangOptions::StrictFlexArraysLevelKind StrictFlexArraysLevel,
bool IgnoreTemplateOrMacroSubstitution);

Expand Down
2 changes: 1 addition & 1 deletion clang/include/clang/AST/Expr.h
Original file line number Diff line number Diff line change
Expand Up @@ -542,7 +542,7 @@ class Expr : public ValueStmt {
/// When IgnoreTemplateOrMacroSubstitution is set, it doesn't consider sizes
/// resulting from the substitution of a macro or a template as special sizes.
bool isFlexibleArrayMemberLike(
ASTContext &Context,
const ASTContext &Context,
LangOptions::StrictFlexArraysLevelKind StrictFlexArraysLevel,
bool IgnoreTemplateOrMacroSubstitution = false) const;

Expand Down
5 changes: 3 additions & 2 deletions clang/lib/AST/ASTContext.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3898,7 +3898,8 @@ QualType ASTContext::getArrayParameterType(QualType Ty) const {
if (Ty->isArrayParameterType())
return Ty;
assert(Ty->isConstantArrayType() && "Ty must be an array type.");
const auto *ATy = cast<ConstantArrayType>(Ty.getDesugaredType(*this));
QualType DTy = Ty.getDesugaredType(*this);
const auto *ATy = cast<ConstantArrayType>(DTy);
llvm::FoldingSetNodeID ID;
ATy->Profile(ID, *this, ATy->getElementType(), ATy->getZExtSize(),
ATy->getSizeExpr(), ATy->getSizeModifier(),
Expand All @@ -3910,7 +3911,7 @@ QualType ASTContext::getArrayParameterType(QualType Ty) const {
return QualType(AT, 0);

QualType Canonical;
if (!Ty.isCanonical()) {
if (!DTy.isCanonical()) {
Canonical = getArrayParameterType(getCanonicalType(Ty));

// Get the new insert position for the node we care about.
Expand Down
23 changes: 21 additions & 2 deletions clang/lib/AST/ByteCode/Descriptor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -237,8 +237,7 @@ static void moveRecord(Block *B, std::byte *Src, std::byte *Dst,
assert(D);
assert(D->ElemRecord);

// FIXME: There might be cases where we need to move over the (v)bases as
// well.
// FIXME: Code duplication.
for (const auto &F : D->ElemRecord->fields()) {
auto FieldOffset = F.Offset;
const auto *SrcDesc =
Expand All @@ -250,6 +249,26 @@ static void moveRecord(Block *B, std::byte *Src, std::byte *Dst,
if (auto Fn = F.Desc->MoveFn)
Fn(B, Src + FieldOffset, Dst + FieldOffset, F.Desc);
}

for (const auto &Base : D->ElemRecord->bases()) {
auto BaseOffset = Base.Offset;
const auto *SrcDesc =
reinterpret_cast<const InlineDescriptor *>(Src + BaseOffset) - 1;
auto *DestDesc = reinterpret_cast<InlineDescriptor *>(Dst + BaseOffset) - 1;
std::memcpy(DestDesc, SrcDesc, sizeof(InlineDescriptor));

if (auto Fn = Base.Desc->MoveFn)
Fn(B, Src + BaseOffset, Dst + BaseOffset, Base.Desc);
}

for (const auto &VBase : D->ElemRecord->virtual_bases()) {
auto VBaseOffset = VBase.Offset;
const auto *SrcDesc =
reinterpret_cast<const InlineDescriptor *>(Src + VBaseOffset) - 1;
auto *DestDesc =
reinterpret_cast<InlineDescriptor *>(Dst + VBaseOffset) - 1;
std::memcpy(DestDesc, SrcDesc, sizeof(InlineDescriptor));
}
}

static BlockCtorFn getCtorPrim(PrimType Type) {
Expand Down
2 changes: 1 addition & 1 deletion clang/lib/AST/DeclBase.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -438,7 +438,7 @@ bool Decl::isFileContextDecl() const {
}

bool Decl::isFlexibleArrayMemberLike(
ASTContext &Ctx, const Decl *D, QualType Ty,
const ASTContext &Ctx, const Decl *D, QualType Ty,
LangOptions::StrictFlexArraysLevelKind StrictFlexArraysLevel,
bool IgnoreTemplateOrMacroSubstitution) {
// For compatibility with existing code, we treat arrays of length 0 or
Expand Down
2 changes: 1 addition & 1 deletion clang/lib/AST/Expr.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,7 @@ bool Expr::isKnownToHaveBooleanValue(bool Semantic) const {
}

bool Expr::isFlexibleArrayMemberLike(
ASTContext &Ctx,
const ASTContext &Ctx,
LangOptions::StrictFlexArraysLevelKind StrictFlexArraysLevel,
bool IgnoreTemplateOrMacroSubstitution) const {
const Expr *E = IgnoreParens();
Expand Down
5 changes: 5 additions & 0 deletions clang/lib/AST/TextNodeDumper.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2189,6 +2189,11 @@ void TextNodeDumper::VisitEnumDecl(const EnumDecl *D) {
OS << " __module_private__";
if (D->isFixed())
dumpType(D->getIntegerType());

if (const auto *Instance = D->getInstantiatedFromMemberEnum()) {
OS << " instantiated_from";
dumpPointer(Instance);
}
}

void TextNodeDumper::VisitRecordDecl(const RecordDecl *D) {
Expand Down
16 changes: 13 additions & 3 deletions clang/lib/CodeGen/CGBuiltin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20723,9 +20723,19 @@ Value *CodeGenFunction::EmitAMDGPUBuiltinExpr(unsigned BuiltinID,
case AMDGPU::BI__builtin_amdgcn_bitop3_b16:
return emitBuiltinWithOneOverloadedType<4>(*this, E,
Intrinsic::amdgcn_bitop3);
case AMDGPU::BI__builtin_amdgcn_make_buffer_rsrc:
return emitBuiltinWithOneOverloadedType<4>(
*this, E, Intrinsic::amdgcn_make_buffer_rsrc);
case AMDGPU::BI__builtin_amdgcn_make_buffer_rsrc: {
// TODO: LLVM has this overloaded to allow for fat pointers, but since
// those haven't been plumbed through to Clang yet, default to creating the
// resource type.
SmallVector<Value *, 4> Args;
for (unsigned I = 0; I < 4; ++I)
Args.push_back(EmitScalarExpr(E->getArg(I)));
llvm::PointerType *RetTy = llvm::PointerType::get(
Builder.getContext(), llvm::AMDGPUAS::BUFFER_RESOURCE);
Function *F = CGM.getIntrinsic(Intrinsic::amdgcn_make_buffer_rsrc,
{RetTy, Args[0]->getType()});
return Builder.CreateCall(F, Args);
}
case AMDGPU::BI__builtin_amdgcn_raw_buffer_store_b8:
case AMDGPU::BI__builtin_amdgcn_raw_buffer_store_b16:
case AMDGPU::BI__builtin_amdgcn_raw_buffer_store_b32:
Expand Down
27 changes: 14 additions & 13 deletions clang/lib/CodeGen/CGOpenMPRuntime.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8879,17 +8879,17 @@ static void emitOffloadingArraysAndArgs(
};

auto CustomMapperCB = [&](unsigned int I) {
llvm::Value *MFunc = nullptr;
llvm::Function *MFunc = nullptr;
if (CombinedInfo.Mappers[I]) {
Info.HasMapper = true;
MFunc = CGM.getOpenMPRuntime().getOrCreateUserDefinedMapperFunc(
cast<OMPDeclareMapperDecl>(CombinedInfo.Mappers[I]));
}
return MFunc;
};
OMPBuilder.emitOffloadingArraysAndArgs(
AllocaIP, CodeGenIP, Info, Info.RTArgs, CombinedInfo, IsNonContiguous,
ForEndCall, DeviceAddrCB, CustomMapperCB);
cantFail(OMPBuilder.emitOffloadingArraysAndArgs(
AllocaIP, CodeGenIP, Info, Info.RTArgs, CombinedInfo, CustomMapperCB,
IsNonContiguous, ForEndCall, DeviceAddrCB));
}

/// Check for inner distribute directive.
Expand Down Expand Up @@ -9082,24 +9082,24 @@ void CGOpenMPRuntime::emitUserDefinedMapper(const OMPDeclareMapperDecl *D,
return CombinedInfo;
};

auto CustomMapperCB = [&](unsigned I, llvm::Function **MapperFunc) {
auto CustomMapperCB = [&](unsigned I) {
llvm::Function *MapperFunc = nullptr;
if (CombinedInfo.Mappers[I]) {
// Call the corresponding mapper function.
*MapperFunc = getOrCreateUserDefinedMapperFunc(
MapperFunc = getOrCreateUserDefinedMapperFunc(
cast<OMPDeclareMapperDecl>(CombinedInfo.Mappers[I]));
assert(*MapperFunc && "Expect a valid mapper function is available.");
return true;
assert(MapperFunc && "Expect a valid mapper function is available.");
}
return false;
return MapperFunc;
};

SmallString<64> TyStr;
llvm::raw_svector_ostream Out(TyStr);
CGM.getCXXABI().getMangleContext().mangleCanonicalTypeName(Ty, Out);
std::string Name = getName({"omp_mapper", TyStr, D->getName()});

auto *NewFn = OMPBuilder.emitUserDefinedMapper(PrivatizeAndGenMapInfoCB,
ElemTy, Name, CustomMapperCB);
llvm::Function *NewFn = cantFail(OMPBuilder.emitUserDefinedMapper(
PrivatizeAndGenMapInfoCB, ElemTy, Name, CustomMapperCB));
UDMMap.try_emplace(D, NewFn);
if (CGF)
FunctionUDMMap[CGF->CurFn].push_back(D);
Expand Down Expand Up @@ -10073,7 +10073,7 @@ void CGOpenMPRuntime::emitTargetDataCalls(
};

auto CustomMapperCB = [&](unsigned int I) {
llvm::Value *MFunc = nullptr;
llvm::Function *MFunc = nullptr;
if (CombinedInfo.Mappers[I]) {
Info.HasMapper = true;
MFunc = CGF.CGM.getOpenMPRuntime().getOrCreateUserDefinedMapperFunc(
Expand All @@ -10093,7 +10093,8 @@ void CGOpenMPRuntime::emitTargetDataCalls(
llvm::OpenMPIRBuilder::InsertPointTy AfterIP =
cantFail(OMPBuilder.createTargetData(
OmpLoc, AllocaIP, CodeGenIP, DeviceID, IfCondVal, Info, GenMapInfoCB,
/*MapperFunc=*/nullptr, BodyCB, DeviceAddrCB, CustomMapperCB, RTLoc));
CustomMapperCB,
/*MapperFunc=*/nullptr, BodyCB, DeviceAddrCB, RTLoc));
CGF.Builder.restoreIP(AfterIP);
}

Expand Down
19 changes: 19 additions & 0 deletions clang/test/AST/ByteCode/records.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1715,3 +1715,22 @@ namespace IgnoredMemberExpr {
};
static_assert(B{}.foo() == 0, "");
}

#if __cplusplus >= 202002L
namespace DeadUpcast {
struct A {};
struct B : A{};
constexpr bool foo() {

B *pb;
{
B b;
pb = &b;
}
A *pa = pb;

return true;
}
static_assert(foo(), "");
}
#endif
11 changes: 11 additions & 0 deletions clang/test/AST/HLSL/TypdefArrayParam.hlsl
Original file line number Diff line number Diff line change
Expand Up @@ -55,3 +55,14 @@ void call2() {
uint4 C[2] = {A,A};
uint32_t D = Accumulate(C);
}

typedef int Foo[2];

// CHECK-LABEL: call3
// CHECK: ArraySubscriptExpr {{.*}} 'int' lvalue
// CHECK-NEXT: ImplicitCastExpr {{.*}} 'int *' <ArrayToPointerDecay>
// CHECK-NEXT: DeclRefExpr {{.*}} 'int[2]' lvalue ParmVar {{.*}} 'F' 'int[2]'
// CHECK-NEXT: IntegerLiteral {{.*}} 'int' 0
int call3(Foo F) {
return F[0];
}
Loading