CT_01_010 - Landing pad (LLVM)
About
Landing pad (Zicfilp) is an ISA extension for protecting control-flow integrity and is a sibling spec of shadow stack (Zicfiss).
RISC-V ARC (Architecture Review Committee) has approved the latest draft (v0.4.0) of Zicfilp spec. Now it requires SW implementations.
In addition to MediaTek that has demand for LLVM support, it looks that the community, including SiFive and Rivos, are also working on it.
RISE will be a great venue for collaboration.
Stakeholders/Partners
RISE:
MediaTek: Chibang Kuan
SiFive: Kito Cheng, Jesse Huang
External:
Dependencies
PSABI CFI spec
Status
Development | IN PROGRESS |
|
|---|---|---|
Development Timeline | NA |
|
Upstreaming | IN pROGRESS |
|
Upstream Version |
|
|
Contacts | Chibang Kuan (MediaTek) |
|
Dependencies | PSABI CFI spec |
|
Updates
Sep 19, 2025
Patch to make -fcf-branch-protection=return to only require Zimop not Zicfiss merged. https://github.com/llvm/llvm-project/pull/152252 For compatibility with RVA23.
Moved to 2H2025
Feb 12, 2025
Moved to 1H2025
Jul 11, 2024
Moved to 2H2024
May 6, 2024
Landing pad support for Spike has been merged: https://github.com/riscv-software-src/riscv-isa-sim/pull/1582
Proxy kernel support for landing pad: https://github.com/riscv-software-src/riscv-pk/pull/311
An LLVM PoC that supports simple label scheme: https://github.com/mylai-mtk/llvm-project/pull/1
An LLVM WIP that supports complex label schcme: https://github.com/mylai-mtk/llvm-project/commits/zicfilp-func-sig-preview/
Feb 15, 2024
Project reported as priority for 1H2024.