mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-18 01:54:47 +02:00
8267988: C2: assert(!addp->is_AddP() || addp->in(AddPNode::Base)->is_top() || addp->in(AddPNode::Base) == n->in(AddPNode::Base)) failed: Base pointers must match (addp 1301)
Reviewed-by: chagedorn, vlivanov, kvn
This commit is contained in:
parent
b18de6cf79
commit
4d545a1f86
8 changed files with 148 additions and 63 deletions
|
@ -4135,7 +4135,7 @@ Node* Compile::conv_I2X_index(PhaseGVN* phase, Node* idx, const TypeInt* sizetyp
|
|||
Node* Compile::constrained_convI2L(PhaseGVN* phase, Node* value, const TypeInt* itype, Node* ctrl, bool carry_dependency) {
|
||||
if (ctrl != NULL) {
|
||||
// Express control dependency by a CastII node with a narrow type.
|
||||
value = new CastIINode(value, itype, carry_dependency, true /* range check dependency */);
|
||||
value = new CastIINode(value, itype, carry_dependency ? ConstraintCastNode::StrongDependency : ConstraintCastNode::RegularDependency, true /* range check dependency */);
|
||||
// Make the CastII node dependent on the control input to prevent the narrowed ConvI2L
|
||||
// node from floating above the range check during loop optimizations. Otherwise, the
|
||||
// ConvI2L node may be eliminated independently of the range check, causing the data path
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue