Displaying 9 results from an estimated 9 matches for "chosenpairs".
2011 Dec 02
5
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
...std::vector<Value *> &PairableInsts,
> + std::multimap<ValuePair, ValuePair> &ConnectedPairs,
> + DenseSet<ValuePair> &PairableInstUsers,
> + DenseMap<Value *, Value *>& ChosenPairs);
> +
> + void fuseChosenPairs(BasicBlock&BB,
> + std::vector<Value *> &PairableInsts,
> + DenseMap<Value *, Value *>& ChosenPairs);
> +
> + bool isInstVectorizable(Instruction *I, bool&IsSimpleLoadStore);...
2011 Dec 14
0
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
...ctor<Value *> &PairableInsts,
> > + std::multimap<ValuePair, ValuePair> &ConnectedPairs,
> > + DenseSet<ValuePair> &PairableInstUsers,
> > + DenseMap<Value *, Value *>& ChosenPairs);
> > +
> > + void fuseChosenPairs(BasicBlock&BB,
> > + std::vector<Value *> &PairableInsts,
> > + DenseMap<Value *, Value *>& ChosenPairs);
> > +
> > + bool isInstVectorizable(Instruction *I...
2011 Nov 23
0
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
On Mon, 2011-11-21 at 21:22 -0600, Hal Finkel wrote:
> On Mon, 2011-11-21 at 11:55 -0600, Hal Finkel wrote:
> > Tobias,
> >
> > I've attached an updated patch. It contains a few bug fixes and many
> > (refactoring and coding-convention) changes inspired by your comments.
> >
> > I'm currently trying to fix the bug responsible for causing a compile
2011 Dec 02
0
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
...block has N candidate pairs, then they could all be
connected, but then there are only N of them. In this extreme, the
algorithm is also O(N^2). Because both extremes are O(N^2), I've
generally figured that this is also O(N^2), but I may want to do more
math for the paper I'm writing.
fuseChosenPairs - This is linear in the number of selected pairs, and
that number scales with the number of instructions in the BB. In the
worst case, after each fusion, a number of instructions need to be moved
(up to almost the total number in the block). Thus, this is also O(N^2).
>
> Also, you choose a...
2011 Nov 22
5
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
On Mon, 2011-11-21 at 11:55 -0600, Hal Finkel wrote:
> Tobias,
>
> I've attached an updated patch. It contains a few bug fixes and many
> (refactoring and coding-convention) changes inspired by your comments.
>
> I'm currently trying to fix the bug responsible for causing a compile
> failure when compiling
>
2011 Nov 17
2
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
...er case letter (e.g. Leader
or Boats)."
This happens at several places. Can you check your code for this.
> + void replValues(BasicBlock&BB,
> + std::vector<Value *> &pairableInsts,
> + DenseMap<Value *, Value *>& chosenPairs);
'repl' is no obvious abbreviation for me. Can you use the full word or
equivalent shorter one?
> +
> + virtual bool runOnBasicBlock(BasicBlock&BB) {
> + // const TargetData *TD = getAnalysisIfAvailable<TargetData>();
> +
> + bool changed = false;
&g...
2011 Nov 21
0
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
...r Boats)."
>
> This happens at several places. Can you check your code for this.
>
> > + void replValues(BasicBlock&BB,
> > + std::vector<Value *> &pairableInsts,
> > + DenseMap<Value *, Value *>& chosenPairs);
> 'repl' is no obvious abbreviation for me. Can you use the full word or
> equivalent shorter one?
>
> > +
> > + virtual bool runOnBasicBlock(BasicBlock&BB) {
> > + // const TargetData *TD = getAnalysisIfAvailable<TargetData>();
> > +
&...
2011 Nov 16
0
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
Tobias, et al.,
Attached is the my autovectorization pass. I've fixed a bug that appears
when using -bb-vectorize-aligned-only, fixed some 80-col violations,
etc., and at least on x86_64, all test cases pass except for a few; and
all of these failures look like instruction-selection bugs. For example:
MultiSource/Applications/ClamAV - fails to compile shared_sha256.c with
an error: error in
2011 Nov 15
3
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
Tobias,
I've attached the latest version of my autovectorization patch. I was
able to add support for using the ScalarEvolution analysis for
load/store pairing (thanks for your help!). This led to a modest
performance increase and a modest compile-time increase. This version
also has a cutoff as you suggested (although the default value is set
high (4000 instructions between pairs) because