Files
Pietro Fezzardi 59a1434fab Segregate: add template for legacy local variables
Introduce LegacySegregateStackAccessesPipe

This commit restructures the SegregateStackAccesses pass and
SegregateStackAccessesPipe so that they can have 2 modes of operations:
1. Legacy, with the same behavior as the old version, injecting local
   variables as custom llvm::Functions representing opcodes, such as
   LocalVariable, AddressOf, StackFrameAllocator, and CallStackArguments
   allocator.
2. Non-legacy, that is meant to operate with the new LocalVariableHelper
   to inject local variables as regular alloca instructions, with
   additional metadata to discriminate among them.

This commit renames the old SegregateStackAccessesPipe to
LegacySegregateStackAccessesPipe.
It then re-uses the old SegregateStackAccessesPipe name for a new pipe,
meant to work in non-legacy mode.

The pipeline definition YAML file is updated to keep using the legacy
version for now.

For now the implementation is still the same.
2025-01-29 15:17:15 +01:00

26 lines
612 B
CMake

#
# This file is distributed under the MIT License. See LICENSE.md for details.
#
revng_add_analyses_library_internal(
revngPromoteStackPointer
CleanupStackSizeMarkersPass.cpp
ComputeStackAccessesBoundsPass.cpp
DetectStackSizePass.cpp
InstrumentStackAccessesPass.cpp
InjectStackSizeProbesAtCallSitesPass.cpp
PromoteStackPointerPass.cpp
RemoveStackAlignmentPass.cpp
SegregateStackAccessesPass.cpp)
target_link_libraries(
revngPromoteStackPointer
revngSupport
revngABI
revngBasicAnalyses
revngEarlyFunctionAnalysis
revngLocalVariables
revngModel
revngPipes
${LLVM_LIBRARIES})