]> granicus.if.org Git - llvm/commit
[IPRA] Set callee saved registers to none for local function when IPRA is enabled.
authorMehdi Amini <mehdi.amini@apple.com>
Wed, 13 Jul 2016 23:39:34 +0000 (23:39 +0000)
committerMehdi Amini <mehdi.amini@apple.com>
Wed, 13 Jul 2016 23:39:34 +0000 (23:39 +0000)
commitbf8318ccc87b106a347c584ff40a5356d852fabd
tree88c78e4fe05d8daab2e1977030cc966b23cbb670
parent47acfe627c7884c340fdca2493b330af61270586
[IPRA] Set callee saved registers to none for local function when IPRA is enabled.

IPRA try to optimize caller saved register by propagating register
usage information from callee to caller so it is beneficial to have
caller saved registers compare to callee saved registers when IPRA
is enabled. Please find more detailed explanation here
https://groups.google.com/d/msg/llvm-dev/XRzGhJ9wtZg/tjAJqb0eEgAJ.

This change makes local function do not have any callee preserved
register when IPRA is enabled. A simple test case is also added to
verify this change.

Patch by Vivek Pandya <vivekvpandya@gmail.com>

Differential Revision: http://reviews.llvm.org/D21561

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275347 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/CodeGen/TargetPassConfig.h
include/llvm/Target/TargetFrameLowering.h
lib/CodeGen/RegUsageInfoCollector.cpp
lib/CodeGen/TargetFrameLoweringImpl.cpp
lib/CodeGen/TargetPassConfig.cpp