Commit 10441e95 authored by sanjoy@chromium.org's avatar sanjoy@chromium.org

Don't actually create Handles for the constant hole, the true value and the...

Don't actually create Handles for the constant hole, the true value and the false value.  This is required to have some parts of Crankshaft run without creating Handles.

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10699052

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11980 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent b4b10c01
...@@ -568,9 +568,9 @@ void HGraph::Verify(bool do_full_verify) const { ...@@ -568,9 +568,9 @@ void HGraph::Verify(bool do_full_verify) const {
HConstant* HGraph::GetConstant(SetOncePointer<HConstant>* pointer, HConstant* HGraph::GetConstant(SetOncePointer<HConstant>* pointer,
Object* value) { Handle<Object> value) {
if (!pointer->is_set()) { if (!pointer->is_set()) {
HConstant* constant = new(zone()) HConstant(Handle<Object>(value), HConstant* constant = new(zone()) HConstant(value,
Representation::Tagged()); Representation::Tagged());
constant->InsertAfter(GetConstantUndefined()); constant->InsertAfter(GetConstantUndefined());
pointer->set(constant); pointer->set(constant);
...@@ -580,27 +580,27 @@ HConstant* HGraph::GetConstant(SetOncePointer<HConstant>* pointer, ...@@ -580,27 +580,27 @@ HConstant* HGraph::GetConstant(SetOncePointer<HConstant>* pointer,
HConstant* HGraph::GetConstant1() { HConstant* HGraph::GetConstant1() {
return GetConstant(&constant_1_, Smi::FromInt(1)); return GetConstant(&constant_1_, Handle<Smi>(Smi::FromInt(1)));
} }
HConstant* HGraph::GetConstantMinus1() { HConstant* HGraph::GetConstantMinus1() {
return GetConstant(&constant_minus1_, Smi::FromInt(-1)); return GetConstant(&constant_minus1_, Handle<Smi>(Smi::FromInt(-1)));
} }
HConstant* HGraph::GetConstantTrue() { HConstant* HGraph::GetConstantTrue() {
return GetConstant(&constant_true_, isolate()->heap()->true_value()); return GetConstant(&constant_true_, isolate()->factory()->true_value());
} }
HConstant* HGraph::GetConstantFalse() { HConstant* HGraph::GetConstantFalse() {
return GetConstant(&constant_false_, isolate()->heap()->false_value()); return GetConstant(&constant_false_, isolate()->factory()->false_value());
} }
HConstant* HGraph::GetConstantHole() { HConstant* HGraph::GetConstantHole() {
return GetConstant(&constant_hole_, isolate()->heap()->the_hole_value()); return GetConstant(&constant_hole_, isolate()->factory()->the_hole_value());
} }
......
...@@ -347,7 +347,7 @@ class HGraph: public ZoneObject { ...@@ -347,7 +347,7 @@ class HGraph: public ZoneObject {
private: private:
HConstant* GetConstant(SetOncePointer<HConstant>* pointer, HConstant* GetConstant(SetOncePointer<HConstant>* pointer,
Object* value); Handle<Object> value);
void MarkAsDeoptimizingRecursively(HBasicBlock* block); void MarkAsDeoptimizingRecursively(HBasicBlock* block);
void InsertTypeConversions(HInstruction* instr); void InsertTypeConversions(HInstruction* instr);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment