diff options
author | Vyacheslav Levytskyy <89994100+VyacheslavLevytskyy@users.noreply.github.com> | 2024-01-18 17:48:38 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-18 08:48:38 -0800 |
commit | 774b9577866239f577180fdd8b78159f0a5794a5 (patch) | |
tree | 1675b48cce42e2b4934c9283d29cac254868fadb /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | b75b9d82f576fecbdec98f7cd076be7a72f70dbf (diff) | |
download | llvm-774b9577866239f577180fdd8b78159f0a5794a5.zip llvm-774b9577866239f577180fdd8b78159f0a5794a5.tar.gz llvm-774b9577866239f577180fdd8b78159f0a5794a5.tar.bz2 |
[SPIR-V] improve performance of Module Analysis stage in the part of processing "other instructions" (#76047)
The goal of this PR is to fix an issue when Module Analysis stage is not
able to complete processing of a really big LLVM source:
https://github.com/llvm/llvm-project/issues/76048.
There is an example of a bulky LLVM source:
https://github.com/KhronosGroup/SPIRV-LLVM-Translator/blob/main/test/SpecConstants/long-spec-const-composite.ll
Processing of this file with
`llc -mtriple=spirv64-unknown-unknown -O0 long-spec-const-composite.ll
-o long-spec-const-composite.spvt`
to produce SPIR-V output using LLVM SPIR-V backend takes too long, and
I've never been able to see it actually completes. After the patch from
this PR applied elapsed time for me is ~30 sec.
The fix changes underlying data structure to be `std::set` to trace
instructions with identical operands instead of the existing approach of
the `findSameInstrInMS()` function.
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions