[mips] Reordering callseq* nodes to be linear
authorAleksandar Beserminji <Aleksandar.Beserminji@imgtec.com>
Fri, 29 Sep 2017 09:32:14 +0000 (09:32 +0000)
committerAleksandar Beserminji <Aleksandar.Beserminji@imgtec.com>
Fri, 29 Sep 2017 09:32:14 +0000 (09:32 +0000)
commit502dcb035a2c5f70ff0f1436be26bc8ad27d86eb
tree745903f1ca2b6a945779a73252895bbeb8807539
parent97c327a6ccf1db3c59fe3c263213da84a2b03401
[mips] Reordering callseq* nodes to be linear

Fix nested callseq* nodes by moving callseq_start after the
arguments calculation to temporary registers, so that callseq* nodes
in resulting DAG are linear.

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

llvm-svn: 314497
llvm/lib/Target/Mips/MipsISelLowering.cpp
llvm/lib/Target/Mips/MipsISelLowering.h
llvm/test/CodeGen/Mips/callseq_order.ll [new file with mode: 0644]
llvm/test/CodeGen/Mips/largeimmprinting.ll
llvm/test/CodeGen/Mips/llvm-ir/mul.ll
llvm/test/CodeGen/Mips/llvm-ir/sdiv.ll
llvm/test/CodeGen/Mips/llvm-ir/srem.ll
llvm/test/CodeGen/Mips/llvm-ir/udiv.ll
llvm/test/CodeGen/Mips/llvm-ir/urem.ll