Displaying 20 results from an estimated 700 matches similar to: "[LLVMdev] Alignment on byval parameters"
2008 Feb 22
0
[LLVMdev] Alignment on byval parameters
Hello, Dale
> Could somebody try this on Linux and investigate any failures other
> than the ones above?
I'm having here (x866-32/linux):
Running /home/asl/proj/llvm/llvm-gcc-4.2/src/gcc/testsuite/g
++.dg/compat/struct-layout-1.exp ...
Running /home/asl/proj/llvm/llvm-gcc-4.2/src/gcc/testsuite/gcc.dg/compat/struct-layout-1.exp ...
FAIL: tmpdir-gcc.dg-struct-layout-1/t025
2009 Feb 25
3
[LLVMdev] [PATCH] Parallelized make check
Hello,
The attached patch adds the jcheck target equivalent to make check, but
that can run with a -j flag ($ make jcheck -jX).
It does not interfere with the regular check, but rather builds on top
of the check-one target: it first generates a list of tests to run using
RunLLVMTests, and then run those tests according to the supplied -j
flag, invoking the check-one target for each one of them.
2009 Sep 19
0
[LLVMdev] OT: intel darwin losing primary target status
On Fri, Sep 18, 2009 at 02:40:17PM -0700, Nick Kledzik wrote:
> I thought of another work around. The FSF gcc driver can implicitly
> add -no_compact_unwind to the link line. This tells the linker to not
> produce compact unwind information from the dwarf unwind info in .o
> files. Then at runtime the darwin unwinder will fallback and use the
> slow dwarf unwind info.
2011 Oct 26
0
[LLVMdev] Lowering to MMX
On Oct 26, 2011, at 1:18 PM, Nicolas Capens wrote:
> On 24/10/2011 9:50 PM, Bill Wendling wrote:
>> On Oct 20, 2011, at 8:42 AM, Nicolas Capens wrote:
>>
>>> Hi all,
>>>
>>> I'm working on a graphics project which uses LLVM for dynamic code
>>> generation, and I noticed a major performance regression when upgrading
>>> from LLVM
2008 Feb 29
0
[LLVMdev] llvm/test: suffix or operands invalid for `push'
>>>
>>> Those are valid instructions in every x86-32 assembler I'm aware of.
>>> Perhaps it needs a switch to put it in 32-bit mode?
>>
>> Yes, I have been able to confirm that's what's happening behind the
>> scene. The switch would be --32, however after that, ld will try to
>> link
>> the 64-bit versions of libc and the C
2008 Feb 29
2
[LLVMdev] llvm/test: suffix or operands invalid for `push'
Hi Eric,
Am Freitag, den 29.02.2008, 15:02 -0800 schrieb Eric Christopher:
> I'm coming into this late so I'm not really sure what's going on,
In a nutshell, I'm trying to get llvm to run on my amd64 Linux box.
Problem is that various tools are activated in 64-bit mode even though I
try to convince everybody to play fair with llvm and use 32 bits. (I
gather llvm doesn't
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
2011 Oct 26
2
[LLVMdev] Lowering to MMX
Hi Bill,
Comments inline:
On 24/10/2011 9:50 PM, Bill Wendling wrote:
> On Oct 20, 2011, at 8:42 AM, Nicolas Capens wrote:
>
>> Hi all,
>>
>> I'm working on a graphics project which uses LLVM for dynamic code
>> generation, and I noticed a major performance regression when upgrading
>> from LLVM 2.8 to 3.0-rc1 (LLVM 2.9 didn't support Win64 so I
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
2008 Jul 10
0
[LLVMdev] Exact meaning of byval
Hi Richard,
> In that case if you did want the callee to copy the argument am I right
> in thinking that the Frontend would have to pass a pointer and add an
> explicit memcpy in the callee?
I'm not sure what you are asking. Of course caller or callee can
always allocate some temporary on the stack and memcpy to it, then
use that copy from then on. The point of byval is that the
2008 Jul 10
1
[LLVMdev] Exact meaning of byval
> I'm not sure what you are asking. Of course caller or callee can
> always allocate some temporary on the stack and memcpy to it, then
> use that copy from then on. The point of byval is that the copy is
> made where the ABI mandates it for by-value call parameters. If
> you don't need to be ABI compatible then there is no point using
> byval: it would be better to
2010 Apr 27
2
[LLVMdev] Setting alignment for a ByVal argument
Hi,
Thanks for the help. I tried this out, but on x86_64 and with llvm 2.6
and llvm-gcc 4.2.1, I dont seem to get an aligned variable.
This is the function definition that I have
define internal fastcc void @walksub(%struct.hgstruct* noalias
nocapture sret %agg.result, %struct.node* %p, double %dsq,
%struct.hgstruct* byval align 64 %hg, i32 %level) nounwind {
And these are the call sites,
2009 Feb 25
0
[LLVMdev] [PATCH] Parallelized make check
On Tue, Feb 24, 2009 at 06:24:17PM -0800, Julien Lerouge wrote:
> I haven't tested with objdir != srcdir.
Ok, that was broken. Attached is a smaller diff that should work in all
cases.
Julien
--
Julien Lerouge
PGP Key Id: 0xB1964A62
PGP Fingerprint: 392D 4BAD DB8B CE7F 4E5F FA3C 62DB 4AA7 B196 4A62
PGP Public Key from: keyserver.pgp.com
-------------- next part --------------
Index:
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
2010 Sep 10
2
[LLVMdev] Question about 'byval'
Hello, I am seeking a clarification of the semantics of 'byval' parameter attribute in llvm IR.
Let's assume the ABI says the caller should create the 'hidden copy' of the pointee. My question is which part of the compiler chain should generate the alloca and copy code. My understanding is that it is the target code generator, not the provider of the llvm IR.
But given the
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
2015 Mar 05
2
[LLVMdev] Optimizing out redundant alloca involving byval params
Hello all,
I'm trying to find the pass that would convert from:
define void @main(%struct* byval %ptr) {
%val = load %struct* %ptr
%val.ptr = alloca %struct
store %struct %val, %struct* %val.ptr
call void @extern_func(%struct* byval %val.ptr)
ret void
}
to this:
define void @main(%struct* byval %ptr) {
call void @extern_func(%struct* byval %ptr)
ret void
}
First, am I missing
2013 Jul 05
0
[LLVMdev] making a copy of a byval aggregate on the callee's frame
Hi Tim,
Correction to my last email.
What I should have said is that the new pointer is used by the callee rather than the original byVal pointer arg.
(the byVal pointer arg remains but is not used by the callee).
viz:
define void @f1(%struct.tag* byval) {
entry:
%st = alloca %struct.tag, align 4
%1 = bitcast %struct.tag* %st to i8*
%2 = bitcast %struct.tag* %0 to i8*
call void
2018 Apr 21
0
How to add/use parameter attributes? Troubles with "byval"
I'm unable to figure out how IR attributes can be added via the C++ API.
I need to create a function like this:
%1 = call i64 @abi_call_test_tuple_2p(%struct.abi_tuple_2p* byval
align 8 %v)
Where a structure is being passed by value. I need to add the `byval`
attribute somewhere (I'm not clear if this is on the function arguments
or the type).
I'm also uncertain of why that