v8/tools
bmeurer 733a246386 [turbofan] Proper dead code elimination as regular reducer.
The three different concerns that the ControlReducer used to deal with
are now properly separated into

  a.) DeadCodeElimination, which is a regular AdvancedReducer, that
      propagates Dead via control edges,
  b.) CommonOperatorReducer, which does strength reduction on common
      operators (i.e. Branch, Phi, and friends), and
  c.) GraphTrimming, which removes dead->live edges from the graph.

This will make it possible to run the DeadCodeElimination together with
other passes that actually introduce Dead nodes, i.e. typed lowering;
and it opens the door for general inlining without two stage fix point
iteration.

To make the DeadCodeElimination easier and more uniform, we basically
reverted the introduction of DeadValue and DeadEffect, and changed the
Dead operator to produce control, value and effect. Note however that
this is not a requirement, but merely a way to make dead propagation
easier and more uniform. We could always go back and decide to have
different Dead operators if some other change requires that.

Note that there are several additional opportunities for cleanup now,
i.e. OSR deconstruction could be a regular reducer now, and we don't
need to use TheHole as dead value marker in the GraphReducer. And we can
actually run the dead code elimination together with the other passes
instead of using separate passes over the graph.  We will do this in
follow up CLs.

R=jarin@chromium.org, mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/1193833002

