diff options
-rw-r--r-- | include/llvm/Constant.h | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/include/llvm/Constant.h b/include/llvm/Constant.h index 6025a70a88..d4949d1a0f 100644 --- a/include/llvm/Constant.h +++ b/include/llvm/Constant.h @@ -19,6 +19,13 @@ 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 |