Delivery Status Notification (Failure)

Roman Lebedev via llvm-commits llvm-commits at lists.llvm.org
Thu Feb 28 11:25:38 PST 2019


Also, looks like this committer's email bounces.

On Thu, Feb 28, 2019 at 10:22 PM Mail Delivery Subsystem <
mailer-daemon at googlemail.com> wrote:

> [image: Error Icon]
> Message not delivered
> Your message couldn't be delivered to *jiwang at tilera.com* because the
> remote server is misconfigured. See technical details below for more
> information.
> The response from the remote server was:
>
> 550 5.4.1 [jiwang at tilera.com]: Recipient address rejected: Access denied [
> VE1EUR03FT018.eop-EUR03.prod.protection.outlook.com]
>
>
>
> ---------- Forwarded message ----------
> From: Roman Lebedev <lebedev.ri at gmail.com>
> To: Jiong Wang <jiwang at tilera.com>
> Cc: llvm-commits at lists.llvm.org
> Bcc:
> Date: Thu, 28 Feb 2019 22:21:51 +0300
> Subject: Re: [llvm] r355124 - bpf: improve dead Defs check for XADD
> Test? (Was this reviewed somewhere?)
>
>
> On Thu, Feb 28, 2019 at 10:19 PM Jiong Wang via llvm-commits
> <llvm-commits at lists.llvm.org> wrote:
> >
> > Author: jiwang
> > Date: Thu Feb 28 11:20:26 2019
> > New Revision: 355124
> >
> > URL: http://llvm.org/viewvc/llvm-project?rev=355124&view=rev
> > Log:
> > bpf: improve dead Defs check for XADD
> >
> > BPF XADD semantics require all Defs of XADD are dead, meaning any result
> of
> > XADD insn is not used.
> >
> > However, BPF backend hasn't enabled sub-register liveness track, so when
> > the source and destination operands of XADD are GPR32, there is no
> > sub-register dead info. If we rely on the generic
> > MachineInstr::allDefsAreDead, then we will raise false alarm on GPR32
> Def.
> > This was fine as there was no sub-register code-gen support for XADD
> which
> > will be added by the next patch.
> >
> > To support GPR32 Def, ideally we could just enable sub-registr liveness
> > track on BPF backend, then allDefsAreDead could work on GPR32 Def. This
> > requires implementing TargetSubtargetInfo::enableSubRegLiveness on BPF.
> >
> > However, sub-register liveness tracking module inside LLVM is actually
> > designed for the situation where one register could be split into more
> > than one sub-registers for which case each sub-register could have their
> > own liveness and kill one of them doesn't kill others. So, tracking
> > liveness for each make sense.
> >
> > For BPF, each 64-bit register could only have one 32-bit sub-register.
> This
> > is exactly the case which LLVM think brings no benefits for doing
> > sub-register tracking, because the live range of sub-register must always
> > equal to its parent register, therefore liveness tracking is disabled
> even
> > the back-end has implemented enableSubRegLiveness. The detailed
> information
> > is at r232695:
> >
> >   Author: Matthias Braun <matze at braunis.de>
> >   Date:   Thu Mar 19 00:21:58 2015 +0000
> >   Do not track subregister liveness when it brings no benefits
> >
> > Hence, for BPF, we enhance MachineInstr::allDefsAreDead. Given the solo
> > sub-register always has the same liveness as its parent register, LLVM is
> > already attaching a implicit 64-bit register Def whenever the there is
> > a sub-register Def. The liveness of the implicit 64-bit Def is available.
> > For example, for "lock *(u32 *)(r0 + 4) += w9", the MachineOperand info
> > could be:
> >
> >   $w9 = XADDW32 killed $r0, 4, $w9(tied-def 0),
> >                        implicit killed $r9, implicit-def dead $r9
> >
> > Even though w9 is not marked as Dead, the parent register r9 is marked as
> > Dead correctly, and it is safe to use such information or our purpose.
> >
> > v1 -> v2:
> >  - Simplified code logic inside hasLiveDefs. (Yonghong)
> >
> > Acked-by: Yonghong Song <yhs at fb.com>
> > Signed-off-by: Jiong Wang <jiong.wang at netronome.com>
> >
> >
> > Modified:
> >     llvm/trunk/lib/Target/BPF/BPFMIChecking.cpp
> >
> > Modified: llvm/trunk/lib/Target/BPF/BPFMIChecking.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/BPF/BPFMIChecking.cpp?rev=355124&r1=355123&r2=355124&view=diff
> >
> ==============================================================================
> > --- llvm/trunk/lib/Target/BPF/BPFMIChecking.cpp (original)
> > +++ llvm/trunk/lib/Target/BPF/BPFMIChecking.cpp Thu Feb 28 11:20:26 2019
> > @@ -61,6 +61,97 @@ void BPFMIPreEmitChecking::initialize(Ma
> >    LLVM_DEBUG(dbgs() << "*** BPF PreEmit checking pass ***\n\n");
> >  }
> >
> > +// Make sure all Defs of XADD are dead, meaning any result of XADD insn
> is not
> > +// used.
> > +//
> > +// NOTE: BPF backend hasn't enabled sub-register liveness track, so
> when the
> > +// source and destination operands of XADD are GPR32, there is no
> sub-register
> > +// dead info. If we rely on the generic MachineInstr::allDefsAreDead,
> then we
> > +// will raise false alarm on GPR32 Def.
> > +//
> > +// To support GPR32 Def, ideally we could just enable sub-registr
> liveness track
> > +// on BPF backend, then allDefsAreDead could work on GPR32 Def. This
> requires
> > +// implementing TargetSubtargetInfo::enableSubRegLiveness on BPF.
> > +//
> > +// However, sub-registe
> ----- Message truncated -----
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190228/11971352/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: icon.png
Type: image/png
Size: 5747 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190228/11971352/attachment.png>


More information about the llvm-commits mailing list