Displaying 20 results from an estimated 200 matches similar to: "[LLVMdev] Calling a function with a pointer to a global char array as argument"
2011 May 20
0
[LLVMdev] convert a char * to a value
On 5/20/11 5:46 PM, Nabila ABDESSAIED wrote:
> Hi all,
>
> Please i need help, I have a method that takes 2 arguments with type
> char *:
> void branchPredict(char *b1, char *b2){
> ---
> --
> }
> i'm supposed to add this method, in an IR basic bloc:
> to add it into a basic bloc i do:
The problem is that you are passing arrays to the function instead of
2011 May 20
3
[LLVMdev] convert a char * to a value
Hi all,
Please i need help, I have a method that takes 2 arguments with type char *:
void branchPredict(char *b1, char *b2){
---
--
}
i'm supposed to add this method, in an IR basic bloc:
to add it into a basic bloc i do:
//i: is the basic bloc
std::vector<Value*> void_43_params;
Constant* tbname = ConstantArray::get(M.getContext(),i->getNameStr() ,
true);
Constant* pbname =
2012 Jun 17
3
[LLVMdev] BlockAddress instruction is copied instead of cloned during module link?
I have a module having the blockaddress instruction.
When I link it into another module and delete the original, blockaddress
disappears and is replaced by inttoptr (i32 1 to i8*).
Please compile and run the attached program to see the demo of this
problem.
Right after linking modules, blockaddress still exists:
@switch.bbs = internal global [3 x i8*] [i8* blockaddress(@my_func,
2020 Oct 01
3
Creating a global variable for a struct array
>The type you pass to GlobalVariable's constructor for that variable
should be "[10 x %struct.dlist]" because that's what you want storage
for. Then the GlobalVariable itself will be a Constant of type "[10 x
%struct.dlist]*".
Yes, I verified that this is the case.
I enabled assertions and the error seems to occur while creating GlobalVariable for both struct dhash
2020 Oct 01
2
Creating a global variable for a struct array
Thank you very much. The code to initialize h1 to non-zero values was what I was looking for.
It's almost working except for a type mismatch wrt dlist* llist field of h1.
dlist static_lst[10] = { {1, 5, NULL}, ... };
dhash h1[10] = {{"myfile.txt", static_lst}, ... };
Along the lines of the code you had sent, I created a GlobalVariable* llist of type [10 x %struct.dlist]* for the
2013 Apr 21
2
[LLVMdev] How to cast Value* to ConstantDataArray*
ConstantDataArray * cda = cast<ConstantDataArray>(v);
throws this error: Assertion failed: (isa<X>(Val) && "cast<Ty>() argument
of incompatible type!"), function cast, file
/Users/rcatlin1/lldb/llvm/include/llvm/Support/Casting.h, line 208
Thanks for the help.
Richard Catlin
On Sat, Apr 20, 2013 at 3:37 PM, Sean Silva <silvas at purdue.edu> wrote:
2020 Mar 09
8
[RFC] Refactor class hierarchy of VectorType in the IR
Hi,
I am helping with the effort to implement scalable vectors in the codebase in order to add support for generating SVE code in the Arm backend. I would like to propose a refactor of the Type class hierarchy in order to eliminate issues related to the misuse of SequentialType::getNumElements(). I would like to introduce a new class FixedVectorType that inherits from
2013 Apr 20
2
[LLVMdev] How to cast Value* to ConstantDataArray*
I extended the LLVM Kaleidoscope example to support Strings. I added a
StringExprAST, which has the virtual Codegen method impl as follows:
Value *StringExprAST::Codegen() {
StringRef r(Val);
return ConstantDataArray::getString(getGlobalContext(), r, false);
}
I am trying to concatenate Strings and have a ConcatExprAST with its
Codegen method. Upon trying to access the data in the
2013 Apr 20
0
[LLVMdev] How to cast Value* to ConstantDataArray*
On Sat, Apr 20, 2013 at 5:15 PM, Richard Catlin
<richard.m.catlin at gmail.com>wrote:
> I extended the LLVM Kaleidoscope example to support Strings. I added a
> StringExprAST, which has the virtual Codegen method impl as follows:
>
> Value *StringExprAST::Codegen() {
> StringRef r(Val);
> return ConstantDataArray::getString(getGlobalContext(), r, false);
> }
>
2020 Apr 22
2
[Update][RFC] Refactor class hierarchy of VectorType in the IR
Hi,
I just wanted to give an update on the progress of this work. This morning I merged a patch to add the new vector types. I have added a FixedVectorType, as proposed below. I also added a ScalableVectorType. I found during my work that it is useful to be able to query isa<ScalableVectorType>(Ty). Additionally, I was concerned that it would become commonplace to take
2020 May 05
2
[Update][RFC] Refactor class hierarchy of VectorType in the IR
Nicolai,
My plan is to remove getNumElements() as soon as possible. Hopefully within the next few weeks. I just made a patch on my machine that marks it deprecated, and it generates a ton of warnings. Given that some build bots build with -Werror, I don't think we can mark it deprecated unless all the usages are first removed.
It occurs to me now that it might be good to mark it
2012 Nov 16
2
[LLVMdev] porting to 3.1: ConstantDataArray
Hi,
In llvm 3.0 llvm::ConstantArray had a ::getAsCString() method that
returned the buffer as a std::string. Now it seems that 3.1 this
method dissapeared.
I found that llvm::ConstantDataArray has a method called
getAsString(), but it returns a Constant*.
What is the safe way to retrieve the pointer of the Constant array as
a C string?
2012 Nov 16
0
[LLVMdev] porting to 3.1: ConstantDataArray
On 16 November 2012 13:55, charles quarra
<charllsnotieneningunputocorreo at gmail.com> wrote:
> In llvm 3.0 llvm::ConstantArray had a ::getAsCString() method that
> returned the buffer as a std::string. Now it seems that 3.1 this
> method dissapeared.
>
> I found that llvm::ConstantDataArray has a method called
> getAsString(), but it returns a Constant*.
In 3.1
2020 May 21
3
[RFC] Refactor class hierarchy of VectorType in the IR
Hi John,
I’d like to address some points in your message.
> Practically speaking, this is going to break every out-of-tree frontend, backend, or optimization pass that supports SIMD types.
My understanding is that the policy in LLVM development is that we do not let considerations for downstream and out-of-tree codebases affect the pace of development. The C++ API is explicitly unstable.
2005 Oct 16
2
[LLVMdev] Help on LLVM Instrumentation
Hi ,
I am using LLVM for my Post Graduate course project on Optimization. I am trying to do some insrtumentation to the bytecode.I 've been going through your Instrumentation code for the past few days in /llvm/lib/Transforms/Instrumentation folder and finally found two ways of instrumentation :
1) injecting LLVM bytecode instructions
2) calling an external C function.
I am trying both and
2015 May 28
1
[LLVMdev] Passing ConstantDataArray to GetElementPtrInst
Hi, I'm having a hard time finding an answer to what I assume is a very basic
idea. I'm trying to produce this llvm code using the LLVM api:
%myString = alloca [13 x i8], i32 13
store [13 x i8] c"Hello world.\00", [13 x i8]* %myString
%tmp1 = getelementptr [13 x i8]* %myString, i32 0, i32 0
%tmp2 = call i32 (i8*, ...)* @printf( i8* %tmp1 ) nounwind
A simple Hello
2016 Aug 24
2
Change GlobalValue Type/Initializer
Hi,
I am trying to update the initializer of a global value and I have encounter two issues:
The first one is that I can not change the type of the global value. Let say that I have the following variable: @.str = private unnamed_addr constant [6 x i8] c”Test0A\00", align 1
How can I change the ”Test0A\00” to ”OtherTest0A\00”. Is this possible? I know that you can change the initializer
2019 Jan 28
2
Create a BlockAddress array from LLVM Pass
Hi
Good day. For the following function local static constant array:
static const __attribute__((used))
__attribute__((section("data"))) void *codetable[] = {
&&RETURN, &&INCREMENT, &&DECREMENT, &&DOUBLE, &&SWAPWORD};
I have the following in the LLVM IR.
@sampleCode.codetable = internal global [5 x i8*] [i8* blockaddress(@sampleCode, %19), i8*
2008 Jul 16
3
[LLVMdev] GEP::getIndexValid() with other iterators
Hi all,
currently, GetElementPtrInst has a method getIndexedType, which has a
templated variant. You pass in a begin and an end iterator, and it will find
the indexed type for those. However, both iterators must iterate over Value*.
For some argpromotion code, I would like to pass in iterators that iterate
over unsigneds instead of Value*. I currently solve this by transforming my
2015 Jan 14
2
[LLVMdev] Bug in InsertElement constant propagation?
Hi,
When I run opt on the following LLVM IR:
define i32 @foo() {
bb0:
%0 = bitcast i32 2139171423 to float
%1 = insertelement <1 x float> undef, float %0, i32 0
%2 = extractelement <1 x float> %1, i32 0
%3 = bitcast float %2 to i32
ret i32 %3
}
->
It generates:
define i32 @foo() {
bb0:
ret i32 2143365727
}
While tracking the value I see that the floating point value