diff options
author | Ben Noordhuis <info@bnoordhuis.nl> | 2015-03-27 12:04:12 +0100 |
---|---|---|
committer | Chris Dickinson <christopher.s.dickinson@gmail.com> | 2015-04-28 14:38:16 -0700 |
commit | 36cd5fb9d27b830320e57213f5b8829ffbb93324 (patch) | |
tree | bbab4215d26f8597019135206426fccf27a3089e /deps/v8/src/compiler/common-operator.h | |
parent | b57cc51d8d3f4ad279591ae8fa6584ee22773b97 (diff) | |
download | node-new-36cd5fb9d27b830320e57213f5b8829ffbb93324.tar.gz |
deps: upgrade v8 to 4.2.77.13
This commit applies some secondary changes in order to make `make test`
pass cleanly:
* disable broken postmortem debugging in common.gypi
* drop obsolete strict mode test in parallel/test-repl
* drop obsolete test parallel/test-v8-features
PR-URL: https://github.com/iojs/io.js/pull/1232
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Diffstat (limited to 'deps/v8/src/compiler/common-operator.h')
-rw-r--r-- | deps/v8/src/compiler/common-operator.h | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/deps/v8/src/compiler/common-operator.h b/deps/v8/src/compiler/common-operator.h index af6066b133..9f2c575163 100644 --- a/deps/v8/src/compiler/common-operator.h +++ b/deps/v8/src/compiler/common-operator.h @@ -153,19 +153,29 @@ size_t hash_value(FrameStateCallInfo const&); std::ostream& operator<<(std::ostream&, FrameStateCallInfo const&); +size_t ProjectionIndexOf(const Operator* const); + + // Interface for building common operators that can be used at any level of IR, // including JavaScript, mid-level, and low-level. class CommonOperatorBuilder FINAL : public ZoneObject { public: explicit CommonOperatorBuilder(Zone* zone); + // Special operator used only in Branches to mark them as always taken, but + // still unfoldable. This is required to properly connect non terminating + // loops to end (in both the sea of nodes and the CFG). + const Operator* Always(); + const Operator* Dead(); const Operator* End(); const Operator* Branch(BranchHint = BranchHint::kNone); const Operator* IfTrue(); const Operator* IfFalse(); + const Operator* Switch(size_t control_output_count); + const Operator* IfValue(int32_t value); + const Operator* IfDefault(); const Operator* Throw(); - const Operator* Terminate(int effects); const Operator* Return(); const Operator* Start(int num_formal_parameters); @@ -173,6 +183,10 @@ class CommonOperatorBuilder FINAL : public ZoneObject { const Operator* Merge(int control_input_count); const Operator* Parameter(int index); + const Operator* OsrNormalEntry(); + const Operator* OsrLoopEntry(); + const Operator* OsrValue(int index); + const Operator* Int32Constant(int32_t); const Operator* Int64Constant(int64_t); const Operator* Float32Constant(volatile float); @@ -184,6 +198,7 @@ class CommonOperatorBuilder FINAL : public ZoneObject { const Operator* Select(MachineType, BranchHint = BranchHint::kNone); const Operator* Phi(MachineType type, int arguments); const Operator* EffectPhi(int arguments); + const Operator* EffectSet(int arguments); const Operator* ValueEffect(int arguments); const Operator* Finish(int arguments); const Operator* StateValues(int arguments); @@ -194,6 +209,10 @@ class CommonOperatorBuilder FINAL : public ZoneObject { const Operator* Call(const CallDescriptor* descriptor); const Operator* Projection(size_t index); + // Constructs a new merge or phi operator with the same opcode as {op}, but + // with {size} inputs. + const Operator* ResizeMergeOrPhi(const Operator* op, int size); + private: Zone* zone() const { return zone_; } |