[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
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
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
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
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
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
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
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
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
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]
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
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
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
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
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
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
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