[llvm-commits] CVS: llvm-test/TEST.fourway-debuginfo.Makefile TEST.fourway-debuginfo.report TEST.fourway-time.Makefile TEST.fourway-time.report fourway.Makefile TEST.fourway.Makefile TEST.fourway.repo

2006-12-09 Thread Jim Laskey


Changes in directory llvm-test:

TEST.fourway-debuginfo.Makefile added (r1.1)
TEST.fourway-debuginfo.report added (r1.1)
TEST.fourway-time.Makefile added (r1.1)
TEST.fourway-time.report added (r1.1)
fourway.Makefile added (r1.1)
TEST.fourway.Makefile updated: 1.1 -> 1.2
TEST.fourway.report updated: 1.1 -> 1.2
---
Log message:

GCC vs. LLVM-GCC by Debug vs. No Debug reports.

---
Diffs of the changes:  (+246 -109)

 TEST.fourway-debuginfo.Makefile |   22 +
 TEST.fourway-debuginfo.report   |   50 +
 TEST.fourway-time.Makefile  |   22 +
 TEST.fourway-time.report|   38 
 TEST.fourway.Makefile   |   93 
 TEST.fourway.report |   57 +---
 fourway.Makefile|   73 +++
 7 files changed, 246 insertions(+), 109 deletions(-)


Index: llvm-test/TEST.fourway-debuginfo.Makefile
diff -c /dev/null llvm-test/TEST.fourway-debuginfo.Makefile:1.1
*** /dev/null   Sat Dec  9 03:40:41 2006
--- llvm-test/TEST.fourway-debuginfo.Makefile   Sat Dec  9 03:40:31 2006
***
*** 0 
--- 1,22 
+ ##===- TEST.fourway.Makefile ---*- Makefile 
-*-===##
+ #
+ # This test tries running the gcc and llvm-gcc compilers on all of the 
programs
+ # with and without debuginfo and reports on resulting sizes.
+ #
+ 
##===--===##
+ 
+ include $(LEVEL)/fourway.Makefile
+ 
+ $(PROGRAMS_TO_TEST:%=test.$(TEST).%): \
+ test.$(TEST).%: $(LLVMGCC) $(LLVMGXX) \
+ Output/%.report.$(TEST).txt \
+ Output/%.gcc.nodebug.size \
+ Output/%.gcc.debug.size \
+ Output/%.llvmgcc.nodebug.size \
+ Output/%.llvmgcc.debug.size
+   @-cat Output/$*.gcc.nodebug.size
+   @-cat Output/$*.gcc.debug.size
+   @-cat Output/$*.llvmgcc.nodebug.size
+   @-cat Output/$*.llvmgcc.debug.size
+ 
+ 


Index: llvm-test/TEST.fourway-debuginfo.report
diff -c /dev/null llvm-test/TEST.fourway-debuginfo.report:1.1
*** /dev/null   Sat Dec  9 03:40:46 2006
--- llvm-test/TEST.fourway-debuginfo.report Sat Dec  9 03:40:31 2006
***
*** 0 
--- 1,50 
+ ##=== TEST.fourway.report - Report description for llc tests ---*- perl 
-*-===##
+ #
+ # This file defines a report to be generated for the fourway-debuginfo test.
+ #
+ 
##===--===##
+ 
+ # Sort by name
+ $SortCol = 1;
+ $TrimRepeatedPrefix = 1;
+ my $ExtTextSize  = '(\d+)\s+\d+\s+\d+\s+\d+\s+\d+\s+[0-9a-fA-F]+';
+ my $ExtDataSize  = '\d+\s+(\d+)\s+\d+\s+\d+\s+\d+\s+[0-9a-fA-F]+';
+ my $ExtObjSize   = '\d+\s+\d+\s+(\d+)\s+\d+\s+\d+\s+[0-9a-fA-F]+';
+ my $ExtOtherSize = '\d+\s+\d+\s+\d+\s+(\d+)\s+\d+\s+[0-9a-fA-F]+';
+ my $ExtTotalSize = '\d+\s+\d+\s+\d+\s+\d+\s+(\d+)\s+[0-9a-fA-F]+';
+ 
+ sub Percentage {
+   my ($Cols, $Col) = @_;
+   my $GCC = $Cols->[$Col-2];
+   my $LLVMGCC = $Cols->[$Col-1];
+   return "n/a" if ($GCC eq "*" or $LLVMGCC eq "*");
+   return sprintf("%5.1f%%", $LLVMGCC / $GCC * 100)
+  if ($GCC > 0 and $LLVMGCC > 0);
+   return "-";
+ }
+ 
+ # These are the columns for the report.  The first entry is the header for the
+ # column, the second is the regex to use to match the value.  Empty list 
create
+ # seperators, and closures may be put in for custom processing.
+ (
+ # Name
+  ["Name:" , '\'([^\']+)\' Program'],
+  [],
+ # Text Sizes
+  ["Text GND", "${ExtTextSize}gcc.nodebug"],
+  ["Text GD",  "${ExtTextSize}gcc.debug"],
+  ["Text LND", "${ExtTextSize}llvmgcc.nodebug"],
+  ["Text LD",  "${ExtTextSize}llvmgcc.debug"],
+  [],
+ # Other Sizes
+  ["Debug* GCC",  "${ExtOtherSize}gcc.debug"],
+  ["Debug* LLVM-GCC", "${ExtOtherSize}llvmgcc.debug"],
+  ["Debug* %",\&Percentage],
+  [],
+ # Total Sizes
+  ["Total GND", "${ExtTotalSize}gcc.nodebug"],
+  ["Total GD",  "${ExtTotalSize}gcc.debug"],
+  ["Total LND", "${ExtTotalSize}llvmgcc.nodebug"],
+  ["Total LD",  "${ExtTotalSize}llvmgcc.debug"],
+  [],
+  );


Index: llvm-test/TEST.fourway-time.Makefile
diff -c /dev/null llvm-test/TEST.fourway-time.Makefile:1.1
*** /dev/null   Sat Dec  9 03:40:46 2006
--- llvm-test/TEST.fourway-time.MakefileSat Dec  9 03:40:31 2006
***
*** 0 
--- 1,22 
+ ##===- TEST.fourway.Makefile ---*- Makefile 
-*-===##
+ #
+ # This test tries running the gcc and llvm-gcc compilers on all of the 
programs
+ # with and without debuginfo and reports on compile time.
+ #
+ 
##===--===##
+ 
+ include $(LEVEL)/fourway.Makefile
+ 
+ $(PROGRAMS_TO_TEST:%=test.$(TEST).%): \
+ test.$(TEST).%: $(LLVMGCC) $(LLVMGXX) \
+ Output/%.report.$(TEST).txt \
+ Output/%.gcc.nodebug.time \
+ Output/%.gcc.debug.time \
+ Output/%.llvmgcc.nodebug.time \
+ Output/%.llvmgcc.debug.time
+   @-cat Output/$*.gcc.nodebug.time
+   @-cat Output/$*.gcc.

[llvm-commits] setJmp, longjmp patch for review

2006-12-09 Thread Anton Korobeynikov
Hello Everyone.

It seems, that setjmp\logjmp support in CBackend is not good, since
codegeneration depends on *build* platform, not target. Attached patch
should solve the problem. 
However, I'm not sure, whether it's correct and won't break nightly
testers on Darwin (that's why, I haven't commited it already).

-- 
With best regards, Anton Korobeynikov.

Faculty of Mathematics & Mechanics, Saint Petersburg State University.

diff -r f7b4f57b400c lib/Target/CBackend/Writer.cpp
--- a/lib/Target/CBackend/Writer.cpp	Wed Dec 06 13:35:10 2006 +
+++ b/lib/Target/CBackend/Writer.cpp	Sat Dec 09 12:13:58 2006 +0300
@@ -1138,6 +1138,8 @@ static void generateCompilerSpecificCode
   << "#elif defined(__APPLE__)\n"
   << "extern void *__builtin_alloca(unsigned long);\n"
   << "#define alloca(x) __builtin_alloca(x)\n"
+  << "#define longjmp(x) _longjmp(x)\n"
+  << "#define setjmp(x) _setjmp(x)\n"
   << "#elif defined(__sun__)\n"
   << "#if defined(__sparcv9)\n"
   << "extern void *__builtin_alloca(unsigned long);\n"
@@ -2143,17 +2145,11 @@ void CWriter::visitCallInst(CallInst &I)
 Out << ')';
 return;
   case Intrinsic::setjmp:
-#if defined(HAVE__SETJMP) && defined(HAVE__LONGJMP)
-Out << "_";  // Use _setjmp on systems that support it!
-#endif
 Out << "setjmp(*(jmp_buf*)";
 writeOperand(I.getOperand(1));
 Out << ')';
 return;
   case Intrinsic::longjmp:
-#if defined(HAVE__SETJMP) && defined(HAVE__LONGJMP)
-Out << "_";  // Use _longjmp on systems that support it!
-#endif
 Out << "longjmp(*(jmp_buf*)";
 writeOperand(I.getOperand(1));
 Out << ", ";
diff -r f7b4f57b400c lib/Target/X86/X86ISelLowering.cpp
--- a/lib/Target/X86/X86ISelLowering.cpp	Wed Dec 06 13:35:10 2006 +
+++ b/lib/Target/X86/X86ISelLowering.cpp	Sat Dec 09 12:21:30 2006 +0300
@@ -54,7 +54,7 @@ X86TargetLowering::X86TargetLowering(Tar
   setShiftAmountFlavor(Mask);   // shl X, 32 == shl X, 0
   setStackPointerRegisterToSaveRestore(X86StackPtr);
 
-  if (!Subtarget->isTargetDarwin())
+  if (!(Subtarget->isTargetDarwin() || Subtarget->isTargetCygwin()))
 // Darwin should use _setjmp/_longjmp instead of setjmp/longjmp.
 setUseUnderscoreSetJmpLongJmp(true);
 
___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/tools/llvm-upgrade/UpgradeParser.y

2006-12-09 Thread Reid Spencer


Changes in directory llvm/tools/llvm-upgrade:

UpgradeParser.y updated: 1.22 -> 1.23
---
Log message:

When upgrading cast to bool to a setne, generate icmp ne instead.


---
Diffs of the changes:  (+10 -4)

 UpgradeParser.y |   14 ++
 1 files changed, 10 insertions(+), 4 deletions(-)


Index: llvm/tools/llvm-upgrade/UpgradeParser.y
diff -u llvm/tools/llvm-upgrade/UpgradeParser.y:1.22 
llvm/tools/llvm-upgrade/UpgradeParser.y:1.23
--- llvm/tools/llvm-upgrade/UpgradeParser.y:1.22Wed Dec  6 22:22:23 2006
+++ llvm/tools/llvm-upgrade/UpgradeParser.y Sat Dec  9 10:56:55 2006
@@ -194,10 +194,16 @@
 // the original intent by replace the cast with a setne
 const char* comparator = SrcTy.isPointer() ? ", null" : 
   (SrcTy.isFloatingPoint() ? ", 0.0" : ", 0");
-if (isConst) 
-  Result = "setne (" + Source + comparator + ")";
-else
-  Result = "setne " + Source + comparator;
+#if UPGRADE_SETCOND_OPS 
+const char* compareOp = SrcTy.isFloatingPoint() ? "setne " : "icmp ne ";
+#else
+const char* compareOp = "setne";
+#endif
+if (isConst) { 
+  Result = "(" + Source + comparator + ")";
+  Result = compareOp + Result;
+} else
+  Result = compareOp + Source + comparator;
 return Result; // skip cast processing below
   }
   ResolveType(SrcTy);



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm-test/MultiSource/Makefile.multisrc

2006-12-09 Thread Reid Spencer


Changes in directory llvm-test/MultiSource:

Makefile.multisrc updated: 1.53 -> 1.54
---
Log message:

Make it easy to run findmisopt.


---
Diffs of the changes:  (+4 -0)

 Makefile.multisrc |4 
 1 files changed, 4 insertions(+)


Index: llvm-test/MultiSource/Makefile.multisrc
diff -u llvm-test/MultiSource/Makefile.multisrc:1.53 
llvm-test/MultiSource/Makefile.multisrc:1.54
--- llvm-test/MultiSource/Makefile.multisrc:1.53Tue Jun  6 19:05:16 2006
+++ llvm-test/MultiSource/Makefile.multisrc Sat Dec  9 11:25:33 2006
@@ -73,3 +73,7 @@
 
 Output/%.native: $(NObjects)
-$(CXX) -o $@ $(NObjects) $(LDFLAGS) $(CFLAGS) $(TARGET_FLAGS)
+
+# A simple target to run findmisopt when bugpoint isn't helping
+findmisopt:
+   $(LLVM_SRC_ROOT)/utils/findmisopt Output/$(PROG).linked.rbc misopt 
"$(RUN_OPTIONS)" "$(STDIN_FILENAME)"



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/test/Regression/Assembler/2006-12-09-Cast-To-Bool.ll

2006-12-09 Thread Reid Spencer


Changes in directory llvm/test/Regression/Assembler:

2006-12-09-Cast-To-Bool.ll updated: 1.1 -> 1.2
---
Log message:

Fix the run line and make this test more specific.


---
Diffs of the changes:  (+1 -1)

 2006-12-09-Cast-To-Bool.ll |2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)


Index: llvm/test/Regression/Assembler/2006-12-09-Cast-To-Bool.ll
diff -u llvm/test/Regression/Assembler/2006-12-09-Cast-To-Bool.ll:1.1 
llvm/test/Regression/Assembler/2006-12-09-Cast-To-Bool.ll:1.2
--- llvm/test/Regression/Assembler/2006-12-09-Cast-To-Bool.ll:1.1   Sat Dec 
 9 13:35:43 2006
+++ llvm/test/Regression/Assembler/2006-12-09-Cast-To-Bool.ll   Sat Dec  9 
13:39:56 2006
@@ -1,4 +1,4 @@
-; RUN llvm-upgrade < %s | llvm-as
+; RUN: llvm-upgrade < %s | llvm-as | llvm-dis | grep bitcast
 bool %main(int %X) {
   %res = cast bool true to bool
   ret bool %res



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/tools/llvm-upgrade/UpgradeParser.y

2006-12-09 Thread Reid Spencer


Changes in directory llvm/tools/llvm-upgrade:

UpgradeParser.y updated: 1.23 -> 1.24
---
Log message:

Fix test/Regression/Assembler/2006-12-09-Cast-To-Bool.ll
Do not upgrade casts of bool to bool.


---
Diffs of the changes:  (+1 -1)

 UpgradeParser.y |2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)


Index: llvm/tools/llvm-upgrade/UpgradeParser.y
diff -u llvm/tools/llvm-upgrade/UpgradeParser.y:1.23 
llvm/tools/llvm-upgrade/UpgradeParser.y:1.24
--- llvm/tools/llvm-upgrade/UpgradeParser.y:1.23Sat Dec  9 10:56:55 2006
+++ llvm/tools/llvm-upgrade/UpgradeParser.y Sat Dec  9 13:40:41 2006
@@ -188,7 +188,7 @@
 SrcTy.destroy();
 SrcTy.newTy = new std::string("ulong");
 SrcTy.oldTy = ULongTy;
-  } else if (DstTy.oldTy == BoolTy) {
+  } else if (DstTy.oldTy == BoolTy && SrcTy.oldTy != BoolTy) {
 // cast ptr %x to  bool was previously defined as setne ptr %x, null
 // The ptrtoint semantic is to truncate, not compare so we must retain
 // the original intent by replace the cast with a setne



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/test/Regression/Assembler/2006-12-09-Cast-To-Bool.ll

2006-12-09 Thread Reid Spencer


Changes in directory llvm/test/Regression/Assembler:

2006-12-09-Cast-To-Bool.ll added (r1.1)
---
Log message:

Add a check to catch an incorrect upgrade.


---
Diffs of the changes:  (+5 -0)

 2006-12-09-Cast-To-Bool.ll |5 +
 1 files changed, 5 insertions(+)


Index: llvm/test/Regression/Assembler/2006-12-09-Cast-To-Bool.ll
diff -c /dev/null llvm/test/Regression/Assembler/2006-12-09-Cast-To-Bool.ll:1.1
*** /dev/null   Sat Dec  9 13:35:54 2006
--- llvm/test/Regression/Assembler/2006-12-09-Cast-To-Bool.ll   Sat Dec  9 
13:35:43 2006
***
*** 0 
--- 1,5 
+ ; RUN llvm-upgrade < %s | llvm-as
+ bool %main(int %X) {
+   %res = cast bool true to bool
+   ret bool %res
+ }



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/tools/llvm-upgrade/UpgradeParser.cpp UpgradeParser.cpp.cvs UpgradeParser.y.cvs

2006-12-09 Thread Reid Spencer


Changes in directory llvm/tools/llvm-upgrade:

UpgradeParser.cpp updated: 1.25 -> 1.26
UpgradeParser.cpp.cvs updated: 1.23 -> 1.24
UpgradeParser.y.cvs updated: 1.22 -> 1.23
---
Log message:

Regenerate.


---
Diffs of the changes:  (+3 -3)

 UpgradeParser.cpp |2 +-
 UpgradeParser.cpp.cvs |2 +-
 UpgradeParser.y.cvs   |2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)


Index: llvm/tools/llvm-upgrade/UpgradeParser.cpp
diff -u llvm/tools/llvm-upgrade/UpgradeParser.cpp:1.25 
llvm/tools/llvm-upgrade/UpgradeParser.cpp:1.26
--- llvm/tools/llvm-upgrade/UpgradeParser.cpp:1.25  Sat Dec  9 10:57:22 2006
+++ llvm/tools/llvm-upgrade/UpgradeParser.cpp   Sat Dec  9 13:41:25 2006
@@ -546,7 +546,7 @@
 SrcTy.destroy();
 SrcTy.newTy = new std::string("ulong");
 SrcTy.oldTy = ULongTy;
