similar to: [LLVMdev] ARM struct byval size > 64 triggers failure

Displaying 20 results from an estimated 5000 matches similar to: "[LLVMdev] ARM struct byval size > 64 triggers failure"

2013 Jun 19
2
[LLVMdev] ARM struct byval size > 64 triggers failure
I missed that the testing case is returning a struct. You are right in VARegSaveSize. For callee: sub sp, sp, #16 push {r11, lr} mov r11, sp sub sp, sp, #8 str r3, [r11, #20] str r2, [r11, #16] str r1, [r11, #12] ldr r1, [r11, #76] The beginning of the input struct @ sp_at_entry - 16 - 8 + 12 = sp_at_entry -12 # of leftover bytes 67-12 = 55 r11+76 is @ sp_at_entry - 24 + 76 = sp_at_entry
2013 Jun 20
1
[LLVMdev] ARM struct byval size > 64 triggers failure
> - "since ABI says the stack pointer needs to be 8 byte aligned at function entry point" (taken from Manman's reply) > What will be considered as entry point here? > Is it place of SP Adjustments "sub sp, sp, #16" > (Or) Is it place of first user instruction(end of prologue) "ldr r2, .LCPI0_0" Eight byte stack alignment is a
2013 Jun 18
0
[LLVMdev] ARM struct byval size > 64 triggers failure
Hi Rajesh, The callee code looks okay to me > Assembly for check114 > --------------------------------------------------------------- > sub sp, sp, #16 > push {r11, lr} > mov r11, sp > sub sp, sp, #8 > str r3, [r11, #20] > str r2, [r11, #16] > str r1, [r11, #12] > ldr r1,
2013 Jun 18
3
[LLVMdev] ARM struct byval size > 64 triggers failure
An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130618/5b2a15e3/attachment.html> -------------- next part -------------- A non-text attachment was scrubbed... Name: 201306181656803_BEI0XT4N.gif Type: image/gif Size: 14036 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130618/5b2a15e3/attachment.gif>
2013 Jun 20
0
[LLVMdev] ARM struct byval size > 64 triggers failure
On 20 June 2013 13:35, Rajesh Viswabramana <rajesh.vis at samsung.com> wrote: > - What considerations will be made from llvm side to make abi > compatibile with gcc/other compilers for arm - struct byval size >64 bytes. > Hi Rajesh, I'm not sure I follow your question, but in general, the idea is to be compatible with ABIs, not with specific compilers. So, if compiler X
2013 Jun 18
0
[LLVMdev] ARM struct byval size > 64 triggers failure
On 18 June 2013 14:12, Rajesh Viswabramana <rajesh.vis at samsung.com> wrote: > Yes, its soft-float, below is verbose of my command, > Thought so. Any reason to use ARMv4T triple? I don't think you're trying to install Linux on an ARM7TDMI, are you? ;) This look like the default if you just specify "arm" as your triple. We need to get that fixed to some sane value
2013 Jun 18
0
[LLVMdev] ARM struct byval size > 64 triggers failure
An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130618/ee0ae442/attachment.html> -------------- next part -------------- A non-text attachment was scrubbed... Name: 201306181842303_BEI0XT4N.gif Type: image/gif Size: 14036 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130618/ee0ae442/attachment.gif>
2013 Jun 20
0
[LLVMdev] Fwd: Re: Re: ARM struct byval size > 64 triggers failure
An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130620/9ee19538/attachment.html> -------------- next part -------------- A non-text attachment was scrubbed... Name: 201306201804240_BEI0XT4N.gif Type: image/gif Size: 14036 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130620/9ee19538/attachment.gif>
2013 Jun 21
0
[LLVMdev] ARM struct byval size > 64 triggers failure
An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130621/ac5e4be4/attachment.html> -------------- next part -------------- A non-text attachment was scrubbed... Name: 201306211529044_QKNMBDIF.gif Type: image/gif Size: 14036 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130621/ac5e4be4/attachment.gif>
2017 Mar 07
2
Current preferred approach for handling 'byval' struct arguments
As many of you will know, handling of struct arguments in LLVM is actually slightly more fiddly than you might expect. For targets where aggregates are always passed on the stack it's easy enough, the Clang ABI code marks these arguments as byval and the call lowering code in LLVM will copy the object to the stack when needed. There are more options for when the target has more complex ABI
2017 Mar 08
3
Current preferred approach for handling 'byval' struct arguments
On 7 March 2017 at 17:58, Reid Kleckner <rnk at google.com> wrote: > Today, the vast majority of target in Clang coerce aggregates passed this > way into appropriate word-sized types. They all use their own custom > heuristics to compute the LLVM types used for the coercions. It's terrible, > but this is the current consensus. > > I would like to improve the situation
2012 Nov 21
2
[LLVMdev] Extended Inline asm with double data type crashes clang
Thanks Rafael, Hello All, Could anyone please comment, which part in selectiondag need to be understood/modified to fix this. Regards, Rajesh On Wed, Nov 21, 2012 at 2:38 AM, Rafael EspĂ­ndola < rafael.espindola at gmail.com> wrote: > I reported http://llvm.org/pr14393 to track it. > > On 20 November 2012 05:18, rajesh viswabramana > <viswabramana.rajesh at
2012 Nov 22
0
[LLVMdev] Extended Inline asm with double data type crashes clang
Hi all, I tried same code on gcc for arm(hard float), double f2 () { double x = 10.0; asm ("" : "=r" (x) : "0" (x)); return x; } > arm-linux-gnueabi-gcc -S -mhard-float pr39058.c -O2 Generates proper code, mov r3, #0 mov r2, #0 movt r3, 16420 fmdrr d0, r2, r3 bx lr But llvm crashes, If data type is "double",
2012 Nov 20
0
[LLVMdev] Extended Inline asm with double data type crashes clang
I reported http://llvm.org/pr14393 to track it. On 20 November 2012 05:18, rajesh viswabramana <viswabramana.rajesh at gmail.com> wrote: > Hi, > > Clang crashes when below snippet of code is compiled (used latest svn > version) > > double func1() > { > double x ; > asm ( "" : "=r"(x) : "0"(x) ); > return x; > } >
2012 Nov 20
2
[LLVMdev] Extended Inline asm with double data type crashes clang
Hi, Clang crashes when below snippet of code is compiled (used latest svn version) *double func1() { double x ;* * asm ( "" : "=r"(x) : "0"(x) ); return x; }* > *clang -S test1.c* > *Assertion failed: (PartVT.isInteger() || PartVT == MVT::x86mmx) && ValueVT.isInteger() && "Unknown mismatch!", file
2012 Dec 28
0
[LLVMdev] Function inline causes crash in clang for .ast to .s
Hi, Could anyone please comment on this ? Regards, Rajesh On Wed, Dec 19, 2012 at 6:54 PM, rajesh viswabramana < viswabramana.rajesh at gmail.com> wrote: > Hi, > > Clang crashes when tried to compile from .ast to .s for below sample code, > > inline-test.c > ** > *extern inline int func1 (void) { return 0; } > inline int func1 (void) { return 1; }* > >
2012 Dec 19
2
[LLVMdev] Function inline causes crash in clang for .ast to .s
Hi, Clang crashes when tried to compile from .ast to .s for below sample code, inline-test.c ** *extern inline int func1 (void) { return 0; } inline int func1 (void) { return 1; }* clang *works fine* for .c -> .s, *>clang inline-test.c -std=c99 -fgnu89-inline -S -o inline-test.s * But *crashes* when tried to generate .s from .ast for same file, *>clang inline-test.c -std=c99
2014 Jan 24
2
[LLVMdev] byval attr for base+range parameters
Hello guys, For single scalar pointer parameter, we have 'byval' to specify the pointee is not changed. But for base+range parameters like: declare void @_gfortran_transfer_integer_write(%struct.__st_parameter_dt*, i8*, i32) (This is the fortran runtime api to 'printf' one integer) The 2nd & 3rd args are used to specify the memory of that integer. I didn't find a
2013 Jul 05
0
[LLVMdev] making a copy of a byval aggregate on the callee's frame
Hi Robert, > This should ideally be done early on in the IR in my thinking - to allow optimisation if the data is only ever read. I've thought that once or twice when dealing with ABIs myself. That's certainly another possibility in your case. You could create a separate FunctionPass that gets executed early on and replaces all byval calls and functions with the correct memcpys. It
2012 May 12
2
[LLVMdev] Info on byval attributes
LLVM developers, I was wondering if the program would still be safe if I strip the byval attributes from the parameters in the entire bitcode. LLVM language reference manual states that "The attribute implies that a hidden copy of the pointee is made between the caller and the callee, so the callee is unable to modify the value in the callee. This attribute is only valid on LLVM pointer