5454
5555import com .oracle .truffle .api .Assumption ;
5656import com .oracle .truffle .api .impl .AbstractAssumption ;
57- import com .oracle .truffle .api .object .ExtLocations .AbstractObjectLocation ;
58- import com .oracle .truffle .api .object .ExtLocations .DoubleArrayLocation ;
59- import com .oracle .truffle .api .object .ExtLocations .DoubleFieldLocation ;
6057import com .oracle .truffle .api .object .ExtLocations .DoubleLocation ;
6158import com .oracle .truffle .api .object .ExtLocations .InstanceLocation ;
62- import com .oracle .truffle .api .object .ExtLocations .IntArrayLocation ;
63- import com .oracle .truffle .api .object .ExtLocations .IntFieldLocation ;
6459import com .oracle .truffle .api .object .ExtLocations .IntLocation ;
65- import com .oracle .truffle .api .object .ExtLocations .LongArrayLocation ;
66- import com .oracle .truffle .api .object .ExtLocations .LongFieldLocation ;
6760import com .oracle .truffle .api .object .ExtLocations .LongLocation ;
68- import com .oracle .truffle .api .object .ExtLocations .ObjectArrayLocation ;
69- import com .oracle .truffle .api .object .ExtLocations .ObjectFieldLocation ;
61+ import com .oracle .truffle .api .object .ExtLocations .ObjectLocation ;
7062import com .oracle .truffle .api .object .ExtLocations .TypeAssumption ;
7163
7264import sun .misc .Unsafe ;
@@ -94,13 +86,11 @@ protected Location moveLocation(Location oldLocation) {
9486 final boolean decorateFinal = false ;
9587 if (oldLocation instanceof IntLocation ) {
9688 return newIntLocation (decorateFinal , oldLocation , NO_VALUE );
97- } else if (oldLocation instanceof DoubleLocation ) {
98- return newDoubleLocation (decorateFinal , ((DoubleLocation ) oldLocation ).isImplicitCastIntToDouble (), oldLocation , NO_VALUE );
99- } else if (oldLocation instanceof LongLocation ) {
100- return newLongLocation (decorateFinal , ((LongLocation ) oldLocation ).isImplicitCastIntToLong (), oldLocation , NO_VALUE );
101- } else if (oldLocation instanceof ObjectFieldLocation ) {
102- return newObjectLocation (decorateFinal , oldLocation , NO_VALUE );
103- } else if (oldLocation instanceof ObjectArrayLocation ) {
89+ } else if (oldLocation instanceof DoubleLocation doubleLocation ) {
90+ return newDoubleLocation (decorateFinal , doubleLocation .isImplicitCastIntToDouble (), oldLocation , NO_VALUE );
91+ } else if (oldLocation instanceof LongLocation longLocation ) {
92+ return newLongLocation (decorateFinal , longLocation .isImplicitCastIntToLong (), oldLocation , NO_VALUE );
93+ } else if (oldLocation instanceof ObjectLocation ) {
10494 return newObjectLocation (decorateFinal , oldLocation , NO_VALUE );
10595 }
10696 assert oldLocation .isValue ();
@@ -130,29 +120,29 @@ private Location newObjectArrayLocation(boolean decorateFinal, Location oldLocat
130120 return advance (location );
131121 }
132122
133- private static ObjectFieldLocation newObjectFieldLocationWithAssumption (int index , FieldInfo fieldInfo ,
123+ private static ObjectLocation newObjectFieldLocationWithAssumption (int index , FieldInfo fieldInfo ,
134124 TypeAssumption initialTypeAssumption , AbstractAssumption initialFinalAssumption ) {
135- return new ObjectFieldLocation (index , fieldInfo , initialFinalAssumption , initialTypeAssumption );
125+ return ObjectLocation . createObjectFieldLocation (index , fieldInfo , initialFinalAssumption , initialTypeAssumption );
136126 }
137127
138- private static ObjectArrayLocation newObjectArrayLocationWithAssumption (int index ,
128+ private static ObjectLocation newObjectArrayLocationWithAssumption (int index ,
139129 TypeAssumption initialTypeAssumption , AbstractAssumption initialFinalAssumption ) {
140- return new ObjectArrayLocation (index , initialFinalAssumption , initialTypeAssumption );
130+ return ObjectLocation . createObjectArrayLocation (index , initialFinalAssumption , initialTypeAssumption );
141131 }
142132
143133 private static boolean allowTypeSpeculation (Location oldLocation , Object value ) {
144- return (value != NO_VALUE && oldLocation == null ) || (oldLocation instanceof AbstractObjectLocation );
134+ return (value != NO_VALUE && oldLocation == null ) || (oldLocation instanceof ObjectLocation );
145135 }
146136
147137 private static TypeAssumption getTypeAssumption (Location oldLocation , Object value ) {
148138 if (NewTypeSpeculation && allowTypeSpeculation (oldLocation , value )) {
149139 if (value != NO_VALUE && oldLocation == null ) {
150- if (AbstractObjectLocation . LAZY_ASSUMPTION ) {
140+ if (ObjectLocation . LAZY_TYPE_ASSUMPTION ) {
151141 return null ;
152142 }
153- return AbstractObjectLocation .createTypeAssumptionFromValue (value );
154- } else if (oldLocation instanceof AbstractObjectLocation ) {
155- return (( AbstractObjectLocation ) oldLocation ) .getTypeAssumption ();
143+ return ObjectLocation .createTypeAssumptionFromValue (value );
144+ } else if (oldLocation instanceof ObjectLocation objectLocation ) {
145+ return objectLocation .getTypeAssumption ();
156146 }
157147 }
158148 return TypeAssumption .ANY ;
@@ -165,8 +155,8 @@ private static AbstractAssumption getFinalAssumption(Location oldLocation, boole
165155 return null ;
166156 }
167157 return InstanceLocation .createFinalAssumption ();
168- } else if (oldLocation instanceof InstanceLocation ) {
169- return (( InstanceLocation ) oldLocation ) .getFinalAssumptionField ();
158+ } else if (oldLocation instanceof InstanceLocation instanceLocation ) {
159+ return instanceLocation .getFinalAssumptionField ();
170160 }
171161 }
172162 return (AbstractAssumption ) Assumption .NEVER_VALID ;
@@ -185,14 +175,14 @@ private Location newIntLocation(boolean decorateFinal, Location oldLocation, Obj
185175 if (fieldIndex >= 0 ) {
186176 FieldInfo fieldInfo = l .getPrimitiveField (fieldIndex );
187177 AbstractAssumption initialFinalAssumption = getFinalAssumption (oldLocation , decorateFinal );
188- Location location = new IntFieldLocation (fieldIndex , fieldInfo , initialFinalAssumption );
178+ Location location = IntLocation . createIntFieldLocation (fieldIndex , fieldInfo , initialFinalAssumption );
189179 return advance (location );
190180 }
191181 }
192182 if (l .hasPrimitiveExtensionArray ()) {
193183 int index = alignArrayIndex (primitiveArraySize , INT_ARRAY_SLOT_SIZE );
194184 AbstractAssumption initialFinalAssumption = getFinalAssumption (oldLocation , decorateFinal );
195- Location location = new IntArrayLocation (index , initialFinalAssumption );
185+ Location location = IntLocation . createIntArrayLocation (index , initialFinalAssumption );
196186 return advance (location );
197187 }
198188 }
@@ -207,14 +197,14 @@ private Location newDoubleLocation(boolean decorateFinal, boolean allowIntToDoub
207197 if (fieldIndex >= 0 ) {
208198 FieldInfo fieldInfo = l .getPrimitiveField (fieldIndex );
209199 AbstractAssumption initialFinalAssumption = getFinalAssumption (oldLocation , decorateFinal );
210- Location location = new DoubleFieldLocation (fieldIndex , fieldInfo , allowIntToDouble , initialFinalAssumption );
200+ Location location = DoubleLocation . createDoubleFieldLocation (fieldIndex , fieldInfo , allowIntToDouble , initialFinalAssumption );
211201 return advance (location );
212202 }
213203 }
214204 if (l .hasPrimitiveExtensionArray ()) {
215205 int index = alignArrayIndex (primitiveArraySize , DOUBLE_ARRAY_SLOT_SIZE );
216206 AbstractAssumption initialFinalAssumption = getFinalAssumption (oldLocation , decorateFinal );
217- Location location = new DoubleArrayLocation (index , allowIntToDouble , initialFinalAssumption );
207+ Location location = DoubleLocation . createDoubleArrayLocation (index , allowIntToDouble , initialFinalAssumption );
218208 return advance (location );
219209 }
220210 }
@@ -247,14 +237,14 @@ private Location newLongLocation(boolean decorateFinal, boolean allowIntToLong,
247237 if (fieldIndex >= 0 ) {
248238 FieldInfo fieldInfo = l .getPrimitiveField (fieldIndex );
249239 AbstractAssumption initialFinalAssumption = getFinalAssumption (oldLocation , decorateFinal );
250- Location location = new LongFieldLocation (fieldIndex , fieldInfo , allowIntToLong , initialFinalAssumption );
240+ Location location = LongLocation . createLongFieldLocation (fieldIndex , fieldInfo , allowIntToLong , initialFinalAssumption );
251241 return advance (location );
252242 }
253243 }
254244 if (l .hasPrimitiveExtensionArray ()) {
255245 int index = alignArrayIndex (primitiveArraySize , LONG_ARRAY_SLOT_SIZE );
256246 AbstractAssumption initialFinalAssumption = getFinalAssumption (oldLocation , decorateFinal );
257- Location location = new LongArrayLocation (index , allowIntToLong , initialFinalAssumption );
247+ Location location = LongLocation . createLongArrayLocation (index , allowIntToLong , initialFinalAssumption );
258248 return advance (location );
259249 }
260250 }
@@ -270,7 +260,7 @@ protected Location locationForValueUpcast(Object value, Location oldLocation, in
270260 }
271261
272262 // Object-typed locations should be able to store all values and therefore not reach here.
273- assert !(oldLocation instanceof AbstractObjectLocation ) : oldLocation ;
263+ assert !(oldLocation instanceof ObjectLocation ) : oldLocation ;
274264 final boolean decorateFinal = false ;
275265 Location newLocation = null ;
276266 // if shape is shared, transition to an untyped location directly
0 commit comments