-
Enhancement
-
Resolution: Fixed
-
P4
-
17, 20, 21
-
b23
-
x86
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8312042 | 17.0.9 | Paul Hohensee | P4 | Resolved | Fixed | b01 |
The following pattern in MD5 intrinsic is inefficient. The updated value is written to the memory and immediately read back from the memory.
loop0:
movl(rax, Address(rdi, 0)); // 4) read the value at the address stored in rdi (The value was just written to the memory.)
// loop body
addl(Address(rdi, 0), rax); // 1) read the value at the address stored in rdi, 2) add the value of rax, 3) write back to the address stored in rdi
// jump to loop0
loop0:
movl(rax, Address(rdi, 0)); // 4) read the value at the address stored in rdi (The value was just written to the memory.)
// loop body
addl(Address(rdi, 0), rax); // 1) read the value at the address stored in rdi, 2) add the value of rax, 3) write back to the address stored in rdi
// jump to loop0
- backported by
-
JDK-8312042 Reduce memory reads in x86 MD5 intrinsic
- Resolved