JDK-6537990 : Optimize multibytes NOP generation and loops alignment
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 7
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • OS: solaris_10
  • CPU: x86
  • Submitted: 2007-03-23
  • Updated: 2010-04-03
  • Resolved: 2007-05-24
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 6 JDK 7 Other
6u4Fixed 7Fixed hs10Fixed
Use '0F 01' NOP instructions.
Avoid generation of several NOPs for loop alignment if possible.

SUGGESTED FIX Webrev: http://prt-web.sfbay.sun.com/net/prt-archiver.sfbay/data/archived_workspaces/main/c2_baseline/2007/20070501160332.kvn.6537990/workspace/webrevs/webrev-2007.05.01/index.html Generate "address" NOPs under the product flag UseAddressNop, for new Intel cpus the default is true otherwise it is false. Added few C2 flags to optimize loop alignment padding generation: MaxLoopPad - default (OptoLoopAlignment-1), for Intel == 11 (max NOP size), generate padding if it is <= MaxLoopPad. NumberOfLoopInstrToAlign - default 4, generate padding if it is less then size of first NumberOfLoopInstrToAlign loop instructions.

EVALUATION Using '0F 01' NOP instruction allow to reduce the number of nop instructions.