1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-22 04:22:57 +02:00
llvm-mirror/utils
Adam Nemet 6702f17f53 New tool: opt-stats.py
I am planning to use this tool to find too noisy (missed) optimization
remarks.  Long term it may actually be better to just have another tool that
exports the remarks into an sqlite database and perform queries like this in
SQL.

This splits out the YAML parsing from opt-viewer.py into a new Python module
optrecord.py.

This is the result of the script on the LLVM testsuite:

Total number of remarks        714433

Top 10 remarks by pass:
  inline                         52%
  gvn                            24%
  licm                           13%
  loop-vectorize                  5%
  asm-printer                     3%
  loop-unroll                     1%
  regalloc                        1%
  inline-cost                     0%
  slp-vectorizer                  0%
  loop-delete                     0%

Top 10 remarks:
  gvn/LoadClobbered              20%
  inline/Inlined                 19%
  inline/CanBeInlined            18%
  inline/NoDefinition             9%
  licm/LoadWithLoopInvariantAddressInvalidated  6%
  licm/Hoisted                    6%
  asm-printer/InstructionCount    3%
  inline/TooCostly                3%
  gvn/LoadElim                    3%
  loop-vectorize/MissedDetails    2%

Beside some refactoring, I also changed optrecords not to use context to
access global data (max_hotness).  Because of the separate module this would
have required splitting context into two.  However it's not possible to access
the optrecord context from the SourceFileRenderer when calling back to
Remark.RelativeHotness.

llvm-svn: 296682
2017-03-01 21:35:00 +00:00
..
abtest
bugpoint
count
crosstool
emacs
FileCheck [FileCheck] Fix --strict-whitespace --match-full-lines 2016-12-18 20:45:59 +00:00
fpcmp
gdb-scripts GDB pretty printers: Basic DenseMap support 2016-12-16 23:53:14 +00:00
git
git-svn Remove extraneous space. 2016-12-20 05:49:56 +00:00
jedit
kate
KillTheDoctor KillTheDoctor.cpp: Appease cases on case-senstitive host, like mingw on linux. 2016-12-23 01:39:26 +00:00
lint
lit Reinstate "r292904 - [lit] Allow boolean expressions in REQUIRES and XFAIL 2017-01-25 02:26:03 +00:00
llvm-build
llvm-lit [utils] Add libc++ and libc++abi config to llvm-lit 2017-01-17 07:10:55 +00:00
LLVMVisualizers Improve natvis for llvm::SmallString so that it correctly displays only the valid portion of the string 2016-12-21 01:05:29 +00:00
Misc
not Remove unused header, NFC. 2016-12-01 19:38:48 +00:00
opt-viewer New tool: opt-stats.py 2017-03-01 21:35:00 +00:00
PerfectShuffle
release build_llvm_package.bat: Build teh clang-format plugin separately 2017-02-08 20:58:33 +00:00
sanitizers Fix UBSan bots by blacklisting bits/stl_tree.h. 2017-01-13 17:30:10 +00:00
TableGen Fixed IntOperandMatcher::emitCxxPredicateExpr arguments 2017-02-24 17:20:27 +00:00
Target/ARM
testgen
textmate
unittest [CMake] Fix pthread handling for out-of-tree builds 2017-02-10 01:59:20 +00:00
valgrind
vim vim: add returned keyword 2017-02-10 23:57:11 +00:00
yaml-bench Timer: Track name and description. 2016-11-18 19:43:18 +00:00
bisect
bisect-skip-count This script was meant to be committed with the DebugCounter changes. 2017-02-28 02:19:11 +00:00
check-each-file
clang-parse-diagnostics-file
codegen-diff
countloc.sh
create_ladder_graph.py
DSAclean.py
DSAextract.py
extract_symbols.py Handle non-inlined clang::Type::getAs specializations in extract_symbols.py 2016-11-14 17:07:09 +00:00
findmisopt
findoptdiff Remove the ScalarReplAggregates pass 2016-06-15 00:19:09 +00:00
findsym.pl
GenLibDeps.pl
GetRepositoryPath
GetSourceVersion
getsrcs.sh
lldbDataFormatters.py
llvm-compilers-check
llvm-native-gxx
llvm.grm
LLVMBuild.txt
llvmdo
llvmgrep
makellvm
prepare-code-coverage-artifact.py [utils] coverage: Add help text about the --restrict flag (NFC) 2017-02-09 19:37:18 +00:00
schedcover.py
shuffle_fuzz.py
sort_includes.py
test_debuginfo.pl
update_llc_test_checks.py [utils] allow auto-generation of checks for thumb triples 2017-02-24 21:47:44 +00:00
update_test_checks.py Update update_test_checks so that . is a valid identifier character in addition to _ 2017-01-15 07:40:46 +00:00
UpdateCMakeLists.pl
wciia.py