Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8135626 | emb-9 | Vladimir Kozlov | P5 | Resolved | Fixed | team |
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; }
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; }
- backported by
-
JDK-8135626 Fixing bugs in detecting memory alignments in SuperWord
-
- Resolved
-