]> granicus.if.org Git - llvm/commit
[mips] Do not allow -opt-bisect-limit to skip the PIC call optimization pass.
authorVasileios Kalintiris <Vasileios.Kalintiris@imgtec.com>
Thu, 27 Oct 2016 15:50:36 +0000 (15:50 +0000)
committerVasileios Kalintiris <Vasileios.Kalintiris@imgtec.com>
Thu, 27 Oct 2016 15:50:36 +0000 (15:50 +0000)
commit1de03247dce73ee6130b9a0029e484294728359f
treedd642a5ff9d88503c171b4e040a26aa212e45e0f
parent0de3e81c28f0ad329b5da4c5a9a1e2dd4e0efb6c
[mips] Do not allow -opt-bisect-limit to skip the PIC call optimization pass.

r282428 added the MipsOptimizePICCall as an opt-in pass that can be
skipped when using the -opt-bisect-limit option. However, this pass is
needed because it generates code that conforms to the o32 ABI
specification by using the $t9 register for PIC calls with JALR
instructions.

This bug was exposed by the fact that skipFunction() also checks for
the "optnone" attribute. This caused functions with that attribute to
break the requirements of the o32 ABI.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285305 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/Mips/MipsOptimizePICCall.cpp
test/CodeGen/Mips/call-optimization.ll