[PATCH] D90850: [VE] LVLGen and vreg-to-vreg copy

Simon Moll via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Nov 5 06:22:17 PST 2020


simoll created this revision.
simoll added reviewers: kaz7, k-ishizaka.
simoll added a project: VE.
Herald added subscribers: llvm-commits, hiraditya, mgorny.
Herald added a project: LLVM.
simoll requested review of this revision.

This patch implements two things to have one testable unit:

1. LVLGen inserts 'lvl' instructions to set the VL register.
2. vreg-to-vreg copy uses vector instructions.

The VE backend represents vector instructions with an explicit 'i32'
vector length operand.  In the VE ISA, the vector length is always read
from the VL hardware register.  The LVLGen pass makes sure that the VL
register always holds the right value before each vector instruction.

      

We add tests for the 'fastcc', which passes vector operands in registers.
This triggers the vreg-to-vreg copy path, which requires code to set the
VL register, which in turn is inserted by the LVLGen pass.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D90850

Files:
  llvm/lib/Target/VE/CMakeLists.txt
  llvm/lib/Target/VE/LVLGen.cpp
  llvm/lib/Target/VE/VE.h
  llvm/lib/Target/VE/VEInstrInfo.cpp
  llvm/lib/Target/VE/VETargetMachine.cpp
  llvm/test/CodeGen/VE/Vector/fastcc.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D90850.303105.patch
Type: text/x-patch
Size: 11081 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20201105/08014c51/attachment.bin>


More information about the llvm-commits mailing list