v8/test/unittests/compiler
danno f1aa556278 [turbofan] Create ExplicitOperands to specify operands without virtual registers
Up until now, if one wanted to specify an explicit stack location                                                                                                                                                                                                or register as an operand for an instruction, it had to also be
explicitly associated with a virtual register as a so-called
FixedRegister or FixedStackSlot.

For the implementation of tail calls, the plan is to use the gap
resolver needs to shuffle stack locations from the caller to the
tail-called callee. In order to do this, it must be possible to
explicitly address operand locations on the stack that are not
associated with virtual registers.

This CL introduces ExplictOperands, which can specify a specific
register or stack location that is not associated with virtual
register. This will allow tail calls to specify the target
locations for the necessary stack moves in the gap for the tail
call without the core register allocation having to know about
the target of the stack moves at all.

In the process this CL:
* creates a new Operand kind, ExplicitOperand, with which
  instructions can specify register and stack slots without an
  associated virtual register.
* creates a LocationOperand class from which AllocatedOperand and
  ExplicitOperand are derived and provides a common interface to
  get Register, DoubleRegister and spill slot information.
* removes RegisterOperand, DoubleRegisterOperand,
  StackSlotOperand and DoubleStackSlotOperand, they are subsumed
  by LocationOperand.
* addresses a cleanup TODO in AllocatedOperand to reduce the
  redundancy of AllocatedOperand::Kind by using machine_type() to
  determine if an operand corresponds to a general purpose or
  double register.

