[llvm-commits] CVS: llvm/include/llvm/CodeGen/SelectionDAGNodes.h
Changes in directory llvm/include/llvm/CodeGen: SelectionDAGNodes.h updated: 1.146 -> 1.147 --- Log message: The top bit is used to determine whether it's a MachineConstantPoolValue. --- Diffs of the changes: (+4 -2) SelectionDAGNodes.h |6 -- 1 files changed, 4 insertions(+), 2 deletions(-) Index: llvm/include/llvm/CodeGen/SelectionDAGNodes.h diff -u llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1.146 llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1.147 --- llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1.146 Tue Sep 12 15:59:22 2006 +++ llvm/include/llvm/CodeGen/SelectionDAGNodes.h Thu Sep 14 02:30:48 2006 @@ -1150,7 +1150,7 @@ Constant *ConstVal; MachineConstantPoolValue *MachineCPVal; } Val; - int Offset; + int Offset; // It's a MachineConstantPoolValue if top bit is set. unsigned Alignment; protected: friend class SelectionDAG; @@ -1200,7 +1200,9 @@ return Val.MachineCPVal; } - int getOffset() const { return Offset; } + int getOffset() const { +return Offset & ~(1 << (sizeof(unsigned)*8-1)); + } // Return the alignment of this constant pool object, which is either 0 (for // default alignment) or log2 of the desired value. ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/include/llvm/CodeGen/MachineConstantPool.h
Changes in directory llvm/include/llvm/CodeGen: MachineConstantPool.h updated: 1.19 -> 1.20 --- Log message: Add MachineConstantPoolEntry getOffset() accessor. --- Diffs of the changes: (+6 -2) MachineConstantPool.h |8 ++-- 1 files changed, 6 insertions(+), 2 deletions(-) Index: llvm/include/llvm/CodeGen/MachineConstantPool.h diff -u llvm/include/llvm/CodeGen/MachineConstantPool.h:1.19 llvm/include/llvm/CodeGen/MachineConstantPool.h:1.20 --- llvm/include/llvm/CodeGen/MachineConstantPool.h:1.19Thu Sep 14 00:48:39 2006 +++ llvm/include/llvm/CodeGen/MachineConstantPool.h Thu Sep 14 02:32:32 2006 @@ -67,8 +67,8 @@ MachineConstantPoolValue *MachineCPVal; } Val; - /// The offset of the constant from the start of the pool. It's really - /// 31-bit only. The top bit is set when Val is a MachineConstantPoolValue. + /// The offset of the constant from the start of the pool. The top bit is set + /// when Val is a MachineConstantPoolValue. unsigned Offset; MachineConstantPoolEntry(Constant *V, unsigned O) @@ -87,6 +87,10 @@ return (int)Offset < 0; } + int getOffset() const { +return Offset & ~(1 << (sizeof(unsigned)*8-1)); + } + const Type *getType() const; }; ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/CodeGen/AsmPrinter.cpp
Changes in directory llvm/lib/CodeGen: AsmPrinter.cpp updated: 1.94 -> 1.95 --- Log message: Use MachineConstantPoolEntry getOffset() and getType() accessors. --- Diffs of the changes: (+7 -13) AsmPrinter.cpp | 20 +++- 1 files changed, 7 insertions(+), 13 deletions(-) Index: llvm/lib/CodeGen/AsmPrinter.cpp diff -u llvm/lib/CodeGen/AsmPrinter.cpp:1.94 llvm/lib/CodeGen/AsmPrinter.cpp:1.95 --- llvm/lib/CodeGen/AsmPrinter.cpp:1.94Tue Sep 12 16:00:35 2006 +++ llvm/lib/CodeGen/AsmPrinter.cpp Thu Sep 14 02:35:00 2006 @@ -129,8 +129,7 @@ std::vector > TargetCPs; for (unsigned i = 0, e = CP.size(); i != e; ++i) { MachineConstantPoolEntry CPE = CP[i]; -const Type *Ty = CPE.isMachineConstantPoolEntry() - ? CPE.Val.MachineCPVal->getType() : CPE.Val.ConstVal->getType(); +const Type *Ty = CPE.getType(); if (TAI->getFourByteConstantSection() && TM.getTargetData()->getTypeSize(Ty) == 4) FourByteCPs.push_back(std::make_pair(CPE, i)); @@ -161,23 +160,18 @@ for (unsigned i = 0, e = CP.size(); i != e; ++i) { O << TAI->getPrivateGlobalPrefix() << "CPI" << getFunctionNumber() << '_' << CP[i].second << ":\t\t\t\t\t" << TAI->getCommentString() << " "; -if (CP[i].first.isMachineConstantPoolEntry()) { - WriteTypeSymbolic(O, CP[i].first.Val.MachineCPVal->getType(), 0) << '\n'; - printDataDirective(CP[i].first.Val.MachineCPVal->getType()); +WriteTypeSymbolic(O, CP[i].first.getType(), 0) << '\n'; +if (CP[i].first.isMachineConstantPoolEntry()) EmitMachineConstantPoolValue(CP[i].first.Val.MachineCPVal); -} else { - WriteTypeSymbolic(O, CP[i].first.Val.ConstVal->getType(), 0) << '\n'; + else EmitGlobalConstant(CP[i].first.Val.ConstVal); -} if (i != e-1) { - const Type *Ty = CP[i].first.isMachineConstantPoolEntry() -? CP[i].first.Val.MachineCPVal->getType() -: CP[i].first.Val.ConstVal->getType(); + const Type *Ty = CP[i].first.getType(); unsigned EntSize = TM.getTargetData()->getTypeSize(Ty); - unsigned ValEnd = CP[i].first.Offset + EntSize; + unsigned ValEnd = CP[i].first.getOffset() + EntSize; // Emit inter-object padding for alignment. - EmitZeros(CP[i+1].first.Offset-ValEnd); + EmitZeros(CP[i+1].first.getOffset()-ValEnd); } } } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/CodeGen/MachineFunction.cpp
Changes in directory llvm/lib/CodeGen: MachineFunction.cpp updated: 1.99 -> 1.100 --- Log message: Use getOffset() instead. --- Diffs of the changes: (+2 -2) MachineFunction.cpp |4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Index: llvm/lib/CodeGen/MachineFunction.cpp diff -u llvm/lib/CodeGen/MachineFunction.cpp:1.99 llvm/lib/CodeGen/MachineFunction.cpp:1.100 --- llvm/lib/CodeGen/MachineFunction.cpp:1.99 Thu Sep 14 00:50:57 2006 +++ llvm/lib/CodeGen/MachineFunction.cppThu Sep 14 02:41:12 2006 @@ -381,7 +381,7 @@ unsigned Offset = 0; if (!Constants.empty()) { -Offset = Constants.back().Offset; +Offset = Constants.back().getOffset(); Offset += TD->getTypeSize(Constants.back().getType()); Offset = (Offset+AlignMask)&~AlignMask; } @@ -405,7 +405,7 @@ unsigned Offset = 0; if (!Constants.empty()) { -Offset = Constants.back().Offset; +Offset = Constants.back().getOffset(); Offset += TD->getTypeSize(Constants.back().getType()); Offset = (Offset+AlignMask)&~AlignMask; } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: nightlytest-serverside/NightlyTestAccept.php
Changes in directory nightlytest-serverside: NightlyTestAccept.php updated: 1.1 -> 1.2 --- Log message: testing #1 --- Diffs of the changes: (+2 -1) NightlyTestAccept.php |3 ++- 1 files changed, 2 insertions(+), 1 deletion(-) Index: nightlytest-serverside/NightlyTestAccept.php diff -u nightlytest-serverside/NightlyTestAccept.php:1.1 nightlytest-serverside/NightlyTestAccept.php:1.2 --- nightlytest-serverside/NightlyTestAccept.php:1.1Wed Sep 13 14:21:22 2006 +++ nightlytest-serverside/NightlyTestAccept.phpThu Sep 14 05:31:12 2006 @@ -773,7 +773,8 @@ "machines/$machine_id/$db_date-Build-Log.txt\n"; } -$email_addr = "[EMAIL PROTECTED]"; +$email_addr = "[EMAIL PROTECTED]"; +//$email_addr = "[EMAIL PROTECTED]"; `echo "$email" | mail -s '$nickname $hardware nightly tester results' $email_addr`; /*** ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: nightlytest-serverside/NightlyTestAccept.php
Changes in directory nightlytest-serverside: NightlyTestAccept.php updated: 1.2 -> 1.3 --- Log message: testing #2 --- Diffs of the changes: (+45 -2) NightlyTestAccept.php | 47 +-- 1 files changed, 45 insertions(+), 2 deletions(-) Index: nightlytest-serverside/NightlyTestAccept.php diff -u nightlytest-serverside/NightlyTestAccept.php:1.2 nightlytest-serverside/NightlyTestAccept.php:1.3 --- nightlytest-serverside/NightlyTestAccept.php:1.2Thu Sep 14 05:31:12 2006 +++ nightlytest-serverside/NightlyTestAccept.phpThu Sep 14 05:50:06 2006 @@ -7,6 +7,51 @@ * ProgramResults.php * ***/ + +/*** + * + * Start response early for debugging purposes + * + ***/ +print "content-type: text/text\r\n\r\n"; + +$print_env = 1; + +if ($print_env) { + foreach ($_ENV as $key => $value) { + print "_ENV $key => $value\n"; + } + + foreach ($_SERVER as $key => $value) { + print "_SERVER $key => $value\n"; + } + + foreach ($_GET as $key => $value) { + print "_GET $key => $value\n"; + } + + foreach ($_POST as $key => $value) { + print "_POST $key => $value\n"; + } + + foreach ($_COOKIE as $key => $value) { + print "_COOKIE $key => $value\n"; + } + + foreach ($_FILES as $key => $value) { + print "_FILES $key => $value\n"; + } + + foreach ($_REQUEST as $key => $value) { + print "_REQUEST $key => $value\n"; + } +} + +/*** + * + * Include support code + * + ***/ if(!(include "NightlyTester.php")){ print "Error: could not load necessary files!\n"; @@ -538,8 +583,6 @@ * creating the response * ***/ -print "content-type: text/text\r\n\r\n"; - if (!DoesMachineExist($uname, $hardware, $os, $name, $nickname, $gcc_version)) { AddMachine($uname, $hardware, $os, $name, $nickname, $gcc_version, "test"); } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: nightlytest-serverside/NightlyTestAccept.php
Changes in directory nightlytest-serverside: NightlyTestAccept.php updated: 1.3 -> 1.4 --- Log message: testing #3 --- Diffs of the changes: (+5 -3) NightlyTestAccept.php |8 +--- 1 files changed, 5 insertions(+), 3 deletions(-) Index: nightlytest-serverside/NightlyTestAccept.php diff -u nightlytest-serverside/NightlyTestAccept.php:1.3 nightlytest-serverside/NightlyTestAccept.php:1.4 --- nightlytest-serverside/NightlyTestAccept.php:1.3Thu Sep 14 05:50:06 2006 +++ nightlytest-serverside/NightlyTestAccept.phpThu Sep 14 05:57:38 2006 @@ -15,7 +15,7 @@ ***/ print "content-type: text/text\r\n\r\n"; -$print_env = 1; +$print_env = 0; if ($print_env) { foreach ($_ENV as $key => $value) { @@ -42,6 +42,7 @@ print "_FILES $key => $value\n"; } + // Same as _POST foreach ($_REQUEST as $key => $value) { print "_REQUEST $key => $value\n"; } @@ -546,6 +547,8 @@ $warnings = $_POST['warnings']; $lines_of_code = $_POST['lines_of_code']; +print "HERE I AM\n"; + /*** * * Extracting the machine information @@ -667,8 +670,7 @@ ***/ UpdateCodeInfo($db_date, $loc, $filesincvs, $dirsincvs); -// print "received ${_POST['CONTENT_LENGTH']} bytes\n"; -print "received 0 bytes\n"; +print "received ${_SERVER['CONTENT_LENGTH']} bytes\n"; $nights = GetMachineNights($machine_id); $length = count($nights); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: nightlytest-serverside/NightlyTestAccept.php
Changes in directory nightlytest-serverside: NightlyTestAccept.php updated: 1.4 -> 1.5 --- Log message: testing #4 --- Diffs of the changes: (+50 -2) NightlyTestAccept.php | 52 -- 1 files changed, 50 insertions(+), 2 deletions(-) Index: nightlytest-serverside/NightlyTestAccept.php diff -u nightlytest-serverside/NightlyTestAccept.php:1.4 nightlytest-serverside/NightlyTestAccept.php:1.5 --- nightlytest-serverside/NightlyTestAccept.php:1.4Thu Sep 14 05:57:38 2006 +++ nightlytest-serverside/NightlyTestAccept.phpThu Sep 14 06:08:21 2006 @@ -16,6 +16,7 @@ print "content-type: text/text\r\n\r\n"; $print_env = 0; +$print_debug = 1; if ($print_env) { foreach ($_ENV as $key => $value) { @@ -547,8 +548,6 @@ $warnings = $_POST['warnings']; $lines_of_code = $_POST['lines_of_code']; -print "HERE I AM\n"; - /*** * * Extracting the machine information @@ -561,6 +560,15 @@ $date = MatchOne("/date\:\s*(.+)/", $MACHINE_DATA[4], ""); $time = MatchOne("/time\:\s*(.+)/", $MACHINE_DATA[5], ""); +if ($print_debug) { + print "uname: $uname\n"; + print "hardware: $hardware\n"; + print "os: $os\n"; + print "name: $name\n"; + print "date: $date\n"; + print "time: $time\n"; +} + /*** * * Extracting the dejagnu test numbers @@ -571,6 +579,12 @@ $dejagnu_unexp_failures = MatchOne("/unexpected failures\s*([0-9]+)/", $dejagnutests_log, 0); $dejagnu_exp_failures = MatchOne("/\# of expected failures\s*([0-9]+)/", $dejagnutests_log, 0); +if ($print_debug) { + print "dejagnu_exp_passes: $dejagnu_exp_passes\n"; + print "dejagnu_unexp_failures: $dejagnu_unexp_failures\n"; + print "dejagnu_exp_failures: $dejagnu_exp_failures\n"; +} + /*** * * Processing Program Test Table Logs @@ -581,6 +595,12 @@ $multisource_processed = ProcessProgramLogs($MULTISOURCE_TESTS); $external_processed = ProcessProgramLogs($EXTERNAL_TESTS); +if ($print_debug) { + print "singlesource_processed#: ${count(singlesource_processed)}\n"; + print "multisource_processed#: ${count(multisource_processed)}\n"; + print "external_processed#: ${count(external_processed)}\n"; +} + /*** * * creating the response @@ -591,6 +611,10 @@ } $machine_id = GetMachineId($uname, $hardware, $os, $name, $nickname, $gcc_version); +if ($print_debug) { + print "machine_id: $machine_id\n"; +} + /*** * * Submitting information to database @@ -610,6 +634,10 @@ $cvsaddedfiles, $cvsremovedfiles, $cvsmodifiedfiles, $cvsusercommitlist, $cvsuserupdatelist); +if ($print_debug) { + print "db_date: $db_date\n"; + print "night_id: $night_id\n"; +} foreach ($singlesource_processed as $key => $value) { AddProgram($key, $value, "singlesource", $night_id); @@ -623,16 +651,28 @@ AddProgram($key, $value, "external", $night_id); } +if ($print_debug) { + print "Programs Added\n"; +} + foreach ($O_FILE_SIZE as $info) { list($ignore, $size, $file, $type) = Match("/(.+)\s+(.+)\s+(.+)/", $info); AddFile($file, $size, $night_id, $type); } +if ($print_debug) { + print "o file sizes#: ${count($O_FILE_SIZE)}\n"; +} + foreach ($A_FILE_SIZE as $info) { list($ignore, $size, $file, $type) = Match("/(.+)\s+(.+)\s+(.+)/", $info); AddFile($file, $size, $night_id, $type); } +if ($print_debug) { + print "a file sizes#: ${count($A_FILE_SIZE)}\n"; +} + /*** * * Adding test results pass/fail/xfail status to database @@ -652,6 +692,10 @@ } } +if ($print_debug) { + print "Dejagnu Tests Added\n"; +} + foreach ($DEJAGNUTESTS_RESULTS as $info) { $subpatterns = array(); if (preg_match("/^(XPASS|PASS|XFAIL|FAIL):\s(.+):?/", $info, $subpatterns)) { @@ -663,6 +707,10 @@ } } +if ($print_debug) { + print "Dejagnu Test Results Added\n"; +} + /*** * * Adding lines of code to the database ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: nightlytest-serverside/NightlyTestAccept.php
Changes in directory nightlytest-serverside: NightlyTestAccept.php updated: 1.5 -> 1.6 --- Log message: testing #5 --- Diffs of the changes: (+3 -3) NightlyTestAccept.php |6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) Index: nightlytest-serverside/NightlyTestAccept.php diff -u nightlytest-serverside/NightlyTestAccept.php:1.5 nightlytest-serverside/NightlyTestAccept.php:1.6 --- nightlytest-serverside/NightlyTestAccept.php:1.5Thu Sep 14 06:08:21 2006 +++ nightlytest-serverside/NightlyTestAccept.phpThu Sep 14 06:09:22 2006 @@ -596,9 +596,9 @@ $external_processed = ProcessProgramLogs($EXTERNAL_TESTS); if ($print_debug) { - print "singlesource_processed#: ${count(singlesource_processed)}\n"; - print "multisource_processed#: ${count(multisource_processed)}\n"; - print "external_processed#: ${count(external_processed)}\n"; + print "singlesource_processed#: ${count($singlesource_processed)}\n"; + print "multisource_processed#: ${count($multisource_processed)}\n"; + print "external_processed#: ${count($external_processed)}\n"; } /*** ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: nightlytest-serverside/NightlyTestAccept.php
Changes in directory nightlytest-serverside: NightlyTestAccept.php updated: 1.6 -> 1.7 --- Log message: testing #6 --- Diffs of the changes: (+22 -1) NightlyTestAccept.php | 23 ++- 1 files changed, 22 insertions(+), 1 deletion(-) Index: nightlytest-serverside/NightlyTestAccept.php diff -u nightlytest-serverside/NightlyTestAccept.php:1.6 nightlytest-serverside/NightlyTestAccept.php:1.7 --- nightlytest-serverside/NightlyTestAccept.php:1.6Thu Sep 14 06:09:22 2006 +++ nightlytest-serverside/NightlyTestAccept.phpThu Sep 14 06:15:29 2006 @@ -15,8 +15,13 @@ ***/ print "content-type: text/text\r\n\r\n"; -$print_env = 0; $print_debug = 1; +$print_env = 0; + + +if ($print_debug) { + print "Debug Printing On\n"; +} if ($print_env) { foreach ($_ENV as $key => $value) { @@ -65,6 +70,10 @@ die(); } +if ($print_debug) { + print "Support Included\n"; +} + /*** * * Important variables @@ -82,6 +91,10 @@ $mysql_link = mysql_connect("127.0.0.1", $loginname, $password) or die("Error: could not connect to database!"); mysql_select_db($database); +if ($print_debug) { + print "Database connected\n"; +} + /*** * * Some methods to help the process @@ -451,6 +464,10 @@ * Setting up variables * ***/ +if ($print_debug) { + print "Reading _POST Variables\n"; +} + $spliton ="\n"; $machine_data = $_POST['machine_data']; @@ -548,6 +565,10 @@ $warnings = $_POST['warnings']; $lines_of_code = $_POST['lines_of_code']; +if ($print_debug) { + print "Finished Reading _POST Variables\n"; +} + /*** * * Extracting the machine information ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: nightlytest-serverside/NightlyTestAccept.php
Changes in directory nightlytest-serverside: NightlyTestAccept.php updated: 1.7 -> 1.8 --- Log message: testing #6 --- Diffs of the changes: (+8 -8) NightlyTestAccept.php | 16 1 files changed, 8 insertions(+), 8 deletions(-) Index: nightlytest-serverside/NightlyTestAccept.php diff -u nightlytest-serverside/NightlyTestAccept.php:1.7 nightlytest-serverside/NightlyTestAccept.php:1.8 --- nightlytest-serverside/NightlyTestAccept.php:1.7Thu Sep 14 06:15:29 2006 +++ nightlytest-serverside/NightlyTestAccept.phpThu Sep 14 06:19:22 2006 @@ -13,10 +13,10 @@ * Start response early for debugging purposes * ***/ -print "content-type: text/text\r\n\r\n"; +print "content-type: text/text\n\n"; $print_debug = 1; -$print_env = 0; +$print_env = 1; if ($print_debug) { @@ -25,23 +25,23 @@ if ($print_env) { foreach ($_ENV as $key => $value) { - print "_ENV $key => $value\n"; +print "_ENV $key => $value\n"; } foreach ($_SERVER as $key => $value) { - print "_SERVER $key => $value\n"; +print "_SERVER $key => $value\n"; } foreach ($_GET as $key => $value) { - print "_GET $key => $value\n"; +print "_GET $key => $value\n"; } foreach ($_POST as $key => $value) { - print "_POST $key => $value\n"; +print "_POST $key => $value\n"; } foreach ($_COOKIE as $key => $value) { - print "_COOKIE $key => $value\n"; +print "_COOKIE $key => $value\n"; } foreach ($_FILES as $key => $value) { @@ -50,7 +50,7 @@ // Same as _POST foreach ($_REQUEST as $key => $value) { - print "_REQUEST $key => $value\n"; +print "_REQUEST $key => $value\n"; } } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: nightlytest-serverside/NightlyTestAccept.php
Changes in directory nightlytest-serverside: NightlyTestAccept.php updated: 1.8 -> 1.9 --- Log message: testing #7 --- Diffs of the changes: (+11 -6) NightlyTestAccept.php | 17 +++-- 1 files changed, 11 insertions(+), 6 deletions(-) Index: nightlytest-serverside/NightlyTestAccept.php diff -u nightlytest-serverside/NightlyTestAccept.php:1.8 nightlytest-serverside/NightlyTestAccept.php:1.9 --- nightlytest-serverside/NightlyTestAccept.php:1.8Thu Sep 14 06:19:22 2006 +++ nightlytest-serverside/NightlyTestAccept.phpThu Sep 14 06:23:37 2006 @@ -16,7 +16,7 @@ print "content-type: text/text\n\n"; $print_debug = 1; -$print_env = 1; +$print_env = 0; if ($print_debug) { @@ -617,9 +617,12 @@ $external_processed = ProcessProgramLogs($EXTERNAL_TESTS); if ($print_debug) { - print "singlesource_processed#: ${count($singlesource_processed)}\n"; - print "multisource_processed#: ${count($multisource_processed)}\n"; - print "external_processed#: ${count($external_processed)}\n"; + $singlesource_processed_count = count($singlesource_processed); + $multisource_processed_count = count($multisource_processed); + $external_processed_count = count($external_processed); + print "singlesource_processed#: $singlesource_processed_count\n"; + print "multisource_processed#: $multisource_processed_count\n"; + print "external_processed#: $external_processed_count\n"; } /*** @@ -682,7 +685,8 @@ } if ($print_debug) { - print "o file sizes#: ${count($O_FILE_SIZE)}\n"; + $O_FILE_SIZE_COUNT = count($O_FILE_SIZE); + print "o file sizes#: $O_FILE_SIZE_COUNT\n"; } foreach ($A_FILE_SIZE as $info) { @@ -691,7 +695,8 @@ } if ($print_debug) { - print "a file sizes#: ${count($A_FILE_SIZE)}\n"; + $A_FILE_SIZE_COUNT = count($A_FILE_SIZE); + print "a file sizes#: $A_FILE_SIZE_COUNT\n"; } /*** ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: nightlytest-serverside/NightlyTestAccept.php
Changes in directory nightlytest-serverside: NightlyTestAccept.php updated: 1.9 -> 1.10 --- Log message: testing #8 --- Diffs of the changes: (+4 -0) NightlyTestAccept.php |4 1 files changed, 4 insertions(+) Index: nightlytest-serverside/NightlyTestAccept.php diff -u nightlytest-serverside/NightlyTestAccept.php:1.9 nightlytest-serverside/NightlyTestAccept.php:1.10 --- nightlytest-serverside/NightlyTestAccept.php:1.9Thu Sep 14 06:23:37 2006 +++ nightlytest-serverside/NightlyTestAccept.phpThu Sep 14 06:26:18 2006 @@ -125,6 +125,10 @@ $row = mysql_fetch_array($machine_query) or die(mysql_error()); mysql_free_result($machine_query); + if ($print_debug) { +print "row: $row\n"; + } + if($row && strcmp($row['uname'], $uname) == 0 && strcmp($row['hardware'], $hardware) == 0 && ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: nightlytest-serverside/NightlyTestAccept.php
Changes in directory nightlytest-serverside: NightlyTestAccept.php updated: 1.10 -> 1.11 --- Log message: testing #9 --- Diffs of the changes: (+20 -6) NightlyTestAccept.php | 26 -- 1 files changed, 20 insertions(+), 6 deletions(-) Index: nightlytest-serverside/NightlyTestAccept.php diff -u nightlytest-serverside/NightlyTestAccept.php:1.10 nightlytest-serverside/NightlyTestAccept.php:1.11 --- nightlytest-serverside/NightlyTestAccept.php:1.10 Thu Sep 14 06:26:18 2006 +++ nightlytest-serverside/NightlyTestAccept.phpThu Sep 14 06:31:35 2006 @@ -121,14 +121,28 @@ ***/ function DoesMachineExist($uname, $hardware, $os, $name, $nickname, $gcc_version) { $query = "SELECT * FROM machine WHERE uname=\"$uname\" AND nickname=\"$nickname\" AND gcc=\"$gcc_version\""; - $machine_query = mysql_query($query) or die(mysql_error()); +if ($print_debug) { + print "query: $query\n"; +} + + $machine_query = mysql_query($query); + if (!$machine_query) { +$error = mysql_error(); +print "mysql_error: $error\n"; +die; + } $row = mysql_fetch_array($machine_query) or die(mysql_error()); - mysql_free_result($machine_query); - - if ($print_debug) { -print "row: $row\n"; + if (!$row) { +$error = mysql_error(); +print "mysql_error: $error\n"; +die; } - + mysql_free_result($machine_query); + +// $machine_query = mysql_query($query) or die(mysql_error()); +// $row = mysql_fetch_array($machine_query) or die(mysql_error()); +// mysql_free_result($machine_query); + if($row && strcmp($row['uname'], $uname) == 0 && strcmp($row['hardware'], $hardware) == 0 && ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: nightlytest-serverside/NightlyTestAccept.php
Changes in directory nightlytest-serverside: NightlyTestAccept.php updated: 1.11 -> 1.12 --- Log message: testing #10 --- Diffs of the changes: (+18 -16) NightlyTestAccept.php | 34 ++ 1 files changed, 18 insertions(+), 16 deletions(-) Index: nightlytest-serverside/NightlyTestAccept.php diff -u nightlytest-serverside/NightlyTestAccept.php:1.11 nightlytest-serverside/NightlyTestAccept.php:1.12 --- nightlytest-serverside/NightlyTestAccept.php:1.11 Thu Sep 14 06:31:35 2006 +++ nightlytest-serverside/NightlyTestAccept.phpThu Sep 14 06:34:33 2006 @@ -121,23 +121,21 @@ ***/ function DoesMachineExist($uname, $hardware, $os, $name, $nickname, $gcc_version) { $query = "SELECT * FROM machine WHERE uname=\"$uname\" AND nickname=\"$nickname\" AND gcc=\"$gcc_version\""; -if ($print_debug) { - print "query: $query\n"; -} +print "query: $query\n"; - $machine_query = mysql_query($query); - if (!$machine_query) { -$error = mysql_error(); -print "mysql_error: $error\n"; -die; - } - $row = mysql_fetch_array($machine_query) or die(mysql_error()); - if (!$row) { -$error = mysql_error(); -print "mysql_error: $error\n"; -die; - } - mysql_free_result($machine_query); +$machine_query = mysql_query($query); +if (!$machine_query) { + $error = mysql_error(); + print "mysql_error: $error\n"; + die; +} +$row = mysql_fetch_array($machine_query) or die(mysql_error()); +if (!$row) { + $error = mysql_error(); + print "mysql_error: $error\n"; + die; +} +mysql_free_result($machine_query); // $machine_query = mysql_query($query) or die(mysql_error()); // $row = mysql_fetch_array($machine_query) or die(mysql_error()); @@ -648,6 +646,10 @@ * creating the response * ***/ +if ($print_debug) { + print "About To DoesMachineExist\n"; +} + if (!DoesMachineExist($uname, $hardware, $os, $name, $nickname, $gcc_version)) { AddMachine($uname, $hardware, $os, $name, $nickname, $gcc_version, "test"); } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: nightlytest-serverside/NightlyTestAccept.php
Changes in directory nightlytest-serverside: NightlyTestAccept.php updated: 1.12 -> 1.13 --- Log message: testing #11 --- Diffs of the changes: (+7 -3) NightlyTestAccept.php | 10 +++--- 1 files changed, 7 insertions(+), 3 deletions(-) Index: nightlytest-serverside/NightlyTestAccept.php diff -u nightlytest-serverside/NightlyTestAccept.php:1.12 nightlytest-serverside/NightlyTestAccept.php:1.13 --- nightlytest-serverside/NightlyTestAccept.php:1.12 Thu Sep 14 06:34:33 2006 +++ nightlytest-serverside/NightlyTestAccept.phpThu Sep 14 06:40:22 2006 @@ -89,7 +89,7 @@ * ***/ $mysql_link = mysql_connect("127.0.0.1", $loginname, $password) or die("Error: could not connect to database!"); -mysql_select_db($database); +mysql_select_db($database) or die("Error: could not find \"$database\" database!"); if ($print_debug) { print "Database connected\n"; @@ -124,13 +124,17 @@ print "query: $query\n"; $machine_query = mysql_query($query); -if (!$machine_query) { +if ($machine_query) { + print "machine query okay\n"; +} else { $error = mysql_error(); print "mysql_error: $error\n"; die; } $row = mysql_fetch_array($machine_query) or die(mysql_error()); -if (!$row) { +if ($row) { + print "row read okay\n"; +} else { $error = mysql_error(); print "mysql_error: $error\n"; die; ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: nightlytest-serverside/NightlyTestAccept.php
Changes in directory nightlytest-serverside: NightlyTestAccept.php updated: 1.13 -> 1.14 --- Log message: testing #12 --- Diffs of the changes: (+4 -22) NightlyTestAccept.php | 26 -- 1 files changed, 4 insertions(+), 22 deletions(-) Index: nightlytest-serverside/NightlyTestAccept.php diff -u nightlytest-serverside/NightlyTestAccept.php:1.13 nightlytest-serverside/NightlyTestAccept.php:1.14 --- nightlytest-serverside/NightlyTestAccept.php:1.13 Thu Sep 14 06:40:22 2006 +++ nightlytest-serverside/NightlyTestAccept.phpThu Sep 14 06:50:23 2006 @@ -121,29 +121,10 @@ ***/ function DoesMachineExist($uname, $hardware, $os, $name, $nickname, $gcc_version) { $query = "SELECT * FROM machine WHERE uname=\"$uname\" AND nickname=\"$nickname\" AND gcc=\"$gcc_version\""; -print "query: $query\n"; -$machine_query = mysql_query($query); -if ($machine_query) { - print "machine query okay\n"; -} else { - $error = mysql_error(); - print "mysql_error: $error\n"; - die; -} -$row = mysql_fetch_array($machine_query) or die(mysql_error()); -if ($row) { - print "row read okay\n"; -} else { - $error = mysql_error(); - print "mysql_error: $error\n"; - die; -} -mysql_free_result($machine_query); - -// $machine_query = mysql_query($query) or die(mysql_error()); -// $row = mysql_fetch_array($machine_query) or die(mysql_error()); -// mysql_free_result($machine_query); + $machine_query = mysql_query($query) or die(mysql_error()); + $row = mysql_fetch_array($machine_query) or die(mysql_error()); + mysql_free_result($machine_query); if($row && strcmp($row['uname'], $uname) == 0 && @@ -182,6 +163,7 @@ $query = "INSERT INTO machine (uname, hardware, os, name, nickname, gcc, directory) " . "VALUES (\"$uname\",\"$hardware\",\"$os\",\"$name\",\"$nickname\",\"$gcc_version\",\"$directory\")"; $insert_query = mysql_query($query) or die(mysql_error()); + print "AddMachine: $insert_query\n"; mysql_free_result($insert_query); } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: nightlytest-serverside/NightlyTestAccept.php
Changes in directory nightlytest-serverside: NightlyTestAccept.php updated: 1.14 -> 1.15 --- Log message: testing #13 --- Diffs of the changes: (+7 -10) NightlyTestAccept.php | 17 +++-- 1 files changed, 7 insertions(+), 10 deletions(-) Index: nightlytest-serverside/NightlyTestAccept.php diff -u nightlytest-serverside/NightlyTestAccept.php:1.14 nightlytest-serverside/NightlyTestAccept.php:1.15 --- nightlytest-serverside/NightlyTestAccept.php:1.14 Thu Sep 14 06:50:23 2006 +++ nightlytest-serverside/NightlyTestAccept.phpThu Sep 14 06:53:31 2006 @@ -132,10 +132,10 @@ strcmp($row['os'], $os) == 0 && strcmp($row['nickname'], $nickname) == 0 && strcmp($row['gcc'], $gcc_version) == 0) { -return 1; +return true; } - return 0; + return false; } /*** @@ -163,7 +163,6 @@ $query = "INSERT INTO machine (uname, hardware, os, name, nickname, gcc, directory) " . "VALUES (\"$uname\",\"$hardware\",\"$os\",\"$name\",\"$nickname\",\"$gcc_version\",\"$directory\")"; $insert_query = mysql_query($query) or die(mysql_error()); - print "AddMachine: $insert_query\n"; mysql_free_result($insert_query); } @@ -632,18 +631,16 @@ * creating the response * ***/ -if ($print_debug) { - print "About To DoesMachineExist\n"; -} - if (!DoesMachineExist($uname, $hardware, $os, $name, $nickname, $gcc_version)) { +print "Before AddMachine\n"; AddMachine($uname, $hardware, $os, $name, $nickname, $gcc_version, "test"); +print "After AddMachine\n"; } +print "Before GetMachineId\n"; $machine_id = GetMachineId($uname, $hardware, $os, $name, $nickname, $gcc_version); +print "After GetMachineId\n"; -if ($print_debug) { - print "machine_id: $machine_id\n"; -} +print "machine_id: $machine_id\n"; /*** * ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: nightlytest-serverside/NightlyTestAccept.php
Changes in directory nightlytest-serverside: NightlyTestAccept.php updated: 1.15 -> 1.16 --- Log message: testing #14 --- Diffs of the changes: (+1 -1) NightlyTestAccept.php |2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: nightlytest-serverside/NightlyTestAccept.php diff -u nightlytest-serverside/NightlyTestAccept.php:1.15 nightlytest-serverside/NightlyTestAccept.php:1.16 --- nightlytest-serverside/NightlyTestAccept.php:1.15 Thu Sep 14 06:53:31 2006 +++ nightlytest-serverside/NightlyTestAccept.phpThu Sep 14 06:55:07 2006 @@ -15,7 +15,7 @@ ***/ print "content-type: text/text\n\n"; -$print_debug = 1; +$print_debug = 0; $print_env = 0; ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: nightlytest-serverside/NightlyTestAccept.php
Changes in directory nightlytest-serverside: NightlyTestAccept.php updated: 1.16 -> 1.17 --- Log message: testing #15 --- Diffs of the changes: (+3 -2) NightlyTestAccept.php |5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) Index: nightlytest-serverside/NightlyTestAccept.php diff -u nightlytest-serverside/NightlyTestAccept.php:1.16 nightlytest-serverside/NightlyTestAccept.php:1.17 --- nightlytest-serverside/NightlyTestAccept.php:1.16 Thu Sep 14 06:55:07 2006 +++ nightlytest-serverside/NightlyTestAccept.phpThu Sep 14 06:56:45 2006 @@ -631,10 +631,11 @@ * creating the response * ***/ +print "Before DoesMachineExist\n"; if (!DoesMachineExist($uname, $hardware, $os, $name, $nickname, $gcc_version)) { -print "Before AddMachine\n"; + print "Before AddMachine\n"; AddMachine($uname, $hardware, $os, $name, $nickname, $gcc_version, "test"); -print "After AddMachine\n"; + print "After AddMachine\n"; } print "Before GetMachineId\n"; $machine_id = GetMachineId($uname, $hardware, $os, $name, $nickname, $gcc_version); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: nightlytest-serverside/NightlyTestAccept.php
Changes in directory nightlytest-serverside: NightlyTestAccept.php updated: 1.17 -> 1.18 --- Log message: testing #16 --- Diffs of the changes: (+31 -16) NightlyTestAccept.php | 47 +++ 1 files changed, 31 insertions(+), 16 deletions(-) Index: nightlytest-serverside/NightlyTestAccept.php diff -u nightlytest-serverside/NightlyTestAccept.php:1.17 nightlytest-serverside/NightlyTestAccept.php:1.18 --- nightlytest-serverside/NightlyTestAccept.php:1.17 Thu Sep 14 06:56:45 2006 +++ nightlytest-serverside/NightlyTestAccept.phpThu Sep 14 07:04:56 2006 @@ -100,6 +100,24 @@ * Some methods to help the process * ***/ + +/*** + * + * Test if two values are equal as strings + * + ***/ +function StringEqual($value1, $value2) { + return strcmp("$value1", "$value2") == 0; +} + +/*** + * + * Test if a value is equal to null string + * + ***/ +function StringIsNull($value) { + return strlen("$value") == 0; +} /*** * @@ -127,11 +145,11 @@ mysql_free_result($machine_query); if($row && - strcmp($row['uname'], $uname) == 0 && - strcmp($row['hardware'], $hardware) == 0 && - strcmp($row['os'], $os) == 0 && - strcmp($row['nickname'], $nickname) == 0 && - strcmp($row['gcc'], $gcc_version) == 0) { + StringEqual($row['uname'], $uname) && + StringEqual($row['hardware'], $hardware) && + StringEqual($row['os'], $os) && + StringEqual($row['nickname'], $nickname) && + StringEqual($row['gcc'], $gcc_version)) { return true; } @@ -631,17 +649,14 @@ * creating the response * ***/ -print "Before DoesMachineExist\n"; if (!DoesMachineExist($uname, $hardware, $os, $name, $nickname, $gcc_version)) { - print "Before AddMachine\n"; AddMachine($uname, $hardware, $os, $name, $nickname, $gcc_version, "test"); - print "After AddMachine\n"; } -print "Before GetMachineId\n"; $machine_id = GetMachineId($uname, $hardware, $os, $name, $nickname, $gcc_version); -print "After GetMachineId\n"; -print "machine_id: $machine_id\n"; +if ($print_debug) { + print "machine_id: $machine_id\n"; +} /*** * @@ -865,20 +880,20 @@ $email .= "Nickname: $nickname\n"; $email .= "Buildstatus: $buildstatus\n"; -if(strcmp($buildstatus, "OK") == 0) { - if (strlen($passing) == 0) { +if(StringEqual($buildstatus, "OK")) { + if (StringIsNull($passing)) { $passing = "None"; } $email .= "\nNew Test Passes: $passing\n"; - if (strlen($failing) == 0) { + if (StringIsNull($failing)) { $failing = "None"; } $email .= "\nNew Test Failures: $failing\n"; - if (strlen($added) == 0) { + if (StringIsNull($added)) { $added = "None"; } $email .= "\nAdded Tests: $added\n"; - if (strlen($removed) == 0) { + if (StringIsNull($removed)) { $removed= "None"; } $email .= "\nRemoved Tests: $removed\n"; ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: nightlytest-serverside/NightlyTestAccept.php
Changes in directory nightlytest-serverside: NightlyTestAccept.php updated: 1.18 -> 1.19 --- Log message: testing #17 --- Diffs of the changes: (+4 -0) NightlyTestAccept.php |4 1 files changed, 4 insertions(+) Index: nightlytest-serverside/NightlyTestAccept.php diff -u nightlytest-serverside/NightlyTestAccept.php:1.18 nightlytest-serverside/NightlyTestAccept.php:1.19 --- nightlytest-serverside/NightlyTestAccept.php:1.18 Thu Sep 14 07:04:56 2006 +++ nightlytest-serverside/NightlyTestAccept.phpThu Sep 14 07:07:11 2006 @@ -143,6 +143,8 @@ $machine_query = mysql_query($query) or die(mysql_error()); $row = mysql_fetch_array($machine_query) or die(mysql_error()); mysql_free_result($machine_query); + + print "DoesMachineExist query done\n"; if($row && StringEqual($row['uname'], $uname) && @@ -150,8 +152,10 @@ StringEqual($row['os'], $os) && StringEqual($row['nickname'], $nickname) && StringEqual($row['gcc'], $gcc_version)) { + print "DoesMachineExist found\n"; return true; } + print "DoesMachineExist not found\n"; return false; } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: nightlytest-serverside/NightlyTestAccept.php
Changes in directory nightlytest-serverside: NightlyTestAccept.php updated: 1.19 -> 1.20 --- Log message: testing #18 --- Diffs of the changes: (+3 -0) NightlyTestAccept.php |3 +++ 1 files changed, 3 insertions(+) Index: nightlytest-serverside/NightlyTestAccept.php diff -u nightlytest-serverside/NightlyTestAccept.php:1.19 nightlytest-serverside/NightlyTestAccept.php:1.20 --- nightlytest-serverside/NightlyTestAccept.php:1.19 Thu Sep 14 07:07:11 2006 +++ nightlytest-serverside/NightlyTestAccept.phpThu Sep 14 07:08:46 2006 @@ -140,8 +140,11 @@ function DoesMachineExist($uname, $hardware, $os, $name, $nickname, $gcc_version) { $query = "SELECT * FROM machine WHERE uname=\"$uname\" AND nickname=\"$nickname\" AND gcc=\"$gcc_version\""; + print "Before Query\n"; $machine_query = mysql_query($query) or die(mysql_error()); + print "Before Fetch\n"; $row = mysql_fetch_array($machine_query) or die(mysql_error()); + print "Before Free\n"; mysql_free_result($machine_query); print "DoesMachineExist query done\n"; ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: nightlytest-serverside/NightlyTestAccept.php
Changes in directory nightlytest-serverside: NightlyTestAccept.php updated: 1.20 -> 1.21 --- Log message: testing #19 --- Diffs of the changes: (+7 -14) NightlyTestAccept.php | 21 +++-- 1 files changed, 7 insertions(+), 14 deletions(-) Index: nightlytest-serverside/NightlyTestAccept.php diff -u nightlytest-serverside/NightlyTestAccept.php:1.20 nightlytest-serverside/NightlyTestAccept.php:1.21 --- nightlytest-serverside/NightlyTestAccept.php:1.20 Thu Sep 14 07:08:46 2006 +++ nightlytest-serverside/NightlyTestAccept.phpThu Sep 14 07:12:05 2006 @@ -140,14 +140,9 @@ function DoesMachineExist($uname, $hardware, $os, $name, $nickname, $gcc_version) { $query = "SELECT * FROM machine WHERE uname=\"$uname\" AND nickname=\"$nickname\" AND gcc=\"$gcc_version\""; - print "Before Query\n"; $machine_query = mysql_query($query) or die(mysql_error()); - print "Before Fetch\n"; - $row = mysql_fetch_array($machine_query) or die(mysql_error()); - print "Before Free\n"; + $row = mysql_fetch_array($machine_query); mysql_free_result($machine_query); - - print "DoesMachineExist query done\n"; if($row && StringEqual($row['uname'], $uname) && @@ -155,10 +150,8 @@ StringEqual($row['os'], $os) && StringEqual($row['nickname'], $nickname) && StringEqual($row['gcc'], $gcc_version)) { - print "DoesMachineExist found\n"; return true; } - print "DoesMachineExist not found\n"; return false; } @@ -200,7 +193,7 @@ $query = "SELECT * FROM machine WHERE uname=\"$uname\" AND hardware=\"$hardware\" ". "AND os=\"$os\" AND name=\"$name\" AND gcc=\"$gcc_version\""; $machine_query = mysql_query($query) or die(mysql_error()); - $row = mysql_fetch_array($machine_query) or die(mysql_error()); + $row = mysql_fetch_array($machine_query); mysql_free_result($machine_query); if($row) { @@ -308,7 +301,7 @@ $query = "SELECT id FROM night WHERE machine=$machine_id AND added=\"$added\""; $machine_query = mysql_query($query) or die(mysql_error()); - $row = mysql_fetch_array($machine_query) or die(mysql_error()); + $row = mysql_fetch_array($machine_query); mysql_free_result($machine_query); if($row) { @@ -324,7 +317,7 @@ $result = array(); $query = "SELECT * FROM night WHERE machine = \"$machine_id\""; $night_query = mysql_query($query) or die(mysql_error()); - while ($row = mysql_fetch_array($night_query) or die(mysql_error())) { + while ($row = mysql_fetch_array($night_query)) { array_push($result, $row['id']); } mysql_free_result($night_query); @@ -416,7 +409,7 @@ function UpdateCodeInfo($date, $loc, $files, $dirs) { $query = "SELECT * FROM code ORDER BY added DESC"; $code_query = mysql_query($query) or die(mysql_error()); - $row = mysql_fetch_array($code_query) or die(mysql_error()); + $row = mysql_fetch_array($code_query); mysql_free_result($code_query); if ($row && ($row['loc'] != $loc || @@ -788,8 +781,8 @@ $query = "SELECT id FROM night WHERE id<$night_id AND machine=$machine_id AND ". "buildstatus=\"OK\" ORDER BY id DESC"; $night_query = mysql_query($query) or die(mysql_error()); -$row = mysql_fetch_array($night_query) or die(mysql_error()); -$prev_night = $row['id']; +$row = mysql_fetch_array($night_query); +$prev_night = $row['id'] or $night_query; mysql_free_result($night_query); $query = "SELECT * FROM program WHERE night=$night_id"; ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: nightlytest-serverside/NightlyTestAccept.php
Changes in directory nightlytest-serverside: NightlyTestAccept.php updated: 1.21 -> 1.22 --- Log message: testing #20 --- Diffs of the changes: (+4 -1) NightlyTestAccept.php |5 - 1 files changed, 4 insertions(+), 1 deletion(-) Index: nightlytest-serverside/NightlyTestAccept.php diff -u nightlytest-serverside/NightlyTestAccept.php:1.21 nightlytest-serverside/NightlyTestAccept.php:1.22 --- nightlytest-serverside/NightlyTestAccept.php:1.21 Thu Sep 14 07:12:05 2006 +++ nightlytest-serverside/NightlyTestAccept.phpThu Sep 14 07:14:22 2006 @@ -782,7 +782,10 @@ "buildstatus=\"OK\" ORDER BY id DESC"; $night_query = mysql_query($query) or die(mysql_error()); $row = mysql_fetch_array($night_query); -$prev_night = $row['id'] or $night_query; +$prev_night = $row['id']; +if (isset($prev_night)) { + $prev_night = $night_query; +} mysql_free_result($night_query); $query = "SELECT * FROM program WHERE night=$night_id"; ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: nightlytest-serverside/NightlyTestAccept.php
Changes in directory nightlytest-serverside: NightlyTestAccept.php updated: 1.22 -> 1.23 --- Log message: testing #21 --- Diffs of the changes: (+1 -1) NightlyTestAccept.php |2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: nightlytest-serverside/NightlyTestAccept.php diff -u nightlytest-serverside/NightlyTestAccept.php:1.22 nightlytest-serverside/NightlyTestAccept.php:1.23 --- nightlytest-serverside/NightlyTestAccept.php:1.22 Thu Sep 14 07:14:22 2006 +++ nightlytest-serverside/NightlyTestAccept.phpThu Sep 14 07:15:34 2006 @@ -15,7 +15,7 @@ ***/ print "content-type: text/text\n\n"; -$print_debug = 0; +$print_debug = 1; $print_env = 0; ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: nightlytest-serverside/NightlyTestAccept.php
Changes in directory nightlytest-serverside: NightlyTestAccept.php updated: 1.23 -> 1.24 --- Log message: testing #22 --- Diffs of the changes: (+4 -0) NightlyTestAccept.php |4 1 files changed, 4 insertions(+) Index: nightlytest-serverside/NightlyTestAccept.php diff -u nightlytest-serverside/NightlyTestAccept.php:1.23 nightlytest-serverside/NightlyTestAccept.php:1.24 --- nightlytest-serverside/NightlyTestAccept.php:1.23 Thu Sep 14 07:15:34 2006 +++ nightlytest-serverside/NightlyTestAccept.phpThu Sep 14 07:20:52 2006 @@ -296,12 +296,16 @@ "\"$newly_failing_tests\", \"$new_tests\", \"$removed_tests\", \"$cvs_added\"," . "\"$cvs_removed\", \"$cvs_modified\", \"$cvs_usersadd\", \"$cvs_usersco\"" . ")"; + print "insert query: $query\n"; $insert_query = mysql_query($query) or die(mysql_error()); mysql_free_result($insert_query) or die(mysql_error()); $query = "SELECT id FROM night WHERE machine=$machine_id AND added=\"$added\""; + print "select query: $query\n"; $machine_query = mysql_query($query) or die(mysql_error()); + print "select query worked\n"; $row = mysql_fetch_array($machine_query); + print "select query result: $row\n"; mysql_free_result($machine_query); if($row) { ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: nightlytest-serverside/EmailReport.php
Changes in directory nightlytest-serverside: EmailReport.php updated: 1.7 -> 1.8 --- Log message: Delete Wickund night records --- Diffs of the changes: (+6 -2) EmailReport.php |8 ++-- 1 files changed, 6 insertions(+), 2 deletions(-) Index: nightlytest-serverside/EmailReport.php diff -u nightlytest-serverside/EmailReport.php:1.7 nightlytest-serverside/EmailReport.php:1.8 --- nightlytest-serverside/EmailReport.php:1.7 Tue Sep 12 06:37:07 2006 +++ nightlytest-serverside/EmailReport.php Thu Sep 14 07:57:03 2006 @@ -2,6 +2,7 @@ ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: nightlytest-serverside/NightlyTestAccept.php
Changes in directory nightlytest-serverside: NightlyTestAccept.php updated: 1.24 -> 1.25 --- Log message: testing #23 --- Diffs of the changes: (+2 -1) NightlyTestAccept.php |3 ++- 1 files changed, 2 insertions(+), 1 deletion(-) Index: nightlytest-serverside/NightlyTestAccept.php diff -u nightlytest-serverside/NightlyTestAccept.php:1.24 nightlytest-serverside/NightlyTestAccept.php:1.25 --- nightlytest-serverside/NightlyTestAccept.php:1.24 Thu Sep 14 07:20:52 2006 +++ nightlytest-serverside/NightlyTestAccept.phpThu Sep 14 07:59:05 2006 @@ -16,7 +16,7 @@ print "content-type: text/text\n\n"; $print_debug = 1; -$print_env = 0; +$print_env = 1; if ($print_debug) { @@ -297,6 +297,7 @@ "\"$cvs_removed\", \"$cvs_modified\", \"$cvs_usersadd\", \"$cvs_usersco\"" . ")"; print "insert query: $query\n"; +die; $insert_query = mysql_query($query) or die(mysql_error()); mysql_free_result($insert_query) or die(mysql_error()); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: nightlytest-serverside/NightlyTestAccept.php
Changes in directory nightlytest-serverside: NightlyTestAccept.php updated: 1.25 -> 1.26 --- Log message: testing #24 --- Diffs of the changes: (+1 -3) NightlyTestAccept.php |4 +--- 1 files changed, 1 insertion(+), 3 deletions(-) Index: nightlytest-serverside/NightlyTestAccept.php diff -u nightlytest-serverside/NightlyTestAccept.php:1.25 nightlytest-serverside/NightlyTestAccept.php:1.26 --- nightlytest-serverside/NightlyTestAccept.php:1.25 Thu Sep 14 07:59:05 2006 +++ nightlytest-serverside/NightlyTestAccept.phpThu Sep 14 09:12:46 2006 @@ -296,10 +296,8 @@ "\"$newly_failing_tests\", \"$new_tests\", \"$removed_tests\", \"$cvs_added\"," . "\"$cvs_removed\", \"$cvs_modified\", \"$cvs_usersadd\", \"$cvs_usersco\"" . ")"; - print "insert query: $query\n"; -die; $insert_query = mysql_query($query) or die(mysql_error()); - mysql_free_result($insert_query) or die(mysql_error()); + mysql_free_result($insert_query); $query = "SELECT id FROM night WHERE machine=$machine_id AND added=\"$added\""; print "select query: $query\n"; ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: nightlytest-serverside/NightlyTestAccept.php
Changes in directory nightlytest-serverside: NightlyTestAccept.php updated: 1.26 -> 1.27 --- Log message: testing #25 --- Diffs of the changes: (+3 -2) NightlyTestAccept.php |5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) Index: nightlytest-serverside/NightlyTestAccept.php diff -u nightlytest-serverside/NightlyTestAccept.php:1.26 nightlytest-serverside/NightlyTestAccept.php:1.27 --- nightlytest-serverside/NightlyTestAccept.php:1.26 Thu Sep 14 09:12:46 2006 +++ nightlytest-serverside/NightlyTestAccept.phpThu Sep 14 09:19:23 2006 @@ -748,8 +748,9 @@ $subpatterns = array(); if (preg_match("/^(XPASS|PASS|XFAIL|FAIL):\s(.+):?/", $info, $subpatterns)) { list($ignore, $result, $program) = $subpatterns; - $query="INSERT INTO tests (program, result, measure, night) ". - "VALUES(\"$result\", \'$program\', \"dejagnu\", $night_id)"; + $query = "INSERT INTO tests (program, result, measure, night) ". +"VALUES(\"$result\", \'$program\', \"dejagnu\", $night_id)"; + print "$query\n"; $test_query = mysql_query($query) or die(mysql_error()); mysql_free_result($test_query); } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: nightlytest-serverside/NightlyTestAccept.php
Changes in directory nightlytest-serverside: NightlyTestAccept.php updated: 1.27 -> 1.28 --- Log message: testing #26 --- Diffs of the changes: (+1 -2) NightlyTestAccept.php |3 +-- 1 files changed, 1 insertion(+), 2 deletions(-) Index: nightlytest-serverside/NightlyTestAccept.php diff -u nightlytest-serverside/NightlyTestAccept.php:1.27 nightlytest-serverside/NightlyTestAccept.php:1.28 --- nightlytest-serverside/NightlyTestAccept.php:1.27 Thu Sep 14 09:19:23 2006 +++ nightlytest-serverside/NightlyTestAccept.phpThu Sep 14 09:24:41 2006 @@ -749,8 +749,7 @@ if (preg_match("/^(XPASS|PASS|XFAIL|FAIL):\s(.+):?/", $info, $subpatterns)) { list($ignore, $result, $program) = $subpatterns; $query = "INSERT INTO tests (program, result, measure, night) ". -"VALUES(\"$result\", \'$program\', \"dejagnu\", $night_id)"; - print "$query\n"; +"VALUES(\"$result\", \"$program\", \"dejagnu\", $night_id)"; $test_query = mysql_query($query) or die(mysql_error()); mysql_free_result($test_query); } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: nightlytest-serverside/NightlyTestAccept.php
Changes in directory nightlytest-serverside: NightlyTestAccept.php updated: 1.28 -> 1.29 --- Log message: testing #27 --- Diffs of the changes: (+19 -3) NightlyTestAccept.php | 22 +++--- 1 files changed, 19 insertions(+), 3 deletions(-) Index: nightlytest-serverside/NightlyTestAccept.php diff -u nightlytest-serverside/NightlyTestAccept.php:1.28 nightlytest-serverside/NightlyTestAccept.php:1.29 --- nightlytest-serverside/NightlyTestAccept.php:1.28 Thu Sep 14 09:24:41 2006 +++ nightlytest-serverside/NightlyTestAccept.phpThu Sep 14 09:51:13 2006 @@ -300,11 +300,8 @@ mysql_free_result($insert_query); $query = "SELECT id FROM night WHERE machine=$machine_id AND added=\"$added\""; - print "select query: $query\n"; $machine_query = mysql_query($query) or die(mysql_error()); - print "select query worked\n"; $row = mysql_fetch_array($machine_query); - print "select query result: $row\n"; mysql_free_result($machine_query); if($row) { @@ -791,6 +788,10 @@ } mysql_free_result($night_query); +if ($print_debug) { + print "prev_night: $prev_night\n"; +} + $query = "SELECT * FROM program WHERE night=$night_id"; $program_query = mysql_query($query) or die(mysql_error()); @@ -802,6 +803,10 @@ } mysql_free_result($program_query); +if ($print_debug) { + print "Gathered all tonight\'s programs\n"; +} + $query = "SELECT * FROM program WHERE night=$prev_night"; $prog_hash_old = array(); while ($row = mysql_fetch_array($program_query)) { @@ -811,6 +816,10 @@ } mysql_free_result($program_query); +if ($print_debug) { + print "Gathered all previous night\'s programs\n"; +} + $output_big_changes = array(); foreach ($prog_hash_new as $prog) { $prog_new = $prog_hash_new[$prog]; @@ -854,6 +863,10 @@ } } +if ($print_debug) { + print "Determined measures\n"; +} + /*** * * Determining changes in new tests and old tests @@ -865,6 +878,9 @@ $passing = getFixedTests($night_id, $prev_night); $failing = getBrokenTests($night_id, $prev_night); +if ($print_debug) { + print "Determined changes in new tests and old tests\n"; +} /*** * ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: nightlytest-serverside/EmailReport.php
Changes in directory nightlytest-serverside: EmailReport.php updated: 1.8 -> 1.9 --- Log message: Set up query test --- Diffs of the changes: (+12 -2) EmailReport.php | 14 -- 1 files changed, 12 insertions(+), 2 deletions(-) Index: nightlytest-serverside/EmailReport.php diff -u nightlytest-serverside/EmailReport.php:1.8 nightlytest-serverside/EmailReport.php:1.9 --- nightlytest-serverside/EmailReport.php:1.8 Thu Sep 14 07:57:03 2006 +++ nightlytest-serverside/EmailReport.php Thu Sep 14 10:25:16 2006 @@ -24,7 +24,6 @@ print "Error: could not load necessary files!\n"; die(); } -*/ $mysql_link=mysql_connect("127.0.0.1","llvm","ll2002vm") or die("Error: could not connect to database!\n"); mysql_select_db("nightlytestresults"); @@ -39,10 +38,21 @@ next($row); } } -*/ + +mysql_free_result($night_query); + +$query = "DELETE FROM night WHERE machine = \"56\""; +$night_query = mysql_query($query) or die (mysql_error()); mysql_free_result($night_query); + + mysql_close($mysql_link); +*/ + +$Query = $_POST["Query"]; + +print "$Query\n"; ?> ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: nightlytest-serverside/EmailReport.php
Changes in directory nightlytest-serverside: EmailReport.php updated: 1.9 -> 1.10 --- Log message: Set up query test --- Diffs of the changes: (+10 -44) EmailReport.php | 54 ++ 1 files changed, 10 insertions(+), 44 deletions(-) Index: nightlytest-serverside/EmailReport.php diff -u nightlytest-serverside/EmailReport.php:1.9 nightlytest-serverside/EmailReport.php:1.10 --- nightlytest-serverside/EmailReport.php:1.9 Thu Sep 14 10:25:16 2006 +++ nightlytest-serverside/EmailReport.php Thu Sep 14 10:33:18 2006 @@ -2,57 +2,23 @@ \n"; -next($row); +$query = $_POST["Query"]; +$query = preg_replace("/\n/", " ", $query); +$my_query = mysql_query($query) or die (mysql_error()); + +while ($row = mysql_fetch_array($my_query)) { + foreach ($row as $key => $value) { +print "$key => $value, "; } + print "\n"; } -mysql_free_result($night_query); - -$query = "DELETE FROM night WHERE machine = \"56\""; -$night_query = mysql_query($query) or die (mysql_error()); -mysql_free_result($night_query); - - +mysql_free_result($my_query); mysql_close($mysql_link); -*/ - -$Query = $_POST["Query"]; - -print "$Query\n"; ?> ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: nightlytest-serverside/NightlyTestAccept.php
Changes in directory nightlytest-serverside: NightlyTestAccept.php updated: 1.29 -> 1.30 --- Log message: testing #28 --- Diffs of the changes: (+2 -0) NightlyTestAccept.php |2 ++ 1 files changed, 2 insertions(+) Index: nightlytest-serverside/NightlyTestAccept.php diff -u nightlytest-serverside/NightlyTestAccept.php:1.29 nightlytest-serverside/NightlyTestAccept.php:1.30 --- nightlytest-serverside/NightlyTestAccept.php:1.29 Thu Sep 14 09:51:13 2006 +++ nightlytest-serverside/NightlyTestAccept.phpThu Sep 14 10:44:03 2006 @@ -792,6 +792,8 @@ print "prev_night: $prev_night\n"; } +die; + $query = "SELECT * FROM program WHERE night=$night_id"; $program_query = mysql_query($query) or die(mysql_error()); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: nightlytest-serverside/NightlyTestAccept.php
Changes in directory nightlytest-serverside: NightlyTestAccept.php updated: 1.30 -> 1.31 --- Log message: testing #29 --- Diffs of the changes: (+2 -2) NightlyTestAccept.php |4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Index: nightlytest-serverside/NightlyTestAccept.php diff -u nightlytest-serverside/NightlyTestAccept.php:1.30 nightlytest-serverside/NightlyTestAccept.php:1.31 --- nightlytest-serverside/NightlyTestAccept.php:1.30 Thu Sep 14 10:44:03 2006 +++ nightlytest-serverside/NightlyTestAccept.phpThu Sep 14 10:53:34 2006 @@ -783,8 +783,8 @@ $night_query = mysql_query($query) or die(mysql_error()); $row = mysql_fetch_array($night_query); $prev_night = $row['id']; -if (isset($prev_night)) { - $prev_night = $night_query; +if (!isset($prev_night)) { + $prev_night = $night_id; } mysql_free_result($night_query); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: nightlytest-serverside/EmailReport.php
Changes in directory nightlytest-serverside: EmailReport.php updated: 1.10 -> 1.11 --- Log message: Set up query test --- Diffs of the changes: (+1 -1) EmailReport.php |2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: nightlytest-serverside/EmailReport.php diff -u nightlytest-serverside/EmailReport.php:1.10 nightlytest-serverside/EmailReport.php:1.11 --- nightlytest-serverside/EmailReport.php:1.10 Thu Sep 14 10:33:18 2006 +++ nightlytest-serverside/EmailReport.php Thu Sep 14 11:34:11 2006 @@ -9,7 +9,7 @@ $query = preg_replace("/\n/", " ", $query); $my_query = mysql_query($query) or die (mysql_error()); -while ($row = mysql_fetch_array($my_query)) { +while ($row = mysql_fetch_assoc($my_query)) { foreach ($row as $key => $value) { print "$key => $value, "; } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: nightlytest-serverside/ProgramResults.php
Changes in directory nightlytest-serverside: ProgramResults.php updated: 1.58 -> 1.59 --- Log message: Array sql queries are unnecessary --- Diffs of the changes: (+17 -17) ProgramResults.php | 34 +- 1 files changed, 17 insertions(+), 17 deletions(-) Index: nightlytest-serverside/ProgramResults.php diff -u nightlytest-serverside/ProgramResults.php:1.58 nightlytest-serverside/ProgramResults.php:1.59 --- nightlytest-serverside/ProgramResults.php:1.58 Wed Sep 13 14:21:22 2006 +++ nightlytest-serverside/ProgramResults.php Thu Sep 14 11:40:55 2006 @@ -134,7 +134,7 @@ $result=array(); #print "SELECT * FROM program WHERE night=$night_id ORDER BY program ASC\n"; $program_query = mysql_query("SELECT * FROM program WHERE night=$night_id ORDER BY program ASC") or die (mysql_error()); - while($row = mysql_fetch_array($program_query)){ + while($row = mysql_fetch_assoc($program_query)){ $program = rtrim($row['program'], ": "); $result[$program] = array(); array_push($result[$program], "{$row['type']}"); @@ -343,7 +343,7 @@ $night_table_query = mysql_query($night_table_statement ) or die(mysql_error()); $night_arr=array(); $night_query="("; - while($row = mysql_fetch_array($night_table_query)){ + while($row = mysql_fetch_assoc($night_table_query)){ $night_arr["{$row['id']}"]=$row['added']; $results_arr["{$row['added']}"]=array(); preg_match("/(\d\d\d\d)\-(\d\d)\-(\d\d)\s(\d\d)\:(\d\d)\:(\d\d)/", "{$row['added']}", $pjs); @@ -361,7 +361,7 @@ $program_table_statement="SELECT * FROM program WHERE program=\"$prog\" ". "and $night_query order by night asc"; $night_table_query=mysql_query($program_table_statement) or die(mysql_error()); -while($row=mysql_fetch_array($night_table_query)){ +while($row=mysql_fetch_assoc($night_table_query)){ $row['result'] = str_replace("", " ", "{$row['result']}"); $night_id=$row['night']; $data="-"; @@ -435,7 +435,7 @@ if ($night_id >= 684) { $query = "SELECT * FROM tests WHERE night=$night_id AND result=\"FAIL\" ORDER BY program ASC"; $program_query = mysql_query($query) or die (mysql_error()); -while($row = mysql_fetch_array($program_query)) { +while($row = mysql_fetch_assoc($program_query)) { $program = rtrim($row['program'], ": "); $result .= trimTestPath($program) . "\n"; } @@ -443,7 +443,7 @@ $query = "SELECT * FROM program WHERE night=$night_id ORDER BY program ASC"; $program_query = mysql_query($query) or die (mysql_error()); -while($row = mysql_fetch_array($program_query)) { +while($row = mysql_fetch_assoc($program_query)) { $test_result = $row['result']; if (!isTestPass($test_result)) { $program = rtrim($row['program'], ": "); @@ -467,14 +467,14 @@ if($night_id<684){ $query = "SELECT unexpfail_tests FROM night WHERE id = $night_id"; $program_query = mysql_query($query) or die (mysql_error()); -$row = mysql_fetch_array($program_query); +$row = mysql_fetch_assoc($program_query); $result= $row['unexpfail_tests']; mysql_free_result($program_query); } else{ $query = "SELECT * FROM tests WHERE night=$night_id AND result=\"FAIL\""; $program_query = mysql_query($query) or die (mysql_error()); -while($row = mysql_fetch_array($program_query)){ +while($row = mysql_fetch_assoc($program_query)){ $program = rtrim($row['program'], ": "); $result .= trimTestPath($program) . "\n"; } @@ -503,7 +503,7 @@ $test_hash = array(); $query = "SELECT * FROM $table WHERE night=$id"; $program_query = mysql_query($query) or die (mysql_error()); - while ($row = mysql_fetch_array($program_query)) { + while ($row = mysql_fetch_assoc($program_query)) { $program = rtrim($row['program'], ": "); $test_hash[$program] = $row['result']; } @@ -521,7 +521,7 @@ $result = ""; $query = "SELECT * FROM $table WHERE night=$id ORDER BY program ASC"; $program_query = mysql_query($query) or die (mysql_error()); - while ($row = mysql_fetch_array($program_query)) { + while ($row = mysql_fetch_assoc($program_query)) { $program = rtrim($row['program'], ": "); if (!isset($test_hash[$program])) { $result .= trimTestPath($program) . "\n"; @@ -546,7 +546,7 @@ if($cur_id<684){ $query = "SELECT new_tests FROM night WHERE id = $cur_id"; $program_query = mysql_query($query) or die (mysql_error()); -$row = mysql_fetch_array($program_query); +$row = mysql_fetch_assoc($program_query); $result = $row['new_tests']; mysql_free_result($program_query); } else { @@ -574,7 +574,7 @@ if($cur_id<684){ $query = "SELECT removed_tests FROM night WHERE id = $cur_id"; $program_query = mysql_query($query) or die (mysql_error()); -$row = mysql_fetch_array($program_query); +$row = mysql_fetch_assoc($program_query); $result = $row['removed_test
[llvm-commits] CVS: nightlytest-serverside/NightlyTestAccept.php
Changes in directory nightlytest-serverside: NightlyTestAccept.php updated: 1.31 -> 1.32 --- Log message: testing #30 --- Diffs of the changes: (+22 -10) NightlyTestAccept.php | 32 ++-- 1 files changed, 22 insertions(+), 10 deletions(-) Index: nightlytest-serverside/NightlyTestAccept.php diff -u nightlytest-serverside/NightlyTestAccept.php:1.31 nightlytest-serverside/NightlyTestAccept.php:1.32 --- nightlytest-serverside/NightlyTestAccept.php:1.31 Thu Sep 14 10:53:34 2006 +++ nightlytest-serverside/NightlyTestAccept.phpThu Sep 14 11:47:54 2006 @@ -141,7 +141,7 @@ $query = "SELECT * FROM machine WHERE uname=\"$uname\" AND nickname=\"$nickname\" AND gcc=\"$gcc_version\""; $machine_query = mysql_query($query) or die(mysql_error()); - $row = mysql_fetch_array($machine_query); + $row = mysql_fetch_assoc($machine_query); mysql_free_result($machine_query); if($row && @@ -193,7 +193,7 @@ $query = "SELECT * FROM machine WHERE uname=\"$uname\" AND hardware=\"$hardware\" ". "AND os=\"$os\" AND name=\"$name\" AND gcc=\"$gcc_version\""; $machine_query = mysql_query($query) or die(mysql_error()); - $row = mysql_fetch_array($machine_query); + $row = mysql_fetch_assoc($machine_query); mysql_free_result($machine_query); if($row) { @@ -301,7 +301,7 @@ $query = "SELECT id FROM night WHERE machine=$machine_id AND added=\"$added\""; $machine_query = mysql_query($query) or die(mysql_error()); - $row = mysql_fetch_array($machine_query); + $row = mysql_fetch_assoc($machine_query); mysql_free_result($machine_query); if($row) { @@ -317,7 +317,7 @@ $result = array(); $query = "SELECT * FROM night WHERE machine = \"$machine_id\""; $night_query = mysql_query($query) or die(mysql_error()); - while ($row = mysql_fetch_array($night_query)) { + while ($row = mysql_fetch_assoc($night_query)) { array_push($result, $row['id']); } mysql_free_result($night_query); @@ -409,7 +409,7 @@ function UpdateCodeInfo($date, $loc, $files, $dirs) { $query = "SELECT * FROM code ORDER BY added DESC"; $code_query = mysql_query($query) or die(mysql_error()); - $row = mysql_fetch_array($code_query); + $row = mysql_fetch_assoc($code_query); mysql_free_result($code_query); if ($row && ($row['loc'] != $loc || @@ -781,7 +781,7 @@ $query = "SELECT id FROM night WHERE id<$night_id AND machine=$machine_id AND ". "buildstatus=\"OK\" ORDER BY id DESC"; $night_query = mysql_query($query) or die(mysql_error()); -$row = mysql_fetch_array($night_query); +$row = mysql_fetch_assoc($night_query); $prev_night = $row['id']; if (!isset($prev_night)) { $prev_night = $night_id; @@ -792,13 +792,11 @@ print "prev_night: $prev_night\n"; } -die; - $query = "SELECT * FROM program WHERE night=$night_id"; $program_query = mysql_query($query) or die(mysql_error()); $prog_hash_new = array(); -while ($row = mysql_fetch_array($program_query)) { +while ($row = mysql_fetch_assoc($program_query)) { $program = $row['program']; $result = $row['result']; $prog_hash_new[$program] = $result; @@ -811,7 +809,7 @@ $query = "SELECT * FROM program WHERE night=$prev_night"; $prog_hash_old = array(); -while ($row = mysql_fetch_array($program_query)) { +while ($row = mysql_fetch_assoc($program_query)) { $program = $row['program']; $result = $row['result']; $prog_hash_old[$program] = $result; @@ -822,6 +820,20 @@ print "Gathered all previous night\'s programs\n"; } +print "NEW HASH ITEMS\n"; +foreach ($prog_hash_new as $key => $value) { + print "$key => $value\n"; +} +print "\n"; + +print "OLD HASH ITEMS\n"; +foreach ($prog_hash_old as $key => $value) { + print "$key => $value\n"; +} +print "\n"; + +die; + $output_big_changes = array(); foreach ($prog_hash_new as $prog) { $prog_new = $prog_hash_new[$prog]; ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: nightlytest-serverside/NightlyTestAccept.php
Changes in directory nightlytest-serverside: NightlyTestAccept.php updated: 1.32 -> 1.33 --- Log message: testing #31 --- Diffs of the changes: (+2 -0) NightlyTestAccept.php |2 ++ 1 files changed, 2 insertions(+) Index: nightlytest-serverside/NightlyTestAccept.php diff -u nightlytest-serverside/NightlyTestAccept.php:1.32 nightlytest-serverside/NightlyTestAccept.php:1.33 --- nightlytest-serverside/NightlyTestAccept.php:1.32 Thu Sep 14 11:47:54 2006 +++ nightlytest-serverside/NightlyTestAccept.phpThu Sep 14 12:02:35 2006 @@ -808,6 +808,8 @@ } $query = "SELECT * FROM program WHERE night=$prev_night"; +$program_query = mysql_query($query) or die(mysql_error()); + $prog_hash_old = array(); while ($row = mysql_fetch_assoc($program_query)) { $program = $row['program']; ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: nightlytest-serverside/NightlyTestAccept.php
Changes in directory nightlytest-serverside: NightlyTestAccept.php updated: 1.33 -> 1.34 --- Log message: testing #32 --- Diffs of the changes: (+3 -14) NightlyTestAccept.php | 17 +++-- 1 files changed, 3 insertions(+), 14 deletions(-) Index: nightlytest-serverside/NightlyTestAccept.php diff -u nightlytest-serverside/NightlyTestAccept.php:1.33 nightlytest-serverside/NightlyTestAccept.php:1.34 --- nightlytest-serverside/NightlyTestAccept.php:1.33 Thu Sep 14 12:02:35 2006 +++ nightlytest-serverside/NightlyTestAccept.phpThu Sep 14 12:09:15 2006 @@ -822,20 +822,6 @@ print "Gathered all previous night\'s programs\n"; } -print "NEW HASH ITEMS\n"; -foreach ($prog_hash_new as $key => $value) { - print "$key => $value\n"; -} -print "\n"; - -print "OLD HASH ITEMS\n"; -foreach ($prog_hash_old as $key => $value) { - print "$key => $value\n"; -} -print "\n"; - -die; - $output_big_changes = array(); foreach ($prog_hash_new as $prog) { $prog_new = $prog_hash_new[$prog]; @@ -873,6 +859,7 @@ } $rounded_perc = sprintf("%1.2f", $perc); +print "$prog: $measure: $rounded_perc\% ($value_old => $value_new)\n"; array_push($changes, "$prog: $rounded_perc\% ($value_old => $value_new)\n"); $output_big_changes[$measure] = $changes; } @@ -883,6 +870,8 @@ print "Determined measures\n"; } +die; + /*** * * Determining changes in new tests and old tests ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: nightlytest-serverside/NightlyTestAccept.php
Changes in directory nightlytest-serverside: NightlyTestAccept.php updated: 1.34 -> 1.35 --- Log message: testing #33 --- Diffs of the changes: (+2 -0) NightlyTestAccept.php |2 ++ 1 files changed, 2 insertions(+) Index: nightlytest-serverside/NightlyTestAccept.php diff -u nightlytest-serverside/NightlyTestAccept.php:1.34 nightlytest-serverside/NightlyTestAccept.php:1.35 --- nightlytest-serverside/NightlyTestAccept.php:1.34 Thu Sep 14 12:09:15 2006 +++ nightlytest-serverside/NightlyTestAccept.phpThu Sep 14 12:15:21 2006 @@ -827,6 +827,8 @@ $prog_new = $prog_hash_new[$prog]; $prog_old = $prog_hash_old[$prog]; +print "$prog\n$prog_new\n$prog_old\n"; + // get data from server $vals_new = split(",", $prog_new); $vals_old = split(",", $prog_old); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: nightlytest-serverside/NightlyTestAccept.php
Changes in directory nightlytest-serverside: NightlyTestAccept.php updated: 1.35 -> 1.36 --- Log message: testing #34 --- Diffs of the changes: (+1 -2) NightlyTestAccept.php |3 +-- 1 files changed, 1 insertion(+), 2 deletions(-) Index: nightlytest-serverside/NightlyTestAccept.php diff -u nightlytest-serverside/NightlyTestAccept.php:1.35 nightlytest-serverside/NightlyTestAccept.php:1.36 --- nightlytest-serverside/NightlyTestAccept.php:1.35 Thu Sep 14 12:15:21 2006 +++ nightlytest-serverside/NightlyTestAccept.phpThu Sep 14 12:22:49 2006 @@ -823,8 +823,7 @@ } $output_big_changes = array(); -foreach ($prog_hash_new as $prog) { - $prog_new = $prog_hash_new[$prog]; +foreach ($prog_hash_new as $prog => $prog_new) { $prog_old = $prog_hash_old[$prog]; print "$prog\n$prog_new\n$prog_old\n"; ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: nightlytest-serverside/NightlyTestAccept.php
Changes in directory nightlytest-serverside: NightlyTestAccept.php updated: 1.36 -> 1.37 --- Log message: testing #35 --- Diffs of the changes: (+0 -2) NightlyTestAccept.php |2 -- 1 files changed, 2 deletions(-) Index: nightlytest-serverside/NightlyTestAccept.php diff -u nightlytest-serverside/NightlyTestAccept.php:1.36 nightlytest-serverside/NightlyTestAccept.php:1.37 --- nightlytest-serverside/NightlyTestAccept.php:1.36 Thu Sep 14 12:22:49 2006 +++ nightlytest-serverside/NightlyTestAccept.phpThu Sep 14 12:28:39 2006 @@ -826,8 +826,6 @@ foreach ($prog_hash_new as $prog => $prog_new) { $prog_old = $prog_hash_old[$prog]; -print "$prog\n$prog_new\n$prog_old\n"; - // get data from server $vals_new = split(",", $prog_new); $vals_old = split(",", $prog_old); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: nightlytest-serverside/NightlyTestAccept.php
Changes in directory nightlytest-serverside: NightlyTestAccept.php updated: 1.37 -> 1.38 --- Log message: testing #36 --- Diffs of the changes: (+1 -1) NightlyTestAccept.php |2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: nightlytest-serverside/NightlyTestAccept.php diff -u nightlytest-serverside/NightlyTestAccept.php:1.37 nightlytest-serverside/NightlyTestAccept.php:1.38 --- nightlytest-serverside/NightlyTestAccept.php:1.37 Thu Sep 14 12:28:39 2006 +++ nightlytest-serverside/NightlyTestAccept.phpThu Sep 14 12:31:24 2006 @@ -850,7 +850,7 @@ $perc = ($diff / $value_old) * 100; } -if ($perc > 5 || $perc < -5) { +if (true || $perc > 5 || $perc < -5) { $changes = $output_big_changes[$measure]; if (!isset($changes)) { ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: nightlytest-serverside/NightlyTestAccept.php
Changes in directory nightlytest-serverside: NightlyTestAccept.php updated: 1.38 -> 1.39 --- Log message: testing #37 --- Diffs of the changes: (+2 -3) NightlyTestAccept.php |5 ++--- 1 files changed, 2 insertions(+), 3 deletions(-) Index: nightlytest-serverside/NightlyTestAccept.php diff -u nightlytest-serverside/NightlyTestAccept.php:1.38 nightlytest-serverside/NightlyTestAccept.php:1.39 --- nightlytest-serverside/NightlyTestAccept.php:1.38 Thu Sep 14 12:31:24 2006 +++ nightlytest-serverside/NightlyTestAccept.phpThu Sep 14 12:34:26 2006 @@ -858,7 +858,6 @@ } $rounded_perc = sprintf("%1.2f", $perc); -print "$prog: $measure: $rounded_perc\% ($value_old => $value_new)\n"; array_push($changes, "$prog: $rounded_perc\% ($value_old => $value_new)\n"); $output_big_changes[$measure] = $changes; } @@ -869,8 +868,6 @@ print "Determined measures\n"; } -die; - /*** * * Determining changes in new tests and old tests @@ -882,6 +879,8 @@ $passing = getFixedTests($night_id, $prev_night); $failing = getBrokenTests($night_id, $prev_night); +die; + if ($print_debug) { print "Determined changes in new tests and old tests\n"; } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: nightlytest-serverside/NightlyTestAccept.php
Changes in directory nightlytest-serverside: NightlyTestAccept.php updated: 1.39 -> 1.40 --- Log message: testing #38 --- Diffs of the changes: (+2 -5) NightlyTestAccept.php |7 ++- 1 files changed, 2 insertions(+), 5 deletions(-) Index: nightlytest-serverside/NightlyTestAccept.php diff -u nightlytest-serverside/NightlyTestAccept.php:1.39 nightlytest-serverside/NightlyTestAccept.php:1.40 --- nightlytest-serverside/NightlyTestAccept.php:1.39 Thu Sep 14 12:34:26 2006 +++ nightlytest-serverside/NightlyTestAccept.phpThu Sep 14 12:37:29 2006 @@ -850,7 +850,7 @@ $perc = ($diff / $value_old) * 100; } -if (true || $perc > 5 || $perc < -5) { +if ($perc > 5 || $perc < -5) { $changes = $output_big_changes[$measure]; if (!isset($changes)) { @@ -879,8 +879,6 @@ $passing = getFixedTests($night_id, $prev_night); $failing = getBrokenTests($night_id, $prev_night); -die; - if ($print_debug) { print "Determined changes in new tests and old tests\n"; } @@ -953,8 +951,7 @@ chdir("$curr/machines"); if (!file_exists("$machine_id")) { -mkdir("$machine_id", 777); - + mkdir("$machine_id", 777); } chdir("$curr/machines/$machine_id"); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: nightlytest-serverside/NightlyTestAccept.php
Changes in directory nightlytest-serverside: NightlyTestAccept.php updated: 1.40 -> 1.41 --- Log message: testing #39 --- Diffs of the changes: (+2 -3) NightlyTestAccept.php |5 ++--- 1 files changed, 2 insertions(+), 3 deletions(-) Index: nightlytest-serverside/NightlyTestAccept.php diff -u nightlytest-serverside/NightlyTestAccept.php:1.40 nightlytest-serverside/NightlyTestAccept.php:1.41 --- nightlytest-serverside/NightlyTestAccept.php:1.40 Thu Sep 14 12:37:29 2006 +++ nightlytest-serverside/NightlyTestAccept.phpThu Sep 14 12:48:46 2006 @@ -948,18 +948,17 @@ if (!file_exists('machines')) { mkdir('machines', 777); } -chdir("$curr/machines"); +chdir("$cwd/machines"); if (!file_exists("$machine_id")) { mkdir("$machine_id", 777); } -chdir("$curr/machines/$machine_id"); +chdir("$cwd/machines/$machine_id"); WriteFile("$db_date-Build-Log.txt", $build_log); WriteFile("$db_date-O-files.txt", $o_file_size); WriteFile("$db_date-A-files.txt", $a_file_size); - $sentdata=""; foreach ($_GET as $key => $value) { $sentdata .= "$key => $value}\n"; ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: nightlytest-serverside/NightlyTestAccept.php
Changes in directory nightlytest-serverside: NightlyTestAccept.php updated: 1.41 -> 1.42 --- Log message: testing #40 --- Diffs of the changes: (+3 -4) NightlyTestAccept.php |7 +++ 1 files changed, 3 insertions(+), 4 deletions(-) Index: nightlytest-serverside/NightlyTestAccept.php diff -u nightlytest-serverside/NightlyTestAccept.php:1.41 nightlytest-serverside/NightlyTestAccept.php:1.42 --- nightlytest-serverside/NightlyTestAccept.php:1.41 Thu Sep 14 12:48:46 2006 +++ nightlytest-serverside/NightlyTestAccept.phpThu Sep 14 13:18:21 2006 @@ -15,8 +15,8 @@ ***/ print "content-type: text/text\n\n"; -$print_debug = 1; -$print_env = 1; +$print_debug = 0; +$print_env = 0; if ($print_debug) { @@ -934,8 +934,7 @@ "machines/$machine_id/$db_date-Build-Log.txt\n"; } -$email_addr = "[EMAIL PROTECTED]"; -//$email_addr = "[EMAIL PROTECTED]"; +$email_addr = "[EMAIL PROTECTED]"; `echo "$email" | mail -s '$nickname $hardware nightly tester results' $email_addr`; /*** ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Transforms/IPO/GlobalOpt.cpp SimplifyLibCalls.cpp
Changes in directory llvm/lib/Transforms/IPO: GlobalOpt.cpp updated: 1.63 -> 1.64 SimplifyLibCalls.cpp updated: 1.68 -> 1.69 --- Log message: Adding dllimport, dllexport and external weak linkage types. DLL* linkages got full (I hope) codegeneration support in C & both x86 assembler backends. External weak linkage added for future use, we don't provide any codegeneration, etc. support for it. --- Diffs of the changes: (+6 -4) GlobalOpt.cpp|4 ++-- SimplifyLibCalls.cpp |6 -- 2 files changed, 6 insertions(+), 4 deletions(-) Index: llvm/lib/Transforms/IPO/GlobalOpt.cpp diff -u llvm/lib/Transforms/IPO/GlobalOpt.cpp:1.63 llvm/lib/Transforms/IPO/GlobalOpt.cpp:1.64 --- llvm/lib/Transforms/IPO/GlobalOpt.cpp:1.63 Sun Aug 27 17:42:52 2006 +++ llvm/lib/Transforms/IPO/GlobalOpt.cpp Thu Sep 14 13:23:27 2006 @@ -1245,7 +1245,7 @@ static bool isSimpleEnoughPointerToCommit(Constant *C) { if (GlobalVariable *GV = dyn_cast(C)) { if (!GV->hasExternalLinkage() && !GV->hasInternalLinkage()) - return false; // do not allow weak/linkonce linkage. + return false; // do not allow weak/linkonce/dllimport/dllexport linkage. return !GV->isExternal(); // reject external globals. } if (ConstantExpr *CE = dyn_cast(C)) @@ -1254,7 +1254,7 @@ isa(CE->getOperand(0))) { GlobalVariable *GV = cast(CE->getOperand(0)); if (!GV->hasExternalLinkage() && !GV->hasInternalLinkage()) -return false; // do not allow weak/linkonce linkage. +return false; // do not allow weak/linkonce/dllimport/dllexport linkage. return GV->hasInitializer() && ConstantFoldLoadThroughGEPConstantExpr(GV->getInitializer(), CE); } Index: llvm/lib/Transforms/IPO/SimplifyLibCalls.cpp diff -u llvm/lib/Transforms/IPO/SimplifyLibCalls.cpp:1.68 llvm/lib/Transforms/IPO/SimplifyLibCalls.cpp:1.69 --- llvm/lib/Transforms/IPO/SimplifyLibCalls.cpp:1.68 Sun Aug 27 17:42:52 2006 +++ llvm/lib/Transforms/IPO/SimplifyLibCalls.cppThu Sep 14 13:23:27 2006 @@ -178,8 +178,10 @@ // All the "well-known" functions are external and have external linkage // because they live in a runtime library somewhere and were (probably) // not compiled by LLVM. So, we only act on external functions that -// have external linkage and non-empty uses. -if (!FI->isExternal() || !FI->hasExternalLinkage() || FI->use_empty()) +// have external or dllimport linkage and non-empty uses. +if (!FI->isExternal() || +!(FI->hasExternalLinkage() || FI->hasDLLImportLinkage()) || +FI->use_empty()) continue; // Get the optimization class that pertains to this function ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Bytecode/Reader/Reader.cpp
Changes in directory llvm/lib/Bytecode/Reader: Reader.cpp updated: 1.197 -> 1.198 --- Log message: Adding dllimport, dllexport and external weak linkage types. DLL* linkages got full (I hope) codegeneration support in C & both x86 assembler backends. External weak linkage added for future use, we don't provide any codegeneration, etc. support for it. --- Diffs of the changes: (+14 -0) Reader.cpp | 14 ++ 1 files changed, 14 insertions(+) Index: llvm/lib/Bytecode/Reader/Reader.cpp diff -u llvm/lib/Bytecode/Reader/Reader.cpp:1.197 llvm/lib/Bytecode/Reader/Reader.cpp:1.198 --- llvm/lib/Bytecode/Reader/Reader.cpp:1.197 Fri Sep 1 15:35:17 2006 +++ llvm/lib/Bytecode/Reader/Reader.cpp Thu Sep 14 13:23:26 2006 @@ -1791,6 +1791,9 @@ case 2: Linkage = GlobalValue::AppendingLinkage; break; case 3: Linkage = GlobalValue::InternalLinkage; break; case 4: Linkage = GlobalValue::LinkOnceLinkage; break; + case 5: Linkage = GlobalValue::DLLImportLinkage; break; + case 6: Linkage = GlobalValue::DLLExportLinkage; break; + case 7: Linkage = GlobalValue::ExternalWeakLinkage; break; default: error("Invalid linkage type for Function."); Linkage = GlobalValue::InternalLinkage; @@ -2047,6 +2050,9 @@ case 2: Linkage = GlobalValue::AppendingLinkage; break; case 3: Linkage = GlobalValue::InternalLinkage; break; case 4: Linkage = GlobalValue::LinkOnceLinkage; break; +case 5: Linkage = GlobalValue::DLLImportLinkage; break; +case 6: Linkage = GlobalValue::DLLExportLinkage; break; +case 7: Linkage = GlobalValue::ExternalWeakLinkage; break; default: error("Unknown linkage type: " + utostr(LinkageID)); Linkage = GlobalValue::InternalLinkage; @@ -2129,6 +2135,14 @@ if (ExtWord & (1 << 10)) // Has a section ID. SectionID[Func] = read_vbr_uint(); + + // Parse external declaration linkage + switch ((ExtWord >> 11) & 3) { + case 0: break; + case 1: Func->setLinkage(Function::DLLImportLinkage); break; + case 2: Func->setLinkage(Function::ExternalWeakLinkage); break; + default: assert(0 && "Unsupported external linkage"); + } } Func->setCallingConv(CC-1); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Bytecode/Writer/Writer.cpp
Changes in directory llvm/lib/Bytecode/Writer: Writer.cpp updated: 1.123 -> 1.124 --- Log message: Adding dllimport, dllexport and external weak linkage types. DLL* linkages got full (I hope) codegeneration support in C & both x86 assembler backends. External weak linkage added for future use, we don't provide any codegeneration, etc. support for it. --- Diffs of the changes: (+26 -9) Writer.cpp | 35 ++- 1 files changed, 26 insertions(+), 9 deletions(-) Index: llvm/lib/Bytecode/Writer/Writer.cpp diff -u llvm/lib/Bytecode/Writer/Writer.cpp:1.123 llvm/lib/Bytecode/Writer/Writer.cpp:1.124 --- llvm/lib/Bytecode/Writer/Writer.cpp:1.123 Fri Jul 28 17:07:54 2006 +++ llvm/lib/Bytecode/Writer/Writer.cpp Thu Sep 14 13:23:26 2006 @@ -938,11 +938,14 @@ static unsigned getEncodedLinkage(const GlobalValue *GV) { switch (GV->getLinkage()) { default: assert(0 && "Invalid linkage!"); - case GlobalValue::ExternalLinkage: return 0; - case GlobalValue::WeakLinkage: return 1; - case GlobalValue::AppendingLinkage: return 2; - case GlobalValue::InternalLinkage: return 3; - case GlobalValue::LinkOnceLinkage: return 4; + case GlobalValue::ExternalLinkage: return 0; + case GlobalValue::WeakLinkage: return 1; + case GlobalValue::AppendingLinkage:return 2; + case GlobalValue::InternalLinkage: return 3; + case GlobalValue::LinkOnceLinkage: return 4; + case GlobalValue::DLLImportLinkage:return 5; + case GlobalValue::DLLExportLinkage:return 6; + case GlobalValue::ExternalWeakLinkage: return 7; } } @@ -973,7 +976,7 @@ unsigned oSlot = ((unsigned)Slot << 5) | (getEncodedLinkage(I) << 2) | (I->hasInitializer() << 1) | (unsigned)I->isConstant(); output_vbr(oSlot); -} else { +} else { unsigned oSlot = ((unsigned)Slot << 5) | (3 << 2) | (0 << 1) | (unsigned)I->isConstant(); output_vbr(oSlot); @@ -1018,16 +1021,30 @@ if (I->isExternal()) // If external, we don't have an FunctionInfo block. ID |= 1 << 4; -if (I->getAlignment() || I->hasSection() || (CC & ~15) != 0) +if (I->getAlignment() || I->hasSection() || (CC & ~15) != 0 || +(I->isExternal() && I->hasDLLImportLinkage()) || +(I->isExternal() && I->hasExternalWeakLinkage()) + ) ID |= 1 << 31; // Do we need an extension word? output_vbr(ID); if (ID & (1 << 31)) { // Extension byte: bits 0-4 = alignment, bits 5-9 = top nibble of calling - // convention, bit 10 = hasSectionID. + // convention, bit 10 = hasSectionID., bits 11-12 = external linkage type + unsigned extLinkage = 0; + + if (I->isExternal()) { +if (I->hasDLLImportLinkage()) { + extLinkage = 1; +} else if (I->hasExternalWeakLinkage()) { + extLinkage = 2; +} + } + ID = (Log2_32(I->getAlignment())+1) | ((CC >> 4) << 5) | - (I->hasSection() << 10); +(I->hasSection() << 10) | +((extLinkage & 3) << 11); output_vbr(ID); // Give section names unique ID's. ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/CBackend/Writer.cpp
Changes in directory llvm/lib/Target/CBackend: Writer.cpp updated: 1.269 -> 1.270 --- Log message: Adding dllimport, dllexport and external weak linkage types. DLL* linkages got full (I hope) codegeneration support in C & both x86 assembler backends. External weak linkage added for future use, we don't provide any codegeneration, etc. support for it. --- Diffs of the changes: (+12 -1) Writer.cpp | 13 - 1 files changed, 12 insertions(+), 1 deletion(-) Index: llvm/lib/Target/CBackend/Writer.cpp diff -u llvm/lib/Target/CBackend/Writer.cpp:1.269 llvm/lib/Target/CBackend/Writer.cpp:1.270 --- llvm/lib/Target/CBackend/Writer.cpp:1.269 Sat Sep 9 01:17:12 2006 +++ llvm/lib/Target/CBackend/Writer.cpp Thu Sep 14 13:23:26 2006 @@ -1054,7 +1054,11 @@ Out << "extern "; printType(Out, I->getType()->getElementType(), Mang->getValueName(I)); Out << ";\n"; - } + } else if (I->hasDLLImportLinkage()) { +Out << "__declspec(dllimport) "; +printType(Out, I->getType()->getElementType(), Mang->getValueName(I)); +Out << ";\n"; + } } } @@ -1118,6 +1122,11 @@ if (I->hasInternalLinkage()) Out << "static "; +else if (I->hasDLLImportLinkage()) + Out << "__declspec(dllimport) "; +else if (I->hasDLLExportLinkage()) + Out << "__declspec(dllexport) "; + printType(Out, I->getType()->getElementType(), Mang->getValueName(I)); if (I->hasLinkOnceLinkage()) Out << " __attribute__((common))"; @@ -1267,6 +1276,8 @@ bool isCStructReturn = F->getCallingConv() == CallingConv::CSRet; if (F->hasInternalLinkage()) Out << "static "; + if (F->hasDLLImportLinkage()) Out << "__declspec(dllimport) "; + if (F->hasDLLExportLinkage()) Out << "__declspec(dllexport) "; // Loop over the arguments, printing them... const FunctionType *FT = cast(F->getFunctionType()); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Linker/LinkArchives.cpp LinkModules.cpp
Changes in directory llvm/lib/Linker: LinkArchives.cpp updated: 1.50 -> 1.51 LinkModules.cpp updated: 1.116 -> 1.117 --- Log message: Adding dllimport, dllexport and external weak linkage types. DLL* linkages got full (I hope) codegeneration support in C & both x86 assembler backends. External weak linkage added for future use, we don't provide any codegeneration, etc. support for it. --- Diffs of the changes: (+39 -13) LinkArchives.cpp | 10 -- LinkModules.cpp | 42 +++--- 2 files changed, 39 insertions(+), 13 deletions(-) Index: llvm/lib/Linker/LinkArchives.cpp diff -u llvm/lib/Linker/LinkArchives.cpp:1.50 llvm/lib/Linker/LinkArchives.cpp:1.51 --- llvm/lib/Linker/LinkArchives.cpp:1.50 Fri Jul 7 15:56:50 2006 +++ llvm/lib/Linker/LinkArchives.cppThu Sep 14 13:23:26 2006 @@ -65,16 +65,22 @@ if (I->hasName()) { if (I->isExternal()) UndefinedSymbols.insert(I->getName()); - else if (!I->hasInternalLinkage()) + else if (!I->hasInternalLinkage()) { +assert(!I->hasDLLImportLinkage() + && "Found dllimported non-external symbol!"); DefinedSymbols.insert(I->getName()); + } } for (Module::global_iterator I = M->global_begin(), E = M->global_end(); I != E; ++I) if (I->hasName()) { if (I->isExternal()) UndefinedSymbols.insert(I->getName()); - else if (!I->hasInternalLinkage()) + else if (!I->hasInternalLinkage()) { +assert(!I->hasDLLImportLinkage() + && "Found dllimported non-external symbol!"); DefinedSymbols.insert(I->getName()); + } } // Prune out any defined symbols from the undefined symbols set... Index: llvm/lib/Linker/LinkModules.cpp diff -u llvm/lib/Linker/LinkModules.cpp:1.116 llvm/lib/Linker/LinkModules.cpp:1.117 --- llvm/lib/Linker/LinkModules.cpp:1.116 Fri Jul 14 17:21:31 2006 +++ llvm/lib/Linker/LinkModules.cpp Thu Sep 14 13:23:26 2006 @@ -359,9 +359,16 @@ } else if (Src->isExternal()) { // If Src is external or if both Src & Drc are external.. Just link the // external globals, we aren't adding anything. -LinkFromSrc = false; -LT = Dest->getLinkage(); - } else if (Dest->isExternal()) { +if (Src->hasDLLImportLinkage()) { + if (Dest->isExternal()) { +LinkFromSrc = true; +LT = Src->getLinkage(); + } +} else { + LinkFromSrc = false; + LT = Dest->getLinkage(); +} + } else if (Dest->isExternal() && !Dest->hasDLLImportLinkage()) { // If Dest is external but Src is not: LinkFromSrc = true; LT = Src->getLinkage(); @@ -372,7 +379,7 @@ LinkFromSrc = true; // Special cased. LT = Src->getLinkage(); } else if (Src->hasWeakLinkage() || Src->hasLinkOnceLinkage()) { -// At this point we know that Dest has LinkOnce, External or Weak linkage. +// At this point we know that Dest has LinkOnce, External, Weak, DLL* linkage. if (Dest->hasLinkOnceLinkage() && Src->hasWeakLinkage()) { LinkFromSrc = true; LT = Src->getLinkage(); @@ -381,11 +388,16 @@ LT = Dest->getLinkage(); } } else if (Dest->hasWeakLinkage() || Dest->hasLinkOnceLinkage()) { -// At this point we know that Src has External linkage. +// At this point we know that Src has External or DLL* linkage. LinkFromSrc = true; LT = GlobalValue::ExternalLinkage; } else { -assert(Dest->hasExternalLinkage() && Src->hasExternalLinkage() && +assert((Dest->hasExternalLinkage() || +Dest->hasDLLImportLinkage() || +Dest->hasDLLExportLinkage()) && + (Src->hasExternalLinkage() || +Src->hasDLLImportLinkage() || +Src->hasDLLExportLinkage()) && "Unexpected linkage type!"); return Error(Err, "Linking globals named '" + Src->getName() + "': symbol multiply defined!"); @@ -425,7 +437,8 @@ if (DGV && DGV->hasInternalLinkage()) DGV = 0; -assert(SGV->hasInitializer() || SGV->hasExternalLinkage() && +assert(SGV->hasInitializer() || + SGV->hasExternalLinkage() || SGV->hasDLLImportLinkage() && "Global must either be external or have an initializer!"); GlobalValue::LinkageTypes NewLinkage; @@ -565,7 +578,7 @@ // static bool LinkFunctionProtos(Module *Dest, const Module *Src, std::map &ValueMap, - std::map &GlobalsByName, + std::map &GlobalsByName, std::string *Err) { SymbolTable *ST = (SymbolTable*)&Dest->getSymbolTable(); @@ -604,12 +617,19 @@ } else if (SF->isExternal()) { // If SF is external or if both SF & DF are external.. Just link the // external functions, we aren't adding anything. - ValueMap.insert(std::make_pair(SF, DF)); -} else if (DF->isExternal()) { // I
[llvm-commits] CVS: llvm/lib/AsmParser/Lexer.l Lexer.l.cvs llvmAsmParser.y llvmAsmParser.y.cvs
Changes in directory llvm/lib/AsmParser: Lexer.l updated: 1.75 -> 1.76 Lexer.l.cvs updated: 1.5 -> 1.6 llvmAsmParser.y updated: 1.258 -> 1.259 llvmAsmParser.y.cvs updated: 1.10 -> 1.11 --- Log message: Adding dllimport, dllexport and external weak linkage types. DLL* linkages got full (I hope) codegeneration support in C & both x86 assembler backends. External weak linkage added for future use, we don't provide any codegeneration, etc. support for it. --- Diffs of the changes: (+106 -30) Lexer.l |3 ++ Lexer.l.cvs |3 ++ llvmAsmParser.y | 65 llvmAsmParser.y.cvs | 65 4 files changed, 106 insertions(+), 30 deletions(-) Index: llvm/lib/AsmParser/Lexer.l diff -u llvm/lib/AsmParser/Lexer.l:1.75 llvm/lib/AsmParser/Lexer.l:1.76 --- llvm/lib/AsmParser/Lexer.l:1.75 Fri Aug 18 03:43:06 2006 +++ llvm/lib/AsmParser/Lexer.l Thu Sep 14 13:23:26 2006 @@ -191,6 +191,9 @@ linkonce{ return LINKONCE; } weak{ return WEAK; } appending { return APPENDING; } +dllimport { return DLLIMPORT; } +dllexport { return DLLEXPORT; } +extern_weak { return EXTERN_WEAK; } uninitialized { return EXTERNAL; }/* Deprecated, turn into external */ external{ return EXTERNAL; } implementation { return IMPLEMENTATION; } Index: llvm/lib/AsmParser/Lexer.l.cvs diff -u llvm/lib/AsmParser/Lexer.l.cvs:1.5 llvm/lib/AsmParser/Lexer.l.cvs:1.6 --- llvm/lib/AsmParser/Lexer.l.cvs:1.5 Fri Aug 18 03:43:06 2006 +++ llvm/lib/AsmParser/Lexer.l.cvs Thu Sep 14 13:23:26 2006 @@ -191,6 +191,9 @@ linkonce{ return LINKONCE; } weak{ return WEAK; } appending { return APPENDING; } +dllimport { return DLLIMPORT; } +dllexport { return DLLEXPORT; } +extern_weak { return EXTERN_WEAK; } uninitialized { return EXTERNAL; }/* Deprecated, turn into external */ external{ return EXTERNAL; } implementation { return IMPLEMENTATION; } Index: llvm/lib/AsmParser/llvmAsmParser.y diff -u llvm/lib/AsmParser/llvmAsmParser.y:1.258 llvm/lib/AsmParser/llvmAsmParser.y:1.259 --- llvm/lib/AsmParser/llvmAsmParser.y:1.258Fri Aug 18 12:34:24 2006 +++ llvm/lib/AsmParser/llvmAsmParser.y Thu Sep 14 13:23:26 2006 @@ -150,9 +150,10 @@ static struct PerFunctionInfo { Function *CurrentFunction; // Pointer to current function being created - std::map Values; // Keep track of #'d definitions + std::map Values; // Keep track of #'d definitions std::map LateResolveValues; - bool isDeclare;// Is this function a forward declararation? + bool isDeclare;// Is this function a forward declararation? + GlobalValue::LinkageTypes Linkage; // Linkage for forward declaration. /// BBForwardRefs - When we see forward references to basic blocks, keep /// track of them here. @@ -163,6 +164,7 @@ inline PerFunctionInfo() { CurrentFunction = 0; isDeclare = false; +Linkage = GlobalValue::ExternalLinkage; } inline void FunctionStart(Function *M) { @@ -184,6 +186,7 @@ Values.clear(); // Clear out function local definitions CurrentFunction = 0; isDeclare = false; +Linkage = GlobalValue::ExternalLinkage; } } CurFun; // Info for the current function... @@ -998,7 +1001,8 @@ %token IMPLEMENTATION ZEROINITIALIZER TRUETOK FALSETOK BEGINTOK ENDTOK %token DECLARE GLOBAL CONSTANT SECTION VOLATILE -%token TO DOTDOTDOT NULL_TOK UNDEF CONST INTERNAL LINKONCE WEAK APPENDING +%token TO DOTDOTDOT NULL_TOK UNDEF CONST INTERNAL LINKONCE WEAK APPENDING +%token DLLIMPORT DLLEXPORT EXTERN_WEAK %token OPAQUE NOT EXTERNAL TARGET TRIPLE ENDIAN POINTERSIZE LITTLE BIG ALIGN %token DEPLIBS CALL TAIL ASM_TOK MODULE SIDEEFFECT %token CC_TOK CCC_TOK CSRETCC_TOK FASTCC_TOK COLDCC_TOK @@ -1070,11 +1074,14 @@ CHECK_FOR_ERROR }; -OptLinkage : INTERNAL { $$ = GlobalValue::InternalLinkage; } | - LINKONCE { $$ = GlobalValue::LinkOnceLinkage; } | - WEAK { $$ = GlobalValue::WeakLinkage; } | - APPENDING { $$ = GlobalValue::AppendingLinkage; } | - /*empty*/ { $$ = GlobalValue::ExternalLinkage; }; +OptLinkage : INTERNAL{ $$ = GlobalValue::InternalLinkage; } | + LINKONCE{ $$ = GlobalValue::LinkOnceLinkage; } | + WEAK{ $$ = GlobalValue::WeakLinkage; } | + APPENDING { $$ = GlobalValue::AppendingLinkage; } | + DLLIMPORT { $$ = GlobalValue::DLLImportLinkage; } | + DLLEXPORT { $$ = GlobalValue::DLLExportLinkage; } | + EXTERN_WEAK { $$ = GlobalValue::ExternalWeakLinkage; } | + /*empty*/ { $$ = GlobalValue::ExternalLinkage; }; OptCallingConv : /*empty*/ { $$ = CallingConv::C; } | CCC_TOK{ $$ = CallingConv::C; } | @@ -1728,8 +1735,24 @@ CHECK_FOR
[llvm-commits] CVS: llvm/lib/Target/IA64/IA64AsmPrinter.cpp
Changes in directory llvm/lib/Target/IA64: IA64AsmPrinter.cpp updated: 1.35 -> 1.36 --- Log message: Adding dllimport, dllexport and external weak linkage types. DLL* linkages got full (I hope) codegeneration support in C & both x86 assembler backends. External weak linkage added for future use, we don't provide any codegeneration, etc. support for it. --- Diffs of the changes: (+8 -0) IA64AsmPrinter.cpp |8 1 files changed, 8 insertions(+) Index: llvm/lib/Target/IA64/IA64AsmPrinter.cpp diff -u llvm/lib/Target/IA64/IA64AsmPrinter.cpp:1.35 llvm/lib/Target/IA64/IA64AsmPrinter.cpp:1.36 --- llvm/lib/Target/IA64/IA64AsmPrinter.cpp:1.35Thu Sep 7 17:06:40 2006 +++ llvm/lib/Target/IA64/IA64AsmPrinter.cpp Thu Sep 14 13:23:27 2006 @@ -306,6 +306,14 @@ case GlobalValue::GhostLinkage: std::cerr << "GhostLinkage cannot appear in IA64AsmPrinter!\n"; abort(); + case GlobalValue::DLLImportLinkage: +std::cerr << "DLLImport linkage is not supported by this target!\n"; +abort(); + case GlobalValue::DLLExportLinkage: +std::cerr << "DLLExport linkage is not supported by this target!\n"; +abort(); + default: +assert(0 && "Unknown linkage type!"); } EmitAlignment(Align); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/include/llvm/GlobalValue.h
Changes in directory llvm/include/llvm: GlobalValue.h updated: 1.27 -> 1.28 --- Log message: Adding dllimport, dllexport and external weak linkage types. DLL* linkages got full (I hope) codegeneration support in C & both x86 assembler backends. External weak linkage added for future use, we don't provide any codegeneration, etc. support for it. --- Diffs of the changes: (+17 -11) GlobalValue.h | 28 +--- 1 files changed, 17 insertions(+), 11 deletions(-) Index: llvm/include/llvm/GlobalValue.h diff -u llvm/include/llvm/GlobalValue.h:1.27 llvm/include/llvm/GlobalValue.h:1.28 --- llvm/include/llvm/GlobalValue.h:1.27Fri Nov 11 18:09:49 2005 +++ llvm/include/llvm/GlobalValue.h Thu Sep 14 13:23:26 2006 @@ -28,12 +28,15 @@ GlobalValue(const GlobalValue &); // do not implement public: enum LinkageTypes { -ExternalLinkage, /// Externally visible function -LinkOnceLinkage, /// Keep one copy of named function when linking (inline) -WeakLinkage, /// Keep one copy of named function when linking (weak) -AppendingLinkage, /// Special purpose, only applies to global arrays -InternalLinkage, /// Rename collisions when linking (static functions) -GhostLinkage /// Stand-in functions for streaming fns from BC files +ExternalLinkage, /// Externally visible function +LinkOnceLinkage, /// Keep one copy of named function when linking (inline) +WeakLinkage, /// Keep one copy of named function when linking (weak) +AppendingLinkage,/// Special purpose, only applies to global arrays +InternalLinkage, /// Rename collisions when linking (static functions) +DLLImportLinkage,/// Function to be imported from DLL +DLLExportLinkage,/// Function to be accessible from DLL +ExternalWeakLinkage, /// TBD: ExternalWeak linkage description +GhostLinkage /// Stand-in functions for streaming fns from BC files }; protected: GlobalValue(const Type *Ty, ValueTy vty, Use *Ops, unsigned NumOps, @@ -72,11 +75,14 @@ return reinterpret_cast(User::getType()); } - bool hasExternalLinkage() const { return Linkage == ExternalLinkage; } - bool hasLinkOnceLinkage() const { return Linkage == LinkOnceLinkage; } - bool hasWeakLinkage() const { return Linkage == WeakLinkage; } - bool hasAppendingLinkage() const { return Linkage == AppendingLinkage; } - bool hasInternalLinkage() const { return Linkage == InternalLinkage; } + bool hasExternalLinkage() const { return Linkage == ExternalLinkage; } + bool hasLinkOnceLinkage() const { return Linkage == LinkOnceLinkage; } + bool hasWeakLinkage() const { return Linkage == WeakLinkage; } + bool hasAppendingLinkage() const { return Linkage == AppendingLinkage; } + bool hasInternalLinkage() const { return Linkage == InternalLinkage; } + bool hasDLLImportLinkage() const { return Linkage == DLLImportLinkage; } + bool hasDLLExportLinkage() const { return Linkage == DLLExportLinkage; } + bool hasExternalWeakLinkage() const { return Linkage == ExternalWeakLinkage; } void setLinkage(LinkageTypes LT) { Linkage = LT; } LinkageTypes getLinkage() const { return Linkage; } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp
Changes in directory llvm/lib/Target/Sparc: SparcAsmPrinter.cpp updated: 1.68 -> 1.69 --- Log message: Adding dllimport, dllexport and external weak linkage types. DLL* linkages got full (I hope) codegeneration support in C & both x86 assembler backends. External weak linkage added for future use, we don't provide any codegeneration, etc. support for it. --- Diffs of the changes: (+8 -0) SparcAsmPrinter.cpp |8 1 files changed, 8 insertions(+) Index: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp diff -u llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.68 llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.69 --- llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.68 Thu Sep 7 17:06:40 2006 +++ llvm/lib/Target/Sparc/SparcAsmPrinter.cpp Thu Sep 14 13:23:27 2006 @@ -271,6 +271,14 @@ case GlobalValue::GhostLinkage: std::cerr << "Should not have any unmaterialized functions!\n"; abort(); +case GlobalValue::DLLImportLinkage: + std::cerr << "DLLImport linkage is not supported by this target!\n"; + abort(); +case GlobalValue::DLLExportLinkage: + std::cerr << "DLLExport linkage is not supported by this target!\n"; + abort(); +default: + assert(0 && "Unknown linkage type!"); } O << "\t.align " << Align << "\n"; ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/ExecutionEngine/ExecutionEngine.cpp
Changes in directory llvm/lib/ExecutionEngine: ExecutionEngine.cpp updated: 1.84 -> 1.85 --- Log message: Adding dllimport, dllexport and external weak linkage types. DLL* linkages got full (I hope) codegeneration support in C & both x86 assembler backends. External weak linkage added for future use, we don't provide any codegeneration, etc. support for it. --- Diffs of the changes: (+3 -1) ExecutionEngine.cpp |4 +++- 1 files changed, 3 insertions(+), 1 deletion(-) Index: llvm/lib/ExecutionEngine/ExecutionEngine.cpp diff -u llvm/lib/ExecutionEngine/ExecutionEngine.cpp:1.84 llvm/lib/ExecutionEngine/ExecutionEngine.cpp:1.85 --- llvm/lib/ExecutionEngine/ExecutionEngine.cpp:1.84 Tue Aug 15 20:24:12 2006 +++ llvm/lib/ExecutionEngine/ExecutionEngine.cppThu Sep 14 13:23:26 2006 @@ -657,7 +657,9 @@ } // If the existing global is strong, never replace it. -if (GVEntry->hasExternalLinkage()) +if (GVEntry->hasExternalLinkage() || +GVEntry->hasDLLImportLinkage() || +GVEntry->hasDLLExportLinkage()) continue; // Otherwise, we know it's linkonce/weak, replace it if this is a strong ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/tools/llvm2cpp/CppWriter.cpp
Changes in directory llvm/tools/llvm2cpp: CppWriter.cpp updated: 1.14 -> 1.15 --- Log message: Adding dllimport, dllexport and external weak linkage types. DLL* linkages got full (I hope) codegeneration support in C & both x86 assembler backends. External weak linkage added for future use, we don't provide any codegeneration, etc. support for it. --- Diffs of the changes: (+6 -0) CppWriter.cpp |6 ++ 1 files changed, 6 insertions(+) Index: llvm/tools/llvm2cpp/CppWriter.cpp diff -u llvm/tools/llvm2cpp/CppWriter.cpp:1.14 llvm/tools/llvm2cpp/CppWriter.cpp:1.15 --- llvm/tools/llvm2cpp/CppWriter.cpp:1.14 Mon Aug 14 17:35:15 2006 +++ llvm/tools/llvm2cpp/CppWriter.cpp Thu Sep 14 13:23:27 2006 @@ -284,6 +284,12 @@ Out << "GlobalValue::AppendingLinkage"; break; case GlobalValue::ExternalLinkage: Out << "GlobalValue::ExternalLinkage"; break; +case GlobalValue::DLLImportLinkage: + Out << "GlobalValue::DllImportLinkage"; break; +case GlobalValue::DLLExportLinkage: + Out << "GlobalValue::DllExportLinkage"; break; +case GlobalValue::ExternalWeakLinkage: + Out << "GlobalValue::ExternalWeakLinkage"; break; case GlobalValue::GhostLinkage: Out << "GlobalValue::GhostLinkage"; break; } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp
Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.48 -> 1.49 --- Log message: Adding dllimport, dllexport and external weak linkage types. DLL* linkages got full (I hope) codegeneration support in C & both x86 assembler backends. External weak linkage added for future use, we don't provide any codegeneration, etc. support for it. --- Diffs of the changes: (+8 -0) AlphaAsmPrinter.cpp |8 1 files changed, 8 insertions(+) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.48 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.49 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.48 Thu Sep 7 17:06:40 2006 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Thu Sep 14 13:23:26 2006 @@ -258,6 +258,14 @@ case GlobalValue::GhostLinkage: std::cerr << "GhostLinkage cannot appear in AlphaAsmPrinter!\n"; abort(); +case GlobalValue::DLLImportLinkage: + std::cerr << "DLLImport linkage is not supported by this target!\n"; + abort(); +case GlobalValue::DLLExportLinkage: + std::cerr << "DLLExport linkage is not supported by this target!\n"; + abort(); +default: + assert(0 && "Unknown linkage type!"); } EmitAlignment(Align); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/VMCore/AsmWriter.cpp Mangler.cpp Verifier.cpp
Changes in directory llvm/lib/VMCore: AsmWriter.cpp updated: 1.204 -> 1.205 Mangler.cpp updated: 1.29 -> 1.30 Verifier.cpp updated: 1.162 -> 1.163 --- Log message: Adding dllimport, dllexport and external weak linkage types. DLL* linkages got full (I hope) codegeneration support in C & both x86 assembler backends. External weak linkage added for future use, we don't provide any codegeneration, etc. support for it. --- Diffs of the changes: (+43 -16) AsmWriter.cpp | 36 +--- Mangler.cpp | 11 --- Verifier.cpp | 12 ++-- 3 files changed, 43 insertions(+), 16 deletions(-) Index: llvm/lib/VMCore/AsmWriter.cpp diff -u llvm/lib/VMCore/AsmWriter.cpp:1.204 llvm/lib/VMCore/AsmWriter.cpp:1.205 --- llvm/lib/VMCore/AsmWriter.cpp:1.204 Sun Aug 27 20:02:49 2006 +++ llvm/lib/VMCore/AsmWriter.cpp Thu Sep 14 13:23:27 2006 @@ -845,14 +845,21 @@ if (GV->hasName()) Out << getLLVMName(GV->getName()) << " = "; if (!GV->hasInitializer()) -Out << "external "; +switch (GV->getLinkage()) { + case GlobalValue::DLLImportLinkage: Out << "dllimport "; break; + case GlobalValue::ExternalWeakLinkage: Out << "extern_weak "; break; + default: Out << "external "; break; +} else switch (GV->getLinkage()) { -case GlobalValue::InternalLinkage: Out << "internal "; break; -case GlobalValue::LinkOnceLinkage: Out << "linkonce "; break; -case GlobalValue::WeakLinkage: Out << "weak "; break; -case GlobalValue::AppendingLinkage: Out << "appending "; break; -case GlobalValue::ExternalLinkage: break; +case GlobalValue::InternalLinkage: Out << "internal "; break; +case GlobalValue::LinkOnceLinkage: Out << "linkonce "; break; +case GlobalValue::WeakLinkage: Out << "weak "; break; +case GlobalValue::AppendingLinkage:Out << "appending "; break; +case GlobalValue::DLLImportLinkage:Out << "dllimport "; break; +case GlobalValue::DLLExportLinkage:Out << "dllexport "; break; +case GlobalValue::ExternalWeakLinkage: Out << "extern_weak "; break; +case GlobalValue::ExternalLinkage: break; case GlobalValue::GhostLinkage: std::cerr << "GhostLinkage not allowed in AsmWriter!\n"; abort(); @@ -937,13 +944,20 @@ if (AnnotationWriter) AnnotationWriter->emitFunctionAnnot(F, Out); if (F->isExternal()) -Out << "declare "; +switch (F->getLinkage()) { +case GlobalValue::DLLImportLinkage:Out << "declare dllimport "; break; +case GlobalValue::ExternalWeakLinkage: Out << "declare extern_weak "; break; +default: Out << "declare "; +} else switch (F->getLinkage()) { -case GlobalValue::InternalLinkage: Out << "internal "; break; -case GlobalValue::LinkOnceLinkage: Out << "linkonce "; break; -case GlobalValue::WeakLinkage: Out << "weak "; break; -case GlobalValue::AppendingLinkage: Out << "appending "; break; +case GlobalValue::InternalLinkage: Out << "internal "; break; +case GlobalValue::LinkOnceLinkage: Out << "linkonce "; break; +case GlobalValue::WeakLinkage: Out << "weak "; break; +case GlobalValue::AppendingLinkage:Out << "appending "; break; +case GlobalValue::DLLImportLinkage:Out << "dllimport "; break; +case GlobalValue::DLLExportLinkage:Out << "dllexport "; break; +case GlobalValue::ExternalWeakLinkage: Out << "extern_weak "; break; case GlobalValue::ExternalLinkage: break; case GlobalValue::GhostLinkage: std::cerr << "GhostLinkage not allowed in AsmWriter!\n"; Index: llvm/lib/VMCore/Mangler.cpp diff -u llvm/lib/VMCore/Mangler.cpp:1.29 llvm/lib/VMCore/Mangler.cpp:1.30 --- llvm/lib/VMCore/Mangler.cpp:1.29Thu Sep 7 13:20:41 2006 +++ llvm/lib/VMCore/Mangler.cpp Thu Sep 14 13:23:27 2006 @@ -162,11 +162,16 @@ ExistingValue = GV; } else { // If GV is external but the existing one is static, mangle the existing one -if (GV->hasExternalLinkage() && !ExistingValue->hasExternalLinkage()) { +if ((GV->hasExternalLinkage() || GV->hasDLLImportLinkage()) && +!(ExistingValue->hasExternalLinkage() || ExistingValue->hasDLLImportLinkage())) { MangledGlobals.insert(ExistingValue); ExistingValue = GV; -} else if (GV->hasExternalLinkage() && ExistingValue->hasExternalLinkage()&& - GV->isExternal() && ExistingValue->isExternal()) { +} else if ((GV->hasExternalLinkage() || +GV->hasDLLImportLinkage()) && + (ExistingValue->hasExternalLinkage() || +ExistingValue->hasDLLImportLinkage()) && + GV->isExternal() && + ExistingValue->isExternal()) { // If the two globals both have external inkage, and are both external, // don't mangle either of them, we just have some silly type mismatch. } else { Index: llvm/lib/VMCore/Verifier.cpp diff -u llvm/lib/VMCore/Verifier
[llvm-commits] CVS: llvm/docs/BytecodeFormat.html LangRef.html
Changes in directory llvm/docs: BytecodeFormat.html updated: 1.52 -> 1.53 LangRef.html updated: 1.156 -> 1.157 --- Log message: Adding dllimport, dllexport and external weak linkage types. DLL* linkages got full (I hope) codegeneration support in C & both x86 assembler backends. External weak linkage added for future use, we don't provide any codegeneration, etc. support for it. --- Diffs of the changes: (+46 -8) BytecodeFormat.html | 23 --- LangRef.html| 31 ++- 2 files changed, 46 insertions(+), 8 deletions(-) Index: llvm/docs/BytecodeFormat.html diff -u llvm/docs/BytecodeFormat.html:1.52 llvm/docs/BytecodeFormat.html:1.53 --- llvm/docs/BytecodeFormat.html:1.52 Thu Apr 20 00:05:12 2006 +++ llvm/docs/BytecodeFormat.html Thu Sep 14 13:23:26 2006 @@ -1025,7 +1025,8 @@ bit(2-4) Linkage type: 0=External, 1=Weak, -2=Appending, 3=Internal, 4=LinkOnce +2=Appending, 3=Internal, 4=LinkOnce, 5=DllImport, +6=DllExport, 7=ExternWeak bit(5-31) @@ -1136,13 +1137,16 @@ bit(4) If this bit is set to 1, the indicated function is external, and there is no Function Definiton - Block in the bytecode file for the function. + Block in the bytecode file for the function. If the function is + external and has dllimport or extern_weak linkage additional + field in the extension word is used to indicate the actual linkage + type. bit(5-30) Type slot number of type for the function. - + bit(31) Indicates whether an extension word follows. @@ -1171,7 +1175,12 @@ If this bit is set, a SectionID follows this vbr. - bit(11-31) + bit(11-12) + Linkage type for external functions. 0 - External +linkage, 1 - DLLImport linkage, 2 - External weak linkage. + + + bit(13-31) Currently unassigned. @@ -1410,8 +1419,8 @@ uint32_vbr - The linkage type of the function: 0=External, -1=Weak, 2=Appending, 3=Internal, 4=LinkOnce1 + The linkage type of the function: 0=External, 1=Weak, +2=Appending, 3=Internal, 4=LinkOnce, 5=DllImport, 6=DllExport1 block @@ -2148,7 +2157,7 @@ mailto:[EMAIL PROTECTED]">Reid Spencer and mailto:[EMAIL PROTECTED]">Chris Lattner http://llvm.org";>The LLVM Compiler Infrastructure -Last modified: $Date: 2006/04/20 05:05:12 $ +Last modified: $Date: 2006/09/14 18:23:26 $ Index: llvm/docs/LangRef.html diff -u llvm/docs/LangRef.html:1.156 llvm/docs/LangRef.html:1.157 --- llvm/docs/LangRef.html:1.156Fri Sep 8 01:34:02 2006 +++ llvm/docs/LangRef.html Thu Sep 14 13:23:26 2006 @@ -439,6 +439,35 @@ visible, meaning that it participates in linkage and can be used to resolve external symbol references. + + extern_weak: + + "extern_weak" TBD + + + + The next two types of linkage are targeted for Microsoft Windows platform + only. They are designed to support importing (exporting) symbols from (to) + DLLs. + + + dllimport: + + "dllimport" linkage causes the compiler to reference a function +or variable via a global pointer to a pointer that is set up by the DLL +exporting the symbol. On Microsoft Windows targets, the pointer name is +formed by combining _imp__ and the function or variable name. + + + dllexport: + + "dllexport" linkage causes the compiler to provide a global +pointer to a pointer in a DLL, so that it can be referenced with the +dllimport attribute. On Microsoft Windows targets, the pointer +name is formed by combining _imp__ and the function or variable +name. + + For example, since the ".LC0" @@ -3880,7 +3909,7 @@ mailto:[EMAIL PROTECTED]">Chris Lattner http://llvm.org";>The LLVM Compiler Infrastructure - Last modified: $Date: 2006/09/08 06:34:02 $ + Last modified: $Date: 2006/09/14 18:23:26 $ ___ 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/X86ATTAsmPrinter.cpp X86AsmPrinter.cpp X86AsmPrinter.h X86ISelLowering.cpp X86IntelAsmPrinter.cpp X86Subtarget.h
Changes in directory llvm/lib/Target/X86: X86ATTAsmPrinter.cpp updated: 1.61 -> 1.62 X86AsmPrinter.cpp updated: 1.196 -> 1.197 X86AsmPrinter.h updated: 1.30 -> 1.31 X86ISelLowering.cpp updated: 1.258 -> 1.259 X86IntelAsmPrinter.cpp updated: 1.55 -> 1.56 X86Subtarget.h updated: 1.16 -> 1.17 --- Log message: Adding dllimport, dllexport and external weak linkage types. DLL* linkages got full (I hope) codegeneration support in C & both x86 assembler backends. External weak linkage added for future use, we don't provide any codegeneration, etc. support for it. --- Diffs of the changes: (+123 -9) X86ATTAsmPrinter.cpp | 28 +++ X86AsmPrinter.cpp | 24 +++ X86AsmPrinter.h|3 ++ X86ISelLowering.cpp| 16 + X86IntelAsmPrinter.cpp | 59 + X86Subtarget.h |2 + 6 files changed, 123 insertions(+), 9 deletions(-) Index: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp diff -u llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.61 llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.62 --- llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.61 Fri Sep 8 01:48:29 2006 +++ llvm/lib/Target/X86/X86ATTAsmPrinter.cppThu Sep 14 13:23:27 2006 @@ -48,10 +48,13 @@ SwitchToTextSection(TAI->getTextSection(), F); EmitAlignment(4, F); // FIXME: This should be parameterized somewhere. break; + case Function::DLLExportLinkage: +DLLExportedFns.insert(Mang->makeNameProper(F->getName(), "")); +//FALLS THROUGH case Function::ExternalLinkage: SwitchToTextSection(TAI->getTextSection(), F); EmitAlignment(4, F); // FIXME: This should be parameterized somewhere. -O << "\t.globl\t" << CurrentFnName << "\n"; +O << "\t.globl\t" << CurrentFnName << "\n"; break; case Function::WeakLinkage: case Function::LinkOnceLinkage: @@ -179,8 +182,9 @@ bool isMemOp = Modifier && !strcmp(Modifier, "mem"); if (!isMemOp && !isCallOp) O << '$'; -GlobalValue *GV = MO.getGlobal(); +GlobalValue *GV = MO.getGlobal(); std::string Name = Mang->getValueName(GV); + bool isExt = (GV->isExternal() || GV->hasWeakLinkage() || GV->hasLinkOnceLinkage()); if (X86PICStyle == PICStyle::Stub && @@ -196,13 +200,27 @@ GVStubs.insert(Name); O << "L" << Name << "$non_lazy_ptr"; } - } else + } else { +if (GV->hasDLLImportLinkage()) { + // FIXME: This should be fixed with full support of stdcall & fastcall + // CC's + O << "__imp_"; +} O << Name; + } + if (!isCallOp && TM.getRelocationModel() == Reloc::PIC_) O << "-\"L" << getFunctionNumber() << "$pb\""; -} else +} else { + if (GV->hasDLLImportLinkage()) { +// FIXME: This should be fixed with full support of stdcall & fastcall +// CC's +O << "__imp_"; + } O << Name; - + +} + int Offset = MO.getOffset(); if (Offset > 0) O << "+" << Offset; Index: llvm/lib/Target/X86/X86AsmPrinter.cpp diff -u llvm/lib/Target/X86/X86AsmPrinter.cpp:1.196 llvm/lib/Target/X86/X86AsmPrinter.cpp:1.197 --- llvm/lib/Target/X86/X86AsmPrinter.cpp:1.196 Fri Sep 8 01:48:29 2006 +++ llvm/lib/Target/X86/X86AsmPrinter.cpp Thu Sep 14 13:23:27 2006 @@ -112,6 +112,9 @@ case GlobalValue::AppendingLinkage: // FIXME: appending linkage variables should go into a section of // their name or something. For now, just emit them as external. + case GlobalValue::DLLExportLinkage: +DLLExportedGVs.insert(Mang->makeNameProper(I->getName(),"")); +// FALL THROUGH case GlobalValue::ExternalLinkage: // If external or appending, declare as a global symbol O << "\t.globl " << name << "\n"; @@ -134,6 +137,27 @@ } } + // Output linker support code for dllexported globals + if (DLLExportedGVs.begin() != DLLExportedGVs.end()) { +SwitchToDataSection(".section .drectve", 0); + } + + for (std::set::iterator i = DLLExportedGVs.begin(), + e = DLLExportedGVs.end(); + i != e; ++i) { +O << "\t.ascii \" -export:" << *i << ",data\"\n"; + } + + if (DLLExportedFns.begin() != DLLExportedFns.end()) { +SwitchToDataSection(".section .drectve", 0); + } + + for (std::set::iterator i = DLLExportedFns.begin(), + e = DLLExportedFns.end(); + i != e; ++i) { +O << "\t.ascii \" -export:" << *i << "\"\n"; + } + if (Subtarget->isTargetDarwin()) { SwitchToDataSection("", 0); Index: llvm/lib/Target/X86/X86AsmPrinter.h diff -u llvm/lib/Target/X86/X86AsmPrinter.h:1.30 llvm/lib/Target/X86/X86AsmPrinter.h:1.31 --- llvm/lib/Target/X86/X86AsmPrinter.h:1.30Fri Sep 8 01:48:29 2006 +++ llvm/lib/Target/X86/X86AsmPrinter.h Thu Sep 14 13:23:27 2006 @@ -63,6 +63,9 @@ // Necessary
[llvm-commits] CVS: llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
Changes in directory llvm/lib/ExecutionEngine/JIT: JITEmitter.cpp updated: 1.114 -> 1.115 --- Log message: Adding dllimport, dllexport and external weak linkage types. DLL* linkages got full (I hope) codegeneration support in C & both x86 assembler backends. External weak linkage added for future use, we don't provide any codegeneration, etc. support for it. --- Diffs of the changes: (+2 -2) JITEmitter.cpp |4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Index: llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp diff -u llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp:1.114 llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp:1.115 --- llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp:1.114 Wed Sep 13 11:21:10 2006 +++ llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp Thu Sep 14 13:23:26 2006 @@ -542,7 +542,7 @@ // Call the lazy resolver function unless we already KNOW it is an external // function, in which case we just skip the lazy resolution step. void *Actual = (void*)(intptr_t)LazyResolverFn; - if (F->isExternal() && F->hasExternalLinkage()) + if (F->isExternal()) Actual = TheJIT->getPointerToFunction(F); // Otherwise, codegen a new stub. For now, the stub will call the lazy @@ -738,7 +738,7 @@ void *ResultPtr = TheJIT->getPointerToGlobalIfAvailable(F); if (ResultPtr) return ResultPtr; - if (F->hasExternalLinkage() && F->isExternal()) { + if (F->isExternal()) { // If this is an external function pointer, we can force the JIT to // 'compile' it, which really just adds it to the map. if (DoesntNeedStub) ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Changes in directory llvm/lib/CodeGen/SelectionDAG: DAGCombiner.cpp updated: 1.185 -> 1.186 --- Log message: Split rotate matching code out to its own function. Make it stronger, by matching things like ((x >> c1) & c2) | ((x << c3) & c4) to (rot x, c5) & c6 --- Diffs of the changes: (+143 -54) DAGCombiner.cpp | 197 1 files changed, 143 insertions(+), 54 deletions(-) Index: llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp diff -u llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:1.185 llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:1.186 --- llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:1.185 Thu Aug 31 02:41:12 2006 +++ llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Thu Sep 14 15:50:57 2006 @@ -230,7 +230,8 @@ ISD::CondCode Cond, bool foldBooleans = true); SDOperand ConstantFoldVBIT_CONVERTofVBUILD_VECTOR(SDNode *, MVT::ValueType); SDOperand BuildSDIV(SDNode *N); -SDOperand BuildUDIV(SDNode *N); +SDOperand BuildUDIV(SDNode *N); +SDNode *MatchRotate(SDOperand LHS, SDOperand RHS); public: DAGCombiner(SelectionDAG &D) : DAG(D), TLI(D.getTargetLoweringInfo()), AfterLegalize(false) {} @@ -1153,63 +1154,150 @@ SDOperand Tmp = SimplifyBinOpWithSameOpcodeHands(N); if (Tmp.Val) return Tmp; } + + // See if this is some rotate idiom. + if (SDNode *Rot = MatchRotate(N0, N1)) +return SDOperand(Rot, 0); - // canonicalize shl to left side in a shl/srl pair, to match rotate - if (N0.getOpcode() == ISD::SRL && N1.getOpcode() == ISD::SHL) -std::swap(N0, N1); - // check for rotl, rotr - if (N0.getOpcode() == ISD::SHL && N1.getOpcode() == ISD::SRL && - N0.getOperand(0) == N1.getOperand(0) && - TLI.isTypeLegal(VT)) { -bool HasROTL = TLI.isOperationLegal(ISD::ROTL, VT); -bool HasROTR = TLI.isOperationLegal(ISD::ROTR, VT); -if (HasROTL || HasROTR) { - // fold (or (shl x, C1), (srl x, C2)) -> (rotl x, C1) - // fold (or (shl x, C1), (srl x, C2)) -> (rotr x, C2) - if (N0.getOperand(1).getOpcode() == ISD::Constant && - N1.getOperand(1).getOpcode() == ISD::Constant) { -uint64_t c1val = cast(N0.getOperand(1))->getValue(); -uint64_t c2val = cast(N1.getOperand(1))->getValue(); -if ((c1val + c2val) == OpSizeInBits) - if (HasROTL) -return DAG.getNode(ISD::ROTL, VT, N0.getOperand(0), - N0.getOperand(1)); - else -return DAG.getNode(ISD::ROTR, VT, N0.getOperand(0), - N1.getOperand(1)); - - } - // fold (or (shl x, y), (srl x, (sub 32, y))) -> (rotl x, y) - // fold (or (shl x, y), (srl x, (sub 32, y))) -> (rotr x, (sub 32, y)) - if (N1.getOperand(1).getOpcode() == ISD::SUB && - N0.getOperand(1) == N1.getOperand(1).getOperand(1)) -if (ConstantSDNode *SUBC = -dyn_cast(N1.getOperand(1).getOperand(0))) - if (SUBC->getValue() == OpSizeInBits) -if (HasROTL) - return DAG.getNode(ISD::ROTL, VT, N0.getOperand(0), - N0.getOperand(1)); -else - return DAG.getNode(ISD::ROTR, VT, N0.getOperand(0), - N1.getOperand(1)); - // fold (or (shl x, (sub 32, y)), (srl x, r)) -> (rotr x, y) - // fold (or (shl x, (sub 32, y)), (srl x, r)) -> (rotl x, (sub 32, y)) - if (N0.getOperand(1).getOpcode() == ISD::SUB && - N1.getOperand(1) == N0.getOperand(1).getOperand(1)) -if (ConstantSDNode *SUBC = -dyn_cast(N0.getOperand(1).getOperand(0))) - if (SUBC->getValue() == OpSizeInBits) -if (HasROTR) - return DAG.getNode(ISD::ROTR, VT, N0.getOperand(0), - N1.getOperand(1)); -else - return DAG.getNode(ISD::ROTL, VT, N0.getOperand(0), - N0.getOperand(1)); + return SDOperand(); +} + + +/// MatchRotateHalf - Match "(X shl/srl V1) & V2" where V2 may not be present. +static bool MatchRotateHalf(SDOperand Op, SDOperand &Shift, SDOperand &Mask) { + if (Op.getOpcode() == ISD::AND) { +if (ConstantSDNode *RHSC = dyn_cast(Op.getOperand(1))) { + Mask = Op.getOperand(1); + Op = Op.getOperand(0); +} else { + return false; } } - return SDOperand(); + + if (Op.getOpcode() == ISD::SRL || Op.getOpcode() == ISD::SHL) { +Shift = Op; +return true; + } + return false; +} + + +// MatchRotate - Handle an 'or' of two operands. If this is one of the many +// idioms for rotate, and if the target supports rotation instructions, generate +// a rot[lr]. +SDNode *DAGCombiner::MatchRotate(SDOperand LHS, SDOperand RHS) { + // Must be a legal type. Expanded an promoted things won't work with rotates. + MVT::ValueType VT = LHS.getValueType(); + if (!TLI.isTypeLegal(VT)) return 0;
[llvm-commits] CVS: llvm/lib/Target/PowerPC/README.txt
Changes in directory llvm/lib/Target/PowerPC: README.txt updated: 1.94 -> 1.95 --- Log message: add a note --- Diffs of the changes: (+25 -0) README.txt | 25 + 1 files changed, 25 insertions(+) Index: llvm/lib/Target/PowerPC/README.txt diff -u llvm/lib/Target/PowerPC/README.txt:1.94 llvm/lib/Target/PowerPC/README.txt:1.95 --- llvm/lib/Target/PowerPC/README.txt:1.94 Thu Jul 13 23:07:29 2006 +++ llvm/lib/Target/PowerPC/README.txt Thu Sep 14 15:56:30 2006 @@ -539,3 +539,28 @@ unsigned short G; void foo(unsigned long H) { G = H; } +===-=== + +We compile: + +unsigned test6(unsigned x) { + return ((x & 0x00FF) >> 16) | ((x & 0x00FF) << 16); +} + +into: + +_test6: +lis r2, 255 +rlwinm r3, r3, 16, 0, 31 +ori r2, r2, 255 +and r3, r3, r2 +blr + +GCC gets it down to: + +_test6: +rlwinm r0,r3,16,8,15 +rlwinm r3,r3,16,24,31 +or r3,r3,r0 +blr + ___ 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/X86/and-or-fold.ll
Changes in directory llvm/test/Regression/CodeGen/X86: and-or-fold.ll added (r1.1) --- Log message: New testcase --- Diffs of the changes: (+13 -0) and-or-fold.ll | 13 + 1 files changed, 13 insertions(+) Index: llvm/test/Regression/CodeGen/X86/and-or-fold.ll diff -c /dev/null llvm/test/Regression/CodeGen/X86/and-or-fold.ll:1.1 *** /dev/null Thu Sep 14 16:10:16 2006 --- llvm/test/Regression/CodeGen/X86/and-or-fold.ll Thu Sep 14 16:10:06 2006 *** *** 0 --- 1,13 + ; RUN: llvm-as < %s | llc -march=x86 | grep and | wc -l | grep 1 + + ; The dag combiner should fold together (x&127)|(y&16711680) -> (x|y)&c1 + ; in this case. + uint %test6(uint %x, ushort %y) { + %tmp1 = cast ushort %y to uint + %tmp2 = and uint %tmp1, 127 ; [#uses=1] + %tmp4 = shl uint %x, ubyte 16 ; [#uses=1] + %tmp5 = and uint %tmp4, 16711680; [#uses=1] + %tmp6 = or uint %tmp2, %tmp5; [#uses=1] + ret uint %tmp6 + } + ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Changes in directory llvm/lib/CodeGen/SelectionDAG: DAGCombiner.cpp updated: 1.186 -> 1.187 --- Log message: Fold (X & C1) | (Y & C2) -> (X|Y) & C3 when possible. This implements CodeGen/X86/and-or-fold.ll --- Diffs of the changes: (+20 -0) DAGCombiner.cpp | 20 1 files changed, 20 insertions(+) Index: llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp diff -u llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:1.186 llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:1.187 --- llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:1.186 Thu Sep 14 15:50:57 2006 +++ llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Thu Sep 14 16:11:37 2006 @@ -1155,6 +1155,26 @@ if (Tmp.Val) return Tmp; } + // (X & C1) | (Y & C2) -> (X|Y) & C3 if possible. + if (N0.getOpcode() == ISD::AND && + N1.getOpcode() == ISD::AND && + N0.getOperand(1).getOpcode() == ISD::Constant && + N1.getOperand(1).getOpcode() == ISD::Constant && + // Don't increase # computations. + (N0.Val->hasOneUse() || N1.Val->hasOneUse())) { +// We can only do this xform if we know that bits from X that are set in C2 +// but not in C1 are already zero. Likewise for Y. +uint64_t LHSMask = cast(N0.getOperand(1))->getValue(); +uint64_t RHSMask = cast(N1.getOperand(1))->getValue(); + +if (TLI.MaskedValueIsZero(N0.getOperand(0), RHSMask&~LHSMask) && +TLI.MaskedValueIsZero(N1.getOperand(0), LHSMask&~RHSMask)) { + SDOperand X =DAG.getNode(ISD::OR, VT, N0.getOperand(0), N1.getOperand(0)); + return DAG.getNode(ISD::AND, VT, X, DAG.getConstant(LHSMask|RHSMask, VT)); +} + } + + // See if this is some rotate idiom. if (SDNode *Rot = MatchRotate(N0, N1)) return SDOperand(Rot, 0); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/include/llvm/Analysis/ET-Forest.h
Changes in directory llvm/include/llvm/Analysis: ET-Forest.h updated: 1.5 -> 1.6 --- Log message: Undo previous check-in. Reintroduce recursive assignDFSNumber(). --- Diffs of the changes: (+10 -1) ET-Forest.h | 11 ++- 1 files changed, 10 insertions(+), 1 deletion(-) Index: llvm/include/llvm/Analysis/ET-Forest.h diff -u llvm/include/llvm/Analysis/ET-Forest.h:1.5 llvm/include/llvm/Analysis/ET-Forest.h:1.6 --- llvm/include/llvm/Analysis/ET-Forest.h:1.5 Wed Sep 13 20:27:42 2006 +++ llvm/include/llvm/Analysis/ET-Forest.h Thu Sep 14 16:43:24 2006 @@ -250,7 +250,16 @@ return this->Below(other); } - void assignDFSNumber(int &); + void assignDFSNumber(int &num) { +DFSNumIn = num++; + +if (Son) { + Son->assignDFSNumber(num); + for (ETNode *son = Son->Right; son != Son; son = son->Right) +son->assignDFSNumber(num); +} +DFSNumOut = num++; + } bool hasFather() const { return Father != NULL; ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/VMCore/Dominators.cpp
Changes in directory llvm/lib/VMCore: Dominators.cpp updated: 1.74 -> 1.75 --- Log message: Undo previous check-in. Reintroduce recursive assignDFSNumber(). --- Diffs of the changes: (+0 -33) Dominators.cpp | 33 - 1 files changed, 33 deletions(-) Index: llvm/lib/VMCore/Dominators.cpp diff -u llvm/lib/VMCore/Dominators.cpp:1.74 llvm/lib/VMCore/Dominators.cpp:1.75 --- llvm/lib/VMCore/Dominators.cpp:1.74 Wed Sep 13 20:27:42 2006 +++ llvm/lib/VMCore/Dominators.cpp Thu Sep 14 16:43:24 2006 @@ -890,39 +890,6 @@ updateDFSNumbers (); } -// Walk ETNode and its children using DFS algorithm and assign -// DFSNumIn and DFSNumOut numbers for each node. -void ETNode::assignDFSNumber(int &num) { - -std::vector DFSInStack; -std::set visited; - -DFSInStack.push_back(this); - -visited.insert(this); - -while(!DFSInStack.empty()) { - ETNode *Parent = DFSInStack.back(); - DFSInStack.pop_back(); - Parent->DFSNumIn = num++; - Parent->DFSNumOut = Parent->DFSNumIn + 1; - - ETNode *son = Parent->Son; - if (son && visited.count(son) == 0) { - -DFSInStack.push_back(son); -son->DFSNumIn = Parent->DFSNumIn + 1; -visited.insert(son); - -for (ETNode *s = son->Right; s != son; s = s->Right) { - DFSInStack.push_back(s); - s->DFSNumIn = Parent->DFSNumIn + 1; - visited.insert(s); -} - } -} -} - //===--===// // ETForestBase Implementation //===--===// ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/utils/TableGen/DAGISelEmitter.cpp
Changes in directory llvm/utils/TableGen: DAGISelEmitter.cpp updated: 1.255 -> 1.256 --- Log message: Relax this check. --- Diffs of the changes: (+10 -7) DAGISelEmitter.cpp | 17 ++--- 1 files changed, 10 insertions(+), 7 deletions(-) Index: llvm/utils/TableGen/DAGISelEmitter.cpp diff -u llvm/utils/TableGen/DAGISelEmitter.cpp:1.255 llvm/utils/TableGen/DAGISelEmitter.cpp:1.256 --- llvm/utils/TableGen/DAGISelEmitter.cpp:1.255Sun Sep 10 21:24:43 2006 +++ llvm/utils/TableGen/DAGISelEmitter.cpp Thu Sep 14 18:54:24 2006 @@ -824,13 +824,16 @@ const SDNodeInfo &NodeInfo = ISE.getSDNodeInfo(getOperator()); if (NodeInfo.hasProperty(SDNodeInfo::SDNPCommutative)) { // Scan all of the operands of the node and make sure that only the last one -// is a constant node. -for (unsigned i = 0, e = getNumChildren()-1; i != e; ++i) - if (!getChild(i)->isLeaf() && - getChild(i)->getOperator()->getName() == "imm") { -Reason = "Immediate value must be on the RHS of commutative operators!"; -return false; - } +// is a constant node, unless the RHS also is. +if (getChild(getNumChildren()-1)->isLeaf() || +getChild(getNumChildren()-1)->getOperator()->getName() != "imm") { + for (unsigned i = 0, e = getNumChildren()-1; i != e; ++i) +if (!getChild(i)->isLeaf() && +getChild(i)->getOperator()->getName() == "imm") { + Reason = "Immediate value must be on the RHS of commutative operators!"; + return false; +} +} } return true; ___ 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/X86ISelDAGToDAG.cpp
Changes in directory llvm/lib/Target/X86: X86ISelDAGToDAG.cpp updated: 1.107 -> 1.108 --- Log message: Remove a unnecessary check. --- Diffs of the changes: (+0 -1) X86ISelDAGToDAG.cpp |1 - 1 files changed, 1 deletion(-) Index: llvm/lib/Target/X86/X86ISelDAGToDAG.cpp diff -u llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.107 llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.108 --- llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.107 Tue Sep 12 23:45:25 2006 +++ llvm/lib/Target/X86/X86ISelDAGToDAG.cpp Thu Sep 14 18:55:02 2006 @@ -784,7 +784,6 @@ SDOperand &Index, SDOperand &Disp) { if (N.getOpcode() == ISD::LOAD && N.hasOneUse() && - P.Val->isOnlyUse(N.Val) && CanBeFoldedBy(N.Val, P.Val)) return SelectAddr(N.getOperand(1), Base, Scale, Index, Disp); return false; ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h
Changes in directory llvm/include/llvm/CodeGen: LiveIntervalAnalysis.h updated: 1.63 -> 1.64 --- Log message: Keep track of the start of MBB's in a separate map from instructions. This is faster and is needed for future improvements. --- Diffs of the changes: (+17 -2) LiveIntervalAnalysis.h | 19 +-- 1 files changed, 17 insertions(+), 2 deletions(-) Index: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h diff -u llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.63 llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.64 --- llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.63 Thu Sep 14 01:42:17 2006 +++ llvm/include/llvm/CodeGen/LiveIntervalAnalysis.hThu Sep 14 22:57:23 2006 @@ -38,6 +38,10 @@ const TargetInstrInfo* tii_; LiveVariables* lv_; +/// MBB2IdxMap - The index of the first instruction in the specified basic +/// block. +std::vector MBB2IdxMap; + typedef std::map Mi2IndexMap; Mi2IndexMap mi2iMap_; @@ -113,6 +117,17 @@ return I->second; } +/// getMBBStartIdx - Return the base index of the first instruction in the +/// specified MachineBasicBlock. +unsigned getMBBStartIdx(MachineBasicBlock *MBB) const { + return getMBBStartIdx(MBB->getNumber()); +} + +unsigned getMBBStartIdx(unsigned MBBNo) const { + assert(MBBNo < MBB2IdxMap.size() && "Invalid MBB number!"); + return MBB2IdxMap[MBBNo]; +} + /// getInstructionIndex - returns the base index of instr unsigned getInstructionIndex(MachineInstr* instr) const { Mi2IndexMap::const_iterator it = mi2iMap_.find(instr); @@ -128,7 +143,7 @@ "index does not correspond to an instruction"); return i2miMap_[index]; } - + std::vector addIntervalsForSpills(const LiveInterval& i, VirtRegMap& vrm, int slot); @@ -155,7 +170,7 @@ } } -/// computeIntervals - compute live intervals +/// computeIntervals - Compute live intervals. void computeIntervals(); /// joinIntervals - join compatible live intervals ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/CodeGen/LiveIntervalAnalysis.cpp
Changes in directory llvm/lib/CodeGen: LiveIntervalAnalysis.cpp updated: 1.186 -> 1.187 --- Log message: Keep track of the start of MBB's in a separate map from instructions. This is faster and is needed for future improvements. --- Diffs of the changes: (+45 -38) LiveIntervalAnalysis.cpp | 83 +-- 1 files changed, 45 insertions(+), 38 deletions(-) Index: llvm/lib/CodeGen/LiveIntervalAnalysis.cpp diff -u llvm/lib/CodeGen/LiveIntervalAnalysis.cpp:1.186 llvm/lib/CodeGen/LiveIntervalAnalysis.cpp:1.187 --- llvm/lib/CodeGen/LiveIntervalAnalysis.cpp:1.186 Mon Sep 4 21:12:02 2006 +++ llvm/lib/CodeGen/LiveIntervalAnalysis.cpp Thu Sep 14 22:57:23 2006 @@ -57,7 +57,7 @@ static cl::opt EnableJoining("join-liveintervals", -cl::desc("Join compatible live intervals"), +cl::desc("Coallesce copies (default=true)"), cl::init(true)); } @@ -120,17 +120,24 @@ "copyRetToReg didn't insert anything!"); } - // number MachineInstrs - unsigned miIndex = 0; - for (MachineFunction::iterator mbb = mf_->begin(), mbbEnd = mf_->end(); - mbb != mbbEnd; ++mbb) -for (MachineBasicBlock::iterator mi = mbb->begin(), miEnd = mbb->end(); - mi != miEnd; ++mi) { - bool inserted = mi2iMap_.insert(std::make_pair(mi, miIndex)).second; + // Number MachineInstrs and MachineBasicBlocks. + // Initialize MBB indexes to a sentinal. + MBB2IdxMap.resize(mf_->getNumBlockIDs(), ~0U); + + unsigned MIIndex = 0; + for (MachineFunction::iterator MBB = mf_->begin(), E = mf_->end(); + MBB != E; ++MBB) { +// Set the MBB2IdxMap entry for this MBB. +MBB2IdxMap[MBB->getNumber()] = MIIndex; + +for (MachineBasicBlock::iterator I = MBB->begin(), E = MBB->end(); + I != E; ++I) { + bool inserted = mi2iMap_.insert(std::make_pair(I, MIIndex)).second; assert(inserted && "multiple MachineInstr -> index mappings"); - i2miMap_.push_back(mi); - miIndex += InstrSlots::NUM; + i2miMap_.push_back(I); + MIIndex += InstrSlots::NUM; } + } // Note intervals due to live-in values. if (fn.livein_begin() != fn.livein_end()) { @@ -155,14 +162,15 @@ std::cerr << "\n"; }); - // join intervals if requested + // Join (coallesce) intervals if requested. if (EnableJoining) joinIntervals(); numIntervalsAfter += getNumIntervals(); + // perform a final pass over the instructions and compute spill // weights, coalesce virtual registers and remove identity moves. - const LoopInfo& loopInfo = getAnalysis(); + const LoopInfo &loopInfo = getAnalysis(); for (MachineFunction::iterator mbbi = mf_->begin(), mbbe = mf_->end(); mbbi != mbbe; ++mbbi) { @@ -420,10 +428,10 @@ // live interval. for (unsigned i = 0, e = vi.AliveBlocks.size(); i != e; ++i) { if (vi.AliveBlocks[i]) { -MachineBasicBlock* mbb = mf_->getBlockNumbered(i); -if (!mbb->empty()) { - LiveRange LR(getInstructionIndex(&mbb->front()), - getInstructionIndex(&mbb->back()) + InstrSlots::NUM, +MachineBasicBlock *MBB = mf_->getBlockNumbered(i); +if (!MBB->empty()) { + LiveRange LR(getMBBStartIdx(i), + getInstructionIndex(&MBB->back()) + InstrSlots::NUM, ValNum); interval.addRange(LR); DEBUG(std::cerr << " +" << LR); @@ -435,7 +443,7 @@ // block to the 'use' slot of the killing instruction. for (unsigned i = 0, e = vi.Kills.size(); i != e; ++i) { MachineInstr *Kill = vi.Kills[i]; - LiveRange LR(getInstructionIndex(Kill->getParent()->begin()), + LiveRange LR(getMBBStartIdx(Kill->getParent()), getUseIndex(getInstructionIndex(Kill))+1, ValNum); interval.addRange(LR); @@ -498,7 +506,7 @@ // Remove the old range that we now know has an incorrect number. MachineInstr *Killer = vi.Kills[0]; -unsigned Start = getInstructionIndex(Killer->getParent()->begin()); +unsigned Start = getMBBStartIdx(Killer->getParent()); unsigned End = getUseIndex(getInstructionIndex(Killer))+1; DEBUG(std::cerr << "Removing [" << Start << "," << End << "] from: "; interval.print(std::cerr, mri_); std::cerr << "\n"); @@ -613,35 +621,34 @@ // Track the index of the current machine instr. unsigned MIIndex = 0; - for (MachineFunction::iterator I = mf_->begin(), E = mf_->end(); - I != E; ++I) { -MachineBasicBlock* mbb = I; -DEBUG(std::cerr << ((Value*)mbb->getBasicBlock())->getName() << ":\n"); + for (MachineFunction::iterator MBBI = mf_->begin(), E = mf_->end(); + MBBI != E; ++MBBI) { +MachineBasicBlock *MBB = MBBI; +DEBUG(std::cerr << ((Value*)MBB->getBasicBlock())->getName() << ":\n"); -MachineBasicBlock::iterator mi = mbb->begin(), miEnd = mbb->en
[llvm-commits] CVS: llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
Changes in directory llvm/lib/ExecutionEngine/JIT: JITEmitter.cpp updated: 1.115 -> 1.116 --- Log message: Unbreak the JIT --- Diffs of the changes: (+2 -2) JITEmitter.cpp |4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Index: llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp diff -u llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp:1.115 llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp:1.116 --- llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp:1.115 Thu Sep 14 13:23:26 2006 +++ llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp Thu Sep 14 23:56:11 2006 @@ -542,7 +542,7 @@ // Call the lazy resolver function unless we already KNOW it is an external // function, in which case we just skip the lazy resolution step. void *Actual = (void*)(intptr_t)LazyResolverFn; - if (F->isExternal()) + if (F->isExternal() && !F->hasNotBeenReadFromBytecode()) Actual = TheJIT->getPointerToFunction(F); // Otherwise, codegen a new stub. For now, the stub will call the lazy @@ -738,7 +738,7 @@ void *ResultPtr = TheJIT->getPointerToGlobalIfAvailable(F); if (ResultPtr) return ResultPtr; - if (F->isExternal()) { + if (F->isExternal() && !F->hasNotBeenReadFromBytecode()) { // If this is an external function pointer, we can force the JIT to // 'compile' it, which really just adds it to the map. if (DoesntNeedStub) ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Transforms/IPO/ArgumentPromotion.cpp
Changes in directory llvm/lib/Transforms/IPO: ArgumentPromotion.cpp updated: 1.23 -> 1.24 --- Log message: Revert my previous work on ArgumentPromotion. Further investigation has revealed these changes to be incorrect. They just weren't showing up in any of our current testcases. --- Diffs of the changes: (+46 -34) ArgumentPromotion.cpp | 80 -- 1 files changed, 46 insertions(+), 34 deletions(-) Index: llvm/lib/Transforms/IPO/ArgumentPromotion.cpp diff -u llvm/lib/Transforms/IPO/ArgumentPromotion.cpp:1.23 llvm/lib/Transforms/IPO/ArgumentPromotion.cpp:1.24 --- llvm/lib/Transforms/IPO/ArgumentPromotion.cpp:1.23 Sat Sep 2 16:19:44 2006 +++ llvm/lib/Transforms/IPO/ArgumentPromotion.cpp Fri Sep 15 00:22:51 2006 @@ -179,6 +179,40 @@ return true; } +/// AccessOccursOnPath - Returns true if and only if a load or GEP instruction +/// on Pointer occurs in Path, or in every control-flow path that succeeds it. +bool AccessOccursOnPath(Argument* Arg) { + std::vector Worklist; + Worklist.push_back(Arg->getParent()->begin()); + + std::set Visited; + + while (!Worklist.empty()) { +BasicBlock* BB = Worklist.back(); +Worklist.pop_back(); +Visited.insert(BB); + +bool ContainsAccess = false; +for (BasicBlock::iterator I = BB->begin(), E = BB->end(); I != E; ++I) + if (isa(I) || isa(I)) { +ContainsAccess = true; +break; + } + +if (ContainsAccess) continue; + +TerminatorInst* TI = BB->getTerminator(); +if (isa(TI) || isa(TI)) { + for (unsigned i = 0; i < TI->getNumSuccessors(); ++i) +if (!Visited.count(TI->getSuccessor(i))) + Worklist.push_back(TI->getSuccessor(i)); +} else { + return false; +} + } + + return true; +} /// isSafeToPromoteArgument - As you might guess from the name of this method, /// it checks to see if it is both safe and useful to promote the argument. @@ -186,8 +220,6 @@ /// elements of the aggregate in order to avoid exploding the number of /// arguments passed in. bool ArgPromotion::isSafeToPromoteArgument(Argument *Arg) const { - AliasAnalysis &AA = getAnalysis(); - // We can only promote this argument if all of the uses are loads, or are GEP // instructions (with constant indices) that are subsequently loaded. bool HasLoadInEntryBlock = false; @@ -242,25 +274,6 @@ } GEPIndices.push_back(Operands); } -} else if (CallInst* CI = dyn_cast(*UI)) { - // Is this a recursive call? - if (CI->getCalledFunction() != Arg->getParent()) -return false; - - // Find out what position argument we're dealing with. - unsigned Position = 0; - Function::arg_iterator ArgPos = Arg->getParent()->arg_begin(); - while (Arg != ArgPos) { -assert(ArgPos != Arg->getParent()->arg_end() && - "Arg not in parent's arg list?"); -Position++; -ArgPos++; - } - - // We only know that the call is safe if it's passing the argument in - // the same position that it came in at. - if (UI.getOperandNo() != Position+1) -return false; } else { return false; // Not a load or a GEP. } @@ -273,7 +286,7 @@ // of the pointer in the entry block of the function) or if we can prove that // all pointers passed in are always to legal locations (for example, no null // pointers are passed in, no pointers to free'd memory, etc). - if (!HasLoadInEntryBlock && !AllCalleesPassInValidPointerForArgument(Arg)) + if (!AccessOccursOnPath(Arg) && !AllCalleesPassInValidPointerForArgument(Arg)) return false; // Cannot prove that this is safe!! // Okay, now we know that the argument is only used by load instructions and @@ -285,7 +298,8 @@ // Because there could be several/many load instructions, remember which // blocks we know to be transparent to the load. std::set TranspBlocks; - + + AliasAnalysis &AA = getAnalysis(); TargetData &TD = getAnalysis(); for (unsigned i = 0, e = Loads.size(); i != e; ++i) { @@ -380,17 +394,15 @@ for (Value::use_iterator UI = I->use_begin(), E = I->use_end(); UI != E; ++UI) { Instruction *User = cast(*UI); -if (!isa(User)) { - assert(isa(User) || isa(User)); - std::vector Indices(User->op_begin()+1, User->op_end()); - ArgIndices.insert(Indices); - LoadInst *OrigLoad; - if (LoadInst *L = dyn_cast(User)) -OrigLoad = L; - else -OrigLoad = cast(User->use_back()); - OriginalLoads[Indices] = OrigLoad; -} +assert(isa(User) || isa(User)); +std::vector Indices(User->op_begin()+1, User->op_end()); +ArgIndices.insert(Indices); +LoadInst *OrigLoad; +if (LoadInst *L = dyn_cast(User)) + OrigLoad = L; +else + OrigLoad = cast(User->use_back()); +
[llvm-commits] CVS: llvm-www/demo/index.cgi
Changes in directory llvm-www/demo: index.cgi updated: 1.65 -> 1.66 --- Log message: update email addr --- Diffs of the changes: (+2 -2) index.cgi |4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Index: llvm-www/demo/index.cgi diff -u llvm-www/demo/index.cgi:1.65 llvm-www/demo/index.cgi:1.66 --- llvm-www/demo/index.cgi:1.65Mon Aug 14 16:12:35 2006 +++ llvm-www/demo/index.cgi Fri Sep 15 01:31:45 2006 @@ -5,7 +5,7 @@ # doing remote web JO99C compilations. (It could still be used for that # purpose, though the two scripts have diverged somewhat.) # -# Last modified $Date: 2006/08/14 21:12:35 $ +# Last modified $Date: 2006/09/15 06:31:45 $ # use strict; @@ -450,7 +450,7 @@ $lg = $c->param('language'); $ip = $c->remote_addr(); chomp( $host = `host $ip` ) if $ip; -mailto( '[EMAIL PROTECTED]', +mailto( '[EMAIL PROTECTED]', "--- Query: ---\nFrom: ($ip) $host\nInput: $lines lines of $lg\n" . "C++ demangle = " . ( $c->param('cxxdemangle') ? 1 : 0 ) ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits