Mercurial > hg > truffle
comparison src/share/vm/opto/type.cpp @ 14495:cd5d10655495
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 | 45467c53f178 |
children | 484a359ff649 |
comparison
equal
deleted
inserted
replaced
14494:5292439ef895 | 14495:cd5d10655495 |
---|---|
304 TypeInt::SHORT = TypeInt::make(-32768,32767, WidenMin); // Java shorts | 304 TypeInt::SHORT = TypeInt::make(-32768,32767, WidenMin); // Java shorts |
305 TypeInt::POS = TypeInt::make(0,max_jint, WidenMin); // Non-neg values | 305 TypeInt::POS = TypeInt::make(0,max_jint, WidenMin); // Non-neg values |
306 TypeInt::POS1 = TypeInt::make(1,max_jint, WidenMin); // Positive values | 306 TypeInt::POS1 = TypeInt::make(1,max_jint, WidenMin); // Positive values |
307 TypeInt::INT = TypeInt::make(min_jint,max_jint, WidenMax); // 32-bit integers | 307 TypeInt::INT = TypeInt::make(min_jint,max_jint, WidenMax); // 32-bit integers |
308 TypeInt::SYMINT = TypeInt::make(-max_jint,max_jint,WidenMin); // symmetric range | 308 TypeInt::SYMINT = TypeInt::make(-max_jint,max_jint,WidenMin); // symmetric range |
309 TypeInt::TYPE_DOMAIN = TypeInt::INT; | |
309 // CmpL is overloaded both as the bytecode computation returning | 310 // CmpL is overloaded both as the bytecode computation returning |
310 // a trinary (-1,0,+1) integer result AND as an efficient long | 311 // a trinary (-1,0,+1) integer result AND as an efficient long |
311 // compare returning optimizer ideal-type flags. | 312 // compare returning optimizer ideal-type flags. |
312 assert( TypeInt::CC_LT == TypeInt::MINUS_1, "types must match for CmpL to work" ); | 313 assert( TypeInt::CC_LT == TypeInt::MINUS_1, "types must match for CmpL to work" ); |
313 assert( TypeInt::CC_GT == TypeInt::ONE, "types must match for CmpL to work" ); | 314 assert( TypeInt::CC_GT == TypeInt::ONE, "types must match for CmpL to work" ); |
320 TypeLong::ONE = TypeLong::make( 1); // 1 | 321 TypeLong::ONE = TypeLong::make( 1); // 1 |
321 TypeLong::POS = TypeLong::make(0,max_jlong, WidenMin); // Non-neg values | 322 TypeLong::POS = TypeLong::make(0,max_jlong, WidenMin); // Non-neg values |
322 TypeLong::LONG = TypeLong::make(min_jlong,max_jlong,WidenMax); // 64-bit integers | 323 TypeLong::LONG = TypeLong::make(min_jlong,max_jlong,WidenMax); // 64-bit integers |
323 TypeLong::INT = TypeLong::make((jlong)min_jint,(jlong)max_jint,WidenMin); | 324 TypeLong::INT = TypeLong::make((jlong)min_jint,(jlong)max_jint,WidenMin); |
324 TypeLong::UINT = TypeLong::make(0,(jlong)max_juint,WidenMin); | 325 TypeLong::UINT = TypeLong::make(0,(jlong)max_juint,WidenMin); |
326 TypeLong::TYPE_DOMAIN = TypeLong::LONG; | |
325 | 327 |
326 const Type **fboth =(const Type**)shared_type_arena->Amalloc_4(2*sizeof(Type*)); | 328 const Type **fboth =(const Type**)shared_type_arena->Amalloc_4(2*sizeof(Type*)); |
327 fboth[0] = Type::CONTROL; | 329 fboth[0] = Type::CONTROL; |
328 fboth[1] = Type::CONTROL; | 330 fboth[1] = Type::CONTROL; |
329 TypeTuple::IFBOTH = TypeTuple::make( 2, fboth ); | 331 TypeTuple::IFBOTH = TypeTuple::make( 2, fboth ); |
1159 const TypeInt *TypeInt::SHORT; // Java shorts, -32768-32767 | 1161 const TypeInt *TypeInt::SHORT; // Java shorts, -32768-32767 |
1160 const TypeInt *TypeInt::POS; // Positive 32-bit integers or zero | 1162 const TypeInt *TypeInt::POS; // Positive 32-bit integers or zero |
1161 const TypeInt *TypeInt::POS1; // Positive 32-bit integers | 1163 const TypeInt *TypeInt::POS1; // Positive 32-bit integers |
1162 const TypeInt *TypeInt::INT; // 32-bit integers | 1164 const TypeInt *TypeInt::INT; // 32-bit integers |
1163 const TypeInt *TypeInt::SYMINT; // symmetric range [-max_jint..max_jint] | 1165 const TypeInt *TypeInt::SYMINT; // symmetric range [-max_jint..max_jint] |
1166 const TypeInt *TypeInt::TYPE_DOMAIN; // alias for TypeInt::INT | |
1164 | 1167 |
1165 //------------------------------TypeInt---------------------------------------- | 1168 //------------------------------TypeInt---------------------------------------- |
1166 TypeInt::TypeInt( jint lo, jint hi, int w ) : Type(Int), _lo(lo), _hi(hi), _widen(w) { | 1169 TypeInt::TypeInt( jint lo, jint hi, int w ) : Type(Int), _lo(lo), _hi(hi), _widen(w) { |
1167 } | 1170 } |
1168 | 1171 |
1416 const TypeLong *TypeLong::ONE; // 1 | 1419 const TypeLong *TypeLong::ONE; // 1 |
1417 const TypeLong *TypeLong::POS; // >=0 | 1420 const TypeLong *TypeLong::POS; // >=0 |
1418 const TypeLong *TypeLong::LONG; // 64-bit integers | 1421 const TypeLong *TypeLong::LONG; // 64-bit integers |
1419 const TypeLong *TypeLong::INT; // 32-bit subrange | 1422 const TypeLong *TypeLong::INT; // 32-bit subrange |
1420 const TypeLong *TypeLong::UINT; // 32-bit unsigned subrange | 1423 const TypeLong *TypeLong::UINT; // 32-bit unsigned subrange |
1424 const TypeLong *TypeLong::TYPE_DOMAIN; // alias for TypeLong::LONG | |
1421 | 1425 |
1422 //------------------------------TypeLong--------------------------------------- | 1426 //------------------------------TypeLong--------------------------------------- |
1423 TypeLong::TypeLong( jlong lo, jlong hi, int w ) : Type(Long), _lo(lo), _hi(hi), _widen(w) { | 1427 TypeLong::TypeLong( jlong lo, jlong hi, int w ) : Type(Long), _lo(lo), _hi(hi), _widen(w) { |
1424 } | 1428 } |
1425 | 1429 |