Displaying 20 results from an estimated 10000 matches similar to: "[LLVMdev] Question on Load and GetElementPtr instructions"
2010 Jun 18
0
[LLVMdev] Question on Load and GetElementPtr instructions
Good evening, Tang.
> What is the type of the first operand of the instruction (i.e.,
> getOperand(0))?
It might be ConstantExpr.
You may use dyn_cast<GEPOperator>(getPointerOperand()).
Also GetElementPtrInst* can be casted to GEPOperator.
...Takumi
2010/6/18 Xiaolong Tang <xiaolong.snake at gmail.com>:
>
> Hey,
>
> Considering the following instruction:
>
2014 Nov 22
3
[LLVMdev] How to get the indices in an getelementptr Value?
On Sat, Nov 22, 2014 at 11:09 AM, Sanjoy Das <sanjoy at playingwithpointers.com
> wrote:
> Hi Qiuping,
>
> If I'm reading the IR correctly, what you have is a
> GetElementPtrConstantExpr [1]. It subclasses from llvm::Constant.
>
If you want the same code to handle GetElementPtrConstantExpr *and*
GetElementPtrInst, you can use GEPOperator.
>
> Thanks,
> --
2019 Mar 09
2
Cast a function parameter to GEP
Thanks Tim,
I'll try to solve my problem ASAP, if I cannot maybe I'll some other
clarifications.
Thanks again
On Sat, Mar 9, 2019, 06:03 Tim Northover <t.p.northover at gmail.com> wrote:
> Hi Alberto,
>
> On Sat, 9 Mar 2019 at 05:50, Alberto Barbaro via llvm-dev
> <llvm-dev at lists.llvm.org> wrote:
> > i8* getelementptr inbounds ([7 x i8], [7 x i8]*
2014 Nov 22
2
[LLVMdev] How to get the indices in an getelementptr Value?
Hi Michael,
Thank you very much.
But idx_begin/idx_end iterators can only be used through a getelementptr
instruction, right? However, I think value "i32* getelementptr inbounds
(%struct.Args* @globalArg, i64 0, i32 2)" itself is not a getelementptr
instruction, so? Or could you tell me how can I get a getelementptr
instruction first from this value?
2013 Jan 18
2
[LLVMdev] How to get more details from storeInst ?
I have a loop fully unrolled and got the following store instruction.
store i32 %add.3, i32* getelementptr inbounds ([20 x [20 x i32]]* @c, i32 0,
i32 0, i32 0), align 4
I want to know exactly which element of the array that is going to be
stored, which help me to transform the high level language to hardware. Take
the instruction above as an example, I know the data is stored into c[0][0].
It
2010 Jun 10
2
[LLVMdev] For clarifying the "<Result>" in Instructions
Hi all,
In the language specifications, many instructions have this form:
<result> = ...
So, where is "<result>" defined? Is it an integral part of an instruction?
Consider the "getelementptr" instruction:
<result> = getelementptr <pty>* <ptrval>{, <ty> <idx>}*
How is the "<result>" represented?
Best,
2010 Jun 10
2
[LLVMdev] For clarifying the "<Result>" in Instructions
Hello Reid,
Thanks.
> Yes, it's an integral part of the Instruction. You can change it by
> providing a name when you create the instruction.
Following your hint, can I understand in this following way?
The name (denoted by "<result>") is actually a referrer to the instruction .
Consider this instruction:
%this_addr = alloca %struct.String* ;
2009 Nov 10
4
[LLVMdev] BasicAliasAnalysis: constant does not alias with noalias parameter
Dan Gohman wrote:
> On Nov 4, 2009, at 6:43 AM, Hans Wennborg wrote:
>
>> Here is another change I'd like to suggest to the BasicAliasAnalysis.
>>
>> LLVM fails to remove the dead store in the following code:
>>
>> %t = type { i32 }
>>
>> define void @f(%t* noalias nocapture %stuff ) {
>> %p = getelementptr inbounds %t* %stuff, i32 0,
2013 Jan 18
0
[LLVMdev] How to get more details from storeInst ?
Hi Cheng,
On 18/01/13 03:00, Cheng Liu wrote:
> I have a loop fully unrolled and got the following store instruction.
>
> store i32 %add.3, i32* getelementptr inbounds ([20 x [20 x i32]]* @c, i32 0,
> i32 0, i32 0), align 4
>
> I want to know exactly which element of the array that is going to be
> stored, which help me to transform the high level language to hardware. Take
2009 Nov 12
0
[LLVMdev] BasicAliasAnalysis: constant does not alias with noalias parameter
After discussing with Nick Lewycky in the IRC channel, here comes a less
aggressive patch.
We were worried that a constant pointer could alias with a GlobalValue.
Also, if one pointer could be a GlobalValue and the other a GlobalAlias
with the GlobalValue as aliasee.
However, I was not able to produce a test where this happens wihout the
getUnderlyingObject() returning the same value.
It
2010 Jun 10
0
[LLVMdev] For clarifying the "<Result>" in Instructions
Yes, it's an integral part of the Instruction. You can change it by
providing a name when you create the instruction.
Reid
On Thu, Jun 10, 2010 at 8:34 AM, Xiaolong Tang <xiaolong.snake at gmail.com> wrote:
> Hi all,
>
> In the language specifications, many instructions have this form:
>
> <result> = ...
>
> So, where is "<result>" defined?
2008 Apr 29
5
[LLVMdev] [PATCH] use-diet for review
Hi all,
I have reported more than enough about the space savings achieved
and the associated costs, here comes the current patch for review.
Since this one is substantially smaller than the previous one, I did
not cut it in pieces. The front part is about headers and the rest
the .cpp and other files.
Cheers,
Gabor
-------------- next part --------------
An embedded and charset-unspecified
2010 Jun 10
0
[LLVMdev] For clarifying the "<Result>" in Instructions
On Thu, Jun 10, 2010 at 9:00 AM, Xiaolong Tang <xiaolong.snake at gmail.com> wrote:
>
> Hello Reid,
>
> Thanks.
>
>> Yes, it's an integral part of the Instruction. You can change it by
>> providing a name when you create the instruction.
>
> Following your hint, can I understand in this following way?
>
> The name (denoted by
2010 Jun 07
4
[LLVMdev] Another two questions on LLVM
Hi all,
Considering the limit time I have for an implementation, I better ask
for your inputs on a few questions. Any answer is to be much
appreciated.
First, how does LLVM handle the "new statement" of C++? Could any one
give me any hint?
Second, what properties does the callgraph generated by LLVM has? One
property I am interesting in is whether the callgraph is a safe
2008 Apr 29
0
[LLVMdev] [PATCH] use-diet for review
On Apr 29, 2008, at 1:27 AM, Gabor Greif wrote:
> Hi all,
>
> I have reported more than enough about the space savings achieved
> and the associated costs, here comes the current patch for review.
>
> Since this one is substantially smaller than the previous one, I did
> not cut it in pieces. The front part is about headers and the rest
> the .cpp and other files.
Hi
2010 Aug 27
3
[LLVMdev] How to demange C++ names
Hey all,
Just wondering if LLVM has any command options or tool to allow for
demangling C++ names from the LLVM bitcode?
Thanks!
Best,
Xiaolong
2012 Jan 27
3
[LLVMdev] How to get the string value?
Thanks Duncan,
Yes, it is a ConstantExpr! Thank you!
Now trying to find a clue in ConstantExpr's functions to get that string :-)
Regards,
Welson
On Thu, Jan 26, 2012 at 9:04 PM, Duncan Sands <baldrick at free.fr> wrote:
> Hi Welson Sun,
>
> > Hi, if I have some LLVM code like this:
> >
> > @.str = private unnamed_addr constant [7 x i8]
2009 Apr 30
2
[LLVMdev] Pulling line number/file/path information from DbgStopPointInst instructions
Hmm... if I do a print() on the result of getFileName(), I get
i8 * getelementptr ([9 x i8]* @.str, i32 0, i32 0)
back, but if I try to dyn_cast this to GetElementPtrInst it fails
(returning null), so presumably I'm seeing a
GetElementPtrConstantExpr... so how can I get at that constant i8
array without casting to a GetElementPtrInst, and with
GetElementPtrConstantExpr being
2010 Jul 29
1
[LLVMdev] How does the debug info correspond to the normal info?
Hey,
LLVM allows to export source level debug information via meta data, I
am wondering if there is any mappings between the information in the
normal LLVM code and that in the meta data associated with the normal
LLVM code. Consider one usage.
Given an function parameter (argument) "x", via "getType()" we
retrieve the type of "x". The type might be, to some
2013 Nov 23
2
[LLVMdev] GVN fails with bitcasts
Hi,
i have the following code:
define internal %"struct.dexter::ConditionConstant"*
@_ZN6dexter18BinaryConditionAdd8evaluateEv5(%"class.dexter::BinaryConditionAdd"*)
{
entry:
%1 = getelementptr inbounds %"class.dexter::BinaryConditionAdd"* %0, i32
0, i32 0, i32 1
%2 = load %"class.dexter::BaseCondition"** %1, align 8
%3 = bitcast