[all-commits] [llvm/llvm-project] db0340: Minimal unwinding information (DWARF CFI) checker ...

AmirHossein PashaeeHir via All-commits all-commits at lists.llvm.org
Tue Jul 8 18:37:17 PDT 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: db03408b24459f0ba9f320509c7f8b3ec128e4b4
      https://github.com/llvm/llvm-project/commit/db03408b24459f0ba9f320509c7f8b3ec128e4b4
  Author: AmirHossein PashaeeHir <42866056+amsen20 at users.noreply.github.com>
  Date:   2025-07-08 (Tue, 08 Jul 2025)

  Changed paths:
    A llvm/include/llvm/DWARFCFIChecker/DWARFCFIAnalysis.h
    A llvm/include/llvm/DWARFCFIChecker/DWARFCFIFunctionFrameAnalyzer.h
    A llvm/include/llvm/DWARFCFIChecker/DWARFCFIFunctionFrameReceiver.h
    A llvm/include/llvm/DWARFCFIChecker/DWARFCFIFunctionFrameStreamer.h
    A llvm/include/llvm/DWARFCFIChecker/DWARFCFIState.h
    M llvm/lib/CMakeLists.txt
    A llvm/lib/DWARFCFIChecker/CMakeLists.txt
    A llvm/lib/DWARFCFIChecker/DWARFCFIAnalysis.cpp
    A llvm/lib/DWARFCFIChecker/DWARFCFIFunctionFrameAnalyzer.cpp
    A llvm/lib/DWARFCFIChecker/DWARFCFIFunctionFrameStreamer.cpp
    A llvm/lib/DWARFCFIChecker/DWARFCFIState.cpp
    A llvm/lib/DWARFCFIChecker/Registers.h
    A llvm/test/DWARFCFIChecker/X86/cfa-corner-cases.s
    A llvm/test/DWARFCFIChecker/X86/empty-nested-frames.s
    A llvm/test/DWARFCFIChecker/X86/empty-section.s
    A llvm/test/DWARFCFIChecker/X86/multiple-sections.s
    A llvm/test/DWARFCFIChecker/X86/nested-frames.s
    A llvm/test/DWARFCFIChecker/X86/single-func-cfa-mistake.s
    A llvm/test/DWARFCFIChecker/X86/single-func-missed-cfi-directive.s
    A llvm/test/DWARFCFIChecker/X86/single-func.s
    A llvm/test/DWARFCFIChecker/X86/spill-two-reg-reversed.s
    A llvm/test/DWARFCFIChecker/X86/spill-two-reg.s
    A llvm/test/DWARFCFIChecker/X86/unsupported-directives.s
    A llvm/test/DWARFCFIChecker/X86/update-with-no-cfi.s
    M llvm/tools/llvm-mc/CMakeLists.txt
    M llvm/tools/llvm-mc/llvm-mc.cpp

  Log Message:
  -----------
  Minimal unwinding information (DWARF CFI) checker (#145633)

This PR adds a minimal version of `UnwindInfoChecker` described in
[here](https://discourse.llvm.org/t/rfc-dwarf-cfi-validation/86936).

This implementation looks into the modified registers by each
instruction and checks:
- If one of them is the CFA register, and it informs the user if the CFA
data is not modified as well.
- If one of them is used in another register's unwinding rule, it
informs the user if the unwind info is not modified after this
instruction.

This implementation does not support DWARF expressions and treats them
as unknown unwinding rules.



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