Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8266018

Shenandoah: fix an incorrect assert

    XMLWordPrintable

Details

    • gc
    • b22

    Backports

      Description

        This is on behalf of wattsun@tencent.com

        assert(alias = Compile::AliasIdxRaw, "following raw memory can't lead to a barrier");
        ```
        bool ShenandoahBarrierC2Support::is_dominator(Node* d_c, Node* n_c, Node* d, Node* n, PhaseIdealLoop* phase) {
          if (d_c != n_c) {
            return phase->is_dominator(d_c, n_c);
          }
          return is_dominator_same_ctrl(d_c, d, n, phase);
        }

        Node* next_mem(Node* mem, int alias) {
          Node* res = NULL;
          if (mem->is_Proj()) {
            res = mem->in(0);
          } else if (mem->is_SafePoint() || mem->is_MemBar()) {
            res = mem->in(TypeFunc::Memory);
          } else if (mem->is_Phi()) {
            res = mem->in(1);
          } else if (mem->is_MergeMem()) {
            res = mem->as_MergeMem()->memory_at(alias);
          } else if (mem->is_Store() || mem->is_LoadStore() || mem->is_ClearArray()) {
            assert(alias = Compile::AliasIdxRaw, "following raw memory can't lead to a barrier");
            res = mem->in(MemNode::Memory);
          } else {
        #ifdef ASSERT
            mem->dump();
        #endif
            ShouldNotReachHere();
          }
          return res;
        }
        ```

        Attachments

          Issue Links

            Activity

              People

                jiefu Jie Fu
                jiefu Jie Fu
                Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                  Created:
                  Updated:
                  Resolved: