| Index: src/hydrogen-instructions.h
|
| diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h
|
| index 367d2b32fb037369b1ae58db8d41e22c8cee2b66..aa513e707b235c8a20a63a55acacfa78b6189e82 100644
|
| --- a/src/hydrogen-instructions.h
|
| +++ b/src/hydrogen-instructions.h
|
| @@ -770,6 +770,14 @@ class HValue: public ZoneObject {
|
|
|
| const char* Mnemonic() const;
|
|
|
| + // Type information helpers.
|
| + bool HasMonomorphicJSObjectType();
|
| +
|
| + // TODO(mstarzinger): For now instructions can override this function to
|
| + // specify statically known types, once HType can convey more information
|
| + // it should be based on the HType.
|
| + virtual Handle<Map> GetMonomorphicJSObjectMap() { return Handle<Map>(); }
|
| +
|
| // Updated the inferred type of this instruction and returns true if
|
| // it has changed.
|
| bool UpdateInferredType();
|
| @@ -5019,6 +5027,10 @@ class HAllocateObject: public HTemplateInstruction<1> {
|
| virtual Representation RequiredInputRepresentation(int index) {
|
| return Representation::Tagged();
|
| }
|
| + virtual Handle<Map> GetMonomorphicJSObjectMap() {
|
| + ASSERT(constructor()->has_initial_map());
|
| + return Handle<Map>(constructor()->initial_map());
|
| + }
|
| virtual HType CalculateInferredType();
|
|
|
| DECLARE_CONCRETE_INSTRUCTION(AllocateObject)
|
| @@ -5086,6 +5098,9 @@ class HFastLiteral: public HMaterializedLiteral<1> {
|
| virtual Representation RequiredInputRepresentation(int index) {
|
| return Representation::Tagged();
|
| }
|
| + virtual Handle<Map> GetMonomorphicJSObjectMap() {
|
| + return Handle<Map>(boilerplate()->map());
|
| + }
|
| virtual HType CalculateInferredType();
|
|
|
| DECLARE_CONCRETE_INSTRUCTION(FastLiteral)
|
|
|