diff options
author | Anton Korobeynikov <asl@math.spbu.ru> | 2009-03-30 17:38:00 +0000 |
---|---|---|
committer | Anton Korobeynikov <asl@math.spbu.ru> | 2009-03-30 17:38:00 +0000 |
commit | ca6234944c9d01a549f5ccb1b442ae9fc4f0e012 (patch) | |
tree | 786eb2c04b617a90bb4da98d654b5b7eba877293 | |
parent | 29519b1de0daa0c94a16ab163199235a7f82e1f0 (diff) |
Clearify local/global relocations wording
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68037 91177308-0d34-0410-b5e6-96231b3b80d8
-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 |