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

Fixing bugs in detecting memory alignments in SuperWord

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P5 P5
    • 9
    • 9
    • hotspot
    • None
    • b76
    • x86
    • generic

        Fixing bugs in detecting memory alignments in SuperWord:
        SWPointer::scaled_iv_plus_offset (fixing here a bug in detection of "scale"),
        SWPointer::offset_plus_k (fixing here a bug in detection of "invariant"),

        Add tracing output to the code that deal with memory alignment. The following routines are traceable:

        SWPointer::scaled_iv_plus_offset
        SWPointer::offset_plus_k
        SWPointer::scaled_iv,
        WPointer::SWPointer,
        SuperWord::memory_alignment
         
        Tracing is done only for NOT_PRODUCT. Currently tracing is controlled by VectorizeDebug:
         
        #ifndef PRODUCT
          if (_phase->C->method() != NULL) {
               _phase->C->method()->has_option_value("VectorizeDebug", _vector_loop_debug);
          }
        #endif
         
        And VectorizeDebug may take any combination (bitwise OR) of the following values:
        bool is_trace_alignment() { return (_vector_loop_debug & 2) > 0; }
        bool is_trace_mem_slice() { return (_vector_loop_debug & 4) > 0; }
        bool is_trace_loop() { return (_vector_loop_debug & 8) > 0; }
        bool is_trace_adjacent() { return (_vector_loop_debug & 16) > 0; }

              kvn Vladimir Kozlov
              kvn Vladimir Kozlov
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: