search for: getsizeofexpr

Displaying 13 results from an estimated 13 matches for "getsizeofexpr".

2011 Nov 11
2
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
...if (!PointerBase) > >> return 'Analysis failed' > >> > >> const Value *BaseValue = PointerBase->getValue(); > >> > >> You get the offset between two load addresses with SE->getMinusSCEV(). > >> The size of an element is SE->getSizeOfExpr(). > >> > > > > The AliasAnalysis class has a set of interfaces that can be used to > > preserve the analysis even when some things are changed. Does > > ScalarEvolution have a similar capability? > > You can state that your pass preserves ScalarEvolution. In...
2011 Nov 11
0
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
...ase) return 'Analysis failed' >>>> >>>> const Value *BaseValue = PointerBase->getValue(); >>>> >>>> You get the offset between two load addresses with >>>> SE->getMinusSCEV(). The size of an element is >>>> SE->getSizeOfExpr(). >>>> >>> >>> The AliasAnalysis class has a set of interfaces that can be used >>> to preserve the analysis even when some things are changed. Does >>> ScalarEvolution have a similar capability? >> >> You can state that your pass preserv...
2011 Nov 11
2
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
...>(SE->getPointerBase(PointerSCEV)); > > if (!PointerBase) > return 'Analysis failed' > > const Value *BaseValue = PointerBase->getValue(); > > You get the offset between two load addresses with SE->getMinusSCEV(). > The size of an element is SE->getSizeOfExpr(). > The AliasAnalysis class has a set of interfaces that can be used to preserve the analysis even when some things are changed. Does ScalarEvolution have a similar capability? Thanks again, Hal > Hope that helps > Tobi -- Hal Finkel Postdoctoral Appointee Leadership Computing Facil...
2011 Nov 11
0
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
...interSCEV)); >> >> if (!PointerBase) >> return 'Analysis failed' >> >> const Value *BaseValue = PointerBase->getValue(); >> >> You get the offset between two load addresses with SE->getMinusSCEV(). >> The size of an element is SE->getSizeOfExpr(). >> > > The AliasAnalysis class has a set of interfaces that can be used to > preserve the analysis even when some things are changed. Does > ScalarEvolution have a similar capability? You can state that your pass preserves ScalarEvolution. In this case all analysis results ar...
2011 Nov 10
0
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
...*PointerBase = dyn_cast<SCEVUnknown>(SE->getPointerBase(PointerSCEV)); if (!PointerBase) return 'Analysis failed' const Value *BaseValue = PointerBase->getValue(); You get the offset between two load addresses with SE->getMinusSCEV(). The size of an element is SE->getSizeOfExpr(). Hope that helps Tobi -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: simple_vec.ll URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20111110/15790d03/attachment.ksh>
2011 Nov 15
3
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
...ed' > >>>> > >>>> const Value *BaseValue = PointerBase->getValue(); > >>>> > >>>> You get the offset between two load addresses with > >>>> SE->getMinusSCEV(). The size of an element is > >>>> SE->getSizeOfExpr(). > >>>> > >>> > >>> The AliasAnalysis class has a set of interfaces that can be used > >>> to preserve the analysis even when some things are changed. Does > >>> ScalarEvolution have a similar capability? > >> > >> Y...
2011 Nov 16
0
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
...> > > >>>> const Value *BaseValue = PointerBase->getValue(); > > >>>> > > >>>> You get the offset between two load addresses with > > >>>> SE->getMinusSCEV(). The size of an element is > > >>>> SE->getSizeOfExpr(). > > >>>> > > >>> > > >>> The AliasAnalysis class has a set of interfaces that can be used > > >>> to preserve the analysis even when some things are changed. Does > > >>> ScalarEvolution have a similar capability? >...
2011 Nov 08
3
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
On Tue, 2011-11-08 at 20:24 +0100, Tobias Grosser wrote: > On 11/08/2011 03:36 PM, Hal Finkel wrote: > > On Tue, 2011-11-08 at 12:12 +0100, Tobias Grosser wrote: > >> On 11/08/2011 11:45 AM, Hal Finkel wrote: > >>> I've attached the latest version of my autovectorization patch. > >>> > >>> Working through the test suite has proved to be a
2010 Jun 12
0
[LLVMdev] experimenting with partial evaluation
Good evening, Pierre. Here is an example to you. attached. run with -disable-lazy-comilation. It is *as-is* for Win32 but might be applicable to *-linux-elf more smartly. It does get llvm::Function* by function ptr(not name!), and clone a specialized function, and execute specialized one in the same context as parent lli. > - In a running program, can I get pointers to the llvm Module that
2011 Nov 17
2
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
...vector types. > + int64_t VTy_tss = (int64_t) TD.getTypeStoreSize(VTy); > + > + if (off == VTy_tss) { > + return 1; > + } else if (-off == VTy_tss) { > + return -1; > + } Braces not needed. > + } Did you think of using SE.getSizeOfExpr()? const SCEV *ElementSize = SE.getSizeofExpr(Iprt->getAllocType()) const SCEV *ElementOffset = SE.getUDivExpr(RelOffSCEV, ElementSize); if (const SCEVConstant *ConstOffset = dyn_cast<SCEVConstant>(ElementOffset)) return ConstOffset->getValue(); else return "Unknown...
2010 Jun 11
2
[LLVMdev] experimenting with partial evaluation
Hello ! I wanted to experiment with partial evaluation and llvm seems to be the right tool for this, but since I'm new to it of course I'm a bit lost ! I'll try to explain what I want to do in the simplest possible way : I have a C program. In this program, there is a function f( a,b ). I have a value A for a. I want to specialise f() so I get a function fA( b ) which is the same as
2011 Nov 21
0
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
...nt64_t) TD.getTypeStoreSize(VTy); > > + > > + if (off == VTy_tss) { > > + return 1; > > + } else if (-off == VTy_tss) { > > + return -1; > > + } > Braces not needed. > > > + } > Did you think of using SE.getSizeOfExpr()? > > const SCEV *ElementSize = SE.getSizeofExpr(Iprt->getAllocType()) > const SCEV *ElementOffset = SE.getUDivExpr(RelOffSCEV, ElementSize); > > if (const SCEVConstant *ConstOffset = > dyn_cast<SCEVConstant>(ElementOffset)) > return ConstOffset->getVal...
2011 May 06
0
[LLVMdev] Question about linking llvm-mc when porting a new backend
....a(ConstantFolding.cpp.o) llvm::ScalarEvolution::getEffectiveSCEVType(llvm::Type const*) constin libLLVMAnalysis.a(ScalarEvolution.cpp.o) llvm::ScalarEvolution::getOffsetOfExpr(llvm::StructType const*, unsigned int)in libLLVMAnalysis.a(ScalarEvolution.cpp.o) llvm::ScalarEvolution::getSizeOfExpr(llvm::Type const*)in libLLVMAnalysis.a(ScalarEvolution.cpp.o) llvm::FastISel::hasTrivialKill(llvm::Value const*) constin libLLVMSelectionDAG.a(FastISel.cpp.o) llvm::FastISel::materializeRegForValue(llvm::Value const*, llvm::MVT)in libLLVMSelectionDAG.a(FastISel.cpp.o) llvm::EmitSt...