harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mikhail Fursov" <mike.fur...@gmail.com>
Subject Re: [Drlvm][Opt]How to avoid instrumentation's effect on Reg-Allocation?
Date Thu, 08 Feb 2007 15:17:34 GMT
Zouqiong,
If you do instrumentation in HIR you can't predict which registers will be
used in CG.
If you do instrumentation in LIR you can only assign predefined registers or
constraints to your operands, but you can't affect register allocation for
unassigned operands.
So if you think that RegAlloc does a bad job for you, this is RegAlloc issue
and must be fixed in RegAlloc.

+ Reg-allocator does change side-effects of your code. Loading EAX from a
stack in your example can have only 1 drawback: performance problem. Is
performance your problem here?

On 2/8/07, zouqiong <ustczz@gmail.com> wrote:
>
> Hi, guys,
>   I instrument during code selector pass, however, I find that my
> instrmentation affects the register allocation. For example as follows:
>
>       mov    %ebp, eax
>       add    0xc, eax
>
>       mov    $0xe1f0f4,%ebx
>       mov    (%ebx),%edx
>       mov    $0xe1f0f4,%ebx
>       subl   $0x10,(%ebx)
>       mov    %eax,(%edx)
>       mov    0x8(%esp),%eax
>       mov    %eax,0x4(%edx)
>       movl   $0x9a0000,0x8(%edx)
>
>       mov    0xc(%ebp,%eax,4),%ebp
>
>       The code in yellow backgroud is my instrumentation. And we can see
> that EAX is loaded from the stack in the instrumentation. It's bad.
> I don't want my instrumentation doing it.
>       Can someone tell me how can i avoid it?
>
> Thanks,
> Qiong
>
>
> --
> Best Regards,
> Qiong,Zou
>



-- 
Mikhail Fursov

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message