Mercurial > hg > graal-compiler
comparison src/share/vm/opto/type.cpp @ 17726:085b304a1cc5
8027754: Enable loop optimizations for loops with MathExact inside
Reviewed-by: kvn, iveresov
author | rbackman |
---|---|
date | Thu, 23 Jan 2014 12:08:28 +0100 |
parents | de95063c0e34 |
children | 62825ea7e51f |
comparison
equal
deleted
inserted
replaced
17725:b4ce4e9eb97d | 17726:085b304a1cc5 |
---|---|
299 TypeInt::SHORT = TypeInt::make(-32768,32767, WidenMin); // Java shorts | 299 TypeInt::SHORT = TypeInt::make(-32768,32767, WidenMin); // Java shorts |
300 TypeInt::POS = TypeInt::make(0,max_jint, WidenMin); // Non-neg values | 300 TypeInt::POS = TypeInt::make(0,max_jint, WidenMin); // Non-neg values |
301 TypeInt::POS1 = TypeInt::make(1,max_jint, WidenMin); // Positive values | 301 TypeInt::POS1 = TypeInt::make(1,max_jint, WidenMin); // Positive values |
302 TypeInt::INT = TypeInt::make(min_jint,max_jint, WidenMax); // 32-bit integers | 302 TypeInt::INT = TypeInt::make(min_jint,max_jint, WidenMax); // 32-bit integers |
303 TypeInt::SYMINT = TypeInt::make(-max_jint,max_jint,WidenMin); // symmetric range | 303 TypeInt::SYMINT = TypeInt::make(-max_jint,max_jint,WidenMin); // symmetric range |
304 TypeInt::TYPE_DOMAIN = TypeInt::INT; | |
304 // CmpL is overloaded both as the bytecode computation returning | 305 // CmpL is overloaded both as the bytecode computation returning |
305 // a trinary (-1,0,+1) integer result AND as an efficient long | 306 // a trinary (-1,0,+1) integer result AND as an efficient long |
306 // compare returning optimizer ideal-type flags. | 307 // compare returning optimizer ideal-type flags. |
307 assert( TypeInt::CC_LT == TypeInt::MINUS_1, "types must match for CmpL to work" ); | 308 assert( TypeInt::CC_LT == TypeInt::MINUS_1, "types must match for CmpL to work" ); |
308 assert( TypeInt::CC_GT == TypeInt::ONE, "types must match for CmpL to work" ); | 309 assert( TypeInt::CC_GT == TypeInt::ONE, "types must match for CmpL to work" ); |
315 TypeLong::ONE = TypeLong::make( 1); // 1 | 316 TypeLong::ONE = TypeLong::make( 1); // 1 |
316 TypeLong::POS = TypeLong::make(0,max_jlong, WidenMin); // Non-neg values | 317 TypeLong::POS = TypeLong::make(0,max_jlong, WidenMin); // Non-neg values |
317 TypeLong::LONG = TypeLong::make(min_jlong,max_jlong,WidenMax); // 64-bit integers | 318 TypeLong::LONG = TypeLong::make(min_jlong,max_jlong,WidenMax); // 64-bit integers |
318 TypeLong::INT = TypeLong::make((jlong)min_jint,(jlong)max_jint,WidenMin); | 319 TypeLong::INT = TypeLong::make((jlong)min_jint,(jlong)max_jint,WidenMin); |
319 TypeLong::UINT = TypeLong::make(0,(jlong)max_juint,WidenMin); | 320 TypeLong::UINT = TypeLong::make(0,(jlong)max_juint,WidenMin); |
321 TypeLong::TYPE_DOMAIN = TypeLong::LONG; | |
320 | 322 |
321 const Type **fboth =(const Type**)shared_type_arena->Amalloc_4(2*sizeof(Type*)); | 323 const Type **fboth =(const Type**)shared_type_arena->Amalloc_4(2*sizeof(Type*)); |
322 fboth[0] = Type::CONTROL; | 324 fboth[0] = Type::CONTROL; |
323 fboth[1] = Type::CONTROL; | 325 fboth[1] = Type::CONTROL; |
324 TypeTuple::IFBOTH = TypeTuple::make( 2, fboth ); | 326 TypeTuple::IFBOTH = TypeTuple::make( 2, fboth ); |
1154 const TypeInt *TypeInt::SHORT; // Java shorts, -32768-32767 | 1156 const TypeInt *TypeInt::SHORT; // Java shorts, -32768-32767 |
1155 const TypeInt *TypeInt::POS; // Positive 32-bit integers or zero | 1157 const TypeInt *TypeInt::POS; // Positive 32-bit integers or zero |
1156 const TypeInt *TypeInt::POS1; // Positive 32-bit integers | 1158 const TypeInt *TypeInt::POS1; // Positive 32-bit integers |
1157 const TypeInt *TypeInt::INT; // 32-bit integers | 1159 const TypeInt *TypeInt::INT; // 32-bit integers |
1158 const TypeInt *TypeInt::SYMINT; // symmetric range [-max_jint..max_jint] | 1160 const TypeInt *TypeInt::SYMINT; // symmetric range [-max_jint..max_jint] |
1161 const TypeInt *TypeInt::TYPE_DOMAIN; // alias for TypeInt::INT | |
1159 | 1162 |
1160 //------------------------------TypeInt---------------------------------------- | 1163 //------------------------------TypeInt---------------------------------------- |
1161 TypeInt::TypeInt( jint lo, jint hi, int w ) : Type(Int), _lo(lo), _hi(hi), _widen(w) { | 1164 TypeInt::TypeInt( jint lo, jint hi, int w ) : Type(Int), _lo(lo), _hi(hi), _widen(w) { |
1162 } | 1165 } |
1163 | 1166 |
1411 const TypeLong *TypeLong::ONE; // 1 | 1414 const TypeLong *TypeLong::ONE; // 1 |
1412 const TypeLong *TypeLong::POS; // >=0 | 1415 const TypeLong *TypeLong::POS; // >=0 |
1413 const TypeLong *TypeLong::LONG; // 64-bit integers | 1416 const TypeLong *TypeLong::LONG; // 64-bit integers |
1414 const TypeLong *TypeLong::INT; // 32-bit subrange | 1417 const TypeLong *TypeLong::INT; // 32-bit subrange |
1415 const TypeLong *TypeLong::UINT; // 32-bit unsigned subrange | 1418 const TypeLong *TypeLong::UINT; // 32-bit unsigned subrange |
1419 const TypeLong *TypeLong::TYPE_DOMAIN; // alias for TypeLong::LONG | |
1416 | 1420 |
1417 //------------------------------TypeLong--------------------------------------- | 1421 //------------------------------TypeLong--------------------------------------- |
1418 TypeLong::TypeLong( jlong lo, jlong hi, int w ) : Type(Long), _lo(lo), _hi(hi), _widen(w) { | 1422 TypeLong::TypeLong( jlong lo, jlong hi, int w ) : Type(Long), _lo(lo), _hi(hi), _widen(w) { |
1419 } | 1423 } |
1420 | 1424 |