From d1039cc5817f32b6d8c01b2a659928014ad45c90 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Mon, 25 Apr 2005 15:47:57 +0000 Subject: Add feedback from Vikram llvm-svn: 21534 --- llvm/docs/ProgrammersManual.html | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'llvm/docs/ProgrammersManual.html') diff --git a/llvm/docs/ProgrammersManual.html b/llvm/docs/ProgrammersManual.html index 82b263845c6..1d207bebbf2 100644 --- a/llvm/docs/ProgrammersManual.html +++ b/llvm/docs/ProgrammersManual.html @@ -970,6 +970,15 @@ assembly parser, and linker also have to be aware of the inner workings of this system.

+

+For our purposes below, we need three concepts. First, an "Opaque Type" is +exactly as defined in the language +reference. Second an "Abstract Type" is any type which includes an +opaque type as part of its type graph (for example "{ opaque, int }"). +Third, a concrete type is a type that is not an abstract type (e.g. "[ int, +float }"). +

+ @@ -1093,8 +1102,8 @@ changes.

To support this, a class can derive from the AbstractTypeUser class. This class allows it to get callbacks when certain types are resolved. To register to get callbacks for a particular type, the DerivedType::{add/remove}AbstractTypeUser -methods can be called on a type. Note that these methods only work for {\em -abstract} types. Concrete types (those that do not include an opaque objects +methods can be called on a type. Note that these methods only work for +abstract types. Concrete types (those that do not include an opaque objects somewhere) can never be refined.

-- cgit v1.2.3