Skip to content

[AutoBump] Merge with 27fe2c95 (Feb 18) (50) #594

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 128 commits into
base: bump_to_c1a22925
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
128 commits
Select commit Hold shift + click to select a range
501c77d
[LLD][ELF][ARM] Fix resolution of R_ARM_THM_JUMP8 and R_ARM_THM_JUMP1…
vhscampos Feb 17, 2025
f378e52
[clang][analysis] Fix flaky clang/test/Analysis/live-stmts.cpp test (…
steakhal Feb 17, 2025
b302829
[mlir][linalg] Remove `computeStaticLoopSizes` (#124778)
josel-amd Feb 17, 2025
f09fd94
[clang][bytecode] Restructure Program::CurrentDeclaration handling (#…
tbaederr Feb 17, 2025
9d24f94
[X86] combineConcatVectorOps - remove duplicate DAG.getContext() call…
RKSimon Feb 17, 2025
517800e
[mlir][tensor][linalg] Move Pack/UnPack Ops to Linalg (#123902)
banach-space Feb 17, 2025
02c44ce
Reformat reglists in SystemZMCTargetDesc.cpp (NFC) (#127472)
JonPsson1 Feb 17, 2025
837b89f
[MLIR][NVVM] Add `ptxas-cmd-options` to pass flags to the downstream …
grypp Feb 17, 2025
a177be5
[mlir][Linalg] Bugfix in decompose generic by unfolding permutation (…
gdehame Feb 17, 2025
80b08d1
[TableGen] Add support for per-write cycle tunables (#125870)
rj-jesus Feb 17, 2025
43d308d
[compiler-rt] Add support for big endian for Arm's __negdf2vfp (#127096)
vhscampos Feb 17, 2025
4c4fc46
[Flang-RT] Build libflang_rt.so (#121782)
Meinersbur Feb 17, 2025
9c9157b
Fix typo in LangImpl03.rst (#127389)
dnbln Feb 17, 2025
8eba128
ConstRange: exhaustively test makeExactICmpRegion (#127058)
artagnon Feb 17, 2025
81a8b20
[SystemZ][z/OS] Define _XOPEN_SOURCE=600 for dlopen (#127254)
abhina-sree Feb 17, 2025
f4206f9
[libunwind] Silence -Wunused-parameter warnings in Unwind-wasm.c (#12…
georgthegreat Feb 17, 2025
9c49b18
[clang] Fix false positive regression for lifetime analysis warning. …
hokein Feb 17, 2025
949e404
[libc++] Add watchOS and tvOS checks for aligned_alloc (#126862)
Un1q32 Feb 17, 2025
d25beca
[MLIR][Doc] Update the pass infra doc to advise against `let construc…
joker-eph Feb 17, 2025
18ea6c9
AMDGPU: Stop emitting an error on illegal addrspacecasts (#127487)
arsenm Feb 17, 2025
4e41e9a
[mlir] Update docs for Greedy Pattern Rewrite Driver(NFC) (#126701)
CoTinker Feb 17, 2025
919e72f
[flang][OpenMP] Support `bind` clause for `teams loop` (#127021)
ergawy Feb 17, 2025
9d48705
[clang][analyzer] Teach the BlockInCriticalSectionChecker about O_NON…
flovent Feb 17, 2025
ab2d330
TableGen: Generate reverseComposeSubRegIndices (#127050)
arsenm Feb 17, 2025
fb29f19
[libc++] Synchronize status pages with Github issues list
ldionne Feb 17, 2025
ec54403
[libc++] Synchronize a few remaining status page rows with Github issues
ldionne Feb 17, 2025
788cb72
[Hexagon] Explicitly truncate constant in UAddSubO (#127360)
androm3da Feb 17, 2025
6c62783
[VPlan] Use VPlan predecessors in VPWidenPHIRecipe (NFC). (#126388)
fhahn Feb 17, 2025
c5ea469
[OMPIRBuilder] - Fix emitTargetTaskProxyFunc to not generate empty fu…
bhandarkar-pranav Feb 17, 2025
d290456
[X86] combineConcatVectorOps - fold concat(EXTEND_VECTOR_INREG(x),EXT…
RKSimon Feb 17, 2025
8aff59d
[NFC][AMDGPU] Auto generate check lines for three test cases (#127352)
shiltian Feb 17, 2025
6a30076
[Analysis] Remove getGuaranteedNonPoisonOps (#127461)
kazutakahirata Feb 17, 2025
6d86a8a
LAA: scope responsibility of isNoWrapAddRec (NFC) (#127479)
artagnon Feb 17, 2025
15c2d1b
[libclc] Fix dependencies on generated convert builtins (#127515)
frasercrmck Feb 17, 2025
2dda529
[AArch64] Fix Fold of Compare with Right-shifted Value (#127209)
mskamp Feb 17, 2025
85f7ec1
[RISCV] Remove unneeded unmasked patterns for vcpop_v and riscv_vfirs…
topperc Feb 17, 2025
62254f6
[Targets] Move *TargetStreamer.h files into their MCTargetDesc direct…
topperc Feb 17, 2025
7465647
[mlir][x86vector] Fix integration tests lowering (#124934)
adam-smnk Feb 17, 2025
941f7cb
[libc++][TZDB] Fixes mapping of nonexisting time. (#127330)
mordante Feb 17, 2025
eaa460c
[AMDGPU] Remove dead function metadata after amdgpu-lower-kernel-argu…
slinder1 Feb 17, 2025
29ca3b8
[AMDGPU] Push amdgpu-preload-kern-arg-prolog after livedebugvalues (#…
slinder1 Feb 17, 2025
0d2722c
[libc][Docs] Add proper 'offload' build to use libc with offload
jhuber6 Feb 17, 2025
1594405
[LLD][COFF] Split native and EC .CRT chunks on ARM64X (#127203)
cjacek Feb 17, 2025
f0e39c4
[AArch64] Add aliases for processors apple-a18/s6..10. (#127152)
ahmedbougacha Feb 17, 2025
6fde8fe
[lldb] Provide default impl for MightHaveChildren (NFC) (#119977)
kastiglione Feb 17, 2025
83e180c
[Clang][PGO] Fix profile function visibility bug (#127257)
EthanLuisMcDonough Feb 17, 2025
f5c5bc5
[CodeGen][ObjC] Invalidate cached ObjC class layout information after…
ahatanak Feb 17, 2025
3fa85c7
[libc++] Document that libc++ does not and will never implement the N…
ldionne Feb 17, 2025
a7a3568
[NFC][Clang][CodeGen] Remove vestigial assertion (#127528)
AlexVlx Feb 17, 2025
9a584b0
[Clang] Add handlers for 'match_any' and 'match_all' to `gpuintrin.h`…
jhuber6 Feb 17, 2025
a8b177a
[LAA] Remove unneeded hasNoOverflow call (NFC).
fhahn Feb 17, 2025
a92bfaa
[LLD][COFF] Support MinGW constructor and destructor lists on ARM64X …
cjacek Feb 17, 2025
620a515
[VPlan] Add message to assert in HCFGBuilder (NFC).
fhahn Feb 17, 2025
88e72c4
[LAA] Add test where GEPs may wrap.
fhahn Feb 17, 2025
93a1184
[MLIR][LLVM] Fix import split marker in alias test (#127540)
xlauko Feb 17, 2025
a377cdd
[lldb][TypeSystemClang] Add support for floating point template argum…
Michael137 Feb 17, 2025
44cfb6b
[SPIR-V] Ensure that a correct pointer type is deduced from the Value…
VyacheslavLevytskyy Feb 17, 2025
798890e
[AArch64] Remove unused HasFPAC. NFC
davemgreen Feb 17, 2025
0b8bd47
[OpenMP][libomp] Add OpenBSD, NetBSD and DragonFly stdarg handling (#…
brad0 Feb 17, 2025
a3dc77c
[lldb] Support stepping through C++ thunks (#127419)
JDevlieghere Feb 17, 2025
2b41277
[lldb] Disable test_step_out_thunk on Windows
JDevlieghere Feb 18, 2025
8fe290e
[libc] Canonicalize generated fenv.h (#127363)
frobtech Feb 18, 2025
ed38d67
PeepholeOpt: Handle subregister compose when looking through reg_sequ…
arsenm Feb 18, 2025
b5b8a59
AMDGPU: Implement getRequiredProperties for SIFoldOperands (#127522)
arsenm Feb 18, 2025
09d1414
[clang][bytecode] Fix return value of array CXXNewExprs (#127526)
tbaederr Feb 18, 2025
51c9109
Reapply "Make llvm::telemetry::Manager::preDispatch protected. (#127…
oontvoo Feb 18, 2025
d19187f
[AMDGPU] Move into SIProgramInfo and cache getFunctionCodeSize. NFCI.…
rampitec Feb 18, 2025
f71b83b
[lldb] Add a release note for #127419
JDevlieghere Feb 18, 2025
fe1ef41
AMDGPU: Add more tests for peephole-opt immediate folding (#127480)
arsenm Feb 18, 2025
4dee305
AMDGPU: Fix foldImmediate breaking register class constraints (#127481)
arsenm Feb 18, 2025
af1e2a3
[Mips] Support llvm.readcyclecounter intrinsic (#127553)
yingopq Feb 18, 2025
83d7f4b
AMDGPU: Implement getConstValDefinedInReg and use in foldImmediate (N…
arsenm Feb 18, 2025
c5def84
AMDGPU: Handle brev and not cases in getConstValDefinedInReg (#127483)
arsenm Feb 18, 2025
ef9f0b3
[DAGCombiner] Don't peek through truncates of shift amounts in takeIn…
topperc Feb 18, 2025
663db5c
[AMDGPU][NewPM] Port GCNNSAReassign pass to new pass manager (#125034)
vikramRH Feb 18, 2025
0b719d3
[clangd] Enable parsing of forwarding functions in the preamble by de…
HighCommander4 Feb 18, 2025
d09cce1
[clang][Index] Use HeuristicResolver in libIndex (#125153)
HighCommander4 Feb 18, 2025
a5e6ccf
[mlir][bazel] Port https://github.com/llvm/llvm-project/commit/517800…
chsigg Feb 18, 2025
6ba34f9
[RISCV] Use policy instead of ForceTailAgnostic for vmsbf/vmsif/vmsof…
topperc Feb 18, 2025
6b2e511
[RISCV] Implement isHighLatencyDef() (#127476)
wangpc-pp Feb 18, 2025
6e53270
[clang][bazel] Port https://github.com/llvm/llvm-project/commit/d09cc…
chsigg Feb 18, 2025
ab8d995
[mlir][bazel] Fix after https://github.com/llvm/llvm-project/pull/127544
chsigg Feb 18, 2025
77410f2
[mlir][tensor] Remove unnecessary include.
chsigg Feb 18, 2025
251377c
[InstCombine] Fold shift+cttz with power of 2 operands (#127055)
MDevereau Feb 18, 2025
b227c25
[mlir][scf] add unroll-full option to test-loop-unrolling pass (#127158)
linuxlonelyeagle Feb 18, 2025
d49c318
[X86] emitEpilogue - silence implicit integer extension warning. (#12…
RKSimon Feb 18, 2025
1ae9dd3
[X86] combineConcatVectorOps - add EXTEND_VECTOR_INREG() 512-bit hand…
RKSimon Feb 18, 2025
13de15c
[clang-format] Fix a bug in annotating StartOfName (#127545)
owenca Feb 18, 2025
e235fcb
[BOLT] Only link and initialize supported targets (#127509)
nikic Feb 18, 2025
03cb46d
[CodeGen] Use getSignedConstant() in more places (#127501)
nikic Feb 18, 2025
6a360b3
AMDGPU: Remove redundant inline constant check (#127582)
arsenm Feb 18, 2025
f7c71f1
[Clang][P1061] Consolidate ResolvedUnpexandedPackExpr into FunctionPa…
ricejasonf Feb 18, 2025
252c83b
[clang][Sema] Fix type of an statement expression ending with an atom…
alejandro-alvarez-sonarsource Feb 18, 2025
88dd372
[flang][Lower][OpenMP] Don't read moldarg for static sized array (#12…
tblah Feb 18, 2025
d4a0848
[SelectionDAG] Add PARTIAL_REDUCE_U/SMLA ISD Nodes (#125207)
JamesChesterman Feb 18, 2025
22ef210
Revert "[flang][Lower][OpenMP] Don't read moldarg for static sized ar…
tblah Feb 18, 2025
9fec0a0
[libclc] Disable external-calls testing for clspv targets (#127529)
frasercrmck Feb 18, 2025
b805410
LLVM/Test: Mark Mips readcyclecounter.ll XFAIL: expensive_checks (#12…
wzssyqa Feb 18, 2025
61ab476
[SPIR-V] Fix out-of-range value for NumWorkgroups builtin (#127198)
svenvh Feb 18, 2025
2fdb26d
[clang][RISCV] Introduce preprocessor macro when Zicfiss-based shadow…
mylai-mtk Feb 18, 2025
2b71df5
[mlir][x86vector] AVX512-BF16 Convert packed F32 to BF16 (#125685)
adam-smnk Feb 18, 2025
bc4f05d
[AMDGPU] Early bail in getFunctionCodeSize for meta inst. NFC. (#127129)
rampitec Feb 18, 2025
7c03865
AMDGPU: Extract lambda used in foldImmediate into a helper function (…
arsenm Feb 18, 2025
1c8add1
[analyzer] Add hack in ArrayBound to cover up missing casts (#127117)
NagyDonat Feb 18, 2025
cd10c01
AMDGPU: Handle subregister uses in SIFoldOperands constant folding (#…
arsenm Feb 18, 2025
ef21831
[bolt][bazel] Port https://github.com/llvm/llvm-project/commit/e235fc…
chsigg Feb 18, 2025
6646b65
[LAA] Rework and rename stripGetElementPtr (#125315)
artagnon Feb 18, 2025
c71f914
[AArch64] Add a phase-ordering test for dividing vscale. NFC
davemgreen Feb 18, 2025
41be5bb
[mlir][vector] Update tests for xfer permutation lowering (3/N) (#127…
banach-space Feb 18, 2025
8655378
[SPIR-V] Built-in variables: mapping from an OpenCL to SPIR-V BuiltIn…
VyacheslavLevytskyy Feb 18, 2025
7620011
[libc++] Do not guard inclusion of wchar.h with _LIBCPP_HAS_WIDE_CHAR…
stevew817 Feb 18, 2025
059f044
[ORC] Propagate weak & hidden flags when creating lazy reexports, red…
lhames Feb 18, 2025
719c46b
[FunctionAttrs] Fix typo in `getArgumentAccessInfo` name (NFC)
antoniofrighetto Feb 18, 2025
519b53e
[CodeGen][NewPM] Port RegAllocEvictionAdvisor analysis to NPM (#117309)
optimisan Feb 18, 2025
d64f177
[mlir][bazel] Fix `no-allow-shlib-undefined` errors.
chsigg Feb 18, 2025
91ef371
[MLIR] Update `operator<<` in objects of DataFlowFramework.h (#127586)
ita9naiwa Feb 18, 2025
1c6cecd
[libclc] Suppress data-layout warnings during linking (#127532)
frasercrmck Feb 18, 2025
df300a4
[llvm][docs] Fix typo in Backporting section of GitHub.rst.
paulwalker-arm Feb 18, 2025
93d3e20
[mlir][spirv] Add definition for OpKill (#126554)
IgWod-IMG Feb 18, 2025
eb7c947
AMDGPU: Correct legal literal operand logic for multiple uses (#127594)
arsenm Feb 18, 2025
e5ce1d3
[gn] Move write_target_def_file to its own .gni file
nico Feb 18, 2025
09c2441
[gn] port e235fcb582ee (bolt TargetConfig.def)
nico Feb 18, 2025
5fbb6d9
[clang][bytecode] Allow up/down casts of nullptr (#127615)
tbaederr Feb 18, 2025
7e2707a
[mlir][nfc] Add a negative test for --linalg-specialize-generic-ops (…
banach-space Feb 18, 2025
3b6cc94
[SystemZ][z/OS] Mark text files as text in ClangScanDeps (#127514)
abhina-sree Feb 18, 2025
0d66659
[BasicAA] Add test for #126670 (NFC)
nikic Feb 18, 2025
27fe2c9
[bazel]Move HAVE_GETAUXVAL from config.h to config.bzl (#127637)
dklimkin Feb 18, 2025
6666d7e
[AutoBump] Merge with 27fe2c95 (Feb 18)
jorickert Jun 17, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
8 changes: 8 additions & 0 deletions bolt/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -202,3 +202,11 @@ endif()

configure_file(${CMAKE_CURRENT_SOURCE_DIR}/include/bolt/RuntimeLibs/RuntimeLibraryVariables.inc.in
${CMAKE_CURRENT_BINARY_DIR}/include/bolt/RuntimeLibs/RuntimeLibraryVariables.inc @ONLY)

set(BOLT_ENUM_TARGETS "")
foreach(t ${BOLT_TARGETS_TO_BUILD})
set(BOLT_ENUM_TARGETS "${BOLT_ENUM_TARGETS}BOLT_TARGET(${t})\n")
endforeach(t)

configure_file(${CMAKE_CURRENT_SOURCE_DIR}/include/bolt/Core/TargetConfig.def.in
${CMAKE_CURRENT_BINARY_DIR}/include/bolt/Core/TargetConfig.def @ONLY)
23 changes: 23 additions & 0 deletions bolt/include/bolt/Core/TargetConfig.def.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
//===-- TargetConfig.def.in - Information about available targets ---------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
//
// This file is configured by the build system to define the available bolt
// targets.
//
// The variant of this file not ending with .in has been autogenerated by the
// LLVM build. Do not edit!
//
//===----------------------------------------------------------------------===//

#ifndef BOLT_TARGET
# error Please define the macro BOLT_TARGET(TargetName)
#endif

@BOLT_ENUM_TARGETS@

#undef BOLT_TARGET
2 changes: 1 addition & 1 deletion bolt/tools/binary-analysis/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
set(LLVM_LINK_COMPONENTS
${LLVM_TARGETS_TO_BUILD}
${BOLT_TARGETS_TO_BUILD}
MC
Object
Support
Expand Down
16 changes: 9 additions & 7 deletions bolt/tools/binary-analysis/binary-analysis.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -88,13 +88,15 @@ int main(int argc, char **argv) {
llvm_shutdown_obj Y; // Call llvm_shutdown() on exit.

// Initialize targets and assembly printers/parsers.
llvm::InitializeAllTargetInfos();
llvm::InitializeAllTargetMCs();
llvm::InitializeAllAsmParsers();
llvm::InitializeAllDisassemblers();

llvm::InitializeAllTargets();
llvm::InitializeAllAsmPrinters();
#define BOLT_TARGET(target) \
LLVMInitialize##target##TargetInfo(); \
LLVMInitialize##target##TargetMC(); \
LLVMInitialize##target##AsmParser(); \
LLVMInitialize##target##Disassembler(); \
LLVMInitialize##target##Target(); \
LLVMInitialize##target##AsmPrinter();

#include "bolt/Core/TargetConfig.def"

ParseCommandLine(argc, argv);

Expand Down
2 changes: 1 addition & 1 deletion bolt/tools/driver/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
set(LLVM_LINK_COMPONENTS
${LLVM_TARGETS_TO_BUILD}
${BOLT_TARGETS_TO_BUILD}
MC
Object
Support
Expand Down
16 changes: 9 additions & 7 deletions bolt/tools/driver/llvm-bolt.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -183,13 +183,15 @@ int main(int argc, char **argv) {
std::string ToolPath = llvm::sys::fs::getMainExecutable(argv[0], nullptr);

// Initialize targets and assembly printers/parsers.
llvm::InitializeAllTargetInfos();
llvm::InitializeAllTargetMCs();
llvm::InitializeAllAsmParsers();
llvm::InitializeAllDisassemblers();

llvm::InitializeAllTargets();
llvm::InitializeAllAsmPrinters();
#define BOLT_TARGET(target) \
LLVMInitialize##target##TargetInfo(); \
LLVMInitialize##target##TargetMC(); \
LLVMInitialize##target##AsmParser(); \
LLVMInitialize##target##Disassembler(); \
LLVMInitialize##target##Target(); \
LLVMInitialize##target##AsmPrinter();

#include "bolt/Core/TargetConfig.def"

ToolName = argv[0];

Expand Down
2 changes: 1 addition & 1 deletion bolt/tools/heatmap/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
set(LLVM_LINK_COMPONENTS
${LLVM_TARGETS_TO_BUILD}
${BOLT_TARGETS_TO_BUILD}
MC
Object
Support
Expand Down
16 changes: 9 additions & 7 deletions bolt/tools/heatmap/heatmap.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -76,13 +76,15 @@ int main(int argc, char **argv) {
opts::OutputFilename = "-";

// Initialize targets and assembly printers/parsers.
llvm::InitializeAllTargetInfos();
llvm::InitializeAllTargetMCs();
llvm::InitializeAllAsmParsers();
llvm::InitializeAllDisassemblers();

llvm::InitializeAllTargets();
llvm::InitializeAllAsmPrinters();
#define BOLT_TARGET(target) \
LLVMInitialize##target##TargetInfo(); \
LLVMInitialize##target##TargetMC(); \
LLVMInitialize##target##AsmParser(); \
LLVMInitialize##target##Disassembler(); \
LLVMInitialize##target##Target(); \
LLVMInitialize##target##AsmPrinter();

#include "bolt/Core/TargetConfig.def"

ToolName = argv[0];
std::string ToolPath = GetExecutablePath(argv[0]);
Expand Down
2 changes: 1 addition & 1 deletion bolt/tools/llvm-bolt-fuzzer/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
set(LLVM_LINK_COMPONENTS
${LLVM_TARGETS_TO_BUILD}
${BOLT_TARGETS_TO_BUILD}
)

add_llvm_fuzzer(llvm-bolt-fuzzer
Expand Down
15 changes: 9 additions & 6 deletions bolt/tools/llvm-bolt-fuzzer/llvm-bolt-fuzzer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -58,13 +58,16 @@ extern "C" int LLVMFuzzerTestOneInput(const char *Data, size_t Size) {

extern "C" LLVM_ATTRIBUTE_USED int LLVMFuzzerInitialize(int *argc,
char ***argv) {
llvm::InitializeAllTargetInfos();
llvm::InitializeAllTargetMCs();
llvm::InitializeAllAsmParsers();
llvm::InitializeAllDisassemblers();
// Initialize targets and assembly printers/parsers.
#define BOLT_TARGET(target) \
LLVMInitialize##target##TargetInfo(); \
LLVMInitialize##target##TargetMC(); \
LLVMInitialize##target##AsmParser(); \
LLVMInitialize##target##Disassembler(); \
LLVMInitialize##target##Target(); \
LLVMInitialize##target##AsmPrinter();

llvm::InitializeAllTargets();
llvm::InitializeAllAsmPrinters();
#include "bolt/Core/TargetConfig.def"

return 0;
}
15 changes: 9 additions & 6 deletions bolt/unittests/Core/BinaryContext.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,15 @@ struct BinaryContextTester : public testing::TestWithParam<Triple::ArchType> {

protected:
void initalizeLLVM() {
llvm::InitializeAllTargetInfos();
llvm::InitializeAllTargetMCs();
llvm::InitializeAllAsmParsers();
llvm::InitializeAllDisassemblers();
llvm::InitializeAllTargets();
llvm::InitializeAllAsmPrinters();
#define BOLT_TARGET(target) \
LLVMInitialize##target##TargetInfo(); \
LLVMInitialize##target##TargetMC(); \
LLVMInitialize##target##AsmParser(); \
LLVMInitialize##target##Disassembler(); \
LLVMInitialize##target##Target(); \
LLVMInitialize##target##AsmPrinter();

#include "bolt/Core/TargetConfig.def"
}

void prepareElf() {
Expand Down
2 changes: 1 addition & 1 deletion bolt/unittests/Core/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ set(LLVM_LINK_COMPONENTS
DebugInfoDWARF
Object
MC
${LLVM_TARGETS_TO_BUILD}
${BOLT_TARGETS_TO_BUILD}
)

add_bolt_unittest(CoreTests
Expand Down
15 changes: 9 additions & 6 deletions bolt/unittests/Core/MCPlusBuilder.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,12 +37,15 @@ struct MCPlusBuilderTester : public testing::TestWithParam<Triple::ArchType> {

protected:
void initalizeLLVM() {
llvm::InitializeAllTargetInfos();
llvm::InitializeAllTargetMCs();
llvm::InitializeAllAsmParsers();
llvm::InitializeAllDisassemblers();
llvm::InitializeAllTargets();
llvm::InitializeAllAsmPrinters();
#define BOLT_TARGET(target) \
LLVMInitialize##target##TargetInfo(); \
LLVMInitialize##target##TargetMC(); \
LLVMInitialize##target##AsmParser(); \
LLVMInitialize##target##Disassembler(); \
LLVMInitialize##target##Target(); \
LLVMInitialize##target##AsmPrinter();

#include "bolt/Core/TargetConfig.def"
}

void prepareElf() {
Expand Down
15 changes: 9 additions & 6 deletions bolt/unittests/Core/MemoryMaps.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,15 @@ struct MemoryMapsTester : public testing::TestWithParam<Triple::ArchType> {

protected:
void initalizeLLVM() {
llvm::InitializeAllTargetInfos();
llvm::InitializeAllTargetMCs();
llvm::InitializeAllAsmParsers();
llvm::InitializeAllDisassemblers();
llvm::InitializeAllTargets();
llvm::InitializeAllAsmPrinters();
#define BOLT_TARGET(target) \
LLVMInitialize##target##TargetInfo(); \
LLVMInitialize##target##TargetMC(); \
LLVMInitialize##target##AsmParser(); \
LLVMInitialize##target##Disassembler(); \
LLVMInitialize##target##Target(); \
LLVMInitialize##target##AsmPrinter();

#include "bolt/Core/TargetConfig.def"
}

void prepareElf() {
Expand Down
4 changes: 2 additions & 2 deletions clang-tools-extra/clangd/ClangdServer.h
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@ class ClangdServer {
bool UseDirtyHeaders = false;

// If true, parse emplace-like functions in the preamble.
bool PreambleParseForwardingFunctions = false;
bool PreambleParseForwardingFunctions = true;

/// Whether include fixer insertions for Objective-C code should use #import
/// instead of #include.
Expand Down Expand Up @@ -501,7 +501,7 @@ class ClangdServer {
// Whether the client supports folding only complete lines.
bool LineFoldingOnly = false;

bool PreambleParseForwardingFunctions = false;
bool PreambleParseForwardingFunctions = true;

bool ImportInsertions = false;

Expand Down
2 changes: 1 addition & 1 deletion clang-tools-extra/clangd/Compiler.h
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ class IgnoreDiagnostics : public DiagnosticConsumer {

// Options to run clang e.g. when parsing AST.
struct ParseOptions {
bool PreambleParseForwardingFunctions = false;
bool PreambleParseForwardingFunctions = true;

bool ImportInsertions = false;
};
Expand Down
1 change: 1 addition & 0 deletions clang/docs/ReleaseNotes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,7 @@ Bug Fixes to C++ Support

Bug Fixes to AST Handling
^^^^^^^^^^^^^^^^^^^^^^^^^
- Fixed type checking when a statement expression ends in an l-value of atomic type. (#GH106576)

Miscellaneous Bug Fixes
^^^^^^^^^^^^^^^^^^^^^^^
Expand Down
28 changes: 14 additions & 14 deletions clang/include/clang/AST/ASTContext.h
Original file line number Diff line number Diff line change
Expand Up @@ -287,8 +287,8 @@ class ASTContext : public RefCountedBase<ASTContext> {
/// This is lazily created. This is intentionally not serialized.
mutable llvm::DenseMap<const RecordDecl*, const ASTRecordLayout*>
ASTRecordLayouts;
mutable llvm::DenseMap<const ObjCContainerDecl*, const ASTRecordLayout*>
ObjCLayouts;
mutable llvm::DenseMap<const ObjCInterfaceDecl *, const ASTRecordLayout *>
ObjCLayouts;

/// A cache from types to size and alignment information.
using TypeInfoMap = llvm::DenseMap<const Type *, struct TypeInfo>;
Expand Down Expand Up @@ -500,6 +500,11 @@ class ASTContext : public RefCountedBase<ASTContext> {
static constexpr unsigned GeneralTypesLog2InitSize = 9;
static constexpr unsigned FunctionProtoTypesLog2InitSize = 12;

/// A mapping from an ObjC class to its subclasses.
llvm::DenseMap<const ObjCInterfaceDecl *,
SmallVector<const ObjCInterfaceDecl *, 4>>
ObjCSubClasses;

ASTContext &this_() { return *this; }

public:
Expand Down Expand Up @@ -2671,13 +2676,6 @@ class ASTContext : public RefCountedBase<ASTContext> {
void DumpRecordLayout(const RecordDecl *RD, raw_ostream &OS,
bool Simple = false) const;

/// Get or compute information about the layout of the specified
/// Objective-C implementation.
///
/// This may differ from the interface if synthesized ivars are present.
const ASTRecordLayout &
getASTObjCImplementationLayout(const ObjCImplementationDecl *D) const;

/// Get our current best idea for the key function of the
/// given record decl, or nullptr if there isn't one.
///
Expand Down Expand Up @@ -2716,7 +2714,6 @@ class ASTContext : public RefCountedBase<ASTContext> {

/// Get the offset of an ObjCIvarDecl in bits.
uint64_t lookupFieldBitOffset(const ObjCInterfaceDecl *OID,
const ObjCImplementationDecl *ID,
const ObjCIvarDecl *Ivar) const;

/// Find the 'this' offset for the member path in a pointer-to-member
Expand Down Expand Up @@ -3174,7 +3171,12 @@ class ASTContext : public RefCountedBase<ASTContext> {
bool &CanUseFirst, bool &CanUseSecond,
SmallVectorImpl<FunctionProtoType::ExtParameterInfo> &NewParamInfos);

void ResetObjCLayout(const ObjCContainerDecl *CD);
void ResetObjCLayout(const ObjCInterfaceDecl *D);

void addObjCSubClass(const ObjCInterfaceDecl *D,
const ObjCInterfaceDecl *SubClass) {
ObjCSubClasses[D].push_back(SubClass);
}

//===--------------------------------------------------------------------===//
// Integer Predicates
Expand Down Expand Up @@ -3564,9 +3566,7 @@ OPT_LIST(V)
friend class DeclarationNameTable;
friend class DeclContext;

const ASTRecordLayout &
getObjCLayout(const ObjCInterfaceDecl *D,
const ObjCImplementationDecl *Impl) const;
const ASTRecordLayout &getObjCLayout(const ObjCInterfaceDecl *D) const;

/// A set of deallocations that should be performed when the
/// ASTContext is destroyed.
Expand Down
28 changes: 11 additions & 17 deletions clang/include/clang/AST/DeclCXX.h
Original file line number Diff line number Diff line change
Expand Up @@ -4194,8 +4194,8 @@ class BindingDecl : public ValueDecl {
/// decomposition declaration, and when the initializer is type-dependent.
Expr *getBinding() const { return Binding; }

// Get the array of Exprs when the binding represents a pack.
llvm::ArrayRef<Expr *> getBindingPackExprs() const;
// Get the array of nested BindingDecls when the binding represents a pack.
llvm::ArrayRef<BindingDecl *> getBindingPackDecls() const;

/// Get the decomposition declaration that this binding represents a
/// decomposition of.
Expand Down Expand Up @@ -4246,10 +4246,8 @@ class DecompositionDecl final
for (auto *B : Bindings) {
B->setDecomposedDecl(this);
if (B->isParameterPack() && B->getBinding()) {
for (Expr *E : B->getBindingPackExprs()) {
auto *DRE = cast<DeclRefExpr>(E);
auto *NestedB = cast<BindingDecl>(DRE->getDecl());
NestedB->setDecomposedDecl(this);
for (BindingDecl *NestedBD : B->getBindingPackDecls()) {
NestedBD->setDecomposedDecl(this);
}
}
}
Expand Down Expand Up @@ -4278,25 +4276,21 @@ class DecompositionDecl final
// Provide a flattened range to visit each binding.
auto flat_bindings() const {
llvm::ArrayRef<BindingDecl *> Bindings = bindings();
llvm::ArrayRef<Expr *> PackExprs;
llvm::ArrayRef<BindingDecl *> PackBindings;

// Split the bindings into subranges split by the pack.
auto S1 = Bindings.take_until(
llvm::ArrayRef<BindingDecl *> BeforePackBindings = Bindings.take_until(
[](BindingDecl *BD) { return BD->isParameterPack(); });

Bindings = Bindings.drop_front(S1.size());
Bindings = Bindings.drop_front(BeforePackBindings.size());
if (!Bindings.empty()) {
PackExprs = Bindings.front()->getBindingPackExprs();
PackBindings = Bindings.front()->getBindingPackDecls();
Bindings = Bindings.drop_front();
}

auto S2 = llvm::map_range(PackExprs, [](Expr *E) {
auto *DRE = cast<DeclRefExpr>(E);
return cast<BindingDecl>(DRE->getDecl());
});

return llvm::concat<BindingDecl *>(std::move(S1), std::move(S2),
std::move(Bindings));
return llvm::concat<BindingDecl *const>(std::move(BeforePackBindings),
std::move(PackBindings),
std::move(Bindings));
}

void printName(raw_ostream &OS, const PrintingPolicy &Policy) const override;
Expand Down
Loading