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...