search for: pointerone

Displaying 4 results from an estimated 4 matches for "pointerone".

Did you mean: interone
2011 Nov 11
0
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
...hen that would be more straightforward. I assume you want to know if two load addresses are either identical, have stride one (have a offset of +1) or some other more complicated stuff. What might work is the following (entirely untested): LoadInst *LoadOne = ... LoadInst *LoadTwo = ... Value *PointerOne = LoadOne->getPointer(); Value *PointerTwo = LoadTwo->getPointer(); const SCEV *PointerOneSCEV = SE->getSCEV(PointerOne); const SCEV *PointerTwoSCEV = SE->getSCEV(PointerTwo); // If this is a trivial offset we get something like 1*sizeof(long) const SCEV *Offset = SE->getMinusSCEV(...
2011 Nov 11
2
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
On Fri, 2011-11-11 at 23:55 +0100, Tobias Grosser wrote: > On 11/11/2011 11:36 PM, Hal Finkel wrote: > > On Thu, 2011-11-10 at 23:07 +0100, Tobias Grosser wrote: > >> On 11/08/2011 11:29 PM, Hal Finkel wrote: > >> Talking about this I looked again into ScalarEvolution. > >> > >> To analyze a load, you would do: > >> > >> LoadInst *Load
2011 Nov 15
3
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
...I assume you want to know if two load addresses are either identical, > have stride one (have a offset of +1) or some other more complicated stuff. > > What might work is the following (entirely untested): > > LoadInst *LoadOne = ... > LoadInst *LoadTwo = ... > > Value *PointerOne = LoadOne->getPointer(); > Value *PointerTwo = LoadTwo->getPointer(); > > const SCEV *PointerOneSCEV = SE->getSCEV(PointerOne); > const SCEV *PointerTwoSCEV = SE->getSCEV(PointerTwo); > > // If this is a trivial offset we get something like 1*sizeof(long) > const...
2011 Nov 16
0
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
...ddresses are either identical, > > have stride one (have a offset of +1) or some other more complicated stuff. > > > > What might work is the following (entirely untested): > > > > LoadInst *LoadOne = ... > > LoadInst *LoadTwo = ... > > > > Value *PointerOne = LoadOne->getPointer(); > > Value *PointerTwo = LoadTwo->getPointer(); > > > > const SCEV *PointerOneSCEV = SE->getSCEV(PointerOne); > > const SCEV *PointerTwoSCEV = SE->getSCEV(PointerTwo); > > > > // If this is a trivial offset we get something l...