Skip to content

Commit 4a56624

Browse files
SC llvm teamSC llvm team
authored andcommitted
Merged main:362b1157868c into amd-gfx:994f45d31656
Local branch amd-gfx 994f45d Merged main:781424c87273 into amd-gfx:b4f6afcfc5d9 Remote branch main 362b115 [flang][openacc] Avoid privatizing symbols during semantics (llvm#69506)
2 parents 994f45d + 362b115 commit 4a56624

File tree

27 files changed

+417
-118
lines changed

27 files changed

+417
-118
lines changed

.github/workflows/release-tasks.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,16 +104,18 @@ jobs:
104104
run: |
105105
cd llvm/utils/lit
106106
# Remove 'dev' suffix from lit version.
107-
sed -i "s/ + 'dev'//g" lit/__init__.py
107+
sed -i 's/ + "dev"//g' lit/__init__.py
108108
python3 setup.py sdist
109109
110110
- name: Upload lit to test.pypi.org
111111
uses: pypa/gh-action-pypi-publish@release/v1
112112
with:
113113
password: ${{ secrets.LLVM_LIT_TEST_PYPI_API_TOKEN }}
114114
repository-url: https://test.pypi.org/legacy/
115+
packages-dir: llvm/utils/lit/dist/
115116

116117
- name: Upload lit to pypi.org
117118
uses: pypa/gh-action-pypi-publish@release/v1
118119
with:
119120
password: ${{ secrets.LLVM_LIT_PYPI_API_TOKEN }}
121+
packages-dir: llvm/utils/lit/dist/

clang/lib/Format/TokenAnnotator.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3497,6 +3497,14 @@ void TokenAnnotator::calculateFormattingInformation(AnnotatedLine &Line) const {
34973497
Tok->setType(TT_TrailingReturnArrow);
34983498
break;
34993499
}
3500+
if (Tok->isNot(TT_TrailingAnnotation))
3501+
continue;
3502+
const auto *Next = Tok->Next;
3503+
if (!Next || Next->isNot(tok::l_paren))
3504+
continue;
3505+
Tok = Next->MatchingParen;
3506+
if (!Tok)
3507+
break;
35003508
}
35013509
}
35023510
}

