[mips][fastisel] Handle 0-4 arguments without SelectionDAG.
authorDaniel Sanders <daniel.sanders@imgtec.com>
Thu, 28 Jul 2016 14:55:28 +0000 (14:55 +0000)
committerDaniel Sanders <daniel.sanders@imgtec.com>
Thu, 28 Jul 2016 14:55:28 +0000 (14:55 +0000)
commite0b529f619b9157c4ff405428655126fe1370f91
treebcc0487d1114b7e2b50d3bea685628164dc2897b
parentcf3f83e46b4c092b4621bc98c6fdc8edeb3e692f
[mips][fastisel] Handle 0-4 arguments without SelectionDAG.

Summary:
Implements fastLowerArguments() to avoid the need to fall back on
SelectionDAG for 0-4 argument functions that don't do tricky things like
passing double in a pair of i32's.

This allows us to move all except one test to -fast-isel-abort=3. The
remaining one has function prototypes of the form 'i32 (i32, double, double)'
which requires floats to be passed in GPR's.

Reviewers: sdardis

Subscribers: dsanders, llvm-commits, sdardis

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

llvm-svn: 276982
25 files changed:
llvm/lib/Target/Mips/MipsFastISel.cpp
llvm/test/CodeGen/Mips/Fast-ISel/br1.ll
llvm/test/CodeGen/Mips/Fast-ISel/bswap1.ll
llvm/test/CodeGen/Mips/Fast-ISel/callabi.ll
llvm/test/CodeGen/Mips/Fast-ISel/constexpr-address.ll
llvm/test/CodeGen/Mips/Fast-ISel/div1.ll
llvm/test/CodeGen/Mips/Fast-ISel/fastalloca.ll
llvm/test/CodeGen/Mips/Fast-ISel/fpcmpa.ll
llvm/test/CodeGen/Mips/Fast-ISel/fpext.ll
llvm/test/CodeGen/Mips/Fast-ISel/fpintconv.ll
llvm/test/CodeGen/Mips/Fast-ISel/fptrunc.ll
llvm/test/CodeGen/Mips/Fast-ISel/icmpa.ll
llvm/test/CodeGen/Mips/Fast-ISel/loadstore2.ll
llvm/test/CodeGen/Mips/Fast-ISel/loadstoreconv.ll
llvm/test/CodeGen/Mips/Fast-ISel/loadstrconst.ll
llvm/test/CodeGen/Mips/Fast-ISel/logopm.ll
llvm/test/CodeGen/Mips/Fast-ISel/memtest1.ll
llvm/test/CodeGen/Mips/Fast-ISel/nullvoid.ll
llvm/test/CodeGen/Mips/Fast-ISel/overflt.ll
llvm/test/CodeGen/Mips/Fast-ISel/rem1.ll
llvm/test/CodeGen/Mips/Fast-ISel/retabi.ll
llvm/test/CodeGen/Mips/Fast-ISel/shftopm.ll
llvm/test/CodeGen/Mips/Fast-ISel/simplestore.ll
llvm/test/CodeGen/Mips/Fast-ISel/simplestorefp1.ll
llvm/test/CodeGen/Mips/Fast-ISel/simplestorei.ll