&5
echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
@@ -24400,7 +24415,6 @@
lib/ExecutionEngine/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/lib/ExecutionEngine/Makefile lib/ExecutionEngine/Makefile ;;
lib/ExecutionEngine/Interpreter/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/lib/ExecutionEngine/Interpreter/Makefile lib/ExecutionEngine/Interpreter/Makefile ;;
lib/ExecutionEngine/JIT/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/lib/ExecutionEngine/JIT/Makefile lib/ExecutionEngine/JIT/Makefile ;;
- lib/Support/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/lib/Support/Makefile lib/Support/Makefile ;;
lib/Target/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/lib/Target/Makefile lib/Target/Makefile ;;
lib/Target/Sparc/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/lib/Target/Sparc/Makefile lib/Target/Sparc/Makefile ;;
lib/Target/X86/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/lib/Target/X86/Makefile lib/Target/X86/Makefile ;;
@@ -24539,9 +24553,6 @@
tools/llvm-link/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/tools/llvm-link/Makefile tools/llvm-link/Makefile ;;
tools/opt/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/tools/opt/Makefile tools/opt/Makefile ;;
utils/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/utils/Makefile utils/Makefile ;;
- utils/Burg/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/utils/Burg/Makefile utils/Burg/Makefile ;;
- utils/Burg/Doc/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/utils/Burg/Doc/Makefile utils/Burg/Doc/Makefile ;;
- utils/TableGen/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/utils/TableGen/Makefile utils/TableGen/Makefile ;;
www/docs/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/www/docs/Makefile www/docs/Makefile ;;
projects/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/projects/Makefile projects/Makefile ;;
projects/sample/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/projects/sample/Makefile projects/sample/Makefile ;;
@@ -24555,6 +24566,13 @@
projects/ModuleMaker/Makefile.common ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/projects/ModuleMaker/Makefile.common projects/ModuleMaker/Makefile.common ;;
projects/ModuleMaker/tools/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/projects/ModuleMaker/tools/Makefile projects/ModuleMaker/tools/Makefile ;;
projects/ModuleMaker/tools/ModuleMaker/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/projects/ModuleMaker/tools/ModuleMaker/Makefile projects/ModuleMaker/tools/ModuleMaker/Makefile ;;
+ support/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/support/Makefile support/Makefile ;;
+ support/lib/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/support/lib/Makefile support/lib/Makefile ;;
+ support/lib/Support/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/support/lib/Support/Makefile support/lib/Support/Makefile ;;
+ support/tools/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/support/tools/Makefile support/tools/Makefile ;;
+ support/tools/Burg/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/support/tools/Burg/Makefile support/tools/Burg/Makefile ;;
+ support/tools/Burg/Doc/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/support/tools/Burg/Doc/Makefile support/tools/Burg/Doc/Makefile ;;
+ support/tools/TableGen/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/support/tools/TableGen/Makefile support/tools/TableGen/Makefile ;;
esac
done
_ACEOF
From criswell at cs.uiuc.edu Mon Sep 29 09:54:02 2003
From: criswell at cs.uiuc.edu (John Criswell)
Date: Mon Sep 29 09:54:02 2003
Subject: [llvm-commits] CVS: llvm/utils/Makefile
Message-ID: <200309291453.JAA20601@choi.cs.uiuc.edu>
Changes in directory llvm/utils:
Makefile (r1.1) removed
---
Log message:
Moved llvm/utils/Burg and llvm/utils/TableGen to llvm/support/tools.
---
Diffs of the changes:
From criswell at cs.uiuc.edu Mon Sep 29 10:03:01 2003
From: criswell at cs.uiuc.edu (John Criswell)
Date: Mon Sep 29 10:03:01 2003
Subject: [llvm-commits] CVS: llvm/support/lib/Support/Makefile
Message-ID: <200309291502.KAA04800@choi.cs.uiuc.edu>
Changes in directory llvm/support/lib/Support:
Makefile updated: 1.3 -> 1.4
---
Log message:
Moved code from llvm/lib/Support to llvm/support/lib/Support.
---
Diffs of the changes:
Index: llvm/support/lib/Support/Makefile
diff -u llvm/support/lib/Support/Makefile:1.3 llvm/support/lib/Support/Makefile:1.4
--- llvm/support/lib/Support/Makefile:1.3 Tue Jul 23 12:52:34 2002
+++ llvm/support/lib/Support/Makefile Mon Sep 29 10:02:30 2003
@@ -1,4 +1,4 @@
-LEVEL = ../..
+LEVEL = ../../..
LIBRARYNAME = support
BUILD_ARCHIVE = 1
From criswell at cs.uiuc.edu Mon Sep 29 10:22:01 2003
From: criswell at cs.uiuc.edu (John Criswell)
Date: Mon Sep 29 10:22:01 2003
Subject: [llvm-commits] CVS: llvm/test/QMTestDB/regression.qms/transforms.qms/lowerswitch.qms/2003-08-23-emptyswitch.qmt
Message-ID: <200309291521.KAA04859@choi.cs.uiuc.edu>
Changes in directory llvm/test/QMTestDB/regression.qms/transforms.qms/lowerswitch.qms:
2003-08-23-emptyswitch.qmt added (r1.1)
---
Log message:
Adding new test.
---
Diffs of the changes:
Index: llvm/test/QMTestDB/regression.qms/transforms.qms/lowerswitch.qms/2003-08-23-emptyswitch.qmt
diff -c /dev/null llvm/test/QMTestDB/regression.qms/transforms.qms/lowerswitch.qms/2003-08-23-emptyswitch.qmt:1.1
*** /dev/null Mon Sep 29 10:21:12 2003
--- llvm/test/QMTestDB/regression.qms/transforms.qms/lowerswitch.qms/2003-08-23-emptyswitch.qmt Mon Sep 29 10:21:02 2003
***************
*** 0 ****
--- 1,2 ----
+
+ .*test/Regression/Transforms/LowerSwitch/2003-08-23-EmptySwitch.ll
From criswell at cs.uiuc.edu Mon Sep 29 10:25:01 2003
From: criswell at cs.uiuc.edu (John Criswell)
Date: Mon Sep 29 10:25:01 2003
Subject: [llvm-commits] CVS: llvm/test/QMTestDB/regression.qms/transforms.qms/pruneeh.qms/
Message-ID: <200309291524.KAA04896@choi.cs.uiuc.edu>
Changes in directory llvm/test/QMTestDB/regression.qms/transforms.qms/pruneeh.qms:
---
Log message:
Directory /home/vadve/vadve/Research/DynOpt/CVSRepository/llvm/test/QMTestDB/regression.qms/transforms.qms/pruneeh.qms added to the repository
---
Diffs of the changes:
From criswell at cs.uiuc.edu Mon Sep 29 10:29:01 2003
From: criswell at cs.uiuc.edu (John Criswell)
Date: Mon Sep 29 10:29:01 2003
Subject: [llvm-commits] CVS: llvm/test/QMTestDB/regression.qms/transforms.qms/pruneeh.qms/2003-09-14-externalcall.qmt recursivetest.qmt simpletest.qmt
Message-ID: <200309291528.KAA04961@choi.cs.uiuc.edu>
Changes in directory llvm/test/QMTestDB/regression.qms/transforms.qms/pruneeh.qms:
2003-09-14-externalcall.qmt updated: 1.1 -> 1.2
recursivetest.qmt updated: 1.1 -> 1.2
simpletest.qmt updated: 1.1 -> 1.2
---
Log message:
Corrected pathnames.
---
Diffs of the changes:
Index: llvm/test/QMTestDB/regression.qms/transforms.qms/pruneeh.qms/2003-09-14-externalcall.qmt
diff -u llvm/test/QMTestDB/regression.qms/transforms.qms/pruneeh.qms/2003-09-14-externalcall.qmt:1.1 llvm/test/QMTestDB/regression.qms/transforms.qms/pruneeh.qms/2003-09-14-externalcall.qmt:1.2
--- llvm/test/QMTestDB/regression.qms/transforms.qms/pruneeh.qms/2003-09-14-externalcall.qmt:1.1 Mon Sep 29 10:28:21 2003
+++ llvm/test/QMTestDB/regression.qms/transforms.qms/pruneeh.qms/2003-09-14-externalcall.qmt Mon Sep 29 10:28:43 2003
@@ -1,2 +1,2 @@
-.*test/Regression/Transforms/PruneEH/2003-09-14-ExternalCall.ll
+.*test/Regression/Transforms/PruneEH/2003-09-14-ExternalCall.llx
Index: llvm/test/QMTestDB/regression.qms/transforms.qms/pruneeh.qms/recursivetest.qmt
diff -u llvm/test/QMTestDB/regression.qms/transforms.qms/pruneeh.qms/recursivetest.qmt:1.1 llvm/test/QMTestDB/regression.qms/transforms.qms/pruneeh.qms/recursivetest.qmt:1.2
--- llvm/test/QMTestDB/regression.qms/transforms.qms/pruneeh.qms/recursivetest.qmt:1.1 Mon Sep 29 10:28:21 2003
+++ llvm/test/QMTestDB/regression.qms/transforms.qms/pruneeh.qms/recursivetest.qmt Mon Sep 29 10:28:43 2003
@@ -1,2 +1,2 @@
-.*test/Regression/Transforms/PruneEH/recursivetest.ll
+.*test/Regression/Transforms/PruneEH/recursivetest.llx
Index: llvm/test/QMTestDB/regression.qms/transforms.qms/pruneeh.qms/simpletest.qmt
diff -u llvm/test/QMTestDB/regression.qms/transforms.qms/pruneeh.qms/simpletest.qmt:1.1 llvm/test/QMTestDB/regression.qms/transforms.qms/pruneeh.qms/simpletest.qmt:1.2
--- llvm/test/QMTestDB/regression.qms/transforms.qms/pruneeh.qms/simpletest.qmt:1.1 Mon Sep 29 10:28:21 2003
+++ llvm/test/QMTestDB/regression.qms/transforms.qms/pruneeh.qms/simpletest.qmt Mon Sep 29 10:28:43 2003
@@ -1,2 +1,2 @@
-.*test/Regression/Transforms/PruneEH/simpletest.ll
+.*test/Regression/Transforms/PruneEH/simpletest.llx
From criswell at cs.uiuc.edu Mon Sep 29 10:29:03 2003
From: criswell at cs.uiuc.edu (John Criswell)
Date: Mon Sep 29 10:29:03 2003
Subject: [llvm-commits] CVS: llvm/test/QMTestDB/regression.qms/transforms.qms/pruneeh.qms/2003-09-14-externalcall.qmt recursivetest.qmt simpletest.qmt
Message-ID: <200309291528.KAA04942@choi.cs.uiuc.edu>
Changes in directory llvm/test/QMTestDB/regression.qms/transforms.qms/pruneeh.qms:
2003-09-14-externalcall.qmt added (r1.1)
recursivetest.qmt added (r1.1)
simpletest.qmt added (r1.1)
---
Log message:
Adding new PruneEH tests.
---
Diffs of the changes:
Index: llvm/test/QMTestDB/regression.qms/transforms.qms/pruneeh.qms/2003-09-14-externalcall.qmt
diff -c /dev/null llvm/test/QMTestDB/regression.qms/transforms.qms/pruneeh.qms/2003-09-14-externalcall.qmt:1.1
*** /dev/null Mon Sep 29 10:28:31 2003
--- llvm/test/QMTestDB/regression.qms/transforms.qms/pruneeh.qms/2003-09-14-externalcall.qmt Mon Sep 29 10:28:21 2003
***************
*** 0 ****
--- 1,2 ----
+
+ .*test/Regression/Transforms/PruneEH/2003-09-14-ExternalCall.ll
Index: llvm/test/QMTestDB/regression.qms/transforms.qms/pruneeh.qms/recursivetest.qmt
diff -c /dev/null llvm/test/QMTestDB/regression.qms/transforms.qms/pruneeh.qms/recursivetest.qmt:1.1
*** /dev/null Mon Sep 29 10:28:31 2003
--- llvm/test/QMTestDB/regression.qms/transforms.qms/pruneeh.qms/recursivetest.qmt Mon Sep 29 10:28:21 2003
***************
*** 0 ****
--- 1,2 ----
+
+ .*test/Regression/Transforms/PruneEH/recursivetest.ll
Index: llvm/test/QMTestDB/regression.qms/transforms.qms/pruneeh.qms/simpletest.qmt
diff -c /dev/null llvm/test/QMTestDB/regression.qms/transforms.qms/pruneeh.qms/simpletest.qmt:1.1
*** /dev/null Mon Sep 29 10:28:31 2003
--- llvm/test/QMTestDB/regression.qms/transforms.qms/pruneeh.qms/simpletest.qmt Mon Sep 29 10:28:21 2003
***************
*** 0 ****
--- 1,2 ----
+
+ .*test/Regression/Transforms/PruneEH/simpletest.ll
From criswell at cs.uiuc.edu Mon Sep 29 10:35:01 2003
From: criswell at cs.uiuc.edu (John Criswell)
Date: Mon Sep 29 10:35:01 2003
Subject: [llvm-commits] CVS: llvm/test/QMTestDB/regression.qms/transforms.qms/reassociate.qms/2003-08-12-infiniteloop.qmt
Message-ID: <200309291534.KAA05016@choi.cs.uiuc.edu>
Changes in directory llvm/test/QMTestDB/regression.qms/transforms.qms/reassociate.qms:
2003-08-12-infiniteloop.qmt added (r1.1)
---
Log message:
Adding new test.
---
Diffs of the changes:
Index: llvm/test/QMTestDB/regression.qms/transforms.qms/reassociate.qms/2003-08-12-infiniteloop.qmt
diff -c /dev/null llvm/test/QMTestDB/regression.qms/transforms.qms/reassociate.qms/2003-08-12-infiniteloop.qmt:1.1
*** /dev/null Mon Sep 29 10:34:52 2003
--- llvm/test/QMTestDB/regression.qms/transforms.qms/reassociate.qms/2003-08-12-infiniteloop.qmt Mon Sep 29 10:34:42 2003
***************
*** 0 ****
--- 1,2 ----
+
+ .*test/Regression/Transforms/Reassociate/2003-08-12-InfiniteLoop.ll
From lattner at cs.uiuc.edu Mon Sep 29 10:40:02 2003
From: lattner at cs.uiuc.edu (Chris Lattner)
Date: Mon Sep 29 10:40:02 2003
Subject: [llvm-commits] CVS: llvm/test/Programs/TEST.micro.Makefile
Message-ID: <200309291539.KAA28439@neo.cs.uiuc.edu>
Changes in directory llvm/test/Programs:
TEST.micro.Makefile updated: 1.2 -> 1.3
---
Log message:
Do not kill the report if a program doesn't JIT correctly
---
Diffs of the changes:
Index: llvm/test/Programs/TEST.micro.Makefile
diff -u llvm/test/Programs/TEST.micro.Makefile:1.2 llvm/test/Programs/TEST.micro.Makefile:1.3
--- llvm/test/Programs/TEST.micro.Makefile:1.2 Sun Jun 22 15:11:18 2003
+++ llvm/test/Programs/TEST.micro.Makefile Mon Sep 29 10:39:48 2003
@@ -14,7 +14,7 @@
$(PROGRAMS_TO_TEST:%=Output/%.$(TEST).report.txt): \
Output/%.$(TEST).report.txt: Output/%.llvm.bc Output/%.LOC.txt Output/%.out-nat Output/%.out-jit $(LLI) $(LOPT)
@echo -n "LOC: " > $@
- @cat Output/$*.LOC.txt >> $@
+ - at cat Output/$*.LOC.txt >> $@
@echo -n "LLC SIZE: " >> $@
#- at wc -c Output/$*.llc >> $@
@echo >> $@
@@ -22,7 +22,7 @@
- at grep real Output/$*.out-nat.time >> $@
@echo -n "JIT TIME: " >> $@
- at grep real Output/$*.out-jit.time >> $@
- @cat Output/$*.out-jit.info >> $@
+ - at cat Output/$*.out-jit.info >> $@
$(LOPT) -strip -stats -o /dev/null -f $< >> $@ 2>&1
$(PROGRAMS_TO_TEST:%=test.$(TEST).%): \
From criswell at cs.uiuc.edu Mon Sep 29 10:55:02 2003
From: criswell at cs.uiuc.edu (John Criswell)
Date: Mon Sep 29 10:55:02 2003
Subject: [llvm-commits] CVS: llvm/test/QMTestDB/regression.qms/transforms.qms/sccp.qms/2003-08-26-invokehandling.qmt
Message-ID: <200309291554.KAA08950@choi.cs.uiuc.edu>
Changes in directory llvm/test/QMTestDB/regression.qms/transforms.qms/sccp.qms:
2003-08-26-invokehandling.qmt added (r1.1)
---
Log message:
Adding new test.
---
Diffs of the changes:
Index: llvm/test/QMTestDB/regression.qms/transforms.qms/sccp.qms/2003-08-26-invokehandling.qmt
diff -c /dev/null llvm/test/QMTestDB/regression.qms/transforms.qms/sccp.qms/2003-08-26-invokehandling.qmt:1.1
*** /dev/null Mon Sep 29 10:54:33 2003
--- llvm/test/QMTestDB/regression.qms/transforms.qms/sccp.qms/2003-08-26-invokehandling.qmt Mon Sep 29 10:54:23 2003
***************
*** 0 ****
--- 1,2 ----
+
+ .*test/Regression/Transforms/SCCP/2003-08-26-InvokeHandling.ll
From lattner at cs.uiuc.edu Mon Sep 29 10:59:02 2003
From: lattner at cs.uiuc.edu (Chris Lattner)
Date: Mon Sep 29 10:59:02 2003
Subject: [llvm-commits] CVS: llvm/support/lib/Makefile
Message-ID: <200309291558.KAA28146@zion.cs.uiuc.edu>
Changes in directory llvm/support/lib:
Makefile added (r1.1)
---
Log message:
Initial checkin of makefile for this directory
---
Diffs of the changes:
Index: llvm/support/lib/Makefile
diff -c /dev/null llvm/support/lib/Makefile:1.1
*** /dev/null Mon Sep 29 10:58:26 2003
--- llvm/support/lib/Makefile Mon Sep 29 10:58:16 2003
***************
*** 0 ****
--- 1,6 ----
+ LEVEL = ../..
+
+ DIRS = Support
+
+ include $(LEVEL)/Makefile.common
+
From criswell at cs.uiuc.edu Mon Sep 29 11:01:01 2003
From: criswell at cs.uiuc.edu (John Criswell)
Date: Mon Sep 29 11:01:01 2003
Subject: [llvm-commits] CVS: llvm/test/QMTestDB/regression.qms/transforms.qms/simplifycfg.qms/2003-08-17-branchfold.qmt 2003-08-17-branchfoldordering.qmt 2003-08-17-foldswitch.qmt invokeeliminate.qmt
Message-ID: <200309291600.LAA09235@choi.cs.uiuc.edu>
Changes in directory llvm/test/QMTestDB/regression.qms/transforms.qms/simplifycfg.qms:
2003-08-17-branchfold.qmt added (r1.1)
2003-08-17-branchfoldordering.qmt added (r1.1)
2003-08-17-foldswitch.qmt added (r1.1)
invokeeliminate.qmt added (r1.1)
---
Log message:
Added new tests.
---
Diffs of the changes:
Index: llvm/test/QMTestDB/regression.qms/transforms.qms/simplifycfg.qms/2003-08-17-branchfold.qmt
diff -c /dev/null llvm/test/QMTestDB/regression.qms/transforms.qms/simplifycfg.qms/2003-08-17-branchfold.qmt:1.1
*** /dev/null Mon Sep 29 11:00:29 2003
--- llvm/test/QMTestDB/regression.qms/transforms.qms/simplifycfg.qms/2003-08-17-branchfold.qmt Mon Sep 29 11:00:19 2003
***************
*** 0 ****
--- 1,2 ----
+
+ .*test/Regression/Transforms/SimplifyCFG/2003-08-17-BranchFoldOrdering.ll
Index: llvm/test/QMTestDB/regression.qms/transforms.qms/simplifycfg.qms/2003-08-17-branchfoldordering.qmt
diff -c /dev/null llvm/test/QMTestDB/regression.qms/transforms.qms/simplifycfg.qms/2003-08-17-branchfoldordering.qmt:1.1
*** /dev/null Mon Sep 29 11:00:29 2003
--- llvm/test/QMTestDB/regression.qms/transforms.qms/simplifycfg.qms/2003-08-17-branchfoldordering.qmt Mon Sep 29 11:00:19 2003
***************
*** 0 ****
--- 1,2 ----
+
+ .*test/Regression/Transforms/SimplifyCFG/2003-08-17-BranchFold.ll
Index: llvm/test/QMTestDB/regression.qms/transforms.qms/simplifycfg.qms/2003-08-17-foldswitch.qmt
diff -c /dev/null llvm/test/QMTestDB/regression.qms/transforms.qms/simplifycfg.qms/2003-08-17-foldswitch.qmt:1.1
*** /dev/null Mon Sep 29 11:00:29 2003
--- llvm/test/QMTestDB/regression.qms/transforms.qms/simplifycfg.qms/2003-08-17-foldswitch.qmt Mon Sep 29 11:00:19 2003
***************
*** 0 ****
--- 1,2 ----
+
+ .*test/Regression/Transforms/SimplifyCFG/2003-08-17-FoldSwitch.ll
Index: llvm/test/QMTestDB/regression.qms/transforms.qms/simplifycfg.qms/invokeeliminate.qmt
diff -c /dev/null llvm/test/QMTestDB/regression.qms/transforms.qms/simplifycfg.qms/invokeeliminate.qmt:1.1
*** /dev/null Mon Sep 29 11:00:29 2003
--- llvm/test/QMTestDB/regression.qms/transforms.qms/simplifycfg.qms/invokeeliminate.qmt Mon Sep 29 11:00:19 2003
***************
*** 0 ****
--- 1,2 ----
+
+ .*test/Regression/Transforms/SimplifyCFG/InvokeEliminate.ll
From criswell at cs.uiuc.edu Mon Sep 29 11:01:08 2003
From: criswell at cs.uiuc.edu (John Criswell)
Date: Mon Sep 29 11:01:08 2003
Subject: [llvm-commits] CVS: llvm/test/QMTestDB/regression.qms/transforms.qms/scalarrepl.qms/2003-09-12-incorrectpromote.qmt
Message-ID: <200309291600.LAA09222@choi.cs.uiuc.edu>
Changes in directory llvm/test/QMTestDB/regression.qms/transforms.qms/scalarrepl.qms:
2003-09-12-incorrectpromote.qmt added (r1.1)
---
Log message:
Added new tests.
---
Diffs of the changes:
Index: llvm/test/QMTestDB/regression.qms/transforms.qms/scalarrepl.qms/2003-09-12-incorrectpromote.qmt
diff -c /dev/null llvm/test/QMTestDB/regression.qms/transforms.qms/scalarrepl.qms/2003-09-12-incorrectpromote.qmt:1.1
*** /dev/null Mon Sep 29 11:00:28 2003
--- llvm/test/QMTestDB/regression.qms/transforms.qms/scalarrepl.qms/2003-09-12-incorrectpromote.qmt Mon Sep 29 11:00:18 2003
***************
*** 0 ****
--- 1,2 ----
+
+ .*test/Regression/Transforms/ScalarRepl/2003-09-12-IncorrectPromote.ll
From lattner at cs.uiuc.edu Mon Sep 29 11:04:03 2003
From: lattner at cs.uiuc.edu (Chris Lattner)
Date: Mon Sep 29 11:04:03 2003
Subject: [llvm-commits] CVS: llvm/support/tools/Makefile
Message-ID: <200309291603.LAA31021@zion.cs.uiuc.edu>
Changes in directory llvm/support/tools:
Makefile added (r1.1)
---
Log message:
Check in missing makefile
---
Diffs of the changes:
Index: llvm/support/tools/Makefile
diff -c /dev/null llvm/support/tools/Makefile:1.1
*** /dev/null Mon Sep 29 11:03:11 2003
--- llvm/support/tools/Makefile Mon Sep 29 11:03:01 2003
***************
*** 0 ****
--- 1,6 ----
+ LEVEL = ../..
+
+ DIRS = Burg TableGen
+
+ include $(LEVEL)/Makefile.common
+
From criswell at cs.uiuc.edu Mon Sep 29 11:08:01 2003
From: criswell at cs.uiuc.edu (John Criswell)
Date: Mon Sep 29 11:08:01 2003
Subject: [llvm-commits] CVS: llvm/test/QMTestDB/regression.qms/transforms.qms/tailcallelim.qms/
Message-ID: <200309291607.LAA00840@choi.cs.uiuc.edu>
Changes in directory llvm/test/QMTestDB/regression.qms/transforms.qms/tailcallelim.qms:
---
Log message:
Directory /home/vadve/vadve/Research/DynOpt/CVSRepository/llvm/test/QMTestDB/regression.qms/transforms.qms/tailcallelim.qms added to the repository
---
Diffs of the changes:
From criswell at cs.uiuc.edu Mon Sep 29 11:11:02 2003
From: criswell at cs.uiuc.edu (John Criswell)
Date: Mon Sep 29 11:11:02 2003
Subject: [llvm-commits] CVS: llvm/lib/Makefile
Message-ID: <200309291610.LAA07088@choi.cs.uiuc.edu>
Changes in directory llvm/lib:
Makefile updated: 1.14 -> 1.15
---
Log message:
Removed Support directory. It now lives in llvm/support/lib.
---
Diffs of the changes:
Index: llvm/lib/Makefile
diff -u llvm/lib/Makefile:1.14 llvm/lib/Makefile:1.15
--- llvm/lib/Makefile:1.14 Fri Sep 5 14:39:49 2003
+++ llvm/lib/Makefile Mon Sep 29 11:10:43 2003
@@ -1,6 +1,6 @@
LEVEL = ..
-PARALLEL_DIRS = VMCore Analysis Transforms AsmParser Bytecode Support CodeGen Target CWriter ExecutionEngine
+PARALLEL_DIRS = VMCore Analysis Transforms AsmParser Bytecode CodeGen Target CWriter ExecutionEngine
include $(LEVEL)/Makefile.common
From criswell at cs.uiuc.edu Mon Sep 29 11:18:02 2003
From: criswell at cs.uiuc.edu (John Criswell)
Date: Mon Sep 29 11:18:02 2003
Subject: [llvm-commits] CVS: llvm/test/QMTestDB/regression.qms/transforms.qms/tailcallelim.qms/ackermann.qmt
Message-ID: <200309291617.LAA31353@choi.cs.uiuc.edu>
Changes in directory llvm/test/QMTestDB/regression.qms/transforms.qms/tailcallelim.qms:
ackermann.qmt added (r1.1)
---
Log message:
Adding new tests.
---
Diffs of the changes:
Index: llvm/test/QMTestDB/regression.qms/transforms.qms/tailcallelim.qms/ackermann.qmt
diff -c /dev/null llvm/test/QMTestDB/regression.qms/transforms.qms/tailcallelim.qms/ackermann.qmt:1.1
*** /dev/null Mon Sep 29 11:17:11 2003
--- llvm/test/QMTestDB/regression.qms/transforms.qms/tailcallelim.qms/ackermann.qmt Mon Sep 29 11:17:01 2003
***************
*** 0 ****
--- 1,2 ----
+
+ .*test/Regression/Transforms/TailCallElim/ackermann.ll
From lattner at cs.uiuc.edu Mon Sep 29 11:43:02 2003
From: lattner at cs.uiuc.edu (Chris Lattner)
Date: Mon Sep 29 11:43:02 2003
Subject: [llvm-commits] CVS: llvm/test/Programs/TEST.micro.Makefile TEST.micro.report
Message-ID: <200309291642.LAA21095@zion.cs.uiuc.edu>
Changes in directory llvm/test/Programs:
TEST.micro.Makefile updated: 1.3 -> 1.4
TEST.micro.report updated: 1.2 -> 1.3
---
Log message:
Update scripts to generate real numbers!
---
Diffs of the changes:
Index: llvm/test/Programs/TEST.micro.Makefile
diff -u llvm/test/Programs/TEST.micro.Makefile:1.3 llvm/test/Programs/TEST.micro.Makefile:1.4
--- llvm/test/Programs/TEST.micro.Makefile:1.3 Mon Sep 29 10:39:48 2003
+++ llvm/test/Programs/TEST.micro.Makefile Mon Sep 29 11:42:26 2003
@@ -12,11 +12,11 @@
EXTRA_LLI_OPTS = $(TIMEOPT)
$(PROGRAMS_TO_TEST:%=Output/%.$(TEST).report.txt): \
-Output/%.$(TEST).report.txt: Output/%.llvm.bc Output/%.LOC.txt Output/%.out-nat Output/%.out-jit $(LLI) $(LOPT)
+Output/%.$(TEST).report.txt: Output/%.llvm.bc Output/%.LOC.txt Output/%.out-nat Output/%.out-jit Output/%.llc $(LLI) $(LOPT)
@echo -n "LOC: " > $@
- at cat Output/$*.LOC.txt >> $@
@echo -n "LLC SIZE: " >> $@
- #- at wc -c Output/$*.llc >> $@
+ - at wc -c Output/$*.llc >> $@
@echo >> $@
@echo -n "NAT TIME: " >> $@
- at grep real Output/$*.out-nat.time >> $@
Index: llvm/test/Programs/TEST.micro.report
diff -u llvm/test/Programs/TEST.micro.report:1.2 llvm/test/Programs/TEST.micro.report:1.3
--- llvm/test/Programs/TEST.micro.report:1.2 Sun Jun 22 15:11:18 2003
+++ llvm/test/Programs/TEST.micro.report Mon Sep 29 11:42:26 2003
@@ -69,6 +69,16 @@
return sprintf("%0.3f", shift);
}
+# FormatTime - Convert a time from 1m23.45 into 83.45
+sub FormatTime {
+ my $Time = shift;
+ if ($Time =~ m/([0-9]+)[m:]([0-9.]+)/) {
+ $Time = sprintf("%7.3f", $1*60.0+$2);
+ }
+ return $Time;
+}
+
+
@LatexColumns = (1, 15, 12, # LOC, LLC Size, BytecodeSize
10, 9, 11, # #LLVM Insts, # MachineInsts, Ratio
5, 4, 6); # JIT Time, Nat Run Time, Ratio
@@ -127,8 +137,8 @@
["LOC:" , 'LOC: *([0-9]+)'],
[],
# Times
- ["Total" , 'JIT TIME: real ([0-9.]+)'],
- ["NatTotal", 'NAT TIME: real ([0-9.]+)'],
+ ["Total" , 'JIT TIME: real\s*([.0-9m:]+)', \&FormatTime],
+ ["NatTotal", 'NAT TIME: real\s*([.0-9m:]+)', \&FormatTime],
["CodeGen", 'Total Execution Time: ([0-9.]+)'],
["CodeGenRatio", \&InvRatio],
[],
From criswell at cs.uiuc.edu Mon Sep 29 15:11:01 2003
From: criswell at cs.uiuc.edu (John Criswell)
Date: Mon Sep 29 15:11:01 2003
Subject: [llvm-commits] CVS: llvm/www/docs/CommandGuide/llc.html lli.html
Message-ID: <200309292010.PAA12079@tank.cs.uiuc.edu>
Changes in directory llvm/www/docs/CommandGuide:
llc.html updated: 1.2 -> 1.3
lli.html updated: 1.3 -> 1.4
---
Log message:
Added information on input and output filenames.
Added periods to the end of sentence fragments describing options.
Added information to llc about which target architecture is selected for
assembly language code generation.
---
Diffs of the changes:
Index: llvm/www/docs/CommandGuide/llc.html
diff -u llvm/www/docs/CommandGuide/llc.html:1.2 llvm/www/docs/CommandGuide/llc.html:1.3
--- llvm/www/docs/CommandGuide/llc.html:1.2 Thu Sep 25 14:50:04 2003
+++ llvm/www/docs/CommandGuide/llc.html Mon Sep 29 15:10:08 2003
@@ -20,7 +20,7 @@
SYNOPSIS
-llc [options] < filename>
+llc [options] [filename]
DESCRIPTION
@@ -28,6 +28,62 @@
The llc command compiles LLVM bytecode into assembly language for a specified
architecture. The assembly language output can then be passed through a native
assembler and linker to generate native code.
+
+The choice of architecture for the output assembly code is determined as
+follows:
+
+
+ -
+ If the user has specified an architecture with the -m option, use that
+ architecture.
+
+
+
-
+ Examine the input LLVM bytecode file:
+
+ -
+ If it specifies little endian and a pointer size of 32 bits, select the
+ x86 architecture.
+
+
+
-
+ If it specifies big endian and a pointer size of 64 bit pointers,
+ select the SparcV9 architecture.
+
+
+
+
-
+ If llc was compiled on an architecture for which it can generate code,
+ select the architecture upon which llc was compiled.
+
+
+
-
+ Print a message to the user asking him or her to specify the output
+ architecture explicitly.
+
+
+
+
+If filename is not specified, or if filename is -, llc reads its input from
+standard input. Otherwise, it will read its input from filename.
+
+
+If the -o option is left unspecified, then llc will send its output to standard
+output if the input is from standard input. If the -o option specifies -, then
+the output will also be sent to standard output.
+
+
+If no -o option is specified and an input file other than - is specified, then
+llc creates the output filename as follows:
+
+
+ -
+ If the file ends in .bc, then the .bc suffix is removed, and the .s suffix
+ is appended.
+
+
-
+ Otherwise, the .s suffix is appended to the input filename.
+
OPTIONS
@@ -36,42 +92,42 @@
- -disable-fp-elim
- Disable frame pointer elimination optimization
+ Disable frame pointer elimination optimization.
- -disable-local-ra
- Use Simple RA instead of Local RegAlloc
+ Use Simple RA instead of Local RegAlloc.
- -disable-pattern-isel
- Use the 'simple' X86 instruction selector
+ Use the 'simple' X86 instruction selector.
- -disable-peephole
- Disable peephole optimization pass
+ Disable peephole optimization pass.
- -disable-preopt
- Disable optimizations prior to instruction selection
+ Disable optimizations prior to instruction selection.
- -disable-sched
- Disable local scheduling pass
+ Disable local scheduling pass.
- -disable-strip
- Do not strip the LLVM bytecode included in executable
+ Do not strip the LLVM bytecode included in executable.
- -enable-maps
- Emit LLVM-to-MachineCode mapping info to assembly
+ Emit LLVM-to-MachineCode mapping info to assembly.
- -f
@@ -81,13 +137,12 @@
- -load=<plugin.so>
- Load the specified plugin
+ Load the specified plugin.
- -m<arch>
Specify the architecture for which to generate assembly. Valid
-
architectures are:
@@ -103,12 +158,12 @@
- -o <filename>
- Output filename
+ Specify the output filename.
- -print-machineinstrs
- Print generated machine code
+ Print generated machine code.
- -help
Index: llvm/www/docs/CommandGuide/lli.html
diff -u llvm/www/docs/CommandGuide/lli.html:1.3 llvm/www/docs/CommandGuide/lli.html:1.4
--- llvm/www/docs/CommandGuide/lli.html:1.3 Thu Sep 25 14:50:04 2003
+++ llvm/www/docs/CommandGuide/lli.html Mon Sep 29 15:10:08 2003
@@ -20,14 +20,43 @@
SYNOPSIS
-lli [options] < filename>
+lli [options] [filename] [args ...]
DESCRIPTION
The lli command is the LLVM interpreter. It takes a program in LLVM bytecode
-format and executes it, either using an interpreter or a Just In Time (JIT)
-compiler.
+format and executes it using an interpreter or a Just In Time (JIT) compiler.
+
+
+If filename is not specified, then lli reads its input from standard input.
+
+The optional arguments specified on the command line are passed to the executed
+program as arguments.
+
+
+
+MAIN FUNCTION
+
+
+The main() function of the bytecode program is where execution starts. It
+is passed three arguments:
+
+
+ -
+ int argc - The number of command line arguments.
+
+
+
-
+ char ** argv - The arguments to the program.
+
+
+
-
+ char ** envp - An array of environment variables used by the program.
+
+
+The first argument to the program is the name of the executed bytecode file
+(with the .bc suffix removed).
OPTIONS
From lattner at cs.uiuc.edu Mon Sep 29 16:10:02 2003
From: lattner at cs.uiuc.edu (Chris Lattner)
Date: Mon Sep 29 16:10:02 2003
Subject: [llvm-commits] CVS: llvm/test/Programs/External/SPEC/CINT2000/300.twolf/Makefile
Message-ID: <200309292109.QAA05769@zion.cs.uiuc.edu>
Changes in directory llvm/test/Programs/External/SPEC/CINT2000/300.twolf:
Makefile updated: 1.2 -> 1.3
---
Log message:
Fix this to work with large problem size
---
Diffs of the changes:
Index: llvm/test/Programs/External/SPEC/CINT2000/300.twolf/Makefile
diff -u llvm/test/Programs/External/SPEC/CINT2000/300.twolf/Makefile:1.2 llvm/test/Programs/External/SPEC/CINT2000/300.twolf/Makefile:1.3
--- llvm/test/Programs/External/SPEC/CINT2000/300.twolf/Makefile:1.2 Mon Jun 16 07:01:12 2003
+++ llvm/test/Programs/External/SPEC/CINT2000/300.twolf/Makefile Mon Sep 29 16:09:16 2003
@@ -1,6 +1,6 @@
LEVEL = ../../../../../..
LDFLAGS = -lm
-RUN_OPTIONS = test
-STDOUT_FILENAME := test.net.stdout
+RUN_OPTIONS = $(RUN_TYPE)
+STDOUT_FILENAME = $(RUN_TYPE).net.stdout
include ../../Makefile.spec
From lattner at cs.uiuc.edu Mon Sep 29 16:19:01 2003
From: lattner at cs.uiuc.edu (Chris Lattner)
Date: Mon Sep 29 16:19:01 2003
Subject: [llvm-commits] CVS: llvm/test/Programs/SingleSource/Regression/C++/CompileFail/2003-09-29-ArgumentNumberMismatch.cpp
Message-ID: <200309292118.QAA21333@apoc.cs.uiuc.edu>
Changes in directory llvm/test/Programs/SingleSource/Regression/C++/CompileFail:
2003-09-29-ArgumentNumberMismatch.cpp added (r1.1)
---
Log message:
New testcase, distilled by John
---
Diffs of the changes:
Index: llvm/test/Programs/SingleSource/Regression/C++/CompileFail/2003-09-29-ArgumentNumberMismatch.cpp
diff -c /dev/null llvm/test/Programs/SingleSource/Regression/C++/CompileFail/2003-09-29-ArgumentNumberMismatch.cpp:1.1
*** /dev/null Mon Sep 29 16:18:46 2003
--- llvm/test/Programs/SingleSource/Regression/C++/CompileFail/2003-09-29-ArgumentNumberMismatch.cpp Mon Sep 29 16:18:36 2003
***************
*** 0 ****
--- 1,11 ----
+ struct C {
+ int A, B;
+ ~C() {}
+
+ void operator^(C b) const { }
+ };
+
+ void test(C *P) {
+ *P ^ *P;
+ }
+
From criswell at cs.uiuc.edu Mon Sep 29 16:23:01 2003
From: criswell at cs.uiuc.edu (John Criswell)
Date: Mon Sep 29 16:23:01 2003
Subject: [llvm-commits] CVS: llvm/test/QMTestDB/regression.qms/transforms.qms/decomposemultidimrefs.qms/multidim.qmt
Message-ID: <200309292122.QAA23066@choi.cs.uiuc.edu>
Changes in directory llvm/test/QMTestDB/regression.qms/transforms.qms/decomposemultidimrefs.qms:
multidim.qmt updated: 1.1 -> 1.2
---
Log message:
Fixed test to be a TestRunner test like it always has been.
---
Diffs of the changes:
Index: llvm/test/QMTestDB/regression.qms/transforms.qms/decomposemultidimrefs.qms/multidim.qmt
diff -u llvm/test/QMTestDB/regression.qms/transforms.qms/decomposemultidimrefs.qms/multidim.qmt:1.1 llvm/test/QMTestDB/regression.qms/transforms.qms/decomposemultidimrefs.qms/multidim.qmt:1.2
--- llvm/test/QMTestDB/regression.qms/transforms.qms/decomposemultidimrefs.qms/multidim.qmt:1.1 Mon Aug 25 10:21:45 2003
+++ llvm/test/QMTestDB/regression.qms/transforms.qms/decomposemultidimrefs.qms/multidim.qmt Mon Sep 29 16:22:18 2003
@@ -1,2 +1,2 @@
-.*test/Regression/Transforms/DecomposeMultiDimRefs/multidim.ll
+.*test/Regression/Transforms/DecomposeMultiDimRefs/multidim.ll
From criswell at cs.uiuc.edu Mon Sep 29 16:23:04 2003
From: criswell at cs.uiuc.edu (John Criswell)
Date: Mon Sep 29 16:23:04 2003
Subject: [llvm-commits] CVS: llvm/test/Regression/Transforms/DecomposeMultiDimRefs/multidim.ll
Message-ID: <200309292122.QAA23054@choi.cs.uiuc.edu>
Changes in directory llvm/test/Regression/Transforms/DecomposeMultiDimRefs:
multidim.ll updated: 1.7 -> 1.8
---
Log message:
Updated for the new QMTest test suite. Temporary output file is now placed
inside the temporary file directory.
---
Diffs of the changes:
Index: llvm/test/Regression/Transforms/DecomposeMultiDimRefs/multidim.ll
diff -u llvm/test/Regression/Transforms/DecomposeMultiDimRefs/multidim.ll:1.7 llvm/test/Regression/Transforms/DecomposeMultiDimRefs/multidim.ll:1.8
--- llvm/test/Regression/Transforms/DecomposeMultiDimRefs/multidim.ll:1.7 Tue Sep 16 10:29:25 2003
+++ llvm/test/Regression/Transforms/DecomposeMultiDimRefs/multidim.ll Mon Sep 29 16:21:59 2003
@@ -1,4 +1,4 @@
-; RUN: llvm-as < %s | opt -f -lowerrefs -o Output/%s.bc
+; RUN: llvm-as < %s | opt -f -lowerrefs -o %t1.bc
;
%Flat_struct = type { sbyte, float }
%Flat_t = type { sbyte, float }
From criswell at cs.uiuc.edu Mon Sep 29 16:35:01 2003
From: criswell at cs.uiuc.edu (John Criswell)
Date: Mon Sep 29 16:35:01 2003
Subject: [llvm-commits] CVS: llvm/test/Programs/SingleSource/Regression/C++/CompileFail/Makefile
Message-ID: <200309292134.QAA02525@choi.cs.uiuc.edu>
Changes in directory llvm/test/Programs/SingleSource/Regression/C++/CompileFail:
Makefile updated: 1.2 -> 1.3
---
Log message:
Adding Makefiles for llvm/test/Programs/SingleSource/Regression/C++/EH and
llvm/test/Programs/SingleSource/Regression/C++/CompileFail.
---
Diffs of the changes:
Index: llvm/test/Programs/SingleSource/Regression/C++/CompileFail/Makefile
diff -u /dev/null llvm/test/Programs/SingleSource/Regression/C++/CompileFail/Makefile:1.3
--- /dev/null Mon Sep 29 16:34:59 2003
+++ llvm/test/Programs/SingleSource/Regression/C++/CompileFail/Makefile Mon Sep 29 16:34:49 2003
@@ -0,0 +1,4 @@
+LEVEL = ../../../../../..
+include $(LEVEL)/test/Programs/SingleSource/Makefile.singlesrc
+CFLAGS += -std=c99
+
From criswell at cs.uiuc.edu Mon Sep 29 16:35:03 2003
From: criswell at cs.uiuc.edu (John Criswell)
Date: Mon Sep 29 16:35:03 2003
Subject: [llvm-commits] CVS: llvm/test/Programs/SingleSource/Regression/C++/EH/Makefile
Message-ID: <200309292134.QAA02518@choi.cs.uiuc.edu>
Changes in directory llvm/test/Programs/SingleSource/Regression/C++/EH:
Makefile updated: 1.3 -> 1.4
---
Log message:
Adding Makefiles for llvm/test/Programs/SingleSource/Regression/C++/EH and
llvm/test/Programs/SingleSource/Regression/C++/CompileFail.
---
Diffs of the changes:
Index: llvm/test/Programs/SingleSource/Regression/C++/EH/Makefile
diff -u /dev/null llvm/test/Programs/SingleSource/Regression/C++/EH/Makefile:1.4
--- /dev/null Mon Sep 29 16:34:58 2003
+++ llvm/test/Programs/SingleSource/Regression/C++/EH/Makefile Mon Sep 29 16:34:48 2003
@@ -0,0 +1,4 @@
+LEVEL = ../../../../../..
+include $(LEVEL)/test/Programs/SingleSource/Makefile.singlesrc
+CFLAGS += -std=c99
+
From criswell at cs.uiuc.edu Mon Sep 29 16:36:01 2003
From: criswell at cs.uiuc.edu (John Criswell)
Date: Mon Sep 29 16:36:01 2003
Subject: [llvm-commits] CVS: llvm/autoconf/configure.ac
Message-ID: <200309292135.QAA02549@choi.cs.uiuc.edu>
Changes in directory llvm/autoconf:
configure.ac updated: 1.25 -> 1.26
---
Log message:
Added Makefiles to llvm/test/Programs/SingleSource/Regression/C++/EH and
llvm/test/Programs/SingleSource/Regression/C++/CompileFail.
---
Diffs of the changes:
Index: llvm/autoconf/configure.ac
diff -u llvm/autoconf/configure.ac:1.25 llvm/autoconf/configure.ac:1.26
--- llvm/autoconf/configure.ac:1.25 Mon Sep 29 09:52:11 2003
+++ llvm/autoconf/configure.ac Mon Sep 29 16:35:32 2003
@@ -177,6 +177,8 @@
AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Regression/Makefile)
AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Regression/C/Makefile)
AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Regression/C++/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Regression/C++/EH/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Regression/C++/CompileFail/Makefile)
AC_CONFIG_MAKEFILE(tools/Makefile)
AC_CONFIG_MAKEFILE(tools/analyze/Makefile)
AC_CONFIG_MAKEFILE(tools/bugpoint/Makefile)
From criswell at cs.uiuc.edu Mon Sep 29 16:36:03 2003
From: criswell at cs.uiuc.edu (John Criswell)
Date: Mon Sep 29 16:36:03 2003
Subject: [llvm-commits] CVS: llvm/configure
Message-ID: <200309292135.QAA02542@choi.cs.uiuc.edu>
Changes in directory llvm:
configure updated: 1.33 -> 1.34
---
Log message:
Added Makefiles to llvm/test/Programs/SingleSource/Regression/C++/EH and
llvm/test/Programs/SingleSource/Regression/C++/CompileFail.
---
Diffs of the changes:
Index: llvm/configure
diff -u llvm/configure:1.33 llvm/configure:1.34
--- llvm/configure:1.33 Mon Sep 29 09:52:09 2003
+++ llvm/configure Mon Sep 29 16:35:30 2003
@@ -1956,6 +1956,12 @@
ac_config_commands="$ac_config_commands test/Programs/SingleSource/Regression/C++/Makefile"
+ ac_config_commands="$ac_config_commands test/Programs/SingleSource/Regression/C++/EH/Makefile"
+
+
+ ac_config_commands="$ac_config_commands test/Programs/SingleSource/Regression/C++/CompileFail/Makefile"
+
+
ac_config_commands="$ac_config_commands tools/Makefile"
@@ -4408,7 +4414,7 @@
;;
*-*-irix6*)
# Find out which ABI we are using.
- echo '#line 4411 "configure"' > conftest.$ac_ext
+ echo '#line 4417 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
@@ -5249,7 +5255,7 @@
# Provide some information about the compiler.
-echo "$as_me:5252:" \
+echo "$as_me:5258:" \
"checking for Fortran 77 compiler version" >&5
ac_compiler=`set X $ac_compile; echo $2`
{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5
@@ -6258,11 +6264,11 @@
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:6261: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:6267: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:6265: \$? = $ac_status" >&5
+ echo "$as_me:6271: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings
@@ -6490,11 +6496,11 @@
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:6493: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:6499: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:6497: \$? = $ac_status" >&5
+ echo "$as_me:6503: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings
@@ -6557,11 +6563,11 @@
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:6560: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:6566: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:6564: \$? = $ac_status" >&5
+ echo "$as_me:6570: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -8569,7 +8575,7 @@
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext < conftest.$ac_ext <&5)
+ (eval echo "\"\$as_me:10812: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:10810: \$? = $ac_status" >&5
+ echo "$as_me:10816: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings
@@ -10870,11 +10876,11 @@
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:10873: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:10879: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:10877: \$? = $ac_status" >&5
+ echo "$as_me:10883: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -12113,7 +12119,7 @@
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext < conftest.$ac_ext <&5)
+ (eval echo "\"\$as_me:13042: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:13040: \$? = $ac_status" >&5
+ echo "$as_me:13046: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings
@@ -13100,11 +13106,11 @@
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:13103: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:13109: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:13107: \$? = $ac_status" >&5
+ echo "$as_me:13113: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -15044,11 +15050,11 @@
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:15047: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:15053: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:15051: \$? = $ac_status" >&5
+ echo "$as_me:15057: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings
@@ -15276,11 +15282,11 @@
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:15279: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:15285: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:15283: \$? = $ac_status" >&5
+ echo "$as_me:15289: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings
@@ -15343,11 +15349,11 @@
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:15346: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:15352: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:15350: \$? = $ac_status" >&5
+ echo "$as_me:15356: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -17355,7 +17361,7 @@
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext < conftest.$ac_ext <
Changes in directory llvm/test/Programs/SingleSource/Regression/C++/CompileFail:
2003-09-29-ArgumentNumberMismatch.cpp updated: 1.1 -> 1.2
---
Log message:
Simplify test, include problem analysis
---
Diffs of the changes:
Index: llvm/test/Programs/SingleSource/Regression/C++/CompileFail/2003-09-29-ArgumentNumberMismatch.cpp
diff -u llvm/test/Programs/SingleSource/Regression/C++/CompileFail/2003-09-29-ArgumentNumberMismatch.cpp:1.1 llvm/test/Programs/SingleSource/Regression/C++/CompileFail/2003-09-29-ArgumentNumberMismatch.cpp:1.2
--- llvm/test/Programs/SingleSource/Regression/C++/CompileFail/2003-09-29-ArgumentNumberMismatch.cpp:1.1 Mon Sep 29 16:18:36 2003
+++ llvm/test/Programs/SingleSource/Regression/C++/CompileFail/2003-09-29-ArgumentNumberMismatch.cpp Mon Sep 29 16:53:04 2003
@@ -1,11 +1,15 @@
+// Non-POD classes cannot be passed into a function by component, because their
+// dtors must be run. Instead, pass them in by reference. The C++ front-end
+// was mistakenly "thinking" that 'foo' took a structure by component.
+
struct C {
int A, B;
~C() {}
-
- void operator^(C b) const { }
};
+void foo(C b);
+
void test(C *P) {
- *P ^ *P;
+ foo(*P);
}
From brukman at cs.uiuc.edu Mon Sep 29 17:17:01 2003
From: brukman at cs.uiuc.edu (Misha Brukman)
Date: Mon Sep 29 17:17:01 2003
Subject: [llvm-commits] CVS: llvm/tools/gccld/linker.cpp
Message-ID: <200309292216.RAA14472@zion.cs.uiuc.edu>
Changes in directory llvm/tools/gccld:
linker.cpp updated: 1.1 -> 1.2
---
Log message:
* Ordered includes according to LLVM programmers' guide
* Made code layout more verbose: no more '{' on a line by itself
* Pruned extra whitespace
---
Diffs of the changes:
Index: llvm/tools/gccld/linker.cpp
diff -u llvm/tools/gccld/linker.cpp:1.1 llvm/tools/gccld/linker.cpp:1.2
--- llvm/tools/gccld/linker.cpp:1.1 Fri Sep 19 15:24:23 2003
+++ llvm/tools/gccld/linker.cpp Mon Sep 29 17:16:43 2003
@@ -13,7 +13,7 @@
//
//===----------------------------------------------------------------------===//
-#include "llvm/Transforms/Utils/Linker.h"
+#include "gccld.h"
#include "llvm/Module.h"
#include "llvm/PassManager.h"
#include "llvm/Bytecode/Reader.h"
@@ -21,17 +21,16 @@
#include "llvm/Target/TargetData.h"
#include "llvm/Transforms/IPO.h"
#include "llvm/Transforms/Scalar.h"
-#include "Support/FileUtilities.h"
-#include "Support/SystemUtils.h"
+#include "llvm/Transforms/Utils/Linker.h"
#include "Support/CommandLine.h"
+#include "Support/FileUtilities.h"
#include "Support/Signals.h"
+#include "Support/SystemUtils.h"
#include "Config/stdlib.h"
-#include "gccld.h"
-
+#include
#include
#include
#include
-#include
//
// Function: FileExists ()
@@ -49,9 +48,7 @@
// TRUE - The file exists and is readable.
// FALSE - The file does not exist or is unreadable.
//
-static inline bool
-FileExists(const std::string &FN)
-{
+static inline bool FileExists(const std::string &FN) {
return access(FN.c_str(), R_OK | F_OK) != -1;
}
@@ -72,12 +69,10 @@
// TRUE - The file is an archive.
// FALSE - The file is not an archive.
//
-static inline bool
-IsArchive (const std::string &filename)
+static inline bool IsArchive (const std::string &filename)
{
std::string ArchiveMagic("!\012");
char buf[1 + ArchiveMagic.size()];
-
std::ifstream f(filename.c_str());
f.read(buf, ArchiveMagic.size());
buf[ArchiveMagic.size()] = '\0';
@@ -105,57 +100,36 @@
static std::string
FindLib (const std::string & Filename, const std::vector & Paths)
{
- //
// Determine if the pathname can be found as it stands.
- //
if (FileExists (Filename))
- {
return Filename;
- }
- //
// If that doesn't work, convert the name into a library name.
- //
std::string LibName = "lib" + Filename;
- //
// Iterate over the directories in Paths to see if we can find the library
// there.
- //
- for (unsigned Index = 0; Index != Paths.size(); ++Index)
- {
+ for (unsigned Index = 0; Index != Paths.size(); ++Index) {
std::string Directory = Paths[Index] + "/";
if (FileExists (Directory + LibName + ".bc"))
- {
return Directory + LibName + ".bc";
- }
if (FileExists (Directory + LibName + ".so"))
- {
return Directory + LibName + ".so";
- }
if (FileExists (Directory + LibName + ".a"))
- {
return Directory + LibName + ".a";
- }
}
- //
// One last hope: Check LLVM_LIB_SEARCH_PATH.
- //
char *SearchPath = getenv("LLVM_LIB_SEARCH_PATH");
if (SearchPath == NULL)
- {
- return std::string();
- }
+ return std::string();
LibName = std::string(SearchPath) + "/" + LibName;
if (FileExists (LibName))
- {
return LibName;
- }
return std::string();
}
@@ -254,12 +228,10 @@
// If an error occurs, the pointer is 0.
//
std::auto_ptr
-LoadObject (const std::string & FN, std::string &OutErrorMessage)
-{
+LoadObject (const std::string & FN, std::string &OutErrorMessage) {
std::string ErrorMessage;
Module *Result = ParseBytecodeFile(FN, &ErrorMessage);
if (Result) return std::auto_ptr(Result);
-
OutErrorMessage = "Bytecode file '" + FN + "' corrupt!";
if (ErrorMessage.size()) OutErrorMessage += ": " + ErrorMessage;
return std::auto_ptr();
@@ -285,9 +257,9 @@
// FALSE - No errors.
//
static bool
-LinkInArchive (Module * M,
- const std::string & Filename,
- std::string & ErrorMessage,
+LinkInArchive (Module *M,
+ const std::string &Filename,
+ std::string &ErrorMessage,
bool Verbose)
{
//
@@ -297,8 +269,7 @@
//
std::set UndefinedSymbols;
GetAllUndefinedSymbols (M, UndefinedSymbols);
- if (UndefinedSymbols.empty())
- {
+ if (UndefinedSymbols.empty()) {
if (Verbose) std::cerr << " No symbols undefined, don't link library!\n";
return false; // No need to link anything in!
}
@@ -309,24 +280,20 @@
if (Verbose) std::cerr << " Loading '" << Filename << "'\n";
std::vector Objects;
if (ReadArchiveFile (Filename, Objects, &ErrorMessage))
- {
return true;
- }
//
// Figure out which symbols are defined by all of the modules in the archive.
//
std::vector > DefinedSymbols;
DefinedSymbols.resize (Objects.size());
- for (unsigned i = 0; i != Objects.size(); ++i)
- {
+ for (unsigned i = 0; i != Objects.size(); ++i) {
GetAllDefinedSymbols(Objects[i], DefinedSymbols[i]);
}
// While we are linking in object files, loop.
bool Linked = true;
- while (Linked)
- {
+ while (Linked) {
Linked = false;
for (unsigned i = 0; i != Objects.size(); ++i) {
@@ -388,19 +355,14 @@
// FALSE - No errors.
//
static bool
-LinkInFile (Module * HeadModule,
- const std::string & Filename,
- std::string & ErrorMessage,
+LinkInFile (Module *HeadModule,
+ const std::string &Filename,
+ std::string &ErrorMessage,
bool Verbose)
{
std::auto_ptr M(LoadObject(Filename, ErrorMessage));
- if (M.get() == 0)
- {
- return true;
- }
-
+ if (M.get() == 0) return true;
if (Verbose) std::cerr << "Linking in '" << Filename << "'\n";
-
return (LinkModules (HeadModule, M.get(), &ErrorMessage));
}
@@ -429,11 +391,10 @@
// FALSE - No errors.
// TRUE - Some error occurred.
//
-bool
-LinkFiles (const char * progname,
- Module * HeadModule,
- const std::vector & Files,
- bool Verbose)
+bool LinkFiles(const char *progname,
+ Module *HeadModule,
+ const std::vector &Files,
+ bool Verbose)
{
// String in which to receive error messages.
std::string ErrorMessage;
@@ -444,26 +405,18 @@
// Get the library search path from the environment
char *SearchPath = getenv("LLVM_LIB_SEARCH_PATH");
- for (unsigned i = 1; i < Files.size(); ++i)
- {
- //
+ for (unsigned i = 1; i < Files.size(); ++i) {
// Determine where this file lives.
- //
- if (FileExists (Files[i]))
- {
+ if (FileExists (Files[i])) {
Pathname = Files[i];
- }
- else
- {
- if (SearchPath == NULL)
- {
+ } else {
+ if (SearchPath == NULL) {
std::cerr << "Cannot find " << Files[i];
return true;
}
Pathname = std::string(SearchPath)+"/"+Files[i];
- if (!FileExists (Pathname))
- {
+ if (!FileExists (Pathname)) {
std::cerr << "Cannot find " << Files[i];
return true;
}
@@ -473,29 +426,20 @@
// A user may specify an ar archive without -l, perhaps because it
// is not installed as a library. Detect that and link the library.
//
- if (IsArchive(Pathname))
- {
+ if (IsArchive(Pathname)) {
if (Verbose)
- {
std::cerr << "Linking archive '" << Files[i] << "'\n";
- }
- if (LinkInArchive (HeadModule, Pathname, ErrorMessage, Verbose))
- {
+ if (LinkInArchive (HeadModule, Pathname, ErrorMessage, Verbose)) {
PrintAndReturn(progname, ErrorMessage,
": Error linking in '" + Files[i] + "'");
return true;
}
- }
- else
- {
+ } else {
if (Verbose)
- {
std::cerr << "Linking file '" << Files[i] << "'\n";
- }
- if (LinkInFile (HeadModule, Pathname, ErrorMessage, Verbose))
- {
+ if (LinkInFile (HeadModule, Pathname, ErrorMessage, Verbose)) {
PrintAndReturn(progname, ErrorMessage,
": error linking in '" + Files[i] + "'");
return true;
@@ -528,37 +472,25 @@
// FALSE - No error.
// TRUE - Error.
//
-bool
-LinkLibraries (const char * progname,
- Module * HeadModule,
- const std::vector & Libraries,
- const std::vector & LibPaths,
- bool Verbose,
- bool Native)
+bool LinkLibraries (const char *progname,
+ Module *HeadModule,
+ const std::vector &Libraries,
+ const std::vector &LibPaths,
+ bool Verbose,
+ bool Native)
{
// String in which to receive error messages.
std::string ErrorMessage;
- for (unsigned i = 1; i < Libraries.size(); ++i)
- {
- //
+ for (unsigned i = 1; i < Libraries.size(); ++i) {
// Determine where this library lives.
- //
- std::string Pathname = FindLib (Libraries[i], LibPaths);
- if (Pathname.empty())
- {
- //
+ std::string Pathname = FindLib(Libraries[i], LibPaths);
+ if (Pathname.empty()) {
// If the pathname does not exist, then continue to the next one if
// we're doing a native link and give an error if we're doing a bytecode
// link.
- //
- if (Native)
- {
- continue;
- }
- else
- {
- PrintAndReturn (progname, "Cannot find " + Libraries[i]);
+ if (!Native) {
+ PrintAndReturn(progname, "Cannot find " + Libraries[i]);
return true;
}
}
@@ -567,31 +499,22 @@
// A user may specify an ar archive without -l, perhaps because it
// is not installed as a library. Detect that and link the library.
//
- if (IsArchive(Pathname))
- {
+ if (IsArchive(Pathname)) {
if (Verbose)
- {
std::cerr << "Linking archive '" << Libraries[i] << "'\n";
- }
- if (LinkInArchive (HeadModule, Pathname, ErrorMessage, Verbose))
- {
+ if (LinkInArchive(HeadModule, Pathname, ErrorMessage, Verbose)) {
PrintAndReturn(progname, ErrorMessage,
- ": Error linking in '" + Libraries[i] + "'");
+ ": Error linking in '" + Libraries[i] + "'");
return true;
}
- }
- else
- {
+ } else {
if (Verbose)
- {
std::cerr << "Linking file '" << Libraries[i] << "'\n";
- }
- if (LinkInFile (HeadModule, Pathname, ErrorMessage, Verbose))
- {
+ if (LinkInFile(HeadModule, Pathname, ErrorMessage, Verbose)) {
PrintAndReturn(progname, ErrorMessage,
- ": error linking in '" + Libraries[i] + "'");
+ ": error linking in '" + Libraries[i] + "'");
return true;
}
}
From lattner at cs.uiuc.edu Mon Sep 29 17:18:03 2003
From: lattner at cs.uiuc.edu (Chris Lattner)
Date: Mon Sep 29 17:18:03 2003
Subject: [llvm-commits] CVS: llvm/test/Programs/SingleSource/Regression/C++/CompileFail/2003-08-24-Cleanup.cpp.tr
Message-ID: <200309292217.RAA29322@neo.cs.uiuc.edu>
Changes in directory llvm/test/Programs/SingleSource/Regression/C++/CompileFail:
2003-08-24-Cleanup.cpp.tr updated: 1.1 -> 1.2
---
Log message:
update run command
---
Diffs of the changes:
Index: llvm/test/Programs/SingleSource/Regression/C++/CompileFail/2003-08-24-Cleanup.cpp.tr
diff -u llvm/test/Programs/SingleSource/Regression/C++/CompileFail/2003-08-24-Cleanup.cpp.tr:1.1 llvm/test/Programs/SingleSource/Regression/C++/CompileFail/2003-08-24-Cleanup.cpp.tr:1.2
--- llvm/test/Programs/SingleSource/Regression/C++/CompileFail/2003-08-24-Cleanup.cpp.tr:1.1 Sun Aug 24 15:23:21 2003
+++ llvm/test/Programs/SingleSource/Regression/C++/CompileFail/2003-08-24-Cleanup.cpp.tr Mon Sep 29 17:17:12 2003
@@ -1,4 +1,4 @@
-// RUN: llvmg++ -xc++ 2003-08-24-Cleanup.cpp.tr -c -o - | dis | grep 'call void %llvm.unwind'
+// RUN: llvmg++ -xc++ %s -c -o - | llvm-dis | grep unwind
struct S { ~S(); };
From brukman at cs.uiuc.edu Mon Sep 29 17:27:02 2003
From: brukman at cs.uiuc.edu (Misha Brukman)
Date: Mon Sep 29 17:27:02 2003
Subject: [llvm-commits] CVS: llvm/tools/gccld/linker.cpp
Message-ID: <200309292226.RAA15936@zion.cs.uiuc.edu>
Changes in directory llvm/tools/gccld:
linker.cpp updated: 1.2 -> 1.3
---
Log message:
Tersified code:
* Removed space between function name and its argument list
* Removed space between '&' and variable name
* Removed empty comment lines: `//'
---
Diffs of the changes:
Index: llvm/tools/gccld/linker.cpp
diff -u llvm/tools/gccld/linker.cpp:1.2 llvm/tools/gccld/linker.cpp:1.3
--- llvm/tools/gccld/linker.cpp:1.2 Mon Sep 29 17:16:43 2003
+++ llvm/tools/gccld/linker.cpp Mon Sep 29 17:26:24 2003
@@ -69,7 +69,7 @@
// TRUE - The file is an archive.
// FALSE - The file is not an archive.
//
-static inline bool IsArchive (const std::string &filename)
+static inline bool IsArchive(const std::string &filename)
{
std::string ArchiveMagic("!\012");
char buf[1 + ArchiveMagic.size()];
@@ -98,10 +98,10 @@
// If the file is not found, an empty string is returned.
//
static std::string
-FindLib (const std::string & Filename, const std::vector & Paths)
+FindLib(const std::string &Filename, const std::vector &Paths)
{
// Determine if the pathname can be found as it stands.
- if (FileExists (Filename))
+ if (FileExists(Filename))
return Filename;
// If that doesn't work, convert the name into a library name.
@@ -112,13 +112,13 @@
for (unsigned Index = 0; Index != Paths.size(); ++Index) {
std::string Directory = Paths[Index] + "/";
- if (FileExists (Directory + LibName + ".bc"))
+ if (FileExists(Directory + LibName + ".bc"))
return Directory + LibName + ".bc";
- if (FileExists (Directory + LibName + ".so"))
+ if (FileExists(Directory + LibName + ".so"))
return Directory + LibName + ".so";
- if (FileExists (Directory + LibName + ".a"))
+ if (FileExists(Directory + LibName + ".a"))
return Directory + LibName + ".a";
}
@@ -128,7 +128,7 @@
return std::string();
LibName = std::string(SearchPath) + "/" + LibName;
- if (FileExists (LibName))
+ if (FileExists(LibName))
return LibName;
return std::string();
@@ -151,7 +151,7 @@
// None.
//
void
-GetAllDefinedSymbols (Module *M, std::set &DefinedSymbols)
+GetAllDefinedSymbols(Module *M, std::set &DefinedSymbols)
{
for (Module::iterator I = M->begin(), E = M->end(); I != E; ++I)
if (I->hasName() && !I->isExternal() && !I->hasInternalLinkage())
@@ -228,7 +228,7 @@
// If an error occurs, the pointer is 0.
//
std::auto_ptr
-LoadObject (const std::string & FN, std::string &OutErrorMessage) {
+LoadObject(const std::string & FN, std::string &OutErrorMessage) {
std::string ErrorMessage;
Module *Result = ParseBytecodeFile(FN, &ErrorMessage);
if (Result) return std::auto_ptr(Result);
@@ -256,11 +256,10 @@
// TRUE - An error occurred.
// FALSE - No errors.
//
-static bool
-LinkInArchive (Module *M,
- const std::string &Filename,
- std::string &ErrorMessage,
- bool Verbose)
+static bool LinkInArchive(Module *M,
+ const std::string &Filename,
+ std::string &ErrorMessage,
+ bool Verbose)
{
//
// Find all of the symbols currently undefined in the bytecode program.
@@ -268,7 +267,7 @@
// no reason to link in any archive files.
//
std::set UndefinedSymbols;
- GetAllUndefinedSymbols (M, UndefinedSymbols);
+ GetAllUndefinedSymbols(M, UndefinedSymbols);
if (UndefinedSymbols.empty()) {
if (Verbose) std::cerr << " No symbols undefined, don't link library!\n";
return false; // No need to link anything in!
@@ -279,14 +278,14 @@
//
if (Verbose) std::cerr << " Loading '" << Filename << "'\n";
std::vector Objects;
- if (ReadArchiveFile (Filename, Objects, &ErrorMessage))
+ if (ReadArchiveFile(Filename, Objects, &ErrorMessage))
return true;
//
// Figure out which symbols are defined by all of the modules in the archive.
//
std::vector > DefinedSymbols;
- DefinedSymbols.resize (Objects.size());
+ DefinedSymbols.resize(Objects.size());
for (unsigned i = 0; i != Objects.size(); ++i) {
GetAllDefinedSymbols(Objects[i], DefinedSymbols[i]);
}
@@ -354,16 +353,15 @@
// TRUE - An error occurred.
// FALSE - No errors.
//
-static bool
-LinkInFile (Module *HeadModule,
- const std::string &Filename,
- std::string &ErrorMessage,
- bool Verbose)
+static bool LinkInFile(Module *HeadModule,
+ const std::string &Filename,
+ std::string &ErrorMessage,
+ bool Verbose)
{
std::auto_ptr M(LoadObject(Filename, ErrorMessage));
if (M.get() == 0) return true;
if (Verbose) std::cerr << "Linking in '" << Filename << "'\n";
- return (LinkModules (HeadModule, M.get(), &ErrorMessage));
+ return LinkModules(HeadModule, M.get(), &ErrorMessage);
}
//
@@ -407,7 +405,7 @@
for (unsigned i = 1; i < Files.size(); ++i) {
// Determine where this file lives.
- if (FileExists (Files[i])) {
+ if (FileExists(Files[i])) {
Pathname = Files[i];
} else {
if (SearchPath == NULL) {
@@ -416,32 +414,30 @@
}
Pathname = std::string(SearchPath)+"/"+Files[i];
- if (!FileExists (Pathname)) {
+ if (!FileExists(Pathname)) {
std::cerr << "Cannot find " << Files[i];
return true;
}
}
- //
// A user may specify an ar archive without -l, perhaps because it
// is not installed as a library. Detect that and link the library.
- //
if (IsArchive(Pathname)) {
if (Verbose)
std::cerr << "Linking archive '" << Files[i] << "'\n";
- if (LinkInArchive (HeadModule, Pathname, ErrorMessage, Verbose)) {
+ if (LinkInArchive(HeadModule, Pathname, ErrorMessage, Verbose)) {
PrintAndReturn(progname, ErrorMessage,
- ": Error linking in '" + Files[i] + "'");
+ ": Error linking in '" + Files[i] + "'");
return true;
}
} else {
if (Verbose)
std::cerr << "Linking file '" << Files[i] << "'\n";
- if (LinkInFile (HeadModule, Pathname, ErrorMessage, Verbose)) {
+ if (LinkInFile(HeadModule, Pathname, ErrorMessage, Verbose)) {
PrintAndReturn(progname, ErrorMessage,
- ": error linking in '" + Files[i] + "'");
+ ": error linking in '" + Files[i] + "'");
return true;
}
}
@@ -472,12 +468,12 @@
// FALSE - No error.
// TRUE - Error.
//
-bool LinkLibraries (const char *progname,
- Module *HeadModule,
- const std::vector &Libraries,
- const std::vector &LibPaths,
- bool Verbose,
- bool Native)
+bool LinkLibraries(const char *progname,
+ Module *HeadModule,
+ const std::vector &Libraries,
+ const std::vector &LibPaths,
+ bool Verbose,
+ bool Native)
{
// String in which to receive error messages.
std::string ErrorMessage;
@@ -495,10 +491,8 @@
}
}
- //
// A user may specify an ar archive without -l, perhaps because it
// is not installed as a library. Detect that and link the library.
- //
if (IsArchive(Pathname)) {
if (Verbose)
std::cerr << "Linking archive '" << Libraries[i] << "'\n";
From brukman at cs.uiuc.edu Mon Sep 29 17:38:01 2003
From: brukman at cs.uiuc.edu (Misha Brukman)
Date: Mon Sep 29 17:38:01 2003
Subject: [llvm-commits] CVS: llvm/tools/llee/OSInterface.h StorageProxy.c ExecveHandler.c Makefile SysUtils.c SysUtils.h llee
Message-ID: <200309292237.RAA16058@zion.cs.uiuc.edu>
Changes in directory llvm/tools/llee:
OSInterface.h added (r1.1)
StorageProxy.c added (r1.1)
ExecveHandler.c updated: 1.3 -> 1.4
Makefile updated: 1.2 -> 1.3
SysUtils.c updated: 1.3 -> 1.4
SysUtils.h updated: 1.2 -> 1.3
llee (r1.1) removed
---
Log message:
* Added an interface for how LLEE would communicate with the OS
* Implemented the interface in StorageProxy.c
* Removed the script `llee' as it is now created by the Makefile
* Makefile now compiles a shared object version of the library, but only if
using gcc-3.3, linking fails under gcc-3.2
---
Diffs of the changes:
Index: llvm/tools/llee/OSInterface.h
diff -c /dev/null llvm/tools/llee/OSInterface.h:1.1
*** /dev/null Mon Sep 29 17:37:10 2003
--- llvm/tools/llee/OSInterface.h Mon Sep 29 17:37:00 2003
***************
*** 0 ****
--- 1,48 ----
+ /*===- OSInterface.h - Interface to query OS for functionality ---*- C -*--===*\
+ * *
+ * This file defines the prototype interface that we will expect operating *
+ * systems to implement if they wish to support offline cachine. *
+ * *
+ \*===----------------------------------------------------------------------===*/
+
+ #ifndef OS_INTERFACE_H
+ #define OS_INTERFACE_H
+
+ #include "Config/sys/types.h"
+
+ struct stat;
+
+ /*
+ * llvmStat - equivalent to stat(3), except the key may not necessarily
+ * correspond to a file by that name, implementation is up to the OS.
+ * Values returned in buf are similar as they are in Unix.
+ */
+ void llvmStat(const char *key, struct stat *buf);
+
+ /*
+ * llvmWriteFile - implements a 'save' of a file in the OS. 'key' may not
+ * necessarily map to a file of the same name.
+ * Returns:
+ * 0 - success
+ * non-zero - error
+ */
+ int llvmWriteFile(const char *key, const void *data, size_t len);
+
+ /*
+ * llvmLoadFile - tells the OS to load data corresponding to a particular key
+ * somewhere into memory.
+ * Returns:
+ * 0 - failure
+ * non-zero - address of loaded file
+ *
+ * Value of size is the length of data loaded into memory.
+ */
+ void* llvmReadFile(const char *key, size_t *size);
+
+ /*
+ * llvmExecve - execute a file from cache. This is a temporary proof-of-concept
+ * because we do not relocate what we can read from disk.
+ */
+ int llvmExecve(const char *filename, char *const argv[], char *const envp[]);
+
+ #endif
Index: llvm/tools/llee/StorageProxy.c
diff -c /dev/null llvm/tools/llee/StorageProxy.c:1.1
*** /dev/null Mon Sep 29 17:37:10 2003
--- llvm/tools/llee/StorageProxy.c Mon Sep 29 17:37:00 2003
***************
*** 0 ****
--- 1,101 ----
+ /*===- StorageProxy.c - OS implementation of the caching interface --------===*\
+ * *
+ * This file implements the interface that we will expect operating *
+ * systems to implement if they wish to support offline cachine. *
+ * *
+ \*===----------------------------------------------------------------------===*/
+
+ #include "OSInterface.h"
+ #include "SysUtils.h"
+ #include "Config/fcntl.h"
+ #include "Config/stdlib.h"
+ #include "Config/unistd.h"
+ #include "Config/sys/types.h"
+ #include "Config/sys/stat.h"
+ #include
+ #include
+
+ static const char CacheRoot[] = "/tmp/LLVMCache";
+ static const char ExeSuffix[] = ".exe";
+
+ char* computeCachedFile(const char *key) {
+ /* CacheRoot + "/" + std::string(key) + ExeSuffix; */
+ char *cacheFile = (char*) malloc(strlen(CacheRoot) + 1 + strlen(key) +
+ strlen(ExeSuffix) + 1);
+ char *pCacheFile = cacheFile;
+ if (!cacheFile) return 0;
+ memcpy(cacheFile, CacheRoot, strlen(CacheRoot));
+ pCacheFile += strlen(CacheRoot);
+ *pCacheFile++ = '/';
+ memcpy(pCacheFile, key, strlen(key));
+ pCacheFile += strlen(key);
+ memcpy(pCacheFile, ExeSuffix, strlen(ExeSuffix));
+ pCacheFile += strlen(ExeSuffix);
+ *pCacheFile = 0; // Null-terminate
+ return cacheFile;
+ }
+
+ /*
+ * llvmStat - equivalent to stat(3), except the key may not necessarily
+ * correspond to a file by that name, implementation is up to the OS.
+ * Values returned in buf are similar as they are in Unix.
+ */
+ void llvmStat(const char *key, struct stat *buf) {
+ char* cacheFile = computeCachedFile(key);
+ fprintf(stderr, "llvmStat(%s)\n", cacheFile);
+ stat(cacheFile, buf);
+ free(cacheFile);
+ }
+
+ /*
+ * llvmWriteFile - implements a 'save' of a file in the OS. 'key' may not
+ * necessarily map to a file of the same name.
+ * Returns:
+ * 0 - success
+ * non-zero - error
+ */
+ int llvmWriteFile(const char *key, const void *data, size_t len)
+ {
+ char* cacheFile = computeCachedFile(key);
+ int fd = open(cacheFile, O_CREAT|O_WRONLY|O_TRUNC);
+ free(cacheFile);
+ if (fd < 0) return -1; // encountered an error
+ if (write(fd, data, len)) return -1;
+ if (fsync(fd)) return -1;
+ if (close(fd)) return -1;
+ return 0;
+ }
+
+ /*
+ * llvmReadFile - tells the OS to load data corresponding to a particular key
+ * somewhere into memory.
+ * Returns:
+ * 0 - failure
+ * non-zero - address of loaded file
+ *
+ * Value of size is the length of data loaded into memory.
+ */
+ void* llvmReadFile(const char *key, size_t *size) {
+ char* cacheFile = computeCachedFile(key);
+ if (!cacheFile) return 0;
+ struct stat buf;
+ stat(cacheFile, &buf);
+ int fd = open(cacheFile, O_RDONLY);
+ if (fd < 0) return 0; // encountered an error
+ void* data = malloc(buf.st_size);
+ if (read(fd, data, buf.st_size)) {
+ free(data);
+ return 0;
+ }
+ *size = buf.st_size;
+ return data;
+ }
+
+ /*
+ * llvmExecve - execute a file from cache. This is a temporary proof-of-concept
+ * because we do not relocate what we can read from disk.
+ */
+ int llvmExecve(const char *filename, char *const argv[], char *const envp[]) {
+ char* cacheFile = computeCachedFile(filename);
+ executeProgram(cacheFile, argv, envp);
+ }
Index: llvm/tools/llee/ExecveHandler.c
diff -u llvm/tools/llee/ExecveHandler.c:1.3 llvm/tools/llee/ExecveHandler.c:1.4
--- llvm/tools/llee/ExecveHandler.c:1.3 Sat Sep 27 17:26:37 2003
+++ llvm/tools/llee/ExecveHandler.c Mon Sep 29 17:36:59 2003
@@ -5,8 +5,8 @@
//
//===----------------------------------------------------------------------===//
+#include "OSInterface.h"
#include "SysUtils.h"
-#include "Config/dlfcn.h"
#include "Config/errno.h"
#include "Config/stdlib.h"
#include "Config/unistd.h"
@@ -21,32 +21,6 @@
static const char llvmHeader[] = "llvm";
/*
- * The type of the execve() function is long and boring, but required.
- */
-typedef int(*execveTy)(const char*, char *const[], char *const[]);
-
-/*
- * This method finds the real `execve' call in the C library and executes the
- * given program.
- */
-int executeProgram(const char *filename, char *const argv[], char *const envp[])
-{
- /*
- * Find a pointer to the *real* execve() function starting the search in the
- * next library and forward, to avoid finding the one defined in this file.
- */
- char *error;
- execveTy execvePtr = (execveTy) dlsym(RTLD_NEXT, "execve");
- if ((error = dlerror()) != NULL) {
- fprintf(stderr, "%s\n", error);
- return -1;
- }
-
- /* Really execute the program */
- return execvePtr(filename, argv, envp);
-}
-
-/*
* This replacement execve() function first checks the file to be executed
* to see if it is a valid LLVM bytecode file, and then either invokes our
* execution environment or passes it on to the system execve() call.
@@ -56,8 +30,21 @@
/* Open the file, test to see if first four characters are "llvm" */
size_t headerSize = strlen(llvmHeader);
char header[headerSize];
+ char* realFilename = 0;
+ /*
+ * If the program is specified with a relative or absolute path,
+ * then just use the path and filename as is, otherwise search for it.
+ */
+ if (filename[0] != '.' && filename[0] != '/')
+ realFilename = FindExecutable(filename);
+ else
+ realFilename = (char*) filename;
+ if (!realFilename) {
+ fprintf(stderr, "Cannot find path to `%s', exiting.\n", filename);
+ return -1;
+ }
errno = 0;
- int file = open(filename, O_RDONLY);
+ int file = open(realFilename, O_RDONLY);
/* Check validity of `file' */
if (errno) return EIO;
/* Read the header from the file */
@@ -65,6 +52,27 @@
close(file);
if (bytesRead != (ssize_t)headerSize) return EIO;
if (!memcmp(llvmHeader, header, headerSize)) {
+ /*
+ * Check if we have a cached translation on disk
+ */
+ struct stat buf;
+ llvmStat(realFilename, &buf);
+ if (isExecutable(&buf)) {
+ size_t size;
+ void *fileAddr = llvmReadFile(realFilename, &size);
+ fprintf(stderr, "Found in cache: '%s'\n", realFilename);
+ if (fileAddr) {
+ free(fileAddr);
+ }
+ llvmExecve(realFilename, argv, envp);
+ } else {
+ /*
+ * Not in cache: save translation
+ */
+ //llvmSaveFile(realFilename, addr, len);
+ //fprintf(stderr, "Cached: '%s'\n", realFilename);
+ }
+
/*
* This is a bytecode file, so execute the JIT with the program and
* parameters.
@@ -73,26 +81,13 @@
for (argvSize = 0, idx = 0; argv[idx] && argv[idx][0]; ++idx)
++argvSize;
char **LLIargs = (char**) malloc(sizeof(char*) * (argvSize+2));
- char *BCpath;
- /*
- * If the program is specified with a relative or absolute path,
- * then just use the path and filename as is, otherwise search for it.
- */
- if (filename[0] != '.' && filename[0] != '/')
- BCpath = FindExecutable(filename);
- else
- BCpath = (char*) filename;
- if (!BCpath) {
- fprintf(stderr, "Cannot find path to `%s', exiting.\n", filename);
- return -1;
- }
char *LLIpath = FindExecutable("lli");
if (!LLIpath) {
fprintf(stderr, "Cannot find path to `lli', exiting.\n");
return -1;
}
LLIargs[0] = LLIpath;
- LLIargs[1] = BCpath;
+ LLIargs[1] = realFilename;
for (idx = 1; idx != argvSize; ++idx)
LLIargs[idx+1] = argv[idx];
LLIargs[argvSize + 1] = '\0';
Index: llvm/tools/llee/Makefile
diff -u llvm/tools/llee/Makefile:1.2 llvm/tools/llee/Makefile:1.3
--- llvm/tools/llee/Makefile:1.2 Fri Aug 15 18:31:54 2003
+++ llvm/tools/llee/Makefile Mon Sep 29 17:37:00 2003
@@ -1,21 +1,15 @@
LEVEL = ../..
-include $(LEVEL)/Makefile.config
+LIBRARYNAME = execve
+SHARED_LIBRARY = 1
+include $(LEVEL)/Makefile.common
-SRCS = ExecveHandler.c SysUtils.c
+all:: llee
-OBJS = $(SRCS:%.c=%.o)
-SO = execve.so
+llee: $(DESTTOOLCURRENT)/llee
-all: $(SO)
-
-%.o: %.c
- gcc -g -I../../include -D_GNU_SOURCE $< -c -o $@
+$(DESTTOOLCURRENT)/llee: Makefile
+ echo exec env LD_PRELOAD=$(DESTLIBCURRENT)/execve.so $$\* > $@
+ chmod u+x $@
-$(SO): $(OBJS)
- gcc -g -shared -ldl -rdynamic $(OBJS) -o $@
-
-execve_test: execve_test.c
- gcc -g $< -o $@
-
-clean:
- rm -f $(OBJS) $(SO)
+clean::
+ rm -f $(DESTTOOLCURRENT)/llee
Index: llvm/tools/llee/SysUtils.c
diff -u llvm/tools/llee/SysUtils.c:1.3 llvm/tools/llee/SysUtils.c:1.4
--- llvm/tools/llee/SysUtils.c:1.3 Sat Sep 27 17:26:37 2003
+++ llvm/tools/llee/SysUtils.c Mon Sep 29 17:37:00 2003
@@ -6,35 +6,46 @@
//===----------------------------------------------------------------------===//
#include "SysUtils.h"
-#include "Config/sys/types.h"
-#include "Config/sys/stat.h"
+#include "Config/dlfcn.h"
+#include "Config/errno.h"
#include "Config/fcntl.h"
-#include "Config/sys/wait.h"
#include "Config/unistd.h"
-#include "Config/errno.h"
+#include "Config/sys/stat.h"
+#include "Config/sys/types.h"
+#include "Config/sys/wait.h"
+#include
#include
#include
/*
+ * isExecutable - This function returns true if given struct stat describes the
+ * file as being executable.
+ */
+unsigned isExecutable(const struct stat *buf) {
+ if (!(buf->st_mode & S_IFREG))
+ return 0; // Not a regular file?
+
+ if (buf->st_uid == getuid()) // Owner of file?
+ return buf->st_mode & S_IXUSR;
+ else if (buf->st_gid == getgid()) // In group of file?
+ return buf->st_mode & S_IXGRP;
+ else // Unrelated to file?
+ return buf->st_mode & S_IXOTH;
+}
+
+/*
* isExecutableFile - This function returns true if the filename specified
* exists and is executable.
*/
unsigned isExecutableFile(const char *ExeFileName) {
- struct stat Buf;
- if (stat(ExeFileName, &Buf))
+ struct stat buf;
+ if (stat(ExeFileName, &buf))
return 0; // Must not be executable!
- if (!(Buf.st_mode & S_IFREG))
- return 0; // Not a regular file?
-
- if (Buf.st_uid == getuid()) // Owner of file?
- return Buf.st_mode & S_IXUSR;
- else if (Buf.st_gid == getgid()) // In group of file?
- return Buf.st_mode & S_IXGRP;
- else // Unrelated to file?
- return Buf.st_mode & S_IXOTH;
+ return isExecutable(&buf);
}
+
/*
* FindExecutable - Find a named executable in the directories listed in $PATH.
* If the executable cannot be found, returns NULL.
@@ -80,4 +91,30 @@
/* If we fell out, we ran out of directories to search, return failure. */
return NULL;
+}
+
+/*
+ * The type of the execve() function is long and boring, but required.
+ */
+typedef int(*execveTy)(const char*, char *const[], char *const[]);
+
+/*
+ * This method finds the real `execve' call in the C library and executes the
+ * given program.
+ */
+int executeProgram(const char *filename, char *const argv[], char *const envp[])
+{
+ /*
+ * Find a pointer to the *real* execve() function starting the search in the
+ * next library and forward, to avoid finding the one defined in this file.
+ */
+ char *error;
+ execveTy execvePtr = (execveTy) dlsym(RTLD_NEXT, "execve");
+ if ((error = dlerror()) != NULL) {
+ fprintf(stderr, "%s\n", error);
+ return -1;
+ }
+
+ /* Really execute the program */
+ return execvePtr(filename, argv, envp);
}
Index: llvm/tools/llee/SysUtils.h
diff -u llvm/tools/llee/SysUtils.h:1.2 llvm/tools/llee/SysUtils.h:1.3
--- llvm/tools/llee/SysUtils.h:1.2 Fri Aug 15 18:31:16 2003
+++ llvm/tools/llee/SysUtils.h Mon Sep 29 17:37:00 2003
@@ -8,6 +8,14 @@
#ifndef SYSUTILS_H
#define SYSUTILS_H
+struct stat;
+
+/*
+ * isExecutable - This function returns true if given struct stat describes the
+ * file as being executable.
+ */
+unsigned isExecutable(const struct stat *buf);
+
/*
* isExecutableFile - This function returns true if the filename specified
* exists and is executable.
@@ -18,5 +26,12 @@
* FindExecutable - Find a named executable in the path.
*/
char *FindExecutable(const char *ExeName);
+
+/*
+ * This method finds the real `execve' call in the C library and executes the
+ * given program.
+ */
+int
+executeProgram(const char *filename, char *const argv[], char *const envp[]);
#endif
From brukman at cs.uiuc.edu Mon Sep 29 17:39:02 2003
From: brukman at cs.uiuc.edu (Misha Brukman)
Date: Mon Sep 29 17:39:02 2003
Subject: [llvm-commits] CVS: llvm/include/Support/SystemUtils.h
Message-ID: <200309292238.RAA16088@zion.cs.uiuc.edu>
Changes in directory llvm/include/Support:
SystemUtils.h updated: 1.5 -> 1.6
---
Log message:
Tersified and fixed whitespace (tabs -> spaces).
---
Diffs of the changes:
Index: llvm/include/Support/SystemUtils.h
diff -u llvm/include/Support/SystemUtils.h:1.5 llvm/include/Support/SystemUtils.h:1.6
--- llvm/include/Support/SystemUtils.h:1.5 Wed Sep 17 14:02:49 2003
+++ llvm/include/Support/SystemUtils.h Mon Sep 29 17:37:57 2003
@@ -21,7 +21,7 @@
/// in the PATH. If the executable cannot be found, return an empty string.
///
std::string FindExecutable(const std::string &ExeName,
- const std::string &ProgramPath);
+ const std::string &ProgramPath);
/// RunProgramWithTimeout - This function executes the specified program, with
/// the specified null-terminated argument array, with the stdin/out/err fd's
@@ -30,16 +30,12 @@
/// It returns the return value of the program, or -1 if a timeout is detected.
///
int RunProgramWithTimeout(const std::string &ProgramPath, const char **Args,
- const std::string &StdInFile = "",
- const std::string &StdOutFile = "",
- const std::string &StdErrFile = "");
+ const std::string &StdInFile = "",
+ const std::string &StdOutFile = "",
+ const std::string &StdErrFile = "");
-///
-/// Function: ExecWait()
-///
-/// Description:
-/// Execute a program with the given arguments and environment and
-/// wait for it to terminate.
+/// ExecWait - Execute a program with the given arguments and environment and
+/// wait for it to terminate.
///
int ExecWait (const char * const argv[], const char * const envp[]);
#endif
From brukman at cs.uiuc.edu Mon Sep 29 17:40:10 2003
From: brukman at cs.uiuc.edu (Misha Brukman)
Date: Mon Sep 29 17:40:10 2003
Subject: [llvm-commits] CVS: llvm/support/lib/Support/ToolRunner.cpp
Message-ID: <200309292239.RAA16126@zion.cs.uiuc.edu>
Changes in directory llvm/support/lib/Support:
ToolRunner.cpp added (r1.1)
---
Log message:
Implementation of the abstraction of running our tools + gcc, taken out of
bugpoint for general usage and enjoyment.
---
Diffs of the changes:
Index: llvm/support/lib/Support/ToolRunner.cpp
diff -c /dev/null llvm/support/lib/Support/ToolRunner.cpp:1.1
*** /dev/null Mon Sep 29 17:39:35 2003
--- llvm/support/lib/Support/ToolRunner.cpp Mon Sep 29 17:39:25 2003
***************
*** 0 ****
--- 1,374 ----
+ #include "Support/Debug.h"
+ #include "Support/FileUtilities.h"
+ #include "Support/ToolRunner.h"
+
+ //===---------------------------------------------------------------------===//
+ // LLI Implementation of AbstractIntepreter interface
+ //
+ class LLI : public AbstractInterpreter {
+ std::string LLIPath; // The path to the LLI executable
+ public:
+ LLI(const std::string &Path) : LLIPath(Path) { }
+
+
+ virtual int ExecuteProgram(const std::string &Bytecode,
+ const cl::list &Args,
+ const std::string &InputFile,
+ const std::string &OutputFile,
+ const std::string &SharedLib = "");
+ };
+
+ int LLI::ExecuteProgram(const std::string &Bytecode,
+ const cl::list &Args,
+ const std::string &InputFile,
+ const std::string &OutputFile,
+ const std::string &SharedLib) {
+ if (!SharedLib.empty()) {
+ std::cerr << "LLI currently does not support loading shared libraries.\n"
+ << "Exiting.\n";
+ exit(1);
+ }
+
+ std::vector LLIArgs;
+ LLIArgs.push_back(LLIPath.c_str());
+ LLIArgs.push_back("-abort-on-exception");
+ LLIArgs.push_back("-quiet");
+ LLIArgs.push_back("-force-interpreter=true");
+ LLIArgs.push_back(Bytecode.c_str());
+ // Add optional parameters to the running program from Argv
+ for (unsigned i=0, e = Args.size(); i != e; ++i)
+ LLIArgs.push_back(Args[i].c_str());
+ LLIArgs.push_back(0);
+
+ std::cout << "" << std::flush;
+ DEBUG(std::cerr << "\nAbout to run:\n\t";
+ for (unsigned i=0, e = LLIArgs.size(); i != e; ++i)
+ std::cerr << " " << LLIArgs[i];
+ std::cerr << "\n";
+ );
+ return RunProgramWithTimeout(LLIPath, &LLIArgs[0],
+ InputFile, OutputFile, OutputFile);
+ }
+
+ // LLI create method - Try to find the LLI executable
+ AbstractInterpreter *createLLItool(const std::string &ProgramPath,
+ std::string &Message) {
+ std::string LLIPath = FindExecutable("lli", ProgramPath);
+ if (!LLIPath.empty()) {
+ Message = "Found lli: " + LLIPath + "\n";
+ return new LLI(LLIPath);
+ }
+
+ Message = "Cannot find `lli' in executable directory or PATH!\n";
+ return 0;
+ }
+
+ //===----------------------------------------------------------------------===//
+ // LLC Implementation of AbstractIntepreter interface
+ //
+ int LLC::OutputAsm(const std::string &Bytecode,
+ std::string &OutputAsmFile) {
+ OutputAsmFile = getUniqueFilename(Bytecode+".llc.s");
+ const char *LLCArgs[] = {
+ LLCPath.c_str(),
+ "-o", OutputAsmFile.c_str(), // Output to the Asm file
+ "-f", // Overwrite as necessary...
+ Bytecode.c_str(), // This is the input bytecode
+ 0
+ };
+
+ std::cout << "" << std::flush;
+ if (RunProgramWithTimeout(LLCPath, LLCArgs, "/dev/null", "/dev/null",
+ "/dev/null")) {
+ // If LLC failed on the bytecode, print error...
+ std::cerr << "Error: `llc' failed!\n";
+ removeFile(OutputAsmFile);
+ return 1;
+ }
+
+ return 0;
+ }
+
+ int LLC::ExecuteProgram(const std::string &Bytecode,
+ const cl::list &Args,
+ const std::string &InputFile,
+ const std::string &OutputFile,
+ const std::string &SharedLib) {
+
+ std::string OutputAsmFile;
+ if (OutputAsm(Bytecode, OutputAsmFile)) {
+ std::cerr << "Could not generate asm code with `llc', exiting.\n";
+ exit(1);
+ }
+
+ // Assuming LLC worked, compile the result with GCC and run it.
+ int Result = gcc->ExecuteProgram(OutputAsmFile, Args, AsmFile,
+ InputFile, OutputFile, SharedLib);
+ removeFile(OutputAsmFile);
+ return Result;
+ }
+
+ /// createLLCtool - Try to find the LLC executable
+ ///
+ LLC *createLLCtool(const std::string &ProgramPath, std::string &Message)
+ {
+ std::string LLCPath = FindExecutable("llc", ProgramPath);
+ if (LLCPath.empty()) {
+ Message = "Cannot find `llc' in executable directory or PATH!\n";
+ return 0;
+ }
+
+ Message = "Found llc: " + LLCPath + "\n";
+ GCC *gcc = createGCCtool(ProgramPath, Message);
+ if (!gcc) {
+ std::cerr << Message << "\n";
+ exit(1);
+ }
+ return new LLC(LLCPath, gcc);
+ }
+
+ //===---------------------------------------------------------------------===//
+ // JIT Implementation of AbstractIntepreter interface
+ //
+ class JIT : public AbstractInterpreter {
+ std::string LLIPath; // The path to the LLI executable
+ public:
+ JIT(const std::string &Path) : LLIPath(Path) { }
+
+
+ virtual int ExecuteProgram(const std::string &Bytecode,
+ const cl::list &Args,
+ const std::string &InputFile,
+ const std::string &OutputFile,
+ const std::string &SharedLib = "");
+ };
+
+ int JIT::ExecuteProgram(const std::string &Bytecode,
+ const cl::list &Args,
+ const std::string &InputFile,
+ const std::string &OutputFile,
+ const std::string &SharedLib) {
+ // Construct a vector of parameters, incorporating those from the command-line
+ std::vector JITArgs;
+ JITArgs.push_back(LLIPath.c_str());
+ JITArgs.push_back("-quiet");
+ JITArgs.push_back("-force-interpreter=false");
+ if (!SharedLib.empty()) {
+ JITArgs.push_back("-load");
+ JITArgs.push_back(SharedLib.c_str());
+ }
+ JITArgs.push_back(Bytecode.c_str());
+ // Add optional parameters to the running program from Argv
+ for (unsigned i=0, e = Args.size(); i != e; ++i)
+ JITArgs.push_back(Args[i].c_str());
+ JITArgs.push_back(0);
+
+ std::cout << "" << std::flush;
+ DEBUG(std::cerr << "\nAbout to run:\n\t";
+ for (unsigned i=0, e = JITArgs.size(); i != e; ++i)
+ std::cerr << " " << JITArgs[i];
+ std::cerr << "\n";
+ );
+ DEBUG(std::cerr << "\nSending output to " << OutputFile << "\n");
+ return RunProgramWithTimeout(LLIPath, &JITArgs[0],
+ InputFile, OutputFile, OutputFile);
+ }
+
+ /// createJITtool - Try to find the LLI executable
+ ///
+ AbstractInterpreter *createJITtool(const std::string &ProgramPath,
+ std::string &Message) {
+ std::string LLIPath = FindExecutable("lli", ProgramPath);
+ if (!LLIPath.empty()) {
+ Message = "Found lli: " + LLIPath + "\n";
+ return new JIT(LLIPath);
+ }
+
+ Message = "Cannot find `lli' in executable directory or PATH!\n";
+ return 0;
+ }
+
+ int CBE::OutputC(const std::string &Bytecode,
+ std::string &OutputCFile) {
+ OutputCFile = getUniqueFilename(Bytecode+".cbe.c");
+ const char *DisArgs[] = {
+ DISPath.c_str(),
+ "-o", OutputCFile.c_str(), // Output to the C file
+ "-c", // Output to C
+ "-f", // Overwrite as necessary...
+ Bytecode.c_str(), // This is the input bytecode
+ 0
+ };
+
+ std::cout << "" << std::flush;
+ if (RunProgramWithTimeout(DISPath, DisArgs, "/dev/null", "/dev/null",
+ "/dev/null")) {
+ // If dis failed on the bytecode, print error...
+ std::cerr << "Error: `llvm-dis -c' failed!\n";
+ return 1;
+ }
+
+ return 0;
+ }
+
+ int CBE::ExecuteProgram(const std::string &Bytecode,
+ const cl::list &Args,
+ const std::string &InputFile,
+ const std::string &OutputFile,
+ const std::string &SharedLib) {
+ std::string OutputCFile;
+ if (OutputC(Bytecode, OutputCFile)) {
+ std::cerr << "Could not generate C code with `llvm-dis', exiting.\n";
+ exit(1);
+ }
+
+ int Result = gcc->ExecuteProgram(OutputCFile, Args, CFile,
+ InputFile, OutputFile, SharedLib);
+ removeFile(OutputCFile);
+
+ return Result;
+ }
+
+ /// createCBEtool - Try to find the 'dis' executable
+ ///
+ CBE *createCBEtool(const std::string &ProgramPath, std::string &Message) {
+ std::string DISPath = FindExecutable("llvm-dis", ProgramPath);
+ if (DISPath.empty()) {
+ Message =
+ "Cannot find `llvm-dis' in executable directory or PATH!\n";
+ return 0;
+ }
+
+ Message = "Found llvm-dis: " + DISPath + "\n";
+ GCC *gcc = createGCCtool(ProgramPath, Message);
+ if (!gcc) {
+ std::cerr << Message << "\n";
+ exit(1);
+ }
+ return new CBE(DISPath, gcc);
+ }
+
+ //===---------------------------------------------------------------------===//
+ // GCC abstraction
+ //
+ // This is not a *real* AbstractInterpreter as it does not accept bytecode
+ // files, but only input acceptable to GCC, i.e. C, C++, and assembly files
+ //
+ int GCC::ExecuteProgram(const std::string &ProgramFile,
+ const cl::list &Args,
+ FileType fileType,
+ const std::string &InputFile,
+ const std::string &OutputFile,
+ const std::string &SharedLib) {
+ std::string OutputBinary = getUniqueFilename(ProgramFile+".gcc.exe");
+ std::vector GCCArgs;
+
+ GCCArgs.push_back(GCCPath.c_str());
+ if (!SharedLib.empty()) // Specify the shared library to link in...
+ GCCArgs.push_back(SharedLib.c_str());
+ GCCArgs.push_back("-x");
+ if (fileType == CFile) {
+ GCCArgs.push_back("c");
+ GCCArgs.push_back("-fno-strict-aliasing");
+ } else {
+ GCCArgs.push_back("assembler");
+ }
+ GCCArgs.push_back(ProgramFile.c_str()); // Specify the input filename...
+ GCCArgs.push_back("-o");
+ GCCArgs.push_back(OutputBinary.c_str()); // Output to the right file...
+ GCCArgs.push_back("-lm"); // Hard-code the math library...
+ GCCArgs.push_back("-O2"); // Optimize the program a bit...
+ GCCArgs.push_back(0); // NULL terminator
+
+ std::cout << "" << std::flush;
+ if (RunProgramWithTimeout(GCCPath, &GCCArgs[0], "/dev/null", "/dev/null",
+ "/dev/null")) {
+ ProcessFailure(&GCCArgs[0]);
+ exit(1);
+ }
+
+ std::vector ProgramArgs;
+ ProgramArgs.push_back(OutputBinary.c_str());
+ // Add optional parameters to the running program from Argv
+ for (unsigned i=0, e = Args.size(); i != e; ++i)
+ ProgramArgs.push_back(Args[i].c_str());
+ ProgramArgs.push_back(0); // NULL terminator
+
+ // Now that we have a binary, run it!
+ std::cout << "" << std::flush;
+ DEBUG(std::cerr << "\nAbout to run:\n\t";
+ for (unsigned i=0, e = ProgramArgs.size(); i != e; ++i)
+ std::cerr << " " << ProgramArgs[i];
+ std::cerr << "\n";
+ );
+ int ProgramResult = RunProgramWithTimeout(OutputBinary, &ProgramArgs[0],
+ InputFile, OutputFile, OutputFile);
+ removeFile(OutputBinary);
+ return ProgramResult;
+ }
+
+ int GCC::MakeSharedObject(const std::string &InputFile,
+ FileType fileType,
+ std::string &OutputFile) {
+ OutputFile = getUniqueFilename(InputFile+".so");
+ // Compile the C/asm file into a shared object
+ const char* GCCArgs[] = {
+ GCCPath.c_str(),
+ "-x", (fileType == AsmFile) ? "assembler" : "c",
+ "-fno-strict-aliasing",
+ InputFile.c_str(), // Specify the input filename...
+ #if defined(sparc) || defined(__sparc__) || defined(__sparcv9)
+ "-G", // Compile a shared library, `-G' for Sparc
+ #else
+ "-shared", // `-shared' for Linux/X86, maybe others
+ #endif
+ "-o", OutputFile.c_str(), // Output to the right filename...
+ "-O2", // Optimize the program a bit...
+ 0
+ };
+
+ std::cout << "" << std::flush;
+ if(RunProgramWithTimeout(GCCPath, GCCArgs, "/dev/null", "/dev/null",
+ "/dev/null")) {
+ ProcessFailure(GCCArgs);
+ exit(1);
+ }
+ return 0;
+ }
+
+ void GCC::ProcessFailure(const char** GCCArgs) {
+ std::cerr << "\n*** Error: invocation of the C compiler failed!\n";
+ for (const char **Arg = GCCArgs; *Arg; ++Arg)
+ std::cerr << " " << *Arg;
+ std::cerr << "\n";
+
+ // Rerun the compiler, capturing any error messages to print them.
+ std::string ErrorFilename = getUniqueFilename("gcc.errors");
+ RunProgramWithTimeout(GCCPath, GCCArgs, "/dev/null", ErrorFilename.c_str(),
+ ErrorFilename.c_str());
+
+ // Print out the error messages generated by GCC if possible...
+ std::ifstream ErrorFile(ErrorFilename.c_str());
+ if (ErrorFile) {
+ std::copy(std::istreambuf_iterator(ErrorFile),
+ std::istreambuf_iterator(),
+ std::ostreambuf_iterator(std::cerr));
+ ErrorFile.close();
+ std::cerr << "\n";
+ }
+
+ removeFile(ErrorFilename);
+ }
+
+ /// createGCCtool - Try to find the `gcc' executable
+ ///
+ GCC *createGCCtool(const std::string &ProgramPath, std::string &Message) {
+ std::string GCCPath = FindExecutable("gcc", ProgramPath);
+ if (GCCPath.empty()) {
+ Message = "Cannot find `gcc' in executable directory or PATH!\n";
+ return 0;
+ }
+
+ Message = "Found gcc: " + GCCPath + "\n";
+ return new GCC(GCCPath);
+ }
From brukman at cs.uiuc.edu Mon Sep 29 17:40:13 2003
From: brukman at cs.uiuc.edu (Misha Brukman)
Date: Mon Sep 29 17:40:13 2003
Subject: [llvm-commits] CVS: llvm/include/Support/ToolRunner.h
Message-ID: <200309292239.RAA16116@zion.cs.uiuc.edu>
Changes in directory llvm/include/Support:
ToolRunner.h added (r1.1)
---
Log message:
Abstracted away the process of running our tools + gcc from bugpoint.
---
Diffs of the changes:
Index: llvm/include/Support/ToolRunner.h
diff -c /dev/null llvm/include/Support/ToolRunner.h:1.1
*** /dev/null Mon Sep 29 17:39:07 2003
--- llvm/include/Support/ToolRunner.h Mon Sep 29 17:38:57 2003
***************
*** 0 ****
--- 1,115 ----
+ #ifndef TOOLRUNNER_H
+ #define TOOLRUNNER_H
+
+ #include "Support/CommandLine.h"
+ #include "Support/SystemUtils.h"
+ #include
+ #include
+ #include
+ #include
+
+ enum FileType { AsmFile, CFile };
+
+ //===---------------------------------------------------------------------===//
+ // GCC abstraction
+ //
+ // This is not a *real* AbstractInterpreter as it does not accept bytecode
+ // files, but only input acceptable to GCC, i.e. C, C++, and assembly files
+ //
+ class GCC {
+ std::string GCCPath; // The path to the gcc executable
+ public:
+ GCC(const std::string &gccPath) : GCCPath(gccPath) { }
+ virtual ~GCC() {}
+
+ virtual int ExecuteProgram(const std::string &ProgramFile,
+ const cl::list &Args,
+ FileType fileType,
+ const std::string &InputFile,
+ const std::string &OutputFile,
+ const std::string &SharedLib = "");
+
+ int MakeSharedObject(const std::string &InputFile,
+ FileType fileType,
+ std::string &OutputFile);
+
+ void ProcessFailure(const char **Args);
+ };
+
+ GCC* createGCCtool(const std::string &ProgramPath,
+ std::string &Message);
+
+ /// AbstractInterpreter Class - Subclasses of this class are used to execute
+ /// LLVM bytecode in a variety of ways. This abstract interface hides this
+ /// complexity behind a simple interface.
+ ///
+ struct AbstractInterpreter {
+
+ virtual ~AbstractInterpreter() {}
+
+ /// ExecuteProgram - Run the specified bytecode file, emitting output to the
+ /// specified filename. This returns the exit code of the program.
+ ///
+ virtual int ExecuteProgram(const std::string &Bytecode,
+ const cl::list &Args,
+ const std::string &InputFile,
+ const std::string &OutputFile,
+ const std::string &SharedLib = "") = 0;
+ };
+
+ //===---------------------------------------------------------------------===//
+ // CBE Implementation of AbstractIntepreter interface
+ //
+ class CBE : public AbstractInterpreter {
+ std::string DISPath; // The path to the `llvm-dis' executable
+ GCC *gcc;
+ public:
+ CBE(const std::string &disPath, GCC *Gcc) : DISPath(disPath), gcc(Gcc) { }
+ ~CBE() { delete gcc; }
+
+ virtual int ExecuteProgram(const std::string &Bytecode,
+ const cl::list &Args,
+ const std::string &InputFile,
+ const std::string &OutputFile,
+ const std::string &SharedLib = "");
+
+ // Sometimes we just want to go half-way and only generate the C file,
+ // not necessarily compile it with GCC and run the program
+ virtual int OutputC(const std::string &Bytecode,
+ std::string &OutputCFile);
+
+ };
+
+ CBE* createCBEtool(const std::string &ProgramPath, std::string &Message);
+
+ //===---------------------------------------------------------------------===//
+ // LLC Implementation of AbstractIntepreter interface
+ //
+ class LLC : public AbstractInterpreter {
+ std::string LLCPath; // The path to the LLC executable
+ GCC *gcc;
+ public:
+ LLC(const std::string &llcPath, GCC *Gcc)
+ : LLCPath(llcPath), gcc(Gcc) { }
+ ~LLC() { delete gcc; }
+
+ virtual int ExecuteProgram(const std::string &Bytecode,
+ const cl::list &Args,
+ const std::string &InputFile,
+ const std::string &OutputFile,
+ const std::string &SharedLib = "");
+
+ int OutputAsm(const std::string &Bytecode,
+ std::string &OutputAsmFile);
+ };
+
+ LLC* createLLCtool(const std::string &ProgramPath, std::string &Message);
+
+ AbstractInterpreter* createLLItool(const std::string &ProgramPath,
+ std::string &Message);
+
+ AbstractInterpreter* createJITtool(const std::string &ProgramPath,
+ std::string &Message);
+
+
+ #endif
From brukman at cs.uiuc.edu Mon Sep 29 17:41:01 2003
From: brukman at cs.uiuc.edu (Misha Brukman)
Date: Mon Sep 29 17:41:01 2003
Subject: [llvm-commits] CVS: llvm/support/lib/Support/SystemUtils.cpp
Message-ID: <200309292240.RAA16150@zion.cs.uiuc.edu>
Changes in directory llvm/support/lib/Support:
SystemUtils.cpp updated: 1.15 -> 1.16
---
Log message:
Fixed space issues, code alignment, tabs -> spaces.
---
Diffs of the changes:
Index: llvm/support/lib/Support/SystemUtils.cpp
diff -u llvm/support/lib/Support/SystemUtils.cpp:1.15 llvm/support/lib/Support/SystemUtils.cpp:1.16
--- llvm/support/lib/Support/SystemUtils.cpp:1.15 Wed Sep 17 14:02:48 2003
+++ llvm/support/lib/Support/SystemUtils.cpp Mon Sep 29 17:40:07 2003
@@ -36,14 +36,14 @@
return Buf.st_mode & S_IXOTH;
}
-
/// FindExecutable - Find a named executable, giving the argv[0] of program
-/// being executed. This allows us to find another LLVM tool if it is built into
-/// the same directory, but that directory is neither the current directory, nor
-/// in the PATH. If the executable cannot be found, return an empty string.
+/// being executed. This allows us to find another LLVM tool if it is built
+/// into the same directory, but that directory is neither the current
+/// directory, nor in the PATH. If the executable cannot be found, return an
+/// empty string.
///
std::string FindExecutable(const std::string &ExeName,
- const std::string &ProgramPath) {
+ const std::string &ProgramPath) {
// First check the directory that bugpoint is in. We can do this if
// BugPointPath contains at least one / character, indicating that it is a
// relative path to bugpoint itself.
@@ -93,7 +93,7 @@
int InFD = open(File.c_str(), FD == 0 ? O_RDONLY : O_WRONLY|O_CREAT, 0666);
if (InFD == -1) {
std::cerr << "Error opening file '" << File << "' for "
- << (FD == 0 ? "input" : "output") << "!\n";
+ << (FD == 0 ? "input" : "output") << "!\n";
exit(1);
}
@@ -108,9 +108,9 @@
/// It returns the return value of the program, or -1 if a timeout is detected.
///
int RunProgramWithTimeout(const std::string &ProgramPath, const char **Args,
- const std::string &StdInFile,
- const std::string &StdOutFile,
- const std::string &StdErrFile) {
+ const std::string &StdInFile,
+ const std::string &StdOutFile,
+ const std::string &StdErrFile) {
// FIXME: install sigalarm handler here for timeout...
@@ -141,12 +141,12 @@
if (errno == EINTR) {
static bool FirstTimeout = true;
if (FirstTimeout) {
- std::cout <<
+ std::cout <<
"*** Program execution timed out! This mechanism is designed to handle\n"
" programs stuck in infinite loops gracefully. The -timeout option\n"
" can be used to change the timeout threshold or disable it completely\n"
" (with -timeout=0). This message is only displayed once.\n";
- FirstTimeout = false;
+ FirstTimeout = false;
}
return -1; // Timeout detected
}
From brukman at cs.uiuc.edu Mon Sep 29 17:42:02 2003
From: brukman at cs.uiuc.edu (Misha Brukman)
Date: Mon Sep 29 17:42:02 2003
Subject: [llvm-commits] CVS: llvm/tools/bugpoint/ExecutionDriver.cpp
Message-ID: <200309292241.RAA16183@zion.cs.uiuc.edu>
Changes in directory llvm/tools/bugpoint:
ExecutionDriver.cpp updated: 1.20 -> 1.21
---
Log message:
Use the newly abstracted interface for running our tools and gcc.
---
Diffs of the changes:
Index: llvm/tools/bugpoint/ExecutionDriver.cpp
diff -u llvm/tools/bugpoint/ExecutionDriver.cpp:1.20 llvm/tools/bugpoint/ExecutionDriver.cpp:1.21
--- llvm/tools/bugpoint/ExecutionDriver.cpp:1.20 Thu Aug 28 17:14:16 2003
+++ llvm/tools/bugpoint/ExecutionDriver.cpp Mon Sep 29 17:40:52 2003
@@ -15,6 +15,7 @@
*/
#include "BugDriver.h"
+#include "Support/ToolRunner.h"
#include "Support/CommandLine.h"
#include "Support/Debug.h"
#include "Support/FileUtilities.h"
@@ -29,6 +30,7 @@
enum OutputType {
RunLLI, RunJIT, RunLLC, RunCBE
};
+
cl::opt
InterpreterSel(cl::desc("Specify how LLVM code should be executed:"),
cl::values(clEnumValN(RunLLI, "run-lli", "Execute with LLI"),
@@ -40,8 +42,6 @@
cl::opt
InputFile("input", cl::init("/dev/null"),
cl::desc("Filename to pipe in as stdin (default: /dev/null)"));
-
- enum FileType { AsmFile, CFile };
}
// Anything specified after the --args option are taken as arguments to the
@@ -50,426 +50,6 @@
InputArgv("args", cl::Positional, cl::desc("..."),
cl::ZeroOrMore);
-/// AbstractInterpreter Class - Subclasses of this class are used to execute
-/// LLVM bytecode in a variety of ways. This abstract interface hides this
-/// complexity behind a simple interface.
-///
-struct AbstractInterpreter {
-
- virtual ~AbstractInterpreter() {}
-
- /// ExecuteProgram - Run the specified bytecode file, emitting output to the
- /// specified filename. This returns the exit code of the program.
- ///
- virtual int ExecuteProgram(const std::string &Bytecode,
- const std::string &OutputFile,
- const std::string &SharedLib = "") = 0;
-};
-
-
-//===----------------------------------------------------------------------===//
-// LLI Implementation of AbstractIntepreter interface
-//
-class LLI : public AbstractInterpreter {
- std::string LLIPath; // The path to the LLI executable
-public:
- LLI(const std::string &Path) : LLIPath(Path) { }
-
- // LLI create method - Try to find the LLI executable
- static LLI *create(BugDriver *BD, std::string &Message) {
- std::string LLIPath = FindExecutable("lli", BD->getToolName());
- if (!LLIPath.empty()) {
- Message = "Found lli: " + LLIPath + "\n";
- return new LLI(LLIPath);
- }
-
- Message = "Cannot find `lli' in bugpoint executable directory or PATH!\n";
- return 0;
- }
- virtual int ExecuteProgram(const std::string &Bytecode,
- const std::string &OutputFile,
- const std::string &SharedLib = "");
-};
-
-int LLI::ExecuteProgram(const std::string &Bytecode,
- const std::string &OutputFile,
- const std::string &SharedLib) {
- if (!SharedLib.empty()) {
- std::cerr << "LLI currently does not support loading shared libraries.\n"
- << "Exiting.\n";
- exit(1);
- }
-
- std::vector LLIArgs;
- LLIArgs.push_back(LLIPath.c_str());
- LLIArgs.push_back("-abort-on-exception");
- LLIArgs.push_back("-quiet");
- LLIArgs.push_back("-force-interpreter=true");
- LLIArgs.push_back(Bytecode.c_str());
- // Add optional parameters to the running program from Argv
- for (unsigned i=0, e = InputArgv.size(); i != e; ++i)
- LLIArgs.push_back(InputArgv[i].c_str());
- LLIArgs.push_back(0);
-
- std::cout << "" << std::flush;
- DEBUG(std::cerr << "\nAbout to run:\n\t";
- for (unsigned i=0, e = LLIArgs.size(); i != e; ++i)
- std::cerr << " " << LLIArgs[i];
- std::cerr << "\n";
- );
- return RunProgramWithTimeout(LLIPath, &LLIArgs[0],
- InputFile, OutputFile, OutputFile);
-}
-
-//===----------------------------------------------------------------------===//
-// GCC abstraction
-//
-// This is not a *real* AbstractInterpreter as it does not accept bytecode
-// files, but only input acceptable to GCC, i.e. C, C++, and assembly files
-//
-class GCC {
- std::string GCCPath; // The path to the gcc executable
-public:
- GCC(const std::string &gccPath) : GCCPath(gccPath) { }
- virtual ~GCC() {}
-
- // GCC create method - Try to find the `gcc' executable
- static GCC *create(BugDriver *BD, std::string &Message) {
- std::string GCCPath = FindExecutable("gcc", BD->getToolName());
- if (GCCPath.empty()) {
- Message = "Cannot find `gcc' in bugpoint executable directory or PATH!\n";
- return 0;
- }
-
- Message = "Found gcc: " + GCCPath + "\n";
- return new GCC(GCCPath);
- }
-
- virtual int ExecuteProgram(const std::string &ProgramFile,
- FileType fileType,
- const std::string &OutputFile,
- const std::string &SharedLib = "");
-
- int MakeSharedObject(const std::string &InputFile,
- FileType fileType,
- std::string &OutputFile);
-
- void ProcessFailure(const char **Args);
-};
-
-int GCC::ExecuteProgram(const std::string &ProgramFile,
- FileType fileType,
- const std::string &OutputFile,
- const std::string &SharedLib) {
- std::string OutputBinary = getUniqueFilename("bugpoint.gcc.exe");
- std::vector GCCArgs;
-
- GCCArgs.push_back(GCCPath.c_str());
- if (!SharedLib.empty()) // Specify the shared library to link in...
- GCCArgs.push_back(SharedLib.c_str());
- GCCArgs.push_back("-x");
- if (fileType == CFile) {
- GCCArgs.push_back("c");
- GCCArgs.push_back("-fno-strict-aliasing");
- } else {
- GCCArgs.push_back("assembler");
- }
- GCCArgs.push_back(ProgramFile.c_str()); // Specify the input filename...
- GCCArgs.push_back("-o");
- GCCArgs.push_back(OutputBinary.c_str()); // Output to the right file...
- GCCArgs.push_back("-lm"); // Hard-code the math library...
- GCCArgs.push_back("-O2"); // Optimize the program a bit...
- GCCArgs.push_back(0); // NULL terminator
-
- std::cout << "" << std::flush;
- if (RunProgramWithTimeout(GCCPath, &GCCArgs[0], "/dev/null", "/dev/null",
- "/dev/null")) {
- ProcessFailure(&GCCArgs[0]);
- exit(1);
- }
-
- std::vector ProgramArgs;
- ProgramArgs.push_back(OutputBinary.c_str());
- // Add optional parameters to the running program from Argv
- for (unsigned i=0, e = InputArgv.size(); i != e; ++i)
- ProgramArgs.push_back(InputArgv[i].c_str());
- ProgramArgs.push_back(0); // NULL terminator
-
- // Now that we have a binary, run it!
- std::cout << "" << std::flush;
- DEBUG(std::cerr << "\nAbout to run:\n\t";
- for (unsigned i=0, e = ProgramArgs.size(); i != e; ++i)
- std::cerr << " " << ProgramArgs[i];
- std::cerr << "\n";
- );
- int ProgramResult = RunProgramWithTimeout(OutputBinary, &ProgramArgs[0],
- InputFile, OutputFile, OutputFile);
- removeFile(OutputBinary);
- return ProgramResult;
-}
-
-int GCC::MakeSharedObject(const std::string &InputFile,
- FileType fileType,
- std::string &OutputFile) {
- OutputFile = getUniqueFilename("./bugpoint.so");
- // Compile the C/asm file into a shared object
- const char* GCCArgs[] = {
- GCCPath.c_str(),
- "-x", (fileType == AsmFile) ? "assembler" : "c",
- "-fno-strict-aliasing",
- InputFile.c_str(), // Specify the input filename...
-#if defined(sparc) || defined(__sparc__) || defined(__sparcv9)
- "-G", // Compile a shared library, `-G' for Sparc
-#else
- "-shared", // `-shared' for Linux/X86, maybe others
-#endif
- "-o", OutputFile.c_str(), // Output to the right filename...
- "-O2", // Optimize the program a bit...
- 0
- };
-
- std::cout << "" << std::flush;
- if(RunProgramWithTimeout(GCCPath, GCCArgs, "/dev/null", "/dev/null",
- "/dev/null")) {
- ProcessFailure(GCCArgs);
- exit(1);
- }
- return 0;
-}
-
-void GCC::ProcessFailure(const char** GCCArgs) {
- std::cerr << "\n*** bugpoint error: invocation of the C compiler failed!\n";
- for (const char **Arg = GCCArgs; *Arg; ++Arg)
- std::cerr << " " << *Arg;
- std::cerr << "\n";
-
- // Rerun the compiler, capturing any error messages to print them.
- std::string ErrorFilename = getUniqueFilename("bugpoint.gcc.errors");
- RunProgramWithTimeout(GCCPath, GCCArgs, "/dev/null", ErrorFilename.c_str(),
- ErrorFilename.c_str());
-
- // Print out the error messages generated by GCC if possible...
- std::ifstream ErrorFile(ErrorFilename.c_str());
- if (ErrorFile) {
- std::copy(std::istreambuf_iterator(ErrorFile),
- std::istreambuf_iterator(),
- std::ostreambuf_iterator(std::cerr));
- ErrorFile.close();
- std::cerr << "\n";
- }
-
- removeFile(ErrorFilename);
-}
-
-//===----------------------------------------------------------------------===//
-// LLC Implementation of AbstractIntepreter interface
-//
-class LLC : public AbstractInterpreter {
- std::string LLCPath; // The path to the LLC executable
- GCC *gcc;
-public:
- LLC(const std::string &llcPath, GCC *Gcc)
- : LLCPath(llcPath), gcc(Gcc) { }
- ~LLC() { delete gcc; }
-
- // LLC create method - Try to find the LLC executable
- static LLC *create(BugDriver *BD, std::string &Message) {
- std::string LLCPath = FindExecutable("llc", BD->getToolName());
- if (LLCPath.empty()) {
- Message = "Cannot find `llc' in bugpoint executable directory or PATH!\n";
- return 0;
- }
-
- Message = "Found llc: " + LLCPath + "\n";
- GCC *gcc = GCC::create(BD, Message);
- if (!gcc) {
- std::cerr << Message << "\n";
- exit(1);
- }
- return new LLC(LLCPath, gcc);
- }
-
- virtual int ExecuteProgram(const std::string &Bytecode,
- const std::string &OutputFile,
- const std::string &SharedLib = "");
-
- int OutputAsm(const std::string &Bytecode,
- std::string &OutputAsmFile);
-};
-
-int LLC::OutputAsm(const std::string &Bytecode,
- std::string &OutputAsmFile) {
- OutputAsmFile = "bugpoint.llc.s";
- const char *LLCArgs[] = {
- LLCPath.c_str(),
- "-o", OutputAsmFile.c_str(), // Output to the Asm file
- "-f", // Overwrite as necessary...
- Bytecode.c_str(), // This is the input bytecode
- 0
- };
-
- std::cout << "" << std::flush;
- if (RunProgramWithTimeout(LLCPath, LLCArgs, "/dev/null", "/dev/null",
- "/dev/null")) {
- // If LLC failed on the bytecode, print error...
- std::cerr << "bugpoint error: `llc' failed!\n";
- removeFile(OutputAsmFile);
- return 1;
- }
-
- return 0;
-}
-
-int LLC::ExecuteProgram(const std::string &Bytecode,
- const std::string &OutputFile,
- const std::string &SharedLib) {
-
- std::string OutputAsmFile;
- if (OutputAsm(Bytecode, OutputAsmFile)) {
- std::cerr << "Could not generate asm code with `llc', exiting.\n";
- exit(1);
- }
-
- // Assuming LLC worked, compile the result with GCC and run it.
- int Result = gcc->ExecuteProgram(OutputAsmFile,AsmFile,OutputFile,SharedLib);
- removeFile(OutputAsmFile);
- return Result;
-}
-
-
-//===----------------------------------------------------------------------===//
-// JIT Implementation of AbstractIntepreter interface
-//
-class JIT : public AbstractInterpreter {
- std::string LLIPath; // The path to the LLI executable
-public:
- JIT(const std::string &Path) : LLIPath(Path) { }
-
- // JIT create method - Try to find the LLI executable
- static JIT *create(BugDriver *BD, std::string &Message) {
- std::string LLIPath = FindExecutable("lli", BD->getToolName());
- if (!LLIPath.empty()) {
- Message = "Found lli: " + LLIPath + "\n";
- return new JIT(LLIPath);
- }
-
- Message = "Cannot find `lli' in bugpoint executable directory or PATH!\n";
- return 0;
- }
- virtual int ExecuteProgram(const std::string &Bytecode,
- const std::string &OutputFile,
- const std::string &SharedLib = "");
-};
-
-int JIT::ExecuteProgram(const std::string &Bytecode,
- const std::string &OutputFile,
- const std::string &SharedLib) {
- // Construct a vector of parameters, incorporating those from the command-line
- std::vector JITArgs;
- JITArgs.push_back(LLIPath.c_str());
- JITArgs.push_back("-quiet");
- JITArgs.push_back("-force-interpreter=false");
- if (!SharedLib.empty()) {
- JITArgs.push_back("-load");
- JITArgs.push_back(SharedLib.c_str());
- }
- JITArgs.push_back(Bytecode.c_str());
- // Add optional parameters to the running program from Argv
- for (unsigned i=0, e = InputArgv.size(); i != e; ++i)
- JITArgs.push_back(InputArgv[i].c_str());
- JITArgs.push_back(0);
-
- std::cout << "" << std::flush;
- DEBUG(std::cerr << "\nAbout to run:\n\t";
- for (unsigned i=0, e = JITArgs.size(); i != e; ++i)
- std::cerr << " " << JITArgs[i];
- std::cerr << "\n";
- );
- DEBUG(std::cerr << "\nSending output to " << OutputFile << "\n");
- return RunProgramWithTimeout(LLIPath, &JITArgs[0],
- InputFile, OutputFile, OutputFile);
-}
-
-//===----------------------------------------------------------------------===//
-// CBE Implementation of AbstractIntepreter interface
-//
-class CBE : public AbstractInterpreter {
- std::string DISPath; // The path to the `llvm-dis' executable
- GCC *gcc;
-public:
- CBE(const std::string &disPath, GCC *Gcc) : DISPath(disPath), gcc(Gcc) { }
- ~CBE() { delete gcc; }
-
- // CBE create method - Try to find the 'dis' executable
- static CBE *create(BugDriver *BD, std::string &Message) {
- std::string DISPath = FindExecutable("llvm-dis", BD->getToolName());
- if (DISPath.empty()) {
- Message =
- "Cannot find `llvm-dis' in bugpoint executable directory or PATH!\n";
- return 0;
- }
-
- Message = "Found llvm-dis: " + DISPath + "\n";
-
- GCC *gcc = GCC::create(BD, Message);
- if (!gcc) {
- std::cerr << Message << "\n";
- exit(1);
- }
- return new CBE(DISPath, gcc);
- }
-
- virtual int ExecuteProgram(const std::string &Bytecode,
- const std::string &OutputFile,
- const std::string &SharedLib = "");
-
- // Sometimes we just want to go half-way and only generate the C file,
- // not necessarily compile it with GCC and run the program
- virtual int OutputC(const std::string &Bytecode,
- std::string &OutputCFile);
-
-};
-
-int CBE::OutputC(const std::string &Bytecode,
- std::string &OutputCFile) {
- OutputCFile = "bugpoint.cbe.c";
- const char *DisArgs[] = {
- DISPath.c_str(),
- "-o", OutputCFile.c_str(), // Output to the C file
- "-c", // Output to C
- "-f", // Overwrite as necessary...
- Bytecode.c_str(), // This is the input bytecode
- 0
- };
-
- std::cout << "" << std::flush;
- if (RunProgramWithTimeout(DISPath, DisArgs, "/dev/null", "/dev/null",
- "/dev/null")) {
- // If dis failed on the bytecode, print error...
- std::cerr << "bugpoint error: `llvm-dis -c' failed!\n";
- return 1;
- }
-
- return 0;
-}
-
-
-int CBE::ExecuteProgram(const std::string &Bytecode,
- const std::string &OutputFile,
- const std::string &SharedLib) {
- std::string OutputCFile;
- if (OutputC(Bytecode, OutputCFile)) {
- std::cerr << "Could not generate C code with `llvm-dis', exiting.\n";
- exit(1);
- }
-
- int Result = gcc->ExecuteProgram(OutputCFile, CFile, OutputFile, SharedLib);
- removeFile(OutputCFile);
-
- return Result;
-}
-
-
//===----------------------------------------------------------------------===//
// BugDriver method implementation
//
@@ -483,25 +63,24 @@
// FIXME: This should default to searching for the best interpreter to use on
// this platform, which would be JIT, then LLC, then CBE, then LLI.
- // Create an instance of the AbstractInterpreter interface as specified on the
- // command line
+ // Create an instance of the AbstractInterpreter interface as specified on
+ // the command line
std::string Message;
switch (InterpreterSel) {
- case RunLLI: Interpreter = LLI::create(this, Message); break;
- case RunLLC: Interpreter = LLC::create(this, Message); break;
- case RunJIT: Interpreter = JIT::create(this, Message); break;
- case RunCBE: Interpreter = CBE::create(this, Message); break;
+ case RunLLI: Interpreter = createLLItool(getToolName(), Message); break;
+ case RunLLC: Interpreter = createLLCtool(getToolName(), Message); break;
+ case RunJIT: Interpreter = createJITtool(getToolName(), Message); break;
+ case RunCBE: Interpreter = createCBEtool(getToolName(), Message); break;
default:
- Message = " Sorry, this back-end is not supported by bugpoint right now!\n";
+ Message = "Sorry, this back-end is not supported by bugpoint right now!\n";
break;
}
-
- std::cout << Message;
+ std::cerr << Message;
// Initialize auxiliary tools for debugging
- cbe = CBE::create(this, Message);
+ cbe = createCBEtool(getToolName(), Message);
if (!cbe) { std::cout << Message << "\nExiting.\n"; exit(1); }
- gcc = GCC::create(this, Message);
+ gcc = createGCCtool(getToolName(), Message);
if (!gcc) { std::cout << Message << "\nExiting.\n"; exit(1); }
// If there was an error creating the selected interpreter, quit with error.
@@ -517,7 +96,7 @@
std::string BytecodeFile,
std::string SharedObject,
AbstractInterpreter *AI) {
- assert((Interpreter || AI) &&"Interpreter should have been created already!");
+ assert((Interpreter||AI) && "Interpreter should have been created already!");
bool CreatedBytecode = false;
if (BytecodeFile.empty()) {
// Emit the program to a bytecode file...
@@ -538,8 +117,10 @@
// Actually execute the program!
int RetVal = (AI != 0) ?
- AI->ExecuteProgram(BytecodeFile, OutputFile, SharedObject) :
- Interpreter->ExecuteProgram(BytecodeFile, OutputFile, SharedObject);
+ AI->ExecuteProgram(BytecodeFile, InputArgv, InputFile, OutputFile,
+ SharedObject) :
+ Interpreter->ExecuteProgram(BytecodeFile, InputArgv,
+ InputFile, OutputFile, SharedObject);
// Remove the temporary bytecode file.
if (CreatedBytecode) removeFile(BytecodeFile);
@@ -564,7 +145,7 @@
#if 0 /* This is an alternative, as yet unimplemented */
// Using LLC
- LLC *llc = LLC::create(this, Message);
+ LLC *llc = createLLCtool(Message);
if (llc->OutputAsm(BytecodeFile, OutputFile)) {
std::cerr << "Could not generate asm code with `llc', exiting.\n";
exit(1);
From lattner at cs.uiuc.edu Mon Sep 29 18:14:01 2003
From: lattner at cs.uiuc.edu (Chris Lattner)
Date: Mon Sep 29 18:14:01 2003
Subject: [llvm-commits] CVS: llvm/test/Programs/SingleSource/Regression/C++/2003-09-29-NonPODsByValue.cpp
Message-ID: <200309292313.SAA30794@neo.cs.uiuc.edu>
Changes in directory llvm/test/Programs/SingleSource/Regression/C++:
2003-09-29-NonPODsByValue.cpp added (r1.1)
---
Log message:
New testcase fixed by C++ front-end update
---
Diffs of the changes:
Index: llvm/test/Programs/SingleSource/Regression/C++/2003-09-29-NonPODsByValue.cpp
diff -c /dev/null llvm/test/Programs/SingleSource/Regression/C++/2003-09-29-NonPODsByValue.cpp:1.1
*** /dev/null Mon Sep 29 18:13:11 2003
--- llvm/test/Programs/SingleSource/Regression/C++/2003-09-29-NonPODsByValue.cpp Mon Sep 29 18:13:01 2003
***************
*** 0 ****
--- 1,18 ----
+ #include
+
+ struct C {
+ unsigned bv;
+ ~C() {}
+ };
+
+ static unsigned test(C b) {
+ return b.bv;
+ }
+
+
+ int main() {
+ C c;
+ c.bv = 1234;
+ printf("%d\n", test(c));
+ return 0;
+ }
From lattner at cs.uiuc.edu Mon Sep 29 22:25:01 2003
From: lattner at cs.uiuc.edu (Chris Lattner)
Date: Mon Sep 29 22:25:01 2003
Subject: [llvm-commits] CVS: llvm/tools/gccld/GenerateCode.cpp Linker.cpp
Message-ID: <200309300324.WAA29352@apoc.cs.uiuc.edu>
Changes in directory llvm/tools/gccld:
GenerateCode.cpp updated: 1.2 -> 1.3
Linker.cpp updated: 1.3 -> 1.4
---
Log message:
Update file headers for renamed files.
---
Diffs of the changes:
Index: llvm/tools/gccld/GenerateCode.cpp
diff -u llvm/tools/gccld/GenerateCode.cpp:1.2 llvm/tools/gccld/GenerateCode.cpp:1.3
--- llvm/tools/gccld/GenerateCode.cpp:1.2 Fri Sep 19 15:24:23 2003
+++ llvm/tools/gccld/GenerateCode.cpp Mon Sep 29 22:24:28 2003
@@ -1,4 +1,4 @@
-//===- gencode.cpp - Functions for generating executable files -----------===//
+//===- GenerateCode.cpp - Functions for generating executable files ------===//
//
// This file contains functions for generating executable files once linking
// has finished. This includes generating a shell script to run the JIT or
Index: llvm/tools/gccld/Linker.cpp
diff -u llvm/tools/gccld/Linker.cpp:1.3 llvm/tools/gccld/Linker.cpp:1.4
--- llvm/tools/gccld/Linker.cpp:1.3 Mon Sep 29 17:26:24 2003
+++ llvm/tools/gccld/Linker.cpp Mon Sep 29 22:24:28 2003
@@ -1,15 +1,7 @@
-//===- gccld.cpp - LLVM 'ld' compatible linker ----------------------------===//
+//===- Linker.cpp - Link together LLVM objects and libraries --------------===//
//
-// This utility is intended to be compatible with GCC, and follows standard
-// system 'ld' conventions. As such, the default output file is ./a.out.
-// Additionally, this program outputs a shell script that is used to invoke LLI
-// to execute the program. In this manner, the generated executable (a.out for
-// example), is directly executable, whereas the bytecode file actually lives in
-// the a.out.bc file generated by this program. Also, Force is on by default.
-//
-// Note that if someone (or a script) deletes the executable program generated,
-// the .bc file will be left around. Considering that this is a temporary hack,
-// I'm not too worried about this.
+// This file contains routines to handle linking together LLVM bytecode files,
+// and to handle annoying things like static libraries.
//
//===----------------------------------------------------------------------===//
From criswell at cs.uiuc.edu Tue Sep 30 08:53:01 2003
From: criswell at cs.uiuc.edu (John Criswell)
Date: Tue Sep 30 08:53:01 2003
Subject: [llvm-commits] CVS: llvm/autoconf/configure.ac
Message-ID: <200309301352.IAA10518@choi.cs.uiuc.edu>
Changes in directory llvm/autoconf:
configure.ac updated: 1.26 -> 1.27
---
Log message:
Removed the utils/Makefile file from being copied to the object root tree.
---
Diffs of the changes:
Index: llvm/autoconf/configure.ac
diff -u llvm/autoconf/configure.ac:1.26 llvm/autoconf/configure.ac:1.27
--- llvm/autoconf/configure.ac:1.26 Mon Sep 29 16:35:32 2003
+++ llvm/autoconf/configure.ac Tue Sep 30 08:52:11 2003
@@ -193,7 +193,6 @@
AC_CONFIG_MAKEFILE(tools/llvm-dis/Makefile)
AC_CONFIG_MAKEFILE(tools/llvm-link/Makefile)
AC_CONFIG_MAKEFILE(tools/opt/Makefile)
-AC_CONFIG_MAKEFILE(utils/Makefile)
AC_CONFIG_MAKEFILE(www/docs/Makefile)
AC_CONFIG_MAKEFILE(projects/Makefile)
AC_CONFIG_MAKEFILE(projects/sample/Makefile)
From criswell at cs.uiuc.edu Tue Sep 30 08:53:07 2003
From: criswell at cs.uiuc.edu (John Criswell)
Date: Tue Sep 30 08:53:07 2003
Subject: [llvm-commits] CVS: llvm/configure
Message-ID: <200309301352.IAA10511@choi.cs.uiuc.edu>
Changes in directory llvm:
configure updated: 1.34 -> 1.35
---
Log message:
Removed the utils/Makefile file from being copied to the object root tree.
---
Diffs of the changes:
Index: llvm/configure
diff -u llvm/configure:1.34 llvm/configure:1.35
--- llvm/configure:1.34 Mon Sep 29 16:35:30 2003
+++ llvm/configure Tue Sep 30 08:52:09 2003
@@ -2004,9 +2004,6 @@
ac_config_commands="$ac_config_commands tools/opt/Makefile"
- ac_config_commands="$ac_config_commands utils/Makefile"
-
-
ac_config_commands="$ac_config_commands www/docs/Makefile"
@@ -4414,7 +4411,7 @@
;;
*-*-irix6*)
# Find out which ABI we are using.
- echo '#line 4417 "configure"' > conftest.$ac_ext
+ echo '#line 4414 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
@@ -5255,7 +5252,7 @@
# Provide some information about the compiler.
-echo "$as_me:5258:" \
+echo "$as_me:5255:" \
"checking for Fortran 77 compiler version" >&5
ac_compiler=`set X $ac_compile; echo $2`
{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5
@@ -6264,11 +6261,11 @@
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:6267: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:6264: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:6271: \$? = $ac_status" >&5
+ echo "$as_me:6268: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings
@@ -6496,11 +6493,11 @@
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:6499: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:6496: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:6503: \$? = $ac_status" >&5
+ echo "$as_me:6500: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings
@@ -6563,11 +6560,11 @@
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:6566: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:6563: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:6570: \$? = $ac_status" >&5
+ echo "$as_me:6567: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -8575,7 +8572,7 @@
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext < conftest.$ac_ext <&5)
+ (eval echo "\"\$as_me:10809: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:10816: \$? = $ac_status" >&5
+ echo "$as_me:10813: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings
@@ -10876,11 +10873,11 @@
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:10879: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:10876: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:10883: \$? = $ac_status" >&5
+ echo "$as_me:10880: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -12119,7 +12116,7 @@
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext < conftest.$ac_ext <&5)
+ (eval echo "\"\$as_me:13039: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:13046: \$? = $ac_status" >&5
+ echo "$as_me:13043: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings
@@ -13106,11 +13103,11 @@
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:13109: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:13106: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:13113: \$? = $ac_status" >&5
+ echo "$as_me:13110: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -15050,11 +15047,11 @@
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:15053: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:15050: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:15057: \$? = $ac_status" >&5
+ echo "$as_me:15054: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings
@@ -15282,11 +15279,11 @@
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:15285: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:15282: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:15289: \$? = $ac_status" >&5
+ echo "$as_me:15286: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings
@@ -15349,11 +15346,11 @@
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:15352: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:15349: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:15356: \$? = $ac_status" >&5
+ echo "$as_me:15353: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -17361,7 +17358,7 @@
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext < conftest.$ac_ext <
Changes in directory llvm/tools/gccld:
Linker.cpp updated: 1.4 -> 1.5
gccld.cpp updated: 1.52 -> 1.53
---
Log message:
1. Use better error messages in LinkFiles().
2. I think the caller of LinkFiles() should not ignore a true return value.
(If you have a good reason why it ought to, feel free to revert
this. It's just something that's been bugging me for a while.)
---
Diffs of the changes:
Index: llvm/tools/gccld/Linker.cpp
diff -u llvm/tools/gccld/Linker.cpp:1.4 llvm/tools/gccld/Linker.cpp:1.5
--- llvm/tools/gccld/Linker.cpp:1.4 Mon Sep 29 22:24:28 2003
+++ llvm/tools/gccld/Linker.cpp Tue Sep 30 09:03:48 2003
@@ -401,13 +401,13 @@
Pathname = Files[i];
} else {
if (SearchPath == NULL) {
- std::cerr << "Cannot find " << Files[i];
+ std::cerr << "Cannot find linker input file '" << Files[i] << "'";
return true;
}
Pathname = std::string(SearchPath)+"/"+Files[i];
if (!FileExists(Pathname)) {
- std::cerr << "Cannot find " << Files[i];
+ std::cerr << "Cannot find linker input file '" << Files[i] << "'";
return true;
}
}
Index: llvm/tools/gccld/gccld.cpp
diff -u llvm/tools/gccld/gccld.cpp:1.52 llvm/tools/gccld/gccld.cpp:1.53
--- llvm/tools/gccld/gccld.cpp:1.52 Mon Sep 22 15:21:34 2003
+++ llvm/tools/gccld/gccld.cpp Tue Sep 30 09:03:48 2003
@@ -256,7 +256,8 @@
Libraries.end());
// Link in all of the files
- LinkFiles(argv[0], Composite.get(), InputFilenames, Verbose);
+ if (LinkFiles(argv[0], Composite.get(), InputFilenames, Verbose))
+ return 1; // Error already printed
LinkLibraries(argv[0], Composite.get(), Libraries, LibPaths, Verbose, Native);
// Link in all of the libraries next...
From criswell at cs.uiuc.edu Tue Sep 30 10:32:02 2003
From: criswell at cs.uiuc.edu (John Criswell)
Date: Tue Sep 30 10:32:02 2003
Subject: [llvm-commits] CVS: reopt/autoconf/aclocal.m4 configure.ac
Message-ID: <200309301531.KAA04753@choi.cs.uiuc.edu>
Changes in directory reopt/autoconf:
aclocal.m4 updated: 1.1.1.1 -> 1.2
configure.ac updated: 1.2 -> 1.3
---
Log message:
Added the ability to configure reopt with separate source and object root
directories.
---
Diffs of the changes:
Index: reopt/autoconf/aclocal.m4
diff -u reopt/autoconf/aclocal.m4:1.1.1.1 reopt/autoconf/aclocal.m4:1.2
--- reopt/autoconf/aclocal.m4:1.1.1.1 Mon Aug 11 16:29:15 2003
+++ reopt/autoconf/aclocal.m4 Tue Sep 30 10:31:12 2003
@@ -6156,3 +6156,13 @@
fi
])
+#
+# Configure a Makefile without clobbering it if it exists and is not out of
+# date. This is modified from:
+# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_have_ext_slist.html
+#
+AC_DEFUN([AC_CONFIG_MAKEFILE],
+[AC_CONFIG_COMMANDS($1,${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/$1 $1,${srcdir}/autoconf/mkinstalldirs `dirname $1`)
+])
+
+
Index: reopt/autoconf/configure.ac
diff -u reopt/autoconf/configure.ac:1.2 reopt/autoconf/configure.ac:1.3
--- reopt/autoconf/configure.ac:1.2 Wed Sep 10 10:05:14 2003
+++ reopt/autoconf/configure.ac Tue Sep 30 10:31:12 2003
@@ -21,7 +21,24 @@
AC_CONFIG_AUX_DIR([autoconf])
dnl Configure a header file
-dnl AC_CONFIG_HEADERS(include/Config/config.h)
+
+dnl Configure Makefiles
+AC_CONFIG_MAKEFILE(Makefile)
+AC_CONFIG_MAKEFILE(lib/Makefile)
+AC_CONFIG_MAKEFILE(lib/BinInterface/Makefile)
+AC_CONFIG_MAKEFILE(lib/Inst/Makefile)
+AC_CONFIG_MAKEFILE(lib/Inst/lib/Makefile)
+AC_CONFIG_MAKEFILE(lib/Inst/lib/Phase1/Makefile)
+AC_CONFIG_MAKEFILE(lib/Inst/rtl/Makefile)
+AC_CONFIG_MAKEFILE(lib/LightWtProfiling/Makefile)
+AC_CONFIG_MAKEFILE(lib/Mapping/Makefile)
+AC_CONFIG_MAKEFILE(lib/ScratchMemory/Makefile)
+AC_CONFIG_MAKEFILE(lib/TraceCache/Makefile)
+AC_CONFIG_MAKEFILE(lib/Trigger/Makefile)
+AC_CONFIG_MAKEFILE(test/Makefile)
+AC_CONFIG_MAKEFILE(test/TEST.reopt.Makefile)
+AC_CONFIG_MAKEFILE(tools/Makefile)
+AC_CONFIG_MAKEFILE(tools/mkexcl/Makefile)
dnl **************************************************************************
dnl * Determine which system we are building on
@@ -69,7 +86,7 @@
AC_ARG_WITH(llvmsrc,AC_HELP_STRING([--with-llvmsrc],[Location of LLVM Source Code]),AC_SUBST(LLVM_SRC,[$withval]),AC_SUBST(LLVM_SRC,[/home/vadve/${USER}/llvm]))
dnl Location of LLVM object code
-AC_ARG_WITH(llvmobj,AC_HELP_STRING([--with-llvmobj],[Location of LLVM Object Code]),AC_SUBST(LLVM_OBJ,[$withval]),AC_SUBST(LLVM_OBJ,[/home/vadve/${USER}/llvm]))
+AC_ARG_WITH(llvmobj,AC_HELP_STRING([--with-llvmobj],[Location of LLVM Object Code]),AC_SUBST(LLVM_OBJ,[$withval]),AC_SUBST(LLVM_OBJ,[`cd ../..; pwd`]))
dnl **************************************************************************
dnl * Create the output files
From criswell at cs.uiuc.edu Tue Sep 30 10:32:06 2003
From: criswell at cs.uiuc.edu (John Criswell)
Date: Tue Sep 30 10:32:06 2003
Subject: [llvm-commits] CVS: reopt/configure
Message-ID: <200309301531.KAA04743@choi.cs.uiuc.edu>
Changes in directory reopt:
configure updated: 1.3 -> 1.4
---
Log message:
Added the ability to configure reopt with separate source and object root
directories.
---
Diffs of the changes:
Index: reopt/configure
diff -u reopt/configure:1.3 reopt/configure:1.4
--- reopt/configure:1.3 Wed Sep 10 10:05:13 2003
+++ reopt/configure Tue Sep 30 10:31:10 2003
@@ -1231,6 +1231,55 @@
+ ac_config_commands="$ac_config_commands Makefile"
+
+
+ ac_config_commands="$ac_config_commands lib/Makefile"
+
+
+ ac_config_commands="$ac_config_commands lib/BinInterface/Makefile"
+
+
+ ac_config_commands="$ac_config_commands lib/Inst/Makefile"
+
+
+ ac_config_commands="$ac_config_commands lib/Inst/lib/Makefile"
+
+
+ ac_config_commands="$ac_config_commands lib/Inst/lib/Phase1/Makefile"
+
+
+ ac_config_commands="$ac_config_commands lib/Inst/rtl/Makefile"
+
+
+ ac_config_commands="$ac_config_commands lib/LightWtProfiling/Makefile"
+
+
+ ac_config_commands="$ac_config_commands lib/Mapping/Makefile"
+
+
+ ac_config_commands="$ac_config_commands lib/ScratchMemory/Makefile"
+
+
+ ac_config_commands="$ac_config_commands lib/TraceCache/Makefile"
+
+
+ ac_config_commands="$ac_config_commands lib/Trigger/Makefile"
+
+
+ ac_config_commands="$ac_config_commands test/Makefile"
+
+
+ ac_config_commands="$ac_config_commands test/TEST.reopt.Makefile"
+
+
+ ac_config_commands="$ac_config_commands tools/Makefile"
+
+
+ ac_config_commands="$ac_config_commands tools/mkexcl/Makefile"
+
+
+
@@ -1259,7 +1308,7 @@
LLVM_OBJ=$withval
else
- LLVM_OBJ=/home/vadve/${USER}/llvm
+ LLVM_OBJ=`cd ../..; pwd`
fi;
@@ -1705,6 +1754,9 @@
Configuration files:
$config_files
+Configuration commands:
+$config_commands
+
Report bugs to ."
_ACEOF
@@ -1804,7 +1856,29 @@
_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+#
+# INIT-COMMANDS section.
+#
+
+${srcdir}/autoconf/mkinstalldirs `dirname Makefile`
+${srcdir}/autoconf/mkinstalldirs `dirname lib/Makefile`
+${srcdir}/autoconf/mkinstalldirs `dirname lib/BinInterface/Makefile`
+${srcdir}/autoconf/mkinstalldirs `dirname lib/Inst/Makefile`
+${srcdir}/autoconf/mkinstalldirs `dirname lib/Inst/lib/Makefile`
+${srcdir}/autoconf/mkinstalldirs `dirname lib/Inst/lib/Phase1/Makefile`
+${srcdir}/autoconf/mkinstalldirs `dirname lib/Inst/rtl/Makefile`
+${srcdir}/autoconf/mkinstalldirs `dirname lib/LightWtProfiling/Makefile`
+${srcdir}/autoconf/mkinstalldirs `dirname lib/Mapping/Makefile`
+${srcdir}/autoconf/mkinstalldirs `dirname lib/ScratchMemory/Makefile`
+${srcdir}/autoconf/mkinstalldirs `dirname lib/TraceCache/Makefile`
+${srcdir}/autoconf/mkinstalldirs `dirname lib/Trigger/Makefile`
+${srcdir}/autoconf/mkinstalldirs `dirname test/Makefile`
+${srcdir}/autoconf/mkinstalldirs `dirname test/TEST.reopt.Makefile`
+${srcdir}/autoconf/mkinstalldirs `dirname tools/Makefile`
+${srcdir}/autoconf/mkinstalldirs `dirname tools/mkexcl/Makefile`
+_ACEOF
@@ -1814,6 +1888,22 @@
case "$ac_config_target" in
# Handling of arguments.
"Makefile.common" ) CONFIG_FILES="$CONFIG_FILES Makefile.common" ;;
+ "Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS Makefile" ;;
+ "lib/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS lib/Makefile" ;;
+ "lib/BinInterface/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS lib/BinInterface/Makefile" ;;
+ "lib/Inst/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS lib/Inst/Makefile" ;;
+ "lib/Inst/lib/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS lib/Inst/lib/Makefile" ;;
+ "lib/Inst/lib/Phase1/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS lib/Inst/lib/Phase1/Makefile" ;;
+ "lib/Inst/rtl/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS lib/Inst/rtl/Makefile" ;;
+ "lib/LightWtProfiling/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS lib/LightWtProfiling/Makefile" ;;
+ "lib/Mapping/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS lib/Mapping/Makefile" ;;
+ "lib/ScratchMemory/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS lib/ScratchMemory/Makefile" ;;
+ "lib/TraceCache/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS lib/TraceCache/Makefile" ;;
+ "lib/Trigger/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS lib/Trigger/Makefile" ;;
+ "test/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS test/Makefile" ;;
+ "test/TEST.reopt.Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS test/TEST.reopt.Makefile" ;;
+ "tools/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS tools/Makefile" ;;
+ "tools/mkexcl/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS tools/mkexcl/Makefile" ;;
*) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
{ (exit 1); exit 1; }; };;
@@ -1826,6 +1916,7 @@
# bizarre bug on SunOS 4.1.3.
if $ac_need_defaults; then
test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+ test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
fi
# Have a temporary directory for convenience. Make it in the build tree
@@ -2099,6 +2190,81 @@
rm -f $tmp/out
fi
+done
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+#
+# CONFIG_COMMANDS section.
+#
+for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
+ ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
+ ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
+ ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
+$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_dest" : 'X\(//\)[^/]' \| \
+ X"$ac_dest" : 'X\(//\)$' \| \
+ X"$ac_dest" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$ac_dest" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ ac_builddir=.
+
+if test "$ac_dir" != .; then
+ ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+ # A "../" for each directory in $ac_dir_suffix.
+ ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+ ac_dir_suffix= ac_top_builddir=
+fi
+
+case $srcdir in
+ .) # No --srcdir option. We are building in place.
+ ac_srcdir=.
+ if test -z "$ac_top_builddir"; then
+ ac_top_srcdir=.
+ else
+ ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+ fi ;;
+ [\\/]* | ?:[\\/]* ) # Absolute path.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir ;;
+ *) # Relative path.
+ ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
+# absolute.
+ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
+ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
+ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
+ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
+
+
+ { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
+echo "$as_me: executing $ac_dest commands" >&6;}
+ case $ac_dest in
+ Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/Makefile Makefile ;;
+ lib/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/lib/Makefile lib/Makefile ;;
+ lib/BinInterface/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/lib/BinInterface/Makefile lib/BinInterface/Makefile ;;
+ lib/Inst/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/lib/Inst/Makefile lib/Inst/Makefile ;;
+ lib/Inst/lib/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/lib/Inst/lib/Makefile lib/Inst/lib/Makefile ;;
+ lib/Inst/lib/Phase1/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/lib/Inst/lib/Phase1/Makefile lib/Inst/lib/Phase1/Makefile ;;
+ lib/Inst/rtl/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/lib/Inst/rtl/Makefile lib/Inst/rtl/Makefile ;;
+ lib/LightWtProfiling/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/lib/LightWtProfiling/Makefile lib/LightWtProfiling/Makefile ;;
+ lib/Mapping/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/lib/Mapping/Makefile lib/Mapping/Makefile ;;
+ lib/ScratchMemory/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/lib/ScratchMemory/Makefile lib/ScratchMemory/Makefile ;;
+ lib/TraceCache/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/lib/TraceCache/Makefile lib/TraceCache/Makefile ;;
+ lib/Trigger/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/lib/Trigger/Makefile lib/Trigger/Makefile ;;
+ test/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/test/Makefile test/Makefile ;;
+ test/TEST.reopt.Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/test/TEST.reopt.Makefile test/TEST.reopt.Makefile ;;
+ tools/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/tools/Makefile tools/Makefile ;;
+ tools/mkexcl/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/tools/mkexcl/Makefile tools/mkexcl/Makefile ;;
+ esac
done
_ACEOF
From lattner at cs.uiuc.edu Tue Sep 30 10:41:02 2003
From: lattner at cs.uiuc.edu (Chris Lattner)
Date: Tue Sep 30 10:41:02 2003
Subject: [llvm-commits] CVS: llvm/test/Programs/SingleSource/Regression/C++/CompileFail/2003-09-30-NestedFunctionDecl.cpp
Message-ID: <200309301540.KAA00566@apoc.cs.uiuc.edu>
Changes in directory llvm/test/Programs/SingleSource/Regression/C++/CompileFail:
2003-09-30-NestedFunctionDecl.cpp added (r1.1)
---
Log message:
New fixed bug, distilled from 252.eon
---
Diffs of the changes:
Index: llvm/test/Programs/SingleSource/Regression/C++/CompileFail/2003-09-30-NestedFunctionDecl.cpp
diff -c /dev/null llvm/test/Programs/SingleSource/Regression/C++/CompileFail/2003-09-30-NestedFunctionDecl.cpp:1.1
*** /dev/null Tue Sep 30 10:40:35 2003
--- llvm/test/Programs/SingleSource/Regression/C++/CompileFail/2003-09-30-NestedFunctionDecl.cpp Tue Sep 30 10:40:25 2003
***************
*** 0 ****
--- 1,10 ----
+ // The C++ front-end thinks the two foo's are different, the LLVM emitter
+ // thinks they are the same. The disconnect causes problems.
+
+ void foo() { }
+
+ void bar() {
+ void foo();
+
+ foo();
+ }
From criswell at cs.uiuc.edu Tue Sep 30 10:56:01 2003
From: criswell at cs.uiuc.edu (John Criswell)
Date: Tue Sep 30 10:56:01 2003
Subject: [llvm-commits] CVS: llvm/autoconf/configure.ac
Message-ID: <200309301555.KAA03103@choi.cs.uiuc.edu>
Changes in directory llvm/autoconf:
configure.ac updated: 1.27 -> 1.28
---
Log message:
Added the ability to conditionally configure the reopt project if it is checked
out under projects/reopt.
---
Diffs of the changes:
Index: llvm/autoconf/configure.ac
diff -u llvm/autoconf/configure.ac:1.27 llvm/autoconf/configure.ac:1.28
--- llvm/autoconf/configure.ac:1.27 Tue Sep 30 08:52:11 2003
+++ llvm/autoconf/configure.ac Tue Sep 30 10:55:44 2003
@@ -30,6 +30,11 @@
fi
fi
+if test -d ${srcdir}/projects/reopt
+then
+ AC_CONFIG_SUBDIRS(projects/reopt)
+fi
+
dnl Configure a header file
AC_CONFIG_HEADERS(include/Config/config.h)
AC_CONFIG_MAKEFILE(Makefile)
From criswell at cs.uiuc.edu Tue Sep 30 10:56:05 2003
From: criswell at cs.uiuc.edu (John Criswell)
Date: Tue Sep 30 10:56:05 2003
Subject: [llvm-commits] CVS: llvm/configure
Message-ID: <200309301555.KAA03096@choi.cs.uiuc.edu>
Changes in directory llvm:
configure updated: 1.35 -> 1.36
---
Log message:
Added the ability to conditionally configure the reopt project if it is checked
out under projects/reopt.
---
Diffs of the changes:
Index: llvm/configure
diff -u llvm/configure:1.35 llvm/configure:1.36
--- llvm/configure:1.35 Tue Sep 30 08:52:09 2003
+++ llvm/configure Tue Sep 30 10:55:42 2003
@@ -426,6 +426,7 @@
PACKAGE_STRING='[LLVM] [1.0]'
PACKAGE_BUGREPORT='llvmbugs at cs.uiuc.edu'
+ac_subdirs_all="$ac_subdirs_all projects/reopt"
# Factoring default headers for most tests.
ac_includes_default="\
#include
@@ -464,7 +465,7 @@
#endif"
ac_unique_file=""Makefile.config.in""
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os OS LLVMGCCDIR ARCH CXX CXXFLAGS LDFLAGS CPPFLAGS ac_ct_CXX EXEEXT OBJEXT CC CFLAGS ac_ct_CC CPP ifGNUmake LEX LEXLIB LEX_OUTPUT_ROOT YACC EGREP LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB STRIP ac_ct_STRIP CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL RPWD SED RM MKDIR DATE MV DOT ETAGS PURIFY PYTHON QMTEST ALLOCA LIBOBJS MMAP_FILE ENABLE_PURIFY ENABLE_OPTIMIZED USE_SPEC UPB DISABLE_LLC_DIFFS JIT SPEC_ROOT BCR PAPIDIR LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS subdirs INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os OS LLVMGCCDIR ARCH CXX CXXFLAGS LDFLAGS CPPFLAGS ac_ct_CXX EXEEXT OBJEXT CC CFLAGS ac_ct_CC CPP ifGNUmake LEX LEXLIB LEX_OUTPUT_ROOT YACC EGREP LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB STRIP ac_ct_STRIP CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL RPWD SED RM MKDIR DATE MV DOT ETAGS PURIFY PYTHON QMTEST ALLOCA LIBOBJS MMAP_FILE ENABLE_PURIFY ENABLE_OPTIMIZED USE_SPEC UPB DISABLE_LLC_DIFFS JIT SPEC_ROOT BCR PAPIDIR LTLIBOBJS'
ac_subst_files=''
# Initialize some variables set by options.
@@ -1519,6 +1520,14 @@
fi
fi
+if test -d ${srcdir}/projects/reopt
+then
+
+
+subdirs="$subdirs projects/reopt"
+
+fi
+
ac_config_headers="$ac_config_headers include/Config/config.h"
ac_config_commands="$ac_config_commands Makefile"
@@ -4411,7 +4420,7 @@
;;
*-*-irix6*)
# Find out which ABI we are using.
- echo '#line 4414 "configure"' > conftest.$ac_ext
+ echo '#line 4423 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
@@ -5252,7 +5261,7 @@
# Provide some information about the compiler.
-echo "$as_me:5255:" \
+echo "$as_me:5264:" \
"checking for Fortran 77 compiler version" >&5
ac_compiler=`set X $ac_compile; echo $2`
{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5
@@ -6261,11 +6270,11 @@
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:6264: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:6273: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:6268: \$? = $ac_status" >&5
+ echo "$as_me:6277: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings
@@ -6493,11 +6502,11 @@
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:6496: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:6505: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:6500: \$? = $ac_status" >&5
+ echo "$as_me:6509: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings
@@ -6560,11 +6569,11 @@
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:6563: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:6572: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:6567: \$? = $ac_status" >&5
+ echo "$as_me:6576: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -8572,7 +8581,7 @@
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext < conftest.$ac_ext <&5)
+ (eval echo "\"\$as_me:10818: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:10813: \$? = $ac_status" >&5
+ echo "$as_me:10822: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings
@@ -10873,11 +10882,11 @@
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:10876: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:10885: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:10880: \$? = $ac_status" >&5
+ echo "$as_me:10889: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -12116,7 +12125,7 @@
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext < conftest.$ac_ext <&5)
+ (eval echo "\"\$as_me:13048: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:13043: \$? = $ac_status" >&5
+ echo "$as_me:13052: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings
@@ -13103,11 +13112,11 @@
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:13106: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:13115: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:13110: \$? = $ac_status" >&5
+ echo "$as_me:13119: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -15047,11 +15056,11 @@
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:15050: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:15059: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:15054: \$? = $ac_status" >&5
+ echo "$as_me:15063: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings
@@ -15279,11 +15288,11 @@
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:15282: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:15291: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:15286: \$? = $ac_status" >&5
+ echo "$as_me:15295: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings
@@ -15346,11 +15355,11 @@
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:15349: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:15358: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:15353: \$? = $ac_status" >&5
+ echo "$as_me:15362: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -17358,7 +17367,7 @@
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext < conftest.$ac_ext <&5
+echo "$as_me: configuring in $ac_dir" >&6;}
+ { if $as_mkdir_p; then
+ mkdir -p "$ac_dir"
+ else
+ as_dir="$ac_dir"
+ as_dirs=
+ while test ! -d "$as_dir"; do
+ as_dirs="$as_dir $as_dirs"
+ as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ done
+ test ! -n "$as_dirs" || mkdir $as_dirs
+ fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+ { (exit 1); exit 1; }; }; }
+
+ ac_builddir=.
+
+if test "$ac_dir" != .; then
+ ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+ # A "../" for each directory in $ac_dir_suffix.
+ ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+ ac_dir_suffix= ac_top_builddir=
+fi
+
+case $srcdir in
+ .) # No --srcdir option. We are building in place.
+ ac_srcdir=.
+ if test -z "$ac_top_builddir"; then
+ ac_top_srcdir=.
+ else
+ ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+ fi ;;
+ [\\/]* | ?:[\\/]* ) # Absolute path.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir ;;
+ *) # Relative path.
+ ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
+# absolute.
+ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
+ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
+ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
+ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
+
+
+ cd $ac_dir
+
+ # Check for guested configure; otherwise get Cygnus style configure.
+ if test -f $ac_srcdir/configure.gnu; then
+ ac_sub_configure="$SHELL '$ac_srcdir/configure.gnu'"
+ elif test -f $ac_srcdir/configure; then
+ ac_sub_configure="$SHELL '$ac_srcdir/configure'"
+ elif test -f $ac_srcdir/configure.in; then
+ ac_sub_configure=$ac_configure
+ else
+ { echo "$as_me:$LINENO: WARNING: no configuration information is in $ac_dir" >&5
+echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2;}
+ ac_sub_configure=
+ fi
+
+ # The recursion is here.
+ if test -n "$ac_sub_configure"; then
+ # Make the cache file name correct relative to the subdirectory.
+ case $cache_file in
+ [\\/]* | ?:[\\/]* ) ac_sub_cache_file=$cache_file ;;
+ *) # Relative path.
+ ac_sub_cache_file=$ac_top_builddir$cache_file ;;
+ esac
+
+ { echo "$as_me:$LINENO: running $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&5
+echo "$as_me: running $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&6;}
+ # The eval makes quoting arguments work.
+ eval $ac_sub_configure $ac_sub_configure_args \
+ --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir ||
+ { { echo "$as_me:$LINENO: error: $ac_sub_configure failed for $ac_dir" >&5
+echo "$as_me: error: $ac_sub_configure failed for $ac_dir" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+
+ cd $ac_popdir
+ done
fi
From lattner at cs.uiuc.edu Tue Sep 30 11:08:02 2003
From: lattner at cs.uiuc.edu (Chris Lattner)
Date: Tue Sep 30 11:08:02 2003
Subject: [llvm-commits] CVS: llvm/test/Programs/External/SPEC/CFP2000/177.mesa/
Message-ID: <200309301607.LAA02502@apoc.cs.uiuc.edu>
Changes in directory llvm/test/Programs/External/SPEC/CFP2000/177.mesa:
---
Log message:
Directory /home/vadve/vadve/Research/DynOpt/CVSRepository/llvm/test/Programs/External/SPEC/CFP2000/177.mesa added to the repository
---
Diffs of the changes:
From lattner at cs.uiuc.edu Tue Sep 30 11:09:04 2003
From: lattner at cs.uiuc.edu (Chris Lattner)
Date: Tue Sep 30 11:09:04 2003
Subject: [llvm-commits] CVS: llvm/test/Programs/External/SPEC/CFP2000/177.mesa/Makefile
Message-ID: <200309301608.LAA02548@apoc.cs.uiuc.edu>
Changes in directory llvm/test/Programs/External/SPEC/CFP2000/177.mesa:
Makefile added (r1.1)
---
Log message:
initial checkin of mesa makefile
---
Diffs of the changes:
Index: llvm/test/Programs/External/SPEC/CFP2000/177.mesa/Makefile
diff -c /dev/null llvm/test/Programs/External/SPEC/CFP2000/177.mesa/Makefile:1.1
*** /dev/null Tue Sep 30 11:08:21 2003
--- llvm/test/Programs/External/SPEC/CFP2000/177.mesa/Makefile Tue Sep 30 11:08:11 2003
***************
*** 0 ****
--- 1,12 ----
+ LEVEL = ../../../../../..
+ ifdef LARGE_PROBLEM_SIZE
+ RUN_OPTIONS := -frames 500
+ else
+ RUN_OPTIONS := -frames 10
+ endif
+
+ RUN_OPTIONS += -meshfile mesa.in -ppmfile mesa.ppm
+ #STDIN_FILENAME = ammp.in
+ #STDOUT_FILENAME = ammp.out
+ CPPFLAGS =
+ include ../../Makefile.spec
From criswell at cs.uiuc.edu Tue Sep 30 11:18:01 2003
From: criswell at cs.uiuc.edu (John Criswell)
Date: Tue Sep 30 11:18:01 2003
Subject: [llvm-commits] CVS: reopt/autoconf/configure.ac
Message-ID: <200309301617.LAA14492@choi.cs.uiuc.edu>
Changes in directory reopt/autoconf:
configure.ac updated: 1.3 -> 1.4
---
Log message:
Added dynamic configuration of default LLVM source root directory.
---
Diffs of the changes:
Index: reopt/autoconf/configure.ac
diff -u reopt/autoconf/configure.ac:1.3 reopt/autoconf/configure.ac:1.4
--- reopt/autoconf/configure.ac:1.3 Tue Sep 30 10:31:12 2003
+++ reopt/autoconf/configure.ac Tue Sep 30 11:17:48 2003
@@ -83,7 +83,7 @@
dnl **************************************************************************
dnl Location of LLVM source code
-AC_ARG_WITH(llvmsrc,AC_HELP_STRING([--with-llvmsrc],[Location of LLVM Source Code]),AC_SUBST(LLVM_SRC,[$withval]),AC_SUBST(LLVM_SRC,[/home/vadve/${USER}/llvm]))
+AC_ARG_WITH(llvmsrc,AC_HELP_STRING([--with-llvmsrc],[Location of LLVM Source Code]),AC_SUBST(LLVM_SRC,[$withval]),AC_SUBST(LLVM_SRC,[`cd ${srcdir}/../..; pwd`]))
dnl Location of LLVM object code
AC_ARG_WITH(llvmobj,AC_HELP_STRING([--with-llvmobj],[Location of LLVM Object Code]),AC_SUBST(LLVM_OBJ,[$withval]),AC_SUBST(LLVM_OBJ,[`cd ../..; pwd`]))
From criswell at cs.uiuc.edu Tue Sep 30 11:18:05 2003
From: criswell at cs.uiuc.edu (John Criswell)
Date: Tue Sep 30 11:18:05 2003
Subject: [llvm-commits] CVS: reopt/configure
Message-ID: <200309301617.LAA14485@choi.cs.uiuc.edu>
Changes in directory reopt:
configure updated: 1.4 -> 1.5
---
Log message:
Added dynamic configuration of default LLVM source root directory.
---
Diffs of the changes:
Index: reopt/configure
diff -u reopt/configure:1.4 reopt/configure:1.5
--- reopt/configure:1.4 Tue Sep 30 10:31:10 2003
+++ reopt/configure Tue Sep 30 11:17:47 2003
@@ -1297,7 +1297,7 @@
LLVM_SRC=$withval
else
- LLVM_SRC=/home/vadve/${USER}/llvm
+ LLVM_SRC=`cd ${srcdir}/../..; pwd`
fi;
From criswell at cs.uiuc.edu Tue Sep 30 11:32:01 2003
From: criswell at cs.uiuc.edu (John Criswell)
Date: Tue Sep 30 11:32:01 2003
Subject: [llvm-commits] CVS: llvm/autoconf/configure.ac
Message-ID: <200309301631.LAA28267@choi.cs.uiuc.edu>
Changes in directory llvm/autoconf:
configure.ac updated: 1.28 -> 1.29
---
Log message:
Added conditional configuration of poolalloc.
---
Diffs of the changes:
Index: llvm/autoconf/configure.ac
diff -u llvm/autoconf/configure.ac:1.28 llvm/autoconf/configure.ac:1.29
--- llvm/autoconf/configure.ac:1.28 Tue Sep 30 10:55:44 2003
+++ llvm/autoconf/configure.ac Tue Sep 30 11:31:48 2003
@@ -35,6 +35,11 @@
AC_CONFIG_SUBDIRS(projects/reopt)
fi
+if test -d ${srcdir}/projects/poolalloc
+then
+ AC_CONFIG_SUBDIRS(projects/poolalloc)
+fi
+
dnl Configure a header file
AC_CONFIG_HEADERS(include/Config/config.h)
AC_CONFIG_MAKEFILE(Makefile)
From criswell at cs.uiuc.edu Tue Sep 30 11:32:04 2003
From: criswell at cs.uiuc.edu (John Criswell)
Date: Tue Sep 30 11:32:04 2003
Subject: [llvm-commits] CVS: llvm/configure
Message-ID: <200309301631.LAA28260@choi.cs.uiuc.edu>
Changes in directory llvm:
configure updated: 1.36 -> 1.37
---
Log message:
Added conditional configuration of poolalloc.
---
Diffs of the changes:
Index: llvm/configure
diff -u llvm/configure:1.36 llvm/configure:1.37
--- llvm/configure:1.36 Tue Sep 30 10:55:42 2003
+++ llvm/configure Tue Sep 30 11:31:47 2003
@@ -427,6 +427,7 @@
PACKAGE_BUGREPORT='llvmbugs at cs.uiuc.edu'
ac_subdirs_all="$ac_subdirs_all projects/reopt"
+ac_subdirs_all="$ac_subdirs_all projects/poolalloc"
# Factoring default headers for most tests.
ac_includes_default="\
#include
@@ -1528,6 +1529,14 @@
fi
+if test -d ${srcdir}/projects/poolalloc
+then
+
+
+subdirs="$subdirs projects/poolalloc"
+
+fi
+
ac_config_headers="$ac_config_headers include/Config/config.h"
ac_config_commands="$ac_config_commands Makefile"
@@ -4420,7 +4429,7 @@
;;
*-*-irix6*)
# Find out which ABI we are using.
- echo '#line 4423 "configure"' > conftest.$ac_ext
+ echo '#line 4432 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
@@ -5261,7 +5270,7 @@
# Provide some information about the compiler.
-echo "$as_me:5264:" \
+echo "$as_me:5273:" \
"checking for Fortran 77 compiler version" >&5
ac_compiler=`set X $ac_compile; echo $2`
{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5
@@ -6270,11 +6279,11 @@
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:6273: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:6282: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:6277: \$? = $ac_status" >&5
+ echo "$as_me:6286: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings
@@ -6502,11 +6511,11 @@
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:6505: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:6514: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:6509: \$? = $ac_status" >&5
+ echo "$as_me:6518: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings
@@ -6569,11 +6578,11 @@
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:6572: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:6581: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:6576: \$? = $ac_status" >&5
+ echo "$as_me:6585: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -8581,7 +8590,7 @@
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext < conftest.$ac_ext <&5)
+ (eval echo "\"\$as_me:10827: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:10822: \$? = $ac_status" >&5
+ echo "$as_me:10831: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings
@@ -10882,11 +10891,11 @@
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:10885: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:10894: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:10889: \$? = $ac_status" >&5
+ echo "$as_me:10898: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -12125,7 +12134,7 @@
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext < conftest.$ac_ext <&5)
+ (eval echo "\"\$as_me:13057: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:13052: \$? = $ac_status" >&5
+ echo "$as_me:13061: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings
@@ -13112,11 +13121,11 @@
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:13115: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:13124: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:13119: \$? = $ac_status" >&5
+ echo "$as_me:13128: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -15056,11 +15065,11 @@
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:15059: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:15068: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:15063: \$? = $ac_status" >&5
+ echo "$as_me:15072: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings
@@ -15288,11 +15297,11 @@
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:15291: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:15300: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:15295: \$? = $ac_status" >&5
+ echo "$as_me:15304: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings
@@ -15355,11 +15364,11 @@
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:15358: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:15367: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:15362: \$? = $ac_status" >&5
+ echo "$as_me:15371: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -17367,7 +17376,7 @@
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext < conftest.$ac_ext <
Changes in directory poolalloc/autoconf:
aclocal.m4 updated: 1.1.1.1 -> 1.2
configure.ac updated: 1.2 -> 1.3
---
Log message:
Updated poolalloc so that it can configure for multiple object roots and can
be configured by the LLVM tree configure script.
---
Diffs of the changes:
Index: poolalloc/autoconf/aclocal.m4
diff -u poolalloc/autoconf/aclocal.m4:1.1.1.1 poolalloc/autoconf/aclocal.m4:1.2
--- poolalloc/autoconf/aclocal.m4:1.1.1.1 Mon Aug 11 16:29:15 2003
+++ poolalloc/autoconf/aclocal.m4 Tue Sep 30 11:31:25 2003
@@ -6156,3 +6156,13 @@
fi
])
+#
+# Configure a Makefile without clobbering it if it exists and is not out of
+# date. This is modified from:
+# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_have_ext_slist.html
+#
+AC_DEFUN([AC_CONFIG_MAKEFILE],
+[AC_CONFIG_COMMANDS($1,${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/$1 $1,${srcdir}/autoconf/mkinstalldirs `dirname $1`)
+])
+
+
Index: poolalloc/autoconf/configure.ac
diff -u poolalloc/autoconf/configure.ac:1.2 poolalloc/autoconf/configure.ac:1.3
--- poolalloc/autoconf/configure.ac:1.2 Wed Sep 10 10:13:02 2003
+++ poolalloc/autoconf/configure.ac Tue Sep 30 11:31:25 2003
@@ -15,13 +15,19 @@
dnl **************************************************************************
dnl * Initialize
dnl **************************************************************************
-AC_INIT([[[LLVM]]],[[[1.0]]],[llvmbugs at cs.uiuc.edu])
+AC_INIT([[[Pool Allocation]]],[[[1.0]]],[llvmbugs at cs.uiuc.edu])
dnl Place all of the extra autoconf files into the config subdirectory
AC_CONFIG_AUX_DIR([autoconf])
-dnl Configure a header file
-dnl AC_CONFIG_HEADERS(include/Config/config.h)
+dnl Configure Makefiles
+AC_CONFIG_MAKEFILE(Makefile)
+AC_CONFIG_MAKEFILE(lib/Makefile)
+AC_CONFIG_MAKEFILE(lib/PoolAllocate/Makefile)
+AC_CONFIG_MAKEFILE(runtime/Makefile)
+AC_CONFIG_MAKEFILE(runtime/PoolAllocator/Makefile)
+AC_CONFIG_MAKEFILE(test/Makefile)
+AC_CONFIG_MAKEFILE(test/TEST.poolalloc.Makefile)
dnl **************************************************************************
dnl * Determine which system we are building on
@@ -66,10 +72,10 @@
dnl **************************************************************************
dnl Location of LLVM source code
-AC_ARG_WITH(llvmsrc,AC_HELP_STRING([--with-llvmsrc],[Location of LLVM Source Code]),AC_SUBST(LLVM_SRC,[$withval]),AC_SUBST(LLVM_SRC,[/home/vadve/${USER}/llvm]))
+AC_ARG_WITH(llvmsrc,AC_HELP_STRING([--with-llvmsrc],[Location of LLVM Source Code]),AC_SUBST(LLVM_SRC,[$withval]),AC_SUBST(LLVM_SRC,[`cd ${srcdir}/../..; pwd`]))
dnl Location of LLVM object code
-AC_ARG_WITH(llvmobj,AC_HELP_STRING([--with-llvmobj],[Location of LLVM Object Code]),AC_SUBST(LLVM_OBJ,[$withval]),AC_SUBST(LLVM_OBJ,[/home/vadve/${USER}/llvm]))
+AC_ARG_WITH(llvmobj,AC_HELP_STRING([--with-llvmobj],[Location of LLVM Object Code]),AC_SUBST(LLVM_OBJ,[$withval]),AC_SUBST(LLVM_OBJ,[`cd ../..; pwd`]))
dnl **************************************************************************
dnl * Create the output files
From criswell at cs.uiuc.edu Tue Sep 30 11:32:11 2003
From: criswell at cs.uiuc.edu (John Criswell)
Date: Tue Sep 30 11:32:11 2003
Subject: [llvm-commits] CVS: poolalloc/Makefile.common.in configure
Message-ID: <200309301631.LAA28234@choi.cs.uiuc.edu>
Changes in directory poolalloc:
Makefile.common.in updated: 1.4 -> 1.5
configure updated: 1.3 -> 1.4
---
Log message:
Updated poolalloc so that it can configure for multiple object roots and can
be configured by the LLVM tree configure script.
---
Diffs of the changes:
Index: poolalloc/Makefile.common.in
diff -u poolalloc/Makefile.common.in:1.4 poolalloc/Makefile.common.in:1.5
--- poolalloc/Makefile.common.in:1.4 Wed Sep 10 10:13:01 2003
+++ poolalloc/Makefile.common.in Tue Sep 30 11:31:24 2003
@@ -12,7 +12,7 @@
#
# Include LLVM's Master Makefile.
#
-include $(LLVM_SRC_ROOT)/Makefile.config
+include $(LLVM_OBJ_ROOT)/Makefile.config
#
# Set the source root and source directory pathnames
Index: poolalloc/configure
diff -u poolalloc/configure:1.3 poolalloc/configure:1.4
--- poolalloc/configure:1.3 Wed Sep 10 10:13:01 2003
+++ poolalloc/configure Tue Sep 30 11:31:24 2003
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.57 for [LLVM] [1.0].
+# Generated by GNU Autoconf 2.57 for [Pool Allocation] [1.0].
#
# Report bugs to .
#
@@ -266,10 +266,10 @@
: ${ac_max_here_lines=38}
# Identity of this package.
-PACKAGE_NAME='[LLVM]'
-PACKAGE_TARNAME='--llvm--'
+PACKAGE_NAME='[Pool Allocation]'
+PACKAGE_TARNAME='--pool-allocation--'
PACKAGE_VERSION='[1.0]'
-PACKAGE_STRING='[LLVM] [1.0]'
+PACKAGE_STRING='[Pool Allocation] [1.0]'
PACKAGE_BUGREPORT='llvmbugs at cs.uiuc.edu'
ac_unique_file=""Makefile.common.in""
@@ -722,7 +722,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures [LLVM] [1.0] to adapt to many kinds of systems.
+\`configure' configures [Pool Allocation] [1.0] to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -779,7 +779,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of [LLVM] [1.0]:";;
+ short | recursive ) echo "Configuration of [Pool Allocation] [1.0]:";;
esac
cat <<\_ACEOF
@@ -852,7 +852,7 @@
test -n "$ac_init_help" && exit 0
if $ac_init_version; then
cat <<\_ACEOF
-[LLVM] configure [1.0]
+[Pool Allocation] configure [1.0]
generated by GNU Autoconf 2.57
Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
@@ -867,7 +867,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by [LLVM] $as_me [1.0], which was
+It was created by [Pool Allocation] $as_me [1.0], which was
generated by GNU Autoconf 2.57. Invocation command line was
$ $0 $@
@@ -1230,6 +1230,27 @@
ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
+ ac_config_commands="$ac_config_commands Makefile"
+
+
+ ac_config_commands="$ac_config_commands lib/Makefile"
+
+
+ ac_config_commands="$ac_config_commands lib/PoolAllocate/Makefile"
+
+
+ ac_config_commands="$ac_config_commands runtime/Makefile"
+
+
+ ac_config_commands="$ac_config_commands runtime/PoolAllocator/Makefile"
+
+
+ ac_config_commands="$ac_config_commands test/Makefile"
+
+
+ ac_config_commands="$ac_config_commands test/TEST.poolalloc.Makefile"
+
+
@@ -1248,7 +1269,7 @@
LLVM_SRC=$withval
else
- LLVM_SRC=/home/vadve/${USER}/llvm
+ LLVM_SRC=`cd ${srcdir}/../..; pwd`
fi;
@@ -1259,7 +1280,7 @@
LLVM_OBJ=$withval
else
- LLVM_OBJ=/home/vadve/${USER}/llvm
+ LLVM_OBJ=`cd ../..; pwd`
fi;
@@ -1655,7 +1676,7 @@
} >&5
cat >&5 <<_CSEOF
-This file was extended by [LLVM] $as_me [1.0], which was
+This file was extended by [Pool Allocation] $as_me [1.0], which was
generated by GNU Autoconf 2.57. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -1705,12 +1726,15 @@
Configuration files:
$config_files
+Configuration commands:
+$config_commands
+
Report bugs to ."
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
-[LLVM] config.status [1.0]
+[Pool Allocation] config.status [1.0]
configured by $0, generated by GNU Autoconf 2.57,
with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
@@ -1804,7 +1828,20 @@
_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+#
+# INIT-COMMANDS section.
+#
+
+${srcdir}/autoconf/mkinstalldirs `dirname Makefile`
+${srcdir}/autoconf/mkinstalldirs `dirname lib/Makefile`
+${srcdir}/autoconf/mkinstalldirs `dirname lib/PoolAllocate/Makefile`
+${srcdir}/autoconf/mkinstalldirs `dirname runtime/Makefile`
+${srcdir}/autoconf/mkinstalldirs `dirname runtime/PoolAllocator/Makefile`
+${srcdir}/autoconf/mkinstalldirs `dirname test/Makefile`
+${srcdir}/autoconf/mkinstalldirs `dirname test/TEST.poolalloc.Makefile`
+_ACEOF
@@ -1814,6 +1851,13 @@
case "$ac_config_target" in
# Handling of arguments.
"Makefile.common" ) CONFIG_FILES="$CONFIG_FILES Makefile.common" ;;
+ "Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS Makefile" ;;
+ "lib/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS lib/Makefile" ;;
+ "lib/PoolAllocate/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS lib/PoolAllocate/Makefile" ;;
+ "runtime/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS runtime/Makefile" ;;
+ "runtime/PoolAllocator/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS runtime/PoolAllocator/Makefile" ;;
+ "test/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS test/Makefile" ;;
+ "test/TEST.poolalloc.Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS test/TEST.poolalloc.Makefile" ;;
*) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
{ (exit 1); exit 1; }; };;
@@ -1826,6 +1870,7 @@
# bizarre bug on SunOS 4.1.3.
if $ac_need_defaults; then
test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+ test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
fi
# Have a temporary directory for convenience. Make it in the build tree
@@ -2099,6 +2144,72 @@
rm -f $tmp/out
fi
+done
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+#
+# CONFIG_COMMANDS section.
+#
+for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
+ ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
+ ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
+ ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
+$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_dest" : 'X\(//\)[^/]' \| \
+ X"$ac_dest" : 'X\(//\)$' \| \
+ X"$ac_dest" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$ac_dest" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ ac_builddir=.
+
+if test "$ac_dir" != .; then
+ ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+ # A "../" for each directory in $ac_dir_suffix.
+ ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+ ac_dir_suffix= ac_top_builddir=
+fi
+
+case $srcdir in
+ .) # No --srcdir option. We are building in place.
+ ac_srcdir=.
+ if test -z "$ac_top_builddir"; then
+ ac_top_srcdir=.
+ else
+ ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+ fi ;;
+ [\\/]* | ?:[\\/]* ) # Absolute path.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir ;;
+ *) # Relative path.
+ ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
+# absolute.
+ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
+ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
+ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
+ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
+
+
+ { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
+echo "$as_me: executing $ac_dest commands" >&6;}
+ case $ac_dest in
+ Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/Makefile Makefile ;;
+ lib/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/lib/Makefile lib/Makefile ;;
+ lib/PoolAllocate/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/lib/PoolAllocate/Makefile lib/PoolAllocate/Makefile ;;
+ runtime/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/runtime/Makefile runtime/Makefile ;;
+ runtime/PoolAllocator/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/runtime/PoolAllocator/Makefile runtime/PoolAllocator/Makefile ;;
+ test/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/test/Makefile test/Makefile ;;
+ test/TEST.poolalloc.Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/test/TEST.poolalloc.Makefile test/TEST.poolalloc.Makefile ;;
+ esac
done
_ACEOF
From lattner at cs.uiuc.edu Tue Sep 30 12:14:03 2003
From: lattner at cs.uiuc.edu (Chris Lattner)
Date: Tue Sep 30 12:14:03 2003
Subject: [llvm-commits] CVS: llvm/test/Regression/CFrontend/2003-09-30-StructLayout.c
Message-ID: <200309301713.MAA04350@apoc.cs.uiuc.edu>
Changes in directory llvm/test/Regression/CFrontend:
2003-09-30-StructLayout.c added (r1.1)
---
Log message:
new testcase distilled from 177.mesa
---
Diffs of the changes:
Index: llvm/test/Regression/CFrontend/2003-09-30-StructLayout.c
diff -c /dev/null llvm/test/Regression/CFrontend/2003-09-30-StructLayout.c:1.1
*** /dev/null Tue Sep 30 12:13:44 2003
--- llvm/test/Regression/CFrontend/2003-09-30-StructLayout.c Tue Sep 30 12:13:34 2003
***************
*** 0 ****
--- 1,16 ----
+ enum En {
+ ENUM_VAL
+ };
+
+ struct St {
+ unsigned char A;
+ enum En B;
+ unsigned char C;
+ enum En D;
+ float E;
+ };
+
+
+ void func(struct St* A) {
+ A->D = ENUM_VAL;
+ }
From lattner at cs.uiuc.edu Tue Sep 30 12:30:01 2003
From: lattner at cs.uiuc.edu (Chris Lattner)
Date: Tue Sep 30 12:30:01 2003
Subject: [llvm-commits] CVS: llvm/test/Programs/External/SPEC/CFP2000/177.mesa/Makefile
Message-ID: <200309301729.MAA04733@apoc.cs.uiuc.edu>
Changes in directory llvm/test/Programs/External/SPEC/CFP2000/177.mesa:
Makefile updated: 1.1 -> 1.2
---
Log message:
As if spec weren't irritating enough, this benchmark also has extra cruft
laying around in it's source directory.
---
Diffs of the changes:
Index: llvm/test/Programs/External/SPEC/CFP2000/177.mesa/Makefile
diff -u llvm/test/Programs/External/SPEC/CFP2000/177.mesa/Makefile:1.1 llvm/test/Programs/External/SPEC/CFP2000/177.mesa/Makefile:1.2
--- llvm/test/Programs/External/SPEC/CFP2000/177.mesa/Makefile:1.1 Tue Sep 30 11:08:11 2003
+++ llvm/test/Programs/External/SPEC/CFP2000/177.mesa/Makefile Tue Sep 30 12:29:18 2003
@@ -9,4 +9,15 @@
#STDIN_FILENAME = ammp.in
#STDOUT_FILENAME = ammp.out
CPPFLAGS =
+
+Source = $(addprefix $(SPEC_BENCH_DIR)/src/, \
+ accum.c alpha.c alphabuf.c api1.c api2.c attrib.c bitmap.c blend.c \
+ clip.c colortab.c context.c copypix.c depth.c dlist.c drawpix.c \
+ enable.c eval.c feedback.c fog.c get.c hash.c image.c light.c \
+ lines.c logic.c masking.c matrix.c misc.c mmath.c osmesa.c pb.c \
+ pixel.c pointers.c points.c polygon.c quads.c rastpos.c readpix.c \
+ rect.c scissor.c shade.c span.c stencil.c teximage.c texobj.c \
+ texstate.c texture.c triangle.c varray.c vb.c vbfill.c vbrender.c \
+ vbxform.c winpos.c xform.c mesa4.c)
+
include ../../Makefile.spec
From brukman at cs.uiuc.edu Tue Sep 30 12:34:02 2003
From: brukman at cs.uiuc.edu (Misha Brukman)
Date: Tue Sep 30 12:34:02 2003
Subject: [llvm-commits] CVS: llvm/tools/gccld/GenerateCode.cpp
Message-ID: <200309301733.MAA22578@zion.cs.uiuc.edu>
Changes in directory llvm/tools/gccld:
GenerateCode.cpp updated: 1.3 -> 1.4
---
Log message:
Make code more terse:
* Remove extra blank lines
* Delete space between function call and arg list
* Delete non-content comment lines ("//")
---
Diffs of the changes:
Index: llvm/tools/gccld/GenerateCode.cpp
diff -u llvm/tools/gccld/GenerateCode.cpp:1.3 llvm/tools/gccld/GenerateCode.cpp:1.4
--- llvm/tools/gccld/GenerateCode.cpp:1.3 Mon Sep 29 22:24:28 2003
+++ llvm/tools/gccld/GenerateCode.cpp Tue Sep 30 12:33:12 2003
@@ -6,15 +6,15 @@
//
//===----------------------------------------------------------------------===//
-#include "llvm/Transforms/Utils/Linker.h"
-#include "llvm/Transforms/IPO.h"
-#include "llvm/Transforms/Scalar.h"
-#include "llvm/Target/TargetData.h"
+#include "gccld.h"
#include "llvm/Module.h"
#include "llvm/PassManager.h"
#include "llvm/Bytecode/WriteBytecodePass.h"
+#include "llvm/Target/TargetData.h"
+#include "llvm/Transforms/IPO.h"
+#include "llvm/Transforms/Scalar.h"
+#include "llvm/Transforms/Utils/Linker.h"
#include "Support/SystemUtils.h"
-#include "gccld.h"
//
// Function: GenerateBytecode ()
@@ -36,11 +36,7 @@
// 1 - Error.
//
int
-GenerateBytecode (Module * M,
- bool Strip,
- bool Internalize,
- std::ostream * Out)
-{
+GenerateBytecode (Module *M, bool Strip, bool Internalize, std::ostream *Out) {
// In addition to just linking the input from GCC, we also want to spiff it up
// a little bit. Do this now.
PassManager Passes;
@@ -50,13 +46,11 @@
// Linking modules together can lead to duplicated global constants, only keep
// one copy of each constant...
- //
Passes.add(createConstantMergePass());
// If the -s command line option was specified, strip the symbols out of the
// resulting program to make it smaller. -s is a GCC option that we are
// supporting.
- //
if (Strip)
Passes.add(createSymbolStrippingPass());
@@ -64,32 +58,26 @@
// functions they are calling, they end up calling a vararg version of the
// function that does not get a body filled in (the real function has typed
// arguments). This pass merges the two functions.
- //
Passes.add(createFunctionResolvingPass());
if (Internalize) {
// Now that composite has been compiled, scan through the module, looking
// for a main function. If main is defined, mark all other functions
// internal.
- //
Passes.add(createInternalizePass());
}
// Remove unused arguments from functions...
- //
Passes.add(createDeadArgEliminationPass());
// The FuncResolve pass may leave cruft around if functions were prototyped
// differently than they were defined. Remove this cruft.
- //
Passes.add(createInstructionCombiningPass());
// Delete basic blocks, which optimization passes may have killed...
- //
Passes.add(createCFGSimplificationPass());
// Now that we have optimized the program, discard unreachable functions...
- //
Passes.add(createGlobalDCEPass());
// Add the pass that writes bytecode to the output file...
@@ -122,15 +110,13 @@
// 1 - Failure
//
int
-GenerateAssembly (const std::string & OutputFilename,
- const std::string & InputFilename,
- const std::string & llc,
- char ** const envp)
+GenerateAssembly(const std::string &OutputFilename,
+ const std::string &InputFilename,
+ const std::string &llc,
+ char ** const envp)
{
- //
// Run LLC to convert the bytecode file into assembly code.
- //
- const char * cmd[8];
+ const char *cmd[8];
cmd[0] = llc.c_str();
cmd[1] = "-f";
@@ -139,7 +125,7 @@
cmd[4] = InputFilename.c_str();
cmd[5] = NULL;
- return (ExecWait (cmd, envp));
+ return ExecWait(cmd, envp);
}
//
@@ -165,49 +151,41 @@
// 1 - Failure
//
int
-GenerateNative (const std::string & OutputFilename,
- const std::string & InputFilename,
- const std::vector & Libraries,
- const std::vector & LibPaths,
- const std::string & gcc,
- char ** const envp)
-{
- //
+GenerateNative(const std::string &OutputFilename,
+ const std::string &InputFilename,
+ const std::vector &Libraries,
+ const std::vector &LibPaths,
+ const std::string &gcc,
+ char ** const envp) {
// Remove these environment variables from the environment of the
// programs that we will execute. It appears that GCC sets these
// environment variables so that the programs it uses can configure
// themselves identically.
//
- // However, when we invoke GCC below, we want it to use its normal
- // configuration. Hence, we must sanitize it's environment.
- //
- char ** clean_env = CopyEnv (envp);
+ // However, when we invoke GCC below, we want it to use its normal
+ // configuration. Hence, we must sanitize its environment.
+ char ** clean_env = CopyEnv(envp);
if (clean_env == NULL)
- {
return 1;
- }
- RemoveEnv ("LIBRARY_PATH", clean_env);
- RemoveEnv ("COLLECT_GCC_OPTIONS", clean_env);
- RemoveEnv ("GCC_EXEC_PREFIX", clean_env);
- RemoveEnv ("COMPILER_PATH", clean_env);
- RemoveEnv ("COLLECT_GCC", clean_env);
+ RemoveEnv("LIBRARY_PATH", clean_env);
+ RemoveEnv("COLLECT_GCC_OPTIONS", clean_env);
+ RemoveEnv("GCC_EXEC_PREFIX", clean_env);
+ RemoveEnv("COMPILER_PATH", clean_env);
+ RemoveEnv("COLLECT_GCC", clean_env);
std::vector cmd;
- //
// Run GCC to assemble and link the program into native code.
//
// Note:
// We can't just assemble and link the file with the system assembler
// and linker because we don't know where to put the _start symbol.
// GCC mysteriously knows how to do it.
- //
- cmd.push_back (gcc.c_str());
- cmd.push_back ("-o");
- cmd.push_back (OutputFilename.c_str());
- cmd.push_back (InputFilename.c_str());
+ cmd.push_back(gcc.c_str());
+ cmd.push_back("-o");
+ cmd.push_back(OutputFilename.c_str());
+ cmd.push_back(InputFilename.c_str());
- //
// JTC:
// Adding the library paths creates a problem for native generation. If we
// include the search paths from llvmgcc, then we'll be telling normal gcc
@@ -215,31 +193,22 @@
// bad because those libraries hold only bytecode files (not native object
// files). In the end, we attempt to link the bytecode libgcc into a native
// program.
- //
#ifdef ndef
- //
// Add in the library path options.
- //
- for (unsigned index=0; index < LibPaths.size(); index++)
- {
- cmd.push_back ("-L");
- cmd.push_back (LibPaths[index].c_str());
+ for (unsigned index=0; index < LibPaths.size(); index++) {
+ cmd.push_back("-L");
+ cmd.push_back(LibPaths[index].c_str());
}
#endif
- //
// Add in the libraries to link.
- //
- std::vector Libs (Libraries);
- for (unsigned index = 0; index < Libs.size(); index++)
- {
+ std::vector Libs(Libraries);
+ for (unsigned index = 0; index < Libs.size(); index++) {
Libs[index] = "-l" + Libs[index];
- cmd.push_back (Libs[index].c_str());
+ cmd.push_back(Libs[index].c_str());
}
- cmd.push_back (NULL);
+ cmd.push_back(NULL);
- //
// Run the compiler to assembly and link together the program.
- //
- return (ExecWait (&(cmd[0]), clean_env));
+ return ExecWait(&(cmd[0]), clean_env);
}
From lattner at cs.uiuc.edu Tue Sep 30 12:38:02 2003
From: lattner at cs.uiuc.edu (Chris Lattner)
Date: Tue Sep 30 12:38:02 2003
Subject: [llvm-commits] CVS: llvm/tools/gccld/GenerateCode.cpp
Message-ID: <200309301737.MAA04817@apoc.cs.uiuc.edu>
Changes in directory llvm/tools/gccld:
GenerateCode.cpp updated: 1.4 -> 1.5
---
Log message:
Remove initials from source file
---
Diffs of the changes:
Index: llvm/tools/gccld/GenerateCode.cpp
diff -u llvm/tools/gccld/GenerateCode.cpp:1.4 llvm/tools/gccld/GenerateCode.cpp:1.5
--- llvm/tools/gccld/GenerateCode.cpp:1.4 Tue Sep 30 12:33:12 2003
+++ llvm/tools/gccld/GenerateCode.cpp Tue Sep 30 12:36:51 2003
@@ -186,14 +186,13 @@
cmd.push_back(OutputFilename.c_str());
cmd.push_back(InputFilename.c_str());
- // JTC:
// Adding the library paths creates a problem for native generation. If we
// include the search paths from llvmgcc, then we'll be telling normal gcc
// to look inside of llvmgcc's library directories for libraries. This is
// bad because those libraries hold only bytecode files (not native object
// files). In the end, we attempt to link the bytecode libgcc into a native
// program.
-#ifdef ndef
+#if 0
// Add in the library path options.
for (unsigned index=0; index < LibPaths.size(); index++) {
cmd.push_back("-L");
From brukman at cs.uiuc.edu Tue Sep 30 12:41:01 2003
From: brukman at cs.uiuc.edu (Misha Brukman)
Date: Tue Sep 30 12:41:01 2003
Subject: [llvm-commits] CVS: llvm/tools/gccld/GenerateCode.cpp
Message-ID: <200309301740.MAA22690@zion.cs.uiuc.edu>
Changes in directory llvm/tools/gccld:
GenerateCode.cpp updated: 1.5 -> 1.6
---
Log message:
Removed extra space in comments.
---
Diffs of the changes:
Index: llvm/tools/gccld/GenerateCode.cpp
diff -u llvm/tools/gccld/GenerateCode.cpp:1.5 llvm/tools/gccld/GenerateCode.cpp:1.6
--- llvm/tools/gccld/GenerateCode.cpp:1.5 Tue Sep 30 12:36:51 2003
+++ llvm/tools/gccld/GenerateCode.cpp Tue Sep 30 12:40:12 2003
@@ -118,12 +118,12 @@
// Run LLC to convert the bytecode file into assembly code.
const char *cmd[8];
- cmd[0] = llc.c_str();
- cmd[1] = "-f";
- cmd[2] = "-o";
- cmd[3] = OutputFilename.c_str();
- cmd[4] = InputFilename.c_str();
- cmd[5] = NULL;
+ cmd[0] = llc.c_str();
+ cmd[1] = "-f";
+ cmd[2] = "-o";
+ cmd[3] = OutputFilename.c_str();
+ cmd[4] = InputFilename.c_str();
+ cmd[5] = NULL;
return ExecWait(cmd, envp);
}
@@ -186,12 +186,12 @@
cmd.push_back(OutputFilename.c_str());
cmd.push_back(InputFilename.c_str());
- // Adding the library paths creates a problem for native generation. If we
- // include the search paths from llvmgcc, then we'll be telling normal gcc
- // to look inside of llvmgcc's library directories for libraries. This is
- // bad because those libraries hold only bytecode files (not native object
- // files). In the end, we attempt to link the bytecode libgcc into a native
- // program.
+ // Adding the library paths creates a problem for native generation. If we
+ // include the search paths from llvmgcc, then we'll be telling normal gcc
+ // to look inside of llvmgcc's library directories for libraries. This is
+ // bad because those libraries hold only bytecode files (not native object
+ // files). In the end, we attempt to link the bytecode libgcc into a native
+ // program.
#if 0
// Add in the library path options.
for (unsigned index=0; index < LibPaths.size(); index++) {
From brukman at cs.uiuc.edu Tue Sep 30 12:44:02 2003
From: brukman at cs.uiuc.edu (Misha Brukman)
Date: Tue Sep 30 12:44:02 2003
Subject: [llvm-commits] CVS: llvm/tools/gccld/GenerateCode.cpp
Message-ID: <200309301743.MAA22768@zion.cs.uiuc.edu>
Changes in directory llvm/tools/gccld:
GenerateCode.cpp updated: 1.6 -> 1.7
---
Log message:
Doxygen-ified function comments.
---
Diffs of the changes:
Index: llvm/tools/gccld/GenerateCode.cpp
diff -u llvm/tools/gccld/GenerateCode.cpp:1.6 llvm/tools/gccld/GenerateCode.cpp:1.7
--- llvm/tools/gccld/GenerateCode.cpp:1.6 Tue Sep 30 12:40:12 2003
+++ llvm/tools/gccld/GenerateCode.cpp Tue Sep 30 12:42:57 2003
@@ -16,25 +16,19 @@
#include "llvm/Transforms/Utils/Linker.h"
#include "Support/SystemUtils.h"
-//
-// Function: GenerateBytecode ()
-//
-// Description:
-// This function generates a bytecode file from the specified module.
-//
-// Inputs:
-// M - The module for which bytecode should be generated.
-// Strip - Flags whether symbols should be stripped from the output.
-// Internalize - Flags whether all symbols should be marked internal.
-// Out - Pointer to file stream to which to write the output.
-//
-// Outputs:
-// None.
-//
-// Return value:
-// 0 - No error.
-// 1 - Error.
-//
+/// GenerateBytecode - generates a bytecode file from the specified module.
+///
+/// Inputs:
+/// M - The module for which bytecode should be generated.
+/// Strip - Flags whether symbols should be stripped from the output.
+/// Internalize - Flags whether all symbols should be marked internal.
+/// Out - Pointer to file stream to which to write the output.
+///
+/// Outputs:
+/// None.
+///
+/// Returns non-zero value on error.
+///
int
GenerateBytecode (Module *M, bool Strip, bool Internalize, std::ostream *Out) {
// In addition to just linking the input from GCC, we also want to spiff it up
@@ -89,26 +83,20 @@
return 0;
}
-//
-// Function: GenerateAssembly ()
-//
-// Description:
-// This function generates a native assembly language source file from the
-// specified bytecode file.
-//
-// Inputs:
-// InputFilename - The name of the output bytecode file.
-// OutputFilename - The name of the file to generate.
-// llc - The pathname to use for LLC.
-// envp - The environment to use when running LLC.
-//
-// Outputs:
-// None.
-//
-// Return value:
-// 0 - Success
-// 1 - Failure
-//
+/// GenerateAssembly - generates a native assembly language source file from the
+/// specified bytecode file.
+///
+/// Inputs:
+/// InputFilename - The name of the output bytecode file.
+/// OutputFilename - The name of the file to generate.
+/// llc - The pathname to use for LLC.
+/// envp - The environment to use when running LLC.
+///
+/// Outputs:
+/// None.
+///
+/// Return non-zero value on error.
+///
int
GenerateAssembly(const std::string &OutputFilename,
const std::string &InputFilename,
@@ -128,28 +116,22 @@
return ExecWait(cmd, envp);
}
-//
-// Function: GenerateNative ()
-//
-// Description:
-// This function generates a native assembly language source file from the
-// specified assembly source file.
-//
-// Inputs:
-// InputFilename - The name of the output bytecode file.
-// OutputFilename - The name of the file to generate.
-// Libraries - The list of libraries with which to link.
-// LibPaths - The list of directories in which to find libraries.
-// gcc - The pathname to use for GGC.
-// envp - A copy of the process's current environment.
-//
-// Outputs:
-// None.
-//
-// Return value:
-// 0 - Success
-// 1 - Failure
-//
+/// GenerateNative - generates a native assembly language source file from the
+/// specified assembly source file.
+///
+/// Inputs:
+/// InputFilename - The name of the output bytecode file.
+/// OutputFilename - The name of the file to generate.
+/// Libraries - The list of libraries with which to link.
+/// LibPaths - The list of directories in which to find libraries.
+/// gcc - The pathname to use for GGC.
+/// envp - A copy of the process's current environment.
+///
+/// Outputs:
+/// None.
+///
+/// Returns non-zero value on error.
+///
int
GenerateNative(const std::string &OutputFilename,
const std::string &InputFilename,
From gaeke at cs.uiuc.edu Tue Sep 30 12:50:01 2003
From: gaeke at cs.uiuc.edu (Brian Gaeke)
Date: Tue Sep 30 12:50:01 2003
Subject: [llvm-commits] CVS: llvm/lib/Target/Sparc/SparcV9CodeEmitter.cpp
Message-ID: <200309301749.MAA25285@zion.cs.uiuc.edu>
Changes in directory llvm/lib/Target/Sparc:
SparcV9CodeEmitter.cpp updated: 1.32 -> 1.33
---
Log message:
Add statistic for # of emitWord() calls.
---
Diffs of the changes:
Index: llvm/lib/Target/Sparc/SparcV9CodeEmitter.cpp
diff -u llvm/lib/Target/Sparc/SparcV9CodeEmitter.cpp:1.32 llvm/lib/Target/Sparc/SparcV9CodeEmitter.cpp:1.33
--- llvm/lib/Target/Sparc/SparcV9CodeEmitter.cpp:1.32 Fri Sep 5 17:59:31 2003
+++ llvm/lib/Target/Sparc/SparcV9CodeEmitter.cpp Tue Sep 30 12:49:41 2003
@@ -26,6 +26,7 @@
Statistic<> OverwrittenCalls("call-ovwr", "Number of over-written calls");
Statistic<> UnmodifiedCalls("call-skip", "Number of unmodified calls");
Statistic<> CallbackCalls("callback", "Number CompilationCallback() calls");
+ Statistic<> WordsEmitted("words-emitted", "No. of words emitted to memory");
}
bool UltraSparc::addPassesToEmitMachineCode(FunctionPassManager &PM,
@@ -440,6 +441,7 @@
void SparcV9CodeEmitter::emitWord(unsigned Val) {
// Output the constant in big endian byte order...
+ ++WordsEmitted;
unsigned byteVal;
for (int i = 3; i >= 0; --i) {
byteVal = Val >> 8*i;
From brukman at cs.uiuc.edu Tue Sep 30 12:52:02 2003
From: brukman at cs.uiuc.edu (Misha Brukman)
Date: Tue Sep 30 12:52:02 2003
Subject: [llvm-commits] CVS: llvm/tools/gccld/Linker.cpp
Message-ID: <200309301751.MAA25728@zion.cs.uiuc.edu>
Changes in directory llvm/tools/gccld:
Linker.cpp updated: 1.5 -> 1.6
---
Log message:
Made code more terse:
* Deleted empty comment lines
* No single begin-braces '{' on a line by themselves
---
Diffs of the changes:
Index: llvm/tools/gccld/Linker.cpp
diff -u llvm/tools/gccld/Linker.cpp:1.5 llvm/tools/gccld/Linker.cpp:1.6
--- llvm/tools/gccld/Linker.cpp:1.5 Tue Sep 30 09:03:48 2003
+++ llvm/tools/gccld/Linker.cpp Tue Sep 30 12:51:20 2003
@@ -61,8 +61,7 @@
// TRUE - The file is an archive.
// FALSE - The file is not an archive.
//
-static inline bool IsArchive(const std::string &filename)
-{
+static inline bool IsArchive(const std::string &filename) {
std::string ArchiveMagic("!\012");
char buf[1 + ArchiveMagic.size()];
std::ifstream f(filename.c_str());
@@ -90,8 +89,7 @@
// If the file is not found, an empty string is returned.
//
static std::string
-FindLib(const std::string &Filename, const std::vector &Paths)
-{
+FindLib(const std::string &Filename, const std::vector &Paths) {
// Determine if the pathname can be found as it stands.
if (FileExists(Filename))
return Filename;
@@ -142,9 +140,7 @@
// Return value:
// None.
//
-void
-GetAllDefinedSymbols(Module *M, std::set &DefinedSymbols)
-{
+void GetAllDefinedSymbols(Module *M, std::set &DefinedSymbols) {
for (Module::iterator I = M->begin(), E = M->end(); I != E; ++I)
if (I->hasName() && !I->isExternal() && !I->hasInternalLinkage())
DefinedSymbols.insert(I->getName());
@@ -173,8 +169,7 @@
// None.
//
void
-GetAllUndefinedSymbols(Module *M, std::set &UndefinedSymbols)
-{
+GetAllUndefinedSymbols(Module *M, std::set &UndefinedSymbols) {
std::set DefinedSymbols;
UndefinedSymbols.clear(); // Start out empty
@@ -253,11 +248,9 @@
std::string &ErrorMessage,
bool Verbose)
{
- //
// Find all of the symbols currently undefined in the bytecode program.
// If all the symbols are defined, the program is complete, and there is
// no reason to link in any archive files.
- //
std::set UndefinedSymbols;
GetAllUndefinedSymbols(M, UndefinedSymbols);
if (UndefinedSymbols.empty()) {
@@ -265,17 +258,13 @@
return false; // No need to link anything in!
}
- //
// Load in the archive objects.
- //
if (Verbose) std::cerr << " Loading '" << Filename << "'\n";
std::vector Objects;
if (ReadArchiveFile(Filename, Objects, &ErrorMessage))
return true;
- //
// Figure out which symbols are defined by all of the modules in the archive.
- //
std::vector > DefinedSymbols;
DefinedSymbols.resize(Objects.size());
for (unsigned i = 0; i != Objects.size(); ++i) {
From lattner at cs.uiuc.edu Tue Sep 30 12:54:01 2003
From: lattner at cs.uiuc.edu (Chris Lattner)
Date: Tue Sep 30 12:54:01 2003
Subject: [llvm-commits] CVS: llvm/include/llvm/ModuleProvider.h
Message-ID: <200309301753.MAA04891@apoc.cs.uiuc.edu>
Changes in directory llvm/include/llvm:
ModuleProvider.h updated: 1.2 -> 1.3
---
Log message:
make the header comment more useful
---
Diffs of the changes:
Index: llvm/include/llvm/ModuleProvider.h
diff -u llvm/include/llvm/ModuleProvider.h:1.2 llvm/include/llvm/ModuleProvider.h:1.3
--- llvm/include/llvm/ModuleProvider.h:1.2 Mon Sep 22 18:35:23 2003
+++ llvm/include/llvm/ModuleProvider.h Tue Sep 30 12:53:30 2003
@@ -1,6 +1,10 @@
//===-- llvm/ModuleProvider.h - Interface for module providers --*- C++ -*-===//
//
-// Abstract interface for providing a module.
+// This file provides an abstract interface for loading a module from some
+// place. This interface allows incremental or random access loading of
+// functions from the file. This is useful for applications like JIT compilers
+// or interprocedural optimizers that do not need the entire program in memory
+// at the same time.
//
//===----------------------------------------------------------------------===//
@@ -39,7 +43,6 @@
TheModule = 0;
return tempM;
}
-
};
#endif
From brukman at cs.uiuc.edu Tue Sep 30 13:01:18 2003
From: brukman at cs.uiuc.edu (Misha Brukman)
Date: Tue Sep 30 13:01:18 2003
Subject: [llvm-commits] CVS: llvm/tools/gccld/gccld.cpp
Message-ID: <200309301759.MAA26060@zion.cs.uiuc.edu>
Changes in directory llvm/tools/gccld:
gccld.cpp updated: 1.53 -> 1.54
---
Log message:
* Ordered includes according to LLVM style
* Put function signatures on one line if possible
* Deleted empty comment lines (^//$)
* Deleted braces around single statements
* Deleted space between function call and argument list
---
Diffs of the changes:
Index: llvm/tools/gccld/gccld.cpp
diff -u llvm/tools/gccld/gccld.cpp:1.53 llvm/tools/gccld/gccld.cpp:1.54
--- llvm/tools/gccld/gccld.cpp:1.53 Tue Sep 30 09:03:48 2003
+++ llvm/tools/gccld/gccld.cpp Tue Sep 30 12:59:25 2003
@@ -14,7 +14,6 @@
//===----------------------------------------------------------------------===//
#include "gccld.h"
-#include "llvm/Transforms/Utils/Linker.h"
#include "llvm/Module.h"
#include "llvm/PassManager.h"
#include "llvm/Bytecode/Reader.h"
@@ -22,11 +21,11 @@
#include "llvm/Target/TargetData.h"
#include "llvm/Transforms/IPO.h"
#include "llvm/Transforms/Scalar.h"
-#include "Support/FileUtilities.h"
-#include "Support/SystemUtils.h"
+#include "llvm/Transforms/Utils/Linker.h"
#include "Support/CommandLine.h"
+#include "Support/FileUtilities.h"
#include "Support/Signals.h"
-
+#include "Support/SystemUtils.h"
#include
#include
@@ -107,7 +106,6 @@
return 1;
}
-
//
//
// Function: CopyEnv()
@@ -130,46 +128,29 @@
// in the array is a duplicate of the one in the original array (i.e. we do
// not copy the char *'s from one array to another).
//
-char **
-CopyEnv (char ** const envp)
-{
- //
+char ** CopyEnv(char ** const envp) {
// Count the number of entries in the old list;
- //
unsigned entries; // The number of entries in the old environment list
for (entries = 0; envp[entries] != NULL; entries++)
{
;
}
- //
// Add one more entry for the NULL pointer that ends the list.
- //
++entries;
- //
// If there are no entries at all, just return NULL.
- //
if (entries == 0)
- {
return NULL;
- }
- //
// Allocate a new environment list.
- //
char **newenv;
if ((newenv = new (char *) [entries]) == NULL)
- {
return NULL;
- }
- //
// Make a copy of the list. Don't forget the NULL that ends the list.
- //
entries = 0;
- while (envp[entries] != NULL)
- {
+ while (envp[entries] != NULL) {
newenv[entries] = new char[strlen (envp[entries]) + 1];
strcpy (newenv[entries], envp[entries]);
++entries;
@@ -202,41 +183,28 @@
// seem to have an unsetenv() function or a setenv() function (or they are
// undocumented if they do exist).
//
-void
-RemoveEnv (const char * name, char ** const envp)
-{
+void RemoveEnv(const char * name, char ** const envp) {
for (unsigned index=0; envp[index] != NULL; index++) {
// Find the first equals sign in the array and make it an EOS character.
char *p = strchr (envp[index], '=');
if (p == NULL)
- {
continue;
- }
else
- {
*p = '\0';
- }
// Compare the two strings. If they are equal, zap this string.
// Otherwise, restore it.
- //
- if (!strcmp (name, envp[index]))
- {
+ if (!strcmp(name, envp[index]))
*envp[index] = '\0';
- }
else
- {
*p = '=';
- }
}
return;
}
-int
-main(int argc, char **argv, char ** envp)
-{
+int main(int argc, char **argv, char **envp) {
cl::ParseCommandLineOptions(argc, argv, " llvm linker for GCC\n");
std::string ErrorMessage;
@@ -262,9 +230,7 @@
// Link in all of the libraries next...
- //
// Create the output file.
- //
std::string RealBytecodeOutput = OutputFilename;
if (!LinkAsLibrary) RealBytecodeOutput += ".bc";
std::ofstream Out(RealBytecodeOutput.c_str());
@@ -272,69 +238,51 @@
return PrintAndReturn(argv[0], "error opening '" + RealBytecodeOutput +
"' for writing!");
- //
// Ensure that the bytecode file gets removed from the disk if we get a
// SIGINT signal.
- //
RemoveFileOnSignal(RealBytecodeOutput);
- //
// Generate the bytecode file.
- //
- if (GenerateBytecode (Composite.get(), Strip, !NoInternalize, &Out)) {
+ if (GenerateBytecode(Composite.get(), Strip, !NoInternalize, &Out)) {
Out.close();
return PrintAndReturn(argv[0], "error generating bytcode");
}
- //
// Close the bytecode file.
- //
Out.close();
- //
// If we are not linking a library, generate either a native executable
// or a JIT shell script, depending upon what the user wants.
- //
if (!LinkAsLibrary) {
- //
// If the user wants to generate a native executable, compile it from the
// bytecode file.
//
// Otherwise, create a script that will run the bytecode through the JIT.
- //
if (Native) {
// Name of the Assembly Language output file
std::string AssemblyFile = OutputFilename + ".s";
- //
// Mark the output files for removal if we get an interrupt.
- //
- RemoveFileOnSignal (AssemblyFile);
- RemoveFileOnSignal (OutputFilename);
+ RemoveFileOnSignal(AssemblyFile);
+ RemoveFileOnSignal(OutputFilename);
- //
// Determine the locations of the llc and gcc programs.
- //
- std::string llc=FindExecutable ("llc", argv[0]);
- std::string gcc=FindExecutable ("gcc", argv[0]);
+ std::string llc = FindExecutable("llc", argv[0]);
+ std::string gcc = FindExecutable("gcc", argv[0]);
if (llc.empty())
- return PrintAndReturn (argv[0], "Failed to find llc");
+ return PrintAndReturn(argv[0], "Failed to find llc");
if (gcc.empty())
- return PrintAndReturn (argv[0], "Failed to find gcc");
+ return PrintAndReturn(argv[0], "Failed to find gcc");
- //
// Generate an assembly language file for the bytecode.
- //
if (Verbose) std::cout << "Generating Assembly Code\n";
GenerateAssembly(AssemblyFile, RealBytecodeOutput, llc, envp);
if (Verbose) std::cout << "Generating Native Code\n";
GenerateNative(OutputFilename, AssemblyFile, Libraries, LibPaths,
gcc, envp);
- //
// Remove the assembly language file.
- //
removeFile (AssemblyFile);
} else {
// Output the script to start the program...
@@ -347,11 +295,11 @@
}
// Make the script executable...
- MakeFileExecutable (OutputFilename);
+ MakeFileExecutable(OutputFilename);
// Make the bytecode file readable and directly executable in LLEE as well
- MakeFileExecutable (RealBytecodeOutput);
- MakeFileReadable (RealBytecodeOutput);
+ MakeFileExecutable(RealBytecodeOutput);
+ MakeFileReadable(RealBytecodeOutput);
}
return 0;
From lattner at cs.uiuc.edu Tue Sep 30 13:06:02 2003
From: lattner at cs.uiuc.edu (Chris Lattner)
Date: Tue Sep 30 13:06:02 2003
Subject: [llvm-commits] CVS: llvm/include/llvm/CodeGen/FunctionLiveVarInfo.h
Message-ID: <200309301805.NAA04983@apoc.cs.uiuc.edu>
Changes in directory llvm/include/llvm/CodeGen:
FunctionLiveVarInfo.h updated: 1.28 -> 1.29
---
Log message:
Fix header file comment
---
Diffs of the changes:
Index: llvm/include/llvm/CodeGen/FunctionLiveVarInfo.h
diff -u llvm/include/llvm/CodeGen/FunctionLiveVarInfo.h:1.28 llvm/include/llvm/CodeGen/FunctionLiveVarInfo.h:1.29
--- llvm/include/llvm/CodeGen/FunctionLiveVarInfo.h:1.28 Tue Aug 12 18:39:08 2003
+++ llvm/include/llvm/CodeGen/FunctionLiveVarInfo.h Tue Sep 30 13:05:30 2003
@@ -1,62 +1,29 @@
-/* Title: FunctionLiveVarInfo.h -*- C++ -*-
- Author: Ruchira Sasanka
- Date: Jun 30, 01
- Purpose:
-
- This is the interface for live variable info of a function that is required
- by any other part of the compiler
-
- It must be called like:
-
- FunctionLiveVarInfo FLVI(Function *); // initializes data structures
- FLVI.analyze(); // do the actural live variable anal
-
- After the analysis, getInSetOfBB or getOutSetofBB can be called to get
- live var info of a BB.
-
- The live var set before an instruction can be obtained in 2 ways:
-
- 1. Use the method getLiveVarSetAfterInst(Instruction *) to get the LV Info
- just after an instruction. (also exists getLiveVarSetBeforeInst(..))
-
- This function caluclates the LV info for a BB only once and caches that
- info. If the cache does not contain the LV info of the instruction, it
- calculates the LV info for the whole BB and caches them.
-
- Getting liveVar info this way uses more memory since, LV info should be
- cached. However, if you need LV info of nearly all the instructions of a
- BB, this is the best and simplest interfrace.
-
-
- 2. Use the OutSet and applyTranferFuncForInst(const Instruction *const Inst)
- declared in LiveVarSet and traverse the instructions of a basic block in
- reverse (using const_reverse_iterator in the BB class).
-
- This is the most memory efficient method if you need LV info for
- only several instructions in a BasicBlock. An example is given below:
-
-
- LiveVarSet LVSet; // this will be the set used to traverse through each BB
-
- // Initialize LVSet so that it is the same as OutSet of the BB
- LVSet.setUnion( LVI->getOutSetOfBB( *BBI ) );
-
- BasicBlock::InstListType::const_reverse_iterator
- InstIterator = InstListInBB.rbegin(); // get the rev iter for inst in BB
-
- // iterate over all the instructions in BB in reverse
- for( ; InstIterator != InstListInBB.rend(); InstIterator++) {
-
- //...... all code here which uses LVSet ........
-
- LVSet.applyTranferFuncForInst(*InstIterator);
-
- // Now LVSet contains live vars ABOVE the current instrution
- }
-
- See buildInterferenceGraph() for the above example.
-*/
-
+//===-- CodeGen/FunctionLiveVarInfo.h - LiveVar Analysis --------*- C++ -*-===//
+//
+// This is the interface for live variable info of a function that is required
+// by any other part of the compiler
+//
+// After the analysis, getInSetOfBB or getOutSetofBB can be called to get
+// live var info of a BB.
+//
+// The live var set before an instruction can be obtained in 2 ways:
+//
+// 1. Use the method getLiveVarSetAfterInst(Instruction *) to get the LV Info
+// just after an instruction. (also exists getLiveVarSetBeforeInst(..))
+//
+// This function caluclates the LV info for a BB only once and caches that
+// info. If the cache does not contain the LV info of the instruction, it
+// calculates the LV info for the whole BB and caches them.
+//
+// Getting liveVar info this way uses more memory since, LV info should be
+// cached. However, if you need LV info of nearly all the instructions of a
+// BB, this is the best and simplest interfrace.
+//
+// 2. Use the OutSet and applyTranferFuncForInst(const Instruction *const Inst)
+// declared in LiveVarSet and traverse the instructions of a basic block in
+// reverse (using const_reverse_iterator in the BB class).
+//
+//===----------------------------------------------------------------------===//
#ifndef FUNCTION_LIVE_VAR_INFO_H
#define FUNCTION_LIVE_VAR_INFO_H
From lattner at cs.uiuc.edu Tue Sep 30 13:07:04 2003
From: lattner at cs.uiuc.edu (Chris Lattner)
Date: Tue Sep 30 13:07:04 2003
Subject: [llvm-commits] CVS: llvm/include/llvm/CodeGen/InstrSelection.h
Message-ID: <200309301807.NAA05015@apoc.cs.uiuc.edu>
Changes in directory llvm/include/llvm/CodeGen:
InstrSelection.h updated: 1.27 -> 1.28
---
Log message:
Fix header, remove dead decl
---
Diffs of the changes:
Index: llvm/include/llvm/CodeGen/InstrSelection.h
diff -u llvm/include/llvm/CodeGen/InstrSelection.h:1.27 llvm/include/llvm/CodeGen/InstrSelection.h:1.28
--- llvm/include/llvm/CodeGen/InstrSelection.h:1.27 Thu Aug 21 17:09:31 2003
+++ llvm/include/llvm/CodeGen/InstrSelection.h Tue Sep 30 13:06:51 2003
@@ -1,4 +1,4 @@
-//===-- llvm/CodeGen/InstrSelection.h --------------------------*- C++ -*--===//
+//===-- llvm/CodeGen/InstrSelection.h ---------------------------*- C++ -*-===//
//
// External interface to instruction selection.
//
@@ -20,8 +20,6 @@
//===--------------------- Required Functions ---------------------------------
// Target-dependent functions that MUST be implemented for each target.
//
-
-const unsigned MAX_INSTR_PER_VMINSTR = 8;
extern void GetInstructionsByRule (InstructionNode* subtreeRoot,
int ruleForNode,
From brukman at cs.uiuc.edu Tue Sep 30 13:10:04 2003
From: brukman at cs.uiuc.edu (Misha Brukman)
Date: Tue Sep 30 13:10:04 2003
Subject: [llvm-commits] CVS: llvm/tools/gccld/Linker.cpp
Message-ID: <200309301809.NAA26213@zion.cs.uiuc.edu>
Changes in directory llvm/tools/gccld:
Linker.cpp updated: 1.6 -> 1.7
---
Log message:
Doxygen-ified comments.
---
Diffs of the changes:
Index: llvm/tools/gccld/Linker.cpp
diff -u llvm/tools/gccld/Linker.cpp:1.6 llvm/tools/gccld/Linker.cpp:1.7
--- llvm/tools/gccld/Linker.cpp:1.6 Tue Sep 30 12:51:20 2003
+++ llvm/tools/gccld/Linker.cpp Tue Sep 30 13:09:32 2003
@@ -24,43 +24,35 @@
#include
#include
-//
-// Function: FileExists ()
-//
-// Description:
-// Determine if the specified filename exists and is readable.
-//
-// Inputs:
-// FN - The name of the file.
-//
-// Outputs:
-// None.
-//
-// Return Value:
-// TRUE - The file exists and is readable.
-// FALSE - The file does not exist or is unreadable.
-//
+/// FileExists - determines if the specified filename exists and is readable.
+///
+/// Inputs:
+/// FN - The name of the file.
+///
+/// Outputs:
+/// None.
+///
+/// Return Value:
+/// TRUE - The file exists and is readable.
+/// FALSE - The file does not exist or is unreadable.
+///
static inline bool FileExists(const std::string &FN) {
return access(FN.c_str(), R_OK | F_OK) != -1;
}
-//
-// Function: IsArchive ()
-//
-// Description:
-// Determine if the specified file is an ar archive. It determines this by
-// checking the magic string at the beginning of the file.
-//
-// Inputs:
-// filename - A C++ string containing the name of the file.
-//
-// Outputs:
-// None.
-//
-// Return value:
-// TRUE - The file is an archive.
-// FALSE - The file is not an archive.
-//
+/// IsArchive - determines if the specified file is an ar archive
+/// by checking the magic string at the beginning of the file.
+///
+/// Inputs:
+/// filename - A C++ string containing the name of the file.
+///
+/// Outputs:
+/// None.
+///
+/// Return value:
+/// TRUE - The file is an archive.
+/// FALSE - The file is not an archive.
+///
static inline bool IsArchive(const std::string &filename) {
std::string ArchiveMagic("!\012");
char buf[1 + ArchiveMagic.size()];
@@ -70,24 +62,20 @@
return ArchiveMagic == buf;
}
-//
-// Function: FindLib ()
-//
-// Description:
-// This function locates a particular library. It will prepend and append
-// various directories, prefixes, and suffixes until it can find the library.
-//
-// Inputs:
-// Filename - Name of the file to find.
-// Paths - List of directories to search.
-//
-// Outputs:
-// None.
-//
-// Return value:
-// The name of the file is returned.
-// If the file is not found, an empty string is returned.
-//
+/// FindLib - locates a particular library. It will prepend and append
+/// various directories, prefixes, and suffixes until it can find the library.
+///
+/// Inputs:
+/// Filename - Name of the file to find.
+/// Paths - List of directories to search.
+///
+/// Outputs:
+/// None.
+///
+/// Return value:
+/// The name of the file is returned.
+/// If the file is not found, an empty string is returned.
+///
static std::string
FindLib(const std::string &Filename, const std::vector &Paths) {
// Determine if the pathname can be found as it stands.
@@ -124,22 +112,19 @@
return std::string();
}
-//
-// Function: GetAllDefinedSymbols ()
-//
-// Description:
-// Find all of the defined symbols in the specified module.
-//
-// Inputs:
-// M - The module in which to find defined symbols.
-//
-// Outputs:
-// DefinedSymbols - A set of C++ strings that will contain the name of all
-// defined symbols.
-//
-// Return value:
-// None.
-//
+/// GetAllDefinedSymbols - finds all of the defined symbols in the specified
+/// module.
+///
+/// Inputs:
+/// M - The module in which to find defined symbols.
+///
+/// Outputs:
+/// DefinedSymbols - A set of C++ strings that will contain the name of all
+/// defined symbols.
+///
+/// Return value:
+/// None.
+///
void GetAllDefinedSymbols(Module *M, std::set &DefinedSymbols) {
for (Module::iterator I = M->begin(), E = M->end(); I != E; ++I)
if (I->hasName() && !I->isExternal() && !I->hasInternalLinkage())
@@ -149,25 +134,21 @@
DefinedSymbols.insert(I->getName());
}
-//
-// Function: GetAllUndefinedSymbols ()
-//
-// Description:
-// This calculates the set of undefined symbols that still exist in an LLVM
-// module. This is a bit tricky because there may be two symbols with the
-// same name but different LLVM types that will be resolved to each other but
-// aren't currently (thus we need to treat it as resolved).
-//
-// Inputs:
-// M - The module in which to find undefined symbols.
-//
-// Outputs:
-// UndefinedSymbols - A set of C++ strings containing the name of all
-// undefined symbols.
-//
-// Return value:
-// None.
-//
+/// GetAllUndefinedSymbols - calculates the set of undefined symbols that still
+/// exist in an LLVM module. This is a bit tricky because there may be two
+/// symbols with the same name but different LLVM types that will be resolved to
+/// each other but aren't currently (thus we need to treat it as resolved).
+///
+/// Inputs:
+/// M - The module in which to find undefined symbols.
+///
+/// Outputs:
+/// UndefinedSymbols - A set of C++ strings containing the name of all
+/// undefined symbols.
+///
+/// Return value:
+/// None.
+///
void
GetAllUndefinedSymbols(Module *M, std::set &UndefinedSymbols) {
std::set DefinedSymbols;
@@ -198,22 +179,18 @@
}
-//
-// Function: LoadObject ()
-//
-// Description:
-// Read the specified bytecode object file.
-//
-// Inputs:
-// FN - The name of the file to load.
-//
-// Outputs:
-// OutErrorMessage - The error message to give back to the caller.
-//
-// Return Value:
-// A pointer to a module represening the bytecode file is returned.
-// If an error occurs, the pointer is 0.
-//
+/// LoadObject - reads the specified bytecode object file.
+///
+/// Inputs:
+/// FN - The name of the file to load.
+///
+/// Outputs:
+/// OutErrorMessage - The error message to give back to the caller.
+///
+/// Return Value:
+/// A pointer to a module represening the bytecode file is returned.
+/// If an error occurs, the pointer is 0.
+///
std::auto_ptr
LoadObject(const std::string & FN, std::string &OutErrorMessage) {
std::string ErrorMessage;
@@ -224,25 +201,21 @@
return std::auto_ptr();
}
-//
-// Function: LinkInArchive ()
-//
-// Description:
-// This function will open an archive library and link in all objects which
-// provide symbols that are currently undefined.
-//
-// Inputs:
-// M - The module in which to link the archives.
-// Filename - The pathname of the archive.
-// Verbose - Flags whether verbose messages should be printed.
-//
-// Outputs:
-// ErrorMessage - A C++ string detailing what error occurred, if any.
-//
-// Return Value:
-// TRUE - An error occurred.
-// FALSE - No errors.
-//
+/// LinkInArchive - opens an archive library and link in all objects which
+/// provide symbols that are currently undefined.
+///
+/// Inputs:
+/// M - The module in which to link the archives.
+/// Filename - The pathname of the archive.
+/// Verbose - Flags whether verbose messages should be printed.
+///
+/// Outputs:
+/// ErrorMessage - A C++ string detailing what error occurred, if any.
+///
+/// Return Value:
+/// TRUE - An error occurred.
+/// FALSE - No errors.
+///
static bool LinkInArchive(Module *M,
const std::string &Filename,
std::string &ErrorMessage,
@@ -315,25 +288,21 @@
return false;
}
-//
-// Function: LinkInFile ()
-//
-// Description:
-// This function will open an archive library and link in all objects which
-// provide symbols that are currently undefined.
-//
-// Inputs:
-// HeadModule - The module in which to link the archives.
-// Filename - The pathname of the archive.
-// Verbose - Flags whether verbose messages should be printed.
-//
-// Outputs:
-// ErrorMessage - A C++ string detailing what error occurred, if any.
-//
-// Return Value:
-// TRUE - An error occurred.
-// FALSE - No errors.
-//
+/// LinkInFile - opens an archive library and link in all objects which
+/// provide symbols that are currently undefined.
+///
+/// Inputs:
+/// HeadModule - The module in which to link the archives.
+/// Filename - The pathname of the archive.
+/// Verbose - Flags whether verbose messages should be printed.
+///
+/// Outputs:
+/// ErrorMessage - A C++ string detailing what error occurred, if any.
+///
+/// Return Value:
+/// TRUE - An error occurred.
+/// FALSE - No errors.
+///
static bool LinkInFile(Module *HeadModule,
const std::string &Filename,
std::string &ErrorMessage,
@@ -345,31 +314,26 @@
return LinkModules(HeadModule, M.get(), &ErrorMessage);
}
-//
-// Function: LinkFiles ()
-//
-// Description:
-// This function takes a module and a list of files and links them all
-// together. It locates the file either in the current directory, as it's
-// absolute or relative pathname, or as a file somewhere in
-// LLVM_LIB_SEARCH_PATH.
-//
-// Inputs:
-// progname - The name of the program (infamous argv[0]).
-// HeadModule - The module under which all files will be linked.
-// Files - A vector of C++ strings indicating the LLVM bytecode filenames
-// to be linked. The names can refer to a mixture of pure LLVM
-// bytecode files and archive (ar) formatted files.
-// Verbose - Flags whether verbose output should be printed while linking.
-//
-// Outputs:
-// HeadModule - The module will have the specified LLVM bytecode files linked
-// in.
-//
-// Return value:
-// FALSE - No errors.
-// TRUE - Some error occurred.
-//
+/// LinkFiles - takes a module and a list of files and links them all together.
+/// It locates the file either in the current directory, as its absolute
+/// or relative pathname, or as a file somewhere in LLVM_LIB_SEARCH_PATH.
+///
+/// Inputs:
+/// progname - The name of the program (infamous argv[0]).
+/// HeadModule - The module under which all files will be linked.
+/// Files - A vector of C++ strings indicating the LLVM bytecode filenames
+/// to be linked. The names can refer to a mixture of pure LLVM
+/// bytecode files and archive (ar) formatted files.
+/// Verbose - Flags whether verbose output should be printed while linking.
+///
+/// Outputs:
+/// HeadModule - The module will have the specified LLVM bytecode files linked
+/// in.
+///
+/// Return value:
+/// FALSE - No errors.
+/// TRUE - Some error occurred.
+///
bool LinkFiles(const char *progname,
Module *HeadModule,
const std::vector &Files,
@@ -427,28 +391,24 @@
return false;
}
-//
-// Function: LinkLibraries ()
-//
-// Description:
-// This function takes the specified library files and links them into the
-// main bytecode object file.
-//
-// Inputs:
-// progname - The name of the program (infamous argv[0]).
-// HeadModule - The module into which all necessary libraries will be linked.
-// Libraries - The list of libraries to link into the module.
-// LibPaths - The list of library paths in which to find libraries.
-// Verbose - Flags whether verbose messages should be printed.
-// Native - Flags whether native code is being generated.
-//
-// Outputs:
-// HeadModule - The module will have all necessary libraries linked in.
-//
-// Return value:
-// FALSE - No error.
-// TRUE - Error.
-//
+/// LinkLibraries - takes the specified library files and links them into the
+/// main bytecode object file.
+///
+/// Inputs:
+/// progname - The name of the program (infamous argv[0]).
+/// HeadModule - The module into which all necessary libraries will be linked.
+/// Libraries - The list of libraries to link into the module.
+/// LibPaths - The list of library paths in which to find libraries.
+/// Verbose - Flags whether verbose messages should be printed.
+/// Native - Flags whether native code is being generated.
+///
+/// Outputs:
+/// HeadModule - The module will have all necessary libraries linked in.
+///
+/// Return value:
+/// FALSE - No error.
+/// TRUE - Error.
+///
bool LinkLibraries(const char *progname,
Module *HeadModule,
const std::vector &Libraries,
From lattner at cs.uiuc.edu Tue Sep 30 13:13:01 2003
From: lattner at cs.uiuc.edu (Chris Lattner)
Date: Tue Sep 30 13:13:01 2003
Subject: [llvm-commits] CVS: llvm/include/llvm/CodeGen/ValueSet.h
Message-ID: <200309301812.NAA12378@apoc.cs.uiuc.edu>
Changes in directory llvm/include/llvm/CodeGen:
ValueSet.h updated: 1.11 -> 1.12
---
Log message:
Fix header comment
---
Diffs of the changes:
Index: llvm/include/llvm/CodeGen/ValueSet.h
diff -u llvm/include/llvm/CodeGen/ValueSet.h:1.11 llvm/include/llvm/CodeGen/ValueSet.h:1.12
--- llvm/include/llvm/CodeGen/ValueSet.h:1.11 Tue Jan 14 16:56:14 2003
+++ llvm/include/llvm/CodeGen/ValueSet.h Tue Sep 30 13:12:25 2003
@@ -1,7 +1,10 @@
+//===-- llvm/CodeGen/ValueSet.h ---------------------------------*- C++ -*-===//
//
-// VALUESET.H - This header is OBSOLETE, do not use it for new code.
+// This header is OBSOLETE, do not use it for new code.
//
// FIXME: Eliminate this file.
+//
+//===----------------------------------------------------------------------===//
#ifndef VALUE_SET_H
#define VALUE_SET_H
@@ -17,7 +20,6 @@
RAV(const Value &v) : V(v) {}
};
std::ostream &operator<<(std::ostream &out, RAV Val);
-
typedef std::set ValueSet;
void printSet(const ValueSet &S);
From lattner at cs.uiuc.edu Tue Sep 30 13:20:03 2003
From: lattner at cs.uiuc.edu (Chris Lattner)
Date: Tue Sep 30 13:20:03 2003
Subject: [llvm-commits] CVS: llvm/include/Support/Alloca.h
Message-ID: <200309301819.NAA27450@apoc.cs.uiuc.edu>
Changes in directory llvm/include/Support:
Alloca.h (r1.3) removed
---
Log message:
Remove unused header
---
Diffs of the changes:
From lattner at cs.uiuc.edu Tue Sep 30 13:30:03 2003
From: lattner at cs.uiuc.edu (Chris Lattner)
Date: Tue Sep 30 13:30:03 2003
Subject: [llvm-commits] CVS: llvm/include/Support/ToolRunner.h
Message-ID: <200309301829.NAA29251@apoc.cs.uiuc.edu>
Changes in directory llvm/include/Support:
ToolRunner.h updated: 1.1 -> 1.2
---
Log message:
Add a file header
---
Diffs of the changes:
Index: llvm/include/Support/ToolRunner.h
diff -u llvm/include/Support/ToolRunner.h:1.1 llvm/include/Support/ToolRunner.h:1.2
--- llvm/include/Support/ToolRunner.h:1.1 Mon Sep 29 17:38:57 2003
+++ llvm/include/Support/ToolRunner.h Tue Sep 30 13:28:53 2003
@@ -1,3 +1,9 @@
+//===-- Support/ToolRunner.h ------------------------------------*- C++ -*-===//
+//
+// FIXME: document
+//
+//===----------------------------------------------------------------------===//
+
#ifndef TOOLRUNNER_H
#define TOOLRUNNER_H
From lattner at cs.uiuc.edu Tue Sep 30 13:38:00 2003
From: lattner at cs.uiuc.edu (Chris Lattner)
Date: Tue Sep 30 13:38:00 2003
Subject: [llvm-commits] CVS: llvm/include/llvm/Target/TargetData.h TargetMachine.h TargetRegInfo.h TargetSchedInfo.h
Message-ID: <200309301837.NAA18238@apoc.cs.uiuc.edu>
Changes in directory llvm/include/llvm/Target:
TargetData.h updated: 1.18 -> 1.19
TargetMachine.h updated: 1.34 -> 1.35
TargetRegInfo.h updated: 1.44 -> 1.45
TargetSchedInfo.h updated: 1.18 -> 1.19
---
Log message:
Standardize header file comments
---
Diffs of the changes:
Index: llvm/include/llvm/Target/TargetData.h
diff -u llvm/include/llvm/Target/TargetData.h:1.18 llvm/include/llvm/Target/TargetData.h:1.19
--- llvm/include/llvm/Target/TargetData.h:1.18 Mon Aug 18 09:28:37 2003
+++ llvm/include/llvm/Target/TargetData.h Tue Sep 30 13:37:47 2003
@@ -1,4 +1,4 @@
-//===-- llvm/Target/TargetData.h - Data size & alignment routines-*- C++ -*-==//
+//===-- llvm/Target/TargetData.h - Data size & alignment info ---*- C++ -*-===//
//
// This file defines target properties related to datatype size/offset/alignment
// information. It uses lazy annotations to cache information about how
Index: llvm/include/llvm/Target/TargetMachine.h
diff -u llvm/include/llvm/Target/TargetMachine.h:1.34 llvm/include/llvm/Target/TargetMachine.h:1.35
--- llvm/include/llvm/Target/TargetMachine.h:1.34 Mon Sep 1 15:40:43 2003
+++ llvm/include/llvm/Target/TargetMachine.h Tue Sep 30 13:37:47 2003
@@ -1,4 +1,4 @@
-//===-- llvm/Target/TargetMachine.h - General Target Information -*- C++ -*-==//
+//===-- llvm/Target/TargetMachine.h - Target Information --------*- C++ -*-===//
//
// This file describes the general parts of a Target machine.
//
Index: llvm/include/llvm/Target/TargetRegInfo.h
diff -u llvm/include/llvm/Target/TargetRegInfo.h:1.44 llvm/include/llvm/Target/TargetRegInfo.h:1.45
--- llvm/include/llvm/Target/TargetRegInfo.h:1.44 Tue Jul 29 14:41:23 2003
+++ llvm/include/llvm/Target/TargetRegInfo.h Tue Sep 30 13:37:47 2003
@@ -1,4 +1,4 @@
-//===-- llvm/Target/TargetRegInfo.h - Target Register Info -------*- C++ -*-==//
+//===-- llvm/Target/TargetRegInfo.h - Target Register Info ------*- C++ -*-===//
//
// This file is used to describe the register system of a target to the
// register allocator.
Index: llvm/include/llvm/Target/TargetSchedInfo.h
diff -u llvm/include/llvm/Target/TargetSchedInfo.h:1.18 llvm/include/llvm/Target/TargetSchedInfo.h:1.19
--- llvm/include/llvm/Target/TargetSchedInfo.h:1.18 Sat Jun 21 22:06:38 2003
+++ llvm/include/llvm/Target/TargetSchedInfo.h Tue Sep 30 13:37:47 2003
@@ -1,4 +1,4 @@
-//===- Target/TargetSchedInfo.h - Target Instruction Sched Info --*- C++ -*-==//
+//===- Target/TargetSchedInfo.h - Target Instruction Sched Info -*- C++ -*-===//
//
// This file describes the target machine to the instruction scheduler.
//
From lattner at cs.uiuc.edu Tue Sep 30 13:38:05 2003
From: lattner at cs.uiuc.edu (Chris Lattner)
Date: Tue Sep 30 13:38:05 2003
Subject: [llvm-commits] CVS: llvm/include/llvm/Support/CFG.h InstIterator.h InstVisitor.h Mangler.h
Message-ID: <200309301837.NAA18225@apoc.cs.uiuc.edu>
Changes in directory llvm/include/llvm/Support:
CFG.h updated: 1.13 -> 1.14
InstIterator.h updated: 1.6 -> 1.7
InstVisitor.h updated: 1.21 -> 1.22
Mangler.h updated: 1.5 -> 1.6
---
Log message:
Standardize header file comments
---
Diffs of the changes:
Index: llvm/include/llvm/Support/CFG.h
diff -u llvm/include/llvm/Support/CFG.h:1.13 llvm/include/llvm/Support/CFG.h:1.14
--- llvm/include/llvm/Support/CFG.h:1.13 Sat Sep 20 09:39:18 2003
+++ llvm/include/llvm/Support/CFG.h Tue Sep 30 13:37:46 2003
@@ -1,12 +1,12 @@
-//===-- llvm/Support/CFG.h - Process LLVM structures as graphs ---*- C++ -*--=//
+//===-- llvm/Support/CFG.h - Process LLVM structures as graphs --*- C++ -*-===//
//
// This file defines specializations of GraphTraits that allow Function and
// BasicBlock graphs to be treated as proper graphs for generic algorithms.
//
//===----------------------------------------------------------------------===//
-#ifndef LLVM_CFG_H
-#define LLVM_CFG_H
+#ifndef LLVM_SUPPORT_CFG_H
+#define LLVM_SUPPORT_CFG_H
#include "Support/GraphTraits.h"
#include "llvm/Function.h"
Index: llvm/include/llvm/Support/InstIterator.h
diff -u llvm/include/llvm/Support/InstIterator.h:1.6 llvm/include/llvm/Support/InstIterator.h:1.7
--- llvm/include/llvm/Support/InstIterator.h:1.6 Tue Sep 23 23:09:50 2003
+++ llvm/include/llvm/Support/InstIterator.h Tue Sep 30 13:37:46 2003
@@ -1,4 +1,4 @@
-//===-- llvm/Support/InstIterator.h - Classes for inst iteration -*- C++ -*--=//
+//===- llvm/Support/InstIterator.h - Classes for inst iteration -*- C++ -*-===//
//
// This file contains definitions of two iterators for iterating over the
// instructions in a function. This is effectively a wrapper around a two level
Index: llvm/include/llvm/Support/InstVisitor.h
diff -u llvm/include/llvm/Support/InstVisitor.h:1.21 llvm/include/llvm/Support/InstVisitor.h:1.22
--- llvm/include/llvm/Support/InstVisitor.h:1.21 Mon Sep 8 13:54:16 2003
+++ llvm/include/llvm/Support/InstVisitor.h Tue Sep 30 13:37:46 2003
@@ -1,4 +1,4 @@
-//===- llvm/Support/InstVisitor.h - Define instruction visitors --*- C++ -*--=//
+//===- llvm/Support/InstVisitor.h - Define instruction visitors -*- C++ -*-===//
//
// This template class is used to define instruction visitors in a typesafe
// manner without having to use lots of casts and a big switch statement (in
Index: llvm/include/llvm/Support/Mangler.h
diff -u llvm/include/llvm/Support/Mangler.h:1.5 llvm/include/llvm/Support/Mangler.h:1.6
--- llvm/include/llvm/Support/Mangler.h:1.5 Mon Aug 11 14:34:27 2003
+++ llvm/include/llvm/Support/Mangler.h Tue Sep 30 13:37:46 2003
@@ -1,4 +1,4 @@
-//===-- Mangler.h - Self-contained c/asm llvm name mangler -*- C++ -*- ----===//
+//===-- Mangler.h - Self-contained c/asm llvm name mangler ------*- C++ -*-===//
//
// Unified name mangler for CWriter and assembly backends.
//
From lattner at cs.uiuc.edu Tue Sep 30 13:38:09 2003
From: lattner at cs.uiuc.edu (Chris Lattner)
Date: Tue Sep 30 13:38:09 2003
Subject: [llvm-commits] CVS: llvm/include/llvm/CodeGen/InstrForest.h InstrScheduling.h MachineInstr.h RegisterAllocation.h SchedGraphCommon.h
Message-ID: <200309301837.NAA18212@apoc.cs.uiuc.edu>
Changes in directory llvm/include/llvm/CodeGen:
InstrForest.h updated: 1.29 -> 1.30
InstrScheduling.h updated: 1.11 -> 1.12
MachineInstr.h updated: 1.112 -> 1.113
RegisterAllocation.h updated: 1.5 -> 1.6
SchedGraphCommon.h updated: 1.4 -> 1.5
---
Log message:
Standardize header file comments
---
Diffs of the changes:
Index: llvm/include/llvm/CodeGen/InstrForest.h
diff -u llvm/include/llvm/CodeGen/InstrForest.h:1.29 llvm/include/llvm/CodeGen/InstrForest.h:1.30
--- llvm/include/llvm/CodeGen/InstrForest.h:1.29 Sat Jul 26 18:18:11 2003
+++ llvm/include/llvm/CodeGen/InstrForest.h Tue Sep 30 13:37:44 2003
@@ -1,4 +1,4 @@
-//===-- llvm/CodeGen/InstForest.h ------------------------------*- C++ -*--===//
+//===-- llvm/CodeGen/InstForest.h -------------------------------*- C++ -*-===//
//
// Purpose:
// Convert SSA graph to instruction trees for instruction selection.
Index: llvm/include/llvm/CodeGen/InstrScheduling.h
diff -u llvm/include/llvm/CodeGen/InstrScheduling.h:1.11 llvm/include/llvm/CodeGen/InstrScheduling.h:1.12
--- llvm/include/llvm/CodeGen/InstrScheduling.h:1.11 Thu Aug 14 01:09:27 2003
+++ llvm/include/llvm/CodeGen/InstrScheduling.h Tue Sep 30 13:37:44 2003
@@ -1,4 +1,4 @@
-//===-- InstrScheduling.h - Interface To Instruction Scheduling --*- C++ -*-==//
+//===-- InstrScheduling.h - Interface To Instruction Scheduling -*- C++ -*-===//
//
// This file defines a minimal, but complete, interface to instruction
// scheduling.
@@ -21,6 +21,6 @@
// are still in SSA form.
//---------------------------------------------------------------------------
-FunctionPass *createInstructionSchedulingWithSSAPass(const TargetMachine &Target);
+FunctionPass *createInstructionSchedulingWithSSAPass(const TargetMachine &TM);
#endif
Index: llvm/include/llvm/CodeGen/MachineInstr.h
diff -u llvm/include/llvm/CodeGen/MachineInstr.h:1.112 llvm/include/llvm/CodeGen/MachineInstr.h:1.113
--- llvm/include/llvm/CodeGen/MachineInstr.h:1.112 Thu Aug 21 17:09:31 2003
+++ llvm/include/llvm/CodeGen/MachineInstr.h Tue Sep 30 13:37:44 2003
@@ -1,4 +1,4 @@
-//===-- llvm/CodeGen/MachineInstr.h - MachineInstr class ---------*- C++ -*--=//
+//===-- llvm/CodeGen/MachineInstr.h - MachineInstr class --------*- C++ -*-===//
//
// This file contains the declaration of the MachineInstr class, which is the
// basic representation for all target dependent machine instructions used by
@@ -12,7 +12,6 @@
#include "llvm/Target/MRegisterInfo.h"
#include "Support/Annotation.h"
#include "Support/iterator"
-#include
class Value;
class Function;
Index: llvm/include/llvm/CodeGen/RegisterAllocation.h
diff -u llvm/include/llvm/CodeGen/RegisterAllocation.h:1.5 llvm/include/llvm/CodeGen/RegisterAllocation.h:1.6
--- llvm/include/llvm/CodeGen/RegisterAllocation.h:1.5 Thu Aug 14 01:09:27 2003
+++ llvm/include/llvm/CodeGen/RegisterAllocation.h Tue Sep 30 13:37:44 2003
@@ -1,4 +1,4 @@
-//===-- CodeGen/RegisterAllocation.h - RegAlloc Pass -------------*- C++ -*--=//
+//===-- CodeGen/RegisterAllocation.h - RegAlloc Pass ------------*- C++ -*-===//
//
// This pass register allocates a module, a method at a time.
//
Index: llvm/include/llvm/CodeGen/SchedGraphCommon.h
diff -u llvm/include/llvm/CodeGen/SchedGraphCommon.h:1.4 llvm/include/llvm/CodeGen/SchedGraphCommon.h:1.5
--- llvm/include/llvm/CodeGen/SchedGraphCommon.h:1.4 Thu Aug 28 10:31:28 2003
+++ llvm/include/llvm/CodeGen/SchedGraphCommon.h Tue Sep 30 13:37:44 2003
@@ -1,9 +1,9 @@
-//===-- SchedGraphCommon.h - Scheduling Base Graph ---------------*- C++ -*---=//
+//===-- SchedGraphCommon.h - Scheduling Base Graph --------------*- C++ -*-===//
//
// A common graph class that is based on the SSA graph. It includes
// extra dependencies that are caused by machine resources.
//
-//===-------------------------------------------------------------------------=//
+//===----------------------------------------------------------------------===//
#ifndef LLVM_CODEGEN_SCHEDGRAPHCOMMON_H
#define LLVM_CODEGEN_SCHEDGRAPHCOMMON_H
From lattner at cs.uiuc.edu Tue Sep 30 13:38:14 2003
From: lattner at cs.uiuc.edu (Chris Lattner)
Date: Tue Sep 30 13:38:14 2003
Subject: [llvm-commits] CVS: llvm/include/llvm/Bytecode/Format.h Primitives.h Reader.h WriteBytecodePass.h Writer.h
Message-ID: <200309301837.NAA18197@apoc.cs.uiuc.edu>
Changes in directory llvm/include/llvm/Bytecode:
Format.h updated: 1.3 -> 1.4
Primitives.h updated: 1.11 -> 1.12
Reader.h updated: 1.12 -> 1.13
WriteBytecodePass.h updated: 1.7 -> 1.8
Writer.h updated: 1.2 -> 1.3
---
Log message:
Standardize header file comments
---
Diffs of the changes:
Index: llvm/include/llvm/Bytecode/Format.h
diff -u llvm/include/llvm/Bytecode/Format.h:1.3 llvm/include/llvm/Bytecode/Format.h:1.4
--- llvm/include/llvm/Bytecode/Format.h:1.3 Wed Mar 19 14:48:27 2003
+++ llvm/include/llvm/Bytecode/Format.h Tue Sep 30 13:37:43 2003
@@ -1,4 +1,4 @@
-//===-- llvm/Bytecode/Format.h - VM bytecode file format info ----*- C++ -*--=//
+//===-- llvm/Bytecode/Format.h - VM bytecode file format info ---*- C++ -*-===//
//
// This header defines intrinsic constants that are useful to libraries that
// need to hack on bytecode files directly, like the reader and writer.
@@ -24,7 +24,7 @@
ModuleGlobalInfo,
GlobalTypePlane,
- // Method subtypes:
+ // Function subtypes:
MethodInfo = 0x21,
// Can also have ConstantPool block
// Can also have SymbolTable block
Index: llvm/include/llvm/Bytecode/Primitives.h
diff -u llvm/include/llvm/Bytecode/Primitives.h:1.11 llvm/include/llvm/Bytecode/Primitives.h:1.12
--- llvm/include/llvm/Bytecode/Primitives.h:1.11 Mon Sep 22 18:35:54 2003
+++ llvm/include/llvm/Bytecode/Primitives.h Tue Sep 30 13:37:43 2003
@@ -1,4 +1,4 @@
-//===-- llvm/Bytecode/Primitives.h - Bytecode file format prims --*- C++ -*--=//
+//===-- llvm/Bytecode/Primitives.h - Bytecode file format prims -*- C++ -*-===//
//
// This header defines some basic functions for reading and writing basic
// primitive types to a bytecode stream.
Index: llvm/include/llvm/Bytecode/Reader.h
diff -u llvm/include/llvm/Bytecode/Reader.h:1.12 llvm/include/llvm/Bytecode/Reader.h:1.13
--- llvm/include/llvm/Bytecode/Reader.h:1.12 Mon Sep 22 18:40:38 2003
+++ llvm/include/llvm/Bytecode/Reader.h Tue Sep 30 13:37:43 2003
@@ -1,4 +1,4 @@
-//===-- llvm/Bytecode/Reader.h - Reader for VM bytecode files ----*- C++ -*--=//
+//===-- llvm/Bytecode/Reader.h - Reader for VM bytecode files ---*- C++ -*-===//
//
// This functionality is implemented by the lib/Bytecode/Reader library.
// This library is used to read VM bytecode files from an iostream.
Index: llvm/include/llvm/Bytecode/WriteBytecodePass.h
diff -u llvm/include/llvm/Bytecode/WriteBytecodePass.h:1.7 llvm/include/llvm/Bytecode/WriteBytecodePass.h:1.8
--- llvm/include/llvm/Bytecode/WriteBytecodePass.h:1.7 Tue Jul 23 14:56:03 2002
+++ llvm/include/llvm/Bytecode/WriteBytecodePass.h Tue Sep 30 13:37:43 2003
@@ -1,4 +1,4 @@
-//===- llvm/Bytecode/WriteBytecodePass.h - Bytecode Writer Pass --*- C++ -*--=//
+//===- llvm/Bytecode/WriteBytecodePass.h - Bytecode Writer Pass -*- C++ -*-===//
//
// This file defines a simple pass to write the working module to a file after
// pass processing is completed.
Index: llvm/include/llvm/Bytecode/Writer.h
diff -u llvm/include/llvm/Bytecode/Writer.h:1.2 llvm/include/llvm/Bytecode/Writer.h:1.3
--- llvm/include/llvm/Bytecode/Writer.h:1.2 Mon Apr 29 12:41:28 2002
+++ llvm/include/llvm/Bytecode/Writer.h Tue Sep 30 13:37:43 2003
@@ -1,4 +1,4 @@
-//===-- llvm/Bytecode/Writer.h - Writer for VM bytecode files ----*- C++ -*--=//
+//===-- llvm/Bytecode/Writer.h - Writer for VM bytecode files ---*- C++ -*-===//
//
// This functionality is implemented by the lib/BytecodeWriter library.
// This library is used to write VM bytecode files to an iostream. First, you
From lattner at cs.uiuc.edu Tue Sep 30 13:38:18 2003
From: lattner at cs.uiuc.edu (Chris Lattner)
Date: Tue Sep 30 13:38:18 2003
Subject: [llvm-commits] CVS: llvm/include/llvm/Assembly/CWriter.h CachedWriter.h Parser.h PrintModulePass.h Writer.h
Message-ID: <200309301837.NAA18182@apoc.cs.uiuc.edu>
Changes in directory llvm/include/llvm/Assembly:
CWriter.h updated: 1.2 -> 1.3
CachedWriter.h updated: 1.9 -> 1.10
Parser.h updated: 1.5 -> 1.6
PrintModulePass.h updated: 1.12 -> 1.13
Writer.h updated: 1.24 -> 1.25
---
Log message:
Standardize header file comments
---
Diffs of the changes:
Index: llvm/include/llvm/Assembly/CWriter.h
diff -u llvm/include/llvm/Assembly/CWriter.h:1.2 llvm/include/llvm/Assembly/CWriter.h:1.3
--- llvm/include/llvm/Assembly/CWriter.h:1.2 Fri Aug 30 19:28:25 2002
+++ llvm/include/llvm/Assembly/CWriter.h Tue Sep 30 13:37:41 2003
@@ -1,4 +1,4 @@
-//===-- llvm/Assembly/CWriter.h - C Printer for LLVM programs --*- C++ -*--===//
+//===-- llvm/Assembly/CWriter.h - C Printer for LLVM programs ---*- C++ -*-===//
//
// This functionality is implemented by the lib/CWriter library. This library
// is used to print C language files to an iostream.
Index: llvm/include/llvm/Assembly/CachedWriter.h
diff -u llvm/include/llvm/Assembly/CachedWriter.h:1.9 llvm/include/llvm/Assembly/CachedWriter.h:1.10
--- llvm/include/llvm/Assembly/CachedWriter.h:1.9 Sat Apr 27 23:47:33 2002
+++ llvm/include/llvm/Assembly/CachedWriter.h Tue Sep 30 13:37:41 2003
@@ -1,4 +1,4 @@
-//===-- llvm/Assembly/CachedWriter.h - Printer Accellerator ------*- C++ -*--=//
+//===-- llvm/Assembly/CachedWriter.h - Printer Accellerator -----*- C++ -*-===//
//
// This file defines a 'CacheWriter' class that is used to accelerate printing
// chunks of LLVM. This is used when a module is not being changed, but random
Index: llvm/include/llvm/Assembly/Parser.h
diff -u llvm/include/llvm/Assembly/Parser.h:1.5 llvm/include/llvm/Assembly/Parser.h:1.6
--- llvm/include/llvm/Assembly/Parser.h:1.5 Fri Aug 30 17:51:21 2002
+++ llvm/include/llvm/Assembly/Parser.h Tue Sep 30 13:37:41 2003
@@ -1,4 +1,4 @@
-//===-- llvm/Assembly/Parser.h - Parser for VM assembly files ----*- C++ -*--=//
+//===-- llvm/Assembly/Parser.h - Parser for VM assembly files ---*- C++ -*-===//
//
// These classes are implemented by the lib/AsmParser library.
//
@@ -27,8 +27,7 @@
// ParseException - For when an exceptional event is generated by the parser.
// This class lets you print out the exception message
//
-class ParseException {
-public:
+struct ParseException {
ParseException(const std::string &filename, const std::string &message,
int LineNo = -1, int ColNo = -1);
Index: llvm/include/llvm/Assembly/PrintModulePass.h
diff -u llvm/include/llvm/Assembly/PrintModulePass.h:1.12 llvm/include/llvm/Assembly/PrintModulePass.h:1.13
--- llvm/include/llvm/Assembly/PrintModulePass.h:1.12 Thu Sep 19 15:49:25 2002
+++ llvm/include/llvm/Assembly/PrintModulePass.h Tue Sep 30 13:37:41 2003
@@ -1,4 +1,4 @@
-//===- llvm/Assembly/PrintModulePass.h - Printing Pass -----------*- C++ -*--=//
+//===- llvm/Assembly/PrintModulePass.h - Printing Pass ----------*- C++ -*-===//
//
// This file defines two passes to print out a module. The PrintModulePass pass
// simply prints out the entire module when it is executed. The
Index: llvm/include/llvm/Assembly/Writer.h
diff -u llvm/include/llvm/Assembly/Writer.h:1.24 llvm/include/llvm/Assembly/Writer.h:1.25
--- llvm/include/llvm/Assembly/Writer.h:1.24 Wed Jul 10 11:48:14 2002
+++ llvm/include/llvm/Assembly/Writer.h Tue Sep 30 13:37:41 2003
@@ -1,4 +1,4 @@
-//===-- llvm/Assembly/Writer.h - Printer for VM assembly files ---*- C++ -*--=//
+//===-- llvm/Assembly/Writer.h - Printer for VM assembly files --*- C++ -*-===//
//
// This functionality is implemented by the lib/Assembly/Writer library.
// This library is used to print VM assembly language files to an iostream. It
@@ -21,13 +21,11 @@
class Module;
class Value;
-
// WriteTypeSymbolic - This attempts to write the specified type as a symbolic
// type, iff there is an entry in the modules symbol table for the specified
// type or one of it's component types. This is slower than a simple x << Type;
//
std::ostream &WriteTypeSymbolic(std::ostream &, const Type *, const Module *M);
-
// WriteAsOperand - Write the name of the specified value out to the specified
// ostream. This can be useful when you just want to print int %reg126, not the
From lattner at cs.uiuc.edu Tue Sep 30 13:39:01 2003
From: lattner at cs.uiuc.edu (Chris Lattner)
Date: Tue Sep 30 13:39:01 2003
Subject: [llvm-commits] CVS: llvm/include/Support/BitSetVector.h Casting.h CommandLine.h DOTGraphTraits.h DataTypes.h DepthFirstIterator.h EquivalenceClasses.h GraphTraits.h GraphWriter.h HashExtras.h MathExtras.h PostOrderIterator.h STLExtras.h SetOperations.h Signals.h StringExtras.h SystemUtils.h Tree.h TypeInfo.h hash_map ilist
Message-ID: <200309301838.NAA18683@apoc.cs.uiuc.edu>
Changes in directory llvm/include/Support:
BitSetVector.h updated: 1.8 -> 1.9
Casting.h updated: 1.8 -> 1.9
CommandLine.h updated: 1.25 -> 1.26
DOTGraphTraits.h updated: 1.5 -> 1.6
DataTypes.h updated: 1.13 -> 1.14
DepthFirstIterator.h updated: 1.6 -> 1.7
EquivalenceClasses.h updated: 1.3 -> 1.4
GraphTraits.h updated: 1.3 -> 1.4
GraphWriter.h updated: 1.13 -> 1.14
HashExtras.h updated: 1.7 -> 1.8
MathExtras.h updated: 1.6 -> 1.7
PostOrderIterator.h updated: 1.11 -> 1.12
STLExtras.h updated: 1.6 -> 1.7
SetOperations.h updated: 1.2 -> 1.3
Signals.h updated: 1.4 -> 1.5
StringExtras.h updated: 1.4 -> 1.5
SystemUtils.h updated: 1.6 -> 1.7
Tree.h updated: 1.6 -> 1.7
TypeInfo.h updated: 1.2 -> 1.3
hash_map updated: 1.11 -> 1.12
ilist updated: 1.10 -> 1.11
---
Log message:
Standardize header file comments
---
Diffs of the changes:
Index: llvm/include/Support/BitSetVector.h
diff -u llvm/include/Support/BitSetVector.h:1.8 llvm/include/Support/BitSetVector.h:1.9
--- llvm/include/Support/BitSetVector.h:1.8 Mon Jun 30 16:58:23 2003
+++ llvm/include/Support/BitSetVector.h Tue Sep 30 13:37:23 2003
@@ -1,13 +1,11 @@
-//===-- BitVectorSet.h - A bit-vector representation of sets -----*- C++ -*--=//
+//===-- BitVectorSet.h - A bit-vector representation of sets ----*- C++ -*-===//
//
-// class BitVectorSet --
-//
-// An implementation of the bit-vector representation of sets.
-// Unlike vector, this allows much more efficient parallel set
-// operations on bits, by using the bitset template . The bitset template
-// unfortunately can only represent sets with a size chosen at compile-time.
-// We therefore use a vector of bitsets. The maxmimum size of our sets
-// (i.e., the size of the universal set) can be chosen at creation time.
+// This is an implementation of the bit-vector representation of sets. Unlike
+// vector, this allows much more efficient parallel set operations on
+// bits, by using the bitset template. The bitset template unfortunately can
+// only represent sets with a size chosen at compile-time. We therefore use a
+// vector of bitsets. The maxmimum size of our sets (i.e., the size of the
+// universal set) can be chosen at creation time.
//
// External functions:
//
Index: llvm/include/Support/Casting.h
diff -u llvm/include/Support/Casting.h:1.8 llvm/include/Support/Casting.h:1.9
--- llvm/include/Support/Casting.h:1.8 Wed Sep 10 00:30:09 2003
+++ llvm/include/Support/Casting.h Tue Sep 30 13:37:23 2003
@@ -1,4 +1,4 @@
-//===-- Support/Casting.h - Allow flexible, checked, casts -------*- C++ -*--=//
+//===-- Support/Casting.h - Allow flexible, checked, casts ------*- C++ -*-===//
//
// This file defines the isa(), cast(), dyn_cast(), cast_or_null(),
// and dyn_cast_or_null() templates.
Index: llvm/include/Support/CommandLine.h
diff -u llvm/include/Support/CommandLine.h:1.25 llvm/include/Support/CommandLine.h:1.26
--- llvm/include/Support/CommandLine.h:1.25 Fri Aug 22 09:26:59 2003
+++ llvm/include/Support/CommandLine.h Tue Sep 30 13:37:23 2003
@@ -1,4 +1,4 @@
-//===- Support/CommandLine.h - Flexible Command line parser ------*- C++ -*--=//
+//===- Support/CommandLine.h - Flexible Command line parser -----*- C++ -*-===//
//
// This class implements a command line argument processor that is useful when
// creating a tool. It provides a simple, minimalistic interface that is easily
Index: llvm/include/Support/DOTGraphTraits.h
diff -u llvm/include/Support/DOTGraphTraits.h:1.5 llvm/include/Support/DOTGraphTraits.h:1.6
--- llvm/include/Support/DOTGraphTraits.h:1.5 Mon Aug 18 09:26:23 2003
+++ llvm/include/Support/DOTGraphTraits.h Tue Sep 30 13:37:23 2003
@@ -1,4 +1,4 @@
-//===-- Support/DotGraphTraits.h - Customize .dot output -------*- C++ -*--===//
+//===-- Support/DotGraphTraits.h - Customize .dot output --------*- C++ -*-===//
//
// This file defines a template class that can be used to customize dot output
// graphs generated by the GraphWriter.h file. The default implementation of
Index: llvm/include/Support/DataTypes.h
diff -u llvm/include/Support/DataTypes.h:1.13 llvm/include/Support/DataTypes.h:1.14
--- llvm/include/Support/DataTypes.h:1.13 Mon Aug 11 15:04:57 2003
+++ llvm/include/Support/DataTypes.h Tue Sep 30 13:37:23 2003
@@ -1,4 +1,4 @@
-//===-- include/Support/DataTypes.h - Define fixed size types ----*- C++ -*--=//
+//===-- include/Support/DataTypes.h - Define fixed size types ---*- C++ -*-===//
//
// This file contains definitions to figure out the size of _HOST_ data types.
// This file is important because different host OS's define different macros,
Index: llvm/include/Support/DepthFirstIterator.h
diff -u llvm/include/Support/DepthFirstIterator.h:1.6 llvm/include/Support/DepthFirstIterator.h:1.7
--- llvm/include/Support/DepthFirstIterator.h:1.6 Fri Jul 25 12:49:28 2003
+++ llvm/include/Support/DepthFirstIterator.h Tue Sep 30 13:37:23 2003
@@ -1,4 +1,4 @@
-//===- Support/DepthFirstIterator.h - Depth First iterator -------*- C++ -*--=//
+//===- Support/DepthFirstIterator.h - Depth First iterator ------*- C++ -*-===//
//
// This file builds on the Support/GraphTraits.h file to build generic depth
// first graph iterator.
Index: llvm/include/Support/EquivalenceClasses.h
diff -u llvm/include/Support/EquivalenceClasses.h:1.3 llvm/include/Support/EquivalenceClasses.h:1.4
--- llvm/include/Support/EquivalenceClasses.h:1.3 Mon Jun 16 19:35:55 2003
+++ llvm/include/Support/EquivalenceClasses.h Tue Sep 30 13:37:23 2003
@@ -1,12 +1,11 @@
-//===-- Support/EquivalenceClasses.h -------------------------*- C++ -*--=//
+//===-- Support/EquivalenceClasses.h ----------------------------*- C++ -*-===//
//
-// Generic implementation of equivalence classes and implementation of
-// union-find algorithms
-// A not-so-fancy implementation: 2 level tree i.e root and one more level
-// Overhead of a union = size of the equivalence class being attached
-// Overhead of a find = 1.
+// Generic implementation of equivalence classes and implementation of
+// union-find algorithms A not-so-fancy implementation: 2 level tree i.e root
+// and one more level Overhead of a union = size of the equivalence class being
+// attached Overhead of a find = 1.
//
-//===------------------------------------------------------------------===//
+//===----------------------------------------------------------------------===//
#ifndef SUPPORT_EQUIVALENCECLASSES_H
#define SUPPORT_EQUIVALENCECLASSES_H
@@ -68,7 +67,6 @@
return EqClass;
ElemTy classLeader = Elem2ECLeaderMap[Element1];
-
for (typename std::map::iterator ElemI =
Elem2ECLeaderMap.begin(), ElemE = Elem2ECLeaderMap.end();
ElemI != ElemE; ++ElemI) {
@@ -77,13 +75,11 @@
}
return EqClass;
-
}
std::map& getLeaderMap() {
return Elem2ECLeaderMap ;
}
-
};
#endif
Index: llvm/include/Support/GraphTraits.h
diff -u llvm/include/Support/GraphTraits.h:1.3 llvm/include/Support/GraphTraits.h:1.4
--- llvm/include/Support/GraphTraits.h:1.3 Mon Jun 16 19:35:55 2003
+++ llvm/include/Support/GraphTraits.h Tue Sep 30 13:37:23 2003
@@ -1,4 +1,4 @@
-//===-- Support/GraphTraits.h - Graph traits template ------------*- C++ -*--=//
+//===-- Support/GraphTraits.h - Graph traits template -----------*- C++ -*-===//
//
// This file defines the little GraphTraits template class that should be
// specialized by classes that want to be iteratable by generic graph iterators.
Index: llvm/include/Support/GraphWriter.h
diff -u llvm/include/Support/GraphWriter.h:1.13 llvm/include/Support/GraphWriter.h:1.14
--- llvm/include/Support/GraphWriter.h:1.13 Wed Feb 5 13:40:59 2003
+++ llvm/include/Support/GraphWriter.h Tue Sep 30 13:37:23 2003
@@ -1,4 +1,4 @@
-//===-- Support/GraphWriter.h - Write a graph to a .dot file ---*- C++ -*--===//
+//===-- Support/GraphWriter.h - Write a graph to a .dot file ----*- C++ -*-===//
//
// This file defines a simple interface that can be used to print out generic
// LLVM graphs to ".dot" files. "dot" is a tool that is part of the AT&T
Index: llvm/include/Support/HashExtras.h
diff -u llvm/include/Support/HashExtras.h:1.7 llvm/include/Support/HashExtras.h:1.8
--- llvm/include/Support/HashExtras.h:1.7 Fri Aug 15 12:52:02 2003
+++ llvm/include/Support/HashExtras.h Tue Sep 30 13:37:23 2003
@@ -1,4 +1,4 @@
-//===-- HashExtras.h - Useful functions for STL hash containers --*- C++ -*--=//
+//===-- HashExtras.h - Useful functions for STL hash containers -*- C++ -*-===//
//
// This file contains some templates that are useful if you are working with the
// STL Hashed containers.
Index: llvm/include/Support/MathExtras.h
diff -u llvm/include/Support/MathExtras.h:1.6 llvm/include/Support/MathExtras.h:1.7
--- llvm/include/Support/MathExtras.h:1.6 Mon Jun 16 19:35:55 2003
+++ llvm/include/Support/MathExtras.h Tue Sep 30 13:37:23 2003
@@ -1,4 +1,4 @@
-//===-- Support/MathExtras.h - Useful math functions -------------*- C++ -*--=//
+//===-- Support/MathExtras.h - Useful math functions ------------*- C++ -*-===//
//
// This file contains some functions that are useful for math stuff.
//
Index: llvm/include/Support/PostOrderIterator.h
diff -u llvm/include/Support/PostOrderIterator.h:1.11 llvm/include/Support/PostOrderIterator.h:1.12
--- llvm/include/Support/PostOrderIterator.h:1.11 Mon Aug 18 09:26:23 2003
+++ llvm/include/Support/PostOrderIterator.h Tue Sep 30 13:37:23 2003
@@ -1,4 +1,4 @@
-//===-- Support/PostOrderIterator.h - Generic PostOrder iterator -*- C++ -*--=//
+//===- Support/PostOrderIterator.h - Generic PostOrder iterator -*- C++ -*-===//
//
// This file builds on the Support/GraphTraits.h file to build a generic graph
// post order iterator. This should work over any graph type that has a
Index: llvm/include/Support/STLExtras.h
diff -u llvm/include/Support/STLExtras.h:1.6 llvm/include/Support/STLExtras.h:1.7
--- llvm/include/Support/STLExtras.h:1.6 Mon Jun 16 19:35:55 2003
+++ llvm/include/Support/STLExtras.h Tue Sep 30 13:37:23 2003
@@ -1,4 +1,4 @@
-//===-- STLExtras.h - Useful functions when working with the STL -*- C++ -*--=//
+//===- STLExtras.h - Useful functions when working with the STL -*- C++ -*-===//
//
// This file contains some templates that are useful if you are working with the
// STL at all.
Index: llvm/include/Support/SetOperations.h
diff -u llvm/include/Support/SetOperations.h:1.2 llvm/include/Support/SetOperations.h:1.3
--- llvm/include/Support/SetOperations.h:1.2 Mon Jun 16 19:35:55 2003
+++ llvm/include/Support/SetOperations.h Tue Sep 30 13:37:23 2003
@@ -1,4 +1,4 @@
-//===-- Support/SetOperations.h - Generic Set Operations ---------*- C++ -*--=//
+//===-- Support/SetOperations.h - Generic Set Operations --------*- C++ -*-===//
//
// This file defines generic set operations that may be used on set's of
// different types, and different element types.
Index: llvm/include/Support/Signals.h
diff -u llvm/include/Support/Signals.h:1.4 llvm/include/Support/Signals.h:1.5
--- llvm/include/Support/Signals.h:1.4 Fri Aug 1 14:16:18 2003
+++ llvm/include/Support/Signals.h Tue Sep 30 13:37:23 2003
@@ -1,4 +1,4 @@
-//===- Support/Signals.h - Signal Handling support -------------*- C++ -*-===//
+//===- Support/Signals.h - Signal Handling support --------------*- C++ -*-===//
//
// This file defines some helpful functions for dealing with the possibility of
// unix signals occuring while your program is running.
Index: llvm/include/Support/StringExtras.h
diff -u llvm/include/Support/StringExtras.h:1.4 llvm/include/Support/StringExtras.h:1.5
--- llvm/include/Support/StringExtras.h:1.4 Mon Jun 16 19:35:55 2003
+++ llvm/include/Support/StringExtras.h Tue Sep 30 13:37:23 2003
@@ -1,4 +1,4 @@
-//===-- Support/StringExtras.h - Useful string functions ---------*- C++ -*--=//
+//===-- Support/StringExtras.h - Useful string functions --------*- C++ -*-===//
//
// This file contains some functions that are useful when dealing with strings.
//
Index: llvm/include/Support/SystemUtils.h
diff -u llvm/include/Support/SystemUtils.h:1.6 llvm/include/Support/SystemUtils.h:1.7
--- llvm/include/Support/SystemUtils.h:1.6 Mon Sep 29 17:37:57 2003
+++ llvm/include/Support/SystemUtils.h Tue Sep 30 13:37:23 2003
@@ -1,4 +1,4 @@
-//===- SystemUtils.h - Utilities to do low-level system stuff --*- C++ -*--===//
+//===- SystemUtils.h - Utilities to do low-level system stuff ---*- C++ -*-===//
//
// This file contains functions used to do a variety of low-level, often
// system-specific, tasks.
Index: llvm/include/Support/Tree.h
diff -u llvm/include/Support/Tree.h:1.6 llvm/include/Support/Tree.h:1.7
--- llvm/include/Support/Tree.h:1.6 Mon Jun 30 16:58:23 2003
+++ llvm/include/Support/Tree.h Tue Sep 30 13:37:23 2003
@@ -1,4 +1,4 @@
-//===- Support/Tree.h - Generic n-way tree structure -------------*- C++ -*--=//
+//===- Support/Tree.h - Generic n-way tree structure ------------*- C++ -*-===//
//
// This class defines a generic N way tree node structure. The tree structure
// is immutable after creation, but the payload contained within it is not.
Index: llvm/include/Support/TypeInfo.h
diff -u llvm/include/Support/TypeInfo.h:1.2 llvm/include/Support/TypeInfo.h:1.3
--- llvm/include/Support/TypeInfo.h:1.2 Mon Jun 16 19:35:55 2003
+++ llvm/include/Support/TypeInfo.h Tue Sep 30 13:37:23 2003
@@ -1,4 +1,4 @@
-//===- Support/TypeInfo.h - Support class for type_info objects --*- C++ -*--=//
+//===- Support/TypeInfo.h - Support class for type_info objects -*- C++ -*-===//
//
// This class makes std::type_info objects behave like first class objects that
// can be put in maps and hashtables. This code is based off of code in the
Index: llvm/include/Support/hash_map
diff -u llvm/include/Support/hash_map:1.11 llvm/include/Support/hash_map:1.12
--- llvm/include/Support/hash_map:1.11 Fri Aug 15 15:01:10 2003
+++ llvm/include/Support/hash_map Tue Sep 30 13:37:23 2003
@@ -1,5 +1,4 @@
//===-- Support/hash_map - "Portable" wrapper around hash_map ---*- C++ -*-===//
-// vim:ft=cpp
//
// This file provides a wrapper around the mysterious header file
// that seems to move around between GCC releases into and out of namespaces at
Index: llvm/include/Support/ilist
diff -u llvm/include/Support/ilist:1.10 llvm/include/Support/ilist:1.11
--- llvm/include/Support/ilist:1.10 Fri Aug 29 09:22:29 2003
+++ llvm/include/Support/ilist Tue Sep 30 13:37:23 2003
@@ -1,4 +1,4 @@
-//===-- - Intrusive Linked List Template ---------*- C++ -*--=//
+//===-- Support/ilist - Intrusive Linked List Template ----------*- C++ -*-===//
//
// This file defines classes to implement an intrusive doubly linked list class
// (ie each node of the list must contain a next and previous field for the
From lattner at cs.uiuc.edu Tue Sep 30 13:39:06 2003
From: lattner at cs.uiuc.edu (Chris Lattner)
Date: Tue Sep 30 13:39:06 2003
Subject: [llvm-commits] CVS: llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h Linker.h Local.h
Message-ID: <200309301838.NAA18469@apoc.cs.uiuc.edu>
Changes in directory llvm/include/llvm/Transforms/Utils:
BasicBlockUtils.h updated: 1.3 -> 1.4
Linker.h updated: 1.5 -> 1.6
Local.h updated: 1.9 -> 1.10
---
Log message:
Standardize header file comments
---
Diffs of the changes:
Index: llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h
diff -u llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h:1.3 llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h:1.4
--- llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h:1.3 Mon Jul 29 17:32:06 2002
+++ llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h Tue Sep 30 13:37:50 2003
@@ -1,4 +1,4 @@
-//===-- Transform/Utils/BasicBlockUtils.h - BasicBlock Utilities -*- C++ -*-==//
+//===-- Transform/Utils/BasicBlockUtils.h - BasicBlock Utils ----*- C++ -*-===//
//
// This family of functions perform manipulations on basic blocks, and
// instructions contained within basic blocks.
Index: llvm/include/llvm/Transforms/Utils/Linker.h
diff -u llvm/include/llvm/Transforms/Utils/Linker.h:1.5 llvm/include/llvm/Transforms/Utils/Linker.h:1.6
--- llvm/include/llvm/Transforms/Utils/Linker.h:1.5 Tue May 7 13:34:57 2002
+++ llvm/include/llvm/Transforms/Utils/Linker.h Tue Sep 30 13:37:50 2003
@@ -1,4 +1,4 @@
-//===- llvm/Transforms/Utils/Linker.h - Module Linker Interface --*- C++ -*--=//
+//===- llvm/Transforms/Utils/Linker.h - Module Linker Interface -*- C++ -*-===//
//
// This file defines the interface to the module linker.
//
Index: llvm/include/llvm/Transforms/Utils/Local.h
diff -u llvm/include/llvm/Transforms/Utils/Local.h:1.9 llvm/include/llvm/Transforms/Utils/Local.h:1.10
--- llvm/include/llvm/Transforms/Utils/Local.h:1.9 Tue May 20 16:01:12 2003
+++ llvm/include/llvm/Transforms/Utils/Local.h Tue Sep 30 13:37:50 2003
@@ -1,4 +1,4 @@
-//===-- Local.h - Functions to perform local transformations -----*- C++ -*--=//
+//===-- Local.h - Functions to perform local transformations ----*- C++ -*-===//
//
// This family of functions perform various local transformations to the
// program.
From lattner at cs.uiuc.edu Tue Sep 30 13:39:10 2003
From: lattner at cs.uiuc.edu (Chris Lattner)
Date: Tue Sep 30 13:39:10 2003
Subject: [llvm-commits] CVS: llvm/include/llvm/Transforms/MutateStructTypes.h Scalar.h
Message-ID: <200309301837.NAA18349@apoc.cs.uiuc.edu>
Changes in directory llvm/include/llvm/Transforms:
MutateStructTypes.h updated: 1.9 -> 1.10
Scalar.h updated: 1.24 -> 1.25
---
Log message:
Standardize header file comments
---
Diffs of the changes:
Index: llvm/include/llvm/Transforms/MutateStructTypes.h
diff -u llvm/include/llvm/Transforms/MutateStructTypes.h:1.9 llvm/include/llvm/Transforms/MutateStructTypes.h:1.10
--- llvm/include/llvm/Transforms/MutateStructTypes.h:1.9 Tue Jun 25 11:11:20 2002
+++ llvm/include/llvm/Transforms/MutateStructTypes.h Tue Sep 30 13:37:49 2003
@@ -1,4 +1,4 @@
-//===- llvm/Transforms/MutateStructTypes.h - Change struct defns -*- C++ -*--=//
+//===-- llvm/Transforms/MutateStructTypes.h - Rearrange structs -*- C++ -*-===//
//
// This pass is used to change structure accesses and type definitions in some
// way. It can be used to arbitrarily permute structure fields, safely, without
Index: llvm/include/llvm/Transforms/Scalar.h
diff -u llvm/include/llvm/Transforms/Scalar.h:1.24 llvm/include/llvm/Transforms/Scalar.h:1.25
--- llvm/include/llvm/Transforms/Scalar.h:1.24 Sat Sep 20 00:14:01 2003
+++ llvm/include/llvm/Transforms/Scalar.h Tue Sep 30 13:37:49 2003
@@ -1,4 +1,4 @@
-//===-- Scalar.h - Scalar Transformations ------------------------*- C++ -*-==//
+//===-- Scalar.h - Scalar Transformations -----------------------*- C++ -*-===//
//
// This header file defines prototypes for accessor functions that expose passes
// in the Scalar transformations library.
From lattner at cs.uiuc.edu Tue Sep 30 13:39:15 2003
From: lattner at cs.uiuc.edu (Chris Lattner)
Date: Tue Sep 30 13:39:15 2003
Subject: [llvm-commits] CVS: llvm/include/llvm/AbstractTypeUser.h BasicBlock.h Constant.h ConstantHandling.h Constants.h DerivedTypes.h GlobalValue.h GlobalVariable.h InstrTypes.h Instruction.def Module.h Pass.h PassAnalysisSupport.h PassManager.h SlotCalculator.h SymbolTable.h SymbolTableListTraits.h Type.def Type.h User.h Value.h iOther.h iPHINode.h
Message-ID: <200309301838.NAA18949@apoc.cs.uiuc.edu>
Changes in directory llvm/include/llvm:
AbstractTypeUser.h updated: 1.10 -> 1.11
BasicBlock.h updated: 1.30 -> 1.31
Constant.h updated: 1.9 -> 1.10
ConstantHandling.h updated: 1.28 -> 1.29
Constants.h updated: 1.29 -> 1.30
DerivedTypes.h updated: 1.38 -> 1.39
GlobalValue.h updated: 1.9 -> 1.10
GlobalVariable.h updated: 1.22 -> 1.23
InstrTypes.h updated: 1.31 -> 1.32
Instruction.def updated: 1.7 -> 1.8
Module.h updated: 1.34 -> 1.35
Pass.h updated: 1.38 -> 1.39
PassAnalysisSupport.h updated: 1.14 -> 1.15
PassManager.h updated: 1.6 -> 1.7
SlotCalculator.h updated: 1.9 -> 1.10
SymbolTable.h updated: 1.23 -> 1.24
SymbolTableListTraits.h updated: 1.1 -> 1.2
Type.def updated: 1.3 -> 1.4
Type.h updated: 1.28 -> 1.29
User.h updated: 1.20 -> 1.21
Value.h updated: 1.42 -> 1.43
iOther.h updated: 1.36 -> 1.37
iPHINode.h updated: 1.10 -> 1.11
---
Log message:
Standardize header file comments
---
Diffs of the changes:
Index: llvm/include/llvm/AbstractTypeUser.h
diff -u llvm/include/llvm/AbstractTypeUser.h:1.10 llvm/include/llvm/AbstractTypeUser.h:1.11
--- llvm/include/llvm/AbstractTypeUser.h:1.10 Fri Jul 25 12:39:33 2003
+++ llvm/include/llvm/AbstractTypeUser.h Tue Sep 30 13:37:37 2003
@@ -1,4 +1,4 @@
-//===-- llvm/AbstractTypeUser.h - AbstractTypeUser Interface -----*- C++ -*--=//
+//===-- llvm/AbstractTypeUser.h - AbstractTypeUser Interface ----*- C++ -*-===//
//
// The AbstractTypeUser class is an interface to be implemented by classes who
// could possible use an abstract type. Abstract types are denoted by the
Index: llvm/include/llvm/BasicBlock.h
diff -u llvm/include/llvm/BasicBlock.h:1.30 llvm/include/llvm/BasicBlock.h:1.31
--- llvm/include/llvm/BasicBlock.h:1.30 Sat Aug 30 21:50:07 2003
+++ llvm/include/llvm/BasicBlock.h Tue Sep 30 13:37:37 2003
@@ -1,4 +1,4 @@
-//===-- llvm/BasicBlock.h - Represent a basic block in the VM ----*- C++ -*--=//
+//===-- llvm/BasicBlock.h - Represent a basic block in the VM ---*- C++ -*-===//
///
/// \class BasicBlock
///
Index: llvm/include/llvm/Constant.h
diff -u llvm/include/llvm/Constant.h:1.9 llvm/include/llvm/Constant.h:1.10
--- llvm/include/llvm/Constant.h:1.9 Fri Aug 29 00:36:05 2003
+++ llvm/include/llvm/Constant.h Tue Sep 30 13:37:37 2003
@@ -1,4 +1,4 @@
-//===-- llvm/Constant.h - Constant class definition --------------*- C++ -*--=//
+//===-- llvm/Constant.h - Constant class definition -------------*- C++ -*-===//
//
// This file contains the declaration of the Constant class.
//
Index: llvm/include/llvm/ConstantHandling.h
diff -u llvm/include/llvm/ConstantHandling.h:1.28 llvm/include/llvm/ConstantHandling.h:1.29
--- llvm/include/llvm/ConstantHandling.h:1.28 Wed Jul 23 12:21:17 2003
+++ llvm/include/llvm/ConstantHandling.h Tue Sep 30 13:37:37 2003
@@ -1,4 +1,4 @@
-//===-- ConstantHandling.h - Stuff for manipulating constants ----*- C++ -*--=//
+//===-- ConstantHandling.h - Stuff for manipulating constants ---*- C++ -*-===//
//
// This file contains the declarations of some cool operators that allow you
// to do natural things with constant pool values.
Index: llvm/include/llvm/Constants.h
diff -u llvm/include/llvm/Constants.h:1.29 llvm/include/llvm/Constants.h:1.30
--- llvm/include/llvm/Constants.h:1.29 Fri Aug 29 00:36:05 2003
+++ llvm/include/llvm/Constants.h Tue Sep 30 13:37:37 2003
@@ -1,4 +1,4 @@
-//===-- llvm/Constants.h - Constant class subclass definitions ---*- C++ -*--=//
+//===-- llvm/Constants.h - Constant class subclass definitions --*- C++ -*-===//
//
// This file contains the declarations for the subclasses of Constant, which
// represent the different type of constant pool values
Index: llvm/include/llvm/DerivedTypes.h
diff -u llvm/include/llvm/DerivedTypes.h:1.38 llvm/include/llvm/DerivedTypes.h:1.39
--- llvm/include/llvm/DerivedTypes.h:1.38 Thu Sep 4 21:30:18 2003
+++ llvm/include/llvm/DerivedTypes.h Tue Sep 30 13:37:37 2003
@@ -1,4 +1,4 @@
-//===-- llvm/DerivedTypes.h - Classes for handling data types ----*- C++ -*--=//
+//===-- llvm/DerivedTypes.h - Classes for handling data types ---*- C++ -*-===//
//
// This file contains the declarations of classes that represent "derived
// types". These are things like "arrays of x" or "structure of x, y, z" or
Index: llvm/include/llvm/GlobalValue.h
diff -u llvm/include/llvm/GlobalValue.h:1.9 llvm/include/llvm/GlobalValue.h:1.10
--- llvm/include/llvm/GlobalValue.h:1.9 Wed Apr 16 15:28:30 2003
+++ llvm/include/llvm/GlobalValue.h Tue Sep 30 13:37:37 2003
@@ -1,4 +1,4 @@
-//===-- llvm/GlobalValue.h - Class to represent a global value ---*- C++ -*--=//
+//===-- llvm/GlobalValue.h - Class to represent a global value --*- C++ -*-===//
//
// This file is a common base class of all globally definable objects. As such,
// it is subclassed by GlobalVariable and by Function. This is used because you
Index: llvm/include/llvm/GlobalVariable.h
diff -u llvm/include/llvm/GlobalVariable.h:1.22 llvm/include/llvm/GlobalVariable.h:1.23
--- llvm/include/llvm/GlobalVariable.h:1.22 Mon Jun 30 16:58:26 2003
+++ llvm/include/llvm/GlobalVariable.h Tue Sep 30 13:37:37 2003
@@ -1,4 +1,4 @@
-//===-- llvm/Global.h - Class to represent a global variable -----*- C++ -*--=//
+//===-- llvm/Global.h - Class to represent a global variable ----*- C++ -*-===//
//
// This file contains the declaration of the GlobalVariable class, which
// represents a single global variable (or constant) in the VM.
Index: llvm/include/llvm/InstrTypes.h
diff -u llvm/include/llvm/InstrTypes.h:1.31 llvm/include/llvm/InstrTypes.h:1.32
--- llvm/include/llvm/InstrTypes.h:1.31 Thu Aug 21 17:08:59 2003
+++ llvm/include/llvm/InstrTypes.h Tue Sep 30 13:37:37 2003
@@ -1,4 +1,4 @@
-//===-- llvm/InstrTypes.h - Important Instruction subclasses -----*- C++ -*--=//
+//===-- llvm/InstrTypes.h - Important Instruction subclasses ----*- C++ -*-===//
//
// This file defines various meta classes of instructions that exist in the VM
// representation. Specific concrete subclasses of these may be found in the
Index: llvm/include/llvm/Instruction.def
diff -u llvm/include/llvm/Instruction.def:1.7 llvm/include/llvm/Instruction.def:1.8
--- llvm/include/llvm/Instruction.def:1.7 Mon Sep 8 13:54:01 2003
+++ llvm/include/llvm/Instruction.def Tue Sep 30 13:37:37 2003
@@ -1,4 +1,4 @@
-//===-- llvm/Instruction.def - File that describes Instructions --*- C++ -*--=//
+//===-- llvm/Instruction.def - File that describes Instructions -*- C++ -*-===//
//
// This file contains descriptions of the various LLVM instructions. This is
// used as a central place for enumerating the different instructions and
Index: llvm/include/llvm/Module.h
diff -u llvm/include/llvm/Module.h:1.34 llvm/include/llvm/Module.h:1.35
--- llvm/include/llvm/Module.h:1.34 Sat Aug 30 19:19:18 2003
+++ llvm/include/llvm/Module.h Tue Sep 30 13:37:37 2003
@@ -1,4 +1,4 @@
-//===-- llvm/Module.h - C++ class to represent a VM module -------*- C++ -*--=//
+//===-- llvm/Module.h - C++ class to represent a VM module ------*- C++ -*-===//
//
// This file contains the declarations for the Module class that is used to
// maintain all the information related to a VM module.
Index: llvm/include/llvm/Pass.h
diff -u llvm/include/llvm/Pass.h:1.38 llvm/include/llvm/Pass.h:1.39
--- llvm/include/llvm/Pass.h:1.38 Fri Aug 29 09:26:51 2003
+++ llvm/include/llvm/Pass.h Tue Sep 30 13:37:37 2003
@@ -1,4 +1,4 @@
-//===- llvm/Pass.h - Base class for XForm Passes -----------------*- C++ -*--=//
+//===- llvm/Pass.h - Base class for Passes ----------------------*- C++ -*-===//
//
// This file defines a base class that indicates that a specified class is a
// transformation pass implementation.
Index: llvm/include/llvm/PassAnalysisSupport.h
diff -u llvm/include/llvm/PassAnalysisSupport.h:1.14 llvm/include/llvm/PassAnalysisSupport.h:1.15
--- llvm/include/llvm/PassAnalysisSupport.h:1.14 Fri Aug 29 09:26:51 2003
+++ llvm/include/llvm/PassAnalysisSupport.h Tue Sep 30 13:37:37 2003
@@ -1,4 +1,4 @@
-//===- llvm/PassAnalysisSupport.h - Analysis Pass Support code ---*- C++ -*-==//
+//===- llvm/PassAnalysisSupport.h - Analysis Pass Support code --*- C++ -*-===//
//
// This file defines stuff that is used to define and "use" Analysis Passes.
// This file is automatically #included by Pass.h, so:
Index: llvm/include/llvm/PassManager.h
diff -u llvm/include/llvm/PassManager.h:1.6 llvm/include/llvm/PassManager.h:1.7
--- llvm/include/llvm/PassManager.h:1.6 Thu Aug 14 01:07:57 2003
+++ llvm/include/llvm/PassManager.h Tue Sep 30 13:37:37 2003
@@ -1,4 +1,4 @@
-//===- llvm/PassManager.h - Container for Passes -----------------*- C++ -*--=//
+//===- llvm/PassManager.h - Container for Passes ----------------*- C++ -*-===//
//
// This file defines the PassManager class. This class is used to hold,
// maintain, and optimize execution of Passes. The PassManager class ensures
Index: llvm/include/llvm/SlotCalculator.h
diff -u llvm/include/llvm/SlotCalculator.h:1.9 llvm/include/llvm/SlotCalculator.h:1.10
--- llvm/include/llvm/SlotCalculator.h:1.9 Tue Apr 9 13:35:38 2002
+++ llvm/include/llvm/SlotCalculator.h Tue Sep 30 13:37:37 2003
@@ -1,4 +1,4 @@
-//===-- llvm/SlotCalculator.h - Calculate value slots ------------*- C++ -*-==//
+//===-- llvm/SlotCalculator.h - Calculate value slots -----------*- C++ -*-===//
//
// This class calculates the slots that values will land in. This is useful for
// when writing bytecode or assembly out, because you have to know these things.
Index: llvm/include/llvm/SymbolTable.h
diff -u llvm/include/llvm/SymbolTable.h:1.23 llvm/include/llvm/SymbolTable.h:1.24
--- llvm/include/llvm/SymbolTable.h:1.23 Sat Aug 23 18:15:10 2003
+++ llvm/include/llvm/SymbolTable.h Tue Sep 30 13:37:37 2003
@@ -1,4 +1,4 @@
-//===-- llvm/SymbolTable.h - Implement a type plane'd symtab ------*- C++ -*-=//
+//===-- llvm/SymbolTable.h - Implement a type plane'd symtab ----*- C++ -*-===//
//
// This file implements a symbol table that has planed broken up by type.
// Identical types may have overlapping symbol names as long as they are
Index: llvm/include/llvm/SymbolTableListTraits.h
diff -u llvm/include/llvm/SymbolTableListTraits.h:1.1 llvm/include/llvm/SymbolTableListTraits.h:1.2
--- llvm/include/llvm/SymbolTableListTraits.h:1.1 Tue Jun 25 11:10:41 2002
+++ llvm/include/llvm/SymbolTableListTraits.h Tue Sep 30 13:37:37 2003
@@ -1,4 +1,4 @@
-//===-- llvm/SymbolTableListTraits.h - Traits for iplist -------*- C++ -*--===//
+//===-- llvm/SymbolTableListTraits.h - Traits for iplist --------*- C++ -*-===//
//
// This file defines a generic class that is used to implement the automatic
// symbol table manipulation that occurs when you put (for example) a named
Index: llvm/include/llvm/Type.def
diff -u llvm/include/llvm/Type.def:1.3 llvm/include/llvm/Type.def:1.4
--- llvm/include/llvm/Type.def:1.3 Mon May 6 10:10:15 2002
+++ llvm/include/llvm/Type.def Tue Sep 30 13:37:37 2003
@@ -1,4 +1,4 @@
-//===-- llvm/Type.def - File that describes various LLVM types ---*- C++ -*--=//
+//===-- llvm/Type.def - File that describes various LLVM types --*- C++ -*-===//
//
// This file contains descriptions of the various LLVM types and derived types.
// This file serves as a source of in source documentation and a can be
Index: llvm/include/llvm/Type.h
diff -u llvm/include/llvm/Type.h:1.28 llvm/include/llvm/Type.h:1.29
--- llvm/include/llvm/Type.h:1.28 Tue Sep 2 16:54:56 2003
+++ llvm/include/llvm/Type.h Tue Sep 30 13:37:37 2003
@@ -1,4 +1,4 @@
-//===-- llvm/Type.h - Classes for handling data types ------------*- C++ -*--=//
+//===-- llvm/Type.h - Classes for handling data types -----------*- C++ -*-===//
//
// This file contains the declaration of the Type class. For more "Type" type
// stuff, look in DerivedTypes.h.
@@ -37,8 +37,7 @@
class StructType;
class OpaqueType;
-class Type : public Value {
-public:
+struct Type : public Value {
///===-------------------------------------------------------------------===//
/// Definitions of all of the base types for the Type system. Based on this
/// value, you can cast to a "DerivedType" subclass (see DerivedTypes.h)
Index: llvm/include/llvm/User.h
diff -u llvm/include/llvm/User.h:1.20 llvm/include/llvm/User.h:1.21
--- llvm/include/llvm/User.h:1.20 Sat Jun 21 22:07:32 2003
+++ llvm/include/llvm/User.h Tue Sep 30 13:37:37 2003
@@ -1,4 +1,4 @@
-//===-- llvm/User.h - User class definition ----------------------*- C++ -*--=//
+//===-- llvm/User.h - User class definition ---------------------*- C++ -*-===//
//
// This class defines the interface that one who 'use's a Value must implement.
// Each instance of the Value class keeps track of what User's have handles
Index: llvm/include/llvm/Value.h
diff -u llvm/include/llvm/Value.h:1.42 llvm/include/llvm/Value.h:1.43
--- llvm/include/llvm/Value.h:1.42 Fri Aug 29 00:08:31 2003
+++ llvm/include/llvm/Value.h Tue Sep 30 13:37:37 2003
@@ -1,4 +1,4 @@
-//===-- llvm/Value.h - Definition of the Value class -------------*- C++ -*--=//
+//===-- llvm/Value.h - Definition of the Value class ------------*- C++ -*-===//
//
// This file defines the very important Value class. This is subclassed by a
// bunch of other important classes, like Instruction, Function, Type, etc...
Index: llvm/include/llvm/iOther.h
diff -u llvm/include/llvm/iOther.h:1.36 llvm/include/llvm/iOther.h:1.37
--- llvm/include/llvm/iOther.h:1.36 Sat Jun 21 22:07:32 2003
+++ llvm/include/llvm/iOther.h Tue Sep 30 13:37:37 2003
@@ -1,4 +1,4 @@
-//===-- llvm/iOther.h - "Other" instruction node definitions -----*- C++ -*--=//
+//===-- llvm/iOther.h - "Other" instruction node definitions ----*- C++ -*-===//
//
// This file contains the declarations for instructions that fall into the
// grandiose 'other' catagory...
Index: llvm/include/llvm/iPHINode.h
diff -u llvm/include/llvm/iPHINode.h:1.10 llvm/include/llvm/iPHINode.h:1.11
--- llvm/include/llvm/iPHINode.h:1.10 Sat Jun 21 22:07:32 2003
+++ llvm/include/llvm/iPHINode.h Tue Sep 30 13:37:37 2003
@@ -1,4 +1,4 @@
-//===-- llvm/iPHINode.h - PHI instruction definition -------------*- C++ -*--=//
+//===-- llvm/iPHINode.h - PHI instruction definition ------------*- C++ -*-===//
//
// This file defines the PHINode class.
//
From lattner at cs.uiuc.edu Tue Sep 30 13:39:20 2003
From: lattner at cs.uiuc.edu (Chris Lattner)
Date: Tue Sep 30 13:39:20 2003
Subject: [llvm-commits] CVS: llvm/include/llvm/Analysis/CallGraph.h ConstantsScanner.h Expressions.h FindUnsafePointerTypes.h FindUsedTypes.h InstForest.h Interval.h IntervalIterator.h IntervalPartition.h LoopInfo.h PostDominators.h Verifier.h
Message-ID: <200309301838.NAA18976@apoc.cs.uiuc.edu>
Changes in directory llvm/include/llvm/Analysis:
CallGraph.h updated: 1.29 -> 1.30
ConstantsScanner.h updated: 1.11 -> 1.12
Expressions.h updated: 1.6 -> 1.7
FindUnsafePointerTypes.h updated: 1.12 -> 1.13
FindUsedTypes.h updated: 1.16 -> 1.17
InstForest.h updated: 1.19 -> 1.20
Interval.h updated: 1.12 -> 1.13
IntervalIterator.h updated: 1.13 -> 1.14
IntervalPartition.h updated: 1.17 -> 1.18
LoopInfo.h updated: 1.26 -> 1.27
PostDominators.h updated: 1.3 -> 1.4
Verifier.h updated: 1.9 -> 1.10
---
Log message:
Standardize header file comments
---
Diffs of the changes:
Index: llvm/include/llvm/Analysis/CallGraph.h
diff -u llvm/include/llvm/Analysis/CallGraph.h:1.29 llvm/include/llvm/Analysis/CallGraph.h:1.30
--- llvm/include/llvm/Analysis/CallGraph.h:1.29 Sat Aug 30 20:38:00 2003
+++ llvm/include/llvm/Analysis/CallGraph.h Tue Sep 30 13:37:40 2003
@@ -1,4 +1,4 @@
-//===- CallGraph.h - Build a Module's call graph -----------------*- C++ -*--=//
+//===- CallGraph.h - Build a Module's call graph ----------------*- C++ -*-===//
//
// This interface is used to build and manipulate a call graph, which is a very
// useful tool for interprocedural optimization.
Index: llvm/include/llvm/Analysis/ConstantsScanner.h
diff -u llvm/include/llvm/Analysis/ConstantsScanner.h:1.11 llvm/include/llvm/Analysis/ConstantsScanner.h:1.12
--- llvm/include/llvm/Analysis/ConstantsScanner.h:1.11 Sat Jun 21 22:05:45 2003
+++ llvm/include/llvm/Analysis/ConstantsScanner.h Tue Sep 30 13:37:40 2003
@@ -1,4 +1,4 @@
-//==-- llvm/Analysis/ConstantsScanner.h - Iterate over constants -*- C++ -*-==//
+//==- llvm/Analysis/ConstantsScanner.h - Iterate over constants -*- C++ -*-===//
//
// This class implements an iterator to walk through the constants referenced by
// a method. This is used by the Bytecode & Assembly writers to build constant
Index: llvm/include/llvm/Analysis/Expressions.h
diff -u llvm/include/llvm/Analysis/Expressions.h:1.6 llvm/include/llvm/Analysis/Expressions.h:1.7
--- llvm/include/llvm/Analysis/Expressions.h:1.6 Tue Sep 17 12:18:12 2002
+++ llvm/include/llvm/Analysis/Expressions.h Tue Sep 30 13:37:40 2003
@@ -1,4 +1,4 @@
-//===- llvm/Analysis/Expressions.h - Expression Analysis Utils ---*- C++ -*--=//
+//===- llvm/Analysis/Expressions.h - Expression Analysis Utils --*- C++ -*-===//
//
// This file defines a package of expression analysis utilties:
//
Index: llvm/include/llvm/Analysis/FindUnsafePointerTypes.h
diff -u llvm/include/llvm/Analysis/FindUnsafePointerTypes.h:1.12 llvm/include/llvm/Analysis/FindUnsafePointerTypes.h:1.13
--- llvm/include/llvm/Analysis/FindUnsafePointerTypes.h:1.12 Wed Aug 21 12:09:18 2002
+++ llvm/include/llvm/Analysis/FindUnsafePointerTypes.h Tue Sep 30 13:37:40 2003
@@ -1,4 +1,4 @@
-//===- llvm/Analysis/FindUnsafePointerTypes.h - Unsafe pointers ---*- C++ -*-=//
+//===- llvm/Analysis/FindUnsafePointerTypes.h - Unsafe pointers -*- C++ -*-===//
//
// This file defines a pass that can be used to determine, interprocedurally,
// which pointer types are accessed unsafely in a program. If there is an
Index: llvm/include/llvm/Analysis/FindUsedTypes.h
diff -u llvm/include/llvm/Analysis/FindUsedTypes.h:1.16 llvm/include/llvm/Analysis/FindUsedTypes.h:1.17
--- llvm/include/llvm/Analysis/FindUsedTypes.h:1.16 Mon Sep 23 19:07:17 2002
+++ llvm/include/llvm/Analysis/FindUsedTypes.h Tue Sep 30 13:37:40 2003
@@ -1,4 +1,4 @@
-//===- llvm/Analysis/FindUsedTypes.h - Find all Types in use -----*- C++ -*--=//
+//===- llvm/Analysis/FindUsedTypes.h - Find all Types in use ----*- C++ -*-===//
//
// This pass is used to seek out all of the types in use by the program.
//
Index: llvm/include/llvm/Analysis/InstForest.h
diff -u llvm/include/llvm/Analysis/InstForest.h:1.19 llvm/include/llvm/Analysis/InstForest.h:1.20
--- llvm/include/llvm/Analysis/InstForest.h:1.19 Wed Jul 23 10:29:59 2003
+++ llvm/include/llvm/Analysis/InstForest.h Tue Sep 30 13:37:40 2003
@@ -1,4 +1,4 @@
-//===- llvm/Analysis/InstForest.h - Partition Func into forest ---*- C++ -*--=//
+//===- llvm/Analysis/InstForest.h - Partition Func into forest --*- C++ -*-===//
//
// This interface is used to partition a method into a forest of instruction
// trees, where the following invariants hold:
Index: llvm/include/llvm/Analysis/Interval.h
diff -u llvm/include/llvm/Analysis/Interval.h:1.12 llvm/include/llvm/Analysis/Interval.h:1.13
--- llvm/include/llvm/Analysis/Interval.h:1.12 Fri Jul 26 20:11:59 2002
+++ llvm/include/llvm/Analysis/Interval.h Tue Sep 30 13:37:40 2003
@@ -1,4 +1,4 @@
-//===- llvm/Analysis/Interval.h - Interval Class Declaration -----*- C++ -*--=//
+//===- llvm/Analysis/Interval.h - Interval Class Declaration ----*- C++ -*-===//
//
// This file contains the declaration of the Interval class, which
// represents a set of CFG nodes and is a portion of an interval partition.
Index: llvm/include/llvm/Analysis/IntervalIterator.h
diff -u llvm/include/llvm/Analysis/IntervalIterator.h:1.13 llvm/include/llvm/Analysis/IntervalIterator.h:1.14
--- llvm/include/llvm/Analysis/IntervalIterator.h:1.13 Mon Aug 18 09:27:29 2003
+++ llvm/include/llvm/Analysis/IntervalIterator.h Tue Sep 30 13:37:40 2003
@@ -1,4 +1,4 @@
-//===- IntervalIterator.h - Interval Iterator Declaration --------*- C++ -*--=//
+//===- IntervalIterator.h - Interval Iterator Declaration -------*- C++ -*-===//
//
// This file defines an iterator that enumerates the intervals in a control flow
// graph of some sort. This iterator is parametric, allowing iterator over the
Index: llvm/include/llvm/Analysis/IntervalPartition.h
diff -u llvm/include/llvm/Analysis/IntervalPartition.h:1.17 llvm/include/llvm/Analysis/IntervalPartition.h:1.18
--- llvm/include/llvm/Analysis/IntervalPartition.h:1.17 Tue Oct 29 16:55:11 2002
+++ llvm/include/llvm/Analysis/IntervalPartition.h Tue Sep 30 13:37:40 2003
@@ -1,4 +1,4 @@
-//===- IntervalPartition.h - Interval partition Calculation ------*- C++ -*--=//
+//===- IntervalPartition.h - Interval partition Calculation -----*- C++ -*-===//
//
// This file contains the declaration of the IntervalPartition class, which
// calculates and represents the interval partition of a function, or a
Index: llvm/include/llvm/Analysis/LoopInfo.h
diff -u llvm/include/llvm/Analysis/LoopInfo.h:1.26 llvm/include/llvm/Analysis/LoopInfo.h:1.27
--- llvm/include/llvm/Analysis/LoopInfo.h:1.26 Sat Aug 16 15:57:13 2003
+++ llvm/include/llvm/Analysis/LoopInfo.h Tue Sep 30 13:37:40 2003
@@ -1,4 +1,4 @@
-//===- llvm/Analysis/LoopInfo.h - Natural Loop Calculator --------*- C++ -*--=//
+//===- llvm/Analysis/LoopInfo.h - Natural Loop Calculator -------*- C++ -*-===//
//
// This file defines the LoopInfo class that is used to identify natural loops
// and determine the loop depth of various nodes of the CFG. Note that natural
Index: llvm/include/llvm/Analysis/PostDominators.h
diff -u llvm/include/llvm/Analysis/PostDominators.h:1.3 llvm/include/llvm/Analysis/PostDominators.h:1.4
--- llvm/include/llvm/Analysis/PostDominators.h:1.3 Mon Sep 15 10:47:40 2003
+++ llvm/include/llvm/Analysis/PostDominators.h Tue Sep 30 13:37:40 2003
@@ -1,4 +1,4 @@
-//=- llvm/Analysis/PostDominators.h - Post Dominator Calculation -*- C++ -*--=//
+//=- llvm/Analysis/PostDominators.h - Post Dominator Calculation-*- C++ -*-===//
//
// This file exposes interfaces to post dominance information.
//
Index: llvm/include/llvm/Analysis/Verifier.h
diff -u llvm/include/llvm/Analysis/Verifier.h:1.9 llvm/include/llvm/Analysis/Verifier.h:1.10
--- llvm/include/llvm/Analysis/Verifier.h:1.9 Wed Sep 10 14:37:03 2003
+++ llvm/include/llvm/Analysis/Verifier.h Tue Sep 30 13:37:40 2003
@@ -1,4 +1,4 @@
-//===-- llvm/Analysis/Verifier.h - Module Verifier ---------------*- C++ -*-==//
+//===-- llvm/Analysis/Verifier.h - Module Verifier --------------*- C++ -*-===//
//
// This file defines the function verifier interface, that can be used for some
// sanity checking of input to the system, and for checking that transformations
From lattner at cs.uiuc.edu Tue Sep 30 13:45:01 2003
From: lattner at cs.uiuc.edu (Chris Lattner)
Date: Tue Sep 30 13:45:01 2003
Subject: [llvm-commits] CVS: llvm/include/llvm/AbstractTypeUser.h
Message-ID: <200309301844.NAA21173@apoc.cs.uiuc.edu>
Changes in directory llvm/include/llvm:
AbstractTypeUser.h updated: 1.11 -> 1.12
---
Log message:
Update comment
---
Diffs of the changes:
Index: llvm/include/llvm/AbstractTypeUser.h
diff -u llvm/include/llvm/AbstractTypeUser.h:1.11 llvm/include/llvm/AbstractTypeUser.h:1.12
--- llvm/include/llvm/AbstractTypeUser.h:1.11 Tue Sep 30 13:37:37 2003
+++ llvm/include/llvm/AbstractTypeUser.h Tue Sep 30 13:44:27 2003
@@ -61,10 +61,8 @@
};
-// PATypeHandle - Handle to a Type subclass. This class is parameterized so
-// that users can have handles to FunctionType's that are still specialized, for
-// example. This class is a simple class used to keep the use list of abstract
-// types up-to-date.
+// PATypeHandle - Handle to a Type subclass. This class is used to keep the use
+// list of abstract types up-to-date.
//
class PATypeHandle {
const Type *Ty;
From lattner at cs.uiuc.edu Tue Sep 30 13:57:01 2003
From: lattner at cs.uiuc.edu (Chris Lattner)
Date: Tue Sep 30 13:57:01 2003
Subject: [llvm-commits] CVS: llvm/test/Programs/SingleSource/Regression/C++/EH/Makefile
Message-ID: <200309301856.NAA21900@apoc.cs.uiuc.edu>
Changes in directory llvm/test/Programs/SingleSource/Regression/C++/EH:
Makefile updated: 1.4 -> 1.5
---
Log message:
Link in eh support!
---
Diffs of the changes:
Index: llvm/test/Programs/SingleSource/Regression/C++/EH/Makefile
diff -u llvm/test/Programs/SingleSource/Regression/C++/EH/Makefile:1.4 llvm/test/Programs/SingleSource/Regression/C++/EH/Makefile:1.5
--- llvm/test/Programs/SingleSource/Regression/C++/EH/Makefile:1.4 Mon Sep 29 16:34:48 2003
+++ llvm/test/Programs/SingleSource/Regression/C++/EH/Makefile Tue Sep 30 13:56:44 2003
@@ -1,4 +1,5 @@
LEVEL = ../../../../../..
include $(LEVEL)/test/Programs/SingleSource/Makefile.singlesrc
CFLAGS += -std=c99
+LIBS = -lsupc++
From lattner at cs.uiuc.edu Tue Sep 30 13:59:01 2003
From: lattner at cs.uiuc.edu (Chris Lattner)
Date: Tue Sep 30 13:59:01 2003
Subject: [llvm-commits] CVS: llvm/test/Regression/C++Frontend/EH/dead_try_block.cpp function_try_block.cpp simple_throw.cpp ctor_dtor_count.cpp exception_spec_test.cpp simple_rethrow.cpp throw_rethrow_test.cpp
Message-ID: <200309301858.NAA21919@apoc.cs.uiuc.edu>
Changes in directory llvm/test/Regression/C++Frontend/EH:
dead_try_block.cpp (r1.2) removed
function_try_block.cpp (r1.1) removed
simple_throw.cpp (r1.1) removed
ctor_dtor_count.cpp (r1.1) removed
exception_spec_test.cpp (r1.1) removed
simple_rethrow.cpp (r1.1) removed
throw_rethrow_test.cpp (r1.1) removed
---
Log message:
These tests got moved to test/Programs/SingleSource/Regression/C++/EH
---
Diffs of the changes:
From lattner at cs.uiuc.edu Tue Sep 30 14:00:01 2003
From: lattner at cs.uiuc.edu (Chris Lattner)
Date: Tue Sep 30 14:00:01 2003
Subject: [llvm-commits] CVS: llvm/test/Regression/C++Frontend/Makefile
Message-ID: <200309301859.NAA21945@apoc.cs.uiuc.edu>
Changes in directory llvm/test/Regression/C++Frontend:
Makefile (r1.3) removed
---
Log message:
This makefile is completely wrong, don't even bother to keep it
---
Diffs of the changes:
From lattner at cs.uiuc.edu Tue Sep 30 14:03:01 2003
From: lattner at cs.uiuc.edu (Chris Lattner)
Date: Tue Sep 30 14:03:01 2003
Subject: [llvm-commits] CVS: llvm/test/Programs/SingleSource/Regression/C++/CompileFail/2003-08-20-ExceptionFail.cpp 2003-08-21-EmptyClass.cpp 2003-08-24-Cleanup.cpp.tr 2003-08-27-TypeNamespaces.cpp 2003-08-28-ForwardType.cpp 2003-08-28-SaveExprBug.cpp 2003-08-29-ArgPassingBug.cpp.tr 2003-08-31-StructLayout.cpp 2003-09-22-CompositeExprValue.cpp 2003-09-29-ArgumentNumberMismatch.cpp 2003-09-30-NestedFunctionDecl.cpp Makefile
Message-ID: <200309301902.OAA22749@apoc.cs.uiuc.edu>
Changes in directory llvm/test/Programs/SingleSource/Regression/C++/CompileFail:
2003-08-20-ExceptionFail.cpp (r1.2) removed
2003-08-21-EmptyClass.cpp (r1.3) removed
2003-08-24-Cleanup.cpp.tr (r1.2) removed
2003-08-27-TypeNamespaces.cpp (r1.1) removed
2003-08-28-ForwardType.cpp (r1.1) removed
2003-08-28-SaveExprBug.cpp (r1.1) removed
2003-08-29-ArgPassingBug.cpp.tr (r1.1) removed
2003-08-31-StructLayout.cpp (r1.1) removed
2003-09-22-CompositeExprValue.cpp (r1.1) removed
2003-09-29-ArgumentNumberMismatch.cpp (r1.2) removed
2003-09-30-NestedFunctionDecl.cpp (r1.1) removed
Makefile (r1.3) removed
---
Log message:
These files belong in test/Regression/C++Frontend, and they were actually
already there!
---
Diffs of the changes:
From criswell at cs.uiuc.edu Tue Sep 30 14:04:01 2003
From: criswell at cs.uiuc.edu (John Criswell)
Date: Tue Sep 30 14:04:01 2003
Subject: [llvm-commits] CVS: llvm/test/QMTestDB/QMTest/llvm.py
Message-ID: <200309301903.OAA16809@choi.cs.uiuc.edu>
Changes in directory llvm/test/QMTestDB/QMTest:
llvm.py updated: 1.8 -> 1.9
---
Log message:
Added a test class that compiles C++ code into LLVM bytecode.
---
Diffs of the changes:
Index: llvm/test/QMTestDB/QMTest/llvm.py
diff -u llvm/test/QMTestDB/QMTest/llvm.py:1.8 llvm/test/QMTestDB/QMTest/llvm.py:1.9
--- llvm/test/QMTestDB/QMTest/llvm.py:1.8 Thu Sep 25 19:52:59 2003
+++ llvm/test/QMTestDB/QMTest/llvm.py Tue Sep 30 14:03:44 2003
@@ -1083,6 +1083,94 @@
return
+##############################################################################
+#
+# Class: CXXTest
+#
+# Description:
+# This test verifies that the specified C++ program can be compiled
+# into LLVM assembly code which can then be assembled into LLVM byte
+# code.
+#
+##############################################################################
+class CXXTest(qm.test.test.Test):
+
+ description="Verifies that LLVM can compile C++ code into LLVM bytecode"
+
+ #
+ # List of arguments that the objects accepts for test configuration.
+ #
+ arguments = [
+ qm.fields.TextField(name='srcfile',
+ title='C Source Code File',
+ description='C Source Code File to Convert to LLVM Bytecode'),
+ ]
+
+
+ #devnull = ' > /dev/null 2>&1'
+ devnull = ''
+
+ def Run (self, context, result):
+
+ #
+ # Set the core dump size
+ #
+ coresize=int(context['coresize'])
+ resource.setrlimit (resource.RLIMIT_CORE, (coresize,coresize))
+
+ #
+ # Fetch the source and build root directories from the context.
+ #
+ srcroot=context['srcroot']
+ buildroot=context['buildroot']
+ tmpdir=context['tmpdir']
+
+ #
+ # Construct the pathname of the source file and object file.
+ #
+ srcfile=srcroot + '/' + self.srcfile
+ llvmsrc=tmpdir + '/' + os.path.basename (self.srcfile) + '.ll'
+ llvmobj=tmpdir + '/' + os.path.basename (self.srcfile) + '.bc'
+
+ #
+ # Construct the pathnames to the various utilities.
+ #
+ cc = context['llvmgxx']
+ as = buildroot + '/tools/' + context['buildtype'] + '/llvm-as'
+
+ #
+ # Construct the command to generate the LLVM assembly and byte
+ # code.
+ #
+ ccmd = cc + ' -S ' + srcfile + ' -o ' + llvmsrc + self.devnull
+ acmd = as + ' -f ' + llvmsrc + ' -o /dev/null 2>&1 /dev/null'
+
+ #
+ # Assemble the program into C code and then compile it.
+ #
+ estatus=os.system (ccmd)
+ if ((os.WIFEXITED(estatus)) and (os.WEXITSTATUS(estatus) != 0)):
+ fail = 1
+ result.Fail('Compiling C++ code failed')
+ else:
+ estatus=os.system (acmd)
+ if ((os.WIFEXITED(estatus)) and (os.WEXITSTATUS(estatus) != 0)):
+ fail = 1
+ result.Fail('Compiling code failed')
+ else:
+ fail = 0
+
+ #
+ # Cleanup the files.
+ #
+ if ((os.access(llvmsrc,os.F_OK)) == 1):
+ os.remove (llvmsrc)
+ else:
+ if (fail == 0):
+ result.Fail ('Object file not generated')
+
+ return
+
##############################################################################
# RESOURCES
From criswell at cs.uiuc.edu Tue Sep 30 14:05:01 2003
From: criswell at cs.uiuc.edu (John Criswell)
Date: Tue Sep 30 14:05:01 2003
Subject: [llvm-commits] CVS: llvm/test/Makefile
Message-ID: <200309301904.OAA16822@choi.cs.uiuc.edu>
Changes in directory llvm/test:
Makefile updated: 1.40 -> 1.41
---
Log message:
Added the CXXTest test class.
---
Diffs of the changes:
Index: llvm/test/Makefile
diff -u llvm/test/Makefile:1.40 llvm/test/Makefile:1.41
--- llvm/test/Makefile:1.40 Mon Sep 15 21:59:26 2003
+++ llvm/test/Makefile Tue Sep 30 14:04:08 2003
@@ -29,6 +29,7 @@
-c cc=$(CC) \
-c cxx=$(CXX) \
-c "llvmgcc=$(LLVMGCC)" \
+ -c "llvmgxx=$(LLVMGXX)" \
-c make=$(MAKE)
#
@@ -72,6 +73,7 @@
$(QMTEST) register test llvm.VerifierTest
$(QMTEST) register test llvm.AnalyzeTest
$(QMTEST) register test llvm.CTest
+ $(QMTEST) register test llvm.CXXTest
$(QMTEST) register resource llvm.BytecodeResource
#
From criswell at cs.uiuc.edu Tue Sep 30 14:09:01 2003
From: criswell at cs.uiuc.edu (John Criswell)
Date: Tue Sep 30 14:09:01 2003
Subject: [llvm-commits] CVS: llvm/test/QMTestDB/regression.qms/cxxfrontend.qms/
Message-ID: <200309301908.OAA16902@choi.cs.uiuc.edu>
Changes in directory llvm/test/QMTestDB/regression.qms/cxxfrontend.qms:
---
Log message:
Directory /home/vadve/vadve/Research/DynOpt/CVSRepository/llvm/test/QMTestDB/regression.qms/cxxfrontend.qms added to the repository
---
Diffs of the changes:
From criswell at cs.uiuc.edu Tue Sep 30 14:09:07 2003
From: criswell at cs.uiuc.edu (John Criswell)
Date: Tue Sep 30 14:09:07 2003
Subject: [llvm-commits] CVS: llvm/test/QMTestDB/regression.qms/cxxfrontend.qms/2003-08-20-exceptionfail.qmt 2003-08-21-emptyclass.qmt 2003-08-27-typenamespaces.qmt 2003-08-28-forwardtype.qmt 2003-08-28-saveexprbug.qmt 2003-08-31-structlayout.qmt 2003-09-22-compositeexprvalue.qmt 2003-09-29-argumentnumbermismatch.qmt 2003-09-30-nestedfunctiondecl.qmt
Message-ID: <200309301908.OAA16929@choi.cs.uiuc.edu>
Changes in directory llvm/test/QMTestDB/regression.qms/cxxfrontend.qms:
2003-08-20-exceptionfail.qmt added (r1.1)
2003-08-21-emptyclass.qmt added (r1.1)
2003-08-27-typenamespaces.qmt added (r1.1)
2003-08-28-forwardtype.qmt added (r1.1)
2003-08-28-saveexprbug.qmt added (r1.1)
2003-08-31-structlayout.qmt added (r1.1)
2003-09-22-compositeexprvalue.qmt added (r1.1)
2003-09-29-argumentnumbermismatch.qmt added (r1.1)
2003-09-30-nestedfunctiondecl.qmt added (r1.1)
---
Log message:
Adding C++ Regression tests.
These tests are not actually compiled to native code and execute; they are
simply tested to see if they compile.
---
Diffs of the changes:
Index: llvm/test/QMTestDB/regression.qms/cxxfrontend.qms/2003-08-20-exceptionfail.qmt
diff -c /dev/null llvm/test/QMTestDB/regression.qms/cxxfrontend.qms/2003-08-20-exceptionfail.qmt:1.1
*** /dev/null Tue Sep 30 14:08:44 2003
--- llvm/test/QMTestDB/regression.qms/cxxfrontend.qms/2003-08-20-exceptionfail.qmt Tue Sep 30 14:08:34 2003
***************
*** 0 ****
--- 1,2 ----
+
+ .*test/Regression/C++Frontend/2003-08-20-ExceptionFail.cpp
Index: llvm/test/QMTestDB/regression.qms/cxxfrontend.qms/2003-08-21-emptyclass.qmt
diff -c /dev/null llvm/test/QMTestDB/regression.qms/cxxfrontend.qms/2003-08-21-emptyclass.qmt:1.1
*** /dev/null Tue Sep 30 14:08:44 2003
--- llvm/test/QMTestDB/regression.qms/cxxfrontend.qms/2003-08-21-emptyclass.qmt Tue Sep 30 14:08:34 2003
***************
*** 0 ****
--- 1,2 ----
+
+ .*test/Regression/C++Frontend/2003-08-21-EmptyClass.cpp
Index: llvm/test/QMTestDB/regression.qms/cxxfrontend.qms/2003-08-27-typenamespaces.qmt
diff -c /dev/null llvm/test/QMTestDB/regression.qms/cxxfrontend.qms/2003-08-27-typenamespaces.qmt:1.1
*** /dev/null Tue Sep 30 14:08:44 2003
--- llvm/test/QMTestDB/regression.qms/cxxfrontend.qms/2003-08-27-typenamespaces.qmt Tue Sep 30 14:08:34 2003
***************
*** 0 ****
--- 1,2 ----
+
+ .*test/Regression/C++Frontend/2003-08-27-TypeNamespaces.cpp
Index: llvm/test/QMTestDB/regression.qms/cxxfrontend.qms/2003-08-28-forwardtype.qmt
diff -c /dev/null llvm/test/QMTestDB/regression.qms/cxxfrontend.qms/2003-08-28-forwardtype.qmt:1.1
*** /dev/null Tue Sep 30 14:08:44 2003
--- llvm/test/QMTestDB/regression.qms/cxxfrontend.qms/2003-08-28-forwardtype.qmt Tue Sep 30 14:08:34 2003
***************
*** 0 ****
--- 1,2 ----
+
+ .*test/Regression/C++Frontend/2003-08-28-ForwardType.cpp
Index: llvm/test/QMTestDB/regression.qms/cxxfrontend.qms/2003-08-28-saveexprbug.qmt
diff -c /dev/null llvm/test/QMTestDB/regression.qms/cxxfrontend.qms/2003-08-28-saveexprbug.qmt:1.1
*** /dev/null Tue Sep 30 14:08:44 2003
--- llvm/test/QMTestDB/regression.qms/cxxfrontend.qms/2003-08-28-saveexprbug.qmt Tue Sep 30 14:08:34 2003
***************
*** 0 ****
--- 1,2 ----
+
+ .*test/Regression/C++Frontend/2003-08-28-SaveExprBug.cpp
Index: llvm/test/QMTestDB/regression.qms/cxxfrontend.qms/2003-08-31-structlayout.qmt
diff -c /dev/null llvm/test/QMTestDB/regression.qms/cxxfrontend.qms/2003-08-31-structlayout.qmt:1.1
*** /dev/null Tue Sep 30 14:08:44 2003
--- llvm/test/QMTestDB/regression.qms/cxxfrontend.qms/2003-08-31-structlayout.qmt Tue Sep 30 14:08:34 2003
***************
*** 0 ****
--- 1,2 ----
+
+ .*test/Regression/C++Frontend/2003-08-31-StructLayout.cpp
Index: llvm/test/QMTestDB/regression.qms/cxxfrontend.qms/2003-09-22-compositeexprvalue.qmt
diff -c /dev/null llvm/test/QMTestDB/regression.qms/cxxfrontend.qms/2003-09-22-compositeexprvalue.qmt:1.1
*** /dev/null Tue Sep 30 14:08:44 2003
--- llvm/test/QMTestDB/regression.qms/cxxfrontend.qms/2003-09-22-compositeexprvalue.qmt Tue Sep 30 14:08:34 2003
***************
*** 0 ****
--- 1,2 ----
+
+ .*test/Regression/C++Frontend/2003-09-22-CompositeExprValue.cpp
Index: llvm/test/QMTestDB/regression.qms/cxxfrontend.qms/2003-09-29-argumentnumbermismatch.qmt
diff -c /dev/null llvm/test/QMTestDB/regression.qms/cxxfrontend.qms/2003-09-29-argumentnumbermismatch.qmt:1.1
*** /dev/null Tue Sep 30 14:08:44 2003
--- llvm/test/QMTestDB/regression.qms/cxxfrontend.qms/2003-09-29-argumentnumbermismatch.qmt Tue Sep 30 14:08:34 2003
***************
*** 0 ****
--- 1,2 ----
+
+ .*test/Regression/C++Frontend/2003-09-29-ArgumentNumberMismatch.cpp
Index: llvm/test/QMTestDB/regression.qms/cxxfrontend.qms/2003-09-30-nestedfunctiondecl.qmt
diff -c /dev/null llvm/test/QMTestDB/regression.qms/cxxfrontend.qms/2003-09-30-nestedfunctiondecl.qmt:1.1
*** /dev/null Tue Sep 30 14:08:44 2003
--- llvm/test/QMTestDB/regression.qms/cxxfrontend.qms/2003-09-30-nestedfunctiondecl.qmt Tue Sep 30 14:08:34 2003
***************
*** 0 ****
--- 1,2 ----
+
+ .*test/Regression/C++Frontend/2003-09-30-NestedFunctionDecl.cpp
From criswell at cs.uiuc.edu Tue Sep 30 14:28:01 2003
From: criswell at cs.uiuc.edu (John Criswell)
Date: Tue Sep 30 14:28:01 2003
Subject: [llvm-commits] CVS: llvm/test/QMTestDB/regression.qms/cxxfrontend.qms/2003-08-24-cleanup.qmt 2003-08-29-argpassingbug.qmt
Message-ID: <200309301927.OAA21569@choi.cs.uiuc.edu>
Changes in directory llvm/test/QMTestDB/regression.qms/cxxfrontend.qms:
2003-08-24-cleanup.qmt added (r1.1)
2003-08-29-argpassingbug.qmt added (r1.1)
---
Log message:
Added new TestRunner tests for the C++ front end.
Adjusted the TestRunner class to configure the names of the LLVM C and C++
frontends.
---
Diffs of the changes:
Index: llvm/test/QMTestDB/regression.qms/cxxfrontend.qms/2003-08-24-cleanup.qmt
diff -c /dev/null llvm/test/QMTestDB/regression.qms/cxxfrontend.qms/2003-08-24-cleanup.qmt:1.1
*** /dev/null Tue Sep 30 14:27:57 2003
--- llvm/test/QMTestDB/regression.qms/cxxfrontend.qms/2003-08-24-cleanup.qmt Tue Sep 30 14:27:47 2003
***************
*** 0 ****
--- 1,2 ----
+
+ .*test/Regression/C++Frontend/2003-08-24-Cleanup.cpp.tr
Index: llvm/test/QMTestDB/regression.qms/cxxfrontend.qms/2003-08-29-argpassingbug.qmt
diff -c /dev/null llvm/test/QMTestDB/regression.qms/cxxfrontend.qms/2003-08-29-argpassingbug.qmt:1.1
*** /dev/null Tue Sep 30 14:27:57 2003
--- llvm/test/QMTestDB/regression.qms/cxxfrontend.qms/2003-08-29-argpassingbug.qmt Tue Sep 30 14:27:47 2003
***************
*** 0 ****
--- 1,2 ----
+
+ .*test/Regression/C++Frontend/2003-08-29-ArgPassingBug.cpp.tr
From criswell at cs.uiuc.edu Tue Sep 30 14:28:07 2003
From: criswell at cs.uiuc.edu (John Criswell)
Date: Tue Sep 30 14:28:07 2003
Subject: [llvm-commits] CVS: llvm/test/QMTestDB/QMTest/llvm.py
Message-ID: <200309301927.OAA21560@choi.cs.uiuc.edu>
Changes in directory llvm/test/QMTestDB/QMTest:
llvm.py updated: 1.9 -> 1.10
---
Log message:
Added new TestRunner tests for the C++ front end.
Adjusted the TestRunner class to configure the names of the LLVM C and C++
frontends.
---
Diffs of the changes:
Index: llvm/test/QMTestDB/QMTest/llvm.py
diff -u llvm/test/QMTestDB/QMTest/llvm.py:1.9 llvm/test/QMTestDB/QMTest/llvm.py:1.10
--- llvm/test/QMTestDB/QMTest/llvm.py:1.9 Tue Sep 30 14:03:44 2003
+++ llvm/test/QMTestDB/QMTest/llvm.py Tue Sep 30 14:27:46 2003
@@ -968,6 +968,10 @@
'-e',
's|%t|' + scriptfile + '.tmp|g;',
'-e',
+ 's|%gcc|' + context['llvmgcc'] + '|g;',
+ '-e',
+ 's|%gxx|' + context['llvmgxx'] + '|g;',
+ '-e',
'w ' + scriptfile,
srcfile)
From criswell at cs.uiuc.edu Tue Sep 30 14:29:01 2003
From: criswell at cs.uiuc.edu (John Criswell)
Date: Tue Sep 30 14:29:01 2003
Subject: [llvm-commits] CVS: llvm/test/Regression/C++Frontend/2003-08-24-Cleanup.cpp.tr 2003-08-29-ArgPassingBug.cpp.tr
Message-ID: <200309301928.OAA21582@choi.cs.uiuc.edu>
Changes in directory llvm/test/Regression/C++Frontend:
2003-08-24-Cleanup.cpp.tr updated: 1.2 -> 1.3
2003-08-29-ArgPassingBug.cpp.tr updated: 1.1 -> 1.2
---
Log message:
Adjusted for the new TestRunner test class. This replaces %gcc and %g++ with
the names of the LLVM C and C++ frontends, respectively.
---
Diffs of the changes:
Index: llvm/test/Regression/C++Frontend/2003-08-24-Cleanup.cpp.tr
diff -u llvm/test/Regression/C++Frontend/2003-08-24-Cleanup.cpp.tr:1.2 llvm/test/Regression/C++Frontend/2003-08-24-Cleanup.cpp.tr:1.3
--- llvm/test/Regression/C++Frontend/2003-08-24-Cleanup.cpp.tr:1.2 Mon Sep 29 17:17:12 2003
+++ llvm/test/Regression/C++Frontend/2003-08-24-Cleanup.cpp.tr Tue Sep 30 14:28:26 2003
@@ -1,4 +1,4 @@
-// RUN: llvmg++ -xc++ %s -c -o - | llvm-dis | grep unwind
+// RUN: %gxx -xc++ %s -c -o - | llvm-dis | grep unwind
struct S { ~S(); };
Index: llvm/test/Regression/C++Frontend/2003-08-29-ArgPassingBug.cpp.tr
diff -u llvm/test/Regression/C++Frontend/2003-08-29-ArgPassingBug.cpp.tr:1.1 llvm/test/Regression/C++Frontend/2003-08-29-ArgPassingBug.cpp.tr:1.2
--- llvm/test/Regression/C++Frontend/2003-08-29-ArgPassingBug.cpp.tr:1.1 Fri Aug 29 11:00:19 2003
+++ llvm/test/Regression/C++Frontend/2003-08-29-ArgPassingBug.cpp.tr Tue Sep 30 14:28:26 2003
@@ -1,5 +1,5 @@
-// RUN: llvmgcc -xc++ -c -o /dev/null %s 2>&1 | not grep WARNING
+// RUN: %gcc -xc++ -c -o /dev/null %s 2>&1 | not grep WARNING
struct iterator {
iterator();
From criswell at cs.uiuc.edu Tue Sep 30 14:40:00 2003
From: criswell at cs.uiuc.edu (John Criswell)
Date: Tue Sep 30 14:40:00 2003
Subject: [llvm-commits] CVS: llvm/test/Programs/SingleSource/Regression/C++/Makefile
Message-ID: <200309301939.OAA14476@choi.cs.uiuc.edu>
Changes in directory llvm/test/Programs/SingleSource/Regression/C++:
Makefile updated: 1.6 -> 1.7
---
Log message:
Added the EH directory to the list of tests to run.
---
Diffs of the changes:
Index: llvm/test/Programs/SingleSource/Regression/C++/Makefile
diff -u llvm/test/Programs/SingleSource/Regression/C++/Makefile:1.6 llvm/test/Programs/SingleSource/Regression/C++/Makefile:1.7
--- llvm/test/Programs/SingleSource/Regression/C++/Makefile:1.6 Fri Sep 26 14:50:50 2003
+++ llvm/test/Programs/SingleSource/Regression/C++/Makefile Tue Sep 30 14:39:02 2003
@@ -1,10 +1,11 @@
-# test/Regression/C++Frontend/Makefile
+# test/Programs/SingleSource/Regression/C++
#
# This directory contains regression tests for the GCC C++ front-end for LLVM.
# These tests are C++ source files that are input to GCC and compiled to .ll
# files. After that, the files are assembled and executed by the LLVM backends.
#
LEVEL = ../../../../..
+DIRS=EH
include $(LEVEL)/test/Programs/SingleSource/Makefile.singlesrc
CFLAGS += -std=c99
From criswell at cs.uiuc.edu Tue Sep 30 14:42:01 2003
From: criswell at cs.uiuc.edu (John Criswell)
Date: Tue Sep 30 14:42:01 2003
Subject: [llvm-commits] CVS: llvm/autoconf/configure.ac
Message-ID: <200309301941.OAA14513@choi.cs.uiuc.edu>
Changes in directory llvm/autoconf:
configure.ac updated: 1.29 -> 1.30
---
Log message:
Removed Makefile for CompileFail tests. They are now run by QMTest and are
located under llvm/test/Regression/C++Frontend.
---
Diffs of the changes:
Index: llvm/autoconf/configure.ac
diff -u llvm/autoconf/configure.ac:1.29 llvm/autoconf/configure.ac:1.30
--- llvm/autoconf/configure.ac:1.29 Tue Sep 30 11:31:48 2003
+++ llvm/autoconf/configure.ac Tue Sep 30 14:41:15 2003
@@ -188,7 +188,6 @@
AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Regression/C/Makefile)
AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Regression/C++/Makefile)
AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Regression/C++/EH/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Regression/C++/CompileFail/Makefile)
AC_CONFIG_MAKEFILE(tools/Makefile)
AC_CONFIG_MAKEFILE(tools/analyze/Makefile)
AC_CONFIG_MAKEFILE(tools/bugpoint/Makefile)
From criswell at cs.uiuc.edu Tue Sep 30 14:42:06 2003
From: criswell at cs.uiuc.edu (John Criswell)
Date: Tue Sep 30 14:42:06 2003
Subject: [llvm-commits] CVS: llvm/configure
Message-ID: <200309301941.OAA14506@choi.cs.uiuc.edu>
Changes in directory llvm:
configure updated: 1.37 -> 1.38
---
Log message:
Removed Makefile for CompileFail tests. They are now run by QMTest and are
located under llvm/test/Regression/C++Frontend.
---
Diffs of the changes:
Index: llvm/configure
diff -u llvm/configure:1.37 llvm/configure:1.38
--- llvm/configure:1.37 Tue Sep 30 11:31:47 2003
+++ llvm/configure Tue Sep 30 14:41:13 2003
@@ -1977,9 +1977,6 @@
ac_config_commands="$ac_config_commands test/Programs/SingleSource/Regression/C++/EH/Makefile"
- ac_config_commands="$ac_config_commands test/Programs/SingleSource/Regression/C++/CompileFail/Makefile"
-
-
ac_config_commands="$ac_config_commands tools/Makefile"
@@ -4429,7 +4426,7 @@
;;
*-*-irix6*)
# Find out which ABI we are using.
- echo '#line 4432 "configure"' > conftest.$ac_ext
+ echo '#line 4429 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
@@ -5270,7 +5267,7 @@
# Provide some information about the compiler.
-echo "$as_me:5273:" \
+echo "$as_me:5270:" \
"checking for Fortran 77 compiler version" >&5
ac_compiler=`set X $ac_compile; echo $2`
{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5
@@ -6279,11 +6276,11 @@
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:6282: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:6279: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:6286: \$? = $ac_status" >&5
+ echo "$as_me:6283: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings
@@ -6511,11 +6508,11 @@
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:6514: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:6511: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:6518: \$? = $ac_status" >&5
+ echo "$as_me:6515: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings
@@ -6578,11 +6575,11 @@
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:6581: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:6578: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:6585: \$? = $ac_status" >&5
+ echo "$as_me:6582: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -8590,7 +8587,7 @@
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext < conftest.$ac_ext <&5)
+ (eval echo "\"\$as_me:10824: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:10831: \$? = $ac_status" >&5
+ echo "$as_me:10828: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings
@@ -10891,11 +10888,11 @@
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:10894: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:10891: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:10898: \$? = $ac_status" >&5
+ echo "$as_me:10895: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -12134,7 +12131,7 @@
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext < conftest.$ac_ext <&5)
+ (eval echo "\"\$as_me:13054: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:13061: \$? = $ac_status" >&5
+ echo "$as_me:13058: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings
@@ -13121,11 +13118,11 @@
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:13124: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:13121: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:13128: \$? = $ac_status" >&5
+ echo "$as_me:13125: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -15065,11 +15062,11 @@
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:15068: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:15065: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:15072: \$? = $ac_status" >&5
+ echo "$as_me:15069: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings
@@ -15297,11 +15294,11 @@
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:15300: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:15297: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:15304: \$? = $ac_status" >&5
+ echo "$as_me:15301: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings
@@ -15364,11 +15361,11 @@
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:15367: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:15364: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:15371: \$? = $ac_status" >&5
+ echo "$as_me:15368: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -17376,7 +17373,7 @@
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext < conftest.$ac_ext <
Changes in directory llvm/lib/CodeGen:
RegAllocLinearScan.cpp added (r1.1.2.1)
---
Log message:
Initial commit of linear scan allocator. This is just a sceleton file; it does not really work
---
Diffs of the changes:
Index: llvm/lib/CodeGen/RegAllocLinearScan.cpp
diff -c /dev/null llvm/lib/CodeGen/RegAllocLinearScan.cpp:1.1.2.1
*** /dev/null Tue Sep 30 14:55:13 2003
--- llvm/lib/CodeGen/RegAllocLinearScan.cpp Tue Sep 30 14:55:02 2003
***************
*** 0 ****
--- 1,70 ----
+ //===-- RegAllocLinearScan.cpp - Linear Scan register allocator ---------===//
+ //
+ // This file implements a linear scan register allocator..
+ //
+ //===--------------------------------------------------------------------===//
+
+ #define DEBUG_TYPE "regalloc"
+
+ #include "llvm/Target/MRegisterInfo.h"
+ #include "llvm/Target/TargetMachine.h"
+
+ namespace {
+ Statistic<> NumSpilled ("ra-linearscan", "Number of registers spilled");
+ Statistic<> NumReloaded("ra-linearscan", "Number of registers reloaded");
+
+ class RA : public MachineFunctionPass {
+ private:
+ MachineFunction *MF;
+ const TargetMachine *TM;
+ const MRegisterInfo *RegInfo;
+ LiveVariables* LV;
+
+ // StackSlotForVirtReg - Maps virtual regs to the frame index where these
+ // values are spilled.
+ std::map StackSlotForVirtReg;
+
+ // Virt2PhysRegMap - This map contains entries for each virtual register
+ // that is currently available in a physical register.
+ //
+ std::map Virt2PhysRegMap;
+
+ // Phys2VirtRegMap - This map contains entries for each physical register
+ // that currently maps a virtual register..
+ //
+ std::map Phys2VirtRegMap;
+
+ public:
+ virtual const char* getPassName() const {
+ return "Linear Scan Register Allocator";
+ }
+ virtual void getAnalysisUsage(AnalysisUsage &AU) const {
+ AU.addRequired();
+ AU.addRequiredID(PHIEliminationID);
+ MachineFunctionPass::getAnalysisUsage(AU);
+ }
+
+ private:
+ /// runOnMachineFunction - Register allocate the whole function
+ bool runOnMachineFunction(MachineFunction &Fn);
+ };
+ }
+
+ /// runOnMachineFunction - Register allocate the whole function
+ ///
+ bool RA::runOnMachineFunction(MachineFunction &Fn) {
+ DEBUG(std::cerr << "Machine Function " << "\n");
+ MF = &Fn;
+ TM = &Fn.getTarget();
+ RegInfo = TM->getRegisterInfo();
+
+ LV = &getAnalysis();
+ // compute live intervals
+ // liner scan algorithm
+
+ return true;
+ }
+
+ FunctionPass *createLinearScanRegisterAllocator() {
+ return new RA();
+ }
From alkis at cs.uiuc.edu Tue Sep 30 14:56:07 2003
From: alkis at cs.uiuc.edu (Alkis Evlogimenos)
Date: Tue Sep 30 14:56:07 2003
Subject: [llvm-commits] [regalloc_linearscan] CVS: llvm/include/llvm/CodeGen/Passes.h
Message-ID: <200309301955.OAA07477@morpheus.cs.uiuc.edu>
Changes in directory llvm/include/llvm/CodeGen:
Passes.h updated: 1.3 -> 1.3.2.1
---
Log message:
Add createLinearScanRegisterAllocator()
---
Diffs of the changes:
Index: llvm/include/llvm/CodeGen/Passes.h
diff -u llvm/include/llvm/CodeGen/Passes.h:1.3 llvm/include/llvm/CodeGen/Passes.h:1.3.2.1
--- llvm/include/llvm/CodeGen/Passes.h:1.3 Thu Aug 21 17:09:31 2003
+++ llvm/include/llvm/CodeGen/Passes.h Tue Sep 30 14:54:49 2003
@@ -30,6 +30,12 @@
///
FunctionPass *createLocalRegisterAllocator();
+/// LinearScanRegisterAllocation Pass - This pass implements the
+/// linear scan register allocation algorithm, a global register
+/// allocator.
+///
+FunctionPass *createLinearScanRegisterAllocator();
+
/// PrologEpilogCodeInserter Pass - This pass inserts prolog and epilog code,
/// and eliminates abstract frame references.
///
From criswell at cs.uiuc.edu Tue Sep 30 14:57:01 2003
From: criswell at cs.uiuc.edu (John Criswell)
Date: Tue Sep 30 14:57:01 2003
Subject: [llvm-commits] CVS: llvm/test/Regression/C++Frontend/2003-08-24-Cleanup.cpp.tr 2003-08-29-ArgPassingBug.cpp.tr
Message-ID: <200309301956.OAA20049@choi.cs.uiuc.edu>
Changes in directory llvm/test/Regression/C++Frontend:
2003-08-24-Cleanup.cpp.tr updated: 1.3 -> 1.4
2003-08-29-ArgPassingBug.cpp.tr updated: 1.2 -> 1.3
---
Log message:
Changed TestRunner test class so that it replaces %llvmgcc and %llvmgxx
instead of %gcc and %gxx.
---
Diffs of the changes:
Index: llvm/test/Regression/C++Frontend/2003-08-24-Cleanup.cpp.tr
diff -u llvm/test/Regression/C++Frontend/2003-08-24-Cleanup.cpp.tr:1.3 llvm/test/Regression/C++Frontend/2003-08-24-Cleanup.cpp.tr:1.4
--- llvm/test/Regression/C++Frontend/2003-08-24-Cleanup.cpp.tr:1.3 Tue Sep 30 14:28:26 2003
+++ llvm/test/Regression/C++Frontend/2003-08-24-Cleanup.cpp.tr Tue Sep 30 14:56:36 2003
@@ -1,4 +1,4 @@
-// RUN: %gxx -xc++ %s -c -o - | llvm-dis | grep unwind
+// RUN: %llvmgxx -xc++ %s -c -o - | llvm-dis | grep unwind
struct S { ~S(); };
Index: llvm/test/Regression/C++Frontend/2003-08-29-ArgPassingBug.cpp.tr
diff -u llvm/test/Regression/C++Frontend/2003-08-29-ArgPassingBug.cpp.tr:1.2 llvm/test/Regression/C++Frontend/2003-08-29-ArgPassingBug.cpp.tr:1.3
--- llvm/test/Regression/C++Frontend/2003-08-29-ArgPassingBug.cpp.tr:1.2 Tue Sep 30 14:28:26 2003
+++ llvm/test/Regression/C++Frontend/2003-08-29-ArgPassingBug.cpp.tr Tue Sep 30 14:56:36 2003
@@ -1,5 +1,5 @@
-// RUN: %gcc -xc++ -c -o /dev/null %s 2>&1 | not grep WARNING
+// RUN: %llvmgcc -xc++ -c -o /dev/null %s 2>&1 | not grep WARNING
struct iterator {
iterator();
From criswell at cs.uiuc.edu Tue Sep 30 14:57:06 2003
From: criswell at cs.uiuc.edu (John Criswell)
Date: Tue Sep 30 14:57:06 2003
Subject: [llvm-commits] CVS: llvm/test/QMTestDB/QMTest/llvm.py
Message-ID: <200309301956.OAA20040@choi.cs.uiuc.edu>
Changes in directory llvm/test/QMTestDB/QMTest:
llvm.py updated: 1.10 -> 1.11
---
Log message:
Changed TestRunner test class so that it replaces %llvmgcc and %llvmgxx
instead of %gcc and %gxx.
---
Diffs of the changes:
Index: llvm/test/QMTestDB/QMTest/llvm.py
diff -u llvm/test/QMTestDB/QMTest/llvm.py:1.10 llvm/test/QMTestDB/QMTest/llvm.py:1.11
--- llvm/test/QMTestDB/QMTest/llvm.py:1.10 Tue Sep 30 14:27:46 2003
+++ llvm/test/QMTestDB/QMTest/llvm.py Tue Sep 30 14:56:35 2003
@@ -968,9 +968,9 @@
'-e',
's|%t|' + scriptfile + '.tmp|g;',
'-e',
- 's|%gcc|' + context['llvmgcc'] + '|g;',
+ 's|%llvmgcc|' + context['llvmgcc'] + '|g;',
'-e',
- 's|%gxx|' + context['llvmgxx'] + '|g;',
+ 's|%llvmgxx|' + context['llvmgxx'] + '|g;',
'-e',
'w ' + scriptfile,
srcfile)
From lattner at cs.uiuc.edu Tue Sep 30 15:15:01 2003
From: lattner at cs.uiuc.edu (Chris Lattner)
Date: Tue Sep 30 15:15:01 2003
Subject: [llvm-commits] CVS: llvm/include/llvm/CodeGen/Passes.h
Message-ID: <200309302014.PAA32722@neo.cs.uiuc.edu>
Changes in directory llvm/include/llvm/CodeGen:
Passes.h updated: 1.3 -> 1.4
---
Log message:
Include the sparc register in this file
---
Diffs of the changes:
Index: llvm/include/llvm/CodeGen/Passes.h
diff -u llvm/include/llvm/CodeGen/Passes.h:1.3 llvm/include/llvm/CodeGen/Passes.h:1.4
--- llvm/include/llvm/CodeGen/Passes.h:1.3 Thu Aug 21 17:09:31 2003
+++ llvm/include/llvm/CodeGen/Passes.h Tue Sep 30 15:14:43 2003
@@ -35,4 +35,9 @@
///
FunctionPass *createPrologEpilogCodeInserter();
+
+/// getRegisterAllocator - This creates an instance of the register allocator
+/// for the Sparc.
+FunctionPass *getRegisterAllocator(TargetMachine &T);
+
#endif
From lattner at cs.uiuc.edu Tue Sep 30 15:15:07 2003
From: lattner at cs.uiuc.edu (Chris Lattner)
Date: Tue Sep 30 15:15:07 2003
Subject: [llvm-commits] CVS: llvm/lib/CodeGen/RegAlloc/PhyRegAlloc.cpp
Message-ID: <200309302014.PAA32709@neo.cs.uiuc.edu>
Changes in directory llvm/lib/CodeGen/RegAlloc:
PhyRegAlloc.cpp updated: 1.117 -> 1.118
---
Log message:
include passes.h which defines the interface this file exposes
---
Diffs of the changes:
Index: llvm/lib/CodeGen/RegAlloc/PhyRegAlloc.cpp
diff -u llvm/lib/CodeGen/RegAlloc/PhyRegAlloc.cpp:1.117 llvm/lib/CodeGen/RegAlloc/PhyRegAlloc.cpp:1.118
--- llvm/lib/CodeGen/RegAlloc/PhyRegAlloc.cpp:1.117 Wed Sep 24 13:16:23 2003
+++ llvm/lib/CodeGen/RegAlloc/PhyRegAlloc.cpp Tue Sep 30 15:13:59 2003
@@ -17,22 +17,22 @@
#include "RegAllocCommon.h"
#include "RegClass.h"
#include "IGNode.h"
+#include "llvm/CodeGen/FunctionLiveVarInfo.h"
+#include "llvm/CodeGen/InstrSelection.h"
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineInstrAnnot.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineFunctionInfo.h"
-#include "llvm/CodeGen/FunctionLiveVarInfo.h"
-#include "llvm/CodeGen/InstrSelection.h"
+#include "llvm/CodeGen/Passes.h"
#include "llvm/Analysis/LoopInfo.h"
#include "llvm/Target/TargetInstrInfo.h"
-#include "llvm/Function.h"
#include "llvm/Type.h"
#include "llvm/iOther.h"
#include "llvm/DerivedTypes.h"
#include "llvm/Constants.h"
-#include "llvm/Support/InstIterator.h"
#include "llvm/Module.h"
+#include "llvm/Support/InstIterator.h"
#include "Support/STLExtras.h"
#include "Support/SetOperations.h"
#include "Support/CommandLine.h"
From lattner at cs.uiuc.edu Tue Sep 30 15:16:02 2003
From: lattner at cs.uiuc.edu (Chris Lattner)
Date: Tue Sep 30 15:16:02 2003
Subject: [llvm-commits] CVS: llvm/include/llvm/CodeGen/Passes.h
Message-ID: <200309302015.PAA32757@neo.cs.uiuc.edu>
Changes in directory llvm/include/llvm/CodeGen:
Passes.h updated: 1.4 -> 1.5
---
Log message:
Forward declare a class
---
Diffs of the changes:
Index: llvm/include/llvm/CodeGen/Passes.h
diff -u llvm/include/llvm/CodeGen/Passes.h:1.4 llvm/include/llvm/CodeGen/Passes.h:1.5
--- llvm/include/llvm/CodeGen/Passes.h:1.4 Tue Sep 30 15:14:43 2003
+++ llvm/include/llvm/CodeGen/Passes.h Tue Sep 30 15:15:40 2003
@@ -10,6 +10,7 @@
class FunctionPass;
class PassInfo;
+class TargetMachine;
// PHIElimination pass - This pass eliminates machine instruction PHI nodes by
// inserting copy instructions. This destroys SSA information, but is the
From lattner at cs.uiuc.edu Tue Sep 30 15:16:07 2003
From: lattner at cs.uiuc.edu (Chris Lattner)
Date: Tue Sep 30 15:16:07 2003
Subject: [llvm-commits] CVS: llvm/include/llvm/CodeGen/RegisterAllocation.h
Message-ID: <200309302015.PAA32750@neo.cs.uiuc.edu>
Changes in directory llvm/include/llvm/CodeGen:
RegisterAllocation.h (r1.6) removed
---
Log message:
This got merged into Passes.h
---
Diffs of the changes:
From lattner at cs.uiuc.edu Tue Sep 30 15:16:12 2003
From: lattner at cs.uiuc.edu (Chris Lattner)
Date: Tue Sep 30 15:16:12 2003
Subject: [llvm-commits] CVS: llvm/lib/Target/Sparc/Sparc.cpp
Message-ID: <200309302015.PAA32739@neo.cs.uiuc.edu>
Changes in directory llvm/lib/Target/Sparc:
Sparc.cpp updated: 1.81 -> 1.82
---
Log message:
RegisterAllocation.h is going away
---
Diffs of the changes:
Index: llvm/lib/Target/Sparc/Sparc.cpp
diff -u llvm/lib/Target/Sparc/Sparc.cpp:1.81 llvm/lib/Target/Sparc/Sparc.cpp:1.82
--- llvm/lib/Target/Sparc/Sparc.cpp:1.81 Thu Sep 18 12:37:46 2003
+++ llvm/lib/Target/Sparc/Sparc.cpp Tue Sep 30 15:15:04 2003
@@ -15,7 +15,6 @@
#include "llvm/CodeGen/MachineFunctionInfo.h"
#include "llvm/CodeGen/InstrSelection.h"
#include "llvm/CodeGen/InstrScheduling.h"
-#include "llvm/CodeGen/RegisterAllocation.h"
#include "llvm/CodeGen/MachineCodeForInstruction.h"
#include "llvm/Target/TargetMachineImpls.h"
#include "Support/CommandLine.h"
From criswell at cs.uiuc.edu Tue Sep 30 15:51:01 2003
From: criswell at cs.uiuc.edu (John Criswell)
Date: Tue Sep 30 15:51:01 2003
Subject: [llvm-commits] CVS: reopt/test/Makefile
Message-ID: <200309302050.PAA20166@choi.cs.uiuc.edu>
Changes in directory reopt/test:
Makefile updated: 1.4 -> 1.5
---
Log message:
Go into the object directory to run tests.
---
Diffs of the changes:
Index: reopt/test/Makefile
diff -u reopt/test/Makefile:1.4 reopt/test/Makefile:1.5
--- reopt/test/Makefile:1.4 Thu Aug 21 14:41:00 2003
+++ reopt/test/Makefile Tue Sep 30 15:50:40 2003
@@ -14,6 +14,6 @@
# test target - Descend into test/Programs and run the TEST.reopt.Makefile
# tests...
test::
- (cd $(LLVM_SRC_ROOT)/test/Programs/$(SUBDIR); \
+ (cd $(LLVM_OBJ_ROOT)/test/Programs/$(SUBDIR); \
PROJECT_DIR=$(BUILD_OBJ_ROOT) $(MAKE) TEST=reopt \
test )
From lattner at cs.uiuc.edu Tue Sep 30 16:30:01 2003
From: lattner at cs.uiuc.edu (Chris Lattner)
Date: Tue Sep 30 16:30:01 2003
Subject: [llvm-commits] CVS: llvm/test/Regression/C++Frontend/2003-09-30-ForIncrementExprBug.cpp
Message-ID: <200309302129.QAA25652@apoc.cs.uiuc.edu>
Changes in directory llvm/test/Regression/C++Frontend:
2003-09-30-ForIncrementExprBug.cpp added (r1.1)
---
Log message:
new testcase
---
Diffs of the changes:
Index: llvm/test/Regression/C++Frontend/2003-09-30-ForIncrementExprBug.cpp
diff -c /dev/null llvm/test/Regression/C++Frontend/2003-09-30-ForIncrementExprBug.cpp:1.1
*** /dev/null Tue Sep 30 16:29:38 2003
--- llvm/test/Regression/C++Frontend/2003-09-30-ForIncrementExprBug.cpp Tue Sep 30 16:29:27 2003
***************
*** 0 ****
--- 1,8 ----
+ struct C {};
+
+ C &foo();
+
+ void foox() {
+ for (; ; foo());
+ }
+
From lattner at cs.uiuc.edu Tue Sep 30 16:32:01 2003
From: lattner at cs.uiuc.edu (Chris Lattner)
Date: Tue Sep 30 16:32:01 2003
Subject: [llvm-commits] CVS: llvm/test/Regression/C++Frontend/2003-09-30-ForIncrementExprBug2.cpp
Message-ID: <200309302131.QAA25702@apoc.cs.uiuc.edu>
Changes in directory llvm/test/Regression/C++Frontend:
2003-09-30-ForIncrementExprBug2.cpp added (r1.1)
---
Log message:
This bug is not fixed, but will be in the future eventually
---
Diffs of the changes:
Index: llvm/test/Regression/C++Frontend/2003-09-30-ForIncrementExprBug2.cpp
diff -c /dev/null llvm/test/Regression/C++Frontend/2003-09-30-ForIncrementExprBug2.cpp:1.1
*** /dev/null Tue Sep 30 16:31:35 2003
--- llvm/test/Regression/C++Frontend/2003-09-30-ForIncrementExprBug2.cpp Tue Sep 30 16:31:25 2003
***************
*** 0 ****
--- 1,10 ----
+ // Test with an opaque type
+
+ struct C;
+
+ C &foo();
+
+ void foox() {
+ for (; ; foo());
+ }
+
From lattner at cs.uiuc.edu Tue Sep 30 16:47:01 2003
From: lattner at cs.uiuc.edu (Chris Lattner)
Date: Tue Sep 30 16:47:01 2003
Subject: [llvm-commits] CVS: llvm/test/Regression/C++Frontend/2003-09-30-CommaExprBug.cpp
Message-ID: <200309302146.QAA28013@apoc.cs.uiuc.edu>
Changes in directory llvm/test/Regression/C++Frontend:
2003-09-30-CommaExprBug.cpp added (r1.1)
---
Log message:
New testcase that was not correctly handled
---
Diffs of the changes:
Index: llvm/test/Regression/C++Frontend/2003-09-30-CommaExprBug.cpp
diff -c /dev/null llvm/test/Regression/C++Frontend/2003-09-30-CommaExprBug.cpp:1.1
*** /dev/null Tue Sep 30 16:46:33 2003
--- llvm/test/Regression/C++Frontend/2003-09-30-CommaExprBug.cpp Tue Sep 30 16:46:23 2003
***************
*** 0 ****
--- 1,8 ----
+ class Empty {};
+
+ void foo(Empty E);
+
+ void bar() {
+ foo(Empty());
+ }
+
From lattner at cs.uiuc.edu Tue Sep 30 17:25:01 2003
From: lattner at cs.uiuc.edu (Chris Lattner)
Date: Tue Sep 30 17:25:01 2003
Subject: [llvm-commits] CVS: llvm/lib/Target/Sparc/Sparc.cpp
Message-ID: <200309302224.RAA14664@apoc.cs.uiuc.edu>
Changes in directory llvm/lib/Target/Sparc:
Sparc.cpp updated: 1.82 -> 1.83
---
Log message:
Make sure to get the definition of getRegisterAllocator
---
Diffs of the changes:
Index: llvm/lib/Target/Sparc/Sparc.cpp
diff -u llvm/lib/Target/Sparc/Sparc.cpp:1.82 llvm/lib/Target/Sparc/Sparc.cpp:1.83
--- llvm/lib/Target/Sparc/Sparc.cpp:1.82 Tue Sep 30 15:15:04 2003
+++ llvm/lib/Target/Sparc/Sparc.cpp Tue Sep 30 17:24:00 2003
@@ -16,6 +16,7 @@
#include "llvm/CodeGen/InstrSelection.h"
#include "llvm/CodeGen/InstrScheduling.h"
#include "llvm/CodeGen/MachineCodeForInstruction.h"
+#include "llvm/CodeGen/Passes.h"
#include "llvm/Target/TargetMachineImpls.h"
#include "Support/CommandLine.h"
From criswell at cs.uiuc.edu Tue Sep 30 17:56:01 2003
From: criswell at cs.uiuc.edu (John Criswell)
Date: Tue Sep 30 17:56:01 2003
Subject: [llvm-commits] CVS: llvm/www/docs/CommandGuide/extract.html
Message-ID: <200309302255.RAA22276@choi.cs.uiuc.edu>
Changes in directory llvm/www/docs/CommandGuide:
extract.html updated: 1.2 -> 1.3
---
Log message:
Corrected usage synopsis.
Added information regarding additional LLVM passes used, input defaults, and
output defaults.
---
Diffs of the changes:
Index: llvm/www/docs/CommandGuide/extract.html
diff -u llvm/www/docs/CommandGuide/extract.html:1.2 llvm/www/docs/CommandGuide/extract.html:1.3
--- llvm/www/docs/CommandGuide/extract.html:1.2 Thu Sep 25 14:50:04 2003
+++ llvm/www/docs/CommandGuide/extract.html Tue Sep 30 17:55:44 2003
@@ -20,7 +20,7 @@
SYNOPSIS
-extract [options] <filename> [filename ...]
+extract [options] [filename]
DESCRIPTION
@@ -28,6 +28,14 @@
The extract command takes the name of a function and extracts it from the
specified LLVM bytecode file. It is primarily used as a debugging tool to
reduce test cases from larger programs that are triggering a bug.
+
+
+In addition to extracting the bytecode of the specified function, extract will
+also remove unreachable global variables, prototypes, and unused types.
+
+
+The extract command will read its input from standard input if filename is
+omitted or if filename is -. The output is always written to standard output.