[LLVMdev] Register based vector insert/extract
Christopher Lamb
christopher.lamb at gmail.com
Wed Jun 6 15:06:41 PDT 2007
On Apr 24, 2007, at 12:01 PM, Chris Lattner wrote:
> Yes, we need those. I think these are the major pieces needed.
> These are
> all relatively small and independent pieces, so we can tackle these
> one at
> a time.
<snip>
> 4. The DAG scheduler pass (which creates machine instrs from dag
> nodes)
> currently thinks of register operands as simple unsigned's for
> vreg
> #'s. This needs to be extended to be vreg+subreg pairs (see
> 'CreateVirtualRegisters').
> 5. We need to decide how to represent subregs in the DAG. Your
> SDSubOperand idea is fine, but I don't think it needs to be an
> actual
> new subclass of SDOperand. Instead, it could just be a binary
> SDNode,
> where the LHS is the register input and the RHS is a
> TargetConstant
> specifying the subreg#.
> 6. [optional] We would like syntax to create these things for writting
> patterns in the .td file instead of requiring custom matching
> code.
> 7. The register allocator needs to rewrite subreg references using
> #1. This should be very simple.
For 5 I am currently creating new binary SDNodes for 'from_subreg'
and 'to_subreg' in ISD, is this in line with your thinking for the
design Chris? The issue I ran into is that you essentially need
subreg insert and extract.
--
Christopher Lamb
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20070606/08b71094/attachment.html>
More information about the llvm-dev
mailing list