RVM
  1. RVM
  2. RVM-329

Specialize IA32 assembler for lister vs. non-lister

    Details

    • Type: Improvement Improvement
    • Status: Closed Closed
    • Priority: Minor Minor
    • Resolution: Won't Fix
    • Affects Version/s: None
    • Fix Version/s: 3.0
    • Labels:
      None
    • Number of attachments :
      0

      Description

      Suggestion by Ian in a commit message that I think could be a good one, so don't want to forget.....

      We could make the IA32 assembler into two classes: a superclass that doesn't print anything, and a subclass that does. In the listing version, each of the emit methods is overridden to call super, then do the print.

      The downside is we are very likely to take a virtual call on each emit method (although the opt compiler could probably still do some guarded inlining). The plus is that we eliminate all the lister checks and calls in the superclass

      Not clear if this would actually be a performance win, since the "real" virtual call on the emit methods might out-weigh the gain from specializing away the lister checks, but it might be worth prototyping.

        Activity

        David Grove made changes -
        Field Original Value New Value
        Fix Version/s 1000 [ 14184 ]
        Hide
        Ian Rogers added a comment -

        Fairly sure this isn't a performance win. What would be better is a IA32 disassembler that could be optional called as part of the assembler generation loop, then two variants of the loop can be created with and without the disassembler.

        Show
        Ian Rogers added a comment - Fairly sure this isn't a performance win. What would be better is a IA32 disassembler that could be optional called as part of the assembler generation loop, then two variants of the loop can be created with and without the disassembler.
        Ian Rogers made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Assignee Ian Rogers [ ianrogers ]
        Resolution Won't Fix [ 2 ]
        Fix Version/s 1000 [ 14184 ]
        Fix Version/s 3.0 [ 13530 ]
        Ian Rogers made changes -
        Status Resolved [ 5 ] Closed [ 6 ]

          People

          • Assignee:
            Ian Rogers
            Reporter:
            David Grove
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: