mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-18 01:54:47 +02:00
8238812: assert(false) failed: bad AD file
Reviewed-by: thartmann, chagedorn, roland
This commit is contained in:
parent
b2a2ddff44
commit
4b5be40ab9
4 changed files with 208 additions and 10 deletions
|
@ -4161,10 +4161,10 @@ Node* Compile::conv_I2X_index(PhaseGVN* phase, Node* idx, const TypeInt* sizetyp
|
|||
}
|
||||
|
||||
// Convert integer value to a narrowed long type dependent on ctrl (for example, a range check)
|
||||
Node* Compile::constrained_convI2L(PhaseGVN* phase, Node* value, const TypeInt* itype, Node* ctrl) {
|
||||
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, false, true /* range check dependency */);
|
||||
value = new CastIINode(value, itype, carry_dependency, 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