clang/unittests/Format/TokenAnnotatorTest.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1826,6 +1826,10 @@ TEST_F(TokenAnnotatorTest, UnderstandsTrailingReturnArrow) {
18261826
ASSERT_EQ(Tokens.size(), 15u) << Tokens;
18271827
EXPECT_TOKEN(Tokens[12], tok::arrow, TT_Unknown);
18281828

1829+
Tokens = annotate("void f() FOO(foo->bar);");
1830+
ASSERT_EQ(Tokens.size(), 12u) << Tokens;
1831+
EXPECT_TOKEN(Tokens[7], tok::arrow, TT_Unknown);
1832+
18291833
// Mixed
18301834
Tokens = annotate("auto f() -> int { auto a = b()->c; }");
18311835
ASSERT_EQ(Tokens.size(), 18u) << Tokens;

compiler-rt/lib/asan/asan_interceptors.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,7 @@ INTERCEPTOR(int, pthread_create, void *thread, void *attr,
251251

252252
u32 current_tid = GetCurrentTidOrInvalid();
253253

254-
__sanitizer_sigset_t sigset;
254+
__sanitizer_sigset_t sigset = {};
255255
# if SANITIZER_FREEBSD || SANITIZER_LINUX || SANITIZER_NETBSD || \
256256
SANITIZER_SOLARIS
257257
ScopedBlockSignals block(&sigset);

flang/lib/Semantics/resolve-directives.cpp

Lines changed: 8 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -254,9 +254,6 @@ class AccAttributeVisitor : DirectiveAttributeVisitor<llvm::acc::Directive> {
254254
Symbol::Flag::AccCopyIn, Symbol::Flag::AccCopyOut,
255255
Symbol::Flag::AccDelete, Symbol::Flag::AccPresent};
256256

257-
Symbol::Flags accFlagsRequireNewSymbol{Symbol::Flag::AccPrivate,
258-
Symbol::Flag::AccFirstPrivate, Symbol::Flag::AccReduction};
259-
260257
Symbol::Flags accDataMvtFlags{
261258
Symbol::Flag::AccDevice, Symbol::Flag::AccHost, Symbol::Flag::AccSelf};
262259

@@ -266,7 +263,7 @@ class AccAttributeVisitor : DirectiveAttributeVisitor<llvm::acc::Directive> {
266263
Symbol::Flag::AccDevicePtr, Symbol::Flag::AccDeviceResident,
267264
Symbol::Flag::AccLink, Symbol::Flag::AccPresent};
268265

269-
void PrivatizeAssociatedLoopIndex(const parser::OpenACCLoopConstruct &);
266+
void CheckAssociatedLoopIndex(const parser::OpenACCLoopConstruct &);
270267
void ResolveAccObjectList(const parser::AccObjectList &, Symbol::Flag);
271268
void ResolveAccObject(const parser::AccObject &, Symbol::Flag);
272269
Symbol *ResolveAcc(const parser::Name &, Symbol::Flag, Scope &);
@@ -877,7 +874,7 @@ bool AccAttributeVisitor::Pre(const parser::OpenACCLoopConstruct &x) {
877874
}
878875
ClearDataSharingAttributeObjects();
879876
SetContextAssociatedLoopLevel(GetAssociatedLoopLevelFromClauses(clauseList));
880-
PrivatizeAssociatedLoopIndex(x);
877+
CheckAssociatedLoopIndex(x);
881878
return true;
882879
}
883880

@@ -1141,13 +1138,12 @@ std::int64_t AccAttributeVisitor::GetAssociatedLoopLevelFromClauses(
11411138
return 1; // default is outermost loop
11421139
}
11431140

1144-
void AccAttributeVisitor::PrivatizeAssociatedLoopIndex(
1141+
void AccAttributeVisitor::CheckAssociatedLoopIndex(
11451142
const parser::OpenACCLoopConstruct &x) {
11461143
std::int64_t level{GetContext().associatedLoopLevel};
1147-
if (level <= 0) { // collpase value was negative or 0
1144+
if (level <= 0) { // collapse value was negative or 0
11481145
return;
11491146
}
1150-
Symbol::Flag ivDSA{Symbol::Flag::AccPrivate};
11511147

11521148
const auto getNextDoConstruct =
11531149
[this](const parser::Block &block) -> const parser::DoConstruct * {
@@ -1166,16 +1162,8 @@ void AccAttributeVisitor::PrivatizeAssociatedLoopIndex(
11661162

11671163
const auto &outer{std::get<std::optional<parser::DoConstruct>>(x.t)};
11681164
for (const parser::DoConstruct *loop{&*outer}; loop && level > 0; --level) {
1169-
// go through all the nested do-loops and resolve index variables
1170-
const parser::Name *iv{GetLoopIndex(*loop)};
1171-
if (iv) {
1172-
if (auto *symbol{ResolveAcc(*iv, ivDSA, currScope())}) {
1173-
symbol->set(Symbol::Flag::AccPreDetermined);
1174-
iv->symbol = symbol; // adjust the symbol within region
1175-
AddToContextObjectWithDSA(*symbol, ivDSA);
1176-
}
1177-
}
1178-
1165+
// Go through all nested loops to ensure index variable exists.
1166+
GetLoopIndex(*loop);
11791167
const auto &block{std::get<parser::Block>(loop->t)};
11801168
loop = getNextDoConstruct(block);
11811169
}
@@ -1328,20 +1316,12 @@ void AccAttributeVisitor::ResolveAccObject(
13281316

13291317
Symbol *AccAttributeVisitor::ResolveAcc(
13301318
const parser::Name &name, Symbol::Flag accFlag, Scope &scope) {
1331-
if (accFlagsRequireNewSymbol.test(accFlag)) {
1332-
return DeclarePrivateAccessEntity(name, accFlag, scope);
1333-
} else {
1334-
return DeclareOrMarkOtherAccessEntity(name, accFlag);
1335-
}
1319+
return DeclareOrMarkOtherAccessEntity(name, accFlag);
13361320
}
13371321

13381322
Symbol *AccAttributeVisitor::ResolveAcc(
13391323
Symbol &symbol, Symbol::Flag accFlag, Scope &scope) {
1340-
if (accFlagsRequireNewSymbol.test(accFlag)) {
1341-
return DeclarePrivateAccessEntity(symbol, accFlag, scope);
1342-
} else {
1343-
return DeclareOrMarkOtherAccessEntity(symbol, accFlag);
1344-
}
1324+
return DeclareOrMarkOtherAccessEntity(symbol, accFlag);
13451325
}
13461326

13471327
Symbol *AccAttributeVisitor::DeclareOrMarkOtherAccessEntity(
@@ -1374,11 +1354,6 @@ static bool WithMultipleAppearancesAccException(
13741354
void AccAttributeVisitor::CheckMultipleAppearances(
13751355
const parser::Name &name, const Symbol &symbol, Symbol::Flag accFlag) {
13761356
const auto *target{&symbol};
1377-
if (accFlagsRequireNewSymbol.test(accFlag)) {
1378-
if (const auto *details{symbol.detailsIf<HostAssocDetails>()}) {
1379-
target = &details->symbol();
1380-
}
1381-
}
13821357
if (HasDataSharingAttributeObject(*target) &&
13831358
!WithMultipleAppearancesAccException(symbol, accFlag)) {
13841359
context_.Say(name.source,

flang/test/Semantics/OpenACC/acc-symbols01.f90

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@ program mm
1414
b = 2
1515
!$acc parallel present(c) firstprivate(b) private(a)
1616
!$acc loop
17-
!DEF: /mm/OtherConstruct1/i (AccPrivate, AccPreDetermined) HostAssoc INTEGER(4)
17+
!REF: /mm/i
1818
do i=1,10
19-
!DEF: /mm/OtherConstruct1/a (AccPrivate) HostAssoc INTEGER(4)
20-
!REF: /mm/OtherConstruct1/i
21-
!DEF: /mm/OtherConstruct1/b (AccFirstPrivate) HostAssoc INTEGER(4)
19+
!REF: /mm/a
20+
!REF: /mm/i
21+
!REF: /mm/b
2222
a(i) = b(i)
2323
end do
2424
!$acc end parallel

llvm/examples/Kaleidoscope/Chapter4/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ set(LLVM_LINK_COMPONENTS
55
InstCombine
66
Object
77
OrcJIT
8+
Passes
89
RuntimeDyld
910
ScalarOpts
1011
Support

llvm/examples/Kaleidoscope/Chapter5/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ set(LLVM_LINK_COMPONENTS
55
InstCombine
66
Object
77
OrcJIT
8+
Passes
89
RuntimeDyld
910
ScalarOpts
1011
Support

llvm/examples/Kaleidoscope/Chapter6/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ set(LLVM_LINK_COMPONENTS
55
InstCombine
66
Object
77
OrcJIT
8+
Passes
89
RuntimeDyld
910
ScalarOpts
1011
Support

llvm/examples/Kaleidoscope/Chapter7/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ set(LLVM_LINK_COMPONENTS
55
InstCombine
66
Object
77
OrcJIT
8+
Passes
89
RuntimeDyld
910
ScalarOpts
1011
Support

0 commit comments

Comments
 (0)