mirror of
https://github.com/revng/revng
synced 2026-06-21 14:07:57 +00:00
6a56557177
Inline `revng_inline` helper calls into each outlined stub which is consumed by `analyzeABI`, so the analysis can observe the reads and writes the helper performs on the floating point registers. The helper module is linked only once at the beginning of the pass, to avoid double linking issues.
68 lines
1.6 KiB
CMake
68 lines
1.6 KiB
CMake
#
|
|
# This file is distributed under the MIT License. See LICENSE.md for details.
|
|
#
|
|
|
|
# Define revngEarlyFunctionAnalysis library
|
|
revng_add_analyses_library_internal(
|
|
revngEarlyFunctionAnalysis
|
|
AAWriterPass.cpp
|
|
AnalyzeRegisterUsage.cpp
|
|
AttachDebugInfo.cpp
|
|
CFGAnalyzer.cpp
|
|
CollectCFG.cpp
|
|
CollectFunctionsFromCalleesPass.cpp
|
|
CollectFunctionsFromUnusedAddressesPass.cpp
|
|
ControlFlowGraph.cpp
|
|
ControlFlowGraphCache.cpp
|
|
DetectABI.cpp
|
|
FunctionSummaryOracle.cpp
|
|
IndirectBranchInfoPrinterPass.cpp
|
|
Outliner.cpp
|
|
PromoteGlobalToLocalVars.cpp
|
|
SegregateDirectStackAccesses.cpp
|
|
${GENERATED_IMPLS})
|
|
|
|
llvm_map_components_to_libnames(
|
|
LLVM_LIBRARIES
|
|
Analysis
|
|
TransformUtils
|
|
ScalarOpts
|
|
InstCombine
|
|
Passes
|
|
CodeGen)
|
|
|
|
target_link_libraries(
|
|
revngEarlyFunctionAnalysis
|
|
revngBasicAnalyses
|
|
revngABI
|
|
revngInlineHelpers
|
|
revngSupport
|
|
revngModel
|
|
revngPipes
|
|
${LLVM_LIBRARIES})
|
|
|
|
# Header files containing efa YAML must be added here
|
|
set(EFA_HEADERS_DIR "${CMAKE_SOURCE_DIR}/include/revng/EarlyFunctionAnalysis")
|
|
set(OUTPUT_DIR
|
|
"${CMAKE_BINARY_DIR}/include/revng/EarlyFunctionAnalysis/Generated")
|
|
set(SCHEMA_PATH
|
|
"${CMAKE_SOURCE_DIR}/include/revng/EarlyFunctionAnalysis/efa-schema.yml")
|
|
target_tuple_tree_generator(
|
|
revngEarlyFunctionAnalysis
|
|
INSTALL
|
|
HEADER_DIRECTORY
|
|
EarlyFunctionAnalysis
|
|
NAMESPACE
|
|
efa
|
|
SCHEMA_PATH
|
|
${SCHEMA_PATH}
|
|
SEPARATE_STRING_TYPES
|
|
"BasicBlockID"
|
|
"MetaAddress"
|
|
SCALAR_TYPES
|
|
"BasicBlockID"
|
|
"MetaAddress"
|
|
"model::FunctionAttribute::Values")
|
|
|
|
install(DIRECTORY ${OUTPUT_DIR} DESTINATION include/revng/EarlyFunctionAnalysis)
|