aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorVyacheslav Levytskyy <89994100+VyacheslavLevytskyy@users.noreply.github.com>2024-01-18 17:48:38 +0100
committerGitHub <noreply@github.com>2024-01-18 08:48:38 -0800
commit774b9577866239f577180fdd8b78159f0a5794a5 (patch)
tree1675b48cce42e2b4934c9283d29cac254868fadb /clang/lib/Frontend/CompilerInvocation.cpp
parentb75b9d82f576fecbdec98f7cd076be7a72f70dbf (diff)
downloadllvm-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