BUG=v8:4076
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#31603}
2015-10-27 13:27:00 +00:00
..
arm [Interpreter] Add support for loading from / storing to outer context variables. 2015-10-26 18:11:35 +00:00
arm64 [Interpreter] Add support for loading from / storing to outer context variables. 2015-10-26 18:11:35 +00:00
ia32 [Interpreter] Add support for loading from / storing to outer context variables. 2015-10-26 18:11:35 +00:00
mips [Interpreter] Add support for loading from / storing to outer context variables. 2015-10-26 18:11:35 +00:00
mips64 [Interpreter] Add support for loading from / storing to outer context variables. 2015-10-26 18:11:35 +00:00
ppc Update PPC OWNERS 2015-07-27 21:37:55 +00:00
x64 [Interpreter] Add support for loading from / storing to outer context variables. 2015-10-26 18:11:35 +00:00
branch-elimination-unittest.cc [turbofan] Redundant branch elimination. 2015-10-17 17:50:26 +00:00
bytecode-graph-builder-unittest.cc [Interpreter] Add support for local context loads and stores. 2015-10-16 15:29:16 +00:00
change-lowering-unittest.cc [turbofan] Move SimplifiedOperatorBuilder into JSGraph. 2015-10-16 12:38:52 +00:00
coalesced-live-ranges-unittest.cc [turbofan] Factored out the test live range builder. 2015-08-31 09:57:48 +00:00
common-operator-reducer-unittest.cc [turbofan] Also update the BranchHint when merging a BooleanNot. 2015-06-26 12:08:26 +00:00
common-operator-unittest.cc [turbofan] Introduce node regions for protection from scheduling. 2015-10-14 14:53:12 +00:00
compiler-test-utils.h [turbofan] Drop V8_TURBOFAN_BACKEND and V8_TURBOFAN_TARGET defines. 2015-08-10 07:17:34 +00:00
control-equivalence-unittest.cc [turbofan] Check node input/use consistency for changed operators and new nodes. 2015-09-25 08:43:11 +00:00
control-flow-optimizer-unittest.cc [turbofan] Remove the JSGraph dependency from the ControlFlowOptimizer. 2015-05-28 09:13:05 +00:00
dead-code-elimination-unittest.cc [turbofan] Proper dead code elimination as regular reducer. 2015-06-19 12:07:26 +00:00
diamond-unittest.cc [turbofan] Check node input/use consistency for changed operators and new nodes. 2015-09-25 08:43:11 +00:00
graph-reducer-unittest.cc [turbofan] Make Node::set_op safer via wrapper. 2015-09-24 14:46:37 +00:00
graph-reducer-unittest.h [turbofan] Add AdvancedReducer::ReplaceWithValue() method and convert JSInlining to an AdvancedReducer. 2015-05-12 12:41:36 +00:00
graph-trimmer-unittest.cc [turbofan] Proper dead code elimination as regular reducer. 2015-06-19 12:07:26 +00:00
graph-unittest.cc [turbofan] Get rid of type lower bounds. 2015-09-16 11:55:43 +00:00
graph-unittest.h [turbofan] Remove usage of Unique<T> from graph. 2015-08-31 08:25:05 +00:00
instruction-selector-unittest.cc For some platform such as X87, Crankshaft and Turbofan needs to use different 2015-10-22 13:24:49 +00:00
instruction-selector-unittest.h [turbofan] Change RawMachineAssembler to take a CallDescriptor instead of a MachineSignature. 2015-07-21 15:54:27 +00:00
instruction-sequence-unittest.cc Re-reland: Remove register index/code indirection 2015-10-02 16:55:22 +00:00
instruction-sequence-unittest.h [turbofan] Create ExplicitOperands to specify operands without virtual registers 2015-10-27 13:27:00 +00:00
interpreter-assembler-unittest.cc [Interpreter] Add support for loading from / storing to outer context variables. 2015-10-26 18:11:35 +00:00
interpreter-assembler-unittest.h [Interpreter] Add support for short (16 bit) operands. 2015-10-01 17:23:14 +00:00
js-builtin-reducer-unittest.cc [turbofan] Remove locally constructed simplified builders. 2015-10-19 08:05:27 +00:00
js-context-relaxation-unittest.cc [turbofan] Move SimplifiedOperatorBuilder into JSGraph. 2015-10-16 12:38:52 +00:00
js-intrinsic-lowering-unittest.cc [turbofan] Remove locally constructed simplified builders. 2015-10-19 08:05:27 +00:00
js-operator-unittest.cc [turbofan] Call FastNewContextStub for function context. 2015-10-02 09:30:21 +00:00
js-type-feedback-unittest.cc Remove support for "loads and stores to global vars through property cell shortcuts installed into parent script context" from all compilers. 2015-10-22 09:17:24 +00:00
js-typed-lowering-unittest.cc [turbofan] Unify NamedAccess and PropertyAccess operator parameters. 2015-10-22 08:48:09 +00:00
linkage-tail-call-unittest.cc [turbofan]: Add better encapsulation to LinkageLocation 2015-07-30 14:52:30 +00:00
live-range-builder.h [turbofan] Live Range unit tests. 2015-08-31 13:27:12 +00:00
live-range-unittest.cc [Turbofan] Re-enable single splinter. 2015-10-21 08:09:43 +00:00
liveness-analyzer-unittest.cc [turbofan] Move SimplifiedOperatorBuilder into JSGraph. 2015-10-16 12:38:52 +00:00
load-elimination-unittest.cc [turbofan] Turn LoadElimination into an AdvancedReducer. 2015-06-05 16:40:58 +00:00
loop-peeling-unittest.cc [turbofan] Check node input/use consistency for changed operators and new nodes. 2015-09-25 08:43:11 +00:00
machine-operator-reducer-unittest.cc [turbofan] Move SimplifiedOperatorBuilder into JSGraph. 2015-10-16 12:38:52 +00:00
machine-operator-unittest.cc [turbofan] Limit the load/store machine types to the ones we actually use. 2015-09-15 05:45:30 +00:00
move-optimizer-unittest.cc [turbofan] Create ExplicitOperands to specify operands without virtual registers 2015-10-27 13:27:00 +00:00
node-cache-unittest.cc [test] Turn compiler/test-node-cache into a unit test. 2015-04-29 14:40:05 +00:00
node-matchers-unittest.cc [presubmit] Enable readability/namespace linter checking. 2015-09-30 13:47:11 +00:00
node-properties-unittest.cc [turbofan] Proper dead code elimination as regular reducer. 2015-06-19 12:07:26 +00:00
node-test-utils.cc [turbofan] Introduce node regions for protection from scheduling. 2015-10-14 14:53:12 +00:00
node-test-utils.h [turbofan] Introduce node regions for protection from scheduling. 2015-10-14 14:53:12 +00:00
node-unittest.cc Fix -Wsign-compare errors in TF tests under GCC 4.9.2 2015-06-15 12:03:45 +00:00
opcodes-unittest.cc [turbofan] Strength reduction for inline comparisons. 2015-02-24 12:26:29 +00:00
register-allocator-unittest.cc Re-reland: Remove register index/code indirection 2015-10-02 16:55:22 +00:00
schedule-unittest.cc Model exceptional edges from call nodes in TurboFan. 2015-02-20 09:55:00 +00:00
scheduler-unittest.cc [turbofan] Fix scheduler test for Loop/Terminate nodes. 2015-10-09 10:52:59 +00:00
select-lowering-unittest.cc Reland "[turbofan] Fix select lowering" with fix. 2014-11-10 11:55:47 +00:00
simplified-operator-reducer-unittest.cc [turbofan] Move SimplifiedOperatorBuilder into JSGraph. 2015-10-16 12:38:52 +00:00
simplified-operator-unittest.cc [turbofan] Introduce simplified NumberBitwise{Or,Xor,And} operators. 2015-10-27 09:08:19 +00:00
state-values-utils-unittest.cc [turbofan] Move SimplifiedOperatorBuilder into JSGraph. 2015-10-16 12:38:52 +00:00
tail-call-optimization-unittest.cc [turbofan]: Add better encapsulation to LinkageLocation 2015-07-30 14:52:30 +00:00
typer-unittest.cc [unittests] Fix build/namespaces style guide violation. 2015-10-26 13:47:16 +00:00
value-numbering-reducer-unittest.cc [turbofan] Check node input/use consistency for changed operators and new nodes. 2015-09-25 08:43:11 +00:00
zone-pool-unittest.cc Fix invalid use of int in Zone. 2015-02-12 12:47:18 +00:00