Skip to content

Commit aa612df

Browse files
authored
Merge branch 'main' into issue-81779
2 parents 18ee79b + f6d6d2d commit aa612df

File tree

509 files changed

+19243
-16001
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

509 files changed

+19243
-16001
lines changed

.github/copilot-instructions.md renamed to .github/instructions/llvm.instructions.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
---
2+
applyTo: llvm/**/*
3+
---
4+
15
When performing a code review, pay close attention to code modifying a function's
26
control flow. Could the change result in the corruption of performance profile
37
data? Could the change result in invalid debug information, in particular for

.github/workflows/release-binaries-all.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,6 @@ jobs:
9090
runs-on:
9191
- ubuntu-22.04
9292
- ubuntu-22.04-arm
93-
- macos-13
9493
- macos-14
9594

9695
uses: ./.github/workflows/release-binaries.yml

.github/workflows/release-binaries.yml

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ on:
2121
options:
2222
- ubuntu-22.04
2323
- ubuntu-22.04-arm
24-
- macos-13
2524
- macos-14
2625

2726
workflow_call:
@@ -130,8 +129,6 @@ jobs:
130129
target_cmake_flags="$target_cmake_flags -DBOOTSTRAP_BOOTSTRAP_COMPILER_RT_ENABLE_IOS=OFF"
131130
if [ "$RUNNER_ARCH" = "ARM64" ]; then
132131
arches=arm64
133-
else
134-
arches=x86_64
135132
fi
136133
target_cmake_flags="$target_cmake_flags -DBOOTSTRAP_BOOTSTRAP_DARWIN_osx_ARCHS=$arches -DBOOTSTRAP_BOOTSTRAP_DARWIN_osx_BUILTIN_ARCHS=$arches"
137134
fi
@@ -147,14 +144,6 @@ jobs:
147144
build_runs_on="depot-${{ inputs.runs-on }}-16"
148145
test_runs_on=$build_runs_on
149146
;;
150-
macos-13)
151-
if [ "$GITHUB_EVENT_NAME" = "pull_request" ]; then
152-
build_runs_on="${{ inputs.runs-on }}"
153-
else
154-
build_runs_on="macos-13-large"
155-
fi
156-
test_runs_on="${{ inputs.runs-on }}"
157-
;;
158147
macos-14)
159148
if [ "$GITHUB_EVENT_NAME" = "pull_request" ]; then
160149
build_runs_on="${{ inputs.runs-on }}"

bolt/lib/Core/BinaryFunction.cpp

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1699,9 +1699,19 @@ bool BinaryFunction::scanExternalRefs() {
16991699

17001700
const uint64_t FunctionOffset =
17011701
TargetAddress - TargetFunction->getAddress();
1702-
BranchTargetSymbol =
1703-
FunctionOffset ? TargetFunction->addEntryPointAtOffset(FunctionOffset)
1704-
: TargetFunction->getSymbol();
1702+
if (!TargetFunction->isInConstantIsland(TargetAddress)) {
1703+
BranchTargetSymbol =
1704+
FunctionOffset
1705+
? TargetFunction->addEntryPointAtOffset(FunctionOffset)
1706+
: TargetFunction->getSymbol();
1707+
} else {
1708+
TargetFunction->setIgnored();
1709+
BC.outs() << "BOLT-WARNING: Ignoring entry point at address 0x"
1710+
<< Twine::utohexstr(Address)
1711+
<< " in constant island of function " << *TargetFunction
1712+
<< '\n';
1713+
continue;
1714+
}
17051715
}
17061716

17071717
// Can't find more references. Not creating relocations since we are not

bolt/test/AArch64/constant-island-entry.s

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
1-
// This test checks that we ignore functions which add an entry point that
2-
// is in a constant island.
1+
## This test checks that we ignore functions which add an entry point that
2+
## is in a constant island.
33

44
# RUN: llvm-mc -filetype=obj -triple aarch64-unknown-unknown %s -o %t.o
55
# RUN: %clang %cflags %t.o -pie -Wl,-q -o %t.exe
6+
7+
## Check when the caller is successfully disassembled.
68
# RUN: llvm-bolt %t.exe -o %t.bolt 2>&1 | FileCheck %s
79

10+
## Skip caller to check the identical warning is triggered from ScanExternalRefs().
11+
# RUN: llvm-bolt %t.exe -o %t.bolt -skip-funcs=caller 2>&1 | FileCheck %s
12+
813
# CHECK: BOLT-WARNING: Ignoring entry point at address 0x{{[0-9a-f]+}} in constant island of function func
914

1015
.globl func

clang-tools-extra/clang-tidy/readability/RedundantParenthesesCheck.cpp

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
//===----------------------------------------------------------------------===//
88

