mirror of
https://github.com/revng/revng
synced 2026-06-21 14:07:57 +00:00
06733a9f3a
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.
26 lines
556 B
CMake
26 lines
556 B
CMake
#
|
|
# This file is distributed under the MIT License. See LICENSE.md for details.
|
|
#
|
|
|
|
revng_add_analyses_library_internal(
|
|
revngFunctionIsolation
|
|
EnforceABI.cpp
|
|
InvokeIsolatedFunctions.cpp
|
|
IsolateFunctions.cpp
|
|
PromoteCSVs.cpp
|
|
RemoveExceptionalCalls.cpp
|
|
StripDebugInfoFromHelpers.cpp
|
|
StructInitializers.cpp)
|
|
|
|
llvm_map_components_to_libnames(LLVM_LIBRARIES TransformUtils)
|
|
|
|
target_link_libraries(
|
|
revngFunctionIsolation
|
|
revngABI
|
|
revngModel
|
|
revngEarlyFunctionAnalysis
|
|
revngInlineHelpers
|
|
revngSupport
|
|
revngPipes
|
|
${LLVM_LIBRARIES})
|