[mips] Add support for isBranchOffsetInRange and use it for MipsLongBranch
authorSimon Dardis <simon.dardis@mips.com>
Wed, 16 May 2018 10:03:05 +0000 (10:03 +0000)
committerSimon Dardis <simon.dardis@mips.com>
Wed, 16 May 2018 10:03:05 +0000 (10:03 +0000)
commit5cf9de4b727b9311d5883fa682b1bd00b50647a8
treed25a402aefed160fef4ccbcd0e8d66f76e5a181c
parentcaa163ef6a753e4306a057f8f508f5aea299dba8
[mips] Add support for isBranchOffsetInRange and use it for MipsLongBranch

Add support for this target hook, covering MIPS, microMIPS and MIPSR6, along
with some tests. Also add missing getOppositeBranchOpc() cases exposed by the
tests.

Reviewers: atanasyan, abeserminji, smaksimovic

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

llvm-svn: 332446
15 files changed:
llvm/lib/Target/Mips/MipsInstrInfo.cpp
llvm/lib/Target/Mips/MipsInstrInfo.h
llvm/lib/Target/Mips/MipsLongBranch.cpp
llvm/lib/Target/Mips/MipsSEInstrInfo.cpp
llvm/test/CodeGen/Mips/longbranch/branch-limits-fp-micromips.mir [new file with mode: 0644]
llvm/test/CodeGen/Mips/longbranch/branch-limits-fp-micromipsr6.mir [new file with mode: 0644]
llvm/test/CodeGen/Mips/longbranch/branch-limits-fp-mips.mir [new file with mode: 0644]
llvm/test/CodeGen/Mips/longbranch/branch-limits-fp-mipsr6.mir [new file with mode: 0644]
llvm/test/CodeGen/Mips/longbranch/branch-limits-int-microMIPS.mir [new file with mode: 0644]
llvm/test/CodeGen/Mips/longbranch/branch-limits-int-micromipsr6.mir [new file with mode: 0644]
llvm/test/CodeGen/Mips/longbranch/branch-limits-int-mips64.mir [new file with mode: 0644]
llvm/test/CodeGen/Mips/longbranch/branch-limits-int-mips64r6.mir [new file with mode: 0644]
llvm/test/CodeGen/Mips/longbranch/branch-limits-int-mipsr6.mir [new file with mode: 0644]
llvm/test/CodeGen/Mips/longbranch/branch-limits-int.mir [new file with mode: 0644]
llvm/test/CodeGen/Mips/longbranch/branch-limits-msa.mir [new file with mode: 0644]