Subzero: Rewrite the pass timing infrastructure.
This makes it much more useful for individual analysis and long-term translation performance tracking.
1. Collect and report aggregated across the entire translation, instead of function-by-function. If you really care about a single function, just extract it and translate it separately for analysis.
2. Remove "-verbose time" and just use -timing.
3. Collects two kinds of timings: cumulative and flat. Cumulative measures the total time, even if a callee also times itself. Flat only measures the currently active timer at the top of the stack. The flat times should add up to 100%, but cumulative will usually add up to much more than 100%.
BUG= none
R=jvoung@chromium.org
Review URL: https://codereview.chromium.org/610813002
diff --git a/Makefile.standalone b/Makefile.standalone
index a913497..175dd12 100644
--- a/Makefile.standalone
+++ b/Makefile.standalone
@@ -80,9 +80,10 @@
IceMemoryRegion.cpp \
IceOperand.cpp \
IceRegAlloc.cpp \
- IceRNG.cpp \
+ IceRNG.cpp \
IceTargetLowering.cpp \
IceTargetLoweringX8632.cpp \
+ IceTimerTree.cpp \
IceTranslator.cpp \
IceTypeConverter.cpp \
IceTypes.cpp \
@@ -113,7 +114,7 @@
$(OBJDIR):
@mkdir -p $@
-check-lit: llvm2ice
+check-lit: llvm2ice make_symlink
LLVM_BIN_PATH=$(LLVM_BIN_PATH) \
$(LLVM_SRC_PATH)/utils/lit/lit.py -sv tests_lit