Clearify local/global relocations wording
authorAnton Korobeynikov <asl@math.spbu.ru>
Mon, 30 Mar 2009 17:38:00 +0000 (17:38 +0000)
committerAnton Korobeynikov <asl@math.spbu.ru>
Mon, 30 Mar 2009 17:38:00 +0000 (17:38 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68037 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Constant.h

index 6025a70a885244f28768ba7546ca4c3fa2743ac5..d4949d1a0ffd1447f2ea7a86fcab3518e238af12 100644 (file)
 namespace llvm {
   template<typename T> class SmallVectorImpl;
 
+  /// If object contains references to other objects, then relocations are
+  /// usually required for emission of such object (especially in PIC mode). One
+  /// usually distinguishes local and global relocations. Local relocations are
+  /// made wrt objects in the same module and these objects have local (internal
+  /// or private) linkage. Global relocations are made wrt externally visible
+  /// objects. In most cases local relocations can be resolved via so-called
+  /// 'pre-link' technique.
   namespace Reloc {
     const unsigned None   = 0;
     const unsigned Local  = 1 << 0; ///< Local relocations are required
@@ -70,7 +77,9 @@ public:
   bool canTrap() const;
 
   /// ContainsRelocations - Return true if the constant value contains
-  /// relocations which cannot be resolved at compile time.
+  /// relocations which cannot be resolved at compile time. Note that answer is
+  /// not exclusive: there can be possibility that relocations of other kind are
+  /// required as well.
   bool ContainsRelocations(unsigned Kind = Reloc::LocalOrGlobal) const;
 
   // Specialize get/setOperand for Constants as their operands are always