mirror of
https://github.com/revng/revng
synced 2026-06-21 14:07:57 +00:00
59a1434fab
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.
26 lines
612 B
CMake
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})
|