[all-commits] [llvm/llvm-project] 9bdcf7: [RISCV] Software guard direct calls in large code ...

Jesse Huang via All-commits all-commits at lists.llvm.org
Thu Sep 26 22:04:38 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 9bdcf7aa18ae8061ebe2209433ddeecac4464bc2
      https://github.com/llvm/llvm-project/commit/9bdcf7aa18ae8061ebe2209433ddeecac4464bc2
  Author: Jesse Huang <jesse.huang at sifive.com>
  Date:   2024-09-27 (Fri, 27 Sep 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.h
    M llvm/lib/Target/RISCV/RISCVInstrInfo.td
    M llvm/test/CodeGen/RISCV/calls.ll
    M llvm/test/CodeGen/RISCV/tail-calls.ll

  Log Message:
  -----------
  [RISCV] Software guard direct calls in large code model (#109377)

Support for large code model are added recently, and sementically
direct calls are lowered to an indirect branch with a constant pool target.
By default it does not use the x7 register and this is suboptimal with
Zicfilp because it introduces landing pad check, which is unnecessary
since the constant pool is read-only and unlikely to be tampered.

Change direct calls and tail calls to use x7 as the scratch
register (a.k.a. software guarded branch in the CFI spec)



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list