Mercurial > hg > graal-jvmci-8
comparison graal/GraalCompiler/src/com/sun/c1x/value/FrameState.java @ 2768:43ffa0e47a46
Towards removing stateAfter on BlockEnd.
author | Thomas Wuerthinger <thomas@wuerthinger.net> |
---|---|
date | Mon, 23 May 2011 19:21:53 +0200 |
parents | 99912abb3ff7 |
children | dd6419f4bfe2 |
comparison
equal
deleted
inserted
replaced
2767:cc2b98e2b832 | 2768:43ffa0e47a46 |
---|---|
329 checkSize(other); | 329 checkSize(other); |
330 for (int i = 0; i < valuesSize(); i++) { | 330 for (int i = 0; i < valuesSize(); i++) { |
331 Value x = valueAt(i); | 331 Value x = valueAt(i); |
332 if (x != null) { | 332 if (x != null) { |
333 Value y = other.valueAt(i); | 333 Value y = other.valueAt(i); |
334 if (x != y) { | 334 if (x != y || ((x instanceof Phi) && ((Phi) x).block() == block)) { |
335 if (typeMismatch(x, y)) { | 335 if (typeMismatch(x, y)) { |
336 if (x instanceof Phi) { | 336 if (x instanceof Phi) { |
337 Phi phi = (Phi) x; | 337 Phi phi = (Phi) x; |
338 if (phi.block() == block) { | 338 if (phi.block() == block) { |
339 phi.makeDead(); | 339 phi.makeDead(); |
358 size--; | 358 size--; |
359 } | 359 } |
360 for (int j = 0; j < size; ++j) { | 360 for (int j = 0; j < size; ++j) { |
361 phi = phi.addInput(x); | 361 phi = phi.addInput(x); |
362 } | 362 } |
363 phi = phi.addInput(y); | 363 phi = phi.addInput((x == y) ? phi : y); |
364 } else { | 364 } else { |
365 phi = phi.addInput(y); | 365 phi = phi.addInput((x == y) ? phi : y); |
366 } | 366 } |
367 if (originalPhi != phi) { | 367 /*if (originalPhi != phi) { |
368 for (int j = 0; j < other.localsSize() + other.stackSize(); ++j) { | 368 for (int j = 0; j < other.localsSize() + other.stackSize(); ++j) { |
369 if (other.valueAt(j) == originalPhi) { | 369 if (other.valueAt(j) == originalPhi) { |
370 other.setValueAt(j, phi); | 370 other.setValueAt(j, phi); |
371 } | 371 } |
372 } | 372 } |
373 } | 373 }*/ |
374 } | 374 |
375 //assert phi.valueCount() == block.predecessors().size() + (blockAppended ? 0 : 1) : "valueCount=" + phi.valueCount() + " predSize= " + block.predecessors().size(); | |
376 } | |
375 } | 377 } |
376 } | 378 } |
377 } | 379 } |
378 | 380 |
379 | 381 |