dag at cray.com
2013-Nov-22 17:31 UTC
[LLVMdev] DAGCompiler::MergeConsecutiveStores Question
In DAGCombiner::MergeConsecutiveStores, there is this check: if (Index->getAlignment() != St->getAlignment()) break; Apparently this check ensures that all of the stores have the same alignment. Why is that necessary? This seems very overly restrictive to me. -David
Hi David, You are right. This check is overly restrictive. We can replace this check with code that uses the alignment of the first store. Thanks, Nadav On Nov 22, 2013, at 9:31 AM, dag at cray.com wrote:> In DAGCombiner::MergeConsecutiveStores, there is this check: > > if (Index->getAlignment() != St->getAlignment()) > break; > > Apparently this check ensures that all of the stores have the same > alignment. Why is that necessary? This seems very overly restrictive > to me. > > -David > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
On Nov 22, 2013, at 9:38 AM, Nadav Rotem <nrotem at apple.com> wrote:> Hi David, > > You are right. This check is overly restrictive. We can replace this check with code that uses the alignment of the first store.Except for cases where the alignment is zero, which is the natural alignment of the type. :)> > Thanks, > Nadav > > On Nov 22, 2013, at 9:31 AM, dag at cray.com wrote: > >> In DAGCombiner::MergeConsecutiveStores, there is this check: >> >> if (Index->getAlignment() != St->getAlignment()) >> break; >> >> Apparently this check ensures that all of the stores have the same >> alignment. Why is that necessary? This seems very overly restrictive >> to me. >> >> -David >> _______________________________________________ >> LLVM Developers mailing list >> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu >> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Possibly Parallel Threads
- [LLVMdev] DAGCompiler::MergeConsecutiveStores Question
- [LLVMdev] i1 types in MergeConsecutiveStores
- large slowdown in DAGCombiner::MergeConsecutiveStores
- [LLVMdev] DAGCombiner::MergeConsecutiveStores
- [LLVMdev] [llvm] r187267 - SLP Vectorier: Don't vectorize really short chains because they are already handled by the SelectionDAG store-vectorizer, which does a better job in deciding when to vectorize.