Reviewers: fschneider,
Message:
It appears that this instruction erroneously reported DependsOnCalls,
ChangesInobjectFields, DependsOnInobjectFields.
I don't think there was a correctness issue, because GVN wasn't actually
enabled
for this instruction. It did inhibit GVN for inobject fields.
Description:
Clean up Hydrogen's HLoadFunctionPrototype.
This instruction was setting an incorrect collection of Changes/Depends
flags.
Please review this at http://codereview.chromium.org/6399002/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files:
M src/hydrogen-instructions.h
Index: src/hydrogen-instructions.h
diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h
index
d57655ab7934726431e52b84666b90737c3497be..ff68bc2887f540c5f85d1842773aba4270ed147b
100644
--- a/src/hydrogen-instructions.h
+++ b/src/hydrogen-instructions.h
@@ -133,10 +133,9 @@ class LChunkBuilder;
// HFixedArrayLength
// HJSArrayLength
// HLoadElements
-// HTypeofIs
+// HLoadFunctionPrototype
// HLoadNamedField
// HLoadNamedGeneric
-// HLoadFunctionPrototype
// HPushArgument
// HStringLength
// HTypeof
@@ -148,6 +147,7 @@ class LChunkBuilder;
// HIsNull
// HIsObject
// HIsSmi
+// HTypeofIs
// HValueOf
// HUnknownOSRValue
// HPhi
@@ -224,12 +224,12 @@ class LChunkBuilder;
V(LeaveInlined) \
V(LoadContextSlot) \
V(LoadElements) \
+ V(LoadFunctionPrototype) \
V(LoadGlobal) \
V(LoadKeyedFastElement) \
V(LoadKeyedGeneric) \
V(LoadNamedField) \
V(LoadNamedGeneric) \
- V(LoadFunctionPrototype) \
V(Mod) \
V(Mul) \
V(ObjectLiteral) \
@@ -268,7 +268,6 @@ class LChunkBuilder;
V(GlobalVars) \
V(Maps) \
V(ArrayLengths) \
- V(FunctionPrototypes) \
V(OsrEntries)
#define DECLARE_INSTRUCTION(type) \
@@ -2732,7 +2731,8 @@ class HLoadFunctionPrototype: public HUnaryOperation {
explicit HLoadFunctionPrototype(HValue* function)
: HUnaryOperation(function) {
set_representation(Representation::Tagged());
- SetFlagMask(kDependsOnFunctionPrototypes);
+ SetFlag(kUseGVN);
+ SetFlag(kDependsOnCalls);
}
HValue* function() const { return OperandAt(0); }
@@ -2742,9 +2742,6 @@ class HLoadFunctionPrototype: public HUnaryOperation {
}
DECLARE_CONCRETE_INSTRUCTION(LoadFunctionPrototype, "load_function_prototype")
-
- protected:
- virtual bool DataEquals(HValue* other) const { return true; }
};
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev