From b5bb29c71fccc3c36c9175764303ef75c4fc73ee Mon Sep 17 00:00:00 2001 From: NAKAMURA Takumi Date: Fri, 12 Aug 2011 06:17:17 +0000 Subject: docs: Update HTML markup(s). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137433 91177308-0d34-0410-b5e6-96231b3b80d8 --- docs/GarbageCollection.html | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) (limited to 'docs/GarbageCollection.html') diff --git a/docs/GarbageCollection.html b/docs/GarbageCollection.html index 761e1d08ca..a226b0ee3e 100644 --- a/docs/GarbageCollection.html +++ b/docs/GarbageCollection.html @@ -290,10 +290,8 @@ doing so is very simple. (This code is heavily commented to help you understand the data structure, but there are only 20 lines of meaningful code.)

- - -
/// @brief The map for a single function's stack frame. One of these is
+
+/// @brief The map for a single function's stack frame. One of these is
 ///        compiled as constant data into the executable for each function.
 /// 
 /// Storage of metadata values is elided if the %metadata parameter to
@@ -338,7 +336,9 @@ void visitGCRoots(void (*Visitor)(void **Root, const void *Meta)) {
     for (unsigned e = R->Map->NumRoots; i != e; ++i)
       Visitor(&R->Roots[i], NULL);
   }
-}
+} + +

@@ -395,12 +395,12 @@ program.

Specifying GC code generation: gc "..."

+
+
define ty @name(...) gc "name" { ...
-
-

The gc function attribute is used to specify the desired GC style to the compiler. Its programmatic equivalent is the setGC method of Function.

@@ -420,12 +420,12 @@ programs that use different garbage collection algorithms (or none at all).

Identifying GC roots on the stack: llvm.gcroot +
+
void @llvm.gcroot(i8** %ptrloc, i8* %metadata)
-
-

The llvm.gcroot intrinsic is used to inform LLVM that a stack variable references an object on the heap and is to be tracked for garbage collection. The exact impact on generated code is specified by a

Consider the following fragment of Java code:

-
+
        {
          Object X;   // A null-initialized reference to an object
          ...
@@ -463,7 +463,7 @@ the stack frame.

This block (which may be located in the middle of a function or in a loop nest), could be compiled to this LLVM code:

-
+
 Entry:
    ;; In the entry block for the function, allocate the
    ;; stack space for X, which is an LLVM pointer.
@@ -537,12 +537,12 @@ are used.

Write barrier: llvm.gcwrite +
+
void @llvm.gcwrite(i8* %value, i8* %object, i8** %derived)
-
-

For write barriers, LLVM provides the llvm.gcwrite intrinsic function. It has exactly the same semantics as a non-volatile store to the derived pointer (the third argument). The exact code generated is specified @@ -559,12 +559,12 @@ implement reference counting.

Read barrier: llvm.gcread +
+
i8* @llvm.gcread(i8* %object, i8** %derived)
-
-

For read barriers, LLVM provides the llvm.gcread intrinsic function. It has exactly the same semantics as a non-volatile load from the derived pointer (the second argument). The exact code generated is specified by -- cgit v1.2.3