[llvm-dev] Help in understanding physreg LiveVariables
Tyler Kenney via llvm-dev
llvm-dev at lists.llvm.org
Wed Aug 24 07:08:03 PDT 2016
Okay, will try it out. Thanks a lot for the help, I think it's becoming
more and more clear that I ought to re-design the frontend and make all the
decisions about which buffers are going to live on the stack and which are
going to live in the register file during a new pre-ISel IR-level pass. It
seems like a design of that nature would be much more consistent with llvm
and allow both ISel and RA to function much more normally, but I'm hoping
to get away with the current design for at least a little while longer
while I finalize some post-ISel stuff.
Cheers,
Tyler
From: Matthias Braun <mbraun at apple.com>
To: Tyler Kenney/Marlborough/IBM at IBMUS
Cc: llvm-dev at lists.llvm.org
Date: 08/23/2016 05:37 PM
Subject: Re: [llvm-dev] Help in understanding physreg LiveVariables
Sent by: mbraun at apple.com
This is probably the first target building PHIs in the selection DAG, but I
don't see a reason why it wouldn't work.
- Matthias
On Aug 23, 2016, at 2:35 PM, Tyler Kenney <tjkenney at us.ibm.com>
wrote:
So if I first create the value in an entry BB and then build a
CopyToReg but then I have to read it in a BB that loops back to
itself, with it's own CopyToReg at the end, then I have two CopyToReg
nodes for the same value. In this case, I need to create 3 virt regs,
1 for each CopyToReg and a third for the CopyFromReg in the beginning
of the loop BB, right? And then I need to build a PHI instruction at
the beginning of the loop MBB that relates the 3 virt regs, right? Is
there anything else I need to do regarding the creation of the new
phi instruction, do you know?
Tyler
<graycol.gif>Matthias Braun ---08/23/2016 05:17:14 PM---> On Aug 23,
2016, at 2:07 PM, Tyler Kenney <tjkenney at us.ibm.com> wrote: >
From: Matthias Braun <mbraun at apple.com>
To: Tyler Kenney/Marlborough/IBM at IBMUS
Cc: llvm-dev at lists.llvm.org
Date: 08/23/2016 05:17 PM
Subject: Re: [llvm-dev] Help in understanding physreg LiveVariables
Sent by: mbraun at apple.com
On Aug 23, 2016, at 2:07 PM, Tyler Kenney <
tjkenney at us.ibm.com> wrote:
So if I create a value with a DAG.getUndef(myVT); call
during instruction legalization, how can I access that
value as input in another BB/DAG (also during instruction
legalization) without worrying about live-ins and/or phi
nodes?
Can I create a single virtual register and build both a
CopyToReg and a CopyFromReg node with it? I assumed that
would break SSA.
Yes in Selection to you need to use CopyToReg/CoptFromReg to write
to/from vregs that should cross basic blocks. Yes indeed this
currently has to respect SSA form, so there should only be a single
CopyToReg for each vreg and that def should dominate all users.
Perhaps I should have said that what stops me is that I
don't know how to pass a newly created virtual register
from one MBB/DAG to another.
You have to remember the number somewhere, so you can use CopyFromReg
on the vreg.
- Matthias
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160824/c8152cdd/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: graycol.gif
Type: image/gif
Size: 105 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160824/c8152cdd/attachment.gif>
More information about the llvm-dev
mailing list