search for: cc_x86_32_c

Displaying 7 results from an estimated 7 matches for "cc_x86_32_c".

2013 Mar 21
3
[LLVMdev] [cfe-dev] Handling SRet on Windows x86
...be exceptions from the general Win32 handling code. That is, b) We should add a IsTargetWin32 which is true if the MSVC 32-bit ABI is used and false for Cygwin+MinGW. c) We should add CC_X86_Win32_C and CC_X86_Win32_ThisCall and use them only for MSVC 32-bit ABI. d) Cygwin and MinGW should use the CC_X86_32_C This way, Clang takes care of setting the SRet attribute wherever appropriate and LLVM takes care of putting such return values onto stack in the Win32/MSVC32 ABI. What do you think about such a proposal? One more data point: the ABI is wrong even in C! http://llvm.org/bugs/show_bug.cgi?id=15556...
2007 Sep 06
2
[LLVMdev] RFC: Tail call optimization X86
...e is some code checking whether a TAIL CALL really is eligible for tail call optimization. I modified: LowerRET to create a TC_RETURN node. (used for adjusting stackpointer and jumping to function in epilogue, similar to EH_RETURN) There is a new calling convention: CC_X86_32_TailCall which is ~ CC_X86_32_C minus ECX. There are some modifications in X86InstrInfo.td There are new X86 DAG nodes: TRUETAILCALL TC_RETURN There is some voodoo in X86RegisterInfo.cpp to deal with the RETADDR problem described in X86ISelLowering.cpp comments. (callee has more args than caller -> there needs to be space...
2012 Oct 04
0
[LLVMdev] [cfe-dev] Handling SRet on Windows x86
How can a frontend tell LLVM to put a function argument on stack/register/etc? On Thu, Oct 4, 2012 at 5:08 PM, Anton Korobeynikov <asl at math.spbu.ru> wrote: >> Ah, got it. >> Sounds like we might need to introduce CC_X86_Win32_MSVC_ThisCall then?.. > No, we should not. It should be properly expanded in frontend. > > -- > With best regards, Anton Korobeynikov >
2012 Oct 04
3
[LLVMdev] [cfe-dev] Handling SRet on Windows x86
> Ah, got it. > Sounds like we might need to introduce CC_X86_Win32_MSVC_ThisCall then?.. No, we should not. It should be properly expanded in frontend. -- With best regards, Anton Korobeynikov Faculty of Mathematics and Mechanics, Saint Petersburg State University
2013 Mar 21
0
[LLVMdev] [cfe-dev] Handling SRet on Windows x86
...ented stacks. Are segmented stacks actually used with MSVC or is it just the conditions there should use isTargetMingw() && !is64Bit() instead? > c) We should add CC_X86_Win32_C and CC_X86_Win32_ThisCall and use them > only for MSVC 32-bit ABI. > d) Cygwin and MinGW should use the CC_X86_32_C > > This way, Clang takes care of setting the SRet attribute wherever appropriate > and LLVM takes care of putting such return values onto stack in the > Win32/MSVC32 ABI. > > What do you think about such a proposal? > > One more data point: the ABI is wrong even in C! >...
2007 Sep 11
0
[LLVMdev] RFC: Tail call optimization X86
...ly is > eligible for tail call optimization. > > I modified: > LowerRET > to create a TC_RETURN node. (used for adjusting stackpointer and > jumping to function in epilogue, similar to EH_RETURN) > > There is a new calling convention: > CC_X86_32_TailCall > which is ~ CC_X86_32_C minus ECX. > > There are some modifications in > X86InstrInfo.td > > There are new X86 DAG nodes: > TRUETAILCALL > TC_RETURN > > > There is some voodoo in X86RegisterInfo.cpp to deal with the > RETADDR problem described in X86ISelLowering.cpp comments. > (callee...
2007 Sep 11
2
[LLVMdev] RFC: Tail call optimization X86
...er a call is > eligible for tail call elimination and insert the current ISD::CALL > node. Okay > X86TargetLowering::LowerX86_32FastCCCallTo() will not have to > handle non-tail calls. > I will then add code to LowerCCCCallTo() to check whether to use the normal calling convention CC_X86_32_C (3 registers free for argument passing) or the tail call (fastcc) calling convention CC_X86_32_TailCall (2 register free). Expect to see a new patch after i have done the testing with the whole test suite. regards arnold