Commit 1e660684 authored by bmeurer@chromium.org's avatar bmeurer@chromium.org

Don't create dummy uses for control dependencies.

R=svenpanne@chromium.org

Review URL: https://codereview.chromium.org/149513002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18900 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent 5bf5849f
...@@ -847,10 +847,12 @@ void LChunkBuilder::VisitInstruction(HInstruction* current) { ...@@ -847,10 +847,12 @@ void LChunkBuilder::VisitInstruction(HInstruction* current) {
if (current->OperandCount() == 0) { if (current->OperandCount() == 0) {
instr = DefineAsRegister(new(zone()) LDummy()); instr = DefineAsRegister(new(zone()) LDummy());
} else { } else {
ASSERT(!current->OperandAt(0)->IsControlInstruction());
instr = DefineAsRegister(new(zone()) instr = DefineAsRegister(new(zone())
LDummyUse(UseAny(current->OperandAt(0)))); LDummyUse(UseAny(current->OperandAt(0))));
} }
for (int i = 1; i < current->OperandCount(); ++i) { for (int i = 1; i < current->OperandCount(); ++i) {
if (current->OperandAt(i)->IsControlInstruction()) continue;
LInstruction* dummy = LInstruction* dummy =
new(zone()) LDummyUse(UseAny(current->OperandAt(i))); new(zone()) LDummyUse(UseAny(current->OperandAt(i)));
dummy->set_hydrogen_value(current); dummy->set_hydrogen_value(current);
......
...@@ -911,10 +911,12 @@ void LChunkBuilder::VisitInstruction(HInstruction* current) { ...@@ -911,10 +911,12 @@ void LChunkBuilder::VisitInstruction(HInstruction* current) {
if (current->OperandCount() == 0) { if (current->OperandCount() == 0) {
instr = DefineAsRegister(new(zone()) LDummy()); instr = DefineAsRegister(new(zone()) LDummy());
} else { } else {
ASSERT(!current->OperandAt(0)->IsControlInstruction());
instr = DefineAsRegister(new(zone()) instr = DefineAsRegister(new(zone())
LDummyUse(UseAny(current->OperandAt(0)))); LDummyUse(UseAny(current->OperandAt(0))));
} }
for (int i = 1; i < current->OperandCount(); ++i) { for (int i = 1; i < current->OperandCount(); ++i) {
if (current->OperandAt(i)->IsControlInstruction()) continue;
LInstruction* dummy = LInstruction* dummy =
new(zone()) LDummyUse(UseAny(current->OperandAt(i))); new(zone()) LDummyUse(UseAny(current->OperandAt(i)));
dummy->set_hydrogen_value(current); dummy->set_hydrogen_value(current);
......
...@@ -855,10 +855,12 @@ void LChunkBuilder::VisitInstruction(HInstruction* current) { ...@@ -855,10 +855,12 @@ void LChunkBuilder::VisitInstruction(HInstruction* current) {
if (current->OperandCount() == 0) { if (current->OperandCount() == 0) {
instr = DefineAsRegister(new(zone()) LDummy()); instr = DefineAsRegister(new(zone()) LDummy());
} else { } else {
ASSERT(!current->OperandAt(0)->IsControlInstruction());
instr = DefineAsRegister(new(zone()) instr = DefineAsRegister(new(zone())
LDummyUse(UseAny(current->OperandAt(0)))); LDummyUse(UseAny(current->OperandAt(0))));
} }
for (int i = 1; i < current->OperandCount(); ++i) { for (int i = 1; i < current->OperandCount(); ++i) {
if (current->OperandAt(i)->IsControlInstruction()) continue;
LInstruction* dummy = LInstruction* dummy =
new(zone()) LDummyUse(UseAny(current->OperandAt(i))); new(zone()) LDummyUse(UseAny(current->OperandAt(i)));
dummy->set_hydrogen_value(current); dummy->set_hydrogen_value(current);
......
...@@ -857,10 +857,12 @@ void LChunkBuilder::VisitInstruction(HInstruction* current) { ...@@ -857,10 +857,12 @@ void LChunkBuilder::VisitInstruction(HInstruction* current) {
if (current->OperandCount() == 0) { if (current->OperandCount() == 0) {
instr = DefineAsRegister(new(zone()) LDummy()); instr = DefineAsRegister(new(zone()) LDummy());
} else { } else {
ASSERT(!current->OperandAt(0)->IsControlInstruction());
instr = DefineAsRegister(new(zone()) instr = DefineAsRegister(new(zone())
LDummyUse(UseAny(current->OperandAt(0)))); LDummyUse(UseAny(current->OperandAt(0))));
} }
for (int i = 1; i < current->OperandCount(); ++i) { for (int i = 1; i < current->OperandCount(); ++i) {
if (current->OperandAt(i)->IsControlInstruction()) continue;
LInstruction* dummy = LInstruction* dummy =
new(zone()) LDummyUse(UseAny(current->OperandAt(i))); new(zone()) LDummyUse(UseAny(current->OperandAt(i)));
dummy->set_hydrogen_value(current); dummy->set_hydrogen_value(current);
......
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