[mips] Optimize materialization of i64 constants
authorSimon Dardis <simon.dardis@imgtec.com>
Mon, 25 Jul 2016 09:57:28 +0000 (09:57 +0000)
committerSimon Dardis <simon.dardis@imgtec.com>
Mon, 25 Jul 2016 09:57:28 +0000 (09:57 +0000)
commit618975206e7bdac07f52e3955032477960d4548b
tree7ab57f8f28d55627db5d92851ee8a2e8b64c5b59
parent3a18a931a8f47879c4b246600a2bd59ca4f61c82
[mips] Optimize materialization of i64 constants

Avoid MipsAnalyzeImmediate usage if the constant fits in an 32-bit
integer. This allows us to generate the same instructions for the
materialization of the same constants regardless the width of their
type.

Patch by: Vasileios Kalintiris

Contributions by: Simon Dardis

Reviewers: Daniel Sanders

Differential Review: https://reviews.llvm.org/D21689

llvm-svn: 276628
14 files changed:
llvm/lib/Target/Mips/MicroMips64r6InstrInfo.td
llvm/lib/Target/Mips/MicroMipsInstrInfo.td
llvm/lib/Target/Mips/Mips64InstrInfo.td
llvm/lib/Target/Mips/MipsInstrInfo.td
llvm/lib/Target/Mips/MipsSEISelDAGToDAG.cpp
llvm/test/CodeGen/Mips/cmov.ll
llvm/test/CodeGen/Mips/fcmp.ll
llvm/test/CodeGen/Mips/llvm-ir/add.ll
llvm/test/CodeGen/Mips/llvm-ir/and.ll
llvm/test/CodeGen/Mips/llvm-ir/lshr.ll
llvm/test/CodeGen/Mips/llvm-ir/ret.ll
llvm/test/CodeGen/Mips/llvm-ir/select-int.ll
llvm/test/CodeGen/Mips/llvm-ir/shl.ll
llvm/test/CodeGen/Mips/mips64imm.ll