search for: maywrite

Displaying 20 results from an estimated 24 matches for "maywrite".

2013 Aug 08
2
[LLVMdev] [Polly] Summary of some expensive compiler passes, especially PollyDependence
...Ref_x[12] }; ReadAccess := { Stmt_for_body5[i0] -> MemRef_x[4] }; MustWriteAccess := { Stmt_for_body5[i0] -> MemRef_x[4] }; ReadAccess := { Stmt_for_body5[i0] -> MemRef_x[0] }; ... Consequently, the PollyDependence pass would produce very complex Read/Write/MayWrite as follows: Read: { Stmt_for_body[i0] -> MemRef_in[i0] : i0 >= 0 and i0 <= 15; Stmt_for_body5[i0] -> MemRef_x[15] : (i0 >= 0 and i0 <= 9) or (i0 >= 0 and i0 <= 9) or (i0 >= 0 and i0 <= 9) or (i0 >= 0 and i0 <= 9) or (i0 >= 0 and i0 <= 9) or (i0 >...
2013 Aug 09
2
[LLVMdev] [Polly] Summary of some expensive compiler passes, especially PollyDependence
...t;>> diff --git a/lib/Analysis/Dependences.cpp b/lib/Analysis/Dependences.cpp index 9f918f3..39c3fb6 100644 --- a/lib/Analysis/Dependences.cpp +++ b/lib/Analysis/Dependences.cpp @@ -95,6 +95,10 @@ void Dependences::calculateDependences(Scop &S) { collectInfo(S, &Read, &Write, &MayWrite, &Schedule); + Read = isl_union_map_coalesce(Read); + Write = isl_union_map_coalesce(Write); + MayWrite = isl_union_map_coalesce(MayWrite); + DEBUG(dbgs() << "Read: " << Read << "\n" >>> >>> This patch is unreadable in the mail. However, t...
2013 Aug 09
0
[LLVMdev] [Polly] Summary of some expensive compiler passes, especially PollyDependence
...>> diff --git a/lib/Analysis/Dependences.cpp b/lib/Analysis/Dependences.cpp index 9f918f3..39c3fb6 100644 --- a/lib/Analysis/Dependences.cpp +++ b/lib/Analysis/Dependences.cpp @@ -95,6 +95,10 @@ void Dependences::calculateDependences(Scop &S) { collectInfo(S, &Read, &Write, &MayWrite, &Schedule); + Read = isl_union_map_coalesce(Read); + Write = isl_union_map_coalesce(Write); + MayWrite = isl_union_map_coalesce(MayWrite); + DEBUG(dbgs() << "Read: " << Read << "\n" >>>> >>>> This patch is unreadable in the mail....
2013 Aug 08
0
[LLVMdev] [Polly] Summary of some expensive compiler passes, especially PollyDependence
...Access := { Stmt_for_body5[i0] -> MemRef_x[4] }; > MustWriteAccess := { Stmt_for_body5[i0] -> MemRef_x[4] }; > ReadAccess := { Stmt_for_body5[i0] -> MemRef_x[0] }; > ... > Consequently, the PollyDependence pass would produce very complex Read/Write/MayWrite as follows: > > > Read: { Stmt_for_body[i0] -> MemRef_in[i0] : i0 >= 0 and i0 <= > 15; Stmt_for_body5[i0] -> MemRef_x[15] : (i0 >= 0 and i0 <= 9) or (i0 >> = 0 and i0 <= 9) or (i0 >= 0 and i0 <= 9) or (i0 >= 0 and i0 <= 9) or > (i0 >=...
2013 Aug 09
2
[LLVMdev] [Polly] Summary of some expensive compiler passes, especially PollyDependence
...tmt_for_body5[i0] -> MemRef_x[4] }; >>        MustWriteAccess :=    { Stmt_for_body5[i0] -> MemRef_x[4] }; >>        ReadAccess :=    { Stmt_for_body5[i0] -> MemRef_x[0] }; >>        ... >> Consequently, the PollyDependence pass would produce very complex Read/Write/MayWrite as follows: >> >> >>        Read: { Stmt_for_body[i0] -> MemRef_in[i0] : i0 >= 0 and i0 <= >> 15; Stmt_for_body5[i0] -> MemRef_x[15] : (i0 >= 0 and i0 <= 9) or (i0 >>> = 0 and i0 <= 9) or (i0 >= 0 and i0 <= 9) or (i0 >= 0 and i0 <= 9...
2013 Aug 09
0
[LLVMdev] [Polly] Summary of some expensive compiler passes, especially PollyDependence
...t;>> diff --git a/lib/Analysis/Dependences.cpp b/lib/Analysis/Dependences.cpp index 9f918f3..39c3fb6 100644 --- a/lib/Analysis/Dependences.cpp +++ b/lib/Analysis/Dependences.cpp @@ -95,6 +95,10 @@ void Dependences::calculateDependences(Scop &S) { collectInfo(S, &Read, &Write, &MayWrite, &Schedule); + Read = isl_union_map_coalesce(Read); + Write = isl_union_map_coalesce(Write); + MayWrite = isl_union_map_coalesce(MayWrite); + DEBUG(dbgs() << "Read: " << Read << "\n" >> >> This patch is unreadable in the mail. However, the one y...
2013 Jul 28
0
[LLVMdev] [Polly] Analysis of the expensive compile-time overhead of Polly Dependence pass
...l very high! This _looks_ already a lot better. Very nice! > I have investigated a little about it. Maybe this is becauseisl_union_map_add_mapin Polly-dependencewould still introduces new parameters based on the resulted produced by ScopInfo. > > Without this patch file, the Read, Write, MayWrite (input to ISL library)calculated by collectInfo are: > > Read:[p_0, p_1, p_2] -> { Stmt_for_body6[i0] -> MemRef_input[o0] : (2o0 = p_0 + 16i0 and i0 >= 0 and i0 <= 7) or (2o0 = p_1 + 16i0 and i0 >= 0 and i0 <= 7) } > Write:[p_0, p_1, p_2] -> { Stmt_for_body6[i0] ->...
2011 Nov 14
2
[LLVMdev] How to make Polly ignore some non-affine memory accesses
...ot more complicated. > > Indeed! The patch almost shrinked to half the code it was before those > changes! Great work. Thanks. (You motivated me to fix this, when you asked about non-affine access functions) >> this should be >> } else { >> >>> + Type = MayWrite; >> >> You are right, we should use may-accesses here. But why always setting the >> type to may-write? A read should remain a read (as there is no difference >> between read and may-read). > > You are right, in the patch for the old version that was handled > corre...
2011 Nov 15
0
[LLVMdev] How to make Polly ignore some non-affine memory accesses
...d! The patch almost shrinked to half the code it was before those >> changes! Great work. > > Thanks. (You motivated me to fix this, when you asked about non-affine > access functions) > >>> this should be >>>    } else { >>> >>>> +    Type = MayWrite; >>> >>> You are right, we should use may-accesses here. But why always setting >>> the >>> type to may-write? A read should remain a read (as there is no difference >>> between read and may-read). >> >> You are right, in the patch for the ol...
2013 Jul 26
6
[LLVMdev] [Polly] Analysis of the expensive compile-time overhead of Polly Dependence pass
Hi Sebastian, Recently, I found the "Polly - Calculate dependences" pass would lead to significant compile-time overhead when compiling some loop-intensive source code. Tobias told me you found similar problem as follows: http://llvm.org/bugs/show_bug.cgi?id=14240 My evaluation shows that "Polly - Calculate dependences" pass consumes 96.4% of total compile-time overhead
2011 Nov 14
0
[LLVMdev] How to make Polly ignore some non-affine memory accesses
.... >> @@ -334,6 +338,12 @@ >>    AccessRelation = isl_map_set_tuple_name(AccessRelation, isl_dim_out, >>                                            getBaseName().c_str()); >>  } >> +  else >> +  { > > this should be >    } else { > >> +    Type = MayWrite; > > You are right, we should use may-accesses here. But why always setting the > type to may-write? A read should remain a read (as there is no difference > between read and may-read). You are right, in the patch for the old version that was handled correctly, I don't know how thi...
2011 Nov 14
1
[LLVMdev] How to make Polly ignore some non-affine memory accesses
...by the size of the elements in the array. > @@ -334,6 +338,12 @@ > AccessRelation = isl_map_set_tuple_name(AccessRelation, isl_dim_out, > getBaseName().c_str()); > } > + else > + { this should be } else { > + Type = MayWrite; You are right, we should use may-accesses here. But why always setting the type to may-write? A read should remain a read (as there is no difference between read and may-read). > + AccessRelation = isl_map_from_basic_map(createBasicAccessMap(Statement)); > + } > +} > > voi...
2007 Apr 18
4
[patch 0/2] Updates to compat VDSOs
Hi Andi, Here's a couple of patches to fix up COMPAT_VDSO: The first is a straightforward implementation of Jan's original idea of relocating the VDSO to match its mapped location. Unlike Jan and Zach's version, I changed it to relocate based on the phdrs rather than the sections; the result is pleasantly compact. The second patch takes advantage of the fact that all the
2007 Apr 18
4
[patch 0/2] Updates to compat VDSOs
Hi Andi, Here's a couple of patches to fix up COMPAT_VDSO: The first is a straightforward implementation of Jan's original idea of relocating the VDSO to match its mapped location. Unlike Jan and Zach's version, I changed it to relocate based on the phdrs rather than the sections; the result is pleasantly compact. The second patch takes advantage of the fact that all the
2011 Nov 18
0
[LLVMdev] How to make Polly ignore some non-affine memory accesses
...t;>> changes! Great work. >>> >>> Thanks. (You motivated me to fix this, when you asked about non-affine >>> access functions) >>> >>>>> this should be >>>>>    } else { >>>>> >>>>>> +    Type = MayWrite; >>>>> >>>>> You are right, we should use may-accesses here. But why always setting >>>>> the >>>>> type to may-write? A read should remain a read (as there is no difference >>>>> between read and may-read). >>>>...
2011 Nov 18
5
[LLVMdev] How to make Polly ignore some non-affine memory accesses
...the code it was before those >>> changes! Great work. >> >> Thanks. (You motivated me to fix this, when you asked about non-affine >> access functions) >> >>>> this should be >>>>    } else { >>>> >>>>> +    Type = MayWrite; >>>> >>>> You are right, we should use may-accesses here. But why always setting >>>> the >>>> type to may-write? A read should remain a read (as there is no difference >>>> between read and may-read). >>> >>> You are ri...
2011 Apr 07
2
[LLVMdev] Polly - extending its polyhedral model
Hello everyone Is there someone planning to work on adding to Polly the techniques described in "The polyhedral model is more widely applicable than you think" to increase the coverage of the polyhedral model? I'm not familiar with Polly, but this would involve modifying its front-end and the code generator right? Any idea of how difficult this would be? Thanks! -Arnaldo
2007 Apr 18
1
[PATCH] Gerd Hoffman's move-vsyscall-into-user-address-range patch
...t mm_struct *mm = current->mm; + int ret; + + vma = kmem_cache_alloc(vm_area_cachep, SLAB_KERNEL); + if (!vma) + return -ENOMEM; + + memset(vma, 0, sizeof(struct vm_area_struct)); + /* Could randomize here */ + vma->vm_start = VSYSCALL_BASE; + vma->vm_end = VSYSCALL_BASE + PAGE_SIZE; + /* MAYWRITE to allow gdb to COW and set breakpoints */ + vma->vm_flags = VM_READ|VM_EXEC|VM_MAYREAD|VM_MAYEXEC|VM_MAYWRITE; + vma->vm_flags |= mm->def_flags; + vma->vm_page_prot = protection_map[vma->vm_flags & 7]; + vma->vm_ops = &syscall_vm_ops; + vma->vm_mm = mm; + + down_write(...
2007 Apr 18
1
[PATCH] Gerd Hoffman's move-vsyscall-into-user-address-range patch
...t mm_struct *mm = current->mm; + int ret; + + vma = kmem_cache_alloc(vm_area_cachep, SLAB_KERNEL); + if (!vma) + return -ENOMEM; + + memset(vma, 0, sizeof(struct vm_area_struct)); + /* Could randomize here */ + vma->vm_start = VSYSCALL_BASE; + vma->vm_end = VSYSCALL_BASE + PAGE_SIZE; + /* MAYWRITE to allow gdb to COW and set breakpoints */ + vma->vm_flags = VM_READ|VM_EXEC|VM_MAYREAD|VM_MAYEXEC|VM_MAYWRITE; + vma->vm_flags |= mm->def_flags; + vma->vm_page_prot = protection_map[vma->vm_flags & 7]; + vma->vm_ops = &syscall_vm_ops; + vma->vm_mm = mm; + + down_write(...
2007 Apr 18
4
[patch 0/4] Clean up asm/bugs.h, identify_cpu() and update COMPAT_VDSO
Hi Andi, Four patches: - clean up asm/bugs.h, by moving all the C code into its own C file - split identify_cpu() into boot and secondary variants, so that boot-time setup functions can be marked __init - repost of the COMPAT_VDSO patches with a bit more robustness from unknown DT_tags, and functions marked __init, since all this is boot-time only setup. Thanks, J --