search for: gettypestoresize

Displaying 20 results from an estimated 47 matches for "gettypestoresize".

2011 May 07
0
[LLVMdev] Question about linking llvm-mc when porting a new backend
...libLLVMCodeGen.a(TargetLoweringObjectFileImpl.cpp.o) llvm::TargetLoweringObjectFileCOFF::~TargetLoweringObjectFileCOFF()in libLLVMCodeGen.a(TargetLoweringObjectFileImpl.cpp.o) "llvm::TargetData::getTypeSizeInBits(llvm::Type const*) const", referenced from: llvm::TargetData::getTypeStoreSize(llvm::Type const*) constin libLLVMAsmPrinter.a(AsmPrinter.cpp.o) llvm::TargetData::getTypeStoreSize(llvm::Type const*) constin libLLVMSelectionDAG.a(TargetLowering.cpp.o) llvm::TargetData::getTypeStoreSize(llvm::Type const*) constin libLLVMCodeGen.a(MachineFunction.cpp.o) llvm::Ta...
2009 Nov 04
5
[LLVMdev] DeadStoreElimination: do better without TargetData
...+117,12 @@ > > // If this is a store-store dependence, then the previous store > is dead so > // long as this store is at least as big as it. > - if (StoreInst *DepStore = dyn_cast<StoreInst>(InstDep.getInst())) > - if (TD && > - TD->getTypeStoreSize(DepStore->getOperand(0)->getType()) <= > - TD->getTypeStoreSize(SI->getOperand(0)->getType())) { > + if (StoreInst *DepStore = dyn_cast<StoreInst>(InstDep.getInst > ())) { > + const Type *DepType = DepStore->getOperand(0)->getType(); >...
2009 Nov 04
0
[LLVMdev] DeadStoreElimination: do better without TargetData
Re-posting with better-looking code. Hans Wennborg wrote: > The attached patch makes DeadStoreElimination able to remove stores in > store-store dependencies when the operand types are equal, even if there > is no TargetData available. > > / Hans > > > ------------------------------------------------------------------------ > >
2009 Nov 04
2
[LLVMdev] DeadStoreElimination: do better without TargetData
The attached patch makes DeadStoreElimination able to remove stores in store-store dependencies when the operand types are equal, even if there is no TargetData available. / Hans -------------- next part -------------- A non-text attachment was scrubbed... Name: DeadStoreElimination.patch Type: text/x-patch Size: 812 bytes Desc: not available URL:
2011 May 06
0
[LLVMdev] Question about linking llvm-mc when porting a new backend
...libLLVMCodeGen.a(TargetLoweringObjectFileImpl.cpp.o) llvm::TargetLoweringObjectFileCOFF::~TargetLoweringObjectFileCOFF()in libLLVMCodeGen.a(TargetLoweringObjectFileImpl.cpp.o) "llvm::TargetData::getTypeSizeInBits(llvm::Type const*) const", referenced from: llvm::TargetData::getTypeStoreSize(llvm::Type const*) constin libLLVMAsmPrinter.a(AsmPrinter.cpp.o) llvm::TargetData::getTypeStoreSize(llvm::Type const*) constin libLLVMSelectionDAG.a(TargetLowering.cpp.o) llvm::TargetData::getTypeStoreSize(llvm::Type const*) constin libLLVMCodeGen.a(MachineFunction.cpp.o) llvm::Ta...
2009 Sep 02
1
[LLVMdev] [PATCH] PR2218
...O that > mentions this. > > In any case, the check for dep.isNonLocal() can be removed. > Nonlocal queries have a null instruction. OK, i'll work on it. > > + } else if (StoreInst *S = dyn_cast<StoreInst>(dep.getInst())) { > ... > + uint64_t ptrSize = AA.getTypeStoreSize(pointer->getType()); > ... > + uint64_t memSize = AA.getTypeStoreSize(memPtr->getType()); > ... > + if (AA.alias(pointer, ptrSize, memPtr, memSize) != > AliasAnalysis::MustAlias) > > This is passing in the size of the pointer, not the pointee. > However, sin...
2009 Sep 02
0
[LLVMdev] [PATCH] PR2218
...al: handling non-local would be pretty easy. Please add a TODO that mentions this. In any case, the check for dep.isNonLocal() can be removed. Nonlocal queries have a null instruction. + } else if (StoreInst *S = dyn_cast<StoreInst>(dep.getInst())) { ... + uint64_t ptrSize = AA.getTypeStoreSize(pointer->getType()); ... + uint64_t memSize = AA.getTypeStoreSize(memPtr->getType()); ... + if (AA.alias(pointer, ptrSize, memPtr, memSize) != AliasAnalysis::MustAlias) This is passing in the size of the pointer, not the pointee. However, since you only care about must alias, you...
2009 Nov 04
0
[LLVMdev] DeadStoreElimination: do better without TargetData
...t; // If this is a store-store dependence, then the previous store is >> dead so >> // long as this store is at least as big as it. >> - if (StoreInst *DepStore = dyn_cast<StoreInst>(InstDep.getInst())) >> - if (TD && >> - TD->getTypeStoreSize(DepStore->getOperand(0)->getType()) <= >> - TD->getTypeStoreSize(SI->getOperand(0)->getType())) { >> + if (StoreInst *DepStore = dyn_cast<StoreInst>(InstDep.getInst())) { >> + const Type *DepType = DepStore->getOperand(0)->getType();...
2016 Jun 02
4
[GSoC 2016] Parameters of a target architecture
Dear LLVM contributors, I work on the "Improvement of vectorization process in Polly". At the moment I'm trying to implement tiling, interchanging and unrolling of specific loops based on the following algorithm for the analytical modeling [1]. It requires information about the following parameters of a target architecture: 1. Size of double-precision floating-point number. 2.
2013 Nov 15
4
[LLVMdev] Limit loop vectorizer to SSE
...igned Alignment = LI ? LI->getAlignment() : SI->getAlignment(); + if (Alignment == 0) + Alignment = 1; unsigned AddressSpace = Ptr->getType()->getPointerAddressSpace(); unsigned ScalarAllocatedSize = DL->getTypeAllocSize(ScalarDataTy); unsigned VectorElementSize = DL->getTypeStoreSize(DataTy)/VF; Should fix this. On Nov 15, 2013, at 3:49 PM, Joshua Klontz <josh.klontz at gmail.com> wrote: > Nadav, > > I believe aligned accesses to unaligned pointers is precisely the issue. Consider the function `add_u8S` before[1] and after[2] the loop vectorizer pass. There i...
2009 Sep 02
2
[LLVMdev] [PATCH] PR2218
Hello, I fixed my patch as you asked. Sorry for the delay, I'd been working on my SSU patch (http://lists.cs.uiuc.edu/pipermail/llvmdev/2009-August/025347.html ) I hope that everything is fine now. -Jakub -------------- next part -------------- A non-text attachment was scrubbed... Name: pr2218-3.patch Type: application/octet-stream Size: 7511 bytes Desc: not available URL:
2013 Jan 20
1
[LLVMdev] Sizeof a type?
...eturns a number (eg: 8) while getSizeOf > returns a mysterious expression (the optimizers will simplify it to a number, > the same as getTypeAllocSize returns, if you provide them with DataLayout). Thanks, Duncan. What's the difference between DataLayout::getTypeAllocSize and DataLayout::getTypeStoreSize? -- Rick
2013 Jan 20
5
[LLVMdev] Sizeof a type?
Is there a way to get the sizeof a type? Say I've created a struct type without any explicit attribtues, and I want to call malloc() to allocate space for it. Can I get the size as an llvm::Constant* (or other llvm::Value*) given an llvm::StructType* or other llvm::Type*? TIA, -- Rick
2013 Nov 15
0
[LLVMdev] Limit loop vectorizer to SSE
...platform default alignment (IIRC, DataLayout::getPrefTypeAlignment tells you what it is). -Hal > unsigned AddressSpace = Ptr->getType()->getPointerAddressSpace(); > unsigned ScalarAllocatedSize = DL->getTypeAllocSize(ScalarDataTy); > unsigned VectorElementSize = DL->getTypeStoreSize(DataTy)/VF; > > Should fix this. > > On Nov 15, 2013, at 3:49 PM, Joshua Klontz <josh.klontz at gmail.com> > wrote: > > > Nadav, > > > > I believe aligned accesses to unaligned pointers is precisely the > > issue. Consider the function `add_u8S` b...
2014 Jan 08
3
[LLVMdev] reference to non-static member function must be called
...Type = PointerType::getUnqual(Int8Type); Type* VoidType = Type::getVoidTy(M->getContext()); DataLayout *TD = &getAnalysis<DataLayout>(); Value *Pointer = SI.getPointerOperand(); Pointer = castTo(Pointer,VoidPtrType,Pointer->getName(),&SI); uint64_t size = TD->getTypeStoreSize(SI.getOperand(0)->getType()); Value *StoreSize = ConstantInt::get(Int32Type, size); std::vector<Value *> args; args.push_back(StoreSize); args.push_back(Pointer); args.push_back(0); Instruction *inst = CallInst::Create(print,args,"",&SI); } while compili...
2019 May 17
2
Semantics for non-byte-sized stores? (or whenever "store size in bits" is different than "size in bits")
It is possible to ask DataLayout about getTypeSizeInBits and also getTypeStoreSize. And there is a table showing an example of what it could look like: /// Size examples: /// /// Type SizeInBits StoreSizeInBits AllocSizeInBits[*] /// ---- ---------- --------------- --------------- /// i1 1 8 8 /// i8...
2017 Jul 06
3
[RFC][SVE] Supporting Scalable Vector Architectures in LLVM IR (take 2)
...points, there are multiple other examples. I think this should still work. Allocas of scalable vectors are supported, and it's only later at codegen that the unknown sizes result in more work being needed to compute stack offsets correctly. The caveat being that a direct call to something like getTypeStoreSize() will need to be aware of expressions/sizeless-types. If however these passes are exclusively using allocas to put registers into memory, or using structs with extractvalue etc, then they shouldn't need to care and codegen deals with the low level details. Thanks, Amara
2013 Nov 15
2
[LLVMdev] Limit loop vectorizer to SSE
...ent (IIRC, DataLayout::getPrefTypeAlignment tells you what it is). > > -Hal > >> unsigned AddressSpace = Ptr->getType()->getPointerAddressSpace(); >> unsigned ScalarAllocatedSize = DL->getTypeAllocSize(ScalarDataTy); >> unsigned VectorElementSize = DL->getTypeStoreSize(DataTy)/VF; >> >> Should fix this. >> >> On Nov 15, 2013, at 3:49 PM, Joshua Klontz <josh.klontz at gmail.com> >> wrote: >> >>> Nadav, >>> >>> I believe aligned accesses to unaligned pointers is precisely the >>> issu...
2019 Nov 06
2
Alias analysis only throwing mayAlias for something that seems should be identifiable as mustAlias
I have a global 2-D array ARRAY[N][M] and I am accessing it inside the for loop like this: for (i...) for (j ...) ARRAY[i][j] ... So nothing really weird is happening. If I look at the generated IR, it is also fairly straight forward. @ARRAY0 = dso_local global [32 x [32 x i32]] zeroinitializer, section ".slow_mem", align 32, !dbg !84 ... %45 = getelementptr inbounds [32 x [32 x
2016 Aug 04
4
help please: how to sort the contents of a "SymbolTableListTraits<GlobalVariable>"?
.../bin/clang main_with_3_globals.c -O3 Abe was here: max. profitable alignment: 16 Abe was here: found a global value that DOES have a name [“foo”], with alignment 4, no named section [double-check: should be empty string: “”], which is a pointer to a NON-array and with pointee type getTypeStoreSize -> 4 Abe was here: found a global value that DOES have a name [“bar”], with alignment 1, no named section [double-check: should be empty string: “”], which is a pointer to a NON-array and with pointee type getTypeStoreSize -> 1 Abe was here: found a global value that DOES ha...