search for: pr4246

Displaying 8 results from an estimated 8 matches for "pr4246".

2011 Jun 12
2
[LLVMdev] struct passing on X86-64
...erms of >> the original language types, and unfortunately some ABI's require >> different handling for types that are structurally equivalent. > > Just so I understand this better, for which ABIs is this the case? It's > not for x86_64. ARM, perhaps? > >> See PR4246 for a plan to have generic helper codes for ABI lowering. > > It seems a bit complicated to me. Wouldn't it be simpler to just encode > the language type information in metadata, or, if metadata isn't > appropriate because it can be dropped, in some language information > pi...
2011 Jun 10
4
[LLVMdev] struct passing on X86-64
...LLVM type should be passed, because you don't know which of several possible front-end types it came from. So you would either have to annotate the IR with all kinds of front-end type information, or require front-ends to do the ABI conformance stuff. The current solution is the latter. See PR4246 for a plan to have generic helper codes for ABI lowering. Ciao, Duncan. > >> Any plans or suggestions for implementing this properly in the backend? > > I don't think anyone has signed up to do the work. > > -Dave > ___________________________...
2011 Jun 14
0
[LLVMdev] struct passing on X86-64
...and the ARM backend would have to be taught how > to handle that. (It would also be nice if TargetData could tell you > whether a given ABI note applies to your current target.) How are those ABI notes different from source language information? > That's orthogonal to the concern of PR4246 which talks about providing > a generic layer for lowering from the C type system to the ABI. > Does this sound like a sensible start? Comment 1 of PR4246 is something like what I was getting at. What's not specified in the bug is how the type mapping is represented. I'm with Eli...
2011 Jun 10
0
[LLVMdev] struct passing on X86-64
..., that the ABI is defined in terms of > the original language types, and unfortunately some ABI's require > different handling for types that are structurally equivalent. Just so I understand this better, for which ABIs is this the case? It's not for x86_64. ARM, perhaps? > See PR4246 for a plan to have generic helper codes for ABI lowering. It seems a bit complicated to me. Wouldn't it be simpler to just encode the language type information in metadata, or, if metadata isn't appropriate because it can be dropped, in some language information piece within Type? Then t...
2011 Jun 15
1
[LLVMdev] struct passing on X86-64
...use the right (eg. i8) type please, and leave the fact it's passed in a 32-bit register to the ABI note) is a good idea in general. I meant to throw this out there and collect some feedback, not make a proposal to be implemented as-is. Nick >> That's orthogonal to the concern of PR4246 which talks about providing >> a generic layer for lowering from the C type system to the ABI. > >> Does this sound like a sensible start? > > Comment 1 of PR4246 is something like what I was getting at. What's not > specified in the bug is how the type mapping is repre...
2011 Jun 09
2
[LLVMdev] struct passing on X86-64
It appears the X86-64 backend doesn't currently respect the X86-64 ABI with respect to struct passing (by value). For example: %struct.tiny = type { i32, i32 } call void @foo(%struct.tiny %1) nounwind Will actually pass two i32 register arguments (%edi,%esi) instead of a single i64 register argument (%rdi). The frontends (llvm-gcc, clang) appear to do the argument munging themselves in
2011 Jun 10
0
[LLVMdev] struct passing on X86-64
David Meyer <pdox at google.com> writes: > The frontends (llvm-gcc, clang) appear to do the argument munging > themselves in order to compensate. Yep. There are lots of corner cases that the frontend MUST handle because LLVM does not have the necessary infrastructure. > Any plans or suggestions for implementing this properly in the backend? I don't think anyone has signed
2011 Jun 10
1
[LLVMdev] struct passing on X86-64
...require >> different handling for types that are structurally equivalent. > > Just so I understand this better, for which ABIs is this the case?  It's > not for x86_64.  ARM, perhaps? Take, for example, _Complex long double on x86-64. Or unions on x86-64. :) -Eli >> See PR4246 for a plan to have generic helper codes for ABI lowering. > > It seems a bit complicated to me.  Wouldn't it be simpler to just encode > the language type information in metadata, or, if metadata isn't > appropriate because it can be dropped, in some language information > pi...