diff options
-rw-r--r-- | docs/LangRef.html | 10 | ||||
-rw-r--r-- | lib/VMCore/Verifier.cpp | 8 |
2 files changed, 16 insertions, 2 deletions
diff --git a/docs/LangRef.html b/docs/LangRef.html index df6baa7..f9e0824 100644 --- a/docs/LangRef.html +++ b/docs/LangRef.html @@ -2671,7 +2671,8 @@ allocate, and free memory in LLVM.</p> <h5>Overview:</h5> <p>The '<tt>malloc</tt>' instruction allocates memory from the system -heap and returns a pointer to it.</p> +heap and returns a pointer to it. The object is always allocated in the generic +address space (address space zero).</p> <h5>Arguments:</h5> @@ -2758,7 +2759,8 @@ after this instruction executes.</p> <p>The '<tt>alloca</tt>' instruction allocates memory on the stack frame of the currently executing function, to be automatically released when this function -returns to its caller.</p> +returns to its caller. The object is always allocated in the generic address +space (address space zero).</p> <h5>Arguments:</h5> @@ -3972,6 +3974,10 @@ Front-ends for type-safe garbage collected languages should generate these intrinsics to make use of the LLVM garbage collectors. For more details, see <a href="GarbageCollection.html">Accurate Garbage Collection with LLVM</a>. </p> + +<p>The garbage collection intrinsics only operate on objects in the generic + address space (address space zero).</p> + </div> <!-- _______________________________________________________________________ --> diff --git a/lib/VMCore/Verifier.cpp b/lib/VMCore/Verifier.cpp index c3633ff..fb8db17 100644 --- a/lib/VMCore/Verifier.cpp +++ b/lib/VMCore/Verifier.cpp @@ -254,6 +254,7 @@ namespace { // Anonymous namespace for class void visitUserOp1(Instruction &I); void visitUserOp2(Instruction &I) { visitUserOp1(I); } void visitIntrinsicFunctionCall(Intrinsic::ID ID, CallInst &CI); + void visitAllocationInst(AllocationInst &AI); void VerifyIntrinsicPrototype(Intrinsic::ID ID, Function *F, unsigned Count, ...); @@ -987,6 +988,13 @@ void Verifier::visitStoreInst(StoreInst &SI) { visitInstruction(SI); } +void Verifier::visitAllocationInst(AllocationInst &AI) { + const PointerType *Ptr = AI.getType(); + Assert(Ptr->getAddressSpace() == 0, + "Allocation instruction pointer not in the generic address space!"); + visitInstruction(AI); +} + /// verifyInstruction - Verify that an instruction is well formed. /// |