Scheduling x86 dispatch windows

Quentin Neill quentin.neill.gnu@gmail.com
Fri Jun 11 02:48:00 GMT 2010


On Thu, Jun 10, 2010 at 5:40 PM, Daniel Jacobowitz <dan@codesourcery.com> wrote:
> On Thu, Jun 10, 2010 at 02:03:03PM -0600, Jeff Law wrote:
>> That adds quite a bit of complication to the compiler though --
>> getting the instruction lengths right (and thus proper packing &
>> alignment) can be extremely difficult.  I did some experiments with
>> this on a target with *fixed* instruction lengths a while back and
>> even though the port tried hard to get lengths right, it would
>> routinely miss something.  Ultimately I decided that it forcing the
>> compiler to know instruction lengths with a very high degree of
>> accuracy wasn't a sane thing to do.
>
> FWIW, my opinion (and I think Jakub has expressed a similar opinion
> and/or tool in the past) is that there is a sane way to do this: put
> assertions in the assembler output and have the assembler validate
> them.
>
> On the other hand, I'm not going to argue that it's a lot of work.
> --
> Daniel Jacobowitz
> CodeSourcery

When you say "put assertions in the assembler output" I understood it
to mean "in the assembly source code output by the compiler", not "the
output produced by the assembler".

Does this qualify as a form of what you are suggesting?  Because this
is exactly what is being proposed:

.balign 8                  # start window
    insn op, op          # 67 67 XX YY ZZ  - padded with 2 prefixes to make 8
    insn2 op, op        # AA BB CC
.padalign 8              # window boundary
    insn4 op
    . . .

-- 
Quentin Neill



More information about the Binutils mailing list