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