Chris Lattner
2012-Oct-20 15:14 UTC
[LLVMdev] How to represent __attribute__((fastcall)) functions in the IL
On Oct 20, 2012, at 12:58 AM, Duncan Sands <baldrick at free.fr> wrote:> Hi Rafael, > > On 19/10/12 18:27, Rafael Espíndola wrote: >>> Don't get me wrong, I don't have any good ideas about how to do this, I'm >>> just hoping someone does. End result might allow something like: >>> >>> declare void @foo(double inreg <eax,edx> %x) >> >> Not sure I would go all the way to specifying registers in the IL >> (although I liked it at some point). What I like most right now is >> something along the lines of >> http://llvm.org/pr12193. That makes it explicit if something is on the >> stack or in registers and that information is correct for both the >> caller and callee. What is left for codegen is counting the register >> arguments and computing stack offsets. > > I'm 100% in favour of having "onstack" as a complement to "inreg". I'm > not so happy about the more funky changes you suggested in the PR, namely > having the callee no longer match the caller, but "onstack" itself makes > a lot of sense to me.Makes a lot of sense to me too. -Chris
Rafael Espíndola
2012-Oct-22 00:53 UTC
[LLVMdev] How to represent __attribute__((fastcall)) functions in the IL
>>> Not sure I would go all the way to specifying registers in the IL >>> (although I liked it at some point). What I like most right now is >>> something along the lines of >>> http://llvm.org/pr12193. That makes it explicit if something is on the >>> stack or in registers and that information is correct for both the >>> caller and callee. What is left for codegen is counting the register >>> arguments and computing stack offsets. >> >> I'm 100% in favour of having "onstack" as a complement to "inreg". I'm >> not so happy about the more funky changes you suggested in the PR, namely >> having the callee no longer match the caller, but "onstack" itself makes >> a lot of sense to me. > > Makes a lot of sense to me too.It is way too late for a formal for a BOF, but maybe we could meet during the hacker lab to discuss onstack, explicit regs, and other ideas regarding how to represent calling conventions?> -ChrisCheers, Rafael
Chris Lattner
2012-Oct-24 18:16 UTC
[LLVMdev] How to represent __attribute__((fastcall)) functions in the IL
On Oct 21, 2012, at 5:53 PM, Rafael Espíndola <rafael.espindola at gmail.com> wrote:>>>> Not sure I would go all the way to specifying registers in the IL >>>> (although I liked it at some point). What I like most right now is >>>> something along the lines of >>>> http://llvm.org/pr12193. That makes it explicit if something is on the >>>> stack or in registers and that information is correct for both the >>>> caller and callee. What is left for codegen is counting the register >>>> arguments and computing stack offsets. >>> >>> I'm 100% in favour of having "onstack" as a complement to "inreg". I'm >>> not so happy about the more funky changes you suggested in the PR, namely >>> having the callee no longer match the caller, but "onstack" itself makes >>> a lot of sense to me. >> >> Makes a lot of sense to me too. > > It is way too late for a formal for a BOF, but maybe we could meet > during the hacker lab to discuss onstack, explicit regs, and other > ideas regarding how to represent calling conventions?Sure, sounds good. There is also a rumor that the devmtg may have an "UnBOF" section, which is specifically for organized-on-demand BOF like content. More details to come, -Chris
Possibly Parallel Threads
- [LLVMdev] How to represent __attribute__((fastcall)) functions in the IL
- [LLVMdev] How to represent __attribute__((fastcall)) functions in the IL
- [LLVMdev] How to represent __attribute__((fastcall)) functions in the IL
- [LLVMdev] How to represent __attribute__((fastcall)) functions in the IL
- [LLVMdev] How to represent __attribute__((fastcall)) functions in the IL