Displaying 20 results from an estimated 402 matches for "functiontypes".
Did you mean:
functiontype
2012 Nov 18
1
[LLVMdev] What is a FunctionType really?
On 18/11/12 18:37, David Blaikie wrote:
> Types, function or otherwise, have no in-memory representation. They
> merely describe how bits should be interpreted.
This is what I'm asking about the FunctionType. If I have a Pointer to a
FunctionType it is clear how the bits should be interpreted, but what
does the FunctionType it self say about the bits, if anything?
In terms of use, can
2010 Nov 29
3
[LLVMdev] FunctionType as a function argument
Hi all.
I would like to declare a function that takes a function pointer as an
argument.
In C, it would be :
void execute(char (*func)(void*), void *param)
So, in my compiler, I have :
std::vector<const Type *> cbFPtrArgs(1, Type::getInt8PtrTy(C));
FunctionType * cbFPtrTy = FunctionType::get(Type::getInt8Ty(C), cbFPtrArgs,
false);
Function * func =
2009 Jul 31
2
[LLVMdev] Inserting Instructions (pass)
Hi,
I' am trying to insert an InlineAsm Instruction in my pass, which
FunctionType do I need for Inlineasm?
If I understand it right, I need a call instruction to insert the new
produced InlineAsm?
Thanks for help,
Michael
for (BasicBlock::iterator bi = i->begin(), be = i->end(); bi != be; ++bi){
std::vector<const Type*> asm_arguments;
2010 Nov 29
0
[LLVMdev] FunctionType as a function argument
You need a pointer-to-function type, but FunctionType just gives you a
function type. Use PointerType::getUnqual(FunctionType::get(...)). Or
TypeBuilder<char (*func)(void*), false>::get(context) from
Support/TypeBuilder.h.
On Mon, Nov 29, 2010 at 10:37 AM, Salomon Brys <salomon.brys at gmail.com>wrote:
> Hi all.
> I would like to declare a function that takes a function pointer
2009 Aug 01
2
[LLVMdev] Inserting Instructions (pass)
Thank you Chris,
for your hint, but I am still too stupid. I tried two versions
asm_arguments.push_back(Type::VoidTy);
FunctionType *asm_type = FunctionType::get(Type::VoidTy, asm_arguments,
false);
Alternatively
FunctionType *asm_type = FunctionType::get(Type::VoidTy, std::vector<const
Type*>(), false);
. Can you give me a snippet of example code, or somebody else?
2009 Jul 31
0
[LLVMdev] Inserting Instructions (pass)
On Jul 31, 2009, at 10:24 AM, Michael Graumann wrote:
> Hi,
> I’ am trying to insert an InlineAsm Instruction in my pass, which
> FunctionType do I need for Inlineasm?
> If I understand it right, I need a call instruction to insert the
> new produced InlineAsm?
>
> Thanks for help
Inline asm works like a "callee". So for:
call void asm sideeffect
2012 Nov 18
2
[LLVMdev] What is a FunctionType really?
This may sound weird, but what exactly is a FunctionType? That is, in
terms of memory, or underlying value, what does the FunctionType
actually represent. At first I though it might be a pointer, but it is
not -- since you have to wrap a PointerType around it to use as such.
Can a FunctionType value actually exist, or is strictly an abstract
concept? In particular, can I actually directly define
2012 Nov 18
0
[LLVMdev] What is a FunctionType really?
On Sun, Nov 18, 2012 at 6:40 AM, edA-qa mort-ora-y <eda-qa at disemia.com> wrote:
> This may sound weird, but what exactly is a FunctionType? That is, in
> terms of memory, or underlying value, what does the FunctionType
> actually represent. At first I though it might be a pointer, but it is
> not -- since you have to wrap a PointerType around it to use as such.
> Can a
2015 Jan 15
2
[LLVMdev] AllocaInst for FunctionType?
Hi,
I'm trying to get my head around c++ - IR - c++ API and getting used
tramform manual information to code.
The manual states alloca is defined for <type>. FunstionType is a type, so
alloca for functionType should be possible? Not?
If we have a valid Module *m
we can get an allocate instruction allocating space for a non-argumented
function as follows:
AllocaInst* pa2 = new
2009 Aug 01
1
[LLVMdev] Inserting Instructions (pass)
Hi,
both versions are working:
FunctionType *asm_Ftype = FunctionType::get(Type::VoidTy, std::vector<const
Type*>(), false);
InlineAsm* Iasm =
InlineAsm::get(asm_Ftype,"isync","~{dirflag},~{fpsr},~{flags}",true);
How can I insert this InlineAsm, because it is no instruction and this way
it will not work:
Instruction *pi = bi;
2009 Jan 02
1
[LLVMdev] Function Type and Argument List
Hi all,
I am having some problem using the Function class. For my application,
FunctionType is not known at the time I initialize the function. So, I just
initialize the Function as return type
void with no arguments. As I work on my function, I get to know the
arguments and I insert the arguments in ArgumentList data structure of the
function. The FunctionType is defined as const and I can't
2009 Aug 01
0
[LLVMdev] Inserting Instructions (pass)
On Jul 31, 2009, at 5:04 PM, Michael Graumann wrote:
> Thank you Chris,
> for your hint, but I am still too stupid. I tried two versions
>
> asm_arguments.push_back(Type::VoidTy);
> FunctionType *asm_type = FunctionType::get(Type::VoidTy,
> asm_arguments, false);
>
> Alternatively
>
> FunctionType *asm_type = FunctionType::get(Type::VoidTy,
>
2011 Jul 09
4
[LLVMdev] type-system-rewrite branch landing tomorrow
> ... and it's in. Please let me know if you see any problems.
My clang self-hosted build (Release+Asserts on Release+Asserts, Linux
x86_64) fails with:
make[2]: Entering directory `/home/jay/llvm/objdir-self/tools/opt'
llvm[2]: Compiling GraphPrinters.cpp for Debug+Asserts build
clang: /home/jay/svn/llvm-project/llvm/trunk/include/llvm/Support/Casting.h:194:
typename
2011 Jul 05
2
[LLVMdev] [type-system-rewrite][PATCH] de-constify Type* in FunctionType::get()
This patch removes the deprecated form of FunctionType::get() which
takes "const Type*"s for the argument types, and replaces just enough
"const Type*" with "Type*" elsewhere to get everything building
cleanly again. (My motivation for this was that I was getting
ambiguous overload errors from some calls to FunctionType::get() in
the Clang source.)
Chris, are you
2013 Nov 26
2
[LLVMdev] Disabling optimizations when using llvm::createPrintModulePass
Hello,
using the LLVM API, I've build one very simple function that adds two
ConstantInts and returns the result.
I noticed that, when I emit IR code, it is optimized to a simple "ret
i16 42" when I add 40 and 2. I'd like to see the operations that are
necessary to compute the result, though.
Can I somehow disable this optimization in the pass, leading to more
verbose IR code?
2008 Nov 12
2
[LLVMdev] RefineAbstractType
On Wednesday 12 November 2008 17:29, Chris Lattner wrote:
> In fact, I strongly suspect that RefineAbstractType doesn't work if
> you give it something that isn't Opaque. I'd recommend only using it
> on Opaque, not random abstract types.
Ok.
> Sure, LLVM is more general than C. In LLVM, you can have a pointer
> that points to itself, for example:
>
> %t =
2011 Feb 28
2
[LLVMdev] Extending FunctionType
Hi all,
I am trying to extend a FunctionType to include new parameters. In particular, I want to
ensure that the main function has been declared with both argsc and argsv. However
there seems to be no easy way to accomplish this: llvm::Function::getFunctionType() returns a
a reference to a const object, while modifying only the argument list yields an error during verification
since the
2011 Jul 05
0
[LLVMdev] [type-system-rewrite][PATCH] de-constify Type* in FunctionType::get()
Sure, go for it.
FWIW, I was waiting to do this (eventually "const Type" will just be "Type" everywhere).
I have a long list of cleanups that I want to land after the branch lands... but I was waiting for after the branch lands to make merging it less annoying and make things more incremental. Unfortunately I'm struggling to find time to finish things up and land the
2015 Mar 10
4
[LLVMdev] noob IR builder question
I am trying to get a handle on IR builder, at least some basics. I ran through a tutorial here: Create a working compiler with the LLVM framework, Part 1 <http://www.ibm.com/developerworks/library/os-createcompilerllvm1/>, and it worked well enough. I have some simple code that creates a hello world IR. I am trying to now bring in some concepts from the Kaleidoscope tutorial, namely
2016 Sep 19
3
llvm interpreter does not find function defined by addGlobalMapping
Hi,
I want to use a function defined in c(++)-code from code generated by llvm. For this I use ExecutionEngine.addGlobalMapping(). I started with the JIT execution engine and everything worked, then I switched to the interpreter engine and it stopped working, but only if compiled on a Linux system. More precisely it works if I use
llvm 3.8.1 + gcc (Linux) + JIT
llvm 3.8.0 + mingw-gcc