search for: afffunc

Displaying 16 results from an estimated 16 matches for "afffunc".

2013 Jul 21
2
[LLVMdev] Analysis of polly-detect overhead in oggenc
...INVALID(CFG, "Non branch instruction terminates BB: " + BB.getName()); > would be converted into: > LastFailure = "Non branch instruction terminates BB: " + BB.getName().str(); > > > Second, it simplifies some complex operations like: > INVALID(AffFunc, > "Non affine branch in BB '" << BB.getName() << "' with LHS: " > << *LHS << " and RHS: " << *RHS); > into: > LastFailure = "Non affine branch in BB...
2013 Jul 22
0
[LLVMdev] Analysis of polly-detect overhead in oggenc
...Non branch instruction terminates BB: " + BB.getName()); >> would be converted into: >> LastFailure = "Non branch instruction terminates BB: " + BB.getName().str(); >> >> >> Second, it simplifies some complex operations like: >> INVALID(AffFunc, >> "Non affine branch in BB '" << BB.getName() << "' with LHS: " >> << *LHS << " and RHS: " << *RHS); >> into: >> LastFailure = "Non aff...
2013 Jul 22
2
[LLVMdev] Analysis of polly-detect overhead in oggenc
...minates BB: " + BB.getName()); >>> would be converted into: >>> LastFailure = "Non branch instruction terminates BB: " + BB.getName().str(); >>> >>> >>> Second, it simplifies some complex operations like: >>> INVALID(AffFunc, >>> "Non affine branch in BB '" << BB.getName() << "' with LHS: " >>> << *LHS << " and RHS: " << *RHS); >>> into: >>> LastFail...
2013 Jul 16
1
[LLVMdev] Analysis of polly-detect overhead in oggenc
...ly reduce compile-time overhead when compiling big source code. For example, for oggen*8.ll, the compile time is reduced from 40.5261 ( 51.2%) to 5.8813s (15.9%) with this patch file. On top of your patch, I have removed from ScopDetection.cpp all printing of LLVM values, like this: - INVALID(AffFunc, "Non affine access function: " << *AccessFunction); + INVALID(AffFunc, "Non affine access function: "); there are a good dozen or so of these pretty printing. With these changes the compile time spent in ScopDetection drops dramatically to almost 0: here is the longe...
2011 Nov 14
1
[LLVMdev] How to make Polly ignore some non-affine memory accesses
...> DetectionContext&Context) const { > Value *Ptr = getPointerOperand(Inst); > @@ -236,8 +254,12 @@ > BasePointer = dyn_cast<SCEVUnknown>(SE->getPointerBase(AccessFunction)); > > if (!BasePointer) > - INVALID(AffFunc, "No base pointer"); > - > + { > +// INVALID(AffFunc, "No base pointer"); > + BaseValue = (Value*) GetBaseValue(AccessFunction); > + } > + else > + { > BaseValue = BasePointer->getValue(); I don't see a need for any change here. Both...
2013 Jul 22
0
[LLVMdev] Analysis of polly-detect overhead in oggenc
...getName()); >>>> would be converted into: >>>> LastFailure = "Non branch instruction terminates BB: " + BB.getName().str(); >>>> >>>> >>>> Second, it simplifies some complex operations like: >>>> INVALID(AffFunc, >>>> "Non affine branch in BB '" << BB.getName() << "' with LHS: " >>>> << *LHS << " and RHS: " << *RHS); >>>> into: >>>>...
2011 Nov 19
0
[LLVMdev] How to make Polly ignore some non-affine memory accesses
...> + > //===----------------------------------------------------------------------===// > // Statistics. > > @@ -236,7 +241,9 @@ > BasePointer = dyn_cast<SCEVUnknown>(SE->getPointerBase(AccessFunction)); > > if (!BasePointer) > + { > INVALID(AffFunc, "No base pointer"); > + } This change is unneeded and unrelated. > > BaseValue = BasePointer->getValue(); > > @@ -245,8 +252,9 @@ > > AccessFunction = SE->getMinusSCEV(AccessFunction, BasePointer); > > - if (!isAffineExpr(&Context.CurRegion...
2013 Jul 21
0
[LLVMdev] Analysis of polly-detect overhead in oggenc
.... For example, code like this: INVALID(CFG, "Non branch instruction terminates BB: " + BB.getName()); would be converted into: LastFailure = "Non branch instruction terminates BB: " + BB.getName().str(); Second, it simplifies some complex operations like: INVALID(AffFunc, "Non affine branch in BB '" << BB.getName() << "' with LHS: " << *LHS << " and RHS: " << *RHS); into: LastFailure = "Non affine branch in BB: " + BB.getName()...
2011 Nov 14
0
[LLVMdev] How to make Polly ignore some non-affine memory accesses
...                 DetectionContext&Context) const { >>    Value *Ptr = getPointerOperand(Inst); >> @@ -236,8 +254,12 @@ >>    BasePointer = >> dyn_cast<SCEVUnknown>(SE->getPointerBase(AccessFunction)); >> >>    if (!BasePointer) >> -    INVALID(AffFunc, "No base pointer"); >> - >> +  { >> +//    INVALID(AffFunc, "No base pointer"); >> +    BaseValue = (Value*) GetBaseValue(AccessFunction); >> +  } >> +  else >> +  { >>    BaseValue = BasePointer->getValue(); > > I don...
2011 Nov 02
5
[LLVMdev] How to make Polly ignore some non-affine memory accesses
Mmm I found out a very strange behavior (to me) of the SCEV analysis of the loop bound of the external loop I posted. When in ScopDetection it gets the SCEV of the external loop bound in the "isValidLoop()" function with: const SCEV *LoopCount = SE->getBackedgeTakenCount(L); It returns a SCEVCouldNotCompute, but if I change the "if" block inside the loop from: if
2013 Jul 14
3
[LLVMdev] Analysis of polly-detect overhead in oggenc
On 07/14/2013 08:05 AM, Star Tan wrote: > I have found that the extremely expensive compile-time overhead comes from the string buffer operation for "INVALID" MACRO in the polly-detect pass. > Attached is a hack patch file that simply remove the string buffer operation. This patch file can significantly reduce compile-time overhead when compiling big source code. For example, for
2011 Nov 18
5
[LLVMdev] How to make Polly ignore some non-affine memory accesses
2011/11/15 Marcello Maggioni <hayarms at gmail.com>: > 2011/11/14 Tobias Grosser <tobias at grosser.es>: >> On 11/14/2011 02:45 PM, Marcello Maggioni wrote: >>> >>> 2011/11/14 Tobias Grosser<tobias at grosser.es>: >>>> >>>> On 11/14/2011 01:24 AM, Marcello Maggioni wrote: >>>>> >>>>> Hi Tobias.
2011 Nov 20
2
[LLVMdev] How to make Polly ignore some non-affine memory accesses
...-----------------------------------------------------===// >>  // Statistics. >> >> @@ -236,7 +241,9 @@ >>    BasePointer = >> dyn_cast<SCEVUnknown>(SE->getPointerBase(AccessFunction)); >> >>    if (!BasePointer) >> +  { >>      INVALID(AffFunc, "No base pointer"); >> +  } > > This change is unneeded and unrelated. > >> >>    BaseValue = BasePointer->getValue(); >> >> @@ -245,8 +252,9 @@ >> >>    AccessFunction = SE->getMinusSCEV(AccessFunction, BasePointer); >> >...
2013 Jul 14
0
[LLVMdev] Analysis of polly-detect overhead in oggenc
I have found that the extremely expensive compile-time overhead comes from the string buffer operation for "INVALID" MACRO in the polly-detect pass. Attached is a hack patch file that simply remove the string buffer operation. This patch file can significantly reduce compile-time overhead when compiling big source code. For example, for oggen*8.ll, the compile time is reduced from
2013 Jul 14
5
[LLVMdev] Analysis of polly-detect overhead in oggenc
At 2013-07-14 13:20:42,"Tobias Grosser" <tobias at grosser.es> wrote: >On 07/13/2013 09:18 PM, Star Tan wrote: >> >> >> At 2013-07-14 02:30:07,"Tobias Grosser" <tobias at grosser.es> wrote: >>> On 07/13/2013 10:13 AM, Star Tan wrote: >>>> Hi Tobias, >>> >>> Hi Star, >[...] >>> Before we write a
2011 Nov 21
0
[LLVMdev] How to get ELF section virtual starting address from MCSymbolRefExpr?
...-----------------------------------------------------===// >> ?// Statistics. >> >> @@ -236,7 +241,9 @@ >> ? ?BasePointer = >> dyn_cast<SCEVUnknown>(SE->getPointerBase(AccessFunction)); >> >> ? ?if (!BasePointer) >> + ?{ >> ? ? ?INVALID(AffFunc, "No base pointer"); >> + ?} > > This change is unneeded and unrelated. > >> >> ? ?BaseValue = BasePointer->getValue(); >> >> @@ -245,8 +252,9 @@ >> >> ? ?AccessFunction = SE->getMinusSCEV(AccessFunction, BasePointer); >> >...