Give internal classes hidden visibility.

Worth 100k on a linux/x86_64 Release+Asserts clang.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190534 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Benjamin Kramer
2013-09-11 17:42:27 +00:00
parent 209a8c8e35
commit 15f387c93e
35 changed files with 83 additions and 82 deletions

View File

@@ -26,7 +26,7 @@ namespace llvm {
class SMDiagnostic; class SMDiagnostic;
class LLVMContext; class LLVMContext;
class LLLexer { class LLVM_LIBRARY_VISIBILITY LLLexer {
const char *CurPtr; const char *CurPtr;
MemoryBuffer *CurBuf; MemoryBuffer *CurBuf;
SMDiagnostic &ErrorInfo; SMDiagnostic &ErrorInfo;

View File

@@ -42,7 +42,7 @@ namespace llvm {
/// There are several cases where we have to parse the value but where the /// There are several cases where we have to parse the value but where the
/// type can depend on later context. This may either be a numeric reference /// type can depend on later context. This may either be a numeric reference
/// or a symbolic (%var) reference. This is just a discriminated union. /// or a symbolic (%var) reference. This is just a discriminated union.
struct ValID { struct LLVM_LIBRARY_VISIBILITY ValID {
enum { enum {
t_LocalID, t_GlobalID, // ID in UIntVal. t_LocalID, t_GlobalID, // ID in UIntVal.
t_LocalName, t_GlobalName, // Name in StrVal. t_LocalName, t_GlobalName, // Name in StrVal.
@@ -83,7 +83,7 @@ namespace llvm {
} }
}; };
class LLParser { class LLVM_LIBRARY_VISIBILITY LLParser {
public: public:
typedef LLLexer::LocTy LocTy; typedef LLLexer::LocTy LocTy;
private: private:

View File

@@ -32,7 +32,7 @@ namespace llvm {
// BitcodeReaderValueList Class // BitcodeReaderValueList Class
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
class BitcodeReaderValueList { class LLVM_LIBRARY_VISIBILITY BitcodeReaderValueList {
std::vector<WeakVH> ValuePtrs; std::vector<WeakVH> ValuePtrs;
/// ResolveConstants - As we resolve forward-referenced constants, we add /// ResolveConstants - As we resolve forward-referenced constants, we add
@@ -91,7 +91,7 @@ public:
// BitcodeReaderMDValueList Class // BitcodeReaderMDValueList Class
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
class BitcodeReaderMDValueList { class LLVM_LIBRARY_VISIBILITY BitcodeReaderMDValueList {
std::vector<WeakVH> MDValuePtrs; std::vector<WeakVH> MDValuePtrs;
LLVMContext &Context; LLVMContext &Context;
@@ -121,7 +121,7 @@ public:
void AssignValue(Value *V, unsigned Idx); void AssignValue(Value *V, unsigned Idx);
}; };
class BitcodeReader : public GVMaterializer { class LLVM_LIBRARY_VISIBILITY BitcodeReader : public GVMaterializer {
LLVMContext &Context; LLVMContext &Context;
Module *TheModule; Module *TheModule;
MemoryBuffer *Buffer; MemoryBuffer *Buffer;

View File

@@ -34,7 +34,7 @@ class ValueSymbolTable;
class MDSymbolTable; class MDSymbolTable;
class raw_ostream; class raw_ostream;
class ValueEnumerator { class LLVM_LIBRARY_VISIBILITY ValueEnumerator {
public: public:
typedef std::vector<Type*> TypeList; typedef std::vector<Type*> TypeList;

View File

@@ -34,7 +34,7 @@ class RegisterClassInfo;
/// Class AggressiveAntiDepState /// Class AggressiveAntiDepState
/// Contains all the state necessary for anti-dep breaking. /// Contains all the state necessary for anti-dep breaking.
class AggressiveAntiDepState { class LLVM_LIBRARY_VISIBILITY AggressiveAntiDepState {
public: public:
/// RegisterReference - Information about a register reference /// RegisterReference - Information about a register reference
/// within a liverange /// within a liverange
@@ -114,7 +114,8 @@ class RegisterClassInfo;
/// Class AggressiveAntiDepBreaker /// Class AggressiveAntiDepBreaker
class AggressiveAntiDepBreaker : public AntiDepBreaker { class LLVM_LIBRARY_VISIBILITY AggressiveAntiDepBreaker
: public AntiDepBreaker {
MachineFunction& MF; MachineFunction& MF;
MachineRegisterInfo &MRI; MachineRegisterInfo &MRI;
const TargetInstrInfo *TII; const TargetInstrInfo *TII;

View File

@@ -25,7 +25,7 @@ namespace llvm {
class RegisterClassInfo; class RegisterClassInfo;
class VirtRegMap; class VirtRegMap;
class AllocationOrder { class LLVM_LIBRARY_VISIBILITY AllocationOrder {
SmallVector<MCPhysReg, 16> Hints; SmallVector<MCPhysReg, 16> Hints;
ArrayRef<MCPhysReg> Order; ArrayRef<MCPhysReg> Order;
int Pos; int Pos;

View File

@@ -28,7 +28,7 @@ namespace llvm {
/// AntiDepBreaker - This class works into conjunction with the /// AntiDepBreaker - This class works into conjunction with the
/// post-RA scheduler to rename registers to break register /// post-RA scheduler to rename registers to break register
/// anti-dependencies. /// anti-dependencies.
class AntiDepBreaker { class LLVM_LIBRARY_VISIBILITY AntiDepBreaker {
public: public:
typedef std::vector<std::pair<MachineInstr *, MachineInstr *> > typedef std::vector<std::pair<MachineInstr *, MachineInstr *> >
DbgValueVector; DbgValueVector;

View File

@@ -30,7 +30,7 @@ namespace llvm {
//===--------------------------------------------------------------------===// //===--------------------------------------------------------------------===//
/// DIEAbbrevData - Dwarf abbreviation data, describes one attribute of a /// DIEAbbrevData - Dwarf abbreviation data, describes one attribute of a
/// Dwarf abbreviation. /// Dwarf abbreviation.
class DIEAbbrevData { class LLVM_LIBRARY_VISIBILITY DIEAbbrevData {
/// Attribute - Dwarf attribute code. /// Attribute - Dwarf attribute code.
/// ///
uint16_t Attribute; uint16_t Attribute;
@@ -53,7 +53,7 @@ namespace llvm {
//===--------------------------------------------------------------------===// //===--------------------------------------------------------------------===//
/// DIEAbbrev - Dwarf abbreviation, describes the organization of a debug /// DIEAbbrev - Dwarf abbreviation, describes the organization of a debug
/// information object. /// information object.
class DIEAbbrev : public FoldingSetNode { class LLVM_LIBRARY_VISIBILITY DIEAbbrev : public FoldingSetNode {
/// Tag - Dwarf tag code. /// Tag - Dwarf tag code.
/// ///
uint16_t Tag; uint16_t Tag;
@@ -107,7 +107,7 @@ namespace llvm {
/// describes its organization. /// describes its organization.
class DIEValue; class DIEValue;
class DIE { class LLVM_LIBRARY_VISIBILITY DIE {
protected: protected:
/// Offset - Offset in debug info section. /// Offset - Offset in debug info section.
/// ///
@@ -188,7 +188,7 @@ namespace llvm {
//===--------------------------------------------------------------------===// //===--------------------------------------------------------------------===//
/// DIEValue - A debug information entry value. /// DIEValue - A debug information entry value.
/// ///
class DIEValue { class LLVM_LIBRARY_VISIBILITY DIEValue {
virtual void anchor(); virtual void anchor();
public: public:
enum { enum {
@@ -228,7 +228,7 @@ namespace llvm {
//===--------------------------------------------------------------------===// //===--------------------------------------------------------------------===//
/// DIEInteger - An integer value DIE. /// DIEInteger - An integer value DIE.
/// ///
class DIEInteger : public DIEValue { class LLVM_LIBRARY_VISIBILITY DIEInteger : public DIEValue {
uint64_t Integer; uint64_t Integer;
public: public:
explicit DIEInteger(uint64_t I) : DIEValue(isInteger), Integer(I) {} explicit DIEInteger(uint64_t I) : DIEValue(isInteger), Integer(I) {}
@@ -270,7 +270,7 @@ namespace llvm {
//===--------------------------------------------------------------------===// //===--------------------------------------------------------------------===//
/// DIEExpr - An expression DIE. /// DIEExpr - An expression DIE.
// //
class DIEExpr : public DIEValue { class LLVM_LIBRARY_VISIBILITY DIEExpr : public DIEValue {
const MCExpr *Expr; const MCExpr *Expr;
public: public:
explicit DIEExpr(const MCExpr *E) : DIEValue(isExpr), Expr(E) {} explicit DIEExpr(const MCExpr *E) : DIEValue(isExpr), Expr(E) {}
@@ -298,7 +298,7 @@ namespace llvm {
//===--------------------------------------------------------------------===// //===--------------------------------------------------------------------===//
/// DIELabel - A label DIE. /// DIELabel - A label DIE.
// //
class DIELabel : public DIEValue { class LLVM_LIBRARY_VISIBILITY DIELabel : public DIEValue {
const MCSymbol *Label; const MCSymbol *Label;
public: public:
explicit DIELabel(const MCSymbol *L) : DIEValue(isLabel), Label(L) {} explicit DIELabel(const MCSymbol *L) : DIEValue(isLabel), Label(L) {}
@@ -326,7 +326,7 @@ namespace llvm {
//===--------------------------------------------------------------------===// //===--------------------------------------------------------------------===//
/// DIEDelta - A simple label difference DIE. /// DIEDelta - A simple label difference DIE.
/// ///
class DIEDelta : public DIEValue { class LLVM_LIBRARY_VISIBILITY DIEDelta : public DIEValue {
const MCSymbol *LabelHi; const MCSymbol *LabelHi;
const MCSymbol *LabelLo; const MCSymbol *LabelLo;
public: public:
@@ -352,7 +352,7 @@ namespace llvm {
//===--------------------------------------------------------------------===// //===--------------------------------------------------------------------===//
/// DIEString - A container for string values. /// DIEString - A container for string values.
/// ///
class DIEString : public DIEValue { class LLVM_LIBRARY_VISIBILITY DIEString : public DIEValue {
const DIEValue *Access; const DIEValue *Access;
const StringRef Str; const StringRef Str;
@@ -383,7 +383,7 @@ namespace llvm {
/// DIEEntry - A pointer to another debug information entry. An instance of /// DIEEntry - A pointer to another debug information entry. An instance of
/// this class can also be used as a proxy for a debug information entry not /// this class can also be used as a proxy for a debug information entry not
/// yet defined (ie. types.) /// yet defined (ie. types.)
class DIEEntry : public DIEValue { class LLVM_LIBRARY_VISIBILITY DIEEntry : public DIEValue {
DIE *const Entry; DIE *const Entry;
public: public:
explicit DIEEntry(DIE *E) : DIEValue(isEntry), Entry(E) { explicit DIEEntry(DIE *E) : DIEValue(isEntry), Entry(E) {
@@ -417,7 +417,7 @@ namespace llvm {
//===--------------------------------------------------------------------===// //===--------------------------------------------------------------------===//
/// DIEBlock - A block of values. Primarily used for location expressions. /// DIEBlock - A block of values. Primarily used for location expressions.
// //
class DIEBlock : public DIEValue, public DIE { class LLVM_LIBRARY_VISIBILITY DIEBlock : public DIEValue, public DIE {
unsigned Size; // Size in bytes excluding size header. unsigned Size; // Size in bytes excluding size header.
public: public:
DIEBlock() DIEBlock()

View File

@@ -19,7 +19,7 @@ class CompileUnit;
/// \brief An object containing the capability of hashing and adding hash /// \brief An object containing the capability of hashing and adding hash
/// attributes onto a DIE. /// attributes onto a DIE.
class DIEHash { class LLVM_LIBRARY_VISIBILITY DIEHash {
// The entry for a particular attribute. // The entry for a particular attribute.
struct AttrEntry { struct AttrEntry {
const DIEValue *Val; const DIEValue *Val;

View File

@@ -65,7 +65,7 @@ class AsmPrinter;
class DIE; class DIE;
class DwarfUnits; class DwarfUnits;
class DwarfAccelTable { class LLVM_LIBRARY_VISIBILITY DwarfAccelTable {
static uint32_t HashDJB(StringRef Str) { static uint32_t HashDJB(StringRef Str) {
uint32_t h = 5381; uint32_t h = 5381;

View File

@@ -34,7 +34,7 @@ class DbgVariable;
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
/// CompileUnit - This dwarf writer support class manages information associated /// CompileUnit - This dwarf writer support class manages information associated
/// with a source file. /// with a source file.
class CompileUnit { class LLVM_LIBRARY_VISIBILITY CompileUnit {
/// UniqueID - a numeric ID unique among all CUs in the module /// UniqueID - a numeric ID unique among all CUs in the module
/// ///
unsigned UniqueID; unsigned UniqueID;

View File

@@ -44,7 +44,7 @@ class DIEEntry;
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
/// \brief This class is used to record source line correspondence. /// \brief This class is used to record source line correspondence.
class SrcLineInfo { class LLVM_LIBRARY_VISIBILITY SrcLineInfo {
unsigned Line; // Source line number. unsigned Line; // Source line number.
unsigned Column; // Source column. unsigned Column; // Source column.
unsigned SourceID; // Source ID number. unsigned SourceID; // Source ID number.
@@ -62,7 +62,7 @@ public:
/// \brief This struct describes location entries emitted in the .debug_loc /// \brief This struct describes location entries emitted in the .debug_loc
/// section. /// section.
class DotDebugLocEntry { class LLVM_LIBRARY_VISIBILITY DotDebugLocEntry {
// Begin and end symbols for the address range that this location is valid. // Begin and end symbols for the address range that this location is valid.
const MCSymbol *Begin; const MCSymbol *Begin;
const MCSymbol *End; const MCSymbol *End;
@@ -143,7 +143,7 @@ public:
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
/// \brief This class is used to track local variable information. /// \brief This class is used to track local variable information.
class DbgVariable { class LLVM_LIBRARY_VISIBILITY DbgVariable {
DIVariable Var; // Variable Descriptor. DIVariable Var; // Variable Descriptor.
DIE *TheDIE; // Variable DIE. DIE *TheDIE; // Variable DIE.
unsigned DotDebugLocOffset; // Offset in DotDebugLocEntries. unsigned DotDebugLocOffset; // Offset in DotDebugLocEntries.
@@ -212,7 +212,7 @@ public:
/// \brief Collects and handles information specific to a particular /// \brief Collects and handles information specific to a particular
/// collection of units. /// collection of units.
class DwarfUnits { class LLVM_LIBRARY_VISIBILITY DwarfUnits {
// Target of Dwarf emission, used for sizing of abbreviations. // Target of Dwarf emission, used for sizing of abbreviations.
AsmPrinter *Asm; AsmPrinter *Asm;
@@ -301,7 +301,7 @@ public:
}; };
/// \brief Collects and handles dwarf debug information. /// \brief Collects and handles dwarf debug information.
class DwarfDebug { class LLVM_LIBRARY_VISIBILITY DwarfDebug {
// Target of Dwarf emission. // Target of Dwarf emission.
AsmPrinter *Asm; AsmPrinter *Asm;

View File

@@ -34,7 +34,7 @@ class AsmPrinter;
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
/// DwarfException - Emits Dwarf exception handling directives. /// DwarfException - Emits Dwarf exception handling directives.
/// ///
class DwarfException { class LLVM_LIBRARY_VISIBILITY DwarfException {
protected: protected:
/// Asm - Target of Dwarf emission. /// Asm - Target of Dwarf emission.
AsmPrinter *Asm; AsmPrinter *Asm;
@@ -141,7 +141,7 @@ public:
virtual void EndFunction(); virtual void EndFunction();
}; };
class DwarfCFIException : public DwarfException { class LLVM_LIBRARY_VISIBILITY DwarfCFIException : public DwarfException {
/// shouldEmitPersonality - Per-function flag to indicate if .cfi_personality /// shouldEmitPersonality - Per-function flag to indicate if .cfi_personality
/// should be emitted. /// should be emitted.
bool shouldEmitPersonality; bool shouldEmitPersonality;
@@ -175,7 +175,7 @@ public:
virtual void EndFunction(); virtual void EndFunction();
}; };
class ARMException : public DwarfException { class LLVM_LIBRARY_VISIBILITY ARMException : public DwarfException {
void EmitTypeInfos(unsigned TTypeEncoding); void EmitTypeInfos(unsigned TTypeEncoding);
public: public:
//===--------------------------------------------------------------------===// //===--------------------------------------------------------------------===//
@@ -196,7 +196,7 @@ public:
virtual void EndFunction(); virtual void EndFunction();
}; };
class Win64Exception : public DwarfException { class LLVM_LIBRARY_VISIBILITY Win64Exception : public DwarfException {
/// shouldEmitPersonality - Per-function flag to indicate if personality /// shouldEmitPersonality - Per-function flag to indicate if personality
/// info should be emitted. /// info should be emitted.
bool shouldEmitPersonality; bool shouldEmitPersonality;

View File

@@ -21,7 +21,7 @@ namespace llvm {
class TargetInstrInfo; class TargetInstrInfo;
class TargetRegisterInfo; class TargetRegisterInfo;
class BranchFolder { class LLVM_LIBRARY_VISIBILITY BranchFolder {
public: public:
explicit BranchFolder(bool defaultEnableTailMerge, bool CommonHoist); explicit BranchFolder(bool defaultEnableTailMerge, bool CommonHoist);

View File

@@ -31,7 +31,7 @@ class RegisterClassInfo;
class TargetInstrInfo; class TargetInstrInfo;
class TargetRegisterInfo; class TargetRegisterInfo;
class CriticalAntiDepBreaker : public AntiDepBreaker { class LLVM_LIBRARY_VISIBILITY CriticalAntiDepBreaker : public AntiDepBreaker {
MachineFunction& MF; MachineFunction& MF;
MachineRegisterInfo &MRI; MachineRegisterInfo &MRI;
const TargetInstrInfo *TII; const TargetInstrInfo *TII;

View File

@@ -21,7 +21,7 @@ namespace llvm {
class LiveIntervals; class LiveIntervals;
class InterferenceCache { class LLVM_LIBRARY_VISIBILITY InterferenceCache {
const TargetRegisterInfo *TRI; const TargetRegisterInfo *TRI;
LiveIntervalUnion *LIUArray; LiveIntervalUnion *LIUArray;
MachineFunction *MF; MachineFunction *MF;

View File

@@ -30,7 +30,7 @@ class LiveInterval;
class LiveIntervals; class LiveIntervals;
class VirtRegMap; class VirtRegMap;
class LiveDebugVariables : public MachineFunctionPass { class LLVM_LIBRARY_VISIBILITY LiveDebugVariables : public MachineFunctionPass {
void *pImpl; void *pImpl;
public: public:
static char ID; // Pass identification, replacement for typeid static char ID; // Pass identification, replacement for typeid

View File

@@ -33,7 +33,7 @@ class MachineDominatorTree;
template <class NodeT> class DomTreeNodeBase; template <class NodeT> class DomTreeNodeBase;
typedef DomTreeNodeBase<MachineBasicBlock> MachineDomTreeNode; typedef DomTreeNodeBase<MachineBasicBlock> MachineDomTreeNode;
class LiveRangeCalc { class LLVM_LIBRARY_VISIBILITY LiveRangeCalc {
const MachineFunction *MF; const MachineFunction *MF;
const MachineRegisterInfo *MRI; const MachineRegisterInfo *MRI;
SlotIndexes *Indexes; SlotIndexes *Indexes;

View File

@@ -33,7 +33,7 @@ namespace llvm {
class RegScavenger; class RegScavenger;
class MachineBasicBlock; class MachineBasicBlock;
class PEI : public MachineFunctionPass { class LLVM_LIBRARY_VISIBILITY PEI : public MachineFunctionPass {
public: public:
static char ID; static char ID;
PEI() : MachineFunctionPass(ID) { PEI() : MachineFunctionPass(ID) {

View File

@@ -56,7 +56,7 @@ class Spiller;
/// Register allocators must override the selectOrSplit() method to implement /// Register allocators must override the selectOrSplit() method to implement
/// live range splitting. They must also override enqueue/dequeue to provide an /// live range splitting. They must also override enqueue/dequeue to provide an
/// assignment order. /// assignment order.
class RegAllocBase { class LLVM_LIBRARY_VISIBILITY RegAllocBase {
protected: protected:
const TargetRegisterInfo *TRI; const TargetRegisterInfo *TRI;
MachineRegisterInfo *MRI; MachineRegisterInfo *MRI;

View File

@@ -26,7 +26,7 @@ class MachineInstrBuilder;
class MCInstrDesc; class MCInstrDesc;
class SDDbgValue; class SDDbgValue;
class InstrEmitter { class LLVM_LIBRARY_VISIBILITY InstrEmitter {
MachineFunction *MF; MachineFunction *MF;
MachineRegisterInfo *MRI; MachineRegisterInfo *MRI;
const TargetMachine *TM; const TargetMachine *TM;

View File

@@ -27,7 +27,7 @@ class Value;
/// SDDbgValue - Holds the information from a dbg_value node through SDISel. /// SDDbgValue - Holds the information from a dbg_value node through SDISel.
/// We do not use SDValue here to avoid including its header. /// We do not use SDValue here to avoid including its header.
class SDDbgValue { class LLVM_LIBRARY_VISIBILITY SDDbgValue {
public: public:
enum DbgValueKind { enum DbgValueKind {
SDNODE = 0, // value is the result of an expression SDNODE = 0, // value is the result of an expression

View File

@@ -33,7 +33,7 @@ namespace llvm {
/// edges. Physical register dependence information is not carried in /// edges. Physical register dependence information is not carried in
/// the DAG and must be handled explicitly by schedulers. /// the DAG and must be handled explicitly by schedulers.
/// ///
class ScheduleDAGSDNodes : public ScheduleDAG { class LLVM_LIBRARY_VISIBILITY ScheduleDAGSDNodes : public ScheduleDAG {
public: public:
MachineBasicBlock *BB; MachineBasicBlock *BB;
SelectionDAG *DAG; // DAG of the current basic block SelectionDAG *DAG; // DAG of the current basic block

View File

@@ -79,7 +79,7 @@ class ZExtInst;
/// SelectionDAGBuilder - This is the common target-independent lowering /// SelectionDAGBuilder - This is the common target-independent lowering
/// implementation that is parameterized by a TargetLowering object. /// implementation that is parameterized by a TargetLowering object.
/// ///
class SelectionDAGBuilder { class LLVM_LIBRARY_VISIBILITY SelectionDAGBuilder {
/// CurInst - The current instruction being visited /// CurInst - The current instruction being visited
const Instruction *CurInst; const Instruction *CurInst;

View File

@@ -39,7 +39,7 @@ class EdgeBundles;
class MachineBasicBlock; class MachineBasicBlock;
class MachineLoopInfo; class MachineLoopInfo;
class SpillPlacement : public MachineFunctionPass { class LLVM_LIBRARY_VISIBILITY SpillPlacement : public MachineFunctionPass {
struct Node; struct Node;
const MachineFunction *MF; const MachineFunction *MF;
const EdgeBundles *bundles; const EdgeBundles *bundles;

View File

@@ -39,7 +39,7 @@ class raw_ostream;
/// SplitAnalysis - Analyze a LiveInterval, looking for live range splitting /// SplitAnalysis - Analyze a LiveInterval, looking for live range splitting
/// opportunities. /// opportunities.
class SplitAnalysis { class LLVM_LIBRARY_VISIBILITY SplitAnalysis {
public: public:
const MachineFunction &MF; const MachineFunction &MF;
const VirtRegMap &VRM; const VirtRegMap &VRM;
@@ -208,7 +208,7 @@ public:
/// - Finish the current interval with closeIntv and repeat from 2. /// - Finish the current interval with closeIntv and repeat from 2.
/// - Rewrite instructions with finish(). /// - Rewrite instructions with finish().
/// ///
class SplitEditor { class LLVM_LIBRARY_VISIBILITY SplitEditor {
SplitAnalysis &SA; SplitAnalysis &SA;
LiveIntervals &LIS; LiveIntervals &LIS;
VirtRegMap &VRM; VirtRegMap &VRM;

View File

@@ -39,7 +39,7 @@ SlotTracker *createSlotTracker(const Module *M);
// TypePrinting Class: Type printing machinery // TypePrinting Class: Type printing machinery
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
class TypePrinting { class LLVM_LIBRARY_VISIBILITY TypePrinting {
TypePrinting(const TypePrinting &) LLVM_DELETED_FUNCTION; TypePrinting(const TypePrinting &) LLVM_DELETED_FUNCTION;
void operator=(const TypePrinting&) LLVM_DELETED_FUNCTION; void operator=(const TypePrinting&) LLVM_DELETED_FUNCTION;
public: public:
@@ -61,7 +61,7 @@ public:
void printStructBody(StructType *Ty, raw_ostream &OS); void printStructBody(StructType *Ty, raw_ostream &OS);
}; };
class AssemblyWriter { class LLVM_LIBRARY_VISIBILITY AssemblyWriter {
protected: protected:
formatted_raw_ostream &Out; formatted_raw_ostream &Out;
const Module *TheModule; const Module *TheModule;

View File

@@ -29,7 +29,7 @@ class LLVMContext;
/// \class /// \class
/// \brief This class represents a single, uniqued attribute. That attribute /// \brief This class represents a single, uniqued attribute. That attribute
/// could be a single enum, a tuple, or a string. /// could be a single enum, a tuple, or a string.
class AttributeImpl : public FoldingSetNode { class LLVM_LIBRARY_VISIBILITY AttributeImpl : public FoldingSetNode {
unsigned char KindID; ///< Holds the AttrEntryKind of the attribute unsigned char KindID; ///< Holds the AttrEntryKind of the attribute
// AttributesImpl is uniqued, these should not be publicly available. // AttributesImpl is uniqued, these should not be publicly available.
@@ -93,7 +93,7 @@ public:
/// represented by Attribute::AttrKind; alignment attribute entries; and string /// represented by Attribute::AttrKind; alignment attribute entries; and string
/// attribute enties, which are for target-dependent attributes. /// attribute enties, which are for target-dependent attributes.
class EnumAttributeImpl : public AttributeImpl { class LLVM_LIBRARY_VISIBILITY EnumAttributeImpl : public AttributeImpl {
Attribute::AttrKind Kind; Attribute::AttrKind Kind;
protected: protected:
@@ -107,7 +107,7 @@ public:
Attribute::AttrKind getEnumKind() const { return Kind; } Attribute::AttrKind getEnumKind() const { return Kind; }
}; };
class AlignAttributeImpl : public EnumAttributeImpl { class LLVM_LIBRARY_VISIBILITY AlignAttributeImpl : public EnumAttributeImpl {
unsigned Align; unsigned Align;
public: public:
@@ -121,7 +121,7 @@ public:
unsigned getAlignment() const { return Align; } unsigned getAlignment() const { return Align; }
}; };
class StringAttributeImpl : public AttributeImpl { class LLVM_LIBRARY_VISIBILITY StringAttributeImpl : public AttributeImpl {
std::string Kind; std::string Kind;
std::string Val; std::string Val;
@@ -137,7 +137,7 @@ public:
/// \class /// \class
/// \brief This class represents a group of attributes that apply to one /// \brief This class represents a group of attributes that apply to one
/// element: function, return type, or parameter. /// element: function, return type, or parameter.
class AttributeSetNode : public FoldingSetNode { class LLVM_LIBRARY_VISIBILITY AttributeSetNode : public FoldingSetNode {
unsigned NumAttrs; ///< Number of attributes in this node. unsigned NumAttrs; ///< Number of attributes in this node.
AttributeSetNode(ArrayRef<Attribute> Attrs) : NumAttrs(Attrs.size()) { AttributeSetNode(ArrayRef<Attribute> Attrs) : NumAttrs(Attrs.size()) {
@@ -180,7 +180,7 @@ public:
/// \class /// \class
/// \brief This class represents a set of attributes that apply to the function, /// \brief This class represents a set of attributes that apply to the function,
/// return type, and parameters. /// return type, and parameters.
class AttributeSetImpl : public FoldingSetNode { class LLVM_LIBRARY_VISIBILITY AttributeSetImpl : public FoldingSetNode {
friend class AttributeSet; friend class AttributeSet;
LLVMContext &Context; LLVMContext &Context;

View File

@@ -31,7 +31,7 @@ struct ConstantTraits;
/// UnaryConstantExpr - This class is private to Constants.cpp, and is used /// UnaryConstantExpr - This class is private to Constants.cpp, and is used
/// behind the scenes to implement unary constant exprs. /// behind the scenes to implement unary constant exprs.
class UnaryConstantExpr : public ConstantExpr { class LLVM_LIBRARY_VISIBILITY UnaryConstantExpr : public ConstantExpr {
virtual void anchor(); virtual void anchor();
void *operator new(size_t, unsigned) LLVM_DELETED_FUNCTION; void *operator new(size_t, unsigned) LLVM_DELETED_FUNCTION;
public: public:
@@ -48,7 +48,7 @@ public:
/// BinaryConstantExpr - This class is private to Constants.cpp, and is used /// BinaryConstantExpr - This class is private to Constants.cpp, and is used
/// behind the scenes to implement binary constant exprs. /// behind the scenes to implement binary constant exprs.
class BinaryConstantExpr : public ConstantExpr { class LLVM_LIBRARY_VISIBILITY BinaryConstantExpr : public ConstantExpr {
virtual void anchor(); virtual void anchor();
void *operator new(size_t, unsigned) LLVM_DELETED_FUNCTION; void *operator new(size_t, unsigned) LLVM_DELETED_FUNCTION;
public: public:
@@ -69,7 +69,7 @@ public:
/// SelectConstantExpr - This class is private to Constants.cpp, and is used /// SelectConstantExpr - This class is private to Constants.cpp, and is used
/// behind the scenes to implement select constant exprs. /// behind the scenes to implement select constant exprs.
class SelectConstantExpr : public ConstantExpr { class LLVM_LIBRARY_VISIBILITY SelectConstantExpr : public ConstantExpr {
virtual void anchor(); virtual void anchor();
void *operator new(size_t, unsigned) LLVM_DELETED_FUNCTION; void *operator new(size_t, unsigned) LLVM_DELETED_FUNCTION;
public: public:
@@ -90,7 +90,7 @@ public:
/// ExtractElementConstantExpr - This class is private to /// ExtractElementConstantExpr - This class is private to
/// Constants.cpp, and is used behind the scenes to implement /// Constants.cpp, and is used behind the scenes to implement
/// extractelement constant exprs. /// extractelement constant exprs.
class ExtractElementConstantExpr : public ConstantExpr { class LLVM_LIBRARY_VISIBILITY ExtractElementConstantExpr : public ConstantExpr {
virtual void anchor(); virtual void anchor();
void *operator new(size_t, unsigned) LLVM_DELETED_FUNCTION; void *operator new(size_t, unsigned) LLVM_DELETED_FUNCTION;
public: public:
@@ -111,7 +111,7 @@ public:
/// InsertElementConstantExpr - This class is private to /// InsertElementConstantExpr - This class is private to
/// Constants.cpp, and is used behind the scenes to implement /// Constants.cpp, and is used behind the scenes to implement
/// insertelement constant exprs. /// insertelement constant exprs.
class InsertElementConstantExpr : public ConstantExpr { class LLVM_LIBRARY_VISIBILITY InsertElementConstantExpr : public ConstantExpr {
virtual void anchor(); virtual void anchor();
void *operator new(size_t, unsigned) LLVM_DELETED_FUNCTION; void *operator new(size_t, unsigned) LLVM_DELETED_FUNCTION;
public: public:
@@ -133,7 +133,7 @@ public:
/// ShuffleVectorConstantExpr - This class is private to /// ShuffleVectorConstantExpr - This class is private to
/// Constants.cpp, and is used behind the scenes to implement /// Constants.cpp, and is used behind the scenes to implement
/// shufflevector constant exprs. /// shufflevector constant exprs.
class ShuffleVectorConstantExpr : public ConstantExpr { class LLVM_LIBRARY_VISIBILITY ShuffleVectorConstantExpr : public ConstantExpr {
virtual void anchor(); virtual void anchor();
void *operator new(size_t, unsigned) LLVM_DELETED_FUNCTION; void *operator new(size_t, unsigned) LLVM_DELETED_FUNCTION;
public: public:
@@ -158,7 +158,7 @@ public:
/// ExtractValueConstantExpr - This class is private to /// ExtractValueConstantExpr - This class is private to
/// Constants.cpp, and is used behind the scenes to implement /// Constants.cpp, and is used behind the scenes to implement
/// extractvalue constant exprs. /// extractvalue constant exprs.
class ExtractValueConstantExpr : public ConstantExpr { class LLVM_LIBRARY_VISIBILITY ExtractValueConstantExpr : public ConstantExpr {
virtual void anchor(); virtual void anchor();
void *operator new(size_t, unsigned) LLVM_DELETED_FUNCTION; void *operator new(size_t, unsigned) LLVM_DELETED_FUNCTION;
public: public:
@@ -184,7 +184,7 @@ public:
/// InsertValueConstantExpr - This class is private to /// InsertValueConstantExpr - This class is private to
/// Constants.cpp, and is used behind the scenes to implement /// Constants.cpp, and is used behind the scenes to implement
/// insertvalue constant exprs. /// insertvalue constant exprs.
class InsertValueConstantExpr : public ConstantExpr { class LLVM_LIBRARY_VISIBILITY InsertValueConstantExpr : public ConstantExpr {
virtual void anchor(); virtual void anchor();
void *operator new(size_t, unsigned) LLVM_DELETED_FUNCTION; void *operator new(size_t, unsigned) LLVM_DELETED_FUNCTION;
public: public:
@@ -211,7 +211,7 @@ public:
/// GetElementPtrConstantExpr - This class is private to Constants.cpp, and is /// GetElementPtrConstantExpr - This class is private to Constants.cpp, and is
/// used behind the scenes to implement getelementpr constant exprs. /// used behind the scenes to implement getelementpr constant exprs.
class GetElementPtrConstantExpr : public ConstantExpr { class LLVM_LIBRARY_VISIBILITY GetElementPtrConstantExpr : public ConstantExpr {
virtual void anchor(); virtual void anchor();
GetElementPtrConstantExpr(Constant *C, ArrayRef<Constant*> IdxList, GetElementPtrConstantExpr(Constant *C, ArrayRef<Constant*> IdxList,
Type *DestTy); Type *DestTy);
@@ -232,7 +232,7 @@ public:
// CompareConstantExpr - This class is private to Constants.cpp, and is used // CompareConstantExpr - This class is private to Constants.cpp, and is used
// behind the scenes to implement ICmp and FCmp constant expressions. This is // behind the scenes to implement ICmp and FCmp constant expressions. This is
// needed in order to store the predicate value for these instructions. // needed in order to store the predicate value for these instructions.
class CompareConstantExpr : public ConstantExpr { class LLVM_LIBRARY_VISIBILITY CompareConstantExpr : public ConstantExpr {
virtual void anchor(); virtual void anchor();
void *operator new(size_t, unsigned) LLVM_DELETED_FUNCTION; void *operator new(size_t, unsigned) LLVM_DELETED_FUNCTION;
public: public:
@@ -313,7 +313,7 @@ struct OperandTraits<CompareConstantExpr> :
}; };
DEFINE_TRANSPARENT_OPERAND_ACCESSORS(CompareConstantExpr, Value) DEFINE_TRANSPARENT_OPERAND_ACCESSORS(CompareConstantExpr, Value)
struct ExprMapKeyType { struct LLVM_LIBRARY_VISIBILITY ExprMapKeyType {
ExprMapKeyType(unsigned opc, ExprMapKeyType(unsigned opc,
ArrayRef<Constant*> ops, ArrayRef<Constant*> ops,
unsigned short flags = 0, unsigned short flags = 0,
@@ -349,7 +349,7 @@ struct ExprMapKeyType {
} }
}; };
struct InlineAsmKeyType { struct LLVM_LIBRARY_VISIBILITY InlineAsmKeyType {
InlineAsmKeyType(StringRef AsmString, InlineAsmKeyType(StringRef AsmString,
StringRef Constraints, bool hasSideEffects, StringRef Constraints, bool hasSideEffects,
bool isAlignStack, InlineAsm::AsmDialect asmDialect) bool isAlignStack, InlineAsm::AsmDialect asmDialect)
@@ -512,7 +512,7 @@ struct ConstantKeyData<InlineAsm> {
template<class ValType, class ValRefType, class TypeClass, class ConstantClass, template<class ValType, class ValRefType, class TypeClass, class ConstantClass,
bool HasLargeKey = false /*true for arrays and structs*/ > bool HasLargeKey = false /*true for arrays and structs*/ >
class ConstantUniqueMap { class LLVM_LIBRARY_VISIBILITY ConstantUniqueMap {
public: public:
typedef std::pair<TypeClass*, ValType> MapKey; typedef std::pair<TypeClass*, ValType> MapKey;
typedef std::map<MapKey, ConstantClass *> MapTy; typedef std::map<MapKey, ConstantClass *> MapTy;
@@ -648,7 +648,7 @@ public:
// Unique map for aggregate constants // Unique map for aggregate constants
template<class TypeClass, class ConstantClass> template<class TypeClass, class ConstantClass>
class ConstantAggrUniqueMap { class LLVM_LIBRARY_VISIBILITY ConstantAggrUniqueMap {
public: public:
typedef ArrayRef<Constant*> Operands; typedef ArrayRef<Constant*> Operands;
typedef std::pair<TypeClass*, Operands> LookupKey; typedef std::pair<TypeClass*, Operands> LookupKey;

View File

@@ -41,7 +41,7 @@ class LLVMContext;
class Type; class Type;
class Value; class Value;
struct DenseMapAPIntKeyInfo { struct LLVM_LIBRARY_VISIBILITY DenseMapAPIntKeyInfo {
struct KeyTy { struct KeyTy {
APInt val; APInt val;
Type* type; Type* type;
@@ -66,7 +66,7 @@ struct DenseMapAPIntKeyInfo {
} }
}; };
struct DenseMapAPFloatKeyInfo { struct LLVM_LIBRARY_VISIBILITY DenseMapAPFloatKeyInfo {
struct KeyTy { struct KeyTy {
APFloat val; APFloat val;
KeyTy(const APFloat& V) : val(V){} KeyTy(const APFloat& V) : val(V){}
@@ -94,7 +94,7 @@ struct DenseMapAPFloatKeyInfo {
} }
}; };
struct AnonStructTypeKeyInfo { struct LLVM_LIBRARY_VISIBILITY AnonStructTypeKeyInfo {
struct KeyTy { struct KeyTy {
ArrayRef<Type*> ETypes; ArrayRef<Type*> ETypes;
bool isPacked; bool isPacked;
@@ -138,7 +138,7 @@ struct AnonStructTypeKeyInfo {
} }
}; };
struct FunctionTypeKeyInfo { struct LLVM_LIBRARY_VISIBILITY FunctionTypeKeyInfo {
struct KeyTy { struct KeyTy {
const Type *ReturnType; const Type *ReturnType;
ArrayRef<Type*> Params; ArrayRef<Type*> Params;
@@ -209,7 +209,7 @@ template<> struct FoldingSetTrait<MDNode> : DefaultFoldingSetTrait<MDNode> {
/// DebugRecVH - This is a CallbackVH used to keep the Scope -> index maps /// DebugRecVH - This is a CallbackVH used to keep the Scope -> index maps
/// up to date as MDNodes mutate. This class is implemented in DebugLoc.cpp. /// up to date as MDNodes mutate. This class is implemented in DebugLoc.cpp.
class DebugRecVH : public CallbackVH { class LLVM_LIBRARY_VISIBILITY DebugRecVH : public CallbackVH {
/// Ctx - This is the LLVM Context being referenced. /// Ctx - This is the LLVM Context being referenced.
LLVMContextImpl *Ctx; LLVMContextImpl *Ctx;
@@ -230,7 +230,7 @@ public:
virtual void allUsesReplacedWith(Value *VNew); virtual void allUsesReplacedWith(Value *VNew);
}; };
class LLVMContextImpl { class LLVM_LIBRARY_VISIBILITY LLVMContextImpl {
public: public:
/// OwnedModules - The set of modules instantiated in this context, and which /// OwnedModules - The set of modules instantiated in this context, and which
/// will be automatically deleted if this context is deleted. /// will be automatically deleted if this context is deleted.

View File

@@ -28,7 +28,7 @@ struct PrinterTrait<Value> {
}; };
template <typename T> template <typename T>
struct LeakDetectorImpl { struct LLVM_LIBRARY_VISIBILITY LeakDetectorImpl {
explicit LeakDetectorImpl(const char* const name = "") : explicit LeakDetectorImpl(const char* const name = "") :
Cache(0), Name(name) { } Cache(0), Name(name) { }

View File

@@ -21,7 +21,7 @@
namespace llvm { namespace llvm {
class DebugIR : public llvm::ModulePass { class LLVM_LIBRARY_VISIBILITY DebugIR : public llvm::ModulePass {
/// If true, write a source file to disk. /// If true, write a source file to disk.
bool WriteSourceToDisk; bool WriteSourceToDisk;

View File

@@ -29,7 +29,7 @@ namespace objcarc {
/// Declarations for ObjC runtime functions and constants. These are initialized /// Declarations for ObjC runtime functions and constants. These are initialized
/// lazily to avoid cluttering up the Module with unused declarations. /// lazily to avoid cluttering up the Module with unused declarations.
class ARCRuntimeEntryPoints { class LLVM_LIBRARY_VISIBILITY ARCRuntimeEntryPoints {
public: public:
enum EntryPointType { enum EntryPointType {
EPT_AutoreleaseRV, EPT_AutoreleaseRV,

View File

@@ -35,7 +35,7 @@ namespace objcarc {
/// TODO: This class could be generalized to know about other ObjC-specific /// TODO: This class could be generalized to know about other ObjC-specific
/// tricks. Such as knowing that ivars in the non-fragile ABI are non-aliasing /// tricks. Such as knowing that ivars in the non-fragile ABI are non-aliasing
/// even though their offsets are dynamic. /// even though their offsets are dynamic.
class ObjCARCAliasAnalysis : public ImmutablePass, class LLVM_LIBRARY_VISIBILITY ObjCARCAliasAnalysis : public ImmutablePass,
public AliasAnalysis { public AliasAnalysis {
public: public:
static char ID; // Class identification, replacement for typeinfo static char ID; // Class identification, replacement for typeinfo

View File

@@ -46,7 +46,7 @@ namespace objcarc {
/// an ``independent provenance source'' of a pointer to determine whether or /// an ``independent provenance source'' of a pointer to determine whether or
/// not two pointers have the same provenance source and thus could /// not two pointers have the same provenance source and thus could
/// potentially be related. /// potentially be related.
class ProvenanceAnalysis { class LLVM_LIBRARY_VISIBILITY ProvenanceAnalysis {
AliasAnalysis *AA; AliasAnalysis *AA;
typedef std::pair<const Value *, const Value *> ValuePairTy; typedef std::pair<const Value *, const Value *> ValuePairTy;