diff src/share/vm/opto/matcher.cpp @ 14439:50fdb38839eb

8028515: PPPC64 (part 113.2): opto: Introduce LoadFence/StoreFence. Summary: Use new nodes for loadFence/storeFence intrinsics in C2. Reviewed-by: kvn, dholmes
author goetz
date Tue, 26 Nov 2013 18:38:19 -0800
parents da862781b584
children 41b780b43b74
line wrap: on
line diff
--- a/src/share/vm/opto/matcher.cpp	Fri Nov 22 12:14:09 2013 -0800
+++ b/src/share/vm/opto/matcher.cpp	Tue Nov 26 18:38:19 2013 -0800
@@ -2333,7 +2333,7 @@
 bool Matcher::post_store_load_barrier(const Node* vmb) {
   Compile* C = Compile::current();
   assert(vmb->is_MemBar(), "");
-  assert(vmb->Opcode() != Op_MemBarAcquire, "");
+  assert(vmb->Opcode() != Op_MemBarAcquire && vmb->Opcode() != Op_LoadFence, "");
   const MemBarNode* membar = vmb->as_MemBar();
 
   // Get the Ideal Proj node, ctrl, that can be used to iterate forward
@@ -2378,7 +2378,7 @@
     if (x->is_MemBar()) {
       // We must retain this membar if there is an upcoming volatile
       // load, which will be followed by acquire membar.
-      if (xop == Op_MemBarAcquire) {
+      if (xop == Op_MemBarAcquire || xop == Op_LoadFence) {
         return false;
       } else {
         // For other kinds of barriers, check by pretending we