mirror of
https://github.com/revng/revng
synced 2026-06-21 14:07:57 +00:00
7526d72492
Expose the locations that can be found in each kind
61 lines
2.1 KiB
C++
61 lines
2.1 KiB
C++
#pragma once
|
|
|
|
//
|
|
// This file is distributed under the MIT License. See LICENSE.md for details.
|
|
//
|
|
|
|
#include "revng/Pipeline/Kind.h"
|
|
#include "revng/Pipes/FunctionKind.h"
|
|
#include "revng/Pipes/Ranks.h"
|
|
#include "revng/Pipes/RootKind.h"
|
|
#include "revng/Pipes/TaggedFunctionKind.h"
|
|
|
|
namespace revng::kinds {
|
|
|
|
template<typename... T>
|
|
inline std::tuple<const T &...> fat(const T &...Refs) {
|
|
return std::forward_as_tuple(Refs...);
|
|
}
|
|
|
|
inline pipeline::SingleElementKind Binary("Binary", ranks::Binary, {}, {});
|
|
|
|
inline RootKind Root("Root", ranks::Binary);
|
|
inline IsolatedRootKind IsolatedRoot("IsolatedRoot", Root, ranks::Binary);
|
|
|
|
inline TaggedFunctionKind
|
|
Isolated("Isolated", ranks::Function, FunctionTags::Isolated);
|
|
inline TaggedFunctionKind
|
|
ABIEnforced("ABIEnforced", ranks::Function, FunctionTags::ABIEnforced);
|
|
inline TaggedFunctionKind
|
|
CSVsPromoted("CSVsPromoted", ranks::Function, FunctionTags::CSVsPromoted);
|
|
|
|
inline pipeline::SingleElementKind Object("Object", ranks::Binary, {}, {});
|
|
inline pipeline::SingleElementKind
|
|
Translated("Translated", ranks::Binary, {}, {});
|
|
|
|
inline FunctionKind
|
|
FunctionAssemblyInternal("FunctionAssemblyInternal", ranks::Function, {}, {});
|
|
|
|
inline FunctionKind FunctionAssemblyPTML("FunctionAssemblyPTML",
|
|
ranks::Function,
|
|
fat(ranks::Function,
|
|
ranks::BasicBlock,
|
|
ranks::Instruction),
|
|
{});
|
|
|
|
inline FunctionKind FunctionControlFlowGraphSVG("FunctionControlFlowGraphSVG",
|
|
ranks::Function,
|
|
{},
|
|
{});
|
|
|
|
inline pipeline::SingleElementKind
|
|
BinaryCrossRelations("BinaryCrossRelations", ranks::Binary, {}, {});
|
|
inline pipeline::SingleElementKind
|
|
CallGraphSVG("CallGraphSVG", ranks::Binary, {}, {});
|
|
inline FunctionKind
|
|
CallGraphSliceSVG("CallGraphSliceSVG", ranks::Function, {}, {});
|
|
|
|
inline constexpr auto BinaryCrossRelationsRole = "CrossRelations";
|
|
|
|
} // namespace revng::kinds
|