[LLVMdev] Being able to know the jitted code-size before emitting

Nicolas Geoffray nicolas.geoffray at lip6.fr
Wed Apr 16 01:46:25 PDT 2008


>
> How about a  default GetInstSize() as well? Return 1 for every  
> instruction except for some special TargetInstrInfo instructions, e.g.  
> PHI, IMPLICIT_DEF, LABEL. I don't know if it's useful or not. But  
> perhaps we can default most targets to it?
>
>   

I prefer not giving a default implementation and aborting with a message 
that says the target did not implement it. This way we know why it's not 
working. Is it OK?

>> //
>> -unsigned X86RegisterInfo::getX86RegNum(unsigned RegNo) const {
>> +unsigned X86RegisterInfo::getX86RegNum(unsigned RegNo) {
>>     
>
> What happened to "const"?
>   

I made the function static.

>> +  unsigned Size = GetInstSizeWithDesc(*MI, &Desc, IsPIC,  
>> Is64BitMode);
>> +  if (Desc.getOpcode() == X86::MOVPC32r) {
>> +      Size += GetInstSizeWithDesc(*MI, &get(X86::POP32r), IsPIC,  
>> Is64BitMode);
>> +  }
>>     
>
> I would prefer this special case is handled in GetInstSizeWithDesc().
>
>   

I can not do that in GetInstSizeWithDesc because the test is on the 
MachineInstruction, which will always say that Desc.getOpcode == MOVPC32 
in GetInstSizeWithDesc (hence the function will endlessly call itself).
X86CodeEmitter is doing the same.

>
> Looks great! Thanks.
>   

Thx to you for reviewing the patch! I'll modify it with your suggestions 
and wait for your response to this email before committing it.

Nicolas

> Evan
>
>   
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>     
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>   




More information about the llvm-dev mailing list