diff options
author | Matt Morehouse <mascasa@google.com> | 2021-08-05 11:07:53 -0700 |
---|---|---|
committer | Matt Morehouse <mascasa@google.com> | 2021-08-05 11:10:58 -0700 |
commit | ec5137029bf267bf3b6a52f035cf02ddc1932539 (patch) | |
tree | 3403f18c69256ae607265cd2626b0c6ee2ad3172 /llvm/tools/llvm-diff/lib/DifferenceEngine.h | |
parent | b260f3fdda63bbddb7834c42cfeeb2b0a8b86a23 (diff) | |
download | llvm-ec5137029bf267bf3b6a52f035cf02ddc1932539.zip llvm-ec5137029bf267bf3b6a52f035cf02ddc1932539.tar.gz llvm-ec5137029bf267bf3b6a52f035cf02ddc1932539.tar.bz2 |
Revert "[llvm-diff] Create libLLVMDiff library"
This reverts commit 9854f2f30f84123ca78aa3603102e7cef4ec33c8 since it
broke all the builds.
Diffstat (limited to 'llvm/tools/llvm-diff/lib/DifferenceEngine.h')
-rw-r--r-- | llvm/tools/llvm-diff/lib/DifferenceEngine.h | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/llvm/tools/llvm-diff/lib/DifferenceEngine.h b/llvm/tools/llvm-diff/lib/DifferenceEngine.h deleted file mode 100644 index 436a355..0000000 --- a/llvm/tools/llvm-diff/lib/DifferenceEngine.h +++ /dev/null @@ -1,90 +0,0 @@ -//===-- DifferenceEngine.h - Module comparator ------------------*- C++ -*-===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// -// -// This header defines the interface to the LLVM difference engine, -// which structurally compares functions within a module. -// -//===----------------------------------------------------------------------===// - -#ifndef LLVM_TOOLS_LLVM_DIFF_DIFFERENCEENGINE_H -#define LLVM_TOOLS_LLVM_DIFF_DIFFERENCEENGINE_H - -#include "DiffConsumer.h" -#include "DiffLog.h" -#include "llvm/ADT/StringRef.h" -#include <utility> - -namespace llvm { - class Function; - class GlobalValue; - class Instruction; - class LLVMContext; - class Module; - class Twine; - class Value; - - /// A class for performing structural comparisons of LLVM assembly. - class DifferenceEngine { - public: - /// A RAII object for recording the current context. - struct Context { - Context(DifferenceEngine &Engine, const Value *L, const Value *R) - : Engine(Engine) { - Engine.consumer.enterContext(L, R); - } - - ~Context() { - Engine.consumer.exitContext(); - } - - private: - DifferenceEngine &Engine; - }; - - /// An oracle for answering whether two values are equivalent as - /// operands. - class Oracle { - virtual void anchor(); - public: - virtual bool operator()(const Value *L, const Value *R) = 0; - - protected: - virtual ~Oracle() {} - }; - - DifferenceEngine(Consumer &consumer) - : consumer(consumer), globalValueOracle(nullptr) {} - - void diff(const Module *L, const Module *R); - void diff(const Function *L, const Function *R); - void log(StringRef text) { - consumer.log(text); - } - LogBuilder logf(StringRef text) { - return LogBuilder(consumer, text); - } - Consumer& getConsumer() const { return consumer; } - - /// Installs an oracle to decide whether two global values are - /// equivalent as operands. Without an oracle, global values are - /// considered equivalent as operands precisely when they have the - /// same name. - void setGlobalValueOracle(Oracle *oracle) { - globalValueOracle = oracle; - } - - /// Determines whether two global values are equivalent. - bool equivalentAsOperands(const GlobalValue *L, const GlobalValue *R); - - private: - Consumer &consumer; - Oracle *globalValueOracle; - }; -} - -#endif |