diff options
| author | Mehdi Amini <mehdi.amini@apple.com> | 2016-06-10 18:37:21 +0000 |
|---|---|---|
| committer | Mehdi Amini <mehdi.amini@apple.com> | 2016-06-10 18:37:21 +0000 |
| commit | 1d396832d3b4e916c3901fed5083ad44b68d288e (patch) | |
| tree | 5f67f8040601137231c42121d75a0e68ef347e61 /llvm/test/CodeGen | |
| parent | 4e9cef0491ce508904137eb857df9523f5647ff5 (diff) | |
| download | bcm5719-llvm-1d396832d3b4e916c3901fed5083ad44b68d288e.tar.gz bcm5719-llvm-1d396832d3b4e916c3901fed5083ad44b68d288e.zip | |
Interprocedural Register Allocation (IPRA): add a Transformation Pass
Adds a MachineFunctionPass that scans the body to find calls, and
update the register mask with the one saved by the
RegUsageInfoCollector analysis in PhysicalRegisterUsageInfo.
Patch by Vivek Pandya <vivekvpandya@gmail.com>
Differential Revision: http://reviews.llvm.org/D21180
llvm-svn: 272414
Diffstat (limited to 'llvm/test/CodeGen')
| -rw-r--r-- | llvm/test/CodeGen/Generic/ipra-transform.ll | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/Generic/ipra-transform.ll b/llvm/test/CodeGen/Generic/ipra-transform.ll new file mode 100644 index 00000000000..362af881234 --- /dev/null +++ b/llvm/test/CodeGen/Generic/ipra-transform.ll @@ -0,0 +1,32 @@ + +; RUN: llc < %s | FileCheck %s -check-prefix=NOIPRA +; RUN: llc -enable-ipra < %s | FileCheck %s + + +target triple = "x86_64-unknown-unknown" +define void @bar1() { + ret void +} +define preserve_allcc void @foo()#0 { +; Due to preserve_allcc foo() will save some registers at start of foo() +; prefix NOIPRA will verify that. +; NOIPRA-LABEL: foo: +; NOIPRA: pushq %r10 +; NOIPRA-NEXT: pushq %r9 +; NOIPRA-NEXT: pushq %r8 +; NOIPRA: callq bar1 +; When IPRA is present above registers will not be saved and that is verified +; by prefix CHECK. +; CHECK: foo: +; CHECK-NOT: pushq %r10 +; CHECK-NOT: pushq %r9 +; CHECK-NOT: pushq %r8 +; CHECK: callq bar1 + call void @bar1() + call void @bar2() + ret void +} +define void @bar2() { + ret void +} +attributes #0 = {nounwind} |

