[all-commits] [llvm/llvm-project] 5e3d9f: StackProtector: ensure protection does not interfe...

Tim Northover via All-commits all-commits at lists.llvm.org
Tue Apr 13 07:15:18 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 5e3d9fcc3a8802cea5b850a3ca40c515d916bf82
      https://github.com/llvm/llvm-project/commit/5e3d9fcc3a8802cea5b850a3ca40c515d916bf82
  Author: Tim Northover <t.p.northover at gmail.com>
  Date:   2021-04-13 (Tue, 13 Apr 2021)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
    M llvm/lib/CodeGen/StackProtector.cpp
    A llvm/test/CodeGen/AArch64/stack-protector-musttail.ll
    A llvm/test/CodeGen/ARM/Windows/stack-protector-musttail.ll
    A llvm/test/CodeGen/X86/tailcc-ssp.ll

  Log Message:
  -----------
  StackProtector: ensure protection does not interfere with tail call frame.

The IR stack protector pass must insert stack checks before the call instead of
between it and the return.

Similarly, SDAG one should recognize that ADJCALLFRAME instructions could be
part of the terminal sequence of a tail call. In this case because such call
frames cannot be nested in LLVM the stack protection code must skip over the
whole sequence (or risk clobbering argument registers).




More information about the All-commits mailing list