Displaying 20 results from an estimated 400 matches similar to: "[LLVMdev] Convenience methods in ConstantExpr et al"
2011 Feb 02
0
[LLVMdev] Convenience methods in ConstantExpr et al
On Mon, Jan 31, 2011 at 10:57 PM, Talin <viridia at gmail.com> wrote:
> I notice that there's a lot of inconsistency in the various LLVM classes
> with respect to convenience methods. Here's some examples:
>
> For creating GEPS, IRBuilder has:
>
> CreateGEP (2 overloads)
> CreateInBoundsGEP (2 overloads)
> CreateConstGEP1_32
>
2011 Feb 02
2
[LLVMdev] Convenience methods in ConstantExpr et al
Talin wrote:
> On Mon, Jan 31, 2011 at 10:57 PM, Talin <viridia at gmail.com
> <mailto:viridia at gmail.com>> wrote:
>
> I notice that there's a lot of inconsistency in the various LLVM
> classes with respect to convenience methods. Here's some examples:
>
> For creating GEPS, IRBuilder has:
>
> CreateGEP (2 overloads)
>
2011 Feb 03
0
[LLVMdev] Convenience methods in ConstantExpr et al
On Wed, Feb 2, 2011 at 1:29 PM, Nick Lewycky <nicholas at mxc.ca> wrote:
> Talin wrote:
>
>> On Mon, Jan 31, 2011 at 10:57 PM, Talin <viridia at gmail.com
>> <mailto:viridia at gmail.com>> wrote:
>>
>> I notice that there's a lot of inconsistency in the various LLVM
>> classes with respect to convenience methods. Here's some
2016 May 09
2
C++ CreateConstGEP questions
There are two C++ signatures for CreateConstGEP1_32:
Value * CreateConstGEP1_32 (Value *Ptr, unsigned Idx0, const Twine &Name="")
Value * CreateConstGEP1_32 (Type *Ty, Value *Ptr, unsigned Idx0, const Twine &Name="")
I'm assuming that this means that the caller can supply the expected type, and get error checking or casting? Or choose to not supply the
2012 Feb 22
1
[LLVMdev] Size of structs & arrays
Eli Friedman-2 wrote:
>
>
> Try llvm::Constant::getNullValue().
>
>
I'm trying this:
llvm::Constant* one =
llvm::Constant::getNullValue(llvm::IntegerType::get(mod->getContext(), 64));
llvm::ConstantInt* two = llvm::ConstantInt::get(mod->getContext(),
llvm::APInt(32, llvm::StringRef("1"), 10));
std::vector<llvm::Value*> indices;
2014 Apr 22
2
[LLVMdev] InstCombine strips the inBounds attribute in GetElementPtr ConstantExpr
I can't upload my program due to confidentiality, but the problem is
obvious.
At lib/Analysis/ConstantFolding.cpp:646
Constant *C = ConstantExpr::getGetElementPtr(Ops[0], NewIdxs);
if (ConstantExpr *CE = dyn_cast<ConstantExpr>(C)) {
if (Constant *Folded = ConstantFoldConstantExpression(CE, TD, TLI))
C = Folded;
}
The generated ConstantExpr C doesn't inherit the
2012 Jan 22
2
[LLVMdev] CreateGlobalStringPtr giving linker errors
Hi,
I am trying to use some LLVM API in my C++ code, and I end up getting
linker errors. I am working on Apple MacOSX Lion. Using g++ for the
compile. It is the CreateGlobalStringPtr which is throwing the error. This
is LLVM 3.0.
Here's the codeI am trying to use some LLVM API in my C++ code, and I end
up getting linker errors. I am working on Apple MacOSX Lion. Using g++ for
the compile. It
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
2012 Dec 29
2
[LLVMdev] GetElementPtrConstantExpr question
Hi all,
I just come across an IR instruction like this:
%0 = getelementptr i32* getelementptr inbounds ([42 x i32]* @aaa,
i32 0, i32 0), i32 %2
What does the part "i32* getelementptr inbounds ([42 x i32]* @aaa, i32
0, i32 0)" mean? As far as I could understand this is a
GetElementPtrConstantExpr, isn't it?
My question is: how can I instantiate a class that represents that
2011 Feb 03
2
[LLVMdev] Convenience methods in ConstantExpr et al
Hi Talin,
> I find that I call the static methods in ConstantExpr a *lot* without going
> through IRBuilder - hundreds of times in my frontend. My language generates a
> lot of static data - reflection information, trace tables for the garbage
> collector, dispatch tables, runtime annotations, static object instances, and so
> on. (In fact there's a special helper class
2012 Jan 22
0
[LLVMdev] CreateGlobalStringPtr giving linker errors
Probably your g++ compiles x86_64 binary by default, but i686 dylib is supplied?
Try:
g++ -m32 e.cpp /Developer/Platforms/iPhoneOS.platform/Developer/usr/llvm-gcc-4.2/libexec/gcc/i686-apple-darwin10/4.2.1/libllvmgcc.dylib
- D.
2012/1/22 Arpan Sen <arpansen at gmail.com>:
> Hi,
>
> I am trying to use some LLVM API in my C++ code, and I end up getting linker
> errors. I am
2007 Dec 17
2
[LLVMdev] Elsa and LLVM and LLVM submissions
Devang Patel wrote:
> On Dec 15, 2007, at 12:15 PM, Richard Pennington wrote:
>
>> I got the current version of LLVM via svn yesterday and modified my
>> code to
>> use the LLVMFoldingBuilder. Very nice!
>>
>> My question is this: I noticed that the folding builder doesn't fold
>> some
>> operations, e.g. casts. Is there some reason why? If
2017 Oct 14
2
Bug in replaceUsesOfWith: does not keep addrspace consistent in GEP
Hello,
Calling `replaceUsesOfWith` with a value in a different addrspace does not
keep the addrspace of a GEP consistent. Is this known? Is this a bug or
expected behaviour?
Minimal counterexample link
<https://gist.github.com/bollu/152ba5e1c20c03c7fc6d8c7b23ba828f>
Reproduced here:
#include <iostream>
#include "llvm/ADT/APFloat.h"
#include
2016 Dec 30
3
Avoiding during my pass the optimization (copy propagation) of my LLVM IR code (at generation)
Hello.
I'm writing an LLVM pass that is working on LLVM IR.
To my surprise the following LLVM pass code generates optimized code - it does copy
propagation on it.
Value *vecShuffleOnePtr = Builder.CreateGEP(ptr_B, vecShuffleOne, "VectorGep");
...
packed_gather_params.push_back(vecShuffleOnePtr);
CallInst *callGather =
2008 Apr 12
0
[LLVMdev] LLVMBuilder vs LLVMFoldingBuilder
Duncan Sands wrote:
> + GetElementPtrInst *CreateStructGEP(Value *Ptr, unsigned Idx,
> + const char *Name = "") {
> + llvm::Value *Idxs[] = {
> + ConstantInt::get(llvm::Type::Int32Ty, 0),
> + ConstantInt::get(llvm::Type::Int32Ty, Idx)
> + };
> + return Insert(GetElementPtrInst::Create(Ptr, Idxs, Idxs+2, Name));
2020 Jan 14
2
sizeof implementation: how to get size as a constantInt?
I'm implementing c style "sizeof()", and I did as
http://nondot.org/sabre/LLVMNotes/SizeOf-OffsetOf-VariableSizedStructs.txt
illuarstrated,
and it works find, here's an example of my implementation:
auto *p = builder.CreateGEP(structTy,
llvm::ConstantPointerNull::get(pointerTy),
constint1);
auto *size =
2011 Feb 10
0
[LLVMdev] ConstantExpr::replaceUsesOfWithOnConstant() function for llvm::GetElementPtrConstantExpr
Hi LLVMdev members
I found something strange in ConstantExpr::replaceUsesOfWithOnConstant() function.
in lib/VMCore/Constants.cpp file
2118 if (getOpcode() == Instruction::GetElementPtr) {
2119 SmallVector<Constant*, 8> Indices;
2120 Constant *Pointer = getOperand(0);
2121 Indices.reserve(getNumOperands()-1);
2122 if (Pointer == From) Pointer = To;
2123
2124 for
2007 Dec 17
0
[LLVMdev] Elsa and LLVM and LLVM submissions
I used &Idx[0]. In future, please avoid tabs in your patch.
I applied your patch.
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20071217/056403.html
-
Devang
On Dec 17, 2007, at 2:57 AM, Richard Pennington wrote:
> Devang Patel wrote:
>> On Dec 15, 2007, at 12:15 PM, Richard Pennington wrote:
>>> I got the current version of LLVM via svn yesterday and
2008 Apr 11
4
[LLVMdev] LLVMBuilder vs LLVMFoldingBuilder
Hi Dominic,
+//===-- llvm/Support/IRBuilder.h - Builder for LLVM Instrs -----*- C++ -*-===//
is this line the right length? It seems shorter than the similar lines below like
this one:
+//===----------------------------------------------------------------------===//
+ GetElementPtrInst *CreateStructGEP(Value *Ptr, unsigned Idx,
+ const char *Name =
2012 Feb 22
0
[LLVMdev] Size of structs & arrays
On Wed, Feb 22, 2012 at 1:56 PM, Fraser Cormack <frasercrmck at gmail.com> wrote:
>
> I'm trying to work out the size of a struct so that I can pass this to the
> 'llvm.memcpy' intrinsic. It's easy to find out how I'm supposed to do this,
> as I keep seeing the following:
>
> %Size = getelementptr %T* null, int 1
> %SizeI = cast %T* %Size to uint
>