[all-commits] [llvm/llvm-project] 112d76: [ARM] generate correct code for armv6-m XO big sta...

Ties Stuij via All-commits all-commits at lists.llvm.org
Tue Jul 4 02:40:23 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 112d769e5ee8b7e961122ead3943f06119c05c5b
      https://github.com/llvm/llvm-project/commit/112d769e5ee8b7e961122ead3943f06119c05c5b
  Author: Ties Stuij <ties.stuij at arm.com>
  Date:   2023-07-04 (Tue, 04 Jul 2023)

  Changed paths:
    M llvm/lib/Target/ARM/ARMAsmPrinter.cpp
    M llvm/lib/Target/ARM/Thumb1FrameLowering.cpp
    M llvm/lib/Target/ARM/ThumbRegisterInfo.cpp
    M llvm/test/CodeGen/ARM/large-stack.ll

  Log Message:
  -----------
  [ARM] generate correct code for armv6-m XO big stack operations

The ARM backend codebase is dotted with places where armv6-m will generate
constant pools. Now that we can generate execute-only code for armv6-m, we need
to make sure we use the movs/lsls/adds/lsls/adds/lsls/adds pattern instead of
these.

Big stacks is one of the obvious places. In this patch we take care of two
sites:
1. take care of big stacks in prologue/epilogue
2. take care of save/tSTRspi nodes, which implicitly fixes
   emitThumbRegPlusImmInReg which is used in several frame lowering fns

Reviewed By: efriedma

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




More information about the All-commits mailing list