Sebastian Pop
2011-Dec-20 19:57 UTC
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
Hi, I see that there are two functions in your code that are O(n^2) in number of instructions of the program: getCandidatePairs and buildDepMap. I think that you could make these two functions faster if you work on some form of factored def-use chains for memory, like the VUSE/VDEFs of GCC. I was trying to find a similar representation in LLVM: isn't there already a virtual SSA representation for memory references in LLVM? Thanks, Sebastian -- Qualcomm Innovation Center, Inc is a member of Code Aurora Forum
Hal Finkel
2011-Dec-20 20:08 UTC
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
On Tue, 2011-12-20 at 13:57 -0600, Sebastian Pop wrote:> Hi, > > I see that there are two functions in your code that are O(n^2) in > number of instructions of the program: getCandidatePairs and > buildDepMap. I think that you could make these two functions faster > if you work on some form of factored def-use chains for memory, like > the VUSE/VDEFs of GCC.Thanks for the comment! I am not aware of anything along these lines, although it would be quite helpful. The pass spends a significant amount of time running the aliasing-analysis queries. -Hal> > I was trying to find a similar representation in LLVM: isn't there already > a virtual SSA representation for memory references in LLVM? > > Thanks, > Sebastian > -- > Qualcomm Innovation Center, Inc is a member of Code Aurora Forum-- Hal Finkel Postdoctoral Appointee Leadership Computing Facility Argonne National Laboratory
Sebastian Pop
2011-Dec-27 18:19 UTC
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
Hi, On Tue, Dec 20, 2011 at 2:08 PM, Hal Finkel <hfinkel at anl.gov> wrote:> On Tue, 2011-12-20 at 13:57 -0600, Sebastian Pop wrote: >> Hi, >> >> I see that there are two functions in your code that are O(n^2) in >> number of instructions of the program: getCandidatePairs and >> buildDepMap. I think that you could make these two functions faster >> if you work on some form of factored def-use chains for memory, like >> the VUSE/VDEFs of GCC. > > Thanks for the comment! I am not aware of anything along these lines, > although it would be quite helpful. The pass spends a significant amount > of time running the aliasing-analysis queries.I see no reason against committing the vectorizer pass as it is now: we can rework the slow parts of the vectorizer once we'll have the factored use-def chains for memory. Thanks, Sebastian -- Qualcomm Innovation Center, Inc is a member of Code Aurora Forum
Reasonably Related Threads
- [LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
- [LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
- [LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
- [LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
- [LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass