[PATCH] D16353: [mips] MIPSR6 compact branch support

Simon Dardis via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 20 04:44:21 PST 2016


sdardis created this revision.
sdardis added a reviewer: vkalintiris.
sdardis added a subscriber: llvm-commits.
Herald added a subscriber: dsanders.

Summary:
MIPSR6 introduces a class of branches called compact branches. Unlike the
traditional MIPS branches which have a delay slot, compact branches do not
have a delay slot. The instruction following the compact branch is only
executed if the branch is not taken and must not be a branch.
    
Generate compact branches for MIPSR6 when the delay slot filler cannot fill
a delay slot. Inspect the generated code for forbidden slot hazards (a compact
branch with an adjacent branch or other CTI) and insert nops to clear this
hazard.

http://reviews.llvm.org/D16353

Files:
  lib/Target/Mips/CMakeLists.txt
  lib/Target/Mips/Mips.h
  lib/Target/Mips/MipsDelaySlotFiller.cpp
  lib/Target/Mips/MipsHazardSchedule.cpp
  lib/Target/Mips/MipsSEInstrInfo.cpp
  lib/Target/Mips/MipsTargetMachine.cpp
  test/CodeGen/Mips/analyzebranch.ll
  test/CodeGen/Mips/atomic.ll
  test/CodeGen/Mips/compact-branches.ll
  test/CodeGen/Mips/fcmp.ll
  test/CodeGen/Mips/fpbr.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D16353.45374.patch
Type: text/x-patch
Size: 27929 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160120/a0c1e24f/attachment-0001.bin>


More information about the llvm-commits mailing list