From reid at x10sys.com Mon Apr 25 02:29:44 2005 From: reid at x10sys.com (Reid Spencer) Date: Mon, 25 Apr 2005 02:29:44 -0500 Subject: [llvm-commits] CVS: llvm/test/Regression/Transforms/SimplifyLibCalls/2005-04-24-strcat.ll Message-ID: <200504250729.CAA32310@zion.cs.uiuc.edu> Changes in directory llvm/test/Regression/Transforms/SimplifyLibCalls: 2005-04-24-strcat.ll added (r1.1) --- Log message: A test case for testing the StrCatOptimizer, currently XFAILed everywhere. --- Diffs of the changes: (+16 -0) 2005-04-24-strcat.ll | 16 ++++++++++++++++ 1 files changed, 16 insertions(+) Index: llvm/test/Regression/Transforms/SimplifyLibCalls/2005-04-24-strcat.ll diff -c /dev/null llvm/test/Regression/Transforms/SimplifyLibCalls/2005-04-24-strcat.ll:1.1 *** /dev/null Mon Apr 25 02:29:41 2005 --- llvm/test/Regression/Transforms/SimplifyLibCalls/2005-04-24-strcat.ll Mon Apr 25 02:29:30 2005 *************** *** 0 **** --- 1,16 ---- + ; Test that the StrCatOptimizer works correctly + ; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | grep strlen + ; XFAIL: * + + declare sbyte* %strcat(sbyte*,sbyte*) + %hello = constant [6 x sbyte] c"hello\00" + + implementation ; Functions: + + int %main () { + %target = alloca [1024 x sbyte] + %arg1 = getelementptr [1024 x sbyte]* %target, int 0, int 0 + %arg2 = getelementptr [6 x sbyte]* %hello, int 0, int 0 + %rslt = call sbyte* %strcat(sbyte* %arg1, sbyte* %arg2) + ret int 0 + } From reid at x10sys.com Mon Apr 25 10:40:46 2005 From: reid at x10sys.com (Reid Spencer) Date: Mon, 25 Apr 2005 10:40:46 -0500 Subject: [llvm-commits] CVS: llvm/test/Regression/Transforms/SimplifyLibCalls/2005-04-24-strcat.ll Message-ID: <200504251540.KAA30892@zion.cs.uiuc.edu> Changes in directory llvm/test/Regression/Transforms/SimplifyLibCalls: 2005-04-24-strcat.ll updated: 1.1 -> 1.2 --- Log message: Make sure the target buffer is null terminated so we don't blow up strcat when its called. --- Diffs of the changes: (+1 -0) 2005-04-24-strcat.ll | 1 + 1 files changed, 1 insertion(+) Index: llvm/test/Regression/Transforms/SimplifyLibCalls/2005-04-24-strcat.ll diff -u llvm/test/Regression/Transforms/SimplifyLibCalls/2005-04-24-strcat.ll:1.1 llvm/test/Regression/Transforms/SimplifyLibCalls/2005-04-24-strcat.ll:1.2 --- llvm/test/Regression/Transforms/SimplifyLibCalls/2005-04-24-strcat.ll:1.1 Mon Apr 25 02:29:30 2005 +++ llvm/test/Regression/Transforms/SimplifyLibCalls/2005-04-24-strcat.ll Mon Apr 25 10:40:35 2005 @@ -10,6 +10,7 @@ int %main () { %target = alloca [1024 x sbyte] %arg1 = getelementptr [1024 x sbyte]* %target, int 0, int 0 + store sbyte 0, sbyte* %arg1 %arg2 = getelementptr [6 x sbyte]* %hello, int 0, int 0 %rslt = call sbyte* %strcat(sbyte* %arg1, sbyte* %arg2) ret int 0 From lattner at cs.uiuc.edu Mon Apr 25 10:48:14 2005 From: lattner at cs.uiuc.edu (Chris Lattner) Date: Mon, 25 Apr 2005 10:48:14 -0500 Subject: [llvm-commits] CVS: llvm/docs/ProgrammersManual.html Message-ID: <200504251548.j3PFmEru016874@apoc.cs.uiuc.edu> Changes in directory llvm/docs: ProgrammersManual.html updated: 1.82 -> 1.83 --- Log message: Add feedback from Vikram --- Diffs of the changes: (+12 -3) ProgrammersManual.html | 15 ++++++++++++--- 1 files changed, 12 insertions(+), 3 deletions(-) Index: llvm/docs/ProgrammersManual.html diff -u llvm/docs/ProgrammersManual.html:1.82 llvm/docs/ProgrammersManual.html:1.83 --- llvm/docs/ProgrammersManual.html:1.82 Sat Apr 23 12:27:36 2005 +++ llvm/docs/ProgrammersManual.html Mon Apr 25 10:47:57 2005 @@ -970,6 +970,15 @@ 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 @@ 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. @@ -2227,7 +2236,7 @@ Dinakar Dhurjati and Chris Lattner