Re-enables the new vector select in the bitcode reader, by modifying the
[oota-llvm.git] / include / llvm / Target / TargetAsmInfo.h
index bbb58527eb620e46202554ca9270b9ae46cb430e..589c9a6efc9b052f04be92297cd9a6f1c5522dea 100644 (file)
@@ -100,6 +100,7 @@ namespace llvm {
   class CallInst;
   class GlobalValue;
   class Type;
+  class Mangler;
 
   class Section {
     friend class TargetAsmInfo;
@@ -220,9 +221,9 @@ namespace llvm {
     /// have names in the .o file.  This is often "." or "L".
     const char *PrivateGlobalPrefix;      // Defaults to "."
     
-    /// LessPrivateGlobalPrefix - This prefix is used for some Objective C
-    /// metadata symbols that should be passed through the assembler but be
-    /// removed by the linker.  This is "l" on Darwin.
+    /// LessPrivateGlobalPrefix - This prefix is used for symbols that should
+    /// be passed through the assembler but be removed by the linker.  This
+    /// is "l" on Darwin, currently used for some ObjC metadata.
     const char *LessPrivateGlobalPrefix;      // Defaults to ""
     
     /// JumpTableSpecialLabelPrefix - If not null, a extra (dead) label is
@@ -543,6 +544,13 @@ namespace llvm {
       return false;
     }
 
+    /// emitUsedDirectiveFor - This hook allows targets to selectively decide
+    /// not to emit the UsedDirective for some symbols in llvm.used.
+    virtual bool emitUsedDirectiveFor(const GlobalValue *GV,
+                                      Mangler *Mang) const {
+      return (GV!=0);
+    }
+
     /// PreferredEHDataFormat - This hook allows the target to select data
     /// format used for encoding pointers in exception handling data. Reason is
     /// 0 for data, 1 for code labels, 2 for function pointers. Global is true