99
#include "RedundantParenthesesCheck.h"
10+
#include "../utils/Matchers.h"
11+
#include "../utils/OptionsUtils.h"
1012
#include "clang/AST/Expr.h"
1113
#include "clang/ASTMatchers/ASTMatchFinder.h"
1214
#include "clang/ASTMatchers/ASTMatchers.h"
@@ -32,15 +34,30 @@ AST_MATCHER(ParenExpr, isInMacro) {
3234

3335
} // namespace
3436

37+
RedundantParenthesesCheck::RedundantParenthesesCheck(StringRef Name,
38+
ClangTidyContext *Context)
39+
: ClangTidyCheck(Name, Context),
40+
AllowedDecls(utils::options::parseStringList(
41+
Options.get("AllowedDecls", "std::max;std::min"))) {}
42+
43+
void RedundantParenthesesCheck::storeOptions(
44+
ClangTidyOptions::OptionMap &Opts) {
45+
Options.store(Opts, "AllowedDecls",
46+
utils::options::serializeStringList(AllowedDecls));
47+
}
48+
3549
void RedundantParenthesesCheck::registerMatchers(MatchFinder *Finder) {
3650
const auto ConstantExpr =
3751
expr(anyOf(integerLiteral(), floatLiteral(), characterLiteral(),
3852
cxxBoolLiteral(), stringLiteral(), cxxNullPtrLiteralExpr()));
3953
Finder->addMatcher(
40-
parenExpr(subExpr(anyOf(parenExpr(), ConstantExpr, declRefExpr())),
41-
unless(anyOf(isInMacro(),
42-
// sizeof(...) is common used.
43-
hasParent(unaryExprOrTypeTraitExpr()))))
54+
parenExpr(
55+
subExpr(anyOf(parenExpr(), ConstantExpr,
56+
declRefExpr(to(namedDecl(unless(
57+
matchers::matchesAnyListedName(AllowedDecls))))))),
58+
unless(anyOf(isInMacro(),
59+
// sizeof(...) is common used.
60+
hasParent(unaryExprOrTypeTraitExpr()))))
4461
.bind("dup"),
4562
this);
4663
}

clang-tools-extra/clang-tidy/readability/RedundantParenthesesCheck.h

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,16 @@ namespace clang::tidy::readability {
2020
/// https://clang.llvm.org/extra/clang-tidy/checks/readability/redundant-parentheses.html
2121
class RedundantParenthesesCheck : public ClangTidyCheck {
2222
public:
23-
RedundantParenthesesCheck(StringRef Name, ClangTidyContext *Context)
24-
: ClangTidyCheck(Name, Context) {}
23+
RedundantParenthesesCheck(StringRef Name, ClangTidyContext *Context);
24+
void storeOptions(ClangTidyOptions::OptionMap &Opts) override;
2525
void registerMatchers(ast_matchers::MatchFinder *Finder) override;
2626
void check(const ast_matchers::MatchFinder::MatchResult &Result) override;
2727
bool isLanguageVersionSupported(const LangOptions &LangOpts) const override {
2828
return LangOpts.CPlusPlus | LangOpts.C99;
2929
}
30+
31+
private:
32+
const std::vector<StringRef> AllowedDecls;
3033
};
3134

3235
} // namespace clang::tidy::readability

clang-tools-extra/docs/clang-tidy/checks/readability/redundant-parentheses.rst

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,16 @@ affect the semantics.
2727
.. code-block:: c++
2828

2929
int a = (1 * 2) + 3; // no warning
30+
31+
Options
32+
-------
33+
34+
.. option:: AllowedDecls
35+
36+
Semicolon-separated list of regular expressions matching names of declarations
37+
to ignore when the parentheses are around. Declarations can include variables
38+
or functions. The default is an `std::max;std::min`.
39+
40+
Some STL library functions may have the same name as widely used function-like
41+
macro. For example, ``std::max`` and ``max`` macro. A workaround to distinguish
42+
them is adding parentheses around functions to prevent function-like macro.

clang-tools-extra/test/clang-tidy/checkers/readability/redundant-parentheses.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,3 +62,12 @@ void exceptions() {
6262
// CHECK-MESSAGES: :[[@LINE-1]]:11: warning: redundant parentheses around expression [readability-redundant-parentheses]
6363
// CHECK-FIXES: alignof(3);
6464
}
65+
66+
namespace std {
67+
template<class T> T max(T, T);
68+
template<class T> T min(T, T);
69+
} // namespace std
70+
void ignoreStdMaxMin() {
71+
(std::max)(1,2);
72+
(std::min)(1,2);
73+
}

clang/AreaTeamMembers.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,5 @@ [email protected] (email), rnk (Discourse), rnk (GitHub), rnk (Discord)
1313
Other Members
1414
-------------
1515
Eli Friedman
16-
efriedma@quicinc.com> (email), efriedma-quic (Discourse), efriedma-quic (GitHub)
16+
efriedma@qti.qualcomm.com> (email), efriedma-quic (Discourse), efriedma-quic (GitHub)
1717

0 commit comments

Comments
 (0)