Displaying 20 results from an estimated 4000 matches similar to: "[LLVMdev] Var Args on X86-64"
2016 Apr 20
3
va_arg on Windows 64
Hi everyone,
I'm interested in variadic functions and how llvm handles them. I
discovered that the Clang frontend is doing a great job at lowering the
va_arg (precisely __builtin_va_arg) function into target dependent
code. I have also seen the va_arg function that exist at IR level.
I found some information about va_arg (IR one) that currently does not
support all platform. But since 2009,
2011 Aug 17
2
[LLVMdev] Is va_arg deprecated?
FWIW, attached is a similar patch that adds a -falways-use-llvm-vaarg
flag to Clang.
Applies against mainline.
(As discussed, va_arg isn't really supported well so this probably
doesn't work well on anything other than simple code, YMMV, etc)
~Will
On Thu, May 12, 2011 at 12:29 PM, Arushi Aggarwal <arushi987 at gmail.com> wrote:
> Have these changes made it to mainline? Is
2011 Aug 17
2
[LLVMdev] Is va_arg deprecated?
To get clang to emit va_arg instructions for va_arg() calls, as
opposed to manually lowering it in the frontend, same as the llvm-gcc
patch sent earlier does.
~Will
On Wed, Aug 17, 2011 at 2:41 PM, Eric Christopher <echristo at apple.com> wrote:
>
> On Aug 17, 2011, at 11:53 AM, Will Dietz wrote:
>
>> FWIW, attached is a similar patch that adds a -falways-use-llvm-vaarg
2011 Aug 17
0
[LLVMdev] Is va_arg deprecated?
On Aug 17, 2011, at 11:53 AM, Will Dietz wrote:
> FWIW, attached is a similar patch that adds a -falways-use-llvm-vaarg
> flag to Clang.
>
> Applies against mainline.
>
> (As discussed, va_arg isn't really supported well so this probably
> doesn't work well on anything other than simple code, YMMV, etc)
>
> ~Will
>
> On Thu, May 12, 2011 at 12:29 PM,
2011 Aug 17
0
[LLVMdev] Is va_arg deprecated?
I should have been more specific:
"Why do we want this as an option? Do we want it on all the time? Why or why not?"
-eric
On Aug 17, 2011, at 3:02 PM, Will Dietz wrote:
> To get clang to emit va_arg instructions for va_arg() calls, as
> opposed to manually lowering it in the frontend, same as the llvm-gcc
> patch sent earlier does.
>
> ~Will
>
> On Wed, Aug
2010 Jul 19
0
[LLVMdev] Is va_arg deprecated?
Neal,
FYI, my group has added a flag to llvm-gcc for emitting the va_arg
instruction (instead of lowering in the front-end),
and we also have an implementation of the VAARG instruction for
X86-64. (which is currently not implemented in the LLVM backend).
Both of these things will be sent upstream to LLVM soon, pending some
more testing and review.
If you are dire need of these features now, I
2007 Apr 03
0
[LLVMdev] Implementing a complicated VAARG
On Tue, 3 Apr 2007, Nicolas Geoffray wrote:
> A VAARG call requires a lot of computation. Typically the C code for
> va_arg(ap, int)
If you use va_arg in C, are you seeing llvm.vaarg in the output .ll file?
-Chris
> is:
>
> int va_arg_gpr(ap_list ap) {
> int idx = ap->gpr;
> if (idx < 8) {
> ap->gpr = idx + 1;
> return
2007 Apr 03
3
[LLVMdev] Implementing a complicated VAARG
Hi everyone,
I'm implementing varags handling for PPC32 with the ELF ABI. It is
largely more
complicated than the Macho ABI or x86 because it manipulates a struct
instead of a direct pointer in the stack. You can find the layout of the
va_list struct
at the end of this mail.
A VAARG call requires a lot of computation. Typically the C code for
va_arg(ap, int)
is:
int va_arg_gpr(ap_list
2015 Sep 28
4
varargs, the x86, and clang
When I use clang on an x86-64 to spit out the LLVM, like this
clang -O -S -emit-llvm varargstest.c
where varargstest.c looks like this
int add_em_up(int count, ...) {
va_list ap;
int i, sum;
va_start(ap, count);
sum = 0;
for (i = 0; i < count; i++)
sum += va_arg(ap, int);
va_end(ap);
return sum;
}
I see LLVM that looks like it's been customized for the x86-64,
versus
2007 Apr 03
1
[LLVMdev] Implementing a complicated VAARG
Hi Chris,
Chris Lattner wrote:
> On Tue, 3 Apr 2007, Nicolas Geoffray wrote:
>
>> A VAARG call requires a lot of computation. Typically the C code for
>> va_arg(ap, int)
>>
>
> If you use va_arg in C, are you seeing llvm.vaarg in the output .ll file?
>
I'm guessing that if you're asking, then no llvm.vaarg is generated. I
can not
test it on my
2011 Jun 13
1
[LLVMdev] Modifying DAG in TargetLowering::ReplaceNodeResults()
Hi!
I am trying to implement va_arg() on ppc32. Everything went smooth, except
implementing va_arg() of 64bit int. Since i64 is not a legal type on ppc32
DAGTypeLegalizer::ExpandRes_VAARG() splits the va_arg(i64) into two i32
va_args.
The problem with ppc32 va_arg is that it needs special "alignment" of its
gpr pointer when the argument is i64. Ie. I need to know if I am lowering
2017 Aug 09
4
[RFC] The future of the va_arg instruction
# The future of the va_arg instruction
## Summary
LLVM IR currently defines a va_arg instruction, which can be used to access
a vararg. Few Clang targets make use of it, and it has a number of
limitations. This RFC hopes to promote discussion on its future - how 'smart'
should va_arg be? Should we be aiming to transition all targets and LLVM
frontends to using it?
## Background on va_arg
2008 Oct 12
0
[LLVMdev] A question about LegalizeDAG.cpp and VAARG
I'm generating code for a target that only supports i32 natively.
My front end is generating VAARG for accessing varargs parameters.
The problem is that I get an assert when I compile this:
#include <stdarg.h>
int main(va_list ap)
{
typedef double type;
type tmp;
tmp = va_arg(ap, type);
}
Bitcode:
; ModuleID = 't0056.bc'
target datalayout =
2010 Jul 19
4
[LLVMdev] Is va_arg deprecated?
Hi folk,
I'm writing a set of small C code to verify whether my pass handle some
instruction correctly. One of the instruction I want to test is "va_arg",
but compiling my variadic function does not generate any va_arg instruction.
Is va_arg deprecated? Will va_arg instruction ever be generated by any
front-end? The source code and llvm instructions are appended as follows.
the
2011 Feb 19
2
[LLVMdev] Is va_arg deprecated?
Hi David,
I'm working on source to source transformations and instrumentation.
A flag to disable 'va_arg' lowering in LLVM FEs will be very useful.
Have you sent your modifications upstream to LLVM?
If not, could you please share link to your public repository.
Thanks,
Sergey Yakoushkin
On Mon, Jul 19, 2010 at 11:18 PM, David Meyer <pdox at google.com> wrote:
> Neal,
>
2017 Aug 14
2
[RFC] The future of the va_arg instruction
On 9 August 2017 at 19:38, Friedman, Eli <efriedma at codeaurora.org> wrote:
> On 8/9/2017 9:11 AM, Alex Bradbury via llvm-dev wrote:
>>
>> Option 3: Teach va_arg to handle aggregates
>> * In this option, va_arg might reasonably be expected to handle a
>> struct,
>> but would not be expected to have detailed ABI-specific knowledge. e.g.
>> it
2011 Aug 18
1
[LLVMdev] Is va_arg deprecated?
Oh, sorry about that, and thanks for the clarification as to what you
were looking for.
Here you go:
** Why do we want this option? **
Presently clang will manually lower va_arg() in the frontend to the
equivalent (relatively complicated!) IR, as opposed to making use of
the LLVM va_arg instruction directly. IR that contains the va_arg
instruction is much easier to analyze because it is
2008 May 11
1
[LLVMdev] building llvm on Windows
I tried to compile on Windows ( using the win32/llvm.sln in MSVC Express
2008 ) the new 2.3 branch and here are the results:
1. I needed to copy the file Configure.exe.embed.manifest to
Configure.exe.intermediate.manifest . This is a bug from the previous llvm
release (2.2)
2. I copied the file SimplifyLibCalls.cpp from lib/Transforms/Scalar to
lib/Transforms/IPO. I think the position of
2011 Feb 20
2
[LLVMdev] Is va_arg deprecated?
Sergey,
Here's a patch on llvm-gcc which adds a flag "-fuse-llvm-va-arg".
(Note that this patch won't ever be part of llvm-gcc upstream. It will most
likely be deprecated by later changes.)
- pdox
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110220/f814866f/attachment.html>
2011 May 12
0
[LLVMdev] Is va_arg deprecated?
Have these changes made it to mainline? Is there a way to get a patch for the
backend, which does the actual lowering?
Thanks,
Arushi
On Sun, Feb 20, 2011 at 1:54 PM, David Meyer <pdox at google.com> wrote:
> Sergey,
> Here's a patch on llvm-gcc which adds a flag "-fuse-llvm-va-arg".
> (Note that this patch won't ever be part of llvm-gcc upstream. It will most