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

Improve lazy inline expansion for VectorAPIs

XMLWordPrintable

      - Currently all the vector API are lazily inline expanded during optimization stage. In case inline expansion pre-conditions are not met then C2 emits a direct call instruction to the callee.
      - At this stage we also loose the opportunity to perform procedure in-lining since C2 does not have call tree information (InlineTree), most general cause for inline expansion failure is unsupported vector size.
      - Currently C2Compiler::is_intrinsics_supported routine called during parsing makes a check based on the Ideal Opcode and is thus restrictive in nature, for VectorAPI intrinsification it just checks EnableVectorSupport flag.
      - Almost all the VectorSupport.* routines (C2 compiler entry points) are passed lane type and lane count information which can be used to compute the vector size. In case vector size for a SPECIES is not supported by the target then C2 can allow regular procedure in-lining instead of deferred inline expansion.
      - Argument positions of lane count and lane types are not consistent across various VectorSupport routines. A lookup table recording argument position corresponding to an intrinsic ID can be used to counter this problem.

            jbhateja Jatin Bhateja
            jbhateja Jatin Bhateja
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: