aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/llvm12/include/llvm/Linker
diff options
context:
space:
mode:
authororivej <orivej@yandex-team.ru>2022-02-10 16:44:49 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:44:49 +0300
commit718c552901d703c502ccbefdfc3c9028d608b947 (patch)
tree46534a98bbefcd7b1f3faa5b52c138ab27db75b7 /contrib/libs/llvm12/include/llvm/Linker
parente9656aae26e0358d5378e5b63dcac5c8dbe0e4d0 (diff)
downloadydb-718c552901d703c502ccbefdfc3c9028d608b947.tar.gz
Restoring authorship annotation for <orivej@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'contrib/libs/llvm12/include/llvm/Linker')
-rw-r--r--contrib/libs/llvm12/include/llvm/Linker/IRMover.h198
-rw-r--r--contrib/libs/llvm12/include/llvm/Linker/Linker.h138
2 files changed, 168 insertions, 168 deletions
diff --git a/contrib/libs/llvm12/include/llvm/Linker/IRMover.h b/contrib/libs/llvm12/include/llvm/Linker/IRMover.h
index 5c31fc2ad6..39fd7b02c6 100644
--- a/contrib/libs/llvm12/include/llvm/Linker/IRMover.h
+++ b/contrib/libs/llvm12/include/llvm/Linker/IRMover.h
@@ -1,99 +1,99 @@
-#pragma once
-
-#ifdef __GNUC__
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wunused-parameter"
-#endif
-
-//===- IRMover.h ------------------------------------------------*- 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
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_LINKER_IRMOVER_H
-#define LLVM_LINKER_IRMOVER_H
-
-#include "llvm/ADT/ArrayRef.h"
-#include "llvm/ADT/DenseSet.h"
-#include <functional>
-
-namespace llvm {
-class Error;
-class GlobalValue;
-class Metadata;
-class Module;
-class StructType;
-class TrackingMDRef;
-class Type;
-
-class IRMover {
- struct StructTypeKeyInfo {
- struct KeyTy {
- ArrayRef<Type *> ETypes;
- bool IsPacked;
- KeyTy(ArrayRef<Type *> E, bool P);
- KeyTy(const StructType *ST);
- bool operator==(const KeyTy &that) const;
- bool operator!=(const KeyTy &that) const;
- };
- static StructType *getEmptyKey();
- static StructType *getTombstoneKey();
- static unsigned getHashValue(const KeyTy &Key);
- static unsigned getHashValue(const StructType *ST);
- static bool isEqual(const KeyTy &LHS, const StructType *RHS);
- static bool isEqual(const StructType *LHS, const StructType *RHS);
- };
-
- /// Type of the Metadata map in \a ValueToValueMapTy.
- typedef DenseMap<const Metadata *, TrackingMDRef> MDMapT;
-
-public:
- class IdentifiedStructTypeSet {
- // The set of opaque types is the composite module.
- DenseSet<StructType *> OpaqueStructTypes;
-
- // The set of identified but non opaque structures in the composite module.
- DenseSet<StructType *, StructTypeKeyInfo> NonOpaqueStructTypes;
-
- public:
- void addNonOpaque(StructType *Ty);
- void switchToNonOpaque(StructType *Ty);
- void addOpaque(StructType *Ty);
- StructType *findNonOpaque(ArrayRef<Type *> ETypes, bool IsPacked);
- bool hasType(StructType *Ty);
- };
-
- IRMover(Module &M);
-
- typedef std::function<void(GlobalValue &)> ValueAdder;
-
- /// Move in the provide values in \p ValuesToLink from \p Src.
- ///
- /// - \p AddLazyFor is a call back that the IRMover will call when a global
- /// value is referenced by one of the ValuesToLink (transitively) but was
- /// not present in ValuesToLink. The GlobalValue and a ValueAdder callback
- /// are passed as an argument, and the callback is expected to be called
- /// if the GlobalValue needs to be added to the \p ValuesToLink and linked.
- /// - \p IsPerformingImport is true when this IR link is to perform ThinLTO
- /// function importing from Src.
- Error move(std::unique_ptr<Module> Src, ArrayRef<GlobalValue *> ValuesToLink,
- std::function<void(GlobalValue &GV, ValueAdder Add)> AddLazyFor,
- bool IsPerformingImport);
- Module &getModule() { return Composite; }
-
-private:
- Module &Composite;
- IdentifiedStructTypeSet IdentifiedStructTypes;
- MDMapT SharedMDs; ///< A Metadata map to use for all calls to \a move().
-};
-
-} // End llvm namespace
-
-#endif
-
-#ifdef __GNUC__
-#pragma GCC diagnostic pop
-#endif
+#pragma once
+
+#ifdef __GNUC__
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#endif
+
+//===- IRMover.h ------------------------------------------------*- 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
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LINKER_IRMOVER_H
+#define LLVM_LINKER_IRMOVER_H
+
+#include "llvm/ADT/ArrayRef.h"
+#include "llvm/ADT/DenseSet.h"
+#include <functional>
+
+namespace llvm {
+class Error;
+class GlobalValue;
+class Metadata;
+class Module;
+class StructType;
+class TrackingMDRef;
+class Type;
+
+class IRMover {
+ struct StructTypeKeyInfo {
+ struct KeyTy {
+ ArrayRef<Type *> ETypes;
+ bool IsPacked;
+ KeyTy(ArrayRef<Type *> E, bool P);
+ KeyTy(const StructType *ST);
+ bool operator==(const KeyTy &that) const;
+ bool operator!=(const KeyTy &that) const;
+ };
+ static StructType *getEmptyKey();
+ static StructType *getTombstoneKey();
+ static unsigned getHashValue(const KeyTy &Key);
+ static unsigned getHashValue(const StructType *ST);
+ static bool isEqual(const KeyTy &LHS, const StructType *RHS);
+ static bool isEqual(const StructType *LHS, const StructType *RHS);
+ };
+
+ /// Type of the Metadata map in \a ValueToValueMapTy.
+ typedef DenseMap<const Metadata *, TrackingMDRef> MDMapT;
+
+public:
+ class IdentifiedStructTypeSet {
+ // The set of opaque types is the composite module.
+ DenseSet<StructType *> OpaqueStructTypes;
+
+ // The set of identified but non opaque structures in the composite module.
+ DenseSet<StructType *, StructTypeKeyInfo> NonOpaqueStructTypes;
+
+ public:
+ void addNonOpaque(StructType *Ty);
+ void switchToNonOpaque(StructType *Ty);
+ void addOpaque(StructType *Ty);
+ StructType *findNonOpaque(ArrayRef<Type *> ETypes, bool IsPacked);
+ bool hasType(StructType *Ty);
+ };
+
+ IRMover(Module &M);
+
+ typedef std::function<void(GlobalValue &)> ValueAdder;
+
+ /// Move in the provide values in \p ValuesToLink from \p Src.
+ ///
+ /// - \p AddLazyFor is a call back that the IRMover will call when a global
+ /// value is referenced by one of the ValuesToLink (transitively) but was
+ /// not present in ValuesToLink. The GlobalValue and a ValueAdder callback
+ /// are passed as an argument, and the callback is expected to be called
+ /// if the GlobalValue needs to be added to the \p ValuesToLink and linked.
+ /// - \p IsPerformingImport is true when this IR link is to perform ThinLTO
+ /// function importing from Src.
+ Error move(std::unique_ptr<Module> Src, ArrayRef<GlobalValue *> ValuesToLink,
+ std::function<void(GlobalValue &GV, ValueAdder Add)> AddLazyFor,
+ bool IsPerformingImport);
+ Module &getModule() { return Composite; }
+
+private:
+ Module &Composite;
+ IdentifiedStructTypeSet IdentifiedStructTypes;
+ MDMapT SharedMDs; ///< A Metadata map to use for all calls to \a move().
+};
+
+} // End llvm namespace
+
+#endif
+
+#ifdef __GNUC__
+#pragma GCC diagnostic pop
+#endif
diff --git a/contrib/libs/llvm12/include/llvm/Linker/Linker.h b/contrib/libs/llvm12/include/llvm/Linker/Linker.h
index 8edc193229..673b9da83b 100644
--- a/contrib/libs/llvm12/include/llvm/Linker/Linker.h
+++ b/contrib/libs/llvm12/include/llvm/Linker/Linker.h
@@ -1,69 +1,69 @@
-#pragma once
-
-#ifdef __GNUC__
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wunused-parameter"
-#endif
-
-//===- Linker.h - Module Linker Interface -----------------------*- 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
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_LINKER_LINKER_H
-#define LLVM_LINKER_LINKER_H
-
-#include "llvm/ADT/StringSet.h"
-#include "llvm/Linker/IRMover.h"
-
-namespace llvm {
-class Module;
-class StructType;
-class Type;
-
-/// This class provides the core functionality of linking in LLVM. It keeps a
-/// pointer to the merged module so far. It doesn't take ownership of the
-/// module since it is assumed that the user of this class will want to do
-/// something with it after the linking.
-class Linker {
- IRMover Mover;
-
-public:
- enum Flags {
- None = 0,
- OverrideFromSrc = (1 << 0),
- LinkOnlyNeeded = (1 << 1),
- };
-
- Linker(Module &M);
-
- /// Link \p Src into the composite.
- ///
- /// Passing OverrideSymbols as true will have symbols from Src
- /// shadow those in the Dest.
- ///
- /// Passing InternalizeCallback will have the linker call the function with
- /// the new module and a list of global value names to be internalized by the
- /// callback.
- ///
- /// Returns true on error.
- bool linkInModule(std::unique_ptr<Module> Src, unsigned Flags = Flags::None,
- std::function<void(Module &, const StringSet<> &)>
- InternalizeCallback = {});
-
- static bool linkModules(Module &Dest, std::unique_ptr<Module> Src,
- unsigned Flags = Flags::None,
- std::function<void(Module &, const StringSet<> &)>
- InternalizeCallback = {});
-};
-
-} // End llvm namespace
-
-#endif
-
-#ifdef __GNUC__
-#pragma GCC diagnostic pop
-#endif
+#pragma once
+
+#ifdef __GNUC__
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#endif
+
+//===- Linker.h - Module Linker Interface -----------------------*- 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
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LINKER_LINKER_H
+#define LLVM_LINKER_LINKER_H
+
+#include "llvm/ADT/StringSet.h"
+#include "llvm/Linker/IRMover.h"
+
+namespace llvm {
+class Module;
+class StructType;
+class Type;
+
+/// This class provides the core functionality of linking in LLVM. It keeps a
+/// pointer to the merged module so far. It doesn't take ownership of the
+/// module since it is assumed that the user of this class will want to do
+/// something with it after the linking.
+class Linker {
+ IRMover Mover;
+
+public:
+ enum Flags {
+ None = 0,
+ OverrideFromSrc = (1 << 0),
+ LinkOnlyNeeded = (1 << 1),
+ };
+
+ Linker(Module &M);
+
+ /// Link \p Src into the composite.
+ ///
+ /// Passing OverrideSymbols as true will have symbols from Src
+ /// shadow those in the Dest.
+ ///
+ /// Passing InternalizeCallback will have the linker call the function with
+ /// the new module and a list of global value names to be internalized by the
+ /// callback.
+ ///
+ /// Returns true on error.
+ bool linkInModule(std::unique_ptr<Module> Src, unsigned Flags = Flags::None,
+ std::function<void(Module &, const StringSet<> &)>
+ InternalizeCallback = {});
+
+ static bool linkModules(Module &Dest, std::unique_ptr<Module> Src,
+ unsigned Flags = Flags::None,
+ std::function<void(Module &, const StringSet<> &)>
+ InternalizeCallback = {});
+};
+
+} // End llvm namespace
+
+#endif
+
+#ifdef __GNUC__
+#pragma GCC diagnostic pop
+#endif