src/share/vm/c1/c1_Canonicalizer.cpp

Print this page
rev 3419 : 7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement()
Summary: use shorter instruction sequences for atomic add and atomic exchange when possible.
Reviewed-by:


 913   Instruction* base = NULL;
 914   Instruction* index = NULL;
 915   int          log2_scale;
 916 
 917   if (match(x, &base, &index, &log2_scale)) {
 918     x->set_base(base);
 919     x->set_index(index);
 920     x->set_log2_scale(log2_scale);
 921     if (PrintUnsafeOptimization) {
 922       tty->print_cr("Canonicalizer: UnsafeRawOp id %d: base = id %d, index = id %d, log2_scale = %d",
 923                     x->id(), x->base()->id(), x->index()->id(), x->log2_scale());
 924     }
 925   }
 926 }
 927 
 928 void Canonicalizer::do_RoundFP(RoundFP* x) {}
 929 void Canonicalizer::do_UnsafeGetRaw(UnsafeGetRaw* x) { if (OptimizeUnsafes) do_UnsafeRawOp(x); }
 930 void Canonicalizer::do_UnsafePutRaw(UnsafePutRaw* x) { if (OptimizeUnsafes) do_UnsafeRawOp(x); }
 931 void Canonicalizer::do_UnsafeGetObject(UnsafeGetObject* x) {}
 932 void Canonicalizer::do_UnsafePutObject(UnsafePutObject* x) {}

 933 void Canonicalizer::do_UnsafePrefetchRead (UnsafePrefetchRead*  x) {}
 934 void Canonicalizer::do_UnsafePrefetchWrite(UnsafePrefetchWrite* x) {}
 935 void Canonicalizer::do_ProfileCall(ProfileCall* x) {}
 936 void Canonicalizer::do_ProfileInvoke(ProfileInvoke* x) {}
 937 void Canonicalizer::do_RuntimeCall(RuntimeCall* x) {}
 938 void Canonicalizer::do_MemBar(MemBar* x) {}


 913   Instruction* base = NULL;
 914   Instruction* index = NULL;
 915   int          log2_scale;
 916 
 917   if (match(x, &base, &index, &log2_scale)) {
 918     x->set_base(base);
 919     x->set_index(index);
 920     x->set_log2_scale(log2_scale);
 921     if (PrintUnsafeOptimization) {
 922       tty->print_cr("Canonicalizer: UnsafeRawOp id %d: base = id %d, index = id %d, log2_scale = %d",
 923                     x->id(), x->base()->id(), x->index()->id(), x->log2_scale());
 924     }
 925   }
 926 }
 927 
 928 void Canonicalizer::do_RoundFP(RoundFP* x) {}
 929 void Canonicalizer::do_UnsafeGetRaw(UnsafeGetRaw* x) { if (OptimizeUnsafes) do_UnsafeRawOp(x); }
 930 void Canonicalizer::do_UnsafePutRaw(UnsafePutRaw* x) { if (OptimizeUnsafes) do_UnsafeRawOp(x); }
 931 void Canonicalizer::do_UnsafeGetObject(UnsafeGetObject* x) {}
 932 void Canonicalizer::do_UnsafePutObject(UnsafePutObject* x) {}
 933 void Canonicalizer::do_UnsafeGetAndSetObject(UnsafeGetAndSetObject* x) {}
 934 void Canonicalizer::do_UnsafePrefetchRead (UnsafePrefetchRead*  x) {}
 935 void Canonicalizer::do_UnsafePrefetchWrite(UnsafePrefetchWrite* x) {}
 936 void Canonicalizer::do_ProfileCall(ProfileCall* x) {}
 937 void Canonicalizer::do_ProfileInvoke(ProfileInvoke* x) {}
 938 void Canonicalizer::do_RuntimeCall(RuntimeCall* x) {}
 939 void Canonicalizer::do_MemBar(MemBar* x) {}