Files
revng-revng/lib/CMakeLists.txt
Andrea Gussoni 06733a9f3a InlineHelpers: split into link / inline / delete
Split the `InlineHelpers` pass into the three phases:

- `link-helpers-to-inline` links the missing `revng_inline` helper
  bodies from the `libtcg-helpers-to-inline-arch` module.
- `inline-helpers` inlines, in every function except those tagged
  `Root` or `Helper`, the calls to `revng_inline` helpers whose
  critical arguments on the call site are constant.
- `delete-helper-bodies` drops from the module the body of every
  `revng_inline` function, leaving only the declaration.

The three passes live in a dedicated `revngInlineHelpers` library
(`lib/InlineHelpers/` + `include/revng/InlineHelpers/`), so that
libraries which do not depend on `revngFunctionIsolation` can use them
without creating cyclic dependencies.
2026-06-19 15:35:18 +02:00

62 lines
1.7 KiB
CMake

#
# This file is distributed under the MIT License. See LICENSE.md for details.
#
#
# Handle the analysis libraries
#
add_custom_target(analyses)
macro(revng_add_analyses_library_internal NAME)
revng_add_analyses_library("${NAME}" revng ${ARGN})
add_dependencies(analyses "${NAME}")
endmacro()
macro(revng_add_library_internal NAME TYPE)
revng_add_library("${NAME}" "${TYPE}" revng ${ARGN})
endmacro()
add_subdirectory(ABI)
add_subdirectory(Backend)
add_subdirectory(BasicAnalyses)
add_subdirectory(HelperInliningAnalyses)
add_subdirectory(Canonicalize)
add_subdirectory(Clift)
add_subdirectory(CliftEmitC)
add_subdirectory(Clifter)
add_subdirectory(CliftImportModel)
add_subdirectory(CliftPipes)
add_subdirectory(CliftTransforms)
add_subdirectory(DataLayoutAnalysis)
add_subdirectory(EarlyFunctionAnalysis)
add_subdirectory(FunctionCallIdentification)
add_subdirectory(FunctionIsolation)
add_subdirectory(GraphLayout)
add_subdirectory(HeadersGeneration)
add_subdirectory(HelperArgumentsAnalysis)
add_subdirectory(ImportFromC)
add_subdirectory(InitModelTypes)
add_subdirectory(InlineHelpers)
add_subdirectory(LocalVariables)
add_subdirectory(LLMRename)
add_subdirectory(Lift)
add_subdirectory(Model)
add_subdirectory(Pipebox)
add_subdirectory(Pipeline)
add_subdirectory(PipelineC)
add_subdirectory(Pipes)
add_subdirectory(PromoteStackPointer)
add_subdirectory(PTML)
add_subdirectory(Recompile)
add_subdirectory(RemoveExtractValues)
add_subdirectory(RemoveLiftingArtifacts)
add_subdirectory(RestructureCFG)
add_subdirectory(Storage)
add_subdirectory(Support)
add_subdirectory(TypeNames)
add_subdirectory(TypeShrinking)
add_subdirectory(UnitTestHelpers)
add_subdirectory(ValueMaterializer)
add_subdirectory(Yield)