I got tired of VISIBILITY_HIDDEN colliding with the gcc enum. Rename it

to LLVM_LIBRARY_VISIBILITY and introduce LLVM_GLOBAL_VISIBILITY, which is
the opposite, for future use by dragonegg.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103495 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Duncan Sands 2010-05-11 20:16:09 +00:00
parent 124b55dded
commit 16d8f8bd91
13 changed files with 28 additions and 19 deletions

View File

@ -617,7 +617,7 @@ conforms to the binary interface defined by library, most essentially the
using namespace llvm;
namespace {
class VISIBILITY_HIDDEN MyGC : public GCStrategy {
class LLVM_LIBRARY_VISIBILITY MyGC : public GCStrategy {
public:
MyGC() {}
};
@ -1229,7 +1229,7 @@ generation in the JIT, nor using the object writers.</p>
using namespace llvm;
namespace {
class VISIBILITY_HIDDEN MyGCPrinter : public GCMetadataPrinter {
class LLVM_LIBRARY_VISIBILITY MyGCPrinter : public GCMetadataPrinter {
public:
virtual void beginAssembly(std::ostream &amp;OS, AsmPrinter &amp;AP,
const TargetAsmInfo &amp;TAI);

View File

@ -15,12 +15,21 @@
#ifndef LLVM_SUPPORT_COMPILER_H
#define LLVM_SUPPORT_COMPILER_H
// The VISIBILITY_HIDDEN macro, used for marking classes with the GCC-specific
// visibility("hidden") attribute.
/// LLVM_LIBRARY_VISIBILITY - If a class marked with this attribute is linked
/// into a shared library, then the class should be private to the library and
/// not accessible from outside it. Can also be used to mark variables and
/// functions, making them private to any shared library they are linked into.
/// LLVM_GLOBAL_VISIBILITY - If a class marked with this attribute is linked
/// into a shared library, then the class will be accessible from outside the
/// the library. Can also be used to mark variables and functions, making them
/// accessible from outside any shared library they are linked into.
#if (__GNUC__ >= 4) && !defined(__MINGW32__) && !defined(__CYGWIN__)
#define VISIBILITY_HIDDEN __attribute__ ((visibility("hidden")))
#define LLVM_LIBRARY_VISIBILITY __attribute__ ((visibility("hidden")))
#define LLVM_GLOBAL_VISIBILITY __attribute__ ((visibility("default")))
#else
#define VISIBILITY_HIDDEN
#define LLVM_LIBRARY_VISIBILITY
#define LLVM_GLOBAL_VISIBILITY
#endif
#if (__GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))

View File

@ -32,7 +32,7 @@ namespace llvm {
/// For example, loop induction variable increments should be
/// scheduled as soon as possible after the variable's last use.
///
class VISIBILITY_HIDDEN LoopDependencies {
class LLVM_LIBRARY_VISIBILITY LoopDependencies {
const MachineLoopInfo &MLI;
const MachineDominatorTree &MDT;
@ -94,7 +94,7 @@ namespace llvm {
/// ScheduleDAGInstrs - A ScheduleDAG subclass for scheduling lists of
/// MachineInstrs.
class VISIBILITY_HIDDEN ScheduleDAGInstrs : public ScheduleDAG {
class LLVM_LIBRARY_VISIBILITY ScheduleDAGInstrs : public ScheduleDAG {
const MachineLoopInfo &MLI;
const MachineDominatorTree &MDT;
const MachineFrameInfo *MFI;

View File

@ -32,7 +32,7 @@ namespace llvm {
/// involves promoting small sizes to large sizes or splitting up large values
/// into small values.
///
class VISIBILITY_HIDDEN DAGTypeLegalizer {
class LLVM_LIBRARY_VISIBILITY DAGTypeLegalizer {
const TargetLowering &TLI;
SelectionDAG &DAG;
public:

View File

@ -4944,7 +4944,7 @@ isAllocatableRegister(unsigned Reg, MachineFunction &MF,
namespace llvm {
/// AsmOperandInfo - This contains information for each constraint that we are
/// lowering.
class VISIBILITY_HIDDEN SDISelAsmOperandInfo :
class LLVM_LIBRARY_VISIBILITY SDISelAsmOperandInfo :
public TargetLowering::AsmOperandInfo {
public:
/// CallOperand - If this is the result output operand or a clobber

View File

@ -26,7 +26,7 @@ namespace llvm {
//class ARMSubtarget;
/// ARMMCInstLower - This class is used to lower an MachineInstr into an MCInst.
class VISIBILITY_HIDDEN ARMMCInstLower {
class LLVM_LIBRARY_VISIBILITY ARMMCInstLower {
MCContext &Ctx;
Mangler &Mang;
AsmPrinter &Printer;

View File

@ -26,7 +26,7 @@ namespace llvm {
/// MSP430MCInstLower - This class is used to lower an MachineInstr
/// into an MCInst.
class VISIBILITY_HIDDEN MSP430MCInstLower {
class LLVM_LIBRARY_VISIBILITY MSP430MCInstLower {
MCContext &Ctx;
Mangler &Mang;

View File

@ -29,7 +29,7 @@
#include <string>
namespace llvm {
class VISIBILITY_HIDDEN PIC16AsmPrinter : public AsmPrinter {
class LLVM_LIBRARY_VISIBILITY PIC16AsmPrinter : public AsmPrinter {
public:
explicit PIC16AsmPrinter(TargetMachine &TM, MCStreamer &Streamer);
private:

View File

@ -26,7 +26,7 @@ using namespace llvm;
namespace {
class VISIBILITY_HIDDEN PIC16DAGToDAGISel : public SelectionDAGISel {
class LLVM_LIBRARY_VISIBILITY PIC16DAGToDAGISel : public SelectionDAGISel {
/// TM - Keep a reference to PIC16TargetMachine.
const PIC16TargetMachine &TM;

View File

@ -31,7 +31,7 @@ class MCInst;
class MCStreamer;
class MCSymbol;
class VISIBILITY_HIDDEN X86AsmPrinter : public AsmPrinter {
class LLVM_LIBRARY_VISIBILITY X86AsmPrinter : public AsmPrinter {
const X86Subtarget *Subtarget;
public:
explicit X86AsmPrinter(TargetMachine &TM, MCStreamer &Streamer)

View File

@ -25,7 +25,7 @@ namespace llvm {
class X86Subtarget;
/// X86MCInstLower - This class is used to lower an MachineInstr into an MCInst.
class VISIBILITY_HIDDEN X86MCInstLower {
class LLVM_LIBRARY_VISIBILITY X86MCInstLower {
MCContext &Ctx;
Mangler *Mang;
X86AsmPrinter &AsmPrinter;

View File

@ -51,7 +51,7 @@ static inline unsigned getComplexity(Value *V) {
/// InstCombineIRInserter - This is an IRBuilder insertion helper that works
/// just like the normal insertion helper, but also adds any new instructions
/// to the instcombine worklist.
class VISIBILITY_HIDDEN InstCombineIRInserter
class LLVM_LIBRARY_VISIBILITY InstCombineIRInserter
: public IRBuilderDefaultInserter<true> {
InstCombineWorklist &Worklist;
public:
@ -65,7 +65,7 @@ public:
};
/// InstCombiner - The -instcombine pass.
class VISIBILITY_HIDDEN InstCombiner
class LLVM_LIBRARY_VISIBILITY InstCombiner
: public FunctionPass,
public InstVisitor<InstCombiner, Instruction*> {
TargetData *TD;

View File

@ -22,7 +22,7 @@ namespace llvm {
/// InstCombineWorklist - This is the worklist management logic for
/// InstCombine.
class VISIBILITY_HIDDEN InstCombineWorklist {
class LLVM_LIBRARY_VISIBILITY InstCombineWorklist {
SmallVector<Instruction*, 256> Worklist;
DenseMap<Instruction*, unsigned> WorklistMap;