Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(404)

Unified Diff: src/hydrogen-instructions.h

Issue 363323003: More OStreamsUse OStreams more often. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Rebased and polished. Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/hydrogen-gvn.cc ('k') | src/hydrogen-instructions.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/hydrogen-instructions.h
diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h
index 94f9281d644af7e6c6555e49bdd9cc3c0c2bb4d4..7c2efdd964ef7818d383a5cf922ad558573dab29 100644
--- a/src/hydrogen-instructions.h
+++ b/src/hydrogen-instructions.h
@@ -13,8 +13,8 @@
#include "src/data-flow.h"
#include "src/deoptimizer.h"
#include "src/hydrogen-types.h"
+#include "src/ostreams.h"
#include "src/small-pointer-list.h"
-#include "src/string-stream.h"
#include "src/unique.h"
#include "src/utils.h"
#include "src/zone.h"
@@ -23,6 +23,7 @@ namespace v8 {
namespace internal {
// Forward declarations.
+class ChangesOf;
class HBasicBlock;
class HDiv;
class HEnvironment;
@@ -445,8 +446,6 @@ class HSourcePosition {
int raw() const { return value_; }
- void PrintTo(FILE* f);
-
private:
typedef BitField<int, 0, 9> InliningIdField;
@@ -465,6 +464,9 @@ class HSourcePosition {
};
+OStream& operator<<(OStream& os, const HSourcePosition& p);
+
+
class HValue : public ZoneObject {
public:
static const int kNoNumber = -1;
@@ -656,7 +658,7 @@ class HValue : public ZoneObject {
bool IsDefinedAfter(HBasicBlock* other) const;
// Operands.
- virtual int OperandCount() = 0;
+ virtual int OperandCount() const = 0;
virtual HValue* OperandAt(int index) const = 0;
void SetOperandAt(int index, HValue* value);
@@ -765,10 +767,7 @@ class HValue : public ZoneObject {
virtual void FinalizeUniqueness() { }
// Printing support.
- virtual void PrintTo(StringStream* stream) = 0;
- void PrintNameTo(StringStream* stream);
- void PrintTypeTo(StringStream* stream);
- void PrintChangesTo(StringStream* stream);
+ virtual OStream& PrintTo(OStream& os) const = 0; // NOLINT
const char* Mnemonic() const;
@@ -885,6 +884,7 @@ class HValue : public ZoneObject {
result.Remove(kOsrEntries);
return result;
}
+ friend OStream& operator<<(OStream& os, const ChangesOf& v);
// A flag mask of all side effects that can make observable changes in
// an executing program (i.e. are not safe to repeat, move or remove);
@@ -926,8 +926,29 @@ class HValue : public ZoneObject {
DISALLOW_COPY_AND_ASSIGN(HValue);
};
+// Support for printing various aspects of an HValue.
+struct NameOf {
+ explicit NameOf(const HValue* const v) : value(v) {}
+ const HValue* value;
+};
+
+
+struct TypeOf {
+ explicit TypeOf(const HValue* const v) : value(v) {}
+ const HValue* value;
+};
+
+
+struct ChangesOf {
+ explicit ChangesOf(const HValue* const v) : value(v) {}
+ const HValue* value;
+};
+
OStream& operator<<(OStream& os, const HValue& v);
+OStream& operator<<(OStream& os, const NameOf& v);
+OStream& operator<<(OStream& os, const TypeOf& v);
+OStream& operator<<(OStream& os, const ChangesOf& v);
#define DECLARE_INSTRUCTION_FACTORY_P0(I) \
@@ -1123,8 +1144,8 @@ class HInstruction : public HValue {
HInstruction* next() const { return next_; }
HInstruction* previous() const { return previous_; }
- virtual void PrintTo(StringStream* stream) V8_OVERRIDE;
- virtual void PrintDataTo(StringStream* stream);
+ virtual OStream& PrintTo(OStream& os) const V8_OVERRIDE; // NOLINT
+ virtual OStream& PrintDataTo(OStream& os) const; // NOLINT
bool IsLinked() const { return block() != NULL; }
void Unlink();
@@ -1199,8 +1220,6 @@ class HInstruction : public HValue {
SetBlock(block);
}
- void PrintMnemonicTo(StringStream* stream);
-
HInstruction* next_;
HInstruction* previous_;
HPositionInfo position_;
@@ -1212,7 +1231,7 @@ class HInstruction : public HValue {
template<int V>
class HTemplateInstruction : public HInstruction {
public:
- virtual int OperandCount() V8_FINAL V8_OVERRIDE { return V; }
+ virtual int OperandCount() const V8_FINAL V8_OVERRIDE { return V; }
virtual HValue* OperandAt(int i) const V8_FINAL V8_OVERRIDE {
return inputs_[i];
}
@@ -1231,11 +1250,11 @@ class HTemplateInstruction : public HInstruction {
class HControlInstruction : public HInstruction {
public:
- virtual HBasicBlock* SuccessorAt(int i) = 0;
- virtual int SuccessorCount() = 0;
+ virtual HBasicBlock* SuccessorAt(int i) const = 0;
+ virtual int SuccessorCount() const = 0;
virtual void SetSuccessorAt(int i, HBasicBlock* block) = 0;
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
virtual bool KnownSuccessorBlock(HBasicBlock** block) {
*block = NULL;
@@ -1261,15 +1280,15 @@ class HControlInstruction : public HInstruction {
class HSuccessorIterator V8_FINAL BASE_EMBEDDED {
public:
- explicit HSuccessorIterator(HControlInstruction* instr)
- : instr_(instr), current_(0) { }
+ explicit HSuccessorIterator(const HControlInstruction* instr)
+ : instr_(instr), current_(0) {}
bool Done() { return current_ >= instr_->SuccessorCount(); }
HBasicBlock* Current() { return instr_->SuccessorAt(current_); }
void Advance() { current_++; }
private:
- HControlInstruction* instr_;
+ const HControlInstruction* instr_;
int current_;
};
@@ -1277,13 +1296,13 @@ class HSuccessorIterator V8_FINAL BASE_EMBEDDED {
template<int S, int V>
class HTemplateControlInstruction : public HControlInstruction {
public:
- int SuccessorCount() V8_OVERRIDE { return S; }
- HBasicBlock* SuccessorAt(int i) V8_OVERRIDE { return successors_[i]; }
+ int SuccessorCount() const V8_OVERRIDE { return S; }
+ HBasicBlock* SuccessorAt(int i) const V8_OVERRIDE { return successors_[i]; }
void SetSuccessorAt(int i, HBasicBlock* block) V8_OVERRIDE {
successors_[i] = block;
}
- int OperandCount() V8_OVERRIDE { return V; }
+ int OperandCount() const V8_OVERRIDE { return V; }
HValue* OperandAt(int i) const V8_OVERRIDE { return inputs_[i]; }
@@ -1318,14 +1337,14 @@ class HDummyUse V8_FINAL : public HTemplateInstruction<1> {
set_representation(Representation::Tagged());
}
- HValue* value() { return OperandAt(0); }
+ HValue* value() const { return OperandAt(0); }
virtual bool HasEscapingOperandAt(int index) V8_OVERRIDE { return false; }
virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE {
return Representation::None();
}
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
DECLARE_CONCRETE_INSTRUCTION(DummyUse);
};
@@ -1359,7 +1378,7 @@ class HGoto V8_FINAL : public HTemplateControlInstruction<1, 0> {
return Representation::None();
}
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
DECLARE_CONCRETE_INSTRUCTION(Goto)
};
@@ -1412,9 +1431,9 @@ class HUnaryControlInstruction : public HTemplateControlInstruction<2, 1> {
SetSuccessorAt(1, false_target);
}
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
- HValue* value() { return OperandAt(0); }
+ HValue* value() const { return OperandAt(0); }
};
@@ -1434,7 +1453,7 @@ class HBranch V8_FINAL : public HUnaryControlInstruction {
virtual bool KnownSuccessorBlock(HBasicBlock** block) V8_OVERRIDE;
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
ToBooleanStub::Types expected_input_types() const {
return expected_input_types_;
@@ -1471,7 +1490,7 @@ class HCompareMap V8_FINAL : public HUnaryControlInstruction {
return false;
}
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
static const int kNoKnownSuccessorIndex = -1;
int known_successor_index() const { return known_successor_index_; }
@@ -1545,11 +1564,11 @@ class HReturn V8_FINAL : public HTemplateControlInstruction<0, 3> {
return Representation::Tagged();
}
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
- HValue* value() { return OperandAt(0); }
- HValue* context() { return OperandAt(1); }
- HValue* parameter_count() { return OperandAt(2); }
+ HValue* value() const { return OperandAt(0); }
+ HValue* context() const { return OperandAt(1); }
+ HValue* parameter_count() const { return OperandAt(2); }
DECLARE_CONCRETE_INSTRUCTION(Return)
@@ -1588,7 +1607,7 @@ class HUnaryOperation : public HTemplateInstruction<1> {
}
HValue* value() const { return OperandAt(0); }
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
};
@@ -1612,13 +1631,13 @@ class HForceRepresentation V8_FINAL : public HTemplateInstruction<1> {
static HInstruction* New(Zone* zone, HValue* context, HValue* value,
Representation required_representation);
- HValue* value() { return OperandAt(0); }
+ HValue* value() const { return OperandAt(0); }
virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE {
return representation(); // Same as the output representation.
}
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
DECLARE_CONCRETE_INSTRUCTION(ForceRepresentation)
@@ -1674,7 +1693,7 @@ class HChange V8_FINAL : public HUnaryOperation {
virtual Range* InferRange(Zone* zone) V8_OVERRIDE;
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
DECLARE_CONCRETE_INSTRUCTION(Change)
@@ -1793,7 +1812,7 @@ class HSimulate V8_FINAL : public HInstruction {
done_with_replay_(false) {}
~HSimulate() {}
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
bool HasAstId() const { return !ast_id_.IsNone(); }
BailoutId ast_id() const { return ast_id_; }
@@ -1823,7 +1842,7 @@ class HSimulate V8_FINAL : public HInstruction {
}
return -1;
}
- virtual int OperandCount() V8_OVERRIDE { return values_.length(); }
+ virtual int OperandCount() const V8_OVERRIDE { return values_.length(); }
virtual HValue* OperandAt(int index) const V8_OVERRIDE {
return values_[index];
}
@@ -1888,8 +1907,8 @@ class HEnvironmentMarker V8_FINAL : public HTemplateInstruction<1> {
DECLARE_INSTRUCTION_FACTORY_P2(HEnvironmentMarker, Kind, int);
- Kind kind() { return kind_; }
- int index() { return index_; }
+ Kind kind() const { return kind_; }
+ int index() const { return index_; }
HSimulate* next_simulate() { return next_simulate_; }
void set_next_simulate(HSimulate* simulate) {
next_simulate_ = simulate;
@@ -1899,7 +1918,7 @@ class HEnvironmentMarker V8_FINAL : public HTemplateInstruction<1> {
return Representation::None();
}
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
#ifdef DEBUG
void set_closure(Handle<JSFunction> closure) {
@@ -1994,7 +2013,7 @@ class HEnterInlined V8_FINAL : public HTemplateInstruction<0> {
void RegisterReturnTarget(HBasicBlock* return_target, Zone* zone);
ZoneList<HBasicBlock*>* return_targets() { return &return_targets_; }
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
Handle<JSFunction> closure() const { return closure_; }
int arguments_count() const { return arguments_count_; }
@@ -2110,7 +2129,9 @@ class HPushArguments V8_FINAL : public HInstruction {
virtual int argument_delta() const V8_OVERRIDE { return inputs_.length(); }
HValue* argument(int i) { return OperandAt(i); }
- virtual int OperandCount() V8_FINAL V8_OVERRIDE { return inputs_.length(); }
+ virtual int OperandCount() const V8_FINAL V8_OVERRIDE {
+ return inputs_.length();
+ }
virtual HValue* OperandAt(int i) const V8_FINAL V8_OVERRIDE {
return inputs_[i];
}
@@ -2227,9 +2248,9 @@ class HUnaryCall : public HCall<1> {
return Representation::Tagged();
}
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
- HValue* value() { return OperandAt(0); }
+ HValue* value() const { return OperandAt(0); }
};
@@ -2241,15 +2262,15 @@ class HBinaryCall : public HCall<2> {
SetOperandAt(1, second);
}
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
virtual Representation RequiredInputRepresentation(
int index) V8_FINAL V8_OVERRIDE {
return Representation::Tagged();
}
- HValue* first() { return OperandAt(0); }
- HValue* second() { return OperandAt(1); }
+ HValue* first() const { return OperandAt(0); }
+ HValue* second() const { return OperandAt(1); }
};
@@ -2261,9 +2282,9 @@ class HCallJSFunction V8_FINAL : public HCall<1> {
int argument_count,
bool pass_argument_count);
- HValue* function() { return OperandAt(0); }
+ HValue* function() const { return OperandAt(0); }
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
virtual Representation RequiredInputRepresentation(
int index) V8_FINAL V8_OVERRIDE {
@@ -2310,7 +2331,9 @@ class HCallWithDescriptor V8_FINAL : public HInstruction {
return res;
}
- virtual int OperandCount() V8_FINAL V8_OVERRIDE { return values_.length(); }
+ virtual int OperandCount() const V8_FINAL V8_OVERRIDE {
+ return values_.length();
+ }
virtual HValue* OperandAt(int index) const V8_FINAL V8_OVERRIDE {
return values_[index];
}
@@ -2348,7 +2371,7 @@ class HCallWithDescriptor V8_FINAL : public HInstruction {
return OperandAt(0);
}
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
private:
// The argument count includes the receiver.
@@ -2483,7 +2506,7 @@ class HCallNewArray V8_FINAL : public HBinaryCall {
HValue* context() { return first(); }
HValue* constructor() { return second(); }
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
ElementsKind elements_kind() const { return elements_kind_; }
@@ -2506,7 +2529,7 @@ class HCallRuntime V8_FINAL : public HCall<1> {
const Runtime::Function*,
int);
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
HValue* context() { return OperandAt(0); }
const Runtime::Function* function() const { return c_function_; }
@@ -2570,10 +2593,10 @@ class HUnaryMathOperation V8_FINAL : public HTemplateInstruction<2> {
HValue* value,
BuiltinFunctionId op);
- HValue* context() { return OperandAt(0); }
- HValue* value() { return OperandAt(1); }
+ HValue* context() const { return OperandAt(0); }
+ HValue* value() const { return OperandAt(1); }
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE {
if (index == 0) {
@@ -2741,7 +2764,7 @@ class HCheckMaps V8_FINAL : public HTemplateInstruction<2> {
return HType::HeapObject();
}
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
HValue* value() const { return OperandAt(0); }
HValue* typecheck() const { return OperandAt(1); }
@@ -2849,7 +2872,7 @@ class HCheckValue V8_FINAL : public HUnaryOperation {
virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE {
return Representation::Tagged();
}
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
virtual HValue* Canonicalize() V8_OVERRIDE;
@@ -2895,7 +2918,7 @@ class HCheckInstanceType V8_FINAL : public HUnaryOperation {
DECLARE_INSTRUCTION_FACTORY_P2(HCheckInstanceType, HValue*, Check);
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE {
return Representation::Tagged();
@@ -2934,7 +2957,7 @@ class HCheckInstanceType V8_FINAL : public HUnaryOperation {
virtual int RedefinedOperandIndex() { return 0; }
private:
- const char* GetCheckName();
+ const char* GetCheckName() const;
HCheckInstanceType(HValue* value, Check check)
: HUnaryOperation(value, HType::HeapObject()), check_(check) {
@@ -3259,7 +3282,7 @@ class HPhi V8_FINAL : public HValue {
return representation();
}
virtual HType CalculateInferredType() V8_OVERRIDE;
- virtual int OperandCount() V8_OVERRIDE { return inputs_.length(); }
+ virtual int OperandCount() const V8_OVERRIDE { return inputs_.length(); }
virtual HValue* OperandAt(int index) const V8_OVERRIDE {
return inputs_[index];
}
@@ -3289,7 +3312,7 @@ class HPhi V8_FINAL : public HValue {
induction_variable_data_ = InductionVariableData::ExaminePhi(this);
}
- virtual void PrintTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintTo(OStream& os) const V8_OVERRIDE; // NOLINT
#ifdef DEBUG
virtual void Verify() V8_OVERRIDE;
@@ -3361,7 +3384,9 @@ class HDematerializedObject : public HInstruction {
public:
HDematerializedObject(int count, Zone* zone) : values_(count, zone) {}
- virtual int OperandCount() V8_FINAL V8_OVERRIDE { return values_.length(); }
+ virtual int OperandCount() const V8_FINAL V8_OVERRIDE {
+ return values_.length();
+ }
virtual HValue* OperandAt(int index) const V8_FINAL V8_OVERRIDE {
return values_[index];
}
@@ -3439,7 +3464,7 @@ class HCapturedObject V8_FINAL : public HDematerializedObject {
// Replay effects of this instruction on the given environment.
void ReplayEnvironment(HEnvironment* env);
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
DECLARE_CONCRETE_INSTRUCTION(CapturedObject)
@@ -3545,7 +3570,7 @@ class HConstant V8_FINAL : public HTemplateInstruction<0> {
}
virtual bool EmitAtUses() V8_OVERRIDE;
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
HConstant* CopyToRepresentation(Representation r, Zone* zone) const;
Maybe<HConstant*> CopyToTruncatedInt32(Zone* zone);
Maybe<HConstant*> CopyToTruncatedNumber(Zone* zone);
@@ -3807,7 +3832,7 @@ class HBinaryOperation : public HTemplateInstruction<3> {
virtual bool IsCommutative() const { return false; }
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE {
if (index == 0) return Representation::Tagged();
@@ -3847,12 +3872,12 @@ class HWrapReceiver V8_FINAL : public HTemplateInstruction<2> {
return Representation::Tagged();
}
- HValue* receiver() { return OperandAt(0); }
- HValue* function() { return OperandAt(1); }
+ HValue* receiver() const { return OperandAt(0); }
+ HValue* function() const { return OperandAt(1); }
virtual HValue* Canonicalize() V8_OVERRIDE;
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
bool known_function() const { return known_function_; }
DECLARE_CONCRETE_INSTRUCTION(WrapReceiver)
@@ -3961,7 +3986,7 @@ class HAccessArgumentsAt V8_FINAL : public HTemplateInstruction<3> {
public:
DECLARE_INSTRUCTION_FACTORY_P3(HAccessArgumentsAt, HValue*, HValue*, HValue*);
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE {
// The arguments elements is considered tagged.
@@ -3970,9 +3995,9 @@ class HAccessArgumentsAt V8_FINAL : public HTemplateInstruction<3> {
: Representation::Integer32();
}
- HValue* arguments() { return OperandAt(0); }
- HValue* length() { return OperandAt(1); }
- HValue* index() { return OperandAt(2); }
+ HValue* arguments() const { return OperandAt(0); }
+ HValue* length() const { return OperandAt(1); }
+ HValue* index() const { return OperandAt(2); }
DECLARE_CONCRETE_INSTRUCTION(AccessArgumentsAt)
@@ -3999,9 +4024,9 @@ class HBoundsCheck V8_FINAL : public HTemplateInstruction<2> {
bool skip_check() const { return skip_check_; }
void set_skip_check() { skip_check_ = true; }
- HValue* base() { return base_; }
- int offset() { return offset_; }
- int scale() { return scale_; }
+ HValue* base() const { return base_; }
+ int offset() const { return offset_; }
+ int scale() const { return scale_; }
void ApplyIndexChange();
bool DetectCompoundIndex() {
@@ -4025,13 +4050,13 @@ class HBoundsCheck V8_FINAL : public HTemplateInstruction<2> {
return representation();
}
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
virtual void InferRepresentation(
HInferRepresentationPhase* h_infer) V8_OVERRIDE;
- HValue* index() { return OperandAt(0); }
- HValue* length() { return OperandAt(1); }
- bool allow_equality() { return allow_equality_; }
+ HValue* index() const { return OperandAt(0); }
+ HValue* length() const { return OperandAt(1); }
+ bool allow_equality() const { return allow_equality_; }
void set_allow_equality(bool v) { allow_equality_ = v; }
virtual int RedefinedOperandIndex() V8_OVERRIDE { return 0; }
@@ -4087,7 +4112,7 @@ class HBoundsCheckBaseIndexInformation V8_FINAL
}
}
- HValue* base_index() { return OperandAt(0); }
+ HValue* base_index() const { return OperandAt(0); }
HBoundsCheck* bounds_check() { return HBoundsCheck::cast(OperandAt(1)); }
DECLARE_CONCRETE_INSTRUCTION(BoundsCheckBaseIndexInformation)
@@ -4096,7 +4121,7 @@ class HBoundsCheckBaseIndexInformation V8_FINAL
return representation();
}
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
virtual int RedefinedOperandIndex() V8_OVERRIDE { return 0; }
virtual bool IsPurelyInformativeDefinition() V8_OVERRIDE { return true; }
@@ -4222,7 +4247,7 @@ class HCompareGeneric V8_FINAL : public HBinaryOperation {
}
Token::Value token() const { return token_; }
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
DECLARE_CONCRETE_INSTRUCTION(CompareGeneric)
@@ -4250,8 +4275,8 @@ class HCompareNumericAndBranch : public HTemplateControlInstruction<2, 2> {
HValue*, HValue*, Token::Value,
HBasicBlock*, HBasicBlock*);
- HValue* left() { return OperandAt(0); }
- HValue* right() { return OperandAt(1); }
+ HValue* left() const { return OperandAt(0); }
+ HValue* right() const { return OperandAt(1); }
Token::Value token() const { return token_; }
void set_observed_input_representation(Representation left,
@@ -4272,7 +4297,7 @@ class HCompareNumericAndBranch : public HTemplateControlInstruction<2, 2> {
virtual bool KnownSuccessorBlock(HBasicBlock** block) V8_OVERRIDE;
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
void SetOperandPositions(Zone* zone,
HSourcePosition left_pos,
@@ -4365,10 +4390,10 @@ class HCompareObjectEqAndBranch : public HTemplateControlInstruction<2, 2> {
known_successor_index_ = known_successor_index;
}
- HValue* left() { return OperandAt(0); }
- HValue* right() { return OperandAt(1); }
+ HValue* left() const { return OperandAt(0); }
+ HValue* right() const { return OperandAt(1); }
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE {
return Representation::Tagged();
@@ -4512,7 +4537,7 @@ class HStringCompareAndBranch : public HTemplateControlInstruction<2, 3> {
HValue* right() { return OperandAt(2); }
Token::Value token() const { return token_; }
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE {
return Representation::Tagged();
@@ -4566,7 +4591,7 @@ class HHasInstanceTypeAndBranch V8_FINAL : public HUnaryControlInstruction {
InstanceType from() { return from_; }
InstanceType to() { return to_; }
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE {
return Representation::Tagged();
@@ -4638,7 +4663,7 @@ class HClassOfTestAndBranch V8_FINAL : public HUnaryControlInstruction {
return Representation::Tagged();
}
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
Handle<String> class_name() const { return class_name_; }
@@ -4655,8 +4680,8 @@ class HTypeofIsAndBranch V8_FINAL : public HUnaryControlInstruction {
public:
DECLARE_INSTRUCTION_FACTORY_P2(HTypeofIsAndBranch, HValue*, Handle<String>);
- Handle<String> type_literal() { return type_literal_.handle(); }
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ Handle<String> type_literal() const { return type_literal_.handle(); }
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
DECLARE_CONCRETE_INSTRUCTION(TypeofIsAndBranch)
@@ -4687,7 +4712,7 @@ class HInstanceOf V8_FINAL : public HBinaryOperation {
return Representation::Tagged();
}
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
DECLARE_CONCRETE_INSTRUCTION(InstanceOf)
@@ -5046,7 +5071,7 @@ class HBitwise V8_FINAL : public HBitwiseBinaryOperation {
virtual HValue* Canonicalize() V8_OVERRIDE;
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
DECLARE_CONCRETE_INSTRUCTION(Bitwise)
@@ -5269,7 +5294,7 @@ class HParameter V8_FINAL : public HTemplateInstruction<0> {
unsigned index() const { return index_; }
ParameterKind kind() const { return kind_; }
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE {
return Representation::None();
@@ -5305,7 +5330,7 @@ class HCallStub V8_FINAL : public HUnaryCall {
HValue* context() { return value(); }
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
DECLARE_CONCRETE_INSTRUCTION(CallStub)
@@ -5323,7 +5348,7 @@ class HUnknownOSRValue V8_FINAL : public HTemplateInstruction<0> {
public:
DECLARE_INSTRUCTION_FACTORY_P2(HUnknownOSRValue, HEnvironment*, int);
- virtual void PrintDataTo(StringStream* stream);
+ virtual OStream& PrintDataTo(OStream& os) const; // NOLINT
virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE {
return Representation::None();
@@ -5363,7 +5388,7 @@ class HLoadGlobalCell V8_FINAL : public HTemplateInstruction<0> {
Unique<Cell> cell() const { return cell_; }
bool RequiresHoleCheck() const;
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
virtual intptr_t Hashcode() V8_OVERRIDE {
return cell_.Hashcode();
@@ -5402,14 +5427,14 @@ class HLoadGlobalCell V8_FINAL : public HTemplateInstruction<0> {
class HLoadGlobalGeneric V8_FINAL : public HTemplateInstruction<2> {
public:
DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P3(HLoadGlobalGeneric, HValue*,
- Handle<Object>, bool);
+ Handle<String>, bool);
HValue* context() { return OperandAt(0); }
HValue* global_object() { return OperandAt(1); }
- Handle<Object> name() const { return name_; }
+ Handle<String> name() const { return name_; }
bool for_typeof() const { return for_typeof_; }
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE {
return Representation::Tagged();
@@ -5418,19 +5443,16 @@ class HLoadGlobalGeneric V8_FINAL : public HTemplateInstruction<2> {
DECLARE_CONCRETE_INSTRUCTION(LoadGlobalGeneric)
private:
- HLoadGlobalGeneric(HValue* context,
- HValue* global_object,
- Handle<Object> name,
- bool for_typeof)
- : name_(name),
- for_typeof_(for_typeof) {
+ HLoadGlobalGeneric(HValue* context, HValue* global_object,
+ Handle<String> name, bool for_typeof)
+ : name_(name), for_typeof_(for_typeof) {
SetOperandAt(0, context);
SetOperandAt(1, global_object);
set_representation(Representation::Tagged());
SetAllSideEffects();
}
- Handle<Object> name_;
+ Handle<String> name_;
bool for_typeof_;
};
@@ -5458,8 +5480,8 @@ class HAllocate V8_FINAL : public HTemplateInstruction<2> {
// Maximum instance size for which allocations will be inlined.
static const int kMaxInlineSize = 64 * kPointerSize;
- HValue* context() { return OperandAt(0); }
- HValue* size() { return OperandAt(1); }
+ HValue* context() const { return OperandAt(0); }
+ HValue* size() const { return OperandAt(1); }
bool has_size_upper_bound() { return size_upper_bound_ != NULL; }
HConstant* size_upper_bound() { return size_upper_bound_; }
@@ -5519,7 +5541,7 @@ class HAllocate V8_FINAL : public HTemplateInstruction<2> {
virtual bool HandleSideEffectDominator(GVNFlag side_effect,
HValue* dominator) V8_OVERRIDE;
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
DECLARE_CONCRETE_INSTRUCTION(Allocate)
@@ -5659,14 +5681,14 @@ class HInnerAllocatedObject V8_FINAL : public HTemplateInstruction<2> {
return new(zone) HInnerAllocatedObject(value, offset, type);
}
- HValue* base_object() { return OperandAt(0); }
- HValue* offset() { return OperandAt(1); }
+ HValue* base_object() const { return OperandAt(0); }
+ HValue* offset() const { return OperandAt(1); }
virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE {
return index == 0 ? Representation::Tagged() : Representation::Integer32();
}
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
DECLARE_CONCRETE_INSTRUCTION(InnerAllocatedObject)
@@ -5766,7 +5788,7 @@ class HStoreGlobalCell V8_FINAL : public HUnaryOperation {
virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE {
return Representation::Tagged();
}
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
DECLARE_CONCRETE_INSTRUCTION(StoreGlobalCell)
@@ -5822,7 +5844,7 @@ class HLoadContextSlot V8_FINAL : public HUnaryOperation {
return Representation::Tagged();
}
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
DECLARE_CONCRETE_INSTRUCTION(LoadContextSlot)
@@ -5858,8 +5880,8 @@ class HStoreContextSlot V8_FINAL : public HTemplateInstruction<2> {
DECLARE_INSTRUCTION_FACTORY_P4(HStoreContextSlot, HValue*, int,
Mode, HValue*);
- HValue* context() { return OperandAt(0); }
- HValue* value() { return OperandAt(1); }
+ HValue* context() const { return OperandAt(0); }
+ HValue* value() const { return OperandAt(1); }
int slot_index() const { return slot_index_; }
Mode mode() const { return mode_; }
@@ -5879,7 +5901,7 @@ class HStoreContextSlot V8_FINAL : public HTemplateInstruction<2> {
return Representation::Tagged();
}
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
DECLARE_CONCRETE_INSTRUCTION(StoreContextSlot)
@@ -6206,8 +6228,6 @@ class HObjectAccess V8_FINAL {
return HObjectAccess(kInobject, GlobalObject::kNativeContextOffset);
}
- void PrintTo(StringStream* stream) const;
-
inline bool Equals(HObjectAccess that) const {
return value_ == that.value_; // portion and offset must match
}
@@ -6263,6 +6283,7 @@ class HObjectAccess V8_FINAL {
friend class HLoadNamedField;
friend class HStoreNamedField;
friend class SideEffectsTracker;
+ friend OStream& operator<<(OStream& os, const HObjectAccess& access);
inline Portion portion() const {
return PortionField::decode(value_);
@@ -6270,6 +6291,9 @@ class HObjectAccess V8_FINAL {
};
+OStream& operator<<(OStream& os, const HObjectAccess& access);
+
+
class HLoadNamedField V8_FINAL : public HTemplateInstruction<2> {
public:
DECLARE_INSTRUCTION_FACTORY_P3(HLoadNamedField, HValue*,
@@ -6277,8 +6301,8 @@ class HLoadNamedField V8_FINAL : public HTemplateInstruction<2> {
DECLARE_INSTRUCTION_FACTORY_P5(HLoadNamedField, HValue*, HValue*,
HObjectAccess, const UniqueSet<Map>*, HType);
- HValue* object() { return OperandAt(0); }
- HValue* dependency() {
+ HValue* object() const { return OperandAt(0); }
+ HValue* dependency() const {
ASSERT(HasDependency());
return OperandAt(1);
}
@@ -6302,7 +6326,7 @@ class HLoadNamedField V8_FINAL : public HTemplateInstruction<2> {
return Representation::Tagged();
}
virtual Range* InferRange(Zone* zone) V8_OVERRIDE;
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
bool CanBeReplacedWith(HValue* other) const {
if (!CheckFlag(HValue::kCantBeReplaced)) return false;
@@ -6394,15 +6418,15 @@ class HLoadNamedGeneric V8_FINAL : public HTemplateInstruction<2> {
DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P2(HLoadNamedGeneric, HValue*,
Handle<Object>);
- HValue* context() { return OperandAt(0); }
- HValue* object() { return OperandAt(1); }
+ HValue* context() const { return OperandAt(0); }
+ HValue* object() const { return OperandAt(1); }
Handle<Object> name() const { return name_; }
virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE {
return Representation::Tagged();
}
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
DECLARE_CONCRETE_INSTRUCTION(LoadNamedGeneric)
@@ -6450,7 +6474,7 @@ class ArrayInstructionInterface {
virtual ElementsKind elements_kind() const = 0;
// TryIncreaseBaseOffset returns false if overflow would result.
virtual bool TryIncreaseBaseOffset(uint32_t increase_by_value) = 0;
- virtual bool IsDehoisted() = 0;
+ virtual bool IsDehoisted() const = 0;
virtual void SetDehoisted(bool is_dehoisted) = 0;
virtual ~ArrayInstructionInterface() { }
@@ -6488,18 +6512,18 @@ class HLoadKeyed V8_FINAL
bool is_typed_elements() const {
return is_external() || is_fixed_typed_array();
}
- HValue* elements() { return OperandAt(0); }
- HValue* key() { return OperandAt(1); }
- HValue* dependency() {
+ HValue* elements() const { return OperandAt(0); }
+ HValue* key() const { return OperandAt(1); }
+ HValue* dependency() const {
ASSERT(HasDependency());
return OperandAt(2);
}
bool HasDependency() const { return OperandAt(0) != OperandAt(2); }
- uint32_t base_offset() { return BaseOffsetField::decode(bit_field_); }
+ uint32_t base_offset() const { return BaseOffsetField::decode(bit_field_); }
bool TryIncreaseBaseOffset(uint32_t increase_by_value);
HValue* GetKey() { return key(); }
void SetKey(HValue* key) { SetOperandAt(1, key); }
- bool IsDehoisted() { return IsDehoistedField::decode(bit_field_); }
+ bool IsDehoisted() const { return IsDehoistedField::decode(bit_field_); }
void SetDehoisted(bool is_dehoisted) {
bit_field_ = IsDehoistedField::update(bit_field_, is_dehoisted);
}
@@ -6530,7 +6554,7 @@ class HLoadKeyed V8_FINAL
return RequiredInputRepresentation(index);
}
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
bool UsesMustHandleHole() const;
bool AllUsesCanTreatHoleAsNaN() const;
@@ -6658,11 +6682,11 @@ class HLoadKeyedGeneric V8_FINAL : public HTemplateInstruction<3> {
public:
DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P2(HLoadKeyedGeneric, HValue*,
HValue*);
- HValue* object() { return OperandAt(0); }
- HValue* key() { return OperandAt(1); }
- HValue* context() { return OperandAt(2); }
+ HValue* object() const { return OperandAt(0); }
+ HValue* key() const { return OperandAt(1); }
+ HValue* context() const { return OperandAt(2); }
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE {
// tagged[tagged]
@@ -6741,7 +6765,7 @@ class HStoreNamedField V8_FINAL : public HTemplateInstruction<3> {
dominator_ = dominator;
return false;
}
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
HValue* object() const { return OperandAt(0); }
HValue* value() const { return OperandAt(1); }
@@ -6768,7 +6792,7 @@ class HStoreNamedField V8_FINAL : public HTemplateInstruction<3> {
SetChangesFlag(kMaps);
}
- bool NeedsWriteBarrier() {
+ bool NeedsWriteBarrier() const {
ASSERT(!field_representation().IsDouble() || !has_transition());
if (field_representation().IsDouble()) return false;
if (field_representation().IsSmi()) return false;
@@ -6845,13 +6869,13 @@ class HStoreNamedGeneric V8_FINAL : public HTemplateInstruction<3> {
DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P4(HStoreNamedGeneric, HValue*,
Handle<String>, HValue*,
StrictMode);
- HValue* object() { return OperandAt(0); }
- HValue* value() { return OperandAt(1); }
- HValue* context() { return OperandAt(2); }
- Handle<String> name() { return name_; }
- StrictMode strict_mode() { return strict_mode_; }
+ HValue* object() const { return OperandAt(0); }
+ HValue* value() const { return OperandAt(1); }
+ HValue* context() const { return OperandAt(2); }
+ Handle<String> name() const { return name_; }
+ StrictMode strict_mode() const { return strict_mode_; }
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE {
return Representation::Tagged();
@@ -6959,11 +6983,11 @@ class HStoreKeyed V8_FINAL
}
StoreFieldOrKeyedMode store_mode() const { return store_mode_; }
ElementsKind elements_kind() const { return elements_kind_; }
- uint32_t base_offset() { return base_offset_; }
+ uint32_t base_offset() const { return base_offset_; }
bool TryIncreaseBaseOffset(uint32_t increase_by_value);
HValue* GetKey() { return key(); }
void SetKey(HValue* key) { SetOperandAt(1, key); }
- bool IsDehoisted() { return is_dehoisted_; }
+ bool IsDehoisted() const { return is_dehoisted_; }
void SetDehoisted(bool is_dehoisted) { is_dehoisted_ = is_dehoisted; }
bool IsUninitialized() { return is_uninitialized_; }
void SetUninitialized(bool is_uninitialized) {
@@ -6998,7 +7022,7 @@ class HStoreKeyed V8_FINAL
bool NeedsCanonicalization();
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
DECLARE_CONCRETE_INSTRUCTION(StoreKeyed)
@@ -7063,18 +7087,18 @@ class HStoreKeyedGeneric V8_FINAL : public HTemplateInstruction<4> {
DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P4(HStoreKeyedGeneric, HValue*,
HValue*, HValue*, StrictMode);
- HValue* object() { return OperandAt(0); }
- HValue* key() { return OperandAt(1); }
- HValue* value() { return OperandAt(2); }
- HValue* context() { return OperandAt(3); }
- StrictMode strict_mode() { return strict_mode_; }
+ HValue* object() const { return OperandAt(0); }
+ HValue* key() const { return OperandAt(1); }
+ HValue* value() const { return OperandAt(2); }
+ HValue* context() const { return OperandAt(3); }
+ StrictMode strict_mode() const { return strict_mode_; }
virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE {
// tagged[tagged] = tagged
return Representation::Tagged();
}
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
DECLARE_CONCRETE_INSTRUCTION(StoreKeyedGeneric)
@@ -7111,14 +7135,14 @@ class HTransitionElementsKind V8_FINAL : public HTemplateInstruction<2> {
return Representation::Tagged();
}
- HValue* object() { return OperandAt(0); }
- HValue* context() { return OperandAt(1); }
- Unique<Map> original_map() { return original_map_; }
- Unique<Map> transitioned_map() { return transitioned_map_; }
- ElementsKind from_kind() { return from_kind_; }
- ElementsKind to_kind() { return to_kind_; }
+ HValue* object() const { return OperandAt(0); }
+ HValue* context() const { return OperandAt(1); }
+ Unique<Map> original_map() const { return original_map_; }
+ Unique<Map> transitioned_map() const { return transitioned_map_; }
+ ElementsKind from_kind() const { return from_kind_; }
+ ElementsKind to_kind() const { return to_kind_; }
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
DECLARE_CONCRETE_INSTRUCTION(TransitionElementsKind)
@@ -7176,7 +7200,7 @@ class HStringAdd V8_FINAL : public HBinaryOperation {
return Representation::Tagged();
}
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
DECLARE_CONCRETE_INSTRUCTION(StringAdd)
@@ -7411,10 +7435,10 @@ class HTypeof V8_FINAL : public HTemplateInstruction<2> {
public:
DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P1(HTypeof, HValue*);
- HValue* context() { return OperandAt(0); }
- HValue* value() { return OperandAt(1); }
+ HValue* context() const { return OperandAt(0); }
+ HValue* value() const { return OperandAt(1); }
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE {
return Representation::Tagged();
@@ -7598,7 +7622,7 @@ class HCheckMapValue V8_FINAL : public HTemplateInstruction<2> {
return Representation::Tagged();
}
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
virtual HType CalculateInferredType() V8_OVERRIDE {
if (value()->type().IsHeapObject()) return value()->type();
@@ -7640,10 +7664,10 @@ class HForInPrepareMap V8_FINAL : public HTemplateInstruction<2> {
return Representation::Tagged();
}
- HValue* context() { return OperandAt(0); }
- HValue* enumerable() { return OperandAt(1); }
+ HValue* context() const { return OperandAt(0); }
+ HValue* enumerable() const { return OperandAt(1); }
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
virtual HType CalculateInferredType() V8_OVERRIDE {
return HType::Tagged();
@@ -7670,9 +7694,9 @@ class HForInCacheArray V8_FINAL : public HTemplateInstruction<2> {
return Representation::Tagged();
}
- HValue* enumerable() { return OperandAt(0); }
- HValue* map() { return OperandAt(1); }
- int idx() { return idx_; }
+ HValue* enumerable() const { return OperandAt(0); }
+ HValue* map() const { return OperandAt(1); }
+ int idx() const { return idx_; }
HForInCacheArray* index_cache() {
return index_cache_;
@@ -7682,7 +7706,7 @@ class HForInCacheArray V8_FINAL : public HTemplateInstruction<2> {
index_cache_ = index_cache;
}
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
virtual HType CalculateInferredType() V8_OVERRIDE {
return HType::Tagged();
@@ -7724,10 +7748,10 @@ class HLoadFieldByIndex V8_FINAL : public HTemplateInstruction<2> {
}
}
- HValue* object() { return OperandAt(0); }
- HValue* index() { return OperandAt(1); }
+ HValue* object() const { return OperandAt(0); }
+ HValue* index() const { return OperandAt(1); }
- virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
+ virtual OStream& PrintDataTo(OStream& os) const V8_OVERRIDE; // NOLINT
virtual HType CalculateInferredType() V8_OVERRIDE {
return HType::Tagged();
@@ -7764,15 +7788,15 @@ class HAllocateBlockContext: public HTemplateInstruction<2> {
public:
DECLARE_INSTRUCTION_FACTORY_P3(HAllocateBlockContext, HValue*,
HValue*, Handle<ScopeInfo>);
- HValue* context() { return OperandAt(0); }
- HValue* function() { return OperandAt(1); }
- Handle<ScopeInfo> scope_info() { return scope_info_; }
+ HValue* context() const { return OperandAt(0); }
+ HValue* function() const { return OperandAt(1); }
+ Handle<ScopeInfo> scope_info() const { return scope_info_; }
virtual Representation RequiredInputRepresentation(int index) {
return Representation::Tagged();
}
- virtual void PrintDataTo(StringStream* stream);
+ virtual OStream& PrintDataTo(OStream& os) const; // NOLINT
DECLARE_CONCRETE_INSTRUCTION(AllocateBlockContext)
« no previous file with comments | « src/hydrogen-gvn.cc ('k') | src/hydrogen-instructions.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698