summaryrefslogtreecommitdiff
path: root/deps/v8/src/compiler/common-operator.h
diff options
context:
space:
mode:
authorBen Noordhuis <info@bnoordhuis.nl>2015-03-27 12:04:12 +0100
committerChris Dickinson <christopher.s.dickinson@gmail.com>2015-04-28 14:38:16 -0700
commit36cd5fb9d27b830320e57213f5b8829ffbb93324 (patch)
treebbab4215d26f8597019135206426fccf27a3089e /deps/v8/src/compiler/common-operator.h
parentb57cc51d8d3f4ad279591ae8fa6584ee22773b97 (diff)
downloadnode-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.h21
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_; }