[PATCH] D82551: [AMDGPU] Don't combine DPP if DPP register is used more than once per instruction
Valery Pykhtin via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Jun 25 10:47:04 PDT 2020
vpykhtin marked an inline comment as done.
vpykhtin added inline comments.
================
Comment at: llvm/lib/Target/AMDGPU/GCNDPPCombine.cpp:359
+ // see defusechain_iterator::operator++
+ if (!Uses.empty() && Uses.back()->getParent() == Use->getParent()) {
+ LLVM_DEBUG(
----------------
rampitec wrote:
> vpykhtin wrote:
> > rampitec wrote:
> > > I assume this exploits the fact we have no instructions which may have more than two uses and are dpp combinable at the same time? If so it deserves a comment.
> > I'm not sure what do you mean - DPP extension can only be applied to src0 operand.
> >
> > addUse is called in the order of defuse chain traversal: defusechain_iterator::operator++ assumes that all per instruction uses comes continuosly - so I decided to assume the same.
> Hm... This looks like a hack to me.
It's a cornerstone for MachineRegisterInfo's use_instr_.. iterators, otherwise it wouldn't be cheap to walk.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D82551/new/
https://reviews.llvm.org/D82551
More information about the llvm-commits
mailing list