Open
Description
I did a scripted search for files with long compile time. lib/zstd/compress.c is one of the files that came out on top.
$ perf stat clang-11 -c lib/zstd/compress.i -O3 -Wall -Wno-unused -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE --target=aarch64-linux -Werror=unknown-warning-option -mgeneral-regs-only -Wno-psabi -fno-asynchronous-unwind-tables -fno-unwind-tables -mbranch-protection=pac-ret+leaf -fno-delete-null-pointer-checks -Wframe-larger-than=2048 -fno-stack-protector -mno-global-merge -fno-omit-frame-pointer -fno-optimize-sibling-calls -mno-omit-leaf-frame-pointer -pg -fno-strict-overflow -fno-stack-check -Werror=date-time -Werror=incompatible-pointer-types -fsanitize=kernel-hwaddress -mllvm -hwasan-instrument-stack=0 -mllvm -hwasan-use-short-granules=0 -mllvm -hwasan-mapping-offset=0xefffc00000000000 -fsanitize=array-bounds -fsanitize=unreachable -fsanitize=object-size -fsanitize=bool -fsanitize=enum
26925.09 msec task-clock # 0.998 CPUs utilized
2738 context-switches # 0.102 K/sec
22 cpu-migrations # 0.001 K/sec
50399 page-faults # 0.002 M/sec
87646286353 cycles # 3.255 GHz (83.32%)
10257322275 stalled-cycles-frontend # 11.70% frontend cycles idle (83.31%)
5991572775 stalled-cycles-backend # 6.84% backend cycles idle (83.34%)
59088749914 instructions # 0.67 insn per cycle
# 0.17 stalled cycles per insn (83.35%)
11508007401 branches # 427.408 M/sec (83.35%)
491383656 branch-misses # 4.27% of all branches (83.33%)
26.972371393 seconds time elapsed
26.757734000 seconds user
0.159723000 seconds sys
Attaching the preprocessed version:
compress.i.gz
The profile shows these functions on top:
3.20% clang-13 libLLVM-13.so.1 [.] llvm::BasicBlock::getTerminator
2.95% clang-13 libLLVM-13.so.1 [.] llvm::LiveRangeCalc::findReachingDefs
2.46% clang-13 libLLVM-13.so.1 [.] llvm::LoopBase<llvm::MachineBasicBlock, llvm::MachineLoop>::getExitingBlocks
2.00% clang-13 libLLVM-13.so.1 [.] llvm::SmallPtrSetImplBase::FindBucketFor
1.89% clang-13 libc-2.33.so [.] _int_malloc
1.31% clang-13 libLLVM-13.so.1 [.] llvm::SmallPtrSetImplBase::insert_imp_big
1.25% clang-13 libLLVM-13.so.1 [.] llvm::LiveRange::extendInBlock
1.18% clang-13 libLLVM-13.so.1 [.] llvm::SelectionDAG::Combine
1.18% clang-13 libLLVM-13.so.1 [.] llvm::ScalarEvolution::forgetLoop
0.83% clang-13 libLLVM-13.so.1 [.] llvm::SpillPlacement::activate
0.73% clang-13 libc-2.33.so [.] _int_free
0.70% clang-13 libLLVM-13.so.1 [.] llvm::LiveRangeUpdater::add
0.69% clang-13 libc-2.33.so [.] msort_with_tmp.part.0
0.68% clang-13 libLLVM-13.so.1 [.] llvm::DominatorTreeBase<llvm::BasicBlock, false>::dominates
0.66% clang-13 libLLVM-13.so.1 [.] llvm::LiveIntervals::extendSegmentsToUses
0.65% clang-13 libc-2.33.so [.] malloc
0.64% clang-13 libLLVM-13.so.1 [.] llvm::LiveVariables::MarkVirtRegAliveInBlock
0.62% clang-13 libLLVM-13.so.1 [.] llvm::ValueHandleBase::AddToUseList
0.62% clang-13 libc-2.33.so [.] unlink_chunk.constprop.0
0.60% clang-13 libLLVM-13.so.1 [.] llvm::SpillPlacement::addLinks
0.60% clang-13 libc-2.33.so [.] cfree@GLIBC_2.2.5
0.58% clang-13 libc-2.33.so [.] malloc_consolidate
0.56% clang-13 libLLVM-13.so.1 [.] llvm::Value::getMetadata
0.54% clang-13 libLLVM-13.so.1 [.] llvm::SmallPtrSetImplBase::Grow
0.52% clang-13 libLLVM-13.so.1 [.] llvm::Instruction::getSuccessor
0.51% clang-13 libLLVM-13.so.1 [.] 0x0000000001029ad0
0.50% clang-13 libLLVM-13.so.1 [.] 0x0000000000e5eb1b