
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.
73 lines
2.1 KiB
CMake
73 lines
2.1 KiB
CMake
include(LLVM-Build)
|
|
|
|
# `Demangle', `Support' and `TableGen' libraries are added on the top-level
|
|
# CMakeLists.txt
|
|
|
|
add_subdirectory(IR)
|
|
add_subdirectory(FuzzMutate)
|
|
add_subdirectory(FileCheck)
|
|
add_subdirectory(InterfaceStub)
|
|
add_subdirectory(IRPrinter)
|
|
add_subdirectory(IRReader)
|
|
add_subdirectory(CGData)
|
|
add_subdirectory(CodeGen)
|
|
add_subdirectory(CodeGenTypes)
|
|
add_subdirectory(BinaryFormat)
|
|
add_subdirectory(Bitcode)
|
|
add_subdirectory(Bitstream)
|
|
add_subdirectory(DWARFLinker)
|
|
add_subdirectory(Extensions)
|
|
add_subdirectory(Frontend)
|
|
add_subdirectory(Transforms)
|
|
add_subdirectory(Linker)
|
|
add_subdirectory(Analysis)
|
|
add_subdirectory(LTO)
|
|
add_subdirectory(MC)
|
|
add_subdirectory(MCA)
|
|
add_subdirectory(ObjCopy)
|
|
add_subdirectory(Object)
|
|
add_subdirectory(ObjectYAML)
|
|
add_subdirectory(Option)
|
|
add_subdirectory(Remarks)
|
|
add_subdirectory(Debuginfod)
|
|
add_subdirectory(DebugInfo)
|
|
add_subdirectory(DWARFCFIChecker)
|
|
add_subdirectory(DWP)
|
|
add_subdirectory(ExecutionEngine)
|
|
add_subdirectory(Target)
|
|
add_subdirectory(SandboxIR)
|
|
add_subdirectory(AsmParser)
|
|
add_subdirectory(LineEditor)
|
|
add_subdirectory(ProfileData)
|
|
add_subdirectory(Passes)
|
|
add_subdirectory(TargetParser)
|
|
add_subdirectory(TextAPI)
|
|
add_subdirectory(Telemetry)
|
|
add_subdirectory(ToolDrivers)
|
|
add_subdirectory(XRay)
|
|
if (LLVM_INCLUDE_TESTS)
|
|
add_subdirectory(Testing)
|
|
endif()
|
|
add_subdirectory(WindowsDriver)
|
|
add_subdirectory(WindowsManifest)
|
|
|
|
set(LLVMCONFIGLIBRARYDEPENDENCIESINC "${LLVM_BINARY_DIR}/tools/llvm-config/LibraryDependencies.inc")
|
|
|
|
# Special components which don't have any source attached but aggregate other
|
|
# components
|
|
add_llvm_component_group(all-targets LINK_COMPONENTS ${LLVM_TARGETS_TO_BUILD})
|
|
add_llvm_component_group(Engine)
|
|
|
|
# The native target may not be enabled when cross compiling
|
|
if(TARGET ${LLVM_NATIVE_ARCH})
|
|
add_llvm_component_group(Native LINK_COMPONENTS ${LLVM_NATIVE_ARCH})
|
|
add_llvm_component_group(NativeCodeGen LINK_COMPONENTS ${LLVM_NATIVE_ARCH}CodeGen)
|
|
else()
|
|
add_llvm_component_group(Native)
|
|
add_llvm_component_group(NativeCodeGen)
|
|
endif()
|
|
|
|
# Component post-processing
|
|
LLVMBuildResolveComponentsLink()
|
|
LLVMBuildGenerateCFragment(OUTPUT ${LLVMCONFIGLIBRARYDEPENDENCIESINC})
|