[SystemZ] Implement orderFrameObjects().
authorJonas Paulsson <paulsson@linux.vnet.ibm.com>
Fri, 21 Jan 2022 21:03:40 +0000 (22:03 +0100)
committerJonas Paulsson <paulsson@linux.vnet.ibm.com>
Thu, 27 Jan 2022 22:09:19 +0000 (16:09 -0600)
commitf541a5048a12b5fdd8a6ae1b6d1bd67366f00ecf
treefade42c3df282864a39eb9eeb28e996fc527c084
parent02ae5e9fbf48630d18802f766008ad6df88027ed
[SystemZ] Implement orderFrameObjects().

By reordering the objects on the stack frame after looking at the users, a
better utilization of displacement operands will result. This means less
needed Load Address instructions for the accessing of these objects.

This is important for very large functions where otherwise small changes
could cause a lot more/less accesses go out of range.

Note: this is not yet enabled for SystemZXPLINKFrameLowering, but should be.

Review: Ulrich Weigand

Differential Revision: https://reviews.llvm.org/D115690
16 files changed:
llvm/lib/Target/SystemZ/SystemZFrameLowering.cpp
llvm/lib/Target/SystemZ/SystemZFrameLowering.h
llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp
llvm/lib/Target/SystemZ/SystemZInstrInfo.h
llvm/test/CodeGen/SystemZ/args-11.ll
llvm/test/CodeGen/SystemZ/foldmemop-imm-01.ll
llvm/test/CodeGen/SystemZ/foldmemop-imm-02.mir
llvm/test/CodeGen/SystemZ/foldmemop-msc.mir
llvm/test/CodeGen/SystemZ/frame-27.mir [new file with mode: 0644]
llvm/test/CodeGen/SystemZ/int-conv-01.ll
llvm/test/CodeGen/SystemZ/int-conv-02.ll
llvm/test/CodeGen/SystemZ/int-conv-06.ll
llvm/test/CodeGen/SystemZ/vector-constrained-fp-intrinsics.ll
llvm/test/DebugInfo/SystemZ/variable-loc.ll
llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/systemz_generated_funcs.ll.generated.expected
llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/systemz_generated_funcs.ll.nogenerated.expected