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