search for: isvalidmemoryaccess

Displaying 8 results from an estimated 8 matches for "isvalidmemoryaccess".

2013 Jul 14
2
[LLVMdev] Analysis of polly-detect overhead in oggenc
...o explain why polly-detect pass leads to significant compile-time overhead. Besides the reason you have pointed, another reason is resulted from those string buffer operations in "INVALID" MACRO. If we comment both the string buffer operations in "INVALID" MACRO and in the "isValidMemoryAccess" function, the compile-time overhead for oggenc*8.ll would be reduced from 40.5261 ( 51.2%) to 5.8813s (15.9%). I think we should revise these string buffer operations in Polly-detect pass. Best wishes, Star Tan At 2013-07-14 23:01:18,"Sebastian Pop" <sebpop at gmail.com> w...
2013 Jul 14
0
[LLVMdev] Analysis of polly-detect overhead in oggenc
...reInst() > > > GDB is a useful tool! Thanks for Sebastian's advice! > > By setting a break point on llvm::TypeFinder::run(llvm::Module const&, > bool), I find most of calling cases are issued from the following two > callsites: > 0xb7c1c5d2 in polly::ScopDetection::isValidMemoryAccess(llvm::Instruction&, > polly::ScopDetection::DetectionContext&) const () > 0xb7c1d754 in polly::ScopDetection::isValidInstruction(llvm::Instruction&, > polly::ScopDetection::DetectionContext&) const () > > The detailed backtrace of "isValidMemoryAccess" is: &...
2013 Jul 14
5
[LLVMdev] Analysis of polly-detect overhead in oggenc
...0032 + llvm::StoreInst::~StoreInst() GDB is a useful tool! Thanks for Sebastian's advice! By setting a break point on llvm::TypeFinder::run(llvm::Module const&, bool), I find most of calling cases are issued from the following two callsites: 0xb7c1c5d2 in polly::ScopDetection::isValidMemoryAccess(llvm::Instruction&, polly::ScopDetection::DetectionContext&) const () 0xb7c1d754 in polly::ScopDetection::isValidInstruction(llvm::Instruction&, polly::ScopDetection::DetectionContext&) const () The detailed backtrace of "isValidMemoryAccess" is: #0 0x0907b780 in llvm:...
2013 Jul 14
0
[LLVMdev] Analysis of polly-detect overhead in oggenc
...detect pass leads to > significant compile-time overhead. Besides the reason you have pointed, > another reason is resulted from those string buffer operations in "INVALID" > MACRO. If we comment both the string buffer operations in "INVALID" MACRO > and in the "isValidMemoryAccess" function, the compile-time overhead for > oggenc*8.ll would be reduced from 40.5261 ( 51.2%) to 5.8813s (15.9%). Awesome, thanks for the analysis. Can you run again perf on the resulting program: I would still like to understand where we spend the 5.88s in the rest of scop detection. &g...
2011 Nov 14
0
[LLVMdev] How to make Polly ignore some non-affine memory accesses
...) > > if (!Operand) >  return invalid Value; > > return Operand->getValue(); Mmm, about this I think that depends on the fact that I'm still quite unexperienced on the topic and fail to be "optimal" in doing some things. In the old version of Polly in ScopDetection (isValidMemoryAccess function) there was an "isValidAffineFunction" that detected if the access function was affine or not. That function initialized a "Value* " pointer used for alias analysis later in the isValidMemoryAccess function itself. If the "isValidAffineFunction" failed that poi...
2011 Nov 14
1
[LLVMdev] How to make Polly ignore some non-affine memory accesses
...SCEVUnknown *U = dyn_cast<SCEVUnknown>(S)) { > + // This is a leaf node. > + return U->getValue(); > + } > + // No Identified object found. > + return 0; > +} As remarked earlier, I believ this can be replaced by getPointerOperand(). > bool ScopDetection::isValidMemoryAccess(Instruction&Inst, > DetectionContext&Context) const { > Value *Ptr = getPointerOperand(Inst); > @@ -236,8 +254,12 @@ > BasePointer = dyn_cast<SCEVUnknown>(SE->getPointerBase(AccessFunction)); > > if (!BasePoint...
2013 Jul 14
0
[LLVMdev] Analysis of polly-detect overhead in oggenc
...2 + llvm::StoreInst::~StoreInst() GDB is a useful tool! Thanks for Sebastian's advice! By setting a break point on llvm::TypeFinder::run(llvm::Module const&, bool), I find most of calling cases are issued from! the following two callsites: 0xb7c1c5d2 in polly::ScopDetection::isValidMemoryAccess(llvm::Instruction&, polly::ScopDetection::DetectionContext&) const () 0xb7c1d754 in polly::ScopDetection::isValidInstruction(llvm::Instruction&, polly::ScopDetection::DetectionContext&) const () The detailed backtrace of "isValidMemoryAccess" is: #0 0x0907b780 in llvm:...
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