Cr-Commit-Position: refs/heads/master@{#29146}
2015-06-19 12:07:26 +00:00
..
blink_tests [test] Unskip layout tests after fixing bot. 2015-06-18 07:10:36 +00:00
gcmole Make gcmole execute in parallel. 2015-02-18 15:35:34 +00:00
generate_shim_headers Add dependency to ICU 4.6 2013-07-01 08:32:41 +00:00
gyp [turbofan] Proper dead code elimination as regular reducer. 2015-06-19 12:07:26 +00:00
ninja [ycm] The YouCompleteMe configuration is not VIM specific. 2015-02-12 07:21:13 +00:00
oom_dump Reland "Merge old data and pointer space." 2015-04-07 11:32:10 +00:00
perf_tests Update performance baseline to newest chromium LKGR. 2013-07-04 07:32:57 +00:00
profviz IC misses should not count towards execution pauses in plots. 2014-06-18 11:05:31 +00:00
release Revert of [release-tools] Fix possible race condition in retrieval of latest rolled version (patchset #2 id:20001 of https://codereview.chromium.org/1186393007/) 2015-06-19 09:33:00 +00:00
sanitizers Add link to tsan bug to suppression 2014-10-09 09:51:21 +00:00
sodium Add tool to visualize machine code/lithium. 2013-10-21 13:35:48 +00:00
testrunner Revert of Update test262-es6 to 6/11 (patchset #2 id:40001 of https://codereview.chromium.org/1175313003/) 2015-06-17 06:53:04 +00:00
unittests Make perf test runner more robust. 2014-12-21 10:25:32 +00:00
v8.xcodeproj Add support for building Xcode project files from GYP files 2011-06-09 09:07:17 +00:00
vim [ycm] The YouCompleteMe configuration is not VIM specific. 2015-02-12 07:21:13 +00:00
visual_studio Remove the Visual Studio project files 2011-05-02 13:43:13 +00:00
android-build.sh Rewrite Makefile rules for Android to allow parallel execution 2012-07-27 11:14:44 +00:00
android-ll-prof.sh Change default ARCH version in android low-level profiler script to 4.6 2012-10-08 11:11:30 +00:00
android-run.py Fix Android V8 path for testing on devices. 2013-06-28 07:31:23 +00:00
android-sync.sh Copy unittests binary in android-sync.sh 2014-11-18 18:36:57 +00:00
bash-completion.sh Make tools/bash-completion.sh robust against arbitrary CWD 2014-02-18 09:12:11 +00:00
check-name-clashes.py Unbreak check-name-clashes.py after recent macro renamings. 2015-04-08 07:04:11 +00:00
check-static-initializers.sh Reland^3 r22105 "Remove static initializer from isolate" 2014-07-07 10:56:36 +00:00
codemap.js Tick processor: Print C++ entry points 2014-10-17 15:44:02 +00:00
compare-table-gen.js Add more exhaustive tests for Math.min and Math.max. 2015-04-10 12:35:16 +00:00
concatenate-files.py Support external startup data in V8. 2014-06-23 13:52:17 +00:00
consarray.js Make sure files end with exactly one new line and police this in presubmit. 2013-11-22 13:50:39 +00:00
cpu.sh Reactivate all the cores in cpu.sh. 2015-03-12 18:01:58 +00:00
cross_build_gcc.sh Fix tools/cross_build_gcc.sh. 2014-02-20 16:37:40 +00:00
csvparser.js Shorten constructor names in JS tickprocessor. 2011-02-10 07:47:28 +00:00
DEPS Add DEPS files and run checkdeps in presubmit check 2014-06-03 13:39:42 +00:00
detect-builtins.js Add a script that can generate simple test cases for user-exposed JS builtins 2014-09-11 09:58:58 +00:00
disasm.py ARM64: Enable low level profiling. 2014-06-24 12:40:20 +00:00
draw_instruction_graph.sh Rename A64 port to ARM64 port 2014-03-21 09:28:26 +00:00
external-reference-check.py Serializer: move to a subfolder and clean up includes. 2015-03-27 15:29:07 +00:00
find_depot_tools.py Prototype for a client-side performance trybot script. 2014-11-18 14:40:00 +00:00
find-commit-for-patch.py Add tools/find-commit-for-patch.py 2014-12-16 14:25:00 +00:00
freebsd-tick-processor * Fix build errors on FreeBSD 8.2 2011-03-16 11:15:43 +00:00
fuzz-harness.sh Make timestamp of fuzz harness archives finer grained. 2014-06-12 18:55:09 +00:00
gc_nvp_common.py [tools] Add gc-nvp-to-csv.py script. 2015-06-19 10:40:47 +00:00
gc-nvp-to-csv.py [tools] Add gc-nvp-to-csv.py script. 2015-06-19 10:40:47 +00:00
gc-nvp-trace-processor.py [tools] Add gc-nvp-to-csv.py script. 2015-06-19 10:40:47 +00:00
gdb-v8-support.py Extend find-anywhere so it also works while debugging a live process 2015-06-18 11:57:03 +00:00
gdbinit Update PrintStack signature in gdbinit 2015-06-12 08:35:50 +00:00
gen-postmortem-metadata.py postmortem: fixup after 33994b4 2015-03-25 10:10:06 +00:00
generate-builtins-tests.py Add a script that can generate simple test cases for user-exposed JS builtins 2014-09-11 09:58:58 +00:00
generate-ten-powers.scm Fast double-to-ascii conversion. 2010-03-11 14:49:35 +00:00
grokdump.py Add ARM64 suppport to grokdump.py 2015-06-03 11:07:31 +00:00
js2c.py Fix V8 extras js2c pipeline 2015-05-15 15:32:45 +00:00
jsmin.py Reland #2 "Wrap v8natives.js into a function." 2015-05-05 09:16:01 +00:00
linux-tick-processor Add source map support to tick processor. 2013-08-23 17:20:54 +00:00
ll_prof.py Fix ll_prof.py for static binaries. 2015-03-16 11:34:52 +00:00
logreader.js [tick processor] Introduce --pairwise-timed-range processing mode 2015-05-05 14:17:48 +00:00
mac-nm Fix mac-nm script to support filenames w/spaces 2009-08-13 14:03:12 +00:00
mac-tick-processor Implement shared libraries logging on Mac OS X, added required support in Tick Processor. 2009-07-14 05:01:06 +00:00
mingw-generate-makefiles.sh MinGW: Add Cygwin-free Makefile generation script 2013-04-15 08:43:18 +00:00
nacl-run.py Use the pnacl-clang toolchain for (P)NaCL builds 2014-10-06 08:10:50 +00:00
OWNERS Add initial set of sub directory OWNERS file 2015-04-02 08:46:24 +00:00
parser-shell.cc Remove unnecessary call to Isolate::Current in parser-shell 2015-05-15 01:47:09 +00:00
parser-shell.gyp Remove deprecated lexer-shell. 2014-10-23 11:42:30 +00:00
perf-to-html.py perf-to-html.py - render JSON try perf jobs in a pleasing way. 2015-03-27 09:52:25 +00:00
plot-timer-events Fix bug in tools/plot-timer-events 2014-06-06 08:15:05 +00:00
presubmit.py [mjsunit] Import asm.js test case for poppler. 2015-04-22 09:33:43 +00:00
process-heap-prof.py Added check for trailing whitespaces and corrected existing violations. 2011-09-01 11:28:10 +00:00
profile_view.js Tick processor: improved [Summary] section 2014-08-04 08:31:49 +00:00
profile.js Profiler improvements 2015-01-20 16:06:09 +00:00
run_perf.py [test] Refactoring: Remove code duplication in perf runner. 2015-05-18 15:10:52 +00:00
run-deopt-fuzzer.py Contribution of PowerPC port (continuation of 422063005) - AIX Common1 2015-01-30 08:02:08 +00:00
run-llprof.sh Fix tools/run-llprof.sh to work with newer perf. 2014-10-09 06:01:41 +00:00
run-tests.py [test] Add random seed stress mode to test runner. 2015-06-11 11:42:37 +00:00
run-valgrind.py Unify the shebang line of python scripts 2013-01-29 10:40:43 +00:00
run.py First cut at run_mksnapshot action for gn 2014-06-03 06:50:46 +00:00
shell-utils.h [clang] Use -Wshorten-64-to-32 to enable warnings about 64bit to 32bit truncations. 2015-04-28 06:53:41 +00:00
SourceMap.js Add source map support to tick processor. 2013-08-23 17:20:54 +00:00
splaytree.js Remove support for logging into a memory buffer. 2011-07-13 11:31:22 +00:00
stats-viewer.py tools/stats-viewer: Update chromium stats table layout. 2011-05-25 16:47:54 +00:00
test-server.py Change deprecated comments that still talk about SCons. 2013-04-23 08:58:23 +00:00
tick-processor.html Add HTML-based tick processor 2012-12-12 15:06:50 +00:00
tickprocessor-driver.js [tick processor] Introduce --pairwise-timed-range processing mode 2015-05-05 14:17:48 +00:00
tickprocessor.js [tick processor] Introduce --pairwise-timed-range processing mode 2015-05-05 14:17:48 +00:00
trace-maps-processor.py Add FLAG_trace_maps 2014-11-07 16:03:44 +00:00
try_perf.py [test] Add arm perf trybot to runner script. 2015-05-05 14:17:47 +00:00
v8-info.sh Add public version macros. 2015-02-26 08:59:23 +00:00
v8-rolls.sh Adding useful scripts to parse revision info. 2013-06-12 10:39:52 +00:00
v8heapconst.py [grokdump] Update v8heapconst.py 2015-06-08 18:16:12 +00:00
v8heapconst.py.tmpl Generate grokdump constants with 'make grokdump' now. 2013-08-02 09:02:02 +00:00
whitespace.txt Whitespace change to test infra. 2015-06-17 10:00:08 +00:00
windows-tick-processor.bat Add source map support to tick processor. 2013-08-23 17:20:54 +00:00