similar to: [LLVMdev] Calling Conventions Cont'd

Displaying 20 results from an estimated 9000 matches similar to: "[LLVMdev] Calling Conventions Cont'd"

2008 Apr 13
0
[LLVMdev] Calling Conventions Cont'd
Hi Jon, > What is the correct procedure for translating a function signature from > a high-order language to LLVM? you have to do it carefully so that LLVM will end up producing object code that conforms to the platform ABI. For example, suppose you are using cdecl with a small struct (a pair of ints, say). Then your function should get two integer parameters, which LLVM will assign to
2008 Apr 14
3
[LLVMdev] Calling Conventions Cont'd
Duncan Sands wrote: > Hi Jon, > >> What is the correct procedure for translating a function signature from >> a high-order language to LLVM? > > you have to do it carefully so that LLVM will end up producing object code > that conforms to the platform ABI. For example, suppose you are using cdecl > with a small struct (a pair of ints, say). Then your function
2013 Jul 25
4
[LLVMdev] Proposing a new 'alloca' parameter attribute to implement the Microsoft C++ ABI
Hi LLVM folks, To properly implement pass-by-value in the Microsoft C++ ABI, we need to be able to take the address of an outgoing call argument slot. This is http://llvm.org/PR5064 . Problem ------- On Windows, C structs are pushed right onto the stack in line with the other arguments. In LLVM, we use byval to model this, and it works for C structs. However, C++ records are also passed this
2008 Apr 01
1
[LLVMdev] Calling Conventions
I'm trying to understand the LLVM calling conventions. Coming from a Windows C++ background, I'm familiar with three calling conventions: cdecl, stdcall, and fastcall. It looks like cdecl corresponds to ccc in LLVM, but I'm not sure about the other two. Best Regards, Jon
2013 Oct 22
1
[LLVMdev] Starting implementation of 'inalloca' parameter attribute for MS C++ ABI pass-by-value
I wanted to mention that I'm planning to start writing and sending out patches for this. Naming the attribute 'alloca' was really confusing, so I'd like to change it to 'inalloca', which follows the preposition pattern of inreg and byval. After discussion, we decided it was silly to add stackbase uses to alloca instructions. They should stay simple. Instead, we'll
2008 Apr 14
0
[LLVMdev] Calling Conventions Cont'd
On Mon, 14 Apr 2008, Jon Sargeant wrote: > Ugh, this isn't what I wanted to hear. Passing "complex" differently > than a structure containing two doubles is a bad design, but alas, > calling conventions are beyond our control. How many special cases like > this are there? If "complex" is the only special case, LLVM could There are a huge number of special
2008 Apr 14
1
[LLVMdev] Calling Conventions Cont'd
> > entirely in the back end. Apart from calling conventions, the front end > > doesn't need to know the specific target, only the data layout and which > > intrinsics the target supports. This approach makes a clean division > > between the front end and back end. > > If you want to map from a C type/calling convetion to LLVM IR, clang is a > good way to
2008 Jun 04
0
[LLVMdev] Status of the 2.3 release - volunteers needed.
On Jun 2, 2008, at 11:11 PM, Tanya Lattner wrote: > Darwin/ppc: > SingleSource/Benchmarks/CoyoteBench/fftbench [ CBE ] > From what I can see comparing 2.3 with TOT, the "cexp" function is declared like this in 2.3: declare i128 @cexp({double, double}* byval) nounwind It used to be this: declare void @cexp({double, double}* noalias sret, {double, double}* byval)
2016 Jan 19
8
[RFC] A proposal for byval in a world with opaque pointers
Hi, In the past months, several options have been presented for making byval (and similar attributes, such as inalloca or sret) work with opaque pointers. The main two I've seen were byval(T) and byval(N) where N is the size of T. They both have their upsides and downsides, for example: byval(T) would be a type-parametric attribute, which, AFAIK, does not already exist and may complicate
2014 Dec 31
3
[LLVMdev] First class aggregates of small size: split when used in function call
Hello, In my LLVM frontend (CLR/MSIL), I am currently using first-class aggregates to represent loaded value types on the "CLR stack". However, I noticed that when calling external method taking those aggregate by value, they were not passed as I expected: %COLORREF = type { i8, i8, i8, i8 } declare i32 @SetLayeredWindowAttributes(i8*, %COLORREF, i8, i32) I call this function with
2016 Jan 19
2
[RFC] A proposal for byval in a world with opaque pointers
> Do all tests need it? Align is just for non-default alignment (> align(1)) so it may be OK for the tests to omit it & it's probably not right to /require/ an align attribute on a byval parameter. I've had to fix some of the tests which checked that the right alignment was applied, by looking at the generated asm, but had no "align A" attributes and relied on the
2011 Mar 20
1
[LLVMdev] CDECL Calling Convention
Hello all, I am a beginner of LLVM and I want to add a new backend into LLVM. The calling convention of the target I ported is CDECL. I am wondering to know whether there is already CDECL calling convention implemented in LLVM?? Which CallingConv.td file should I copy and modify for my target?? thanks a lot Mitnick -------------- next part -------------- An HTML attachment was scrubbed... URL:
2008 Jun 03
10
[LLVMdev] Status of the 2.3 release - volunteers needed.
Many of you are probably wondering about the status of the 2.3 release. Unfortunately, this release has been very difficult and the list of regressions very high. The list has finally dwindled down to the following regressions: Linux/x86: SingleSource/Benchmarks/CoyoteBench/fftbench [ JIT Codegen, JIT] MultiSource/Applications/minisat/minisat [CBE] Darwin/x86:
2009 Oct 05
5
[LLVMdev] Functions: sret and readnone
Hi all, I'm currently building a DSL for a computer graphics project that is not unlike NVIDIA's Cg. I have an intrinsic with the following signature float4 sample(texture tex, float2 coords); that is translated to this LLVM IR code: declare void @"sample"(%float4* noalias nocapture sret, %texture, $float2) nounwind readnone The type float4 is basically an array of four
2010 Apr 26
2
[LLVMdev] Setting alignment for a ByVal argument
Hi, If I want a particular alignment on a ByVal argument, should I specify it as a function attribute, or should I also add the attribute to every callsite that calls that function. Thanks, Arushi
2010 Apr 27
0
[LLVMdev] Setting alignment for a ByVal argument
Hi Arushi, > If I want a particular alignment on a ByVal argument, should I specify > it as a function attribute, or should I also add the attribute to > every callsite that calls that function. in theory you should do both. For example, if the call is an indirect call (i.e. to a function pointer where the function is not known) then it should be clear that you need to put the
2015 Mar 08
2
[LLVMdev] A limitation of LLVM with regard to marking sret functions as readonly.
Hi all, I have identified what seems to be a limitation of LLVM with regard to marking 'sret functions' as pure/readonly. For some context - I have some JITed code produced by LLVM, and that code calls back into the host application occasionally. Since my language is purely functional, no functions have side-effects. Therefore I would like to be able to cache the value of identical
2009 Oct 07
1
[LLVMdev] MinGW/MSVC++ uses different ABI for sret
Hi, is there any news about this problem? How hart it will be to resolve this compatibility problem with Visual Studio functions ? This is really great problem for my project with should call may different function compiled by Visual Studio!!! Here is also problem that is looking similar. http://llvm.org/bugs/show_bug.cgi?id=5046 -- View this message in context:
2006 Nov 27
1
R.DLL mapping by P/Invoke
After a long processing, I was able to create a version of a small C# class that was able to emulate the rproxy by P/Invoke. This is mostly to find a workaround a performance problem of the StatConnector. It's almost work but ... I have strange memory exception when I call the print function. The variable seems to not survive from one call to the other. As there is no debug symbol for
2015 Mar 09
2
[LLVMdev] byval in a world without pointee types
Moving this to llvm-dev where I should've sent it in the first place (& +Chandler, because we discussed this offline a bit) On Thu, Feb 19, 2015 at 11:32 AM, Reid Kleckner <rnk at google.com> wrote: > On Thu, Feb 19, 2015 at 10:57 AM, David Blaikie <dblaikie at gmail.com> > wrote: > >> >> >> On Thu, Feb 19, 2015 at 8:31 AM, Rafael EspĂ­ndola <