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...