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

Generate different JIT code for different CPUs

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Fixed
    • Icon: P4 P4
    • 1.4.0
    • 1.3.0
    • hotspot
    • 1.4
    • x86
    • windows_nt



      Name: rmT116609 Date: 01/17/2001


      java version 1.2.2

      In Intel CPU land, we've got (right now)
      three basically different microarchitectures
      of the x86 instruction set floating around:
          Pentium
          PentiumPro, -II, -III
          Pentium-IV
      (and 386, 486, but I don't think it is worth
      worrying about them)

      What is interesting is that each of these families
      has different suggested optimal assembly language
      outputs for what would be logically the same high
      level language constructs. This is _very_ apparant
      with the floating point instructions for the Pentium-IV,
      but seems to be true when comparing even integer
      instructions between the different families.

      It is difficult for statically compiled languages
      (C, C++) to support all of these CPUs optimally.
      A JIT, however, should be able to do so fairly easily
      ... on program boot, the JVM can check the CPU and then
      load the appropriate JIT DLL based on which CPU is
      detected.

      This should result is better performance for Java applications
      at the cost of more debugging for Sun (because there are
      now three JIT backends to debug instead of one). Has
      Sun considered doing this? Is it already happening and
      the HotSpot whitepapers are just quite about it?
      (Review ID: 115273)
      ======================================================================

            sgoldman Steve Goldman (Inactive)
            rmandalasunw Ranjith Mandala (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: