mirror of
https://github.com/revng/revng
synced 2026-06-21 14:07:57 +00:00
42 lines
1.1 KiB
C++
42 lines
1.1 KiB
C++
#pragma once
|
|
|
|
//
|
|
// This file is distributed under the MIT License. See LICENSE.md for details.
|
|
//
|
|
|
|
#include "llvm/ADT/STLExtras.h"
|
|
|
|
#include "revng/Pipeline/Context.h"
|
|
#include "revng/Pipeline/GenericLLVMPipe.h"
|
|
#include "revng/Pipeline/Kind.h"
|
|
#include "revng/Pipeline/LLVMContainer.h"
|
|
#include "revng/Pipeline/LLVMKind.h"
|
|
#include "revng/TupleTree/TupleTreeDiff.h"
|
|
#include "revng/TupleTree/TupleTreePath.h"
|
|
|
|
namespace revng::kinds {
|
|
|
|
class RootKind : public pipeline::LLVMKind {
|
|
public:
|
|
using pipeline::LLVMKind::LLVMKind;
|
|
|
|
std::optional<pipeline::Target>
|
|
symbolToTarget(const llvm::Function &Symbol) const override;
|
|
|
|
void appendAllTargets(const pipeline::Context &Context,
|
|
pipeline::TargetsList &Out) const override;
|
|
};
|
|
|
|
class IsolatedRootKind : public pipeline::LLVMKind {
|
|
public:
|
|
using pipeline::LLVMKind::LLVMKind;
|
|
|
|
std::optional<pipeline::Target>
|
|
symbolToTarget(const llvm::Function &Symbol) const override;
|
|
|
|
void appendAllTargets(const pipeline::Context &Context,
|
|
pipeline::TargetsList &Out) const override;
|
|
};
|
|
|
|
} // namespace revng::kinds
|