[all-commits] [llvm/llvm-project] 4dba59: [ARM] prologue instructions emitted for naked func...

simonwallis2 via All-commits all-commits at lists.llvm.org
Tue Jun 9 03:33:39 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 4dba59689d008df7be37733de4bb537b2911d3ad
      https://github.com/llvm/llvm-project/commit/4dba59689d008df7be37733de4bb537b2911d3ad
  Author: Simon Wallis <simon.wallis2 at arm.com>
  Date:   2020-06-09 (Tue, 09 Jun 2020)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
    A llvm/test/CodeGen/ARM/naked-no-prolog.ll

  Log Message:
  -----------
  [ARM] prologue instructions emitted for naked function with >64 byte argument

Summary:

The naked function attribute is meant to suppress all function
prologue/epilogue instructions.

On ARM, some are still emitted if an argument greater than 64 bytes in size
(the threshold for using the byval attribute in IR) is passed partially
in registers.

Perform the check for Attribute::Naked and early exit in
SelectionDAGISel::LowerArguments().

Checking in ARMFrameLowering::determineCalleeSaves() is too late.

A test case is included.

Reviewers: llvm-commits, olista01, danielkiss

Reviewed By: danielkiss

Subscribers: kristof.beyls, hiraditya, danielkiss

Tags: #llvm

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

Change-Id: Icedecf2a4ad31bc3c35ab0df7489a9d346e1f7cc




More information about the All-commits mailing list