Skip to content

Commit 2e0af79

Browse files
authored
Merge branch 'intel:sycl' into pablo/graph_enqueue_functions
2 parents 2fc2172 + 04b0d3f commit 2e0af79

File tree

7,013 files changed

+399023
-147844
lines changed

Some content is hidden

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

7,013 files changed

+399023
-147844
lines changed

.github/new-prs-labeler.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -668,7 +668,7 @@ mlgo:
668668
- llvm/lib/CodeGen/ML*
669669
- llvm/unittests/CodeGen/ML*
670670
- llvm/test/CodeGen/MLRegAlloc/**
671-
- llvm/utils/mlgo-utils/*
671+
- llvm/utils/mlgo-utils/**
672672

673673
tools:llvm-exegesis:
674674
- llvm/tools/llvm-exegesis/**
@@ -1008,3 +1008,8 @@ bazel:
10081008

10091009
offload:
10101010
- offload/**
1011+
1012+
tablegen:
1013+
- llvm/include/TableGen/**
1014+
- llvm/lib/TableGen/**
1015+
- llvm/utils/TableGen/**

.github/workflows/commit-access-review.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -358,11 +358,10 @@ def main():
358358
gh = github.Github(login_or_token=token)
359359
org = gh.get_organization("llvm")
360360
repo = org.get_repo("llvm-project")
361-
team = org.get_team_by_slug("llvm-committers")
362361
one_year_ago = datetime.datetime.now() - datetime.timedelta(days=365)
363362
triage_list = {}
364-
for member in team.get_members():
365-
triage_list[member.login] = User(member.login, triage_list)
363+
for collaborator in repo.get_collaborators(permission="push"):
364+
triage_list[collaborator.login] = User(collaborator.login, triage_list)
366365

367366
print("Start:", len(triage_list), "triagers")
368367
# Step 0 Check if users have requested commit access in the last year.

.github/workflows/docs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ jobs:
6565
fetch-depth: 1
6666
- name: Get subprojects that have doc changes
6767
id: docs-changed-subprojects
68-
uses: tj-actions/changed-files@v44
68+
uses: tj-actions/changed-files@v45
6969
with:
7070
files_yaml: |
7171
llvm:

.github/workflows/libcxx-build-and-test.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,7 @@ jobs:
242242
- { config: mingw-dll, mingw: true }
243243
- { config: mingw-static, mingw: true }
244244
- { config: mingw-dll-i686, mingw: true }
245+
- { config: mingw-incomplete-sysroot, mingw: true }
245246
steps:
246247
- uses: actions/checkout@v4
247248
- name: Install dependencies
@@ -260,6 +261,12 @@ jobs:
260261
del llvm-mingw*.zip
261262
mv llvm-mingw* c:\llvm-mingw
262263
echo "c:\llvm-mingw\bin" | Out-File -FilePath $Env:GITHUB_PATH -Encoding utf8 -Append
264+
- name: Simulate a from-scratch build of llvm-mingw
265+
if: ${{ matrix.config == 'mingw-incomplete-sysroot' }}
266+
run: |
267+
rm -r c:\llvm-mingw\include\c++
268+
rm -r c:\llvm-mingw\*-w64-mingw32\lib\libc++*
269+
rm -r c:\llvm-mingw\*-w64-mingw32\lib\libunwind*
263270
- name: Add Git Bash to the path
264271
run: |
265272
echo "c:\Program Files\Git\usr\bin" | Out-File -FilePath $Env:GITHUB_PATH -Encoding utf8 -Append

.github/workflows/pr-code-format.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ jobs:
3232

3333
- name: Get changed files
3434
id: changed-files
35-
uses: tj-actions/changed-files@v44
35+
uses: tj-actions/changed-files@v45
3636
with:
3737
separator: ","
3838
skip_initial_fetch: true

.github/workflows/release-binaries.yml

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -428,7 +428,7 @@ jobs:
428428

429429
- name: Attest Build Provenance
430430
id: provenance
431-
uses: actions/attest-build-provenance@897ed5eab6ed058a474202017ada7f40bfa52940 # v1.0.0
431+
uses: actions/attest-build-provenance@1c608d11d69870c2092266b3f9a6f3abbf17002c # v1.4.3
432432
with:
433433
subject-path: ${{ needs.prepare.outputs.release-binary-filename }}
434434

@@ -442,11 +442,22 @@ jobs:
442442
name: ${{ needs.prepare.outputs.release-binary-filename }}-attestation
443443
path: ${{ needs.prepare.outputs.release-binary-filename }}.jsonl
444444

445+
- name: Checkout Release Scripts
446+
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
447+
with:
448+
sparse-checkout: |
449+
llvm/utils/release/github-upload-release.py
450+
llvm/utils/git/requirements.txt
451+
sparse-checkout-cone-mode: false
452+
453+
- name: Install Python Requirements
454+
run: |
455+
pip install --require-hashes -r ./llvm/utils/git/requirements.txt
456+
445457
- name: Upload Release
446458
shell: bash
447459
run: |
448-
sudo apt install python3-github
449-
./llvm-project/llvm/utils/release/github-upload-release.py \
460+
./llvm/utils/release/github-upload-release.py \
450461
--token ${{ github.token }} \
451462
--release ${{ needs.prepare.outputs.release-version }} \
452463
upload \

.github/workflows/release-sources.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ jobs:
9292
- name: Attest Build Provenance
9393
if: github.event_name != 'pull_request'
9494
id: provenance
95-
uses: actions/attest-build-provenance@897ed5eab6ed058a474202017ada7f40bfa52940 # v1.0.0
95+
uses: actions/attest-build-provenance@1c608d11d69870c2092266b3f9a6f3abbf17002c # v1.4.3
9696
with:
9797
subject-path: "*.xz"
9898
- if: github.event_name != 'pull_request'

.github/workflows/scorecard.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ jobs:
3636
persist-credentials: false
3737

3838
- name: "Run analysis"
39-
uses: ossf/scorecard-action@dc50aa9510b46c811795eb24b2f1ba02a914e534 # v2.3.3
39+
uses: ossf/scorecard-action@62b2cac7ed8198b15735ed49ab1e5cf35480ba46 # v2.4.0
4040
with:
4141
results_file: results.sarif
4242
results_format: sarif
@@ -57,6 +57,6 @@ jobs:
5757

5858
# Upload the results to GitHub's code scanning dashboard.
5959
- name: "Upload to code-scanning"
60-
uses: github/codeql-action/upload-sarif@b611370bb5703a7efb587f9d136a52ea24c5c38c # v3.25.11
60+
uses: github/codeql-action/upload-sarif@e2b3eafc8d227b0241d48be5f425d47c2d750a13 # v3.26.10
6161
with:
6262
sarif_file: results.sarif

.github/workflows/sycl-nightly.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ jobs:
198198
echo "TAG=$(date +'%Y-%m-%d')-${GITHUB_SHA::7}" >> "$GITHUB_OUTPUT"
199199
fi
200200
- name: Upload binaries
201-
uses: softprops/action-gh-release@a74c6b72af54cfa997e81df42d94703d6313a2d0
201+
uses: softprops/action-gh-release@c062e08bd532815e2082a85e87e3ef29c3e6d191
202202
with:
203203
files: |
204204
sycl_linux.tar.gz

bolt/include/bolt/Profile/ProfileYAMLMapping.h

Lines changed: 65 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -95,24 +95,29 @@ template <> struct MappingTraits<bolt::SuccessorInfo> {
9595

9696
namespace bolt {
9797
struct PseudoProbeInfo {
98-
llvm::yaml::Hex64 GUID;
99-
uint64_t Index;
100-
uint8_t Type;
98+
uint32_t InlineTreeIndex = 0;
99+
uint64_t BlockMask = 0; // bitset with probe indices from 1 to 64
100+
std::vector<uint64_t> BlockProbes; // block probes with indices above 64
101+
std::vector<uint64_t> CallProbes;
102+
std::vector<uint64_t> IndCallProbes;
103+
std::vector<uint32_t> InlineTreeNodes;
101104

102105
bool operator==(const PseudoProbeInfo &Other) const {
103-
return GUID == Other.GUID && Index == Other.Index;
104-
}
105-
bool operator!=(const PseudoProbeInfo &Other) const {
106-
return !(*this == Other);
106+
return InlineTreeIndex == Other.InlineTreeIndex &&
107+
BlockProbes == Other.BlockProbes && CallProbes == Other.CallProbes &&
108+
IndCallProbes == Other.IndCallProbes;
107109
}
108110
};
109111
} // end namespace bolt
110112

111113
template <> struct MappingTraits<bolt::PseudoProbeInfo> {
112114
static void mapping(IO &YamlIO, bolt::PseudoProbeInfo &PI) {
113-
YamlIO.mapRequired("guid", PI.GUID);
114-
YamlIO.mapRequired("id", PI.Index);
115-
YamlIO.mapRequired("type", PI.Type);
115+
YamlIO.mapOptional("blx", PI.BlockMask, 0);
116+
YamlIO.mapOptional("blk", PI.BlockProbes, std::vector<uint64_t>());
117+
YamlIO.mapOptional("call", PI.CallProbes, std::vector<uint64_t>());
118+
YamlIO.mapOptional("icall", PI.IndCallProbes, std::vector<uint64_t>());
119+
YamlIO.mapOptional("id", PI.InlineTreeIndex, 0);
120+
YamlIO.mapOptional("ids", PI.InlineTreeNodes, std::vector<uint32_t>());
116121
}
117122

118123
static const bool flow = true;
@@ -158,15 +163,35 @@ template <> struct MappingTraits<bolt::BinaryBasicBlockProfile> {
158163
std::vector<bolt::CallSiteInfo>());
159164
YamlIO.mapOptional("succ", BBP.Successors,
160165
std::vector<bolt::SuccessorInfo>());
161-
YamlIO.mapOptional("pseudo_probes", BBP.PseudoProbes,
166+
YamlIO.mapOptional("probes", BBP.PseudoProbes,
162167
std::vector<bolt::PseudoProbeInfo>());
163168
}
164169
};
165170

171+
namespace bolt {
172+
struct InlineTreeNode {
173+
uint32_t ParentIndexDelta;
174+
uint32_t CallSiteProbe;
175+
// Index in PseudoProbeDesc.GUID, UINT32_MAX for same as previous (omitted)
176+
uint32_t GUIDIndex;
177+
bool operator==(const InlineTreeNode &) const { return false; }
178+
};
179+
} // end namespace bolt
180+
181+
template <> struct MappingTraits<bolt::InlineTreeNode> {
182+
static void mapping(IO &YamlIO, bolt::InlineTreeNode &ITI) {
183+
YamlIO.mapOptional("g", ITI.GUIDIndex, UINT32_MAX);
184+
YamlIO.mapOptional("p", ITI.ParentIndexDelta, 0);
185+
YamlIO.mapOptional("cs", ITI.CallSiteProbe, 0);
186+
}
187+
188+
static const bool flow = true;
189+
};
166190
} // end namespace yaml
167191
} // end namespace llvm
168192

169193
LLVM_YAML_IS_SEQUENCE_VECTOR(llvm::yaml::bolt::BinaryBasicBlockProfile)
194+
LLVM_YAML_IS_FLOW_SEQUENCE_VECTOR(llvm::yaml::bolt::InlineTreeNode)
170195

171196
namespace llvm {
172197
namespace yaml {
@@ -179,8 +204,7 @@ struct BinaryFunctionProfile {
179204
llvm::yaml::Hex64 Hash{0};
180205
uint64_t ExecCount{0};
181206
std::vector<BinaryBasicBlockProfile> Blocks;
182-
llvm::yaml::Hex64 GUID{0};
183-
llvm::yaml::Hex64 PseudoProbeDescHash{0};
207+
std::vector<InlineTreeNode> InlineTree;
184208
bool Used{false};
185209
};
186210
} // end namespace bolt
@@ -194,9 +218,8 @@ template <> struct MappingTraits<bolt::BinaryFunctionProfile> {
194218
YamlIO.mapRequired("nblocks", BFP.NumBasicBlocks);
195219
YamlIO.mapOptional("blocks", BFP.Blocks,
196220
std::vector<bolt::BinaryBasicBlockProfile>());
197-
YamlIO.mapOptional("guid", BFP.GUID, (uint64_t)0);
198-
YamlIO.mapOptional("pseudo_probe_desc_hash", BFP.PseudoProbeDescHash,
199-
(uint64_t)0);
221+
YamlIO.mapOptional("inline_tree", BFP.InlineTree,
222+
std::vector<bolt::InlineTreeNode>());
200223
}
201224
};
202225

@@ -246,10 +269,33 @@ template <> struct MappingTraits<bolt::BinaryProfileHeader> {
246269
}
247270
};
248271

272+
namespace bolt {
273+
struct ProfilePseudoProbeDesc {
274+
std::vector<Hex64> GUID;
275+
std::vector<Hex64> Hash;
276+
std::vector<uint32_t> GUIDHashIdx; // Index of hash for that GUID in Hash
277+
278+
bool operator==(const ProfilePseudoProbeDesc &Other) const {
279+
// Only treat empty Desc as equal
280+
return GUID.empty() && Other.GUID.empty() && Hash.empty() &&
281+
Other.Hash.empty() && GUIDHashIdx.empty() &&
282+
Other.GUIDHashIdx.empty();
283+
}
284+
};
285+
} // end namespace bolt
286+
287+
template <> struct MappingTraits<bolt::ProfilePseudoProbeDesc> {
288+
static void mapping(IO &YamlIO, bolt::ProfilePseudoProbeDesc &PD) {
289+
YamlIO.mapRequired("gs", PD.GUID);
290+
YamlIO.mapRequired("gh", PD.GUIDHashIdx);
291+
YamlIO.mapRequired("hs", PD.Hash);
292+
}
293+
};
249294
} // end namespace yaml
250295
} // end namespace llvm
251296

252297
LLVM_YAML_IS_SEQUENCE_VECTOR(llvm::yaml::bolt::BinaryFunctionProfile)
298+
LLVM_YAML_IS_SEQUENCE_VECTOR(llvm::yaml::bolt::ProfilePseudoProbeDesc)
253299

254300
namespace llvm {
255301
namespace yaml {
@@ -258,13 +304,16 @@ namespace bolt {
258304
struct BinaryProfile {
259305
BinaryProfileHeader Header;
260306
std::vector<BinaryFunctionProfile> Functions;
307+
ProfilePseudoProbeDesc PseudoProbeDesc;
261308
};
262309
} // namespace bolt
263310

264311
template <> struct MappingTraits<bolt::BinaryProfile> {
265312
static void mapping(IO &YamlIO, bolt::BinaryProfile &BP) {
266313
YamlIO.mapRequired("header", BP.Header);
267314
YamlIO.mapRequired("functions", BP.Functions);
315+
YamlIO.mapOptional("pseudo_probe_desc", BP.PseudoProbeDesc,
316+
bolt::ProfilePseudoProbeDesc());
268317
}
269318
};
270319

0 commit comments

Comments
 (0)