search for: dependenceinfo

Displaying 20 results from an estimated 26 matches for "dependenceinfo".

2020 Apr 23
2
Incorrect behavior in the LLVM dependence analyzer
Hi all, I am trying to use the dependence analyzer in a pass that I am writing and I was surprised to see an incorrect behavior when I try to query DependenceInfo for dependences between instructions. Specifically, if the two instructions are loads/stores accessing an array in a loop, the depend() method would return a dependence regardless of the order of instructions specified. (i.e. if the two instructions where L1 and S1, both depend(L1, S1) and depend(S...
2020 Mar 18
2
valid BasicAA behavior?
...Am Mi., 18. März 2020 um 11:34 Uhr schrieb Chawla, Pankaj <pankaj.chawla at intel.com>: > >> There seems to be a bug in DI, see Felipe's answer. > Maybe I missed something. There seems to be no resolution to the problem. How can DA fix this without help from alias analysis? DependenceInfo is not using the AA interface correctly. Either DI has to be fixed, or another method added to AA that gives additional guarantees. Please see the bug report for details. > >> Since aliasPHI looks for any incoming value contradicting the NoAlias assumption, it would be equivalant to alwa...
2020 Mar 19
2
valid BasicAA behavior?
Am Mi., 18. März 2020 um 18:15 Uhr schrieb Chawla, Pankaj <pankaj.chawla at intel.com>: > > >> DependenceInfo is not using the AA interface correctly. Either DI has to be fixed, or another method added to AA that gives additional guarantees. Please see the bug report for details. > > Thanks for updating the bug report but GetUnderlyingObject() doesn't help in this case. The underlying object of t...
2016 Mar 24
3
Polly as an Analysis pass in LLVM
...; at EuroLLVM last week, I hope to have a fairly good idea of how to > > proceed. To this end, I will give you my personal road map that might be > > a good start for the proposal too, though it is not the only way we > > could do this: > > > > 1) Make ScopInfo & DependenceInfo function passes to avoid the > > RegionPassManager for these Polly analysis parts. [This doesn't > > need to be the first step but it should be done at some point.] > > 2) Create a secondary ScopDetection & ScopInfo that is restricted to > > analyze...
2016 Mar 21
3
Polly as an Analysis pass in LLVM
...After talking to a couple of LLVM and Polly folks at EuroLLVM last week, I hope to have a fairly good idea of how to proceed. To this end, I will give you my personal road map that might be a good start for the proposal too, though it is not the only way we could do this: 1) Make ScopInfo & DependenceInfo function passes to avoid the RegionPassManager for these Polly analysis parts. [This doesn't need to be the first step but it should be done at some point.] 2) Create a secondary ScopDetection & ScopInfo that is restricted to analyze a single loop. We might just create a du...
2016 Mar 23
0
Polly as an Analysis pass in LLVM
...LLVM and Polly folks > at EuroLLVM last week, I hope to have a fairly good idea of how to > proceed. To this end, I will give you my personal road map that might be > a good start for the proposal too, though it is not the only way we > could do this: > > 1) Make ScopInfo & DependenceInfo function passes to avoid the > RegionPassManager for these Polly analysis parts. [This doesn't > need to be the first step but it should be done at some point.] > 2) Create a secondary ScopDetection & ScopInfo that is restricted to > analyze a single loop. We mi...
2016 Mar 25
0
Polly as an Analysis pass in LLVM
...e to have a fairly good idea of how to > > > proceed. To this end, I will give you my personal road map that might > be > > > a good start for the proposal too, though it is not the only way we > > > could do this: > > > > > > 1) Make ScopInfo & DependenceInfo function passes to avoid the > > > RegionPassManager for these Polly analysis parts. [This doesn't > > > need to be the first step but it should be done at some point.] > > > 2) Create a secondary ScopDetection & ScopInfo that is restricted to > &gt...
2016 May 07
3
[GSoC 2016] Introduction - Polly as an Analysis pass in LLVM
...er the following items in the first month of this GSoC. 1: Decouple ScopInfo object from pass and create two passes. One region pass to preserve compatibility with existing Polly transformation passes, other will be a function pass to be used by PolyhedralInfo pass as mentioned below. 2: Decouple DependenceInfo object from pass and create two passes. Same as above. 3: Create the interface PolyhedralInfo, which will extract Memory Access wise dependence information from Polly and provide few simple interfaces like isParallel(), isVectorizable(), tripCount(Loop&). Please feel free to post your comment...
2016 Mar 25
1
Polly as an Analysis pass in LLVM
...idea of how to >> > > proceed. To this end, I will give you my personal road map that might >> be >> > > a good start for the proposal too, though it is not the only way we >> > > could do this: >> > > >> > > 1) Make ScopInfo & DependenceInfo function passes to avoid the >> > > RegionPassManager for these Polly analysis parts. [This doesn't >> > > need to be the first step but it should be done at some point.] >> > > 2) Create a secondary ScopDetection & ScopInfo that is restricted...
2020 Feb 17
3
Differentiate array access at IR level
Hi LLVM community, I am trying to differentiate access to different array elements, for example: for (int i = 1; i < 10; i++) { a[i] = a[i] + 10; b[i] = a[i - 1] * 2; } If it is possible to tell it loads/stores 3 different array elements: a[i], b[i] and a[i - 1] at IR level? Thanks for your time in advance! Best, Michael -------------- next part -------------- An HTML
2016 Feb 03
4
opt with Polly doesn't find the passes
...ion.cpp:INITIALIZE_PASS_BEGIN(PollyCanonicalize, "polly-canonicalize", lib/Transform/ScheduleOptimizer.cpp:INITIALIZE_PASS_BEGIN(IslScheduleOptimizer, "polly-opt-isl", lib/Transform/DeadCodeElimination.cpp:INITIALIZE_PASS_BEGIN(DeadCodeElim, "polly-dce", lib/Analysis/DependenceInfo.cpp:INITIALIZE_PASS_BEGIN(DependenceInfo, "polly-dependences", lib/Analysis/ScopDetection.cpp:INITIALIZE_PASS_BEGIN(ScopDetection, "polly-detect", lib/Analysis/ScopInfo.cpp:INITIALIZE_PASS_BEGIN(ScopInfo, "polly-scops", lib/Exchange/JSONExporter.cpp:INITIALIZE_PASS_B...
2016 Aug 03
3
Extracting the names of the variables that creates loop-carried dependencies
Hi, I would like to know if it is possible to extract the source level names of variables that create loop-carried dependencies. For example, for the following code: for (int i = 0; i < A_ROW; i++) { for (int j = 1; j < B_COL; j++) { a_matrix[i][j] = a_matrix[i][j - 1]; } } I get the following AST: #pragma omp parallel for
2017 Sep 13
2
[RFC] Polly Status and Integration
On Wed, Sep 13, 2017 at 8:05 PM, Hal Finkel <hfinkel at anl.gov> wrote: > > On 09/13/2017 06:53 AM, C Bergström wrote: > > > > On Wed, Sep 13, 2017 at 7:43 PM, Hal Finkel <hfinkel at anl.gov> wrote: > >> >> On 09/13/2017 02:16 AM, C Bergström wrote: >> >> A completely non-technical point, but what's the current "polly"
2020 Jul 01
2
How to get information about data dependencies?
Hello, I had a question similar to this one in the link below. http://lists.llvm.org/pipermail/llvm-dev/2015-January/080589.html In addition, if we can't get RAW dependencies information using the provided llvm tools, how would I write a pass for it? Are there any helpful resources? Thanks, Jiho -------------- next part -------------- An HTML attachment was scrubbed... URL:
2016 Aug 05
0
Extracting the names of the variables that creates loop-carried dependencies
...realized this is a crossposting llvm-dev/polly-dev. It has > already been answered on the polly-dev side. Sorry for the redundant > answer. > > Michael > > 2016-08-05 14:25 GMT+02:00 Michael Kruse <llvmdev at meinersbur.de>: >> Hi Miguel, >> >> Polly's DependenceInfo will give you the required information. For >> your example the result is >> >> RAW dependences: >> [A_ROW, B_COL] -> { Stmt_for_body4[i0, i1] -> >> Stmt_for_body4[i0, 1 + i1] : 0 <= i0 < A_ROW and 0 <= i1 <= -3 + B_COL >&...
2016 Feb 03
3
opt with Polly doesn't find the passes
I just checkout release_38 branches of llvm, clang and polly and built it on and x86 Ubuntu with cmake: CMAKE_BUILD_TYPE="Debug" CMAKE_INSTALL_PREFIX="$HOME/toolchain/install/llvm-3.8" LLVM_TARGETS_TO_BUILD="X86" cmake -G "Unix Makefiles" \ -DBUILD_SHARED_LIBS="ON" \ -DCMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE \
2020 Mar 18
2
valid BasicAA behavior?
Am Di., 17. März 2020 um 16:56 Uhr schrieb Chawla, Pankaj via llvm-dev <llvm-dev at lists.llvm.org>: > All I am expecting from DA is a direction vector containing (*). There seems to be a bug in DI, see Felipe's answer. > I think the main problem is that currently there is no exact way DA can query AliasAnalysis in a ‘conservatively correct’ manner. > > Using UnknownSize
2017 Aug 03
2
Dependence analysis - missing loop-carried dependencies?
...t;:6: ; preds = %5 %7 = load i32, i32* %i, align 4 %8 = add nsw i32 %7, 1 store i32 %8, i32* %i, align 4 br label %2 ; <label>:9: ; preds = %2 ret i32 0 } bool runOnFunction(Function &F) override { DependenceInfo *depinfo = &getAnalysis<DependenceAnalysisWrapperPass>().getDI(); // check dependencies between each pair of instructions for (inst_iterator I = inst_begin(F), E = inst_end(F); I != E; I++) { for (inst_iterator J = I; J != E; J++) { std::unique_ptr<Depende...
2020 Jan 21
2
Writing loop transformations on the right representation is more productive
...avioural dependencies and disabling the > pass may have side-effects. This applies literally to any pass. I think the problem of reusability is even worse for the current loop optimization passes. We have multiple, partially transformation-specific dependence analyses, such LoopAccessAnalysis, DependenceInfo, LoopInterchangeLegality, etc. Another one is currently in the works. https://xkcd.com/927/ actually does apply here, but I also think that pass-specific dependence analyses do not scale. > > I'd put loop optimizations earlier into the pipeline than vectorization. Where exactly is a ph...
2020 Jan 15
2
Writing loop transformations on the right representation is more productive
Am Sa., 11. Jan. 2020 um 07:43 Uhr schrieb Renato Golin <rengolin at gmail.com >: > On Sat, 11 Jan 2020 at 00:34, Michael Kruse <llvmdev at meinersbur.de> wrote: > > Yes, as mentioned in the Q&A. Unfortunately VPlan is able to represent > > arbitrary code not has cheap copies. > > Orthogonal, but we should also be looking into implementing the cheap > copies