Files
Massimo Fioravanti c276a439b5 Add pipeline invalidation
Replace the stub implementation of invalidation with the proper
implementation. A ReadPathCache is added to each global so that it can
keep tracks of what target are associated to which read paths.
2024-01-02 11:14:56 +01:00

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 &Ctx,
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 &Ctx,
pipeline::TargetsList &Out) const override;
};
} // namespace revng::kinds