[mips] Use the delay slot filler to convert branches for microMIPSR6.
authorSimon Dardis <simon.dardis@mips.com>
Thu, 23 Nov 2017 12:38:04 +0000 (12:38 +0000)
committerSimon Dardis <simon.dardis@mips.com>
Thu, 23 Nov 2017 12:38:04 +0000 (12:38 +0000)
commiteb5bfd9889ce9c35fba7bfd71df50c3424647d0e
tree12188c0fffe0eaa25d6588fecda7cff62beb1388
parent4c488975daf72e5ffd3b57971950d9e563d65074
[mips] Use the delay slot filler to convert branches for microMIPSR6.

The MIPS delay slot filler converts delay slot branches into compact
forms for the MIPS ISAs which support them. For branches that compare
(in)equality with with zero, it converts them into branches with implict
zero register operands. These branches have a slightly greater range
than normal two register operands branches.

Changing the branches at this point in the pipeline offers the long
branch pass the ability to mark better judgements if a long branch
sequence is required.

Reviewers: atanasyan

Differential Revision: https://reviews.llvm.org/D40314

llvm-svn: 318908
llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp
llvm/test/CodeGen/Mips/fcmp.ll
llvm/test/CodeGen/Mips/llvm-ir/sub.ll
llvm/test/CodeGen/Mips/tailcall/tailcall.ll