[PATCH] D72598: [VE] Minimal codegen for empty functions

Simon Moll via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 13 05:01:43 PST 2020


simoll created this revision.
simoll added reviewers: asb, atanasyan, t.p.northover, craig.topper, rengolin, arsenm, echristo, RKSimon, fhahn.
simoll added a project: VE.
Herald added subscribers: llvm-commits, hiraditya, mgorny, wdng.
Herald added a project: LLVM.

This patch implements minimal VE code generation for empty function bodies (no args, no value return).

Contents

- empty function code generation test.
- Minimal function prologue & epilogue emission
- Instruction formats and instruction definitions as far as required for the empty function prologue & epilogue.
- I64 register class definitions.

This patch deviates from the common practice of having separate patches for the register file, instruction formats and instructions that offer self-contained logic but come without any tests. We are trying something new here: by implementing the (close to) minimum of everything in one patch, this patch is a minimal testable unit for VE code generation.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D72598

Files:
  llvm/lib/Target/VE/CMakeLists.txt
  llvm/lib/Target/VE/InstPrinter/CMakeLists.txt
  llvm/lib/Target/VE/InstPrinter/LLVMBuild.txt
  llvm/lib/Target/VE/InstPrinter/VEInstPrinter.cpp
  llvm/lib/Target/VE/InstPrinter/VEInstPrinter.h
  llvm/lib/Target/VE/LLVMBuild.txt
  llvm/lib/Target/VE/MCTargetDesc/CMakeLists.txt
  llvm/lib/Target/VE/MCTargetDesc/LLVMBuild.txt
  llvm/lib/Target/VE/MCTargetDesc/VEMCAsmInfo.cpp
  llvm/lib/Target/VE/MCTargetDesc/VEMCAsmInfo.h
  llvm/lib/Target/VE/MCTargetDesc/VEMCTargetDesc.cpp
  llvm/lib/Target/VE/MCTargetDesc/VEMCTargetDesc.h
  llvm/lib/Target/VE/MCTargetDesc/VETargetStreamer.cpp
  llvm/lib/Target/VE/MCTargetDesc/VETargetStreamer.h
  llvm/lib/Target/VE/VE.h
  llvm/lib/Target/VE/VE.td
  llvm/lib/Target/VE/VEAsmPrinter.cpp
  llvm/lib/Target/VE/VECallingConv.td
  llvm/lib/Target/VE/VEFrameLowering.cpp
  llvm/lib/Target/VE/VEFrameLowering.h
  llvm/lib/Target/VE/VEISelDAGToDAG.cpp
  llvm/lib/Target/VE/VEISelLowering.cpp
  llvm/lib/Target/VE/VEISelLowering.h
  llvm/lib/Target/VE/VEInstrFormats.td
  llvm/lib/Target/VE/VEInstrInfo.cpp
  llvm/lib/Target/VE/VEInstrInfo.h
  llvm/lib/Target/VE/VEInstrInfo.td
  llvm/lib/Target/VE/VEMCInstLower.cpp
  llvm/lib/Target/VE/VEMachineFunctionInfo.cpp
  llvm/lib/Target/VE/VEMachineFunctionInfo.h
  llvm/lib/Target/VE/VERegisterInfo.cpp
  llvm/lib/Target/VE/VERegisterInfo.h
  llvm/lib/Target/VE/VERegisterInfo.td
  llvm/lib/Target/VE/VESubtarget.cpp
  llvm/lib/Target/VE/VESubtarget.h
  llvm/lib/Target/VE/VETargetMachine.cpp
  llvm/lib/Target/VE/VETargetMachine.h
  llvm/lib/Target/VE/VETargetTransformInfo.h
  llvm/test/CodeGen/VE/simple_prologue_epilogue.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D72598.237626.patch
Type: text/x-patch
Size: 107069 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200113/a4f65071/attachment.bin>


More information about the llvm-commits mailing list