search for: nschwart

Displaying 9 results from an estimated 9 matches for "nschwart".

2005 Jul 26
2
[LLVMdev] llvm::ConvertibleToGEP
It seems like general dependence analysis in LLVM should require that this function be, well, functional. Is it simply a placeholder waiting for someone to come and fill in the details? It also appears that some other things besides dependence analysis depend on it as well...anyone working on this? Naftali
2005 Jul 18
3
[LLVMdev] Dependence Analysis
Hi, everyone. I've been examining llvm for a while and been duly impressed. I'd like to contribute in the area of dependence analysis, and a good place to start seems to be in the transformation of pointers to explicit array accesses. Is anyone else working on this? If not, does this seem a plausible place to start and how would be the best way to go about it? Thanks, Naftali
2005 Jul 29
0
[LLVMdev] patch for pointer-to-array conversion
The enlosed patch for IndVarSimplify.cpp works even when the pointer increment is deeply nested wrt pointer initialization, but note that it needs to have loop structures preserved, as in the following: int A[3000000], B[20000], C[100], Z; volatile int I, J, K; int main() { int i, j, k, *a, *b, *c; for ( a = &A[0], i = 0; i != 300; i++ ) { I++;
2005 Jul 26
2
[LLVMdev] llvm::ConvertibleToGEP
But it's completely empty, no? const Type *llvm::ConvertibleToGEP(const Type *Ty, Value *OffsetVal, std::vector<Value*> &Indices, const TargetData &TD, BasicBlock::iterator *BI) { return 0; } in lib/Transforms/TransformInternals.cpp, how can this be? Naftali On Tue,
2005 Jul 29
1
[LLVMdev] help with pointer-to-array conversion
OK, thanks Chris, I've found that running opt -loopsimplify -instcombine -indvars -stats gives me the setup I need for this transformation, and a small patch makes it happen in the simple case we discussed. However, I'm having some trouble when things get a bit more complicated with 3 nesting levels: int A[3000000], B[20000], C[100], Z; int main() { int i, j, k, *a, *b,
2005 Jul 21
5
[LLVMdev] Re: Dependence Analysis
> LLVM already includes this: the -indvars pass. It turns things like this: > > int *P = for (...; ... ; ++P) > *P > > to: > > int *P = ... > for (int i = 0; ... ; ++i) > P[i] > > If you're interested in dependence analysis, the next important step is to > start analyzing distance and direction vectors. Well, specifically, I was thinking of a
2005 Jul 28
2
[LLVMdev] help with pointer-to-array conversion
I now understand that IndVarSimplify.cpp is capable of reproducing array references when the pointer initialization from the array address is found inside the immediately enclosing loop, such that in the following code: int A[20000], B[100], Z; int main() { int i, j, *a, *b; for ( a = &A[0], i = 0; i != 200; i++ ) for ( b = &B[0], j = 0; j != 100; j++
2005 Jul 26
1
[LLVMdev] llvm::ConvertibleToGEP
Well, I guess I was hoping soemthing like this would help in the pointer-to-array transformation for the following code: > > int A[100], B[100], C[100], X, Y, Z; > > > > int *p_a = &A[0]; > > int *p_b = &B[0]; > > int *p_c = &C[0]; > > > > int i, j, k, f; > > for ( k = 0; k < Z; k++ ) > >
2005 Jul 26
2
[LLVMdev] llvm::ConvertibleToGEP
I'm sorry, it had seemed to me that the documented functionality: // ConvertibleToGEP - This function returns true if the specified value V is // a valid index into a pointer of type Ty. If it is valid, Idx is filled in // with the values that would be appropriate to make this a getelementptr // instruction. The type returned is the root type that the GEP would point to would be quite