Displaying 8 results from an estimated 8 matches for "isaffine".
2011 Nov 19
0
[LLVMdev] How to make Polly ignore some non-affine memory accesses
...pp (working copy)
> @@ -311,29 +311,38 @@
> Type = Access.isRead() ? Read : Write;
> statement = Statement;
>
> - isl_pw_aff *Affine = SCEVAffinator::getPwAff(Statement, Access.getOffset());
> BaseAddr = Access.getBase();
>
> - setBaseName();
> + if (Access.isAffine()) {
>
> - // Devide the access function by the size of the elements in the array.
> - //
> - // A stride one array access in C expressed as A[i] is expressed in LLVM-IR
> - // as something like A[i * elementsize]. This hides the fact that two
> - // subsequent values of '...
2011 Nov 14
1
[LLVMdev] How to make Polly ignore some non-affine memory accesses
...> --- ./include/polly/TempScopInfo.h 2011-11-13 02:37:59.000000000 +0100
> +++ ../llvm2/tools/polly/./include/polly/TempScopInfo.h 2011-11-13 02:34:47.000000000 +0100
> @@ -45,12 +45,13 @@
> private:
> unsigned ElemBytes;
> TypeKind Type;
> + bool is_affine;
I think IsAffine matches more the LLVM coding conventions.
>
> public:
> explicit IRAccess (TypeKind Type, const Value *BaseAddress,
> - const SCEV *Offset, unsigned elemBytes)
> + const SCEV *Offset, unsigned elemBytes, bool affine)
'affine' sh...
2011 Nov 14
0
[LLVMdev] How to make Polly ignore some non-affine memory accesses
...13 02:37:59.000000000
>> +0100
>> +++ ../llvm2/tools/polly/./include/polly/TempScopInfo.h 2011-11-13
>> 02:34:47.000000000 +0100
>> @@ -45,12 +45,13 @@
>> private:
>> unsigned ElemBytes;
>> TypeKind Type;
>> + bool is_affine;
>
> I think IsAffine matches more the LLVM coding conventions.
>
>>
>> public:
>> explicit IRAccess (TypeKind Type, const Value *BaseAddress,
>> - const SCEV *Offset, unsigned elemBytes)
>> + const SCEV *Offset, unsigned elemBytes, bool affine...
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
...,38 @@
>> Type = Access.isRead() ? Read : Write;
>> statement = Statement;
>>
>> - isl_pw_aff *Affine = SCEVAffinator::getPwAff(Statement,
>> Access.getOffset());
>> BaseAddr = Access.getBase();
>>
>> - setBaseName();
>> + if (Access.isAffine()) {
>>
>> - // Devide the access function by the size of the elements in the array.
>> - //
>> - // A stride one array access in C expressed as A[i] is expressed in
>> LLVM-IR
>> - // as something like A[i * elementsize]. This hides the fact that two
>>...
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
2011 Nov 21
0
[LLVMdev] How to get ELF section virtual starting address from MCSymbolRefExpr?
...,38 @@
>> ? ?Type = Access.isRead() ? Read : Write;
>> ? ?statement = Statement;
>>
>> - ?isl_pw_aff *Affine = SCEVAffinator::getPwAff(Statement,
>> Access.getOffset());
>> ? ?BaseAddr = Access.getBase();
>>
>> - ?setBaseName();
>> + ?if (Access.isAffine()) {
>>
>> - ?// Devide the access function by the size of the elements in the array.
>> - ?//
>> - ?// A stride one array access in C expressed as A[i] is expressed in
>> LLVM-IR
>> - ?// as something like A[i * elementsize]. This hides the fact that two
>>...
2012 Mar 19
6
[LLVMdev] SIV tests in LoopDependence Analysis, Sanjoy's patch
...loop-independent dependences.
Might make provision finding input dependences. They're expensive
(typically lots of them), but very useful to guide restructuring to improve
use of cache and registers.
More detailed comments follow below.
Preston
LoopDependenceAnalysis.h
- comment about isAffine() seems wrong. Consider A[2*i + 3*j + 10],
where i and j are both induction variables in the loop nest. Isn't that
affine?
- findOrInsertDependencePair() - insert into what? Could use some
comments explaining whats going on here
- cache should perhaps not be based on pairs of *in...