-  } else if (DstTy.oldTy == BoolTy) {
+  } else if (DstTy.oldTy == BoolTy && SrcTy.oldTy != BoolTy) {
 // cast ptr %x to  bool was previously defined as setne ptr %x, null
 // The ptrtoint semantic is to truncate, not compare so we must retain
 // the original intent by replace the cast with a setne


Index: llvm/tools/llvm-upgrade/UpgradeParser.cpp.cvs
diff -u llvm/tools/llvm-upgrade/UpgradeParser.cpp.cvs:1.23 
llvm/tools/llvm-upgrade/UpgradeParser.cpp.cvs:1.24
--- llvm/tools/llvm-upgrade/UpgradeParser.cpp.cvs:1.23  Sat Dec  9 10:57:22 2006
+++ llvm/tools/llvm-upgrade/UpgradeParser.cpp.cvs   Sat Dec  9 13:41:25 2006
@@ -546,7 +546,7 @@
 SrcTy.destroy();
 SrcTy.newTy = new std::string("ulong");
 SrcTy.oldTy = ULongTy;
-  } else if (DstTy.oldTy == BoolTy) {
+  } else if (DstTy.oldTy == BoolTy && SrcTy.oldTy != BoolTy) {
 // cast ptr %x to  bool was previously defined as setne ptr %x, null
 // The ptrtoint semantic is to truncate, not compare so we must retain
 // the original intent by replace the cast with a setne


Index: llvm/tools/llvm-upgrade/UpgradeParser.y.cvs
diff -u llvm/tools/llvm-upgrade/UpgradeParser.y.cvs:1.22 
llvm/tools/llvm-upgrade/UpgradeParser.y.cvs:1.23
--- llvm/tools/llvm-upgrade/UpgradeParser.y.cvs:1.22Sat Dec  9 10:57:22 2006
+++ llvm/tools/llvm-upgrade/UpgradeParser.y.cvs Sat Dec  9 13:41:25 2006
@@ -188,7 +188,7 @@
 SrcTy.destroy();
 SrcTy.newTy = new std::string("ulong");
 SrcTy.oldTy = ULongTy;
-  } else if (DstTy.oldTy == BoolTy) {
+  } else if (DstTy.oldTy == BoolTy && SrcTy.oldTy != BoolTy) {
 // cast ptr %x to  bool was previously defined as setne ptr %x, null
 // The ptrtoint semantic is to truncate, not compare so we must retain
 // the original intent by replace the cast with a setne



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/test/Regression/CodeGen/ARM/section.ll

2006-12-09 Thread Rafael Espindola


Changes in directory llvm/test/Regression/CodeGen/ARM:

section.ll updated: 1.4 -> 1.5
---
Log message:

use a . instead of a % in the grep expression



---
Diffs of the changes:  (+1 -1)

 section.ll |2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)


Index: llvm/test/Regression/CodeGen/ARM/section.ll
diff -u llvm/test/Regression/CodeGen/ARM/section.ll:1.4 
llvm/test/Regression/CodeGen/ARM/section.ll:1.5
--- llvm/test/Regression/CodeGen/ARM/section.ll:1.4 Fri Dec  8 16:06:02 2006
+++ llvm/test/Regression/CodeGen/ARM/section.ll Sat Dec  9 15:21:06 2006
@@ -1,5 +1,5 @@
 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm &&
 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm | grep "__DTOR_END__:" &&
-; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm | grep ".section 
.dtors,\"aw\",%progbits"
+; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm | grep '.section 
.dtors,"aw",.progbits'
 
 %__DTOR_END__ = internal global [1 x int] zeroinitializer, section ".dtors"



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] setjmp & longjmp patch for review [updated]

2006-12-09 Thread Anton Korobeynikov
Hello, Everyone.

Prev. patch should be considered as obsolete: MS runtime is weird: it
uses underscore version of setjump() but non-underscore for
longjump() :)

Updated patch attached. Please note, that it will update .h file, so,
it's recommended to rebuild the whole LLVM tree (well, at least Codegen,
Target & backends).

-- 
With best regards, Anton Korobeynikov.

Faculty of Mathematics & Mechanics, Saint Petersburg State University.

diff -r f7b4f57b400c include/llvm/Target/TargetLowering.h
--- a/include/llvm/Target/TargetLowering.h	Wed Dec 06 13:35:10 2006 +
+++ b/include/llvm/Target/TargetLowering.h	Sat Dec 09 23:46:52 2006 +0300
@@ -379,12 +379,18 @@ public:
 return allowUnalignedMemoryAccesses;
   }
   
-  /// usesUnderscoreSetJmpLongJmp - Determine if we should use _setjmp or setjmp
+  /// usesUnderscoreSetJmp - Determine if we should use _setjmp or setjmp
   /// to implement llvm.setjmp.
-  bool usesUnderscoreSetJmpLongJmp() const {
-return UseUnderscoreSetJmpLongJmp;
-  }
-  
+  bool usesUnderscoreSetJmp() const {
+return UseUnderscoreSetJmp;
+  }
+
+  /// usesUnderscoreLongJmp - Determine if we should use _longjmp or longjmp
+  /// to implement llvm.longjmp.
+  bool usesUnderscoreLongJmp() const {
+return UseUnderscoreLongJmp;
+  }
+
   /// getStackPointerRegisterToSaveRestore - If a physical register, this
   /// specifies the register that llvm.savestack/llvm.restorestack should save
   /// and restore.
@@ -564,13 +570,20 @@ protected:
 ShiftAmtHandling = OORSA;
   }
 
-  /// setUseUnderscoreSetJmpLongJmp - Indicate whether this target prefers to
-  /// use _setjmp and _longjmp to or implement llvm.setjmp/llvm.longjmp or
-  /// the non _ versions.  Defaults to false.
-  void setUseUnderscoreSetJmpLongJmp(bool Val) {
-UseUnderscoreSetJmpLongJmp = Val;
-  }
-  
+  /// setUseUnderscoreSetJmp - Indicate whether this target prefers to
+  /// use _setjmp to implement llvm.setjmp or the non _ version.
+  /// Defaults to false.
+  void setUseUnderscoreSetJmp(bool Val) {
+UseUnderscoreSetJmp = Val;
+  }
+
+  /// setUseUnderscoreLongJmp - Indicate whether this target prefers to
+  /// use _longjmp to implement llvm.longjmp or the non _ version.
+  /// Defaults to false.
+  void setUseUnderscoreLongJmp(bool Val) {
+UseUnderscoreLongJmp = Val;
+  }
+
   /// setStackPointerRegisterToSaveRestore - If set to a physical register, this
   /// specifies the register that llvm.savestack/llvm.restorestack should save
   /// and restore.
@@ -883,10 +896,14 @@ private:
   /// total cycles or lowest register usage.
   SchedPreference SchedPreferenceInfo;
   
-  /// UseUnderscoreSetJmpLongJmp - This target prefers to use _setjmp and
-  /// _longjmp to implement llvm.setjmp/llvm.longjmp.  Defaults to false.
-  bool UseUnderscoreSetJmpLongJmp;
-  
+  /// UseUnderscoreSetJmp - This target prefers to use _setjmp to implement
+  /// llvm.setjmp.  Defaults to false.
+  bool UseUnderscoreSetJmp;
+
+  /// UseUnderscoreLongJmp - This target prefers to use _longjmp to implement
+  /// llvm.longjmp.  Defaults to false.
+  bool UseUnderscoreLongJmp;
+
   /// JumpBufSize - The size, in bytes, of the target's jmp_buf buffers
   unsigned JumpBufSize;
   
diff -r f7b4f57b400c lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
--- a/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp	Wed Dec 06 13:35:10 2006 +
+++ b/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp	Sat Dec 09 23:53:05 2006 +0300
@@ -1975,10 +1975,10 @@ SelectionDAGLowering::visitIntrinsicCall
   case Intrinsic::returnaddress: visitFrameReturnAddress(I, false); return 0;
   case Intrinsic::frameaddress:  visitFrameReturnAddress(I, true); return 0;
   case Intrinsic::setjmp:
-return "_setjmp"+!TLI.usesUnderscoreSetJmpLongJmp();
+return "_setjmp"+!TLI.usesUnderscoreSetJmp();
 break;
   case Intrinsic::longjmp:
-return "_longjmp"+!TLI.usesUnderscoreSetJmpLongJmp();
+return "_longjmp"+!TLI.usesUnderscoreLongJmp();
 break;
   case Intrinsic::memcpy_i32:
   case Intrinsic::memcpy_i64:
diff -r f7b4f57b400c lib/CodeGen/SelectionDAG/TargetLowering.cpp
--- a/lib/CodeGen/SelectionDAG/TargetLowering.cpp	Wed Dec 06 13:35:10 2006 +
+++ b/lib/CodeGen/SelectionDAG/TargetLowering.cpp	Sun Dec 10 00:40:31 2006 +0300
@@ -47,7 +47,8 @@ TargetLowering::TargetLowering(TargetMac
  sizeof(TargetDAGCombineArray)/sizeof(TargetDAGCombineArray[0]));
   maxStoresPerMemset = maxStoresPerMemcpy = maxStoresPerMemmove = 8;
   allowUnalignedMemoryAccesses = false;
-  UseUnderscoreSetJmpLongJmp = false;
+  UseUnderscoreSetJmp = false;
+  UseUnderscoreLongJmp = false;
   IntDivIsCheap = false;
   Pow2DivIsCheap = false;
   StackPointerRegisterToSaveRestore = 0;
diff -r f7b4f57b400c lib/Target/CBackend/Writer.cpp
--- a/lib/Target/CBackend/Writer.cpp	Wed Dec 06 13:35:10 2006 +
+++ b/lib/Target/CBackend/Writer.cpp	Sat Dec 09 12:13:58 2006 +0300
@@ -1138,6 +1138,8 @@ static void generateCompilerSpecificCode
   << "#elif defined(__APPLE__)

[llvm-commits] CVS: llvm/test/Regression/CodeGen/X86/weak.ll

2006-12-09 Thread Rafael Espindola


Changes in directory llvm/test/Regression/CodeGen/X86:

weak.ll added (r1.1)
---
Log message:

fix test/Regression/CodeGen/X86/weak.ll
if a variable has no initialization, I->getInitializer() will fail


---
Diffs of the changes:  (+3 -0)

 weak.ll |3 +++
 1 files changed, 3 insertions(+)


Index: llvm/test/Regression/CodeGen/X86/weak.ll
diff -c /dev/null llvm/test/Regression/CodeGen/X86/weak.ll:1.1
*** /dev/null   Sat Dec  9 17:14:18 2006
--- llvm/test/Regression/CodeGen/X86/weak.llSat Dec  9 17:14:08 2006
***
*** 0 
--- 1,3 
+ ; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86
+ %a = extern_weak global int
+ %b = global int* %a



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/lib/Target/X86/X86AsmPrinter.cpp

2006-12-09 Thread Rafael Espindola


Changes in directory llvm/lib/Target/X86:

X86AsmPrinter.cpp updated: 1.220 -> 1.221
---
Log message:

fix test/Regression/CodeGen/X86/weak.ll
if a variable has no initialization, I->getInitializer() will fail


---
Diffs of the changes:  (+1 -1)

 X86AsmPrinter.cpp |2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)


Index: llvm/lib/Target/X86/X86AsmPrinter.cpp
diff -u llvm/lib/Target/X86/X86AsmPrinter.cpp:1.220 
llvm/lib/Target/X86/X86AsmPrinter.cpp:1.221
--- llvm/lib/Target/X86/X86AsmPrinter.cpp:1.220 Wed Dec  6 11:46:32 2006
+++ llvm/lib/Target/X86/X86AsmPrinter.cpp   Sat Dec  9 17:14:08 2006
@@ -132,7 +132,7 @@
   // Print out module-level global variables here.
   for (Module::const_global_iterator I = M.global_begin(), E = M.global_end();
I != E; ++I) {
-if (!I->hasInitializer() && !I->hasExternalWeakLinkage())
+if (!I->hasInitializer())
   continue;   // External global require no code
 
 // Check to see if this is a special global used by LLVM, if so, emit it.



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/lib/Target/ARM/ARMAsmPrinter.cpp

2006-12-09 Thread Rafael Espindola


Changes in directory llvm/lib/Target/ARM:

ARMAsmPrinter.cpp updated: 1.38 -> 1.39
---
Log message:

.align is in bits
.comm is in bytes
:-(



---
Diffs of the changes:  (+1 -1)

 ARMAsmPrinter.cpp |2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)


Index: llvm/lib/Target/ARM/ARMAsmPrinter.cpp
diff -u llvm/lib/Target/ARM/ARMAsmPrinter.cpp:1.38 
llvm/lib/Target/ARM/ARMAsmPrinter.cpp:1.39
--- llvm/lib/Target/ARM/ARMAsmPrinter.cpp:1.38  Fri Dec  8 16:06:02 2006
+++ llvm/lib/Target/ARM/ARMAsmPrinter.cpp   Sat Dec  9 20:53:14 2006
@@ -303,7 +303,7 @@
 O << "\t.local " << name << "\n";
 
   O << "\t.comm " << name << "," << Size
-<< "," << (unsigned)Align;
+<< "," << (unsigned) (1 << Align);
   O << "\n";
 } else {
   switch (I->getLinkage()) {



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/test/Regression/CodeGen/ARM/constants.ll

2006-12-09 Thread Rafael Espindola


Changes in directory llvm/test/Regression/CodeGen/ARM:

constants.ll updated: 1.4 -> 1.5
---
Log message:

.align is in bits
.comm is in bytes
:-(



---
Diffs of the changes:  (+1 -1)

 constants.ll |2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)


Index: llvm/test/Regression/CodeGen/ARM/constants.ll
diff -u llvm/test/Regression/CodeGen/ARM/constants.ll:1.4 
llvm/test/Regression/CodeGen/ARM/constants.ll:1.5
--- llvm/test/Regression/CodeGen/ARM/constants.ll:1.4   Thu Dec  7 16:38:06 2006
+++ llvm/test/Regression/CodeGen/ARM/constants.ll   Sat Dec  9 20:53:14 2006
@@ -5,7 +5,7 @@
 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm | grep ".word.*257" | wc 
-l | grep 1 &&
 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm | grep "mov r0, 
#-1073741761" | wc -l | grep 1 &&
 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm | grep "mov r0, #1008" | 
wc -l | grep 1 &&
-; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm | grep "\.comm.*a,4,2" | 
wc -l | grep 1
+; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm | grep "\.comm.*a,4,4" | 
wc -l | grep 1
 
 %a = internal global int 0
 



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/Makefile.config.in

2006-12-09 Thread Reid Spencer


Changes in directory llvm:

Makefile.config.in updated: 1.69 -> 1.70
---
Log message:

For PR739: http://llvm.org/PR739 :
Define a DESTDIR variable and use it to define the various install 
locations. This allows DESTDIR to be overridden on the command line.


---
Diffs of the changes:  (+10 -9)

 Makefile.config.in |   19 ++-
 1 files changed, 10 insertions(+), 9 deletions(-)


Index: llvm/Makefile.config.in
diff -u llvm/Makefile.config.in:1.69 llvm/Makefile.config.in:1.70
--- llvm/Makefile.config.in:1.69Thu Nov 30 18:37:14 2006
+++ llvm/Makefile.config.in Sat Dec  9 22:09:19 2006
@@ -47,15 +47,16 @@
 LLVM_OBJ_ROOT   := $(shell cd @abs_top_builddir@; $(PWD))
 PROJ_SRC_ROOT   := $(shell cd $(LLVM_SRC_ROOT); $(PWD))
 PROJ_SRC_DIR:= $(shell cd $(LLVM_SRC_ROOT)/$(patsubst 
$(PROJ_OBJ_ROOT)%,%,$(PROJ_OBJ_DIR)); $(PWD))
-PROJ_prefix := @prefix@
-PROJ_bindir := @prefix@/bin
-PROJ_libdir := @prefix@/lib
-PROJ_datadir:= @prefix@/share
-PROJ_docsdir:= @prefix@/docs/llvm
-PROJ_etcdir := @prefix@/etc/llvm
-PROJ_includedir := @prefix@/include
-PROJ_infodir:= @prefix@/info
-PROJ_mandir := @prefix@/man
+DESTDIR := @prefix@
+PROJ_prefix := $(DESTDIR)
+PROJ_bindir := $(DESTDIR)bin
+PROJ_libdir := $(DESTDIR)lib
+PROJ_datadir:= $(DESTDIR)share
+PROJ_docsdir:= $(DESTDIR)docs/llvm
+PROJ_etcdir := $(DESTDIR)etc/llvm
+PROJ_includedir := $(DESTDIR)include
+PROJ_infodir:= $(DESTDIR)info
+PROJ_mandir := $(DESTDIR)man
 PROJ_VERSION:= $(LLVMVersion)
 else
 ifndef PROJ_SRC_ROOT



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/Makefile.rules

2006-12-09 Thread Reid Spencer


Changes in directory llvm:

Makefile.rules updated: 1.414 -> 1.415
---
Log message:

Don't bother with setting the path before running llvm-gcc4, it doesn't
need it like llvm-gcc3 did.


---
Diffs of the changes:  (+5 -4)

 Makefile.rules |9 +
 1 files changed, 5 insertions(+), 4 deletions(-)


Index: llvm/Makefile.rules
diff -u llvm/Makefile.rules:1.414 llvm/Makefile.rules:1.415
--- llvm/Makefile.rules:1.414   Sun Dec  3 15:17:12 2006
+++ llvm/Makefile.rules Sat Dec  9 22:56:38 2006
@@ -326,14 +326,15 @@
 ifeq ($(LLVMGCC_MAJVERS),3)
 UPGRADE_MSG = $(Echo) "Upgrading $(1) assembly to latest."
 UPGRADE_LL  = $(Verb)$(LUPGRADE) $(1) -o $(1).up.tmp -f ; $(MV) $(1).up.tmp 
$(1)
+LLVMGCCWITHPATH  := PATH="$(LLVMToolDir):$(PATH)" $(LLVMGCC)
+LLVMGXXWITHPATH  := PATH="$(LLVMToolDir):$(PATH)" $(LLVMGXX)
 else
 UPGRADE_MSG =
 UPGRADE_LL  =
+LLVMGCCWITHPATH  := $(LLVMGCC)
+LLVMGXXWITHPATH  := $(LLVMGXX)
 endif
 
-LLVMGCCWITHPATH  := PATH="$(LLVMToolDir):$(PATH)" $(LLVMGCC)
-LLVMGXXWITHPATH  := PATH="$(LLVMToolDir):$(PATH)" $(LLVMGXX)
-
 #
 # Adjust to user's request
 #
@@ -1104,7 +1105,7 @@
$(Echo) "Compiling $*.cc for $(BuildMode) build to .ii file"
$(Verb) $(Preprocess.CXX) $< -o $@
 
- $(BuildMode)/%.i: %.c $(ObjDir)/.dir $(BUILT_SOURCES)
+$(BuildMode)/%.i: %.c $(ObjDir)/.dir $(BUILT_SOURCES)
$(Echo) "Compiling $*.c for $(BuildMode) build to .i file"
$(Verb) $(Preprocess.C) $< -o $@
 



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits