v8/test/cctest/compiler
bmeurer ef661b0804 [turbofan] Reland "Add new JSFrameSpecialization reducer." and "Perform OSR deconstruction early and remove type propagation.".
We have to reland these two commits at once, because the first breaks
some asm.js benchmarks without the second. The change was reverted
because of bogus checks in the verifier, which will not work in the
presence of OSR (and where hidden because of the type back propagation
hack in OSR so far). Original messages are below:

[turbofan] Add new JSFrameSpecialization reducer.

The JSFrameSpecialization specializes an OSR graph to the current
unoptimized frame on which we will perform the on-stack replacement.
This is used for asm.js functions, where we cannot reuse the OSR
code object anyway because of context specialization, and so we could as
well specialize to the max instead.

It works by replacing all OsrValues in the graph with their values
in the JavaScriptFrame.

The idea is that using this trick we get better performance without
doing the unsound backpropagation of types to OsrValues later. This
is the first step towards fixing OSR for TurboFan.

[turbofan] Perform OSR deconstruction early and remove type propagation.

This way we don't have to deal with dead pre-OSR code in the graph
and risk optimizing the wrong code, especially we don't make
optimistic assumptions in the dead code that leaks into the OSR code
(i.e. deopt guards are in dead code, but the types propagate to OSR
code via the OsrValue type back propagation).

BUG=v8:4273
LOG=n
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29486}
2015-07-06 11:11:26 +00:00
..
c-signature.h [test] Refactor call-tester to use c-signature.h. 2015-06-02 15:01:06 +00:00
call-tester.h [test] Refactor call-tester to use c-signature.h. 2015-06-02 15:01:06 +00:00
codegen-tester.cc Reland "Initial switch to Chromium-style CHECK_* and DCHECK_* macros.". 2015-01-30 09:29:41 +00:00
codegen-tester.h [turbofan] Move RawMachineAssembler to unittests. 2015-06-12 10:33:19 +00:00
function-tester.h Update all callsites of the TryCatch ctor to pass an Isolate 2015-05-28 12:49:41 +00:00
graph-builder-tester.h [test] Refactor call-tester to use c-signature.h. 2015-06-02 15:01:06 +00:00
simplified-graph-builder.cc [turbofan] Change End to take a variable number of inputs. 2015-05-26 10:32:10 +00:00
simplified-graph-builder.h [turbofan] Enable typed lowering of string addition. 2015-06-02 08:50:53 +00:00
test-basic-block-profiler.cc Reland "Initial switch to Chromium-style CHECK_* and DCHECK_* macros.". 2015-01-30 09:29:41 +00:00
test-branch-combine.cc Remove deprecated v8::base::OS::nan_value(). 2015-01-21 14:38:58 +00:00
test-changes-lowering.cc [turbofan] Remove unused constructor function matching from typer. 2015-06-30 07:36:28 +00:00
test-gap-resolver.cc Reland: [turbofan] add MachineType to AllocatedOperand 2015-04-29 19:36:25 +00:00
test-graph-visualizer.cc [test] Remove deprecated cctest/test-node-algorithm tests. 2015-04-29 14:13:29 +00:00
test-instruction.cc Reland: [turbofan] add MachineType to AllocatedOperand 2015-04-29 19:36:25 +00:00
test-js-constant-cache.cc [turbofan] Remove unused constructor function matching from typer. 2015-06-30 07:36:28 +00:00
test-js-context-specialization.cc [ubsan] Fix HeapObjectMatcher to avoid invalid casts. 2015-06-19 12:49:13 +00:00
test-js-typed-lowering.cc [turbofan] Right hand side of shifts needs ToUint32. 2015-07-03 11:42:00 +00:00
test-jump-threading.cc [turbofan] Ensure lazy bailout point in exception handler. 2015-06-17 05:40:42 +00:00
test-linkage.cc Cosmetic changes to tests to make it easier to concatenate them. 2015-06-01 22:47:08 +00:00
test-loop-analysis.cc [turbofan] Proper dead code elimination as regular reducer. 2015-06-19 12:07:26 +00:00
test-loop-assignment-analysis.cc Remove funky 2-stage initialization of ParserInfo and an adventurous memset. 2015-03-12 11:46:32 +00:00
test-machine-operator-reducer.cc [turbofan] Remove unused constructor function matching from typer. 2015-06-30 07:36:28 +00:00
test-node.cc [test] Remove deprecated GraphTester helper class. 2015-04-29 15:16:11 +00:00
test-operator.cc Reland "Initial switch to Chromium-style CHECK_* and DCHECK_* macros.". 2015-01-30 09:29:41 +00:00
test-osr.cc [turbofan] Reland "Add new JSFrameSpecialization reducer." and "Perform OSR deconstruction early and remove type propagation.". 2015-07-06 11:11:26 +00:00
test-pipeline.cc [turbofan] Add test to keep generic pipeline on life support. 2015-06-18 04:52:44 +00:00
test-representation-change.cc [ubsan] Fix HeapObjectMatcher to avoid invalid casts. 2015-06-19 12:49:13 +00:00
test-run-deopt.cc [turbofan] Disable failing DeoptExceptionHandlerFinally test. 2015-06-19 11:41:12 +00:00
test-run-inlining.cc [turbofan] Disable recursive inlining for now. 2015-06-30 11:05:16 +00:00
test-run-intrinsics.cc [x64] Fix instruction selection for Word64Equal(Word64And, 0). 2015-06-24 09:15:31 +00:00
test-run-jsbranches.cc First simple implementation of for-of in TurboFan. 2015-01-14 15:24:29 +00:00
test-run-jscalls.cc [turbofan] Avoid embedding type feedback vector into code. 2015-06-23 08:27:33 +00:00
test-run-jsexceptions.cc [turbofan] Add mjsunit tests for try-catch-finally and OSR. 2015-06-09 08:16:41 +00:00
test-run-jsops.cc [es6] Remove harmony-classes flag 2015-06-26 21:16:58 +00:00
test-run-machops.cc [turbofan] Add Uint64LessThanOrEqual to 64-bit TurboFan backends. 2015-07-03 05:14:13 +00:00
test-run-properties.cc Fix windows warning. 2014-09-19 10:52:19 +00:00
test-run-stackcheck.cc Implement inlined stack-check guards in TurboFan. 2014-10-01 14:03:02 +00:00
test-run-stubs.cc [turbofan] Change End to take a variable number of inputs. 2015-05-26 10:32:10 +00:00
test-run-variables.cc Remove --harmony-scoping flag. 2015-03-13 15:15:57 +00:00
test-simplified-lowering.cc [turbofan] Remove unused constructor function matching from typer. 2015-06-30 07:36:28 +00:00
value-helper.h [turbofan] Add new Float32Abs and Float64Abs operators. 2015-04-08 11:55:04 +00:00