diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2014-01-07 21:19:40 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2014-01-07 21:19:40 +0000 |
commit | b56c57bcbb8b87dca05a18c284155fa75285470b (patch) | |
tree | bb3abd15165bc10e94cd127137c15fc1bc02cab7 /include/llvm/Target | |
parent | 7e889af76814df67ef912b95ada7ac0b1ebfb7e4 (diff) | |
download | llvm-b56c57bcbb8b87dca05a18c284155fa75285470b.tar.gz llvm-b56c57bcbb8b87dca05a18c284155fa75285470b.tar.bz2 llvm-b56c57bcbb8b87dca05a18c284155fa75285470b.tar.xz |
Move the llvm mangler to lib/IR.
This makes it available to tools that don't link with target (like llvm-ar).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198708 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Target')
-rw-r--r-- | include/llvm/Target/Mangler.h | 65 |
1 files changed, 0 insertions, 65 deletions
diff --git a/include/llvm/Target/Mangler.h b/include/llvm/Target/Mangler.h deleted file mode 100644 index 78ce264b5e..0000000000 --- a/include/llvm/Target/Mangler.h +++ /dev/null @@ -1,65 +0,0 @@ -//===-- llvm/Target/Mangler.h - Self-contained name mangler -----*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -// -// Unified name mangler for various backends. -// -//===----------------------------------------------------------------------===// - -#ifndef LLVM_TARGET_MANGLER_H -#define LLVM_TARGET_MANGLER_H - -#include "llvm/ADT/DenseMap.h" - -namespace llvm { - -class DataLayout; -class GlobalValue; -class MCContext; -template <typename T> class SmallVectorImpl; -class Twine; - -class Mangler { -public: - enum ManglerPrefixTy { - Default, ///< Emit default string before each symbol. - Private, ///< Emit "private" prefix before each symbol. - LinkerPrivate ///< Emit "linker private" prefix before each symbol. - }; - -private: - const DataLayout *DL; - - /// AnonGlobalIDs - We need to give global values the same name every time - /// they are mangled. This keeps track of the number we give to anonymous - /// ones. - /// - DenseMap<const GlobalValue*, unsigned> AnonGlobalIDs; - - /// NextAnonGlobalID - This simple counter is used to unique value names. - /// - unsigned NextAnonGlobalID; - -public: - Mangler(const DataLayout *DL) : DL(DL), NextAnonGlobalID(1) {} - - /// getNameWithPrefix - Fill OutName with the name of the appropriate prefix - /// and the specified global variable's name. If the global variable doesn't - /// have a name, this fills in a unique name for the global. - void getNameWithPrefix(SmallVectorImpl<char> &OutName, const GlobalValue *GV); - - /// getNameWithPrefix - Fill OutName with the name of the appropriate prefix - /// and the specified name as the global variable name. GVName must not be - /// empty. - void getNameWithPrefix(SmallVectorImpl<char> &OutName, const Twine &GVName, - ManglerPrefixTy PrefixTy = Mangler::Default); -}; - -} // End llvm namespace - -#endif // LLVM_TARGET_MANGLER_H |