[llvm-commits] CVS: llvm/lib/Linker/LinkItems.cpp
Changes in directory llvm/lib/Linker: LinkItems.cpp updated: 1.10 -> 1.11 --- Log message: For PR1302: http://llvm.org/PR1302 : Use local variable names that match the function parameter name that it is passed to so the code is more clear, to wit: is_bytecode -> is_native --- Diffs of the changes: (+8 -8) LinkItems.cpp | 16 1 files changed, 8 insertions(+), 8 deletions(-) Index: llvm/lib/Linker/LinkItems.cpp diff -u llvm/lib/Linker/LinkItems.cpp:1.10 llvm/lib/Linker/LinkItems.cpp:1.11 --- llvm/lib/Linker/LinkItems.cpp:1.10 Wed Apr 4 01:33:17 2007 +++ llvm/lib/Linker/LinkItems.cpp Wed Apr 4 01:44:18 2007 @@ -32,10 +32,10 @@ I != E; ++I) { if (I->second) { // Link in the library suggested. - bool is_bytecode = true; - if (LinkInLibrary(I->first, is_bytecode)) + bool is_native = false; + if (LinkInLibrary(I->first, is_native)) return true; - if (!is_bytecode) + if (is_native) NativeItems.push_back(*I); } else { // Link in the file suggested @@ -52,10 +52,10 @@ // that module should also be aggregated with duplicates eliminated. This is // now the time to process the dependent libraries to resolve any remaining // symbols. - bool is_bytecode; + bool is_native; for (Module::lib_iterator I = Composite->lib_begin(), E = Composite->lib_end(); I != E; ++I) -if(LinkInLibrary(*I, is_bytecode)) +if(LinkInLibrary(*I, is_native)) return true; return false; @@ -113,9 +113,9 @@ bool Linker::LinkInLibraries(const std::vector &Libraries) { // Process the set of libraries we've been provided. - bool is_bytecode; + bool is_native = false; for (unsigned i = 0; i < Libraries.size(); ++i) -if (LinkInLibrary(Libraries[i], is_bytecode)) +if (LinkInLibrary(Libraries[i], is_native)) return true; // At this point we have processed all the libraries provided to us. Since @@ -126,7 +126,7 @@ const Module::LibraryListType& DepLibs = Composite->getLibraries(); for (Module::LibraryListType::const_iterator I = DepLibs.begin(), E = DepLibs.end(); I != E; ++I) -if (LinkInLibrary(*I, is_bytecode)) +if (LinkInLibrary(*I, is_native)) return true; return false; ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Transforms/Scalar/InstructionCombining.cpp
Changes in directory llvm/lib/Transforms/Scalar: InstructionCombining.cpp updated: 1.728 -> 1.729 --- Log message: Fix comment. --- Diffs of the changes: (+1 -1) InstructionCombining.cpp |2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/lib/Transforms/Scalar/InstructionCombining.cpp diff -u llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.728 llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.729 --- llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.728 Tue Apr 3 18:29:39 2007 +++ llvm/lib/Transforms/Scalar/InstructionCombining.cpp Wed Apr 4 01:42:45 2007 @@ -4903,7 +4903,7 @@ const APInt &RHSV = RHS->getValue(); switch (LHSI->getOpcode()) { - case Instruction::Xor: // (icmp pred (and X, XorCST), CI) + case Instruction::Xor: // (icmp pred (xor X, XorCST), CI) if (ConstantInt *XorCST = dyn_cast(LHSI->getOperand(1))) { // If this is a comparison that tests the signbit (X < 0) or (x > -1), // fold the xor. ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/tools/llvm-ld/llvm-ld.cpp
Changes in directory llvm/tools/llvm-ld: llvm-ld.cpp updated: 1.49 -> 1.50 --- Log message: For PR1302: http://llvm.org/PR1302 : Rename LinkItems as NativeLinkItems since it is filled out by the Linker library to contain only those items deemed to be native. --- Diffs of the changes: (+13 -12) llvm-ld.cpp | 25 + 1 files changed, 13 insertions(+), 12 deletions(-) Index: llvm/tools/llvm-ld/llvm-ld.cpp diff -u llvm/tools/llvm-ld/llvm-ld.cpp:1.49 llvm/tools/llvm-ld/llvm-ld.cpp:1.50 --- llvm/tools/llvm-ld/llvm-ld.cpp:1.49 Fri Feb 16 13:11:07 2007 +++ llvm/tools/llvm-ld/llvm-ld.cpp Wed Apr 4 01:34:22 2007 @@ -268,12 +268,12 @@ /// specified bytecode file. /// /// Inputs: -/// InputFilename - The name of the input bytecode file. -/// OutputFilename - The name of the file to generate. -/// LinkItems - The native libraries, files, code with which to link -/// LibPaths - The list of directories in which to find libraries. -/// gcc- The pathname to use for GGC. -/// envp - A copy of the process's current environment. +/// InputFilename - The name of the input bytecode file. +/// OutputFilename - The name of the file to generate. +/// NativeLinkItems - The native libraries, files, code with which to link +/// LibPaths- The list of directories in which to find libraries. +/// gcc - The pathname to use for GGC. +/// envp- A copy of the process's current environment. /// /// Outputs: /// None. @@ -446,8 +446,9 @@ // Construct a Linker (now that Verbose is set) Linker TheLinker(progname, OutputFilename, Verbose); -// Keep track of the native link items (vice the bytecode items) -Linker::ItemList LinkItems; + +// Keep track of the native link items (versus the bytecode items) +Linker::ItemList NativeLinkItems; // Add library paths to the linker TheLinker.addPaths(LibPaths); @@ -476,7 +477,7 @@ BuildLinkItems(Items, InputFilenames, Libraries); // Link all the items together - if (TheLinker.LinkInItems(Items,LinkItems) ) + if (TheLinker.LinkInItems(Items, NativeLinkItems) ) return 1; // Error already printed } @@ -563,7 +564,7 @@ if (Verbose) cout << "Generating Native Code\n"; if (0 != GenerateNative(OutputFilename, AssemblyFile.toString(), -LinkItems,gcc,envp,ErrMsg)) +NativeLinkItems, gcc, envp, ErrMsg)) PrintAndExit(ErrMsg); // Remove the assembly language file. @@ -595,8 +596,8 @@ if (Verbose) cout << "Generating Native Code\n"; -if (0 != GenerateNative(OutputFilename, CFile.toString(), LinkItems, -gcc, envp, ErrMsg)) +if (0 != GenerateNative(OutputFilename, CFile.toString(), +NativeLinkItems, gcc, envp, ErrMsg)) PrintAndExit(ErrMsg); // Remove the assembly language file. ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Linker/LinkItems.cpp
Changes in directory llvm/lib/Linker: LinkItems.cpp updated: 1.9 -> 1.10 --- Log message: For PR1302: http://llvm.org/PR1302 : Implement file tests for both LinkInLibrary and LinkInFile to determine if the file is native. Don't generate warnings if the file is native. --- Diffs of the changes: (+61 -31) LinkItems.cpp | 92 ++ 1 files changed, 61 insertions(+), 31 deletions(-) Index: llvm/lib/Linker/LinkItems.cpp diff -u llvm/lib/Linker/LinkItems.cpp:1.9 llvm/lib/Linker/LinkItems.cpp:1.10 --- llvm/lib/Linker/LinkItems.cpp:1.9 Sat Nov 11 05:54:25 2006 +++ llvm/lib/Linker/LinkItems.cpp Wed Apr 4 01:33:17 2007 @@ -33,14 +33,17 @@ if (I->second) { // Link in the library suggested. bool is_bytecode = true; - if (LinkInLibrary(I->first,is_bytecode)) + if (LinkInLibrary(I->first, is_bytecode)) return true; if (!is_bytecode) NativeItems.push_back(*I); } else { // Link in the file suggested - if (LinkInFile(sys::Path(I->first))) + bool is_native = false; + if (LinkInFile(sys::Path(I->first), is_native)) return true; + if (is_native) +NativeItems.push_back(*I); } } @@ -61,8 +64,8 @@ /// LinkInLibrary - links one library into the HeadModule. /// -bool Linker::LinkInLibrary(const std::string& Lib, bool& is_bytecode) { - is_bytecode = false; +bool Linker::LinkInLibrary(const std::string& Lib, bool& is_native) { + is_native = false; // Determine where this library lives. sys::Path Pathname = FindLib(Lib); if (Pathname.isEmpty()) @@ -72,20 +75,27 @@ std::string Magic; Pathname.getMagicNumber(Magic, 64); switch (sys::IdentifyFileType(Magic.c_str(), 64)) { -case sys::BytecodeFileType: -case sys::CompressedBytecodeFileType: +default: assert(0 && "Bad file type identification"); +case sys::Unknown_FileType: + return warning("Supposed library '" + Lib + "' isn't a library."); + +case sys::Bytecode_FileType: +case sys::CompressedBytecode_FileType: // LLVM ".so" file. - if (LinkInFile(Pathname)) + if (LinkInFile(Pathname, is_native)) return error("Cannot link file '" + Pathname.toString() + "'"); - is_bytecode = true; break; -case sys::ArchiveFileType: + +case sys::Archive_FileType: if (LinkInArchive(Pathname)) return error("Cannot link archive '" + Pathname.toString() + "'"); - is_bytecode = true; break; -default: - return warning("Supposed library '" + Lib + "' isn't a library."); + +case sys::ELF_FileType: +case sys::Mach_O_FileType: +case sys::COFF_FileType: + is_native = true; + break; } return false; } @@ -135,28 +145,47 @@ /// TRUE - An error occurred. /// FALSE - No errors. /// -bool Linker::LinkInFile(const sys::Path &File) { +bool Linker::LinkInFile(const sys::Path &File, bool &is_native) { + is_native = false; // Make sure we can at least read the file if (!File.canRead()) return error("Cannot find linker input '" + File.toString() + "'"); - // A user may specify an ar archive without -l, perhaps because it - // is not installed as a library. Detect that and link the library. - if (File.isArchive()) { -if (LinkInArchive(File)) - return error("Cannot link archive '" + File.toString() + "'"); - } else if (File.isBytecodeFile()) { -verbose("Linking bytecode file '" + File.toString() + "'"); - -std::auto_ptr M(LoadObject(File)); -if (M.get() == 0) - return error("Cannot load file '" + File.toString() + "'" + Error); -if (LinkInModule(M.get())) - return error("Cannot link file '" + File.toString() + "'" + Error); - -verbose("Linked in file '" + File.toString() + "'"); - } else { -return warning("File of unknown type '" + File.toString() + "' ignored."); + // If its an archive, try to link it in + std::string Magic; + File.getMagicNumber(Magic, 64); + switch (sys::IdentifyFileType(Magic.c_str(), 64)) { +default: assert(0 && "Bad file type identification"); +case sys::Unknown_FileType: + return warning("Supposed object file '" + File.toString() + + "' not recognized as such"); + +case sys::Archive_FileType: + // A user may specify an ar archive without -l, perhaps because it + // is not installed as a library. Detect that and link the archive. + verbose("Linking archive file '" + File.toString() + "'"); + if (LinkInArchive(File)) +return error("Cannot link archive '" + File.toString() + "'"); + break; + +case sys::Bytecode_FileType: +case sys::CompressedBytecode_FileType: { + verbose("Linking bytecode file '" + File.toString() + "'"); + std::auto_ptr M(LoadObject(File)); + if (M.get() == 0) +return error("Cannot load file '" + File.toString() + "'" + Error); + if (LinkInModule(M.get())) +ret
[llvm-commits] CVS: llvm/include/llvm/Linker.h
Changes in directory llvm/include/llvm: Linker.h updated: 1.21 -> 1.22 --- Log message: Make the LinkInFile and LinkInLibrary both return an indication of whether the file was found to be a native library (and thus not linked by these functions). --- Diffs of the changes: (+3 -2) Linker.h |5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) Index: llvm/include/llvm/Linker.h diff -u llvm/include/llvm/Linker.h:1.21 llvm/include/llvm/Linker.h:1.22 --- llvm/include/llvm/Linker.h:1.21 Sat Nov 11 13:59:25 2006 +++ llvm/include/llvm/Linker.h Wed Apr 4 01:32:01 2007 @@ -182,7 +182,8 @@ /// @see getLastError /// @brief Link in a single file. bool LinkInFile( - const sys::Path& File ///< File to link in. + const sys::Path& File, ///< File to link in. + bool &is_native///< Indicates if the file is native object file ); /// This function provides a way to selectively link in a set of modules, @@ -212,7 +213,7 @@ /// @brief Link one library into the module bool LinkInLibrary ( const std::string& Library, ///< The library to link in - bool& is_file ///< Indicates if lib is really a bc file + bool& is_native ///< Indicates if lib a native library ); /// This function links one bytecode archive, \p Filename, into the module. ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Bytecode/Archive/Archive.cpp ArchiveReader.cpp ArchiveWriter.cpp
Changes in directory llvm/lib/Bytecode/Archive: Archive.cpp updated: 1.19 -> 1.20 ArchiveReader.cpp updated: 1.49 -> 1.50 ArchiveWriter.cpp updated: 1.36 -> 1.37 --- Log message: For PR1302: http://llvm.org/PR1302 : Adjust useage of sys::Path::FileType for new enumerator names. --- Diffs of the changes: (+6 -6) Archive.cpp |4 ++-- ArchiveReader.cpp |4 ++-- ArchiveWriter.cpp |4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) Index: llvm/lib/Bytecode/Archive/Archive.cpp diff -u llvm/lib/Bytecode/Archive/Archive.cpp:1.19 llvm/lib/Bytecode/Archive/Archive.cpp:1.20 --- llvm/lib/Bytecode/Archive/Archive.cpp:1.19 Thu Mar 29 14:05:44 2007 +++ llvm/lib/Bytecode/Archive/Archive.cpp Wed Apr 4 01:31:04 2007 @@ -125,10 +125,10 @@ // Determine what kind of file it is switch (sys::IdentifyFileType(signature,4)) { -case sys::BytecodeFileType: +case sys::Bytecode_FileType: flags |= BytecodeFlag; break; -case sys::CompressedBytecodeFileType: +case sys::CompressedBytecode_FileType: flags |= CompressedBytecodeFlag; flags &= ~CompressedFlag; break; Index: llvm/lib/Bytecode/Archive/ArchiveReader.cpp diff -u llvm/lib/Bytecode/Archive/ArchiveReader.cpp:1.49 llvm/lib/Bytecode/Archive/ArchiveReader.cpp:1.50 --- llvm/lib/Bytecode/Archive/ArchiveReader.cpp:1.49Wed Feb 7 15:41:01 2007 +++ llvm/lib/Bytecode/Archive/ArchiveReader.cpp Wed Apr 4 01:31:04 2007 @@ -205,10 +205,10 @@ // Determine if this is a bytecode file switch (sys::IdentifyFileType(At, 4)) { -case sys::BytecodeFileType: +case sys::Bytecode_FileType: flags |= ArchiveMember::BytecodeFlag; break; -case sys::CompressedBytecodeFileType: +case sys::CompressedBytecode_FileType: flags |= ArchiveMember::CompressedBytecodeFlag; flags &= ~ArchiveMember::CompressedFlag; break; Index: llvm/lib/Bytecode/Archive/ArchiveWriter.cpp diff -u llvm/lib/Bytecode/Archive/ArchiveWriter.cpp:1.36 llvm/lib/Bytecode/Archive/ArchiveWriter.cpp:1.37 --- llvm/lib/Bytecode/Archive/ArchiveWriter.cpp:1.36Thu Mar 29 14:05:44 2007 +++ llvm/lib/Bytecode/Archive/ArchiveWriter.cpp Wed Apr 4 01:31:04 2007 @@ -178,10 +178,10 @@ std::string magic; mbr->path.getMagicNumber(magic,4); switch (sys::IdentifyFileType(magic.c_str(),4)) { -case sys::BytecodeFileType: +case sys::Bytecode_FileType: flags |= ArchiveMember::BytecodeFlag; break; -case sys::CompressedBytecodeFileType: +case sys::CompressedBytecode_FileType: flags |= ArchiveMember::CompressedBytecodeFlag; break; default: ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/System/Path.cpp
Changes in directory llvm/lib/System: Path.cpp updated: 1.21 -> 1.22 --- Log message: For PR1302: http://llvm.org/PR1302 : Implement recognition of COFF, ELF and Mach-O object/shared lib files. --- Diffs of the changes: (+38 -9) Path.cpp | 47 ++- 1 files changed, 38 insertions(+), 9 deletions(-) Index: llvm/lib/System/Path.cpp diff -u llvm/lib/System/Path.cpp:1.21 llvm/lib/System/Path.cpp:1.22 --- llvm/lib/System/Path.cpp:1.21 Wed Jul 26 11:55:39 2006 +++ llvm/lib/System/Path.cppWed Apr 4 01:30:26 2007 @@ -44,25 +44,54 @@ assert(length >=4 && "Invalid magic number length"); switch (magic[0]) { case 'l': - if (magic[1] == 'l' && magic[2] == 'v') { + if (magic[1] == 'l' && magic[2] == 'v') if (magic[3] == 'c') - return CompressedBytecodeFileType; + return CompressedBytecode_FileType; else if (magic[3] == 'm') - return BytecodeFileType; - } + return Bytecode_FileType; break; - case '!': - if (length >= 8) { + if (length >= 8) if (memcmp(magic,"!\n",8) == 0) - return ArchiveFileType; - } + return Archive_FileType; + break; + +case '\177': + if (magic[1] == 'E' && magic[2] == 'L' && magic[3] == 'F') +return ELF_FileType; + break; + +case 0xCE: +case 0xCF: + // This is complicated by an overlap with Java class files. + // See the Mach-O section in /usr/share/file/magic for details. + if (magic[1] == char(0xFA) && magic[2] == char(0xED) && + magic[3] == char(0xFE)) +if (length >= 15) + if (magic[15] == 1 || magic[15] == 3 || magic[15] == 6 || + magic[15] == 9) +return Mach_O_FileType; + break; + +case 0xF0: // PowerPC Windows +case 0x83: // Alpha 32-bit +case 0x84: // Alpha 64-bit +case 0x66: // MPS R4000 Windows +case 0x50: // mc68K +case 0x4c: // 80386 Windows + if (magic[1] == 0x01) +return COFF_FileType; + +case 0x90: // PA-RISC Windows +case 0x68: // mc68K Windows + if (magic[1] == 0x02) +return COFF_FileType; break; default: break; } - return UnknownFileType; + return Unknown_FileType; } bool ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/include/llvm/System/Path.h
Changes in directory llvm/include/llvm/System: Path.h updated: 1.48 -> 1.49 --- Log message: For PR1302: http://llvm.org/PR1302 : Make the FileType enumerators more readable and add COFF, ELF and Mach-O. --- Diffs of the changes: (+7 -4) Path.h | 11 +++ 1 files changed, 7 insertions(+), 4 deletions(-) Index: llvm/include/llvm/System/Path.h diff -u llvm/include/llvm/System/Path.h:1.48 llvm/include/llvm/System/Path.h:1.49 --- llvm/include/llvm/System/Path.h:1.48Thu Mar 29 14:05:44 2007 +++ llvm/include/llvm/System/Path.h Wed Apr 4 01:29:49 2007 @@ -536,10 +536,13 @@ /// This enumeration delineates the kinds of files that LLVM knows about. enum LLVMFileType { -UnknownFileType = 0,///< Unrecognized file -BytecodeFileType = 1, ///< Uncompressed bytecode file -CompressedBytecodeFileType = 2, ///< Compressed bytecode file -ArchiveFileType = 3 ///< ar style archive file +Unknown_FileType = 0,///< Unrecognized file +Bytecode_FileType = 1, ///< Uncompressed bytecode file +CompressedBytecode_FileType = 2, ///< Compressed bytecode file +Archive_FileType = 3,///< ar style archive file +ELF_FileType = 4,///< Native ELF object file or lib +Mach_O_FileType = 5, ///< Native Mach-O object file or lib +COFF_FileType = 6///< COFF object file or lib }; /// This utility function allows any memory block to be examined in order ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/include/llvm/ADT/APInt.h
Changes in directory llvm/include/llvm/ADT: APInt.h updated: 1.62 -> 1.63 --- Log message: trivial optimization --- Diffs of the changes: (+1 -1) APInt.h |2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/include/llvm/ADT/APInt.h diff -u llvm/include/llvm/ADT/APInt.h:1.62 llvm/include/llvm/ADT/APInt.h:1.63 --- llvm/include/llvm/ADT/APInt.h:1.62 Mon Apr 2 23:25:46 2007 +++ llvm/include/llvm/ADT/APInt.h Wed Apr 4 01:18:21 2007 @@ -278,7 +278,7 @@ /// This converts the APInt to a boolean value as a test against zero. /// @brief Boolean conversion function. inline bool getBoolValue() const { -return countLeadingZeros() != BitWidth; +return *this != 0; } /// @} ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
Re: [llvm-commits] CVS: llvm/docs/LangRef.html
On Apr 3, 2007, at 10:46 PM, Reid Spencer wrote: > Changes in directory llvm/docs: > > LangRef.html updated: 1.225 -> 1.226 > --- > Log message: > > Appease Chris' pedantic streak. Heh, it's just a streak? -Chris ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/docs/LangRef.html
Changes in directory llvm/docs: LangRef.html updated: 1.225 -> 1.226 --- Log message: Appease Chris' pedantic streak. --- Diffs of the changes: (+15 -14) LangRef.html | 29 +++-- 1 files changed, 15 insertions(+), 14 deletions(-) Index: llvm/docs/LangRef.html diff -u llvm/docs/LangRef.html:1.225 llvm/docs/LangRef.html:1.226 --- llvm/docs/LangRef.html:1.225Tue Apr 3 21:42:35 2007 +++ llvm/docs/LangRef.html Wed Apr 4 00:46:04 2007 @@ -184,7 +184,8 @@ 'llvm.ctpop.*' Intrinsic 'llvm.ctlz.*' Intrinsic 'llvm.cttz.*' Intrinsic - 'llvm.part.select.*' Intrinsic + 'llvm.bit.part_select.*' Intrinsic + 'llvm.bit.part_set.*' Intrinsic Debugger intrinsics @@ -4590,21 +4591,21 @@ - 'llvm.bit.part.select.*' Intrinsic + 'llvm.bit.part_select.*' Intrinsic Syntax: -This is an overloaded intrinsic. You can use llvm.bit.part.select +This is an overloaded intrinsic. You can use llvm.bit.part_select on any integer bit width. - declare i17 @llvm.bit.part.select.i17.i17 (i17 %val, i32 %loBit, i32 %hiBit) - declare i29 @llvm.bit.part.select.i29.i29 (i29 %val, i32 %loBit, i32 %hiBit) + declare i17 @llvm.bit.part_select.i17.i17 (i17 %val, i32 %loBit, i32 %hiBit) + declare i29 @llvm.bit.part_select.i29.i29 (i29 %val, i32 %loBit, i32 %hiBit) Overview: -The 'llvm.bit.part.select' family of intrinsic functions selects a +The 'llvm.bit.part_select' family of intrinsic functions selects a range of bits from an integer value and returns them in the same bit width as the original value. @@ -4614,7 +4615,7 @@ arguments must be i32 type since they specify only a bit index. Semantics: -The operation of the 'llvm.bit.part.select' intrinsic has two modes +The operation of the 'llvm.bit.part_select' intrinsic has two modes of operation: forwards and reverse. If %loBit is greater than %hiBits then the intrinsic operates in reverse mode. Otherwise it operates in forward mode. @@ -4643,21 +4644,21 @@ - 'llvm.bit.part.set.*' Intrinsic + 'llvm.bit.part_set.*' Intrinsic Syntax: -This is an overloaded intrinsic. You can use llvm.bit.part.set on +This is an overloaded intrinsic. You can use llvm.bit.part_set on any integer bit width. - declare i17 @llvm.bit.part.set.i17.i17.i9 (i17 %val, i32 %bit, i9 %newbits) - declare i29 @llvm.bit.part.set.i29.i29.i13(i29 %val, i32 %bit, i13 %newbits) + declare i17 @llvm.bit.part_set.i17.i17.i9 (i17 %val, i32 %bit, i9 %newbits) + declare i29 @llvm.bit.part_set.i29.i29.i13(i29 %val, i32 %bit, i13 %newbits) Overview: -The 'llvm.bit.part.set' family of intrinsic functions sets a range +The 'llvm.bit.part_set' family of intrinsic functions sets a range of bits in a given value to a new value and returns the result. Arguments: @@ -4667,7 +4668,7 @@ of the first argument. Semantics: -The 'llvm.bit.part.set' intrinsic sets the value given by +The 'llvm.bit.part_set' intrinsic sets the value given by %newbits into %val at the bit index given by %bit. This is equivalent to the following sequence: @@ -4717,7 +4718,7 @@ mailto:[EMAIL PROTECTED]">Chris Lattner http://llvm.org";>The LLVM Compiler Infrastructure - Last modified: $Date: 2007/04/04 02:42:35 $ + Last modified: $Date: 2007/04/04 05:46:04 $ ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm-www/DevMtgMay2007.html
Changes in directory llvm-www: DevMtgMay2007.html updated: 1.43 -> 1.44 --- Log message: Add Steve Naroff --- Diffs of the changes: (+4 -4) DevMtgMay2007.html |8 1 files changed, 4 insertions(+), 4 deletions(-) Index: llvm-www/DevMtgMay2007.html diff -u llvm-www/DevMtgMay2007.html:1.43 llvm-www/DevMtgMay2007.html:1.44 --- llvm-www/DevMtgMay2007.html:1.43Tue Apr 3 19:59:59 2007 +++ llvm-www/DevMtgMay2007.html Tue Apr 3 23:15:45 2007 @@ -254,6 +254,7 @@ Gabe McArthurIndependent Paul McJonesAdobe Systems Incorporated. Scott MichelAerospace +Steve NaroffApple, Inc. Devang PatelApple, Inc. Fernando Magno Quintao PereiraUCLA Chuck RoseAdobe Systems Incorporated. @@ -266,16 +267,15 @@ - Total confirmed: 25 + Total confirmed: 26 Unconfirmed Attendees NameOrganization Unconfirmed 2Aerospace -Unconfirmed 1Apple, Inc. Unconfirmed 1Wind River Unconfirmed 1NASA, Ames - Total unconfirmed: 5 + Total unconfirmed: 4 @@ -285,6 +285,6 @@ src="http://jigsaw.w3.org/css-validator/images/vcss"; alt="Valid CSS!"> http://validator.w3.org/check/referer";>http://www.w3.org/Icons/valid-html401"; alt="Valid HTML 4.01!"> -Last modified: $Date: 2007/04/04 00:59:59 $ +Last modified: $Date: 2007/04/04 04:15:45 $ ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/docs/ReleaseNotes.html
Changes in directory llvm/docs: ReleaseNotes.html updated: 1.367 -> 1.368 --- Log message: Fix links to intrinsic functions outside LangRef.html --- Diffs of the changes: (+3 -3) ReleaseNotes.html |6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) Index: llvm/docs/ReleaseNotes.html diff -u llvm/docs/ReleaseNotes.html:1.367 llvm/docs/ReleaseNotes.html:1.368 --- llvm/docs/ReleaseNotes.html:1.367 Tue Jan 23 06:35:46 2007 +++ llvm/docs/ReleaseNotes.html Tue Apr 3 23:14:31 2007 @@ -363,8 +363,8 @@ frontends. The C backend does not correctly implement the llvm.stacksave or -llvm.stackrestore +href="LangRef.html#int_stacksave">llvm.stacksave or +llvm.stackrestore intrinsics. This means that some code compiled by it can run out of stack space if they depend on these (e.g. C99 varargs). @@ -680,7 +680,7 @@ src="http://www.w3.org/Icons/valid-html401"; alt="Valid HTML 4.01!" /> http://llvm.org/";>The LLVM Compiler Infrastructure - Last modified: $Date: 2007/01/23 12:35:46 $ + Last modified: $Date: 2007/04/04 04:14:31 $ ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
Re: [llvm-commits] eh_arm.cc
On Apr 3, 2007, at 8:54 PM, Jeff Cohen wrote: > Correction... I do not have eh_arm.cc. I'm at revision 301, and I > certainly pulled in something that requires eh_arm.cc. The fix should hit the mirror tonight -Chris ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
Re: [llvm-commits] CVS: llvm/docs/LangRef.html
On Apr 3, 2007, at 7:42 PM, Reid Spencer wrote: > > Remove intrinsics that we will not be implementing. > Fix the anchor names of intrinsics to all be int_ so as to distinguish > them from the i_ prefix reserved for instructions. Hey Reid, Please make sure nothing else references these links outside Langref. -Chris ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
Re: [llvm-commits] eh_arm.cc
Correction... I do not have eh_arm.cc. I'm at revision 301, and I certainly pulled in something that requires eh_arm.cc. Jeff Cohen wrote: > Yep... clean build. > > Dale Johannesen wrote: > >> On Apr 3, 2007, at 8:09 PM, Jeff Cohen wrote: >> >> >>> The build of llvm-gcc is now broken on other platforms: >>> >>> Making install in libsupc++ >>> gmake[2]: Entering directory >>> `/usr/home/jeffc/llvm-gcc/obj/amd64-unknown-freebsd6.2/libstdc++-v3/libsupc++' >>> >>> >>> gmake[2]: *** No rule to make target `eh_arm.lo', needed by >>> `libsupc++convenience.la'. Stop. >>> >> You have eh_arm.cc, and you reconfigured? The makefiles look to me >> like it should be finding this, >> the treatment of eh_arm looks identical to, for example, eh_alloc. >> Lauro, can you help? >> >> >>> Dale Johannesen wrote: >>> On Apr 3, 2007, at 6:49 AM, Lauro Ramos Venancio wrote: Files missed: > ? libstdc++-v3/libsupc++/eh_arm.cc > ? libstdc++-v3/libsupc++/eh_call.cc > ? gcc/config/arm/libunwind.S > ? gcc/config/arm/pr-support.c > ? gcc/config/arm/unwind-arm.c > ? gcc/config/arm/unaligned-funcs.c > ? gcc/config/arm/unwind-arm.h > > Lauro\ > > Sorry everybody, my fault. Should be OK now. > 2007/4/3, Lauro Ramos Venancio <[EMAIL PROTECTED]>: > > >> The file eh_arm.cc wasn't committed. It is in the patch. I can't test >> and see if other files are missing because the patch doesn't >> reach the >> public svn yet. >> >> Lauro >> >> 2007/4/3, Devang Patel <[EMAIL PROTECTED]>: >> >> >>> On Apr 2, 2007, at 11:34 PM, Bill Wendling wrote: >>> >>> >>> I'm getting this error during llvm-gcc compilation: make[3]: *** No rule to make target `eh_arm.cc', needed by `eh_arm.lo'. Stop. make[3]: *** Waiting for unfinished jobs >>> This is related to Lauro Ramos Venancio's patch Dale committed. >>> >>> - >>> Devang >>> ___ >>> llvm-commits mailing list >>> llvm-commits@cs.uiuc.edu >>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits >>> >>> >>> > ___ > llvm-commits mailing list > llvm-commits@cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits > > ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits >> >> >> > > ___ > llvm-commits mailing list > llvm-commits@cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits > > > > ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
Re: [llvm-commits] eh_arm.cc
Yep... clean build. Dale Johannesen wrote: > > On Apr 3, 2007, at 8:09 PM, Jeff Cohen wrote: > >> The build of llvm-gcc is now broken on other platforms: >> >> Making install in libsupc++ >> gmake[2]: Entering directory >> `/usr/home/jeffc/llvm-gcc/obj/amd64-unknown-freebsd6.2/libstdc++-v3/libsupc++' >> >> >> gmake[2]: *** No rule to make target `eh_arm.lo', needed by >> `libsupc++convenience.la'. Stop. > > You have eh_arm.cc, and you reconfigured? The makefiles look to me > like it should be finding this, > the treatment of eh_arm looks identical to, for example, eh_alloc. > Lauro, can you help? > >> Dale Johannesen wrote: >>> On Apr 3, 2007, at 6:49 AM, Lauro Ramos Venancio wrote: >>> Files missed: ? libstdc++-v3/libsupc++/eh_arm.cc ? libstdc++-v3/libsupc++/eh_call.cc ? gcc/config/arm/libunwind.S ? gcc/config/arm/pr-support.c ? gcc/config/arm/unwind-arm.c ? gcc/config/arm/unaligned-funcs.c ? gcc/config/arm/unwind-arm.h Lauro\ >>> >>> Sorry everybody, my fault. Should be OK now. >>> >>> 2007/4/3, Lauro Ramos Venancio <[EMAIL PROTECTED]>: > The file eh_arm.cc wasn't committed. It is in the patch. I can't test > and see if other files are missing because the patch doesn't > reach the > public svn yet. > > Lauro > > 2007/4/3, Devang Patel <[EMAIL PROTECTED]>: > >> On Apr 2, 2007, at 11:34 PM, Bill Wendling wrote: >> >> >>> I'm getting this error during llvm-gcc compilation: >>> >>> make[3]: *** No rule to make target `eh_arm.cc', needed by >>> `eh_arm.lo'. Stop. >>> make[3]: *** Waiting for unfinished jobs >>> >> This is related to Lauro Ramos Venancio's patch Dale committed. >> >> - >> Devang >> ___ >> llvm-commits mailing list >> llvm-commits@cs.uiuc.edu >> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits >> >> ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits >>> >>> ___ >>> llvm-commits mailing list >>> llvm-commits@cs.uiuc.edu >>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits >>> >>> >>> >>> >> > > > > ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
Re: [llvm-commits] eh_arm.cc
On Apr 3, 2007, at 8:09 PM, Jeff Cohen wrote: > The build of llvm-gcc is now broken on other platforms: > > Making install in libsupc++ > gmake[2]: Entering directory `/usr/home/jeffc/llvm-gcc/obj/amd64- > unknown-freebsd6.2/libstdc++-v3/libsupc++' > gmake[2]: *** No rule to make target `eh_arm.lo', needed by `libsupc > ++convenience.la'. Stop. You have eh_arm.cc, and you reconfigured? The makefiles look to me like it should be finding this, the treatment of eh_arm looks identical to, for example, eh_alloc. Lauro, can you help? > Dale Johannesen wrote: >> On Apr 3, 2007, at 6:49 AM, Lauro Ramos Venancio wrote: >> Files missed: >>> ? libstdc++-v3/libsupc++/eh_arm.cc >>> ? libstdc++-v3/libsupc++/eh_call.cc >>> ? gcc/config/arm/libunwind.S >>> ? gcc/config/arm/pr-support.c >>> ? gcc/config/arm/unwind-arm.c >>> ? gcc/config/arm/unaligned-funcs.c >>> ? gcc/config/arm/unwind-arm.h >>> >>> Lauro\ >>> >> >> Sorry everybody, my fault. Should be OK now. >> >> >>> 2007/4/3, Lauro Ramos Venancio <[EMAIL PROTECTED]>: >>> The file eh_arm.cc wasn't committed. It is in the patch. I can't test and see if other files are missing because the patch doesn't reach the public svn yet. Lauro 2007/4/3, Devang Patel <[EMAIL PROTECTED]>: > On Apr 2, 2007, at 11:34 PM, Bill Wendling wrote: > > >> I'm getting this error during llvm-gcc compilation: >> >> make[3]: *** No rule to make target `eh_arm.cc', needed by >> `eh_arm.lo'. Stop. >> make[3]: *** Waiting for unfinished jobs >> > This is related to Lauro Ramos Venancio's patch Dale committed. > > - > Devang > ___ > llvm-commits mailing list > llvm-commits@cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits > > >>> ___ >>> llvm-commits mailing list >>> llvm-commits@cs.uiuc.edu >>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits >>> >> >> ___ >> llvm-commits mailing list >> llvm-commits@cs.uiuc.edu >> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits >> >> >> >> > ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
Re: [llvm-commits] eh_arm.cc
The build of llvm-gcc is now broken on other platforms: Making install in libsupc++ gmake[2]: Entering directory `/usr/home/jeffc/llvm-gcc/obj/amd64-unknown-freebsd6.2/libstdc++-v3/libsupc++' gmake[2]: *** No rule to make target `eh_arm.lo', needed by `libsupc++convenience.la'. Stop. Dale Johannesen wrote: > On Apr 3, 2007, at 6:49 AM, Lauro Ramos Venancio wrote: > > >> Files missed: >> ? libstdc++-v3/libsupc++/eh_arm.cc >> ? libstdc++-v3/libsupc++/eh_call.cc >> ? gcc/config/arm/libunwind.S >> ? gcc/config/arm/pr-support.c >> ? gcc/config/arm/unwind-arm.c >> ? gcc/config/arm/unaligned-funcs.c >> ? gcc/config/arm/unwind-arm.h >> >> Lauro\ >> > > Sorry everybody, my fault. Should be OK now. > > >> 2007/4/3, Lauro Ramos Venancio <[EMAIL PROTECTED]>: >> >>> The file eh_arm.cc wasn't committed. It is in the patch. I can't test >>> and see if other files are missing because the patch doesn't reach >>> the >>> public svn yet. >>> >>> Lauro >>> >>> 2007/4/3, Devang Patel <[EMAIL PROTECTED]>: >>> On Apr 2, 2007, at 11:34 PM, Bill Wendling wrote: > I'm getting this error during llvm-gcc compilation: > > make[3]: *** No rule to make target `eh_arm.cc', needed by > `eh_arm.lo'. Stop. > make[3]: *** Waiting for unfinished jobs > This is related to Lauro Ramos Venancio's patch Dale committed. - Devang ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits >> ___ >> llvm-commits mailing list >> llvm-commits@cs.uiuc.edu >> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits >> > > ___ > llvm-commits mailing list > llvm-commits@cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits > > > > ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/docs/LangRef.html
Changes in directory llvm/docs: LangRef.html updated: 1.224 -> 1.225 --- Log message: Remove intrinsics that we will not be implementing. Fix the anchor names of intrinsics to all be int_ so as to distinguish them from the i_ prefix reserved for instructions. --- Diffs of the changes: (+68 -347) LangRef.html | 415 +-- 1 files changed, 68 insertions(+), 347 deletions(-) Index: llvm/docs/LangRef.html diff -u llvm/docs/LangRef.html:1.224 llvm/docs/LangRef.html:1.225 --- llvm/docs/LangRef.html:1.224Sun Apr 1 21:25:19 2007 +++ llvm/docs/LangRef.html Tue Apr 3 21:42:35 2007 @@ -146,44 +146,45 @@ Variable Argument Handling Intrinsics - 'llvm.va_start' Intrinsic - 'llvm.va_end' Intrinsic - 'llvm.va_copy' Intrinsic + 'llvm.va_start' Intrinsic + 'llvm.va_end' Intrinsic + 'llvm.va_copy' Intrinsic Accurate Garbage Collection Intrinsics - 'llvm.gcroot' Intrinsic - 'llvm.gcread' Intrinsic - 'llvm.gcwrite' Intrinsic + 'llvm.gcroot' Intrinsic + 'llvm.gcread' Intrinsic + 'llvm.gcwrite' Intrinsic Code Generator Intrinsics - 'llvm.returnaddress' Intrinsic - 'llvm.frameaddress' Intrinsic - 'llvm.stacksave' Intrinsic - 'llvm.stackrestore' Intrinsic - 'llvm.prefetch' Intrinsic - 'llvm.pcmarker' Intrinsic - llvm.readcyclecounter' Intrinsic + 'llvm.returnaddress' Intrinsic + 'llvm.frameaddress' Intrinsic + 'llvm.stacksave' Intrinsic + 'llvm.stackrestore' Intrinsic + 'llvm.prefetch' Intrinsic + 'llvm.pcmarker' Intrinsic + llvm.readcyclecounter' Intrinsic Standard C Library Intrinsics - 'llvm.memcpy.*' Intrinsic - 'llvm.memmove.*' Intrinsic - 'llvm.memset.*' Intrinsic - 'llvm.sqrt.*' Intrinsic - 'llvm.powi.*' Intrinsic + 'llvm.memcpy.*' Intrinsic + 'llvm.memmove.*' Intrinsic + 'llvm.memset.*' Intrinsic + 'llvm.sqrt.*' Intrinsic + 'llvm.powi.*' Intrinsic Bit Manipulation Intrinsics - 'llvm.bswap.*' Intrinsics + 'llvm.bswap.*' Intrinsics 'llvm.ctpop.*' Intrinsic 'llvm.ctlz.*' Intrinsic 'llvm.cttz.*' Intrinsic + 'llvm.part.select.*' Intrinsic Debugger intrinsics @@ -1498,7 +1499,7 @@ - %X = call i32 asm "bswap $0", "=r,r"(i32 %Y) + %X = call i32 asm "bswap $0", "=r,r"(i32 %Y) @@ -3663,7 +3664,7 @@ - 'llvm.va_start' Intrinsic + 'llvm.va_start' Intrinsic @@ -3692,7 +3693,7 @@ - 'llvm.va_end' Intrinsic + 'llvm.va_end' Intrinsic @@ -3701,7 +3702,7 @@ Overview: The 'llvm.va_end' intrinsic destroys-which has been initialized previously with llvm.va_start +which has been initialized previously with llvm.va_start or llvm.va_copy. Arguments: @@ -3712,15 +3713,15 @@ The 'llvm.va_end' intrinsic works just like the va_end macro available in C. In a target-dependent way, it destroys the va_list. -Calls to llvm.va_start and llvm.va_copy must be matched exactly +Calls to llvm.va_start and llvm.va_copy must be matched exactly with calls to llvm.va_end. - 'llvm.va_copy' Intrinsic + 'llvm.va_copy' Intrinsic @@ -3747,7 +3748,7 @@ The 'llvm.va_copy' intrinsic works just like the va_copy macro available in C. In a target-dependent way, it copies the source va_list element into the destination list. This intrinsic is necessary -because the llvm.va_start intrinsic may be +because the llvm.va_start intrinsic may be arbitrarily complex and require memory allocation, for example. @@ -3762,9 +3763,9 @@ LLVM support for Accurate Garbage Collection requires the implementation and generation of these intrinsics. -These intrinsics allow identification of GC roots on the +These intrinsics allow identification of GC roots on the stack, as well as garbage collector implementations that require read and write barriers. +href="#int_gcread">read and write barriers. Front-ends for type-safe garbage collected languages should generate these intrinsics to make use of the LLVM garbage collectors. For more details, see Accurate Garbage Collection with LLVM. @@ -3773,7 +3774,7 @@ - 'llvm.gcroot' Intrinsic + 'llvm.gcroot' Intrinsic @@ -3807,7 +3808,7 @@ - 'llvm.gcread' Intrinsic + 'llvm.gcread' Intrinsic @@ -3842,7 +3843,7 @@ - 'llvm.gcwrite' Intrinsic + 'llvm.gcwrite' Intrinsic @@ -3891,7 +3892,7 @@ - 'llvm.returnaddress' Intrinsic + 'llvm.returnaddress' Intrinsic @@ -3936,7 +3937,7 @@ - 'llvm.frameaddress' Intrinsic + 'llvm.frameaddress
[llvm-commits] CVS: llvm-www/DevMtgMay2007.html
Changes in directory llvm-www: DevMtgMay2007.html updated: 1.42 -> 1.43 --- Log message: Gabe confirmed. --- Diffs of the changes: (+4 -4) DevMtgMay2007.html |8 1 files changed, 4 insertions(+), 4 deletions(-) Index: llvm-www/DevMtgMay2007.html diff -u llvm-www/DevMtgMay2007.html:1.42 llvm-www/DevMtgMay2007.html:1.43 --- llvm-www/DevMtgMay2007.html:1.42Tue Apr 3 19:53:17 2007 +++ llvm-www/DevMtgMay2007.html Tue Apr 3 19:59:59 2007 @@ -251,6 +251,7 @@ Confirmed Attendees (M-Z) NameOrganization +Gabe McArthurIndependent Paul McJonesAdobe Systems Incorporated. Scott MichelAerospace Devang PatelApple, Inc. @@ -265,17 +266,16 @@ - Total confirmed: 24 + Total confirmed: 25 Unconfirmed Attendees NameOrganization -Gabe McArthurIndependent Unconfirmed 2Aerospace Unconfirmed 1Apple, Inc. Unconfirmed 1Wind River Unconfirmed 1NASA, Ames - Total unconfirmed: 6 + Total unconfirmed: 5 @@ -285,6 +285,6 @@ src="http://jigsaw.w3.org/css-validator/images/vcss"; alt="Valid CSS!"> http://validator.w3.org/check/referer";>http://www.w3.org/Icons/valid-html401"; alt="Valid HTML 4.01!"> -Last modified: $Date: 2007/04/04 00:53:17 $ +Last modified: $Date: 2007/04/04 00:59:59 $ ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm-www/llvm.css
Changes in directory llvm-www: llvm.css updated: 1.20 -> 1.21 --- Log message: Table headings centered. --- Diffs of the changes: (+1 -1) llvm.css |2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm-www/llvm.css diff -u llvm-www/llvm.css:1.20 llvm-www/llvm.css:1.21 --- llvm-www/llvm.css:1.20 Sat Mar 31 20:44:55 2007 +++ llvm-www/llvm.css Tue Apr 3 19:55:31 2007 @@ -95,7 +95,7 @@ .www TH{ border: 2px solid gray; font-weight: bold; font-size: 105%; color: black; background: url("img/lines.gif"); font-family: "Georgia,Palatino,Times,Roman,SanSerif"; - text-align: left; vertical-align: middle; } + text-align: center; vertical-align: middle; } TABLE.www { text-align: left; border: 2px solid black; border-collapse: collapse; margin-top: 1em; margin-left: 1em; margin-right: 1em; margin-bottom: 1em; } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm-www/DevMtgMay2007.html
Changes in directory llvm-www: DevMtgMay2007.html updated: 1.41 -> 1.42 --- Log message: Add Gabe McArthur --- Diffs of the changes: (+3 -2) DevMtgMay2007.html |5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) Index: llvm-www/DevMtgMay2007.html diff -u llvm-www/DevMtgMay2007.html:1.41 llvm-www/DevMtgMay2007.html:1.42 --- llvm-www/DevMtgMay2007.html:1.41Tue Apr 3 19:49:43 2007 +++ llvm-www/DevMtgMay2007.html Tue Apr 3 19:53:17 2007 @@ -269,12 +269,13 @@ Unconfirmed Attendees NameOrganization +Gabe McArthurIndependent Unconfirmed 2Aerospace Unconfirmed 1Apple, Inc. Unconfirmed 1Wind River Unconfirmed 1NASA, Ames - Total unconfirmed: 5 + Total unconfirmed: 6 @@ -284,6 +285,6 @@ src="http://jigsaw.w3.org/css-validator/images/vcss"; alt="Valid CSS!"> http://validator.w3.org/check/referer";>http://www.w3.org/Icons/valid-html401"; alt="Valid HTML 4.01!"> -Last modified: $Date: 2007/04/04 00:49:43 $ +Last modified: $Date: 2007/04/04 00:53:17 $ ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm-www/DevMtgMay2007.html
Changes in directory llvm-www: DevMtgMay2007.html updated: 1.40 -> 1.41 --- Log message: Two columns for confirmed attendees .. there's so many! --- Diffs of the changes: (+18 -4) DevMtgMay2007.html | 22 ++ 1 files changed, 18 insertions(+), 4 deletions(-) Index: llvm-www/DevMtgMay2007.html diff -u llvm-www/DevMtgMay2007.html:1.40 llvm-www/DevMtgMay2007.html:1.41 --- llvm-www/DevMtgMay2007.html:1.40Tue Apr 3 19:39:22 2007 +++ llvm-www/DevMtgMay2007.html Tue Apr 3 19:49:43 2007 @@ -225,8 +225,11 @@ Attendees The table below lists the confirmed attendees for the meeting. + + + -Confirmed Attendees +Confirmed Attendees (A-L) NameOrganization Vikram AdveUIUC Bob ArcherAdobe Systems Incorporated. @@ -242,6 +245,12 @@ Chris LattnerApple, Inc. Andrew LenharthUIUC Nick LewyckyIndependent + + + + +Confirmed Attendees (M-Z) +NameOrganization Paul McJonesAdobe Systems Incorporated. Scott MichelAerospace Devang PatelApple, Inc. @@ -252,6 +261,12 @@ Sarah ThompsonNASA, Ames Research Center Bill WendlingApple, Inc. Marcel WeiherMetaObject + + + + + Total confirmed: 24 + Unconfirmed Attendees NameOrganization Unconfirmed 2Aerospace @@ -259,8 +274,7 @@ Unconfirmed 1Wind River Unconfirmed 1NASA, Ames - Total confirmed attendees: 24 - Possible additional attendees: 5 + Total unconfirmed: 5 @@ -270,6 +284,6 @@ src="http://jigsaw.w3.org/css-validator/images/vcss"; alt="Valid CSS!"> http://validator.w3.org/check/referer";>http://www.w3.org/Icons/valid-html401"; alt="Valid HTML 4.01!"> -Last modified: $Date: 2007/04/04 00:39:22 $ +Last modified: $Date: 2007/04/04 00:49:43 $ ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/include/llvm/ADT/StringMap.h
Changes in directory llvm/include/llvm/ADT: StringMap.h updated: 1.13 -> 1.14 --- Log message: use calloc instead of new/memset, it is more efficient --- Diffs of the changes: (+1 -1) StringMap.h |2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/include/llvm/ADT/StringMap.h diff -u llvm/include/llvm/ADT/StringMap.h:1.13 llvm/include/llvm/ADT/StringMap.h:1.14 --- llvm/include/llvm/ADT/StringMap.h:1.13 Tue Apr 3 19:29:37 2007 +++ llvm/include/llvm/ADT/StringMap.h Tue Apr 3 19:44:30 2007 @@ -279,7 +279,7 @@ if (I->Item && I->Item != getTombstoneVal()) static_cast(I->Item)->Destroy(Allocator); } -delete [] TheTable; +free(TheTable); } }; ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Support/StringMap.cpp
Changes in directory llvm/lib/Support: StringMap.cpp updated: 1.11 -> 1.12 --- Log message: use calloc instead of new/memset, it is more efficient --- Diffs of the changes: (+2 -4) StringMap.cpp |6 ++ 1 files changed, 2 insertions(+), 4 deletions(-) Index: llvm/lib/Support/StringMap.cpp diff -u llvm/lib/Support/StringMap.cpp:1.11 llvm/lib/Support/StringMap.cpp:1.12 --- llvm/lib/Support/StringMap.cpp:1.11 Tue Apr 3 19:29:37 2007 +++ llvm/lib/Support/StringMap.cpp Tue Apr 3 19:44:31 2007 @@ -38,8 +38,7 @@ NumItems = 0; NumTombstones = 0; - TheTable = new ItemBucket[NumBuckets+1](); - memset(TheTable, 0, NumBuckets*sizeof(ItemBucket)); + TheTable = (ItemBucket*)calloc(NumBuckets+1, sizeof(ItemBucket)); // Allocate one extra bucket, set it to look filled so the iterators stop at // end. @@ -200,8 +199,7 @@ unsigned NewSize = NumBuckets*2; // Allocate one extra bucket which will always be non-empty. This allows the // iterators to stop at end. - ItemBucket *NewTableArray = new ItemBucket[NewSize+1](); - memset(NewTableArray, 0, NewSize*sizeof(ItemBucket)); + ItemBucket *NewTableArray =(ItemBucket*)calloc(NewSize+1, sizeof(ItemBucket)); NewTableArray[NewSize].Item = (StringMapEntryBase*)2; // Rehash all the items into their new buckets. Luckily :) we already have ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm-www/DevMtgMay2007.html
Changes in directory llvm-www: DevMtgMay2007.html updated: 1.39 -> 1.40 --- Log message: Add Andrew Lenharth and Fernando Magno Quintao Pereira --- Diffs of the changes: (+4 -2) DevMtgMay2007.html |6 -- 1 files changed, 4 insertions(+), 2 deletions(-) Index: llvm-www/DevMtgMay2007.html diff -u llvm-www/DevMtgMay2007.html:1.39 llvm-www/DevMtgMay2007.html:1.40 --- llvm-www/DevMtgMay2007.html:1.39Tue Apr 3 19:02:49 2007 +++ llvm-www/DevMtgMay2007.html Tue Apr 3 19:39:22 2007 @@ -240,10 +240,12 @@ Dale JohannesenApple, Inc. Christopher LambAgeia Technologies, Inc. Chris LattnerApple, Inc. +Andrew LenharthUIUC Nick LewyckyIndependent Paul McJonesAdobe Systems Incorporated. Scott MichelAerospace Devang PatelApple, Inc. +Fernando Magno Quintao PereiraUCLA Chuck RoseAdobe Systems Incorporated. Mark SchimmelWind River Reid SpencerIndependent @@ -257,7 +259,7 @@ Unconfirmed 1Wind River Unconfirmed 1NASA, Ames - Total confirmed attendees: 22 + Total confirmed attendees: 24 Possible additional attendees: 5 @@ -268,6 +270,6 @@ src="http://jigsaw.w3.org/css-validator/images/vcss"; alt="Valid CSS!"> http://validator.w3.org/check/referer";>http://www.w3.org/Icons/valid-html401"; alt="Valid HTML 4.01!"> -Last modified: $Date: 2007/04/04 00:02:49 $ +Last modified: $Date: 2007/04/04 00:39:22 $ ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/include/llvm/ValueSymbolTable.h
Changes in directory llvm/include/llvm: ValueSymbolTable.h updated: 1.9 -> 1.10 --- Log message: Initialize the symbol table to zero explicitly. This ensures that the symbol table does no allocations for prototypes or other lazily deserialized functions, saving significant space and time. --- Diffs of the changes: (+1 -1) ValueSymbolTable.h |2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/include/llvm/ValueSymbolTable.h diff -u llvm/include/llvm/ValueSymbolTable.h:1.9 llvm/include/llvm/ValueSymbolTable.h:1.10 --- llvm/include/llvm/ValueSymbolTable.h:1.9Sun Mar 25 20:45:35 2007 +++ llvm/include/llvm/ValueSymbolTable.hTue Apr 3 19:30:49 2007 @@ -61,7 +61,7 @@ /// @{ public: - ValueSymbolTable() : vmap(16), LastUnique(0) {} + ValueSymbolTable() : vmap(0), LastUnique(0) {} ~ValueSymbolTable(); /// @} ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Support/StringMap.cpp
Changes in directory llvm/lib/Support: StringMap.cpp updated: 1.10 -> 1.11 --- Log message: Extend StringMap to support being initialized as completely empty. When initialized this way, they do not do a malloc to allocate their buckets. --- Diffs of the changes: (+22 -2) StringMap.cpp | 24 ++-- 1 files changed, 22 insertions(+), 2 deletions(-) Index: llvm/lib/Support/StringMap.cpp diff -u llvm/lib/Support/StringMap.cpp:1.10 llvm/lib/Support/StringMap.cpp:1.11 --- llvm/lib/Support/StringMap.cpp:1.10 Tue Apr 3 17:15:38 2007 +++ llvm/lib/Support/StringMap.cpp Tue Apr 3 19:29:37 2007 @@ -16,10 +16,25 @@ using namespace llvm; StringMapImpl::StringMapImpl(unsigned InitSize, unsigned itemSize) { + ItemSize = itemSize; + + // If a size is specified, initialize the table with that many buckets. + if (InitSize) { +init(InitSize); +return; + } + + // Otherwise, initialize it with zero buckets to avoid the allocation. + TheTable = 0; + NumBuckets = 0; + NumItems = 0; + NumTombstones = 0; +} + +void StringMapImpl::init(unsigned InitSize) { assert((InitSize & (InitSize-1)) == 0 && "Init Size must be a power of 2 or zero!"); NumBuckets = InitSize ? InitSize : 16; - ItemSize = itemSize; NumItems = 0; NumTombstones = 0; @@ -52,8 +67,12 @@ /// case, the FullHashValue field of the bucket will be set to the hash value /// of the string. unsigned StringMapImpl::LookupBucketFor(const char *NameStart, - const char *NameEnd) { +const char *NameEnd) { unsigned HTSize = NumBuckets; + if (HTSize == 0) { // Hash table unallocated so far? +init(16); +HTSize = NumBuckets; + } unsigned FullHashValue = HashString(NameStart, NameEnd); unsigned BucketNo = FullHashValue & (HTSize-1); @@ -110,6 +129,7 @@ /// This does not modify the map. int StringMapImpl::FindKey(const char *KeyStart, const char *KeyEnd) const { unsigned HTSize = NumBuckets; + if (HTSize == 0) return -1; // Really empty table? unsigned FullHashValue = HashString(KeyStart, KeyEnd); unsigned BucketNo = FullHashValue & (HTSize-1); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/include/llvm/ADT/StringMap.h
Changes in directory llvm/include/llvm/ADT: StringMap.h updated: 1.12 -> 1.13 --- Log message: Extend StringMap to support being initialized as completely empty. When initialized this way, they do not do a malloc to allocate their buckets. --- Diffs of the changes: (+24 -11) StringMap.h | 35 --- 1 files changed, 24 insertions(+), 11 deletions(-) Index: llvm/include/llvm/ADT/StringMap.h diff -u llvm/include/llvm/ADT/StringMap.h:1.12 llvm/include/llvm/ADT/StringMap.h:1.13 --- llvm/include/llvm/ADT/StringMap.h:1.12 Sun Feb 11 15:46:36 2007 +++ llvm/include/llvm/ADT/StringMap.h Tue Apr 3 19:29:37 2007 @@ -55,6 +55,7 @@ unsigned NumTombstones; unsigned ItemSize; protected: + StringMapImpl(unsigned itemSize) : ItemSize(itemSize) { init(16); } StringMapImpl(unsigned InitSize, unsigned ItemSize); void RehashTable(); @@ -87,7 +88,8 @@ /// RemoveKey - Remove the StringMapEntry for the specified key from the /// table, returning it. If the key is not in the table, this returns null. StringMapEntryBase *RemoveKey(const char *KeyStart, const char *KeyEnd); - +private: + void init(unsigned Size); public: static StringMapEntryBase *getTombstoneVal() { return (StringMapEntryBase*)-1; @@ -185,7 +187,8 @@ AllocatorTy Allocator; typedef StringMapEntry MapEntryTy; public: - StringMap(unsigned InitialSize = 0) + StringMap() : StringMapImpl(sizeof(MapEntryTy)) {} + StringMap(unsigned InitialSize) : StringMapImpl(InitialSize, sizeof(MapEntryTy)) {} AllocatorTy &getAllocator() { return Allocator; } @@ -194,11 +197,18 @@ typedef StringMapConstIterator const_iterator; typedef StringMapIterator iterator; - iterator begin() { return iterator(TheTable); } - iterator end() { return iterator(TheTable+NumBuckets); } - const_iterator begin() const { return const_iterator(TheTable); } - const_iterator end() const { return const_iterator(TheTable+NumBuckets); } - + iterator begin() { +return iterator(TheTable, NumBuckets == 0); + } + iterator end() { +return iterator(TheTable+NumBuckets, true); + } + const_iterator begin() const { +return const_iterator(TheTable, NumBuckets == 0); + } + const_iterator end() const { +return const_iterator(TheTable+NumBuckets, true); + } iterator find(const char *KeyStart, const char *KeyEnd) { int Bucket = FindKey(KeyStart, KeyEnd); @@ -279,8 +289,10 @@ protected: StringMapImpl::ItemBucket *Ptr; public: - StringMapConstIterator(StringMapImpl::ItemBucket *Bucket) : Ptr(Bucket) { -AdvancePastEmptyBuckets(); + StringMapConstIterator(StringMapImpl::ItemBucket *Bucket, + bool NoAdvance = false) + : Ptr(Bucket) { +if (!NoAdvance) AdvancePastEmptyBuckets(); } const StringMapEntry &operator*() const { @@ -316,8 +328,9 @@ template class StringMapIterator : public StringMapConstIterator { public: - StringMapIterator(StringMapImpl::ItemBucket *Bucket) -: StringMapConstIterator(Bucket) { + StringMapIterator(StringMapImpl::ItemBucket *Bucket, +bool NoAdvance = false) +: StringMapConstIterator(Bucket, NoAdvance) { } StringMapEntry &operator*() const { return *static_cast*>(this->Ptr->Item); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/test/CodeGen/ARM/inlineasm2.ll
Changes in directory llvm/test/CodeGen/ARM: inlineasm2.ll added (r1.1) --- Log message: New asm test case. --- Diffs of the changes: (+11 -0) inlineasm2.ll | 11 +++ 1 files changed, 11 insertions(+) Index: llvm/test/CodeGen/ARM/inlineasm2.ll diff -c /dev/null llvm/test/CodeGen/ARM/inlineasm2.ll:1.1 *** /dev/null Tue Apr 3 19:15:27 2007 --- llvm/test/CodeGen/ARM/inlineasm2.ll Tue Apr 3 19:15:17 2007 *** *** 0 --- 1,11 + ; RUN: llvm-as < %s | llc -march=arm -mattr=+vfp2 + + define double @__ieee754_sqrt(double %x) { + %tmp2 = tail call double asm "fsqrtd ${0:P}, ${1:P}", "=w,w"( double %x ) + ret double %tmp2 + } + + define float @__ieee754_sqrtf(float %x) { + %tmp2 = tail call float asm "fsqrts $0, $1", "=w,w"( float %x ) + ret float %tmp2 + } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/ARM/ARMAsmPrinter.cpp
Changes in directory llvm/lib/Target/ARM: ARMAsmPrinter.cpp updated: 1.63 -> 1.64 --- Log message: Implement inline asm modifier P. --- Diffs of the changes: (+1 -0) ARMAsmPrinter.cpp |1 + 1 files changed, 1 insertion(+) Index: llvm/lib/Target/ARM/ARMAsmPrinter.cpp diff -u llvm/lib/Target/ARM/ARMAsmPrinter.cpp:1.63 llvm/lib/Target/ARM/ARMAsmPrinter.cpp:1.64 --- llvm/lib/Target/ARM/ARMAsmPrinter.cpp:1.63 Thu Mar 29 02:49:34 2007 +++ llvm/lib/Target/ARM/ARMAsmPrinter.cpp Tue Apr 3 19:13:29 2007 @@ -688,6 +688,7 @@ switch (ExtraCode[0]) { default: return true; // Unknown modifier. case 'c': // Don't print "$" before a global var name or constant. +case 'P': // Print a VFP double precision register. printOperand(MI, OpNo); return false; case 'Q': ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/ARM/ARMISelLowering.cpp
Changes in directory llvm/lib/Target/ARM: ARMISelLowering.cpp updated: 1.38 -> 1.39 --- Log message: Typo. --- Diffs of the changes: (+1 -1) ARMISelLowering.cpp |2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/lib/Target/ARM/ARMISelLowering.cpp diff -u llvm/lib/Target/ARM/ARMISelLowering.cpp:1.38 llvm/lib/Target/ARM/ARMISelLowering.cpp:1.39 --- llvm/lib/Target/ARM/ARMISelLowering.cpp:1.38Mon Apr 2 19:13:57 2007 +++ llvm/lib/Target/ARM/ARMISelLowering.cpp Tue Apr 3 19:06:07 2007 @@ -1637,7 +1637,7 @@ case 'w': if (VT == MVT::f32) return std::make_pair(0U, ARM::SPRRegisterClass); - if (VT == MVT::f32) + if (VT == MVT::f64) return std::make_pair(0U, ARM::DPRRegisterClass); break; } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm-www/DevMtgMay2007.html
Changes in directory llvm-www: DevMtgMay2007.html updated: 1.38 -> 1.39 --- Log message: Add the Adobe contingent. --- Diffs of the changes: (+7 -4) DevMtgMay2007.html | 11 +++ 1 files changed, 7 insertions(+), 4 deletions(-) Index: llvm-www/DevMtgMay2007.html diff -u llvm-www/DevMtgMay2007.html:1.38 llvm-www/DevMtgMay2007.html:1.39 --- llvm-www/DevMtgMay2007.html:1.38Tue Apr 3 18:58:37 2007 +++ llvm-www/DevMtgMay2007.html Tue Apr 3 19:02:49 2007 @@ -229,18 +229,22 @@ Confirmed Attendees NameOrganization Vikram AdveUIUC +Bob ArcherAdobe Systems Incorporated. Owen AndersonIndependent Ryan BrownGoogle Evan ChengApple, Inc. Jeff CohenIndependent +Han GaoAdobe Systems Incorporated. Stuart HastingsApple, Inc. Robert HundtGoogle Dale JohannesenApple, Inc. Christopher LambAgeia Technologies, Inc. Chris LattnerApple, Inc. Nick LewyckyIndependent +Paul McJonesAdobe Systems Incorporated. Scott MichelAerospace Devang PatelApple, Inc. +Chuck RoseAdobe Systems Incorporated. Mark SchimmelWind River Reid SpencerIndependent Sarah ThompsonNASA, Ames Research Center @@ -248,14 +252,13 @@ Marcel WeiherMetaObject Unconfirmed Attendees NameOrganization -Unconfirmed 3Adobe Systems Incorporated. Unconfirmed 2Aerospace Unconfirmed 1Apple, Inc. Unconfirmed 1Wind River Unconfirmed 1NASA, Ames - Total confirmed attendees: 18 - Possible additional attendees: 8 + Total confirmed attendees: 22 + Possible additional attendees: 5 @@ -265,6 +268,6 @@ src="http://jigsaw.w3.org/css-validator/images/vcss"; alt="Valid CSS!"> http://validator.w3.org/check/referer";>http://www.w3.org/Icons/valid-html401"; alt="Valid HTML 4.01!"> -Last modified: $Date: 2007/04/03 23:58:37 $ +Last modified: $Date: 2007/04/04 00:02:49 $ ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm-www/DevMtgMay2007.html
Changes in directory llvm-www: DevMtgMay2007.html updated: 1.37 -> 1.38 --- Log message: Add Dale Johannesen. --- Diffs of the changes: (+5 -4) DevMtgMay2007.html |9 + 1 files changed, 5 insertions(+), 4 deletions(-) Index: llvm-www/DevMtgMay2007.html diff -u llvm-www/DevMtgMay2007.html:1.37 llvm-www/DevMtgMay2007.html:1.38 --- llvm-www/DevMtgMay2007.html:1.37Tue Apr 3 17:59:01 2007 +++ llvm-www/DevMtgMay2007.html Tue Apr 3 18:58:37 2007 @@ -235,6 +235,7 @@ Jeff CohenIndependent Stuart HastingsApple, Inc. Robert HundtGoogle +Dale JohannesenApple, Inc. Christopher LambAgeia Technologies, Inc. Chris LattnerApple, Inc. Nick LewyckyIndependent @@ -248,13 +249,13 @@ Unconfirmed Attendees NameOrganization Unconfirmed 3Adobe Systems Incorporated. -Unconfirmed 2+Apple, Inc. Unconfirmed 2Aerospace +Unconfirmed 1Apple, Inc. Unconfirmed 1Wind River Unconfirmed 1NASA, Ames - Total confirmed attendees: 17 - Possible additional attendees: 9 + Total confirmed attendees: 18 + Possible additional attendees: 8 @@ -264,6 +265,6 @@ src="http://jigsaw.w3.org/css-validator/images/vcss"; alt="Valid CSS!"> http://validator.w3.org/check/referer";>http://www.w3.org/Icons/valid-html401"; alt="Valid HTML 4.01!"> -Last modified: $Date: 2007/04/03 22:59:01 $ +Last modified: $Date: 2007/04/03 23:58:37 $ ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/include/llvm/IntrinsicsX86.td
Changes in directory llvm/include/llvm: IntrinsicsX86.td updated: 1.41 -> 1.42 --- Log message: Adding more MMX instructions. --- Diffs of the changes: (+41 -0) IntrinsicsX86.td | 41 + 1 files changed, 41 insertions(+) Index: llvm/include/llvm/IntrinsicsX86.td diff -u llvm/include/llvm/IntrinsicsX86.td:1.41 llvm/include/llvm/IntrinsicsX86.td:1.42 --- llvm/include/llvm/IntrinsicsX86.td:1.41 Tue Apr 3 01:00:36 2007 +++ llvm/include/llvm/IntrinsicsX86.td Tue Apr 3 18:48:32 2007 @@ -583,9 +583,44 @@ def int_x86_mmx_pmulh_w : GCCBuiltin<"__builtin_ia32_pmulhw">, Intrinsic<[llvm_v4i16_ty, llvm_v4i16_ty, llvm_v4i16_ty], [IntrNoMem]>; + def int_x86_mmx_pmulhu_w : GCCBuiltin<"__builtin_ia32_pmulhuw">, + Intrinsic<[llvm_v4i16_ty, llvm_v4i16_ty, + llvm_v4i16_ty], [IntrNoMem]>; + def int_x86_mmx_pmulu_dq : GCCBuiltin<"__builtin_ia32_pmuludq">, + Intrinsic<[llvm_v2i32_ty, llvm_v2i32_ty, + llvm_v2i32_ty], [IntrNoMem]>; def int_x86_mmx_pmadd_wd : GCCBuiltin<"__builtin_ia32_pmaddwd">, Intrinsic<[llvm_v2i32_ty, llvm_v4i16_ty, llvm_v4i16_ty], [IntrNoMem]>; + + // Averages + def int_x86_mmx_pavg_b : GCCBuiltin<"__builtin_ia32_pavgb">, + Intrinsic<[llvm_v8i8_ty, llvm_v8i8_ty, + llvm_v8i8_ty], [IntrNoMem]>; + def int_x86_mmx_pavg_w : GCCBuiltin<"__builtin_ia32_pavgw">, + Intrinsic<[llvm_v4i16_ty, llvm_v4i16_ty, + llvm_v4i16_ty], [IntrNoMem]>; + + // Maximum + def int_x86_mmx_pmaxu_b : GCCBuiltin<"__builtin_ia32_pmaxub">, + Intrinsic<[llvm_v8i8_ty, llvm_v8i8_ty, + llvm_v8i8_ty], [IntrNoMem]>; + def int_x86_mmx_pmaxs_w : GCCBuiltin<"__builtin_ia32_pmaxsw">, + Intrinsic<[llvm_v4i16_ty, llvm_v4i16_ty, + llvm_v4i16_ty], [IntrNoMem]>; + + // Minimum + def int_x86_mmx_pminu_b : GCCBuiltin<"__builtin_ia32_pminub">, + Intrinsic<[llvm_v8i8_ty, llvm_v8i8_ty, + llvm_v8i8_ty], [IntrNoMem]>; + def int_x86_mmx_pmins_w : GCCBuiltin<"__builtin_ia32_pminsw">, + Intrinsic<[llvm_v4i16_ty, llvm_v4i16_ty, + llvm_v4i16_ty], [IntrNoMem]>; + + // Packed sum of absolute differences + def int_x86_mmx_psad_bw : GCCBuiltin<"__builtin_ia32_psadbw">, + Intrinsic<[llvm_v4i16_ty, llvm_v8i8_ty, + llvm_v8i8_ty], [IntrNoMem]>; } // Integer shift ops. @@ -654,3 +689,9 @@ Intrinsic<[llvm_v2i32_ty, llvm_v2i32_ty, llvm_v2i32_ty], [IntrNoMem]>; } + +// Misc. +let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". + def int_x86_mmx_pmovmskb : GCCBuiltin<"__builtin_ia32_pmovmskb">, + Intrinsic<[llvm_i32_ty, llvm_v8i8_ty], [IntrNoMem]>; +} ___ 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/X86InstrInfo.cpp X86InstrMMX.td
Changes in directory llvm/lib/Target/X86: X86InstrInfo.cpp updated: 1.82 -> 1.83 X86InstrMMX.td updated: 1.29 -> 1.30 --- Log message: Adding more MMX instructions. --- Diffs of the changes: (+128 -64) X86InstrInfo.cpp |4 - X86InstrMMX.td | 188 --- 2 files changed, 128 insertions(+), 64 deletions(-) Index: llvm/lib/Target/X86/X86InstrInfo.cpp diff -u llvm/lib/Target/X86/X86InstrInfo.cpp:1.82 llvm/lib/Target/X86/X86InstrInfo.cpp:1.83 --- llvm/lib/Target/X86/X86InstrInfo.cpp:1.82 Tue Apr 3 01:00:37 2007 +++ llvm/lib/Target/X86/X86InstrInfo.cppTue Apr 3 18:48:32 2007 @@ -38,7 +38,8 @@ oc == X86::MOVAPSrr || oc == X86::MOVAPDrr || oc == X86::MOVSS2PSrr || oc == X86::MOVSD2PDrr || oc == X86::MOVPS2SSrr || oc == X86::MOVPD2SDrr || - oc == X86::MMX_MOVD64rr || oc == X86::MMX_MOVQ64rr) { + oc == X86::MMX_MOVD64rr || oc == X86::MMX_MOVQ64rr || + oc == X86::MMX_MOVDQ2Qrr || oc == X86::MMX_MOVQ2DQrr) { assert(MI.getNumOperands() == 2 && MI.getOperand(0).isRegister() && MI.getOperand(1).isRegister() && @@ -97,6 +98,7 @@ case X86::MOVAPDmr: case X86::MMX_MOVD64mr: case X86::MMX_MOVQ64mr: + case X86::MMX_MOVNTQmr: if (MI->getOperand(0).isFrameIndex() && MI->getOperand(1).isImmediate() && MI->getOperand(2).isRegister() && MI->getOperand(3).isImmediate() && MI->getOperand(1).getImmedValue() == 1 && Index: llvm/lib/Target/X86/X86InstrMMX.td diff -u llvm/lib/Target/X86/X86InstrMMX.td:1.29 llvm/lib/Target/X86/X86InstrMMX.td:1.30 --- llvm/lib/Target/X86/X86InstrMMX.td:1.29 Tue Apr 3 01:00:37 2007 +++ llvm/lib/Target/X86/X86InstrMMX.td Tue Apr 3 18:48:32 2007 @@ -20,12 +20,19 @@ // MMXI - MMX instructions with TB prefix. // MMX2I - MMX / SSE2 instructions with TB and OpSize prefixes. // MMXIi8 - MMX instructions with ImmT == Imm8 and TB prefix. +// MMXIi8 - MMX instructions with ImmT == Imm8 and TB prefix. +// MMXID - MMX instructions with XD prefix. +// MMXIS - MMX instructions with XS prefix. class MMXI o, Format F, dag ops, string asm, list pattern> : I, TB, Requires<[HasMMX]>; class MMX2I o, Format F, dag ops, string asm, list pattern> : I, TB, OpSize, Requires<[HasMMX]>; class MMXIi8 o, Format F, dag ops, string asm, list pattern> : Ii8, TB, Requires<[HasMMX]>; +class MMXID o, Format F, dag ops, string asm, list pattern> + : Ii8, XD, Requires<[HasMMX]>; +class MMXIS o, Format F, dag ops, string asm, list pattern> + : Ii8, XS, Requires<[HasMMX]>; // Some 'special' instructions def IMPLICIT_DEF_VR64 : I<0, Pseudo, (ops VR64:$dst), @@ -51,6 +58,18 @@ def bc_v1i64 : PatFrag<(ops node:$in), (v1i64 (bitconvert node:$in))>; //===--===// +// MMX Masks +//===--===// + +def MMX_UNPCKH_shuffle_mask : PatLeaf<(build_vector), [{ + return X86::isUNPCKHMask(N); +}]>; + +def MMX_UNPCKL_shuffle_mask : PatLeaf<(build_vector), [{ + return X86::isUNPCKLMask(N); +}]>; + +//===--===// // MMX Multiclasses //===--===// @@ -128,6 +147,35 @@ // MMX Scalar Instructions //===--===// +// Data Transfer Instructions +def MMX_MOVD64rr : MMXI<0x6E, MRMSrcReg, (ops VR64:$dst, GR32:$src), +"movd {$src, $dst|$dst, $src}", []>; +def MMX_MOVD64rm : MMXI<0x6E, MRMSrcMem, (ops VR64:$dst, i32mem:$src), +"movd {$src, $dst|$dst, $src}", []>; +def MMX_MOVD64mr : MMXI<0x7E, MRMDestMem, (ops i32mem:$dst, VR64:$src), +"movd {$src, $dst|$dst, $src}", []>; + +def MMX_MOVQ64rr : MMXI<0x6F, MRMSrcReg, (ops VR64:$dst, VR64:$src), +"movq {$src, $dst|$dst, $src}", []>; +def MMX_MOVQ64rm : MMXI<0x6F, MRMSrcMem, (ops VR64:$dst, i64mem:$src), +"movq {$src, $dst|$dst, $src}", +[(set VR64:$dst, (load_mmx addr:$src))]>; +def MMX_MOVQ64mr : MMXI<0x7F, MRMDestMem, (ops i64mem:$dst, VR64:$src), +"movq {$src, $dst|$dst, $src}", +[(store (v1i64 VR64:$src), addr:$dst)]>; + +def MMX_MOVDQ2Qrr : MMXID<0xD6, MRMDestMem, (ops VR64:$dst, VR128:$src), + "movdq2q {$src, $dst|$dst, $src}", + [(store (i64 (vector_extract (v2i64 VR128:$src), +(iPTR 0))), VR64:$dst)]>; +def MMX_MOVQ2DQrr : MMXIS<0xD6, MRMDestMem, (ops VR128:$dst, VR64:$src), + "movq2dq {$src, $dst|$dst, $src}", + [(store (v1i64 VR64:$src), VR128:$dst)]>; + +def MMX_MOVNTQmr : MMXI<0xE7, MRMDestMem, (ops i64mem:$ds
[llvm-commits] CVS: llvm/lib/Target/X86/README.txt
Changes in directory llvm/lib/Target/X86: README.txt updated: 1.161 -> 1.162 --- Log message: make a new missing features section --- Diffs of the changes: (+6 -2) README.txt |8 ++-- 1 files changed, 6 insertions(+), 2 deletions(-) Index: llvm/lib/Target/X86/README.txt diff -u llvm/lib/Target/X86/README.txt:1.161 llvm/lib/Target/X86/README.txt:1.162 --- llvm/lib/Target/X86/README.txt:1.161Tue Apr 3 18:37:20 2007 +++ llvm/lib/Target/X86/README.txt Tue Apr 3 18:41:34 2007 @@ -2,6 +2,12 @@ // Random ideas for the X86 backend. //===-===// +Missing features: + - support for 3DNow! + - weird abis? + +//===-===// + Add a MUL2U and MUL2S nodes to represent a multiply that returns both the Hi and Lo parts (combination of MUL and MULH[SU] into one node). Add this to X86, & make the dag combiner produce it when needed. This will eliminate one @@ -1040,6 +1046,4 @@ return 0; } -//===-===// -Add support for 3DNow! ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/test/CodeGen/ARM/2007-04-03-UndefinedSymbol.ll
Changes in directory llvm/test/CodeGen/ARM: 2007-04-03-UndefinedSymbol.ll added (r1.1) --- Log message: New test case. --- Diffs of the changes: (+98 -0) 2007-04-03-UndefinedSymbol.ll | 98 ++ 1 files changed, 98 insertions(+) Index: llvm/test/CodeGen/ARM/2007-04-03-UndefinedSymbol.ll diff -c /dev/null llvm/test/CodeGen/ARM/2007-04-03-UndefinedSymbol.ll:1.1 *** /dev/null Tue Apr 3 18:41:04 2007 --- llvm/test/CodeGen/ARM/2007-04-03-UndefinedSymbol.ll Tue Apr 3 18:40:54 2007 *** *** 0 --- 1,98 + ; RUN: llvm-as < %s | llc -mtriple=arm-apple-darwin -relocation-model=pic | not grep "LPC9" + + %struct.B = type { i32 } + %struct.anon = type { void (%struct.B*)*, i32 } + @str = internal constant [7 x i8] c"i, %d\0A\00" ; <[7 x i8]*> [#uses=1] + @str1 = internal constant [7 x i8] c"j, %d\0A\00" ; <[7 x i8]*> [#uses=1] + + define internal void @_ZN1B1iEv(%struct.B* %this) { + entry: + %tmp1 = getelementptr %struct.B* %this, i32 0, i32 0; [#uses=1] + %tmp2 = load i32* %tmp1 ; [#uses=1] + %tmp4 = tail call i32 (i8*, ...)* @printf( i8* getelementptr ([7 x i8]* @str, i32 0, i32 0), i32 %tmp2 ); [#uses=0] + ret void + } + + declare i32 @printf(i8*, ...) + + define internal void @_ZN1B1jEv(%struct.B* %this) { + entry: + %tmp1 = getelementptr %struct.B* %this, i32 0, i32 0; [#uses=1] + %tmp2 = load i32* %tmp1 ; [#uses=1] + %tmp4 = tail call i32 (i8*, ...)* @printf( i8* getelementptr ([7 x i8]* @str1, i32 0, i32 0), i32 %tmp2 ) ; [#uses=0] + ret void + } + + define i32 @main() { + entry: + %b.i29 = alloca %struct.B, align 4 ; <%struct.B*> [#uses=3] + %b.i1 = alloca %struct.B, align 4 ; <%struct.B*> [#uses=3] + %b.i = alloca %struct.B, align 4; <%struct.B*> [#uses=3] + %tmp2.i = getelementptr %struct.B* %b.i, i32 0, i32 0 ; [#uses=1] + store i32 4, i32* %tmp2.i + br i1 icmp eq (i64 and (i64 zext (i32 ptrtoint (void (%struct.B*)* @_ZN1B1iEv to i32) to i64), i64 4294967296), i64 0), label %_Z3fooiM1BFvvE.exit, label %cond_true.i + + cond_true.i: ; preds = %entry + %b2.i = bitcast %struct.B* %b.i to i8* ; [#uses=1] + %ctg23.i = getelementptr i8* %b2.i, i32 ashr (i32 trunc (i64 lshr (i64 zext (i32 ptrtoint (void (%struct.B*)* @_ZN1B1iEv to i32) to i64), i64 32) to i32), i32 1) ; [#uses=1] + %tmp121314.i = bitcast i8* %ctg23.i to i32 (...)*** ; [#uses=1] + %tmp15.i = load i32 (...)*** %tmp121314.i ; [#uses=1] + %tmp151.i = bitcast i32 (...)** %tmp15.i to i8* ; [#uses=1] + %ctg2.i = getelementptr i8* %tmp151.i, i32 ptrtoint (void (%struct.B*)* @_ZN1B1iEv to i32) ; [#uses=1] + %tmp2021.i = bitcast i8* %ctg2.i to i32 (...)** ; [#uses=1] + %tmp22.i = load i32 (...)** %tmp2021.i ; [#uses=1] + %tmp2223.i = bitcast i32 (...)* %tmp22.i to void (%struct.B*)* ; [#uses=1] + br label %_Z3fooiM1BFvvE.exit + + _Z3fooiM1BFvvE.exit: ; preds = %cond_true.i, %entry + %iftmp.2.0.i = phi void (%struct.B*)* [ %tmp2223.i, %cond_true.i ], [ inttoptr (i32 ptrtoint (void (%struct.B*)* @_ZN1B1iEv to i32) to void (%struct.B*)*), %entry ]; [#uses=1] + %b4.i = bitcast %struct.B* %b.i to i8* ; [#uses=1] + %ctg25.i = getelementptr i8* %b4.i, i32 ashr (i32 trunc (i64 lshr (i64 zext (i32 ptrtoint (void (%struct.B*)* @_ZN1B1iEv to i32) to i64), i64 32) to i32), i32 1) ; [#uses=1] + %tmp3031.i = bitcast i8* %ctg25.i to %struct.B* ; <%struct.B*> [#uses=1] + call void %iftmp.2.0.i( %struct.B* %tmp3031.i ) + %tmp2.i30 = getelementptr %struct.B* %b.i29, i32 0, i32 0 ; [#uses=1] + store i32 6, i32* %tmp2.i30 + br i1 icmp eq (i64 and (i64 zext (i32 ptrtoint (void (%struct.B*)* @_ZN1B1jEv to i32) to i64), i64 4294967296), i64 0), label %_Z3fooiM1BFvvE.exit56, label %cond_true.i46 + + cond_true.i46:; preds = %_Z3fooiM1BFvvE.exit + %b2.i35 = bitcast %struct.B* %b.i29 to i8* ; [#uses=1] + %ctg23.i36 = getelementptr i8* %b2.i35, i32 ashr (i32 trunc (i64 lshr (i64 zext (i32 ptrtoint (void (%struct.B*)* @_ZN1B1jEv to i32) to i64), i64 32) to i32), i32 1) ; [#uses=1] + %tmp121314.i37 = bitcast i8* %ctg23.i36 to i32 (...)*** ; [#uses=1] + %tmp15.i38 = load i32 (...)*** %tmp121314.i37 ; [#uses=1] + %tmp151.i41 = bitcast i32 (...)** %tmp15.i38 to i8* ; [#uses=1] + %ctg2.i42 = getelementptr i8* %tmp151.i41, i32 ptrtoint (void (%struct.B*)* @_ZN1B1jEv to i32) ; [#uses=1] + %tmp2021.i43 = bitcast i8* %ctg2.i42 to
[llvm-commits] CVS: llvm/lib/Target/ARM/ARMConstantIslandPass.cpp
Changes in directory llvm/lib/Target/ARM: ARMConstantIslandPass.cpp updated: 1.34 -> 1.35 --- Log message: Remove unused constant pool entries. --- Diffs of the changes: (+60 -32) ARMConstantIslandPass.cpp | 92 ++ 1 files changed, 60 insertions(+), 32 deletions(-) Index: llvm/lib/Target/ARM/ARMConstantIslandPass.cpp diff -u llvm/lib/Target/ARM/ARMConstantIslandPass.cpp:1.34 llvm/lib/Target/ARM/ARMConstantIslandPass.cpp:1.35 --- llvm/lib/Target/ARM/ARMConstantIslandPass.cpp:1.34 Mon Apr 2 15:31:06 2007 +++ llvm/lib/Target/ARM/ARMConstantIslandPass.cpp Tue Apr 3 18:39:48 2007 @@ -139,13 +139,15 @@ MachineBasicBlock *SplitBlockBeforeInstr(MachineInstr *MI); void UpdateForInsertedWaterBlock(MachineBasicBlock *NewBB); void AdjustBBOffsetsAfter(MachineBasicBlock *BB, int delta); -bool DecrementOldEntry(unsigned CPI, MachineInstr* CPEMI, unsigned Size); +bool DecrementOldEntry(unsigned CPI, MachineInstr* CPEMI); int LookForExistingCPEntry(CPUser& U, unsigned UserOffset); bool LookForWater(CPUser&U, unsigned UserOffset, bool* PadNewWater, MachineBasicBlock** NewMBB); void CreateNewWater(unsigned CPUserIndex, unsigned UserOffset, MachineBasicBlock** NewMBB); bool HandleConstantPoolUser(MachineFunction &Fn, unsigned CPUserIndex); +void RemoveDeadCPEMI(MachineInstr *CPEMI); +bool RemoveUnusedCPEntries(); bool CPEIsInRange(MachineInstr *MI, unsigned UserOffset, MachineInstr *CPEMI, unsigned Disp, bool DoDump); @@ -197,6 +199,9 @@ InitialFunctionScan(Fn, CPEMIs); CPEMIs.clear(); + /// Remove dead constant pool entries. + RemoveUnusedCPEntries(); + // Iteratively place constant pool entries and fix up branches until there // is no change. bool MadeChange = false; @@ -210,7 +215,7 @@ break; MadeChange = true; } - + // If LR has been forced spilled and no far jumps (i.e. BL) has been issued. // Undo the spill / restore of LR if possible. if (!HasFarJump && AFI->isLRSpilledForFarJump() && isThumb) @@ -648,34 +653,13 @@ /// becomes 0 remove the entry and instruction. Returns true if we removed /// the entry, false if we didn't. -bool ARMConstantIslands::DecrementOldEntry(unsigned CPI, MachineInstr *CPEMI, - unsigned Size) { +bool ARMConstantIslands::DecrementOldEntry(unsigned CPI, MachineInstr *CPEMI) { // Find the old entry. Eliminate it if it is no longer used. - CPEntry *OldCPE = findConstPoolEntry(CPI, CPEMI); - assert(OldCPE && "Unexpected!"); - if (--OldCPE->RefCount == 0) { -MachineBasicBlock *OldCPEBB = OldCPE->CPEMI->getParent(); -if (OldCPEBB->empty()) { - // In thumb mode, the size of island is padded by two to compensate for - // the alignment requirement. Thus it will now be 2 when the block is - // empty, so fix this. - // All succeeding offsets have the current size value added in, fix this. - if (BBSizes[OldCPEBB->getNumber()] != 0) { -AdjustBBOffsetsAfter(OldCPEBB, -BBSizes[OldCPEBB->getNumber()]); -BBSizes[OldCPEBB->getNumber()] = 0; - } - // An island has only one predecessor BB and one successor BB. Check if - // this BB's predecessor jumps directly to this BB's successor. This - // shouldn't happen currently. - assert(!BBIsJumpedOver(OldCPEBB) && "How did this happen?"); - // FIXME: remove the empty blocks after all the work is done? -} else { - BBSizes[OldCPEBB->getNumber()] -= Size; - // All succeeding offsets have the current size value added in, fix this. - AdjustBBOffsetsAfter(OldCPEBB, -Size); -} -OldCPE->CPEMI->eraseFromParent(); -OldCPE->CPEMI = NULL; + CPEntry *CPE = findConstPoolEntry(CPI, CPEMI); + assert(CPE && "Unexpected!"); + if (--CPE->RefCount == 0) { +RemoveDeadCPEMI(CPEMI); +CPE->CPEMI = NULL; NumCPEs--; return true; } @@ -723,8 +707,7 @@ CPEs[i].RefCount++; // ...and the original. If we didn't remove the old entry, none of the // addresses changed, so we don't need another pass. - unsigned Size = CPEMI->getOperand(2).getImm(); - return DecrementOldEntry(CPI, CPEMI, Size) ? 2 : 1; + return DecrementOldEntry(CPI, CPEMI) ? 2 : 1; } } return 0; @@ -910,7 +893,7 @@ UpdateForInsertedWaterBlock(NewIsland); // Decrement the old entry, and remove it if refcount becomes 0. - DecrementOldEntry(CPI, CPEMI, Size); + DecrementOldEntry(CPI, CPEMI); // Now that we have an island to add the CPE to, clone the original CPE and // add it to the island. @@ -938,6 +921,51 @@ return true; } +/// RemoveDeadCPEMI - Remove a dead constant pool entry instruction. Update +/// sizes and offsets of impacted basic blocks. +void ARMConstantIslands::RemoveDeadCPEMI(MachineInstr *CPEMI) { + MachineBasicBlock *CPEB
[llvm-commits] CVS: llvm/lib/Target/X86/README.txt
Changes in directory llvm/lib/Target/X86: README.txt updated: 1.160 -> 1.161 --- Log message: Updated --- Diffs of the changes: (+4 -0) README.txt |4 1 files changed, 4 insertions(+) Index: llvm/lib/Target/X86/README.txt diff -u llvm/lib/Target/X86/README.txt:1.160 llvm/lib/Target/X86/README.txt:1.161 --- llvm/lib/Target/X86/README.txt:1.160Wed Mar 28 13:17:19 2007 +++ llvm/lib/Target/X86/README.txt Tue Apr 3 18:37:20 2007 @@ -1039,3 +1039,7 @@ return f(decode); return 0; } + +//===-===// + +Add support for 3DNow! ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Transforms/Scalar/InstructionCombining.cpp
Changes in directory llvm/lib/Transforms/Scalar: InstructionCombining.cpp updated: 1.727 -> 1.728 --- Log message: Fix a bug I introduced with my patch yesterday which broke Qt (I converted some constant exprs to apints). Thanks to Anton for tracking down a small testcase that triggered this! --- Diffs of the changes: (+1 -1) InstructionCombining.cpp |2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/lib/Transforms/Scalar/InstructionCombining.cpp diff -u llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.727 llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.728 --- llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.727 Tue Apr 3 12:43:25 2007 +++ llvm/lib/Transforms/Scalar/InstructionCombining.cpp Tue Apr 3 18:29:39 2007 @@ -5087,7 +5087,7 @@ Mask, LHSI->getName()+".mask"); Value *And = InsertNewInstBefore(AndI, ICI); return new ICmpInst(ICI.getPredicate(), And, - ConstantInt::get(RHSV << ShAmtVal)); + ConstantInt::get(RHSV.lshr(ShAmtVal))); } } } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm-www/DevMtgMay2007.html
Changes in directory llvm-www: DevMtgMay2007.html updated: 1.36 -> 1.37 --- Log message: Add Stuart Hastings --- Diffs of the changes: (+5 -4) DevMtgMay2007.html |9 + 1 files changed, 5 insertions(+), 4 deletions(-) Index: llvm-www/DevMtgMay2007.html diff -u llvm-www/DevMtgMay2007.html:1.36 llvm-www/DevMtgMay2007.html:1.37 --- llvm-www/DevMtgMay2007.html:1.36Tue Apr 3 12:08:45 2007 +++ llvm-www/DevMtgMay2007.html Tue Apr 3 17:59:01 2007 @@ -233,6 +233,7 @@ Ryan BrownGoogle Evan ChengApple, Inc. Jeff CohenIndependent +Stuart HastingsApple, Inc. Robert HundtGoogle Christopher LambAgeia Technologies, Inc. Chris LattnerApple, Inc. @@ -246,13 +247,13 @@ Marcel WeiherMetaObject Unconfirmed Attendees NameOrganization -Unconfirmed 3Adobe -Unconfirmed 2+Apple +Unconfirmed 3Adobe Systems Incorporated. +Unconfirmed 2+Apple, Inc. Unconfirmed 2Aerospace Unconfirmed 1Wind River Unconfirmed 1NASA, Ames - Total confirmed attendees: 16 + Total confirmed attendees: 17 Possible additional attendees: 9 @@ -263,6 +264,6 @@ src="http://jigsaw.w3.org/css-validator/images/vcss"; alt="Valid CSS!"> http://validator.w3.org/check/referer";>http://www.w3.org/Icons/valid-html401"; alt="Valid HTML 4.01!"> -Last modified: $Date: 2007/04/03 17:08:45 $ +Last modified: $Date: 2007/04/03 22:59:01 $ ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm-www/Users.html
Changes in directory llvm-www: Users.html added (r1.1) --- Log message: List of Users of LLVM. --- Diffs of the changes: (+171 -0) Users.html | 171 + 1 files changed, 171 insertions(+) Index: llvm-www/Users.html diff -c /dev/null llvm-www/Users.html:1.1 *** /dev/null Tue Apr 3 17:31:59 2007 --- llvm-www/Users.html Tue Apr 3 17:31:48 2007 *** *** 0 --- 1,171 + + + LLVM Users + + + This page lists the people and organizations that have used or are currently + using LLVM in research, education, industry, or open source development. It + only includes users who have publicly discussed their use of LLVM in one form + or another (mentioned it on llvmdev, published work on it, etc.). + We believe there are many other users not listed here and would welcome a brief + note telling us about your use so that we can add you to the list. + + + Industry Users + + + + + + Company + Description + + + + + Ascenium + Compiler for reconfigurable processor + + + + + Apple Computer + OpenGL Engine in MacOS X (Leopard) + + + + + Hue AS + JIT compilation of shader programs + + + + + Mobileye + Compiler for stack machine architecture + + + + + Siemens Technology-to-Business Center + Compiler for embedded VLIW processor + + + + + Academic/Research Users + + + + + + Organization + People + Description + + + + + http://www.ugent.be/";>Ghent University + Kenneth Hoste + Instrumentation of software + + + + + http://www.nyu.edu";>New York University + Anna Zaks + Validation of interprocedural optimizations + + + + + + http://www.ucsd.edu/";>University of California, San Diego + + Michael McCracken + + http://www.cse.ucsd.edu/~mmccrack/lens/";>LENS Framework + + + + + + + http://www.ucla.edu/";>University of California, Los Angeles + + Jason Cong + xPilot behavioral synthesis system + + + + + + http://www.uiuc.edu";>University of Illinois at Urbana-Champaign + + + http://llvm.org";>Vikram Adve's Research Group + + All LLVM Group Research Projects + + + + + + + Educational Users + + + + + + + Organization + Class + + + + + http://www.uiuc.edu";>University of Illinois at Urbana-Champaign + + CS 426, CS 526, CS 433, CS 533 + + + + + + + + Open Source Projects + + + + + + + Project + Description + + + + + http://pypy.org";>PyPy Project + Python interpreter written in Python. Targets LLVM and C. + + + + + + + + + + http://jigsaw.w3.org/css-validator/check/referer";>http://jigsaw.w3.org/css-validator/images/vcss"; alt="Valid CSS!"> + http://validator.w3.org/check/referer";>http://www.w3.org/Icons/valid-html401"; alt="Valid HTML 4.01!"> + + mailto:[EMAIL PROTECTED]">LLVM Development List + Last modified: $Date: 2007/04/03 22:31:48 $ + + ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Support/StringMap.cpp
Changes in directory llvm/lib/Support: StringMap.cpp updated: 1.9 -> 1.10 --- Log message: greatly reduce hte default size of stringmap. --- Diffs of the changes: (+1 -1) StringMap.cpp |2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/lib/Support/StringMap.cpp diff -u llvm/lib/Support/StringMap.cpp:1.9 llvm/lib/Support/StringMap.cpp:1.10 --- llvm/lib/Support/StringMap.cpp:1.9 Sun Feb 11 14:58:00 2007 +++ llvm/lib/Support/StringMap.cpp Tue Apr 3 17:15:38 2007 @@ -18,7 +18,7 @@ StringMapImpl::StringMapImpl(unsigned InitSize, unsigned itemSize) { assert((InitSize & (InitSize-1)) == 0 && "Init Size must be a power of 2 or zero!"); - NumBuckets = InitSize ? InitSize : 512; + NumBuckets = InitSize ? InitSize : 16; ItemSize = itemSize; NumItems = 0; NumTombstones = 0; ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/test/AdaFrontend/array_constructor.adb array_range_ref.adb array_ref.adb array_size.adb emit_var.ads fat_fields.adb fat_fields.ads non_lvalue.adb non_lvalue.ads switch.adb var
Changes in directory llvm/test/AdaFrontend: array_constructor.adb (r1.1) removed array_range_ref.adb (r1.1) removed array_ref.adb (r1.1) removed array_size.adb (r1.1) removed emit_var.ads (r1.1) removed fat_fields.adb (r1.1) removed fat_fields.ads (r1.1) removed non_lvalue.adb (r1.1) removed non_lvalue.ads (r1.1) removed switch.adb (r1.1) removed var_size.adb (r1.1) removed var_size.ads (r1.1) removed vce.adb (r1.1) removed vce_lv.adb (r1.1) removed --- Log message: move these to FrontendAda --- Diffs of the changes: (+0 -0) 0 files changed ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/test/FrontendObjC/2007-04-03-ObjcEH.m
Changes in directory llvm/test/FrontendObjC: 2007-04-03-ObjcEH.m added (r1.1) --- Log message: testcase for recent bugfix --- Diffs of the changes: (+29 -0) 2007-04-03-ObjcEH.m | 29 + 1 files changed, 29 insertions(+) Index: llvm/test/FrontendObjC/2007-04-03-ObjcEH.m diff -c /dev/null llvm/test/FrontendObjC/2007-04-03-ObjcEH.m:1.1 *** /dev/null Tue Apr 3 16:47:46 2007 --- llvm/test/FrontendObjC/2007-04-03-ObjcEH.m Tue Apr 3 16:47:36 2007 *** *** 0 --- 1,29 + // RUN: %llvmgcc -c %s -o /dev/null + + @interface B + -(int)bar; + @end + + @interface A + -(void) Foo:(int) state; + @end + + @implementation A + - (void) Foo:(int) state { + + int wasResponded = 0; + @try { + if (state) { +B * b = 0; +@try { } +@finally { + wasResponded = ![b bar]; +} + } + } + @finally { + } + } + @end + + ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/test/FrontendAda/array_constructor.adb array_range_ref.adb array_ref.adb array_size.adb emit_var.ads fat_fields.adb fat_fields.ads non_lvalue.adb non_lvalue.ads switch.adb var
Changes in directory llvm/test/FrontendAda: array_constructor.adb added (r1.1) array_range_ref.adb added (r1.1) array_ref.adb added (r1.1) array_size.adb added (r1.1) emit_var.ads added (r1.1) fat_fields.adb added (r1.1) fat_fields.ads added (r1.1) non_lvalue.adb added (r1.1) non_lvalue.ads added (r1.1) switch.adb added (r1.1) var_size.adb added (r1.1) var_size.ads added (r1.1) vce.adb added (r1.1) vce_lv.adb added (r1.1) --- Log message: move ada tests --- Diffs of the changes: (+115 -0) array_constructor.adb |6 ++ array_range_ref.adb |7 +++ array_ref.adb | 11 +++ array_size.adb| 10 ++ emit_var.ads |5 + fat_fields.adb| 10 ++ fat_fields.ads|6 ++ non_lvalue.adb|7 +++ non_lvalue.ads| 11 +++ switch.adb| 12 var_size.adb |7 +++ var_size.ads |7 +++ vce.adb |7 +++ vce_lv.adb|9 + 14 files changed, 115 insertions(+) Index: llvm/test/FrontendAda/array_constructor.adb diff -c /dev/null llvm/test/FrontendAda/array_constructor.adb:1.1 *** /dev/null Tue Apr 3 16:46:32 2007 --- llvm/test/FrontendAda/array_constructor.adb Tue Apr 3 16:46:22 2007 *** *** 0 --- 1,6 + -- RUN: %llvmgcc -c %s -o /dev/null + procedure Array_Constructor is +A : array (Integer range <>) of Boolean := (True, False); + begin +null; + end; Index: llvm/test/FrontendAda/array_range_ref.adb diff -c /dev/null llvm/test/FrontendAda/array_range_ref.adb:1.1 *** /dev/null Tue Apr 3 16:46:40 2007 --- llvm/test/FrontendAda/array_range_ref.adb Tue Apr 3 16:46:22 2007 *** *** 0 --- 1,7 + -- RUN: %llvmgcc -c %s -o /dev/null + procedure Array_Range_Ref is +A : String (1 .. 3); +B : String := A (A'RANGE)(1 .. 3); + begin +null; + end; Index: llvm/test/FrontendAda/array_ref.adb diff -c /dev/null llvm/test/FrontendAda/array_ref.adb:1.1 *** /dev/null Tue Apr 3 16:46:40 2007 --- llvm/test/FrontendAda/array_ref.adb Tue Apr 3 16:46:22 2007 *** *** 0 --- 1,11 + -- RUN: %llvmgcc -c %s -o /dev/null + procedure Array_Ref is +type A is array (Natural range <>, Natural range <>) of Boolean; +type A_Access is access A; +function Get (X : A_Access) return Boolean is +begin + return X (0, 0); +end; + begin +null; + end; Index: llvm/test/FrontendAda/array_size.adb diff -c /dev/null llvm/test/FrontendAda/array_size.adb:1.1 *** /dev/null Tue Apr 3 16:46:40 2007 --- llvm/test/FrontendAda/array_size.adbTue Apr 3 16:46:22 2007 *** *** 0 --- 1,10 + -- RUN: %llvmgcc -c %s -o /dev/null + procedure Array_Size is +subtype S is String (1 .. 2); +type R is record + A : S; +end record; +X : R; + begin +null; + end; Index: llvm/test/FrontendAda/emit_var.ads diff -c /dev/null llvm/test/FrontendAda/emit_var.ads:1.1 *** /dev/null Tue Apr 3 16:46:40 2007 --- llvm/test/FrontendAda/emit_var.ads Tue Apr 3 16:46:22 2007 *** *** 0 --- 1,5 + -- RUN: %llvmgcc -c %s -o /dev/null + with Ada.Finalization; + package Emit_Var is +type Search_Type is new Ada.Finalization.Controlled with null record; + end; Index: llvm/test/FrontendAda/fat_fields.adb diff -c /dev/null llvm/test/FrontendAda/fat_fields.adb:1.1 *** /dev/null Tue Apr 3 16:46:40 2007 --- llvm/test/FrontendAda/fat_fields.adbTue Apr 3 16:46:22 2007 *** *** 0 --- 1,10 + -- RUN: %llvmgcc -c %s -o /dev/null + -- RUN: %llvmgcc -c %s -O2 -o /dev/null + package body Fat_Fields is +procedure Proc is +begin + if P = null then + null; + end if; +end; + end; Index: llvm/test/FrontendAda/fat_fields.ads diff -c /dev/null llvm/test/FrontendAda/fat_fields.ads:1.1 *** /dev/null Tue Apr 3 16:46:40 2007 --- llvm/test/FrontendAda/fat_fields.adsTue Apr 3 16:46:22 2007 *** *** 0 --- 1,6 + package Fat_Fields is +pragma Elaborate_Body; +type A is array (Positive range <>) of Boolean; +type A_Ptr is access A; +P : A_Ptr := null; + end; Index: llvm/test/FrontendAda/non_lvalue.adb diff -c /dev/null llvm/test/FrontendAda/non_lvalue.adb:1.1 *** /dev/null Tue Apr 3 16:46:40 2007 --- llvm/test/FrontendAda/non_lvalue.adbTue Apr 3 16:46:22 2007 *** *** 0 --- 1,7 + -- RUN: %llvmgcc -c %s -o /dev/null + package body Non_LValue is +function A (Y : U) return String is +begin + return Y.X.B; +end; + end; Index: llvm/test/FrontendAda/non_lvalue.ads diff -c /dev/null llvm/test/FrontendAda/non_lvalue.ads:1.1 *** /dev/null Tue Apr 3 16:46:40 2007 --- llvm/test/FrontendAda/non_lvalue.adsTue Apr 3 16:46:22 2007 *** *** 0 --- 1,11 + package Non_LValue is +type T (Length : Natural) is record +
[llvm-commits] CVS: llvm/test/FrontendAda/
Changes in directory llvm/test/FrontendAda: --- Log message: Directory /var/cvs/llvm/llvm/test/FrontendAda added to the repository --- Diffs of the changes: (+0 -0) 0 files changed ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/test/FrontendObjC/
Changes in directory llvm/test/FrontendObjC: --- Log message: Directory /var/cvs/llvm/llvm/test/FrontendObjC added to the repository --- Diffs of the changes: (+0 -0) 0 files changed ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/test/CodeGen/ARM/2007-04-03-PEIBug.ll
Changes in directory llvm/test/CodeGen/ARM: 2007-04-03-PEIBug.ll added (r1.1) --- Log message: New test case. --- Diffs of the changes: (+12 -0) 2007-04-03-PEIBug.ll | 12 1 files changed, 12 insertions(+) Index: llvm/test/CodeGen/ARM/2007-04-03-PEIBug.ll diff -c /dev/null llvm/test/CodeGen/ARM/2007-04-03-PEIBug.ll:1.1 *** /dev/null Tue Apr 3 16:38:13 2007 --- llvm/test/CodeGen/ARM/2007-04-03-PEIBug.ll Tue Apr 3 16:38:03 2007 *** *** 0 --- 1,12 + ; RUN: llvm-as < %s | llc -march=arm | not grep "add.*#0" + + define i32 @foo() { + entry: + %A = alloca [1123 x i32], align 16 ; <[1123 x i32]*> [#uses=1] + %B = alloca [3123 x i32], align 16 ; <[3123 x i32]*> [#uses=1] + %C = alloca [12312 x i32], align 16 ; <[12312 x i32]*> [#uses=1] + %tmp = call i32 (...)* @bar( [3123 x i32]* %B, [1123 x i32]* %A, [12312 x i32]* %C ); [#uses=0] + ret i32 undef + } + + declare i32 @bar(...) ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/ARM/ARMRegisterInfo.cpp
Changes in directory llvm/lib/Target/ARM: ARMRegisterInfo.cpp updated: 1.84 -> 1.85 --- Log message: Fixed a bug that causes codegen of noop like add r0, r0, #0. --- Diffs of the changes: (+1 -1) ARMRegisterInfo.cpp |2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/lib/Target/ARM/ARMRegisterInfo.cpp diff -u llvm/lib/Target/ARM/ARMRegisterInfo.cpp:1.84 llvm/lib/Target/ARM/ARMRegisterInfo.cpp:1.85 --- llvm/lib/Target/ARM/ARMRegisterInfo.cpp:1.84Tue Mar 20 03:07:04 2007 +++ llvm/lib/Target/ARM/ARMRegisterInfo.cpp Tue Apr 3 16:31:21 2007 @@ -732,7 +732,7 @@ // a sequence of ADDri instructions. First though, pull as much of the imm // into this ADDri as possible. unsigned RotAmt = ARM_AM::getSOImmValRotate(Offset); -unsigned ThisImmVal = Offset & ARM_AM::rotr32(0xFF, (32-RotAmt) & 31); +unsigned ThisImmVal = Offset & ARM_AM::rotr32(0xFF, RotAmt); // We will handle these bits from offset, clear them. Offset &= ~ThisImmVal; ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] [patch llvm-gcc] change the function arguments lowering
This patch makes llvm-gcc use arrays to lower function arguments. For example a 30 bytes parameter is lowered to { [3 x i64], i32, i16} instead of { i64, i64, i64, i32, i16}. This reduces the size of ll file generated from lencod/rdopt.c from 17M to 1.2M. Lauro Index: gcc/llvm-abi.h === --- gcc/llvm-abi.h (revision 300) +++ gcc/llvm-abi.h (working copy) @@ -283,18 +283,23 @@ // Consider cases like { int, int } and {int, short} for example! This will // produce far better LLVM code! std::vector Elts; -if (UseInt64) { - for (; Size >= 8; Size -= 8) -Elts.push_back(Type::Int64Ty); - if (Size >= 4) { -Elts.push_back(Type::Int32Ty); -Size -= 4; - } -} else { - for (; Size >= 4; Size -= 4) -Elts.push_back(Type::Int32Ty); + +unsigned ElementSize = (UseInt64)?8:4; +unsigned ArraySize = Size / ElementSize; + +const Type *ATy = NULL; +const Type *ArrayElementType = NULL; +if (ArraySize) { + Size = Size % ElementSize; + ArrayElementType = (UseInt64)?Type::Int64Ty:Type::Int32Ty; + ATy = ArrayType::get(ArrayElementType, ArraySize); + Elts.push_back(ATy); } +if (Size >= 4) { + Elts.push_back(Type::Int32Ty); + Size -= 4; +} if (Size >= 2) { Elts.push_back(Type::Int16Ty); Size -= 2; @@ -306,7 +311,18 @@ assert(Size == 0 && "Didn't cover value?"); const StructType *STy = StructType::get(Elts, false); -for (unsigned i = 0, e = Elts.size(); i != e; ++i) { +unsigned i = 0; +if (ArraySize) { + C.EnterField(0, STy); + for (unsigned j = 0; j < ArraySize; ++j) { +C.EnterField(j, ATy); +C.HandleScalarArgument(ArrayElementType, 0); +C.ExitField(); + } + C.ExitField(); + ++i; +} +for (unsigned e = Elts.size(); i != e; ++i) { C.EnterField(i, STy); C.HandleScalarArgument(Elts[i], 0); C.ExitField(); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] [125692] Fix compilation of:
Revision: 125692 Author: clattner Date: 2007-04-03 13:52:42 -0700 (Tue, 03 Apr 2007) Log Message: --- Fix compilation of: @interface B -(int)bar; @end @interface A -(void) Foo:(int) state; @end @implementation A - (void) Foo:(int) state { int wasResponded = 0; @try { if (state) { B * b = 0; @try { } @finally { wasResponded = ![b bar]; } } } @finally { } } @end With -fexceptions. Modified Paths: -- apple-local/branches/llvm/gcc/llvm-convert.cpp Modified: apple-local/branches/llvm/gcc/llvm-convert.cpp === --- apple-local/branches/llvm/gcc/llvm-convert.cpp 2007-04-03 17:23:51 UTC (rev 125691) +++ apple-local/branches/llvm/gcc/llvm-convert.cpp 2007-04-03 20:52:42 UTC (rev 125692) @@ -2659,6 +2659,7 @@ BasicBlock::iterator InsertPt; if (Instruction *I = dyn_cast(FirstVal)) { InsertPt = I; // Insert after the init instruction. + // If the instruction is an alloca in the entry block, the insert point // will be before the alloca. Advance to the AllocaInsertionPoint if we are // before it. @@ -2671,6 +2672,13 @@ } } } + +// If the instruction is an invoke, the init is inserted on the normal edge. +if (InvokeInst *II = dyn_cast(I)) { + InsertPt = II->getNormalDest()->begin(); + while (isa(InsertPt)) +++InsertPt; +} } else { InsertPt = AllocaInsertionPoint; // Insert after the allocas. } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Transforms/Scalar/InstructionCombining.cpp
Changes in directory llvm/lib/Transforms/Scalar: InstructionCombining.cpp updated: 1.726 -> 1.727 --- Log message: reinstate the previous two patches, with a bugfix :) ldecod now passes. --- Diffs of the changes: (+525 -493) InstructionCombining.cpp | 1018 --- 1 files changed, 525 insertions(+), 493 deletions(-) Index: llvm/lib/Transforms/Scalar/InstructionCombining.cpp diff -u llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.726 llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.727 --- llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.726 Tue Apr 3 03:11:50 2007 +++ llvm/lib/Transforms/Scalar/InstructionCombining.cpp Tue Apr 3 12:43:25 2007 @@ -183,6 +183,9 @@ Instruction *visitFCmpInst(FCmpInst &I); Instruction *visitICmpInst(ICmpInst &I); Instruction *visitICmpInstWithCastAndCast(ICmpInst &ICI); +Instruction *visitICmpInstWithInstAndIntCst(ICmpInst &ICI, +Instruction *LHS, +ConstantInt *RHS); Instruction *FoldGEPICmp(User *GEPLHS, Value *RHS, ICmpInst::Predicate Cond, Instruction &I); @@ -4713,496 +4716,11 @@ // instruction, see if that instruction also has constants so that the // instruction can be folded into the icmp if (Instruction *LHSI = dyn_cast(Op0)) - switch (LHSI->getOpcode()) { - case Instruction::And: -if (LHSI->hasOneUse() && isa(LHSI->getOperand(1)) && -LHSI->getOperand(0)->hasOneUse()) { - ConstantInt *AndCST = cast(LHSI->getOperand(1)); - - // If the LHS is an AND of a truncating cast, we can widen the - // and/compare to be the input width without changing the value - // produced, eliminating a cast. - if (CastInst *Cast = dyn_cast(LHSI->getOperand(0))) { -// We can do this transformation if either the AND constant does not -// have its sign bit set or if it is an equality comparison. -// Extending a relational comparison when we're checking the sign -// bit would not work. -if (Cast->hasOneUse() && isa(Cast) && -(I.isEquality() || AndCST->getValue().isPositive() && - CI->getValue().isPositive())) { - ConstantInt *NewCST; - ConstantInt *NewCI; - APInt NewCSTVal(AndCST->getValue()), NewCIVal(CI->getValue()); - uint32_t BitWidth = cast( -Cast->getOperand(0)->getType())->getBitWidth(); - NewCST = ConstantInt::get(NewCSTVal.zext(BitWidth)); - NewCI = ConstantInt::get(NewCIVal.zext(BitWidth)); - Instruction *NewAnd = -BinaryOperator::createAnd(Cast->getOperand(0), NewCST, - LHSI->getName()); - InsertNewInstBefore(NewAnd, I); - return new ICmpInst(I.getPredicate(), NewAnd, NewCI); -} - } - - // If this is: (X >> C1) & C2 != C3 (where any shift and any compare - // could exist), turn it into (X & (C2 << C1)) != (C3 << C1). This - // happens a LOT in code produced by the C front-end, for bitfield - // access. - BinaryOperator *Shift = dyn_cast(LHSI->getOperand(0)); - if (Shift && !Shift->isShift()) -Shift = 0; - - ConstantInt *ShAmt; - ShAmt = Shift ? dyn_cast(Shift->getOperand(1)) : 0; - const Type *Ty = Shift ? Shift->getType() : 0; // Type of the shift. - const Type *AndTy = AndCST->getType(); // Type of the and. - - // We can fold this as long as we can't shift unknown bits - // into the mask. This can only happen with signed shift - // rights, as they sign-extend. - if (ShAmt) { -bool CanFold = Shift->isLogicalShift(); -if (!CanFold) { - // To test for the bad case of the signed shr, see if any - // of the bits shifted in could be tested after the mask. - uint32_t TyBits = Ty->getPrimitiveSizeInBits(); - int ShAmtVal = TyBits - ShAmt->getLimitedValue(TyBits); - - uint32_t BitWidth = AndTy->getPrimitiveSizeInBits(); - if ((APInt::getHighBitsSet(BitWidth, BitWidth-ShAmtVal) & - AndCST->getValue()) == 0) -CanFold = true; -} - -if (CanFold) { - Constant *NewCst; - if (Shift->getOpcode() == Instruction::Shl) -NewCst = ConstantExpr::getLShr(CI, ShAmt); - else -NewCst = ConstantExpr::getShl(CI, ShAmt); - - // Check to see if we are shifting out any of the bits being - // compared. - if (ConstantExpr::get(Shift->getOpcode(), NewCst, ShAmt) != CI){ -
Re: [llvm-commits] eh_arm.cc
On Apr 3, 2007, at 6:49 AM, Lauro Ramos Venancio wrote: > Files missed: > ? libstdc++-v3/libsupc++/eh_arm.cc > ? libstdc++-v3/libsupc++/eh_call.cc > ? gcc/config/arm/libunwind.S > ? gcc/config/arm/pr-support.c > ? gcc/config/arm/unwind-arm.c > ? gcc/config/arm/unaligned-funcs.c > ? gcc/config/arm/unwind-arm.h > > Lauro\ Sorry everybody, my fault. Should be OK now. > 2007/4/3, Lauro Ramos Venancio <[EMAIL PROTECTED]>: >> The file eh_arm.cc wasn't committed. It is in the patch. I can't test >> and see if other files are missing because the patch doesn't reach >> the >> public svn yet. >> >> Lauro >> >> 2007/4/3, Devang Patel <[EMAIL PROTECTED]>: >>> >>> On Apr 2, 2007, at 11:34 PM, Bill Wendling wrote: >>> I'm getting this error during llvm-gcc compilation: make[3]: *** No rule to make target `eh_arm.cc', needed by `eh_arm.lo'. Stop. make[3]: *** Waiting for unfinished jobs >>> >>> This is related to Lauro Ramos Venancio's patch Dale committed. >>> >>> - >>> Devang >>> ___ >>> llvm-commits mailing list >>> llvm-commits@cs.uiuc.edu >>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits >>> >> > ___ > llvm-commits mailing list > llvm-commits@cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] [125691] missing files from ARM EABI patch
Revision: 125691 Author: johannes Date: 2007-04-03 10:23:51 -0700 (Tue, 03 Apr 2007) Log Message: --- missing files from ARM EABI patch Added Paths: --- apple-local/branches/llvm/gcc/config/arm/libunwind.S apple-local/branches/llvm/gcc/config/arm/pr-support.c apple-local/branches/llvm/gcc/config/arm/unaligned-funcs.c apple-local/branches/llvm/gcc/config/arm/unwind-arm.c apple-local/branches/llvm/gcc/config/arm/unwind-arm.h Added: apple-local/branches/llvm/gcc/config/arm/libunwind.S === --- apple-local/branches/llvm/gcc/config/arm/libunwind.S (rev 0) +++ apple-local/branches/llvm/gcc/config/arm/libunwind.S2007-04-03 17:23:51 UTC (rev 125691) @@ -0,0 +1,116 @@ +/* Support functions for the unwinder. + Copyright (C) 2003, 2004 Free Software Foundation, Inc. + Contributed by Paul Brook + + This file is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2, or (at your option) any + later version. + + In addition to the permissions in the GNU General Public License, the + Free Software Foundation gives you unlimited permission to link the + compiled version of this file into combinations with other programs, + and to distribute those combinations without any restriction coming + from the use of this file. (The General Public License restrictions + do apply in other respects; for example, they cover modification of + the file, and distribution when not linked into a combine + executable.) + + This file is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to + the Free Software Foundation, 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#ifdef L_unwind + +.macro UNPREFIX name + .global SYM (\name) + EQUIV SYM (\name), SYM (__\name) +.endm + +/* r0 points to a 16-word block. Upload these values to the actual core + state. */ +ARM_FUNC_START restore_core_regs + /* We must use sp as the base register when restoring sp. Push the + last 3 registers onto the top of the current stack to achieve + this. */ + add r1, r0, #52 + ldmia r1, {r3, r4, r5} /* {sp, lr, pc}. */ +#ifdef __INTERWORKING__ + /* Restore pc into ip. */ + mov r2, r5 + stmfd sp!, {r2, r3, r4} +#else + stmfd sp!, {r3, r4, r5} +#endif + /* Don't bother restoring ip. */ + ldmia r0, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp} + /* Pop the three registers we pushed earlier. */ +#ifdef __INTERWORKING__ + ldmfd sp, {ip, sp, lr} + bx ip +#else + ldmfd sp, {sp, lr, pc} +#endif + FUNC_END restore_core_regs + UNPREFIX restore_core_regs + +/* Load VFP registers d0-d15 from the address in r0. */ +ARM_FUNC_START gnu_Unwind_Restore_VFP + /* Use the generic coprocessor form so that gas doesn't complain + on soft-float targets. */ + ldc p11,cr0,[r0],{0x21} /* fldmiax r0, {d0-d15} */ + RET + +/* Store VFR regsters d0-d15 to the address in r0. */ +ARM_FUNC_START gnu_Unwind_Save_VFP + /* Use the generic coprocessor form so that gas doesn't complain + on soft-float targets. */ + stc p11,cr0,[r0],{0x21} /* fstmiax r0, {d0-d15} */ + RET + +/* Wrappers to save core registers, then call the real routine. */ + +.macro UNWIND_WRAPPER name + ARM_FUNC_START \name + /* Create a phase2_vrs structure. */ + /* Split reg push in two to ensure the correct value for sp. */ + stmfd sp!, {sp, lr, pc} + stmfd sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip} + + /* Demand-save flags, plus an extra word for alignment. */ + mov r3, #0 + stmfd sp!, {r2, r3} + + /* Point r1 at the block. Pass r0 unchanged. */ + add r1, sp, #4 +#if defined(__thumb__) + /* Switch back to thumb mode to avoid interworking hassle. */ + adr ip, .L1_\name + orr ip, ip, #1 + bx ip + .thumb +.L1_\name: + bl SYM (__gnu\name) __PLT__ + ldr r3, [sp, #64] + add sp, #72 + bx r3 +#else + bl SYM (__gnu\name) __PLT__ + ldr lr, [sp, #64] + add sp, sp, #72 + RET +#endif + FUNC_END \name + UNPREFIX \name +.endm + +UNWIND_WRAPPER _Unwind_RaiseException +UNWIND_WRAPPER _Unwind_Resume + +#endif /* L_unwind */ Added: apple-local/branches/llvm/gcc/config/arm/pr-support.c === --- a
[llvm-commits] [125690] missed part of ARM EABI patch
Revision: 125690 Author: johannes Date: 2007-04-03 10:22:18 -0700 (Tue, 03 Apr 2007) Log Message: --- missed part of ARM EABI patch Added Paths: --- apple-local/branches/llvm/libstdc++-v3/libsupc++/eh_arm.cc apple-local/branches/llvm/libstdc++-v3/libsupc++/eh_call.cc Added: apple-local/branches/llvm/libstdc++-v3/libsupc++/eh_arm.cc === --- apple-local/branches/llvm/libstdc++-v3/libsupc++/eh_arm.cc (rev 0) +++ apple-local/branches/llvm/libstdc++-v3/libsupc++/eh_arm.cc 2007-04-03 17:22:18 UTC (rev 125690) @@ -0,0 +1,153 @@ +// -*- C++ -*- ARM specific Exception handling support routines. +// Copyright (C) 2004, 2005 Free Software Foundation, Inc. +// +// This file is part of GCC. +// +// GCC is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2, or (at your option) +// any later version. +// +// GCC is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with GCC; see the file COPYING. If not, write to +// the Free Software Foundation, 59 Temple Place - Suite 330, +// Boston, MA 02111-1307, USA. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +#include +#include "unwind-cxx.h" + +#ifdef __ARM_EABI_UNWINDER__ + +using namespace __cxxabiv1; + + +// Given the thrown type THROW_TYPE, pointer to a variable containing a +// pointer to the exception object THROWN_PTR_P and a type CATCH_TYPE to +// compare against, return whether or not there is a match and if so, +// update *THROWN_PTR_P. + +extern "C" __cxa_type_match_result +__cxa_type_match(_Unwind_Exception* ue_header, +const std::type_info* catch_type, +bool is_reference __attribute__((__unused__)), +void** thrown_ptr_p) +{ + if (!__is_gxx_exception_class(ue_header->exception_class)) +return ctm_failed; + + __cxa_exception* xh = __get_exception_header_from_ue(ue_header); + const std::type_info* throw_type = xh->exceptionType; + void* thrown_ptr = *thrown_ptr_p; + + // Pointer types need to adjust the actual pointer, not + // the pointer to pointer that is the exception object. + // This also has the effect of passing pointer types + // "by value" through the __cxa_begin_catch return value. + if (throw_type->__is_pointer_p()) +thrown_ptr = *(void**) thrown_ptr; + + if (catch_type->__do_catch(throw_type, &thrown_ptr, 1)) +{ + *thrown_ptr_p = thrown_ptr; + + if (typeid(*catch_type) == typeid (typeid(void*))) + { + const __pointer_type_info *catch_pointer_type = + static_cast (catch_type); + const __pointer_type_info *throw_pointer_type = + static_cast (throw_type); + + if (typeid (*catch_pointer_type->__pointee) != typeid (void) + && (*catch_pointer_type->__pointee != + *throw_pointer_type->__pointee)) + return ctm_succeeded_with_ptr_to_base; + } + + return ctm_succeeded; +} + + return ctm_failed; +} + +// ABI defined routine called at the start of a cleanup handler. +extern "C" bool +__cxa_begin_cleanup(_Unwind_Exception* ue_header) +{ + __cxa_eh_globals *globals = __cxa_get_globals(); + __cxa_exception *header = __get_exception_header_from_ue(ue_header); + + if (!__is_gxx_exception_class(header->unwindHeader.exception_class)) +{ + // TODO: cleanups with foreign exceptions. + return false; +} + header->propagationCount++; + // Add it to the chain if this is the first time we've seen this exception. + if (header->propagationCount == 1) +{ + header->nextPropagatingException = globals->propagatingExceptions; + globals->propagatingExceptions = header; +} + return true; +} + +// Do the work for __cxa_end_cleanup. Returns the currently propagating +// exception object. +extern "C" _Unwind_Exception * +__gnu_end_cleanup(void) +{ + __cxa_exception *header; + __cxa_eh_globals *globals = __cxa_get_globals(); + + header = globals->propagatingExceptions; + + // Check something hasn't gone horribly wrong. + if (!header) +std::te
[llvm-commits] CVS: llvm-www/DevMtgMay2007.html
Changes in directory llvm-www: DevMtgMay2007.html updated: 1.35 -> 1.36 --- Log message: HTML 4.01 compliance. --- Diffs of the changes: (+2 -2) DevMtgMay2007.html |4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Index: llvm-www/DevMtgMay2007.html diff -u llvm-www/DevMtgMay2007.html:1.35 llvm-www/DevMtgMay2007.html:1.36 --- llvm-www/DevMtgMay2007.html:1.35Tue Apr 3 12:05:19 2007 +++ llvm-www/DevMtgMay2007.html Tue Apr 3 12:08:45 2007 @@ -158,7 +158,7 @@ In addition to the planned sessions above, the following discussion topics have been submitted. - Suggested ByIssue or Discussion Topic + Suggested ByIssue or Discussion Topic Owen AndersonFuture development practices: with a burgeoning number of clients and wider adoption, do we want more organized development practices? i.e. release focuses or something? @@ -263,6 +263,6 @@ src="http://jigsaw.w3.org/css-validator/images/vcss"; alt="Valid CSS!"> http://validator.w3.org/check/referer";>http://www.w3.org/Icons/valid-html401"; alt="Valid HTML 4.01!"> -Last modified: $Date: 2007/04/03 17:05:19 $ +Last modified: $Date: 2007/04/03 17:08:45 $ ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm-www/DevMtgMay2007.html
Changes in directory llvm-www: DevMtgMay2007.html updated: 1.34 -> 1.35 --- Log message: Add links into the agenda and fix the table tags there. Mention Oscar's brief talk. --- Diffs of the changes: (+12 -10) DevMtgMay2007.html | 22 -- 1 files changed, 12 insertions(+), 10 deletions(-) Index: llvm-www/DevMtgMay2007.html diff -u llvm-www/DevMtgMay2007.html:1.34 llvm-www/DevMtgMay2007.html:1.35 --- llvm-www/DevMtgMay2007.html:1.34Tue Apr 3 02:56:27 2007 +++ llvm-www/DevMtgMay2007.html Tue Apr 3 12:05:19 2007 @@ -63,15 +63,15 @@ StartStopDescription 08:0008:45Meet - Greet -08:4509:00Session 0: LLVM History -09:0010:30Session 1: Introductions -10:3011:00Break - Informal Discussions -11:0012:00Session 2: Learning LLVM -12:0013:00Lunch Break -13:0015:00Session 3: Using LLVM -15:0015:30Break - Informal Discussions -15:3017:00Session 4: Improving LLVM -17:0018:00Wrap up - Social Time +08:4509:00Session 0: LLVM History +09:0010:30Session 1: Introductions +10:3011:00Break - Informal Discussions +11:0012:00Session 2: Learning LLVM +12:0013:00Lunch Break +13:0015:00Session 3: Using LLVM +15:0015:30Break - Informal Discussions +15:3017:00Session 4: Improving LLVM +17:0018:00Wrap up - Social Time 18:0021:00Dinner (Optional) @@ -82,6 +82,8 @@ of LLVM) will present a brief and casual history of how LLVM got from an idea in the back of Chris' brain in 2000 to an up-and-coming Open Source project in 2007. + Also featured in this session will be a brief talk by Oscar describing his + plans for world domination. Session 1: Introductions @@ -261,6 +263,6 @@ src="http://jigsaw.w3.org/css-validator/images/vcss"; alt="Valid CSS!"> http://validator.w3.org/check/referer";>http://www.w3.org/Icons/valid-html401"; alt="Valid HTML 4.01!"> -Last modified: $Date: 2007/04/03 07:56:27 $ +Last modified: $Date: 2007/04/03 17:05:19 $ ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
Re: [llvm-commits] CVS: llvm/lib/Target/PowerPC/PPCCallingConv.td PPCFrameInfo.h PPCISelLowering.cpp PPCInstr64Bit.td PPCRegisterInfo.cpp PPCSubtarget.h
> @@ -46,9 +46,9 @@ > if (isMacho) >return LP64 ? 40 : 20; > > -// For ELF ABI: > +// For ELF 32 ABI: > // Save it right before the link register > -return LP64 ? -8 : -4; > +return -4; >} This function is unsigned and it is returning a negative value. Lauro ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/PowerPC/PPCISelLowering.cpp PPCISelLowering.h
Changes in directory llvm/lib/Target/PowerPC: PPCISelLowering.cpp updated: 1.267 -> 1.268 PPCISelLowering.h updated: 1.64 -> 1.65 --- Log message: Starting implementation of the ELF32 ABI specification of varargs handling. LowerVASTART emits the right code if the subtarget is ELF32, the other intrinsics (VAARG, VACOPY and VAEND) are not yet implemented. --- Diffs of the changes: (+177 -9) PPCISelLowering.cpp | 180 +--- PPCISelLowering.h |6 + 2 files changed, 177 insertions(+), 9 deletions(-) Index: llvm/lib/Target/PowerPC/PPCISelLowering.cpp diff -u llvm/lib/Target/PowerPC/PPCISelLowering.cpp:1.267 llvm/lib/Target/PowerPC/PPCISelLowering.cpp:1.268 --- llvm/lib/Target/PowerPC/PPCISelLowering.cpp:1.267 Tue Apr 3 07:35:28 2007 +++ llvm/lib/Target/PowerPC/PPCISelLowering.cpp Tue Apr 3 08:59:52 2007 @@ -169,8 +169,13 @@ // VASTART needs to be custom lowered to use the VarArgsFrameIndex setOperationAction(ISD::VASTART , MVT::Other, Custom); + // VAARG is custom lowered with ELF 32 ABI + if (TM.getSubtarget().isELF32_ABI()) +setOperationAction(ISD::VAARG, MVT::Other, Custom); + else +setOperationAction(ISD::VAARG, MVT::Other, Expand); + // Use the default implementation. - setOperationAction(ISD::VAARG , MVT::Other, Expand); setOperationAction(ISD::VACOPY, MVT::Other, Expand); setOperationAction(ISD::VAEND , MVT::Other, Expand); setOperationAction(ISD::STACKSAVE , MVT::Other, Expand); @@ -1086,15 +1091,96 @@ return SDOperand(); } +static SDOperand LowerVAARG(SDOperand Op, SelectionDAG &DAG, + int VarArgsFrameIndex, + int VarArgsStackOffset, + unsigned VarArgsNumGPR, + unsigned VarArgsNumFPR, + const PPCSubtarget &Subtarget) { + + assert(0 && "VAARG in ELF32 ABI not implemented yet!"); +} + static SDOperand LowerVASTART(SDOperand Op, SelectionDAG &DAG, - unsigned VarArgsFrameIndex) { - // vastart just stores the address of the VarArgsFrameIndex slot into the - // memory location argument. + int VarArgsFrameIndex, + int VarArgsStackOffset, + unsigned VarArgsNumGPR, + unsigned VarArgsNumFPR, + const PPCSubtarget &Subtarget) { + + if (Subtarget.isMachoABI()) { +// vastart just stores the address of the VarArgsFrameIndex slot into the +// memory location argument. +MVT::ValueType PtrVT = DAG.getTargetLoweringInfo().getPointerTy(); +SDOperand FR = DAG.getFrameIndex(VarArgsFrameIndex, PtrVT); +SrcValueSDNode *SV = cast(Op.getOperand(2)); +return DAG.getStore(Op.getOperand(0), FR, Op.getOperand(1), SV->getValue(), +SV->getOffset()); + } + + // For ELF 32 ABI we follow the layout of the va_list struct. + // We suppose the given va_list is already allocated. + // + // typedef struct { + // char gpr; /* index into the array of 8 GPRs + // * stored in the register save area + // * gpr=0 corresponds to r3, + // * gpr=1 to r4, etc. + // */ + // char fpr; /* index into the array of 8 FPRs + // * stored in the register save area + // * fpr=0 corresponds to f1, + // * fpr=1 to f2, etc. + // */ + // char *overflow_arg_area; + ///* location on stack that holds + // * the next overflow argument + // */ + // char *reg_save_area; + // /* where r3:r10 and f1:f8 (if saved) + //* are stored + //*/ + // } va_list[1]; + + + SDOperand ArgGPR = DAG.getConstant(VarArgsNumGPR, MVT::i8); + SDOperand ArgFPR = DAG.getConstant(VarArgsNumFPR, MVT::i8); + + MVT::ValueType PtrVT = DAG.getTargetLoweringInfo().getPointerTy(); + + SDOperand StackOffset = DAG.getFrameIndex(VarArgsStackOffset, PtrVT); SDOperand FR = DAG.getFrameIndex(VarArgsFrameIndex, PtrVT); + + SDOperand ConstFrameOffset = DAG.getConstant(MVT::getSizeInBits(PtrVT)/8, + PtrVT); + SDOperand ConstStackOffset = DAG.getConstant(MVT::getSizeInBits(PtrVT)/8 - 1, + PtrVT); + SDOperand ConstFPROffset = DAG.getConstant(1, PtrVT); + SrcValueSDNode *SV = cast(Op.getOperand(2)); - return DAG.getStore(Op.getOperand(0), FR, Op.getOperand(1), SV->getValue(), + + // Store first byte : number of int regs + SDOperand firstStore = DAG.getStore(Op.getOperand(0), ArgGPR, + Op.getOperand(1), SV->getValue(), + SV->getOffset());
Re: [llvm-commits] eh_arm.cc
Files missed: ? libstdc++-v3/libsupc++/eh_arm.cc ? libstdc++-v3/libsupc++/eh_call.cc ? gcc/config/arm/libunwind.S ? gcc/config/arm/pr-support.c ? gcc/config/arm/unwind-arm.c ? gcc/config/arm/unaligned-funcs.c ? gcc/config/arm/unwind-arm.h Lauro 2007/4/3, Lauro Ramos Venancio <[EMAIL PROTECTED]>: > The file eh_arm.cc wasn't committed. It is in the patch. I can't test > and see if other files are missing because the patch doesn't reach the > public svn yet. > > Lauro > > 2007/4/3, Devang Patel <[EMAIL PROTECTED]>: > > > > On Apr 2, 2007, at 11:34 PM, Bill Wendling wrote: > > > > > I'm getting this error during llvm-gcc compilation: > > > > > > make[3]: *** No rule to make target `eh_arm.cc', needed by > > > `eh_arm.lo'. Stop. > > > make[3]: *** Waiting for unfinished jobs > > > > This is related to Lauro Ramos Venancio's patch Dale committed. > > > > - > > Devang > > ___ > > llvm-commits mailing list > > llvm-commits@cs.uiuc.edu > > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits > > > ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/PowerPC/PPCCallingConv.td PPCFrameInfo.h PPCISelLowering.cpp PPCInstr64Bit.td PPCRegisterInfo.cpp PPCSubtarget.h
Changes in directory llvm/lib/Target/PowerPC: PPCCallingConv.td updated: 1.2 -> 1.3 PPCFrameInfo.h updated: 1.13 -> 1.14 PPCISelLowering.cpp updated: 1.266 -> 1.267 PPCInstr64Bit.td updated: 1.43 -> 1.44 PPCRegisterInfo.cpp updated: 1.120 -> 1.121 PPCSubtarget.h updated: 1.25 -> 1.26 --- Log message: The PPC64 ELF ABI is "intended to use the same structure layout and calling convention rules as the 64-bit PowerOpen ABI" (Reference http://www.linux-foundation.org/spec/ELF/ppc64/). Change all ELF tests to ELF32. --- Diffs of the changes: (+46 -92) PPCCallingConv.td |4 +- PPCFrameInfo.h | 14 PPCISelLowering.cpp | 26 +++ PPCInstr64Bit.td|5 +-- PPCRegisterInfo.cpp | 85 +++- PPCSubtarget.h |4 +- 6 files changed, 46 insertions(+), 92 deletions(-) Index: llvm/lib/Target/PowerPC/PPCCallingConv.td diff -u llvm/lib/Target/PowerPC/PPCCallingConv.td:1.2 llvm/lib/Target/PowerPC/PPCCallingConv.td:1.3 --- llvm/lib/Target/PowerPC/PPCCallingConv.td:1.2 Tue Apr 3 05:27:07 2007 +++ llvm/lib/Target/PowerPC/PPCCallingConv.td Tue Apr 3 07:35:28 2007 @@ -41,10 +41,10 @@ CCIfType<[i32], CCAssignToReg<[R3, R4, R5, R6, R7, R8, R9, R10]>>, CCIfType<[i64], CCAssignToReg<[X3, X4, X5, X6, X7, X8, X9, X10]>>, - // Darwin passes FP values in F1 - F13 + // Common sub-targets passes FP values in F1 - F13 CCIfType<[f32, f64], CCIfSubtarget<"isMachoABI()", CCAssignToReg<[F1, F2, F3, F4, F5, F6, F7, F8,F9,F10,F11,F12,F13]>>>, - // Other sub-targets pass FP values in F1-F8. + // ELF32 sub-target pass FP values in F1 - F8. CCIfType<[f32, f64], CCAssignToReg<[F1, F2, F3, F4, F5, F6, F7, F8]>>, // The first 12 Vector arguments are passed in altivec registers. Index: llvm/lib/Target/PowerPC/PPCFrameInfo.h diff -u llvm/lib/Target/PowerPC/PPCFrameInfo.h:1.13 llvm/lib/Target/PowerPC/PPCFrameInfo.h:1.14 --- llvm/lib/Target/PowerPC/PPCFrameInfo.h:1.13 Sat Feb 24 23:34:32 2007 +++ llvm/lib/Target/PowerPC/PPCFrameInfo.h Tue Apr 3 07:35:28 2007 @@ -32,8 +32,8 @@ static unsigned getReturnSaveOffset(bool LP64, bool isMacho) { if (isMacho) return LP64 ? 16 : 8; -// For ELF ABI: -return LP64 ? 8 : 4; +// For ELF 32 ABI: +return 4; } /// getFramePointerSaveOffset - Return the previous frame offset to save the @@ -46,9 +46,9 @@ if (isMacho) return LP64 ? 40 : 20; -// For ELF ABI: +// For ELF 32 ABI: // Save it right before the link register -return LP64 ? -8 : -4; +return -4; } /// getLinkageSize - Return the size of the PowerPC ABI linkage area. @@ -57,8 +57,8 @@ if (isMacho) return 6 * (LP64 ? 8 : 4); -// For ELF ABI: -return LP64 ? 16 : 8; +// For ELF 32 ABI: +return 8; } /// getMinCallArgumentsSize - Return the size of the minium PowerPC ABI @@ -73,7 +73,7 @@ if (isMacho) return 8 * (LP64 ? 8 : 4); -// For Linux ABI: +// For ELF 32 ABI: // There is no default stack allocated for the 8 first GPR arguments. return 0; } Index: llvm/lib/Target/PowerPC/PPCISelLowering.cpp diff -u llvm/lib/Target/PowerPC/PPCISelLowering.cpp:1.266 llvm/lib/Target/PowerPC/PPCISelLowering.cpp:1.267 --- llvm/lib/Target/PowerPC/PPCISelLowering.cpp:1.266 Tue Apr 3 05:27:07 2007 +++ llvm/lib/Target/PowerPC/PPCISelLowering.cpp Tue Apr 3 07:35:28 2007 @@ -1132,7 +1132,7 @@ MVT::ValueType PtrVT = DAG.getTargetLoweringInfo().getPointerTy(); bool isPPC64 = PtrVT == MVT::i64; bool isMachoABI = Subtarget.isMachoABI(); - bool isELF_ABI = Subtarget.isELF_ABI(); + bool isELF32_ABI = Subtarget.isELF32_ABI(); unsigned PtrByteSize = isPPC64 ? 8 : 4; unsigned ArgOffset = PPCFrameInfo::getLinkageSize(isPPC64, isMachoABI); @@ -1165,7 +1165,7 @@ // entry to a function on PPC, the arguments start after the linkage area, // although the first ones are often in registers. // - // In the ELF ABI, GPRs and stack are double word align: an argument + // In the ELF 32 ABI, GPRs and stack are double word align: an argument // represented with two words (long long or double) must be copied to an // even GPR_idx value or to an even ArgOffset value. @@ -1187,7 +1187,7 @@ default: assert(0 && "Unhandled argument type!"); case MVT::i32: // Double word align in ELF - if (Expand && isELF_ABI && !isPPC64) GPR_idx += (GPR_idx % 2); + if (Expand && isELF32_ABI) GPR_idx += (GPR_idx % 2); if (GPR_idx != Num_GPR_Regs) { unsigned VReg = RegMap->createVirtualRegister(&PPC::GPRCRegClass); MF.addLiveIn(GPR[GPR_idx], VReg); @@ -1198,7 +1198,7 @@ ArgSize = PtrByteSize; } // Stack align in ELF - if (needsLoad && Expand && isELF_ABI && !isPPC64) + if (needsLoad && Expand && isELF32_ABI) ArgOffset += ((ArgOffset/4) % 2) * PtrByteSize;
Re: [llvm-commits] eh_arm.cc
The file eh_arm.cc wasn't committed. It is in the patch. I can't test and see if other files are missing because the patch doesn't reach the public svn yet. Lauro 2007/4/3, Devang Patel <[EMAIL PROTECTED]>: > > On Apr 2, 2007, at 11:34 PM, Bill Wendling wrote: > > > I'm getting this error during llvm-gcc compilation: > > > > make[3]: *** No rule to make target `eh_arm.cc', needed by > > `eh_arm.lo'. Stop. > > make[3]: *** Waiting for unfinished jobs > > This is related to Lauro Ramos Venancio's patch Dale committed. > > - > Devang > ___ > llvm-commits mailing list > llvm-commits@cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits > ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp
Changes in directory llvm/lib/Target/PowerPC: PPCRegisterInfo.cpp updated: 1.119 -> 1.120 --- Log message: Addition to the previous commit for getCalleeSavedRegClasses: "The ELF ABI specifies F1-F8 registers as argument registers for double, not F1-F10. This affects only ELF, not MachO." --- Diffs of the changes: (+4 -2) PPCRegisterInfo.cpp |6 -- 1 files changed, 4 insertions(+), 2 deletions(-) Index: llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp diff -u llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp:1.119 llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp:1.120 --- llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp:1.119 Tue Apr 3 05:27:07 2007 +++ llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp Tue Apr 3 05:57:49 2007 @@ -378,7 +378,8 @@ &PPC::GPRCRegClass,&PPC::GPRCRegClass,&PPC::GPRCRegClass,&PPC::GPRCRegClass, &PPC::GPRCRegClass,&PPC::GPRCRegClass,&PPC::GPRCRegClass,&PPC::GPRCRegClass, - &PPC::F8RCRegClass,&PPC::F8RCRegClass,&PPC::F8RCRegClass, + &PPC::F8RCRegClass, + &PPC::F8RCRegClass,&PPC::F8RCRegClass,&PPC::F8RCRegClass,&PPC::F8RCRegClass, &PPC::F8RCRegClass,&PPC::F8RCRegClass,&PPC::F8RCRegClass,&PPC::F8RCRegClass, &PPC::F8RCRegClass,&PPC::F8RCRegClass,&PPC::F8RCRegClass,&PPC::F8RCRegClass, &PPC::F8RCRegClass,&PPC::F8RCRegClass,&PPC::F8RCRegClass,&PPC::F8RCRegClass, @@ -424,7 +425,8 @@ &PPC::G8RCRegClass,&PPC::G8RCRegClass,&PPC::G8RCRegClass,&PPC::G8RCRegClass, &PPC::G8RCRegClass,&PPC::G8RCRegClass,&PPC::G8RCRegClass,&PPC::G8RCRegClass, - &PPC::F8RCRegClass,&PPC::F8RCRegClass,&PPC::F8RCRegClass, + &PPC::F8RCRegClass, + &PPC::F8RCRegClass,&PPC::F8RCRegClass,&PPC::F8RCRegClass,&PPC::F8RCRegClass, &PPC::F8RCRegClass,&PPC::F8RCRegClass,&PPC::F8RCRegClass,&PPC::F8RCRegClass, &PPC::F8RCRegClass,&PPC::F8RCRegClass,&PPC::F8RCRegClass,&PPC::F8RCRegClass, &PPC::F8RCRegClass,&PPC::F8RCRegClass,&PPC::F8RCRegClass,&PPC::F8RCRegClass, ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/PowerPC/PPCCallingConv.td PPCISelLowering.cpp PPCInstr64Bit.td PPCInstrInfo.td PPCRegisterInfo.cpp
Changes in directory llvm/lib/Target/PowerPC: PPCCallingConv.td updated: 1.1 -> 1.2 PPCISelLowering.cpp updated: 1.265 -> 1.266 PPCInstr64Bit.td updated: 1.42 -> 1.43 PPCInstrInfo.td updated: 1.276 -> 1.277 PPCRegisterInfo.cpp updated: 1.118 -> 1.119 --- Log message: The ELF ABI specifies F1-F8 registers as argument registers for double, not F1-F10. This affects only ELF, not MachO. --- Diffs of the changes: (+12 -10) PPCCallingConv.td |4 ++-- PPCISelLowering.cpp |6 +++--- PPCInstr64Bit.td|2 +- PPCInstrInfo.td |2 +- PPCRegisterInfo.cpp |8 +--- 5 files changed, 12 insertions(+), 10 deletions(-) Index: llvm/lib/Target/PowerPC/PPCCallingConv.td diff -u llvm/lib/Target/PowerPC/PPCCallingConv.td:1.1 llvm/lib/Target/PowerPC/PPCCallingConv.td:1.2 --- llvm/lib/Target/PowerPC/PPCCallingConv.td:1.1 Mon Mar 5 18:59:59 2007 +++ llvm/lib/Target/PowerPC/PPCCallingConv.td Tue Apr 3 05:27:07 2007 @@ -44,8 +44,8 @@ // Darwin passes FP values in F1 - F13 CCIfType<[f32, f64], CCIfSubtarget<"isMachoABI()", CCAssignToReg<[F1, F2, F3, F4, F5, F6, F7, F8,F9,F10,F11,F12,F13]>>>, - // Other sub-targets pass FP values in F1-10. - CCIfType<[f32, f64], CCAssignToReg<[F1, F2, F3, F4, F5, F6, F7, F8, F9,F10]>>, + // Other sub-targets pass FP values in F1-F8. + CCIfType<[f32, f64], CCAssignToReg<[F1, F2, F3, F4, F5, F6, F7, F8]>>, // The first 12 Vector arguments are passed in altivec registers. CCIfType<[v16i8, v8i16, v4i32, v4f32], Index: llvm/lib/Target/PowerPC/PPCISelLowering.cpp diff -u llvm/lib/Target/PowerPC/PPCISelLowering.cpp:1.265 llvm/lib/Target/PowerPC/PPCISelLowering.cpp:1.266 --- llvm/lib/Target/PowerPC/PPCISelLowering.cpp:1.265 Fri Mar 30 18:15:24 2007 +++ llvm/lib/Target/PowerPC/PPCISelLowering.cpp Tue Apr 3 05:27:07 2007 @@ -1113,7 +1113,7 @@ static const unsigned FPR[] = { PPC::F1, PPC::F2, PPC::F3, PPC::F4, PPC::F5, PPC::F6, PPC::F7, -PPC::F8, PPC::F9, PPC::F10 +PPC::F8 }; return FPR; } @@ -1154,7 +1154,7 @@ }; const unsigned Num_GPR_Regs = sizeof(GPR_32)/sizeof(GPR_32[0]); - const unsigned Num_FPR_Regs = isMachoABI ? 13 : 10; + const unsigned Num_FPR_Regs = isMachoABI ? 13 : 8; const unsigned Num_VR_Regs = sizeof( VR)/sizeof( VR[0]); unsigned GPR_idx = 0, FPR_idx = 0, VR_idx = 0; @@ -1410,7 +1410,7 @@ PPC::V9, PPC::V10, PPC::V11, PPC::V12, PPC::V13 }; const unsigned NumGPRs = sizeof(GPR_32)/sizeof(GPR_32[0]); - const unsigned NumFPRs = isMachoABI ? 13 : 10; + const unsigned NumFPRs = isMachoABI ? 13 : 8; const unsigned NumVRs = sizeof( VR)/sizeof( VR[0]); const unsigned *GPR = isPPC64 ? GPR_64 : GPR_32; Index: llvm/lib/Target/PowerPC/PPCInstr64Bit.td diff -u llvm/lib/Target/PowerPC/PPCInstr64Bit.td:1.42 llvm/lib/Target/PowerPC/PPCInstr64Bit.td:1.43 --- llvm/lib/Target/PowerPC/PPCInstr64Bit.td:1.42 Sat Mar 24 23:44:03 2007 +++ llvm/lib/Target/PowerPC/PPCInstr64Bit.tdTue Apr 3 05:27:07 2007 @@ -91,7 +91,7 @@ let isCall = 1, noResults = 1, PPC970_Unit = 7, // All calls clobber the PPC64 non-callee saved registers. Defs = [X0,X2,X3,X4,X5,X6,X7,X8,X9,X10,X11,X12, - F0,F1,F2,F3,F4,F5,F6,F7,F8,F9,F10, + F0,F1,F2,F3,F4,F5,F6,F7,F8, V0,V1,V2,V3,V4,V5,V6,V7,V8,V9,V10,V11,V12,V13,V14,V15,V16,V17,V18,V19, LR8,CTR8, CR0,CR1,CR5,CR6,CR7] in { Index: llvm/lib/Target/PowerPC/PPCInstrInfo.td diff -u llvm/lib/Target/PowerPC/PPCInstrInfo.td:1.276 llvm/lib/Target/PowerPC/PPCInstrInfo.td:1.277 --- llvm/lib/Target/PowerPC/PPCInstrInfo.td:1.276 Tue Feb 27 07:01:19 2007 +++ llvm/lib/Target/PowerPC/PPCInstrInfo.td Tue Apr 3 05:27:07 2007 @@ -396,7 +396,7 @@ let isCall = 1, noResults = 1, PPC970_Unit = 7, // All calls clobber the non-callee saved registers... Defs = [R0,R2,R3,R4,R5,R6,R7,R8,R9,R10,R11,R12, - F0,F1,F2,F3,F4,F5,F6,F7,F8,F9,F10, + F0,F1,F2,F3,F4,F5,F6,F7,F8, V0,V1,V2,V3,V4,V5,V6,V7,V8,V9,V10,V11,V12,V13,V14,V15,V16,V17,V18,V19, LR,CTR, CR0,CR1,CR5,CR6,CR7] in { Index: llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp diff -u llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp:1.118 llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp:1.119 --- llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp:1.118 Wed Mar 21 11:44:14 2007 +++ llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp Tue Apr 3 05:27:07 2007 @@ -278,7 +278,8 @@ PPC::R24, PPC::R25, PPC::R26, PPC::R27, PPC::R28, PPC::R29, PPC::R30, PPC::R31, - PPC::F11, PPC::F12, PPC::F13, + PPC::F9, +PPC::F10, PPC::F11, PPC::F12, PPC::F13, PPC::F14, PPC::F15, PPC::F16, PPC::F17, PPC::F18, PPC::F19, PPC::F20, PPC::F21, PPC::F22, PPC::F23, PPC::F24, PPC::F25, @@ -320,8 +321,9 @@ PPC::X20, PPC::X21, PPC::X22, PPC::X23, PPC::X24, PPC::X25, PPC::X26, PPC::X27, PPC::X28, PPC::X29, PPC::X30, PPC::X31, - -
Re: [llvm-commits] CVS: llvm/lib/Transforms/Scalar/InstructionCombining.cpp
> Reverting back to 1.723. The last two commits broke JM (and possibily others) > on ARM. Definitely. Qt is broken too. Funny, but I see exactly the same errors, as soon after Reid's InstCombine APIntifiaction (some bits are missing, so tool outputs "settitle" instead of "setTitle" :) ). Will investigate this evening. Seems to be easy to reduce to one file. -- With best regards, Anton Korobeynikov. Faculty of Mathematics & Mechanics, Saint Petersburg State University. ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/utils/NewNightlyTest.pl
Changes in directory llvm/utils: NewNightlyTest.pl updated: 1.65 -> 1.66 --- Log message: Prepare for Subversion migration by implementing a -usesvn to tell the script to to check out llvm and llvm-test from Subversion instead of CVS. Without this option the script will continue to check out from CVS. To specify the Subversion URL, set the SVNURL environment variable or pass -svnurl followed by the URL. For now, -svnurl will default to Reid's temporary (read-only, daily snapshot) SVN server. Try it out if you like! --- Diffs of the changes: (+147 -62) NewNightlyTest.pl | 209 +- 1 files changed, 147 insertions(+), 62 deletions(-) Index: llvm/utils/NewNightlyTest.pl diff -u llvm/utils/NewNightlyTest.pl:1.65 llvm/utils/NewNightlyTest.pl:1.66 --- llvm/utils/NewNightlyTest.pl:1.65 Fri Nov 24 14:34:16 2006 +++ llvm/utils/NewNightlyTest.plTue Apr 3 03:28:44 2007 @@ -1,6 +1,7 @@ #!/usr/bin/perl use POSIX qw(strftime); use File::Copy; +use Date::Parse; use Socket; # @@ -45,6 +46,10 @@ # -gccpath Path to gcc/g++ used to build LLVM # -cvstag Check out a specific CVS tag to build LLVM (useful for # testing release branches) +# -usesvn Check code out from a subversion repository. With no +# argument, use the standard repository. An argument specifies +# the repository URL to use. +# -svnurl Specify the SVN URL where LLVM can be found # -target Specify the target triplet # -cflags Next argument specifies that C compilation options that # override the default. @@ -91,6 +96,8 @@ # ## my $HOME = $ENV{'HOME'}; +my $SVNURL = $ENV{"SVNURL"}; +$SVNURL= 'svn://[EMAIL PROTECTED]:3691/llvm.svn' unless $SVNURL; my $CVSRootDir = $ENV{'CVSROOT'}; $CVSRootDir= "/home/vadve/shared/PublicCVS" unless $CVSRootDir; my $BuildDir = $ENV{'BUILDDIR'}; @@ -116,6 +123,7 @@ $CONFIGUREARGS=""; $nickname=""; $NOTEST=0; +$USESVN=0; $NORUNNINGTESTS=0; $MAKECMD="make"; $SUBMITSERVER = "llvm.org"; @@ -163,6 +171,8 @@ else { $GCCPATH=""; } if (/^-cvstag/) { $CVSCOOPT .= " -r $ARGV[0]"; shift; next; } else { $CVSCOOPT="";} + if (/^-usesvn/) { $USESVN = 1; } + if (/^-svnurl/) { $SVNURL = $ARGV[0]; shift; next; } if (/^-target/) { $CONFIGUREARGS .= " --target=$ARGV[0]"; shift; next; } if (/^-cflags/) { $MAKEOPTS = "$MAKEOPTS C.Flags=\'$ARGV[0]\'"; @@ -225,7 +235,7 @@ ## my $Prefix = "$WebDir/$DATE"; my $BuildLog = "$Prefix-Build-Log.txt"; -my $CVSLog = "$Prefix-CVS-Log.txt"; +my $COLog = "$Prefix-CVS-Log.txt"; my $OldenTestsLog = "$Prefix-Olden-tests.txt"; my $SingleSourceLog = "$Prefix-SingleSource-ProgramTest.txt.gz"; my $MultiSourceLog = "$Prefix-MultiSource-ProgramTest.txt.gz"; @@ -242,11 +252,15 @@ if ($VERBOSE) { print "INITIALIZED\n"; - print "CVS Root = $CVSRootDir\n"; + if ($USESVN) { +print "SVN URL = $SVNURL\n"; + } else { +print "CVS Root = $CVSRootDir\n"; + } + print "COLog= $COLog\n"; print "BuildDir = $BuildDir\n"; print "WebDir = $WebDir\n"; print "Prefix = $Prefix\n"; - print "CVSLog = $CVSLog\n"; print "BuildLog = $BuildLog\n"; } @@ -477,39 +491,48 @@ print "Build directory exists! Removing it\n"; } system "rm -rf $BuildDir"; - mkdir $BuildDir or die "Could not create CVS checkout directory $BuildDir!"; + mkdir $BuildDir or die "Could not create checkout directory $BuildDir!"; } else { if ( $VERBOSE ) { print "Build directory exists!\n"; } } } else { -mkdir $BuildDir or die "Could not create CVS checkout directory $BuildDir!"; +mkdir $BuildDir or die "Could not create checkout directory $BuildDir!"; } } -ChangeDir( $BuildDir, "CVS checkout directory" ); +ChangeDir( $BuildDir, "checkout directory" ); ## # -# Check out the llvm tree, saving CVS messages to the cvs log... +# Check out the llvm tree, using either SVN or CVS # ## -my $CVSOPT = ""; -# Use compression if going over ssh. -$CVSOPT = "-z3" - if $CVSRootDir =~ /^:ext:/; -my $CVSCMD = "$NICE cvs $CVSOPT -d $CVSRootDir co -P $CVSCOOPT"; if (!$NOCHECKOUT) { if ( $VERBOSE ) { print "CHECKOUT STAGE:\n"; -print "( time -p $CVSCMD llvm; cd llvm/projects ; $CVSCMD llvm-test ) " . - "> $CVSLog 2>&1\n"; } - system "( time -p $CVSCMD llvm; cd llvm/projects ; " . - "$CVSCMD llvm-test ) > $CVSLog 2>&1"; - ChangeDir( $BuildDir , "CVS Checkout directory") ; + if ($USESVN) { +my $SVNCMD = "$NICE
[llvm-commits] CVS: llvm/lib/Transforms/Scalar/InstructionCombining.cpp
Changes in directory llvm/lib/Transforms/Scalar: InstructionCombining.cpp updated: 1.725 -> 1.726 --- Log message: Reverting back to 1.723. The last two commits broke JM (and possibily others) on ARM. --- Diffs of the changes: (+491 -524) InstructionCombining.cpp | 1015 ++- 1 files changed, 491 insertions(+), 524 deletions(-) Index: llvm/lib/Transforms/Scalar/InstructionCombining.cpp diff -u llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.725 llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.726 --- llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.725 Mon Apr 2 23:46:52 2007 +++ llvm/lib/Transforms/Scalar/InstructionCombining.cpp Tue Apr 3 03:11:50 2007 @@ -183,9 +183,6 @@ Instruction *visitFCmpInst(FCmpInst &I); Instruction *visitICmpInst(ICmpInst &I); Instruction *visitICmpInstWithCastAndCast(ICmpInst &ICI); -Instruction *visitICmpInstWithInstAndIntCst(ICmpInst &ICI, -Instruction *LHS, -ConstantInt *RHS); Instruction *FoldGEPICmp(User *GEPLHS, Value *RHS, ICmpInst::Predicate Cond, Instruction &I); @@ -4716,11 +4713,496 @@ // instruction, see if that instruction also has constants so that the // instruction can be folded into the icmp if (Instruction *LHSI = dyn_cast(Op0)) - if (Instruction *Res = visitICmpInstWithInstAndIntCst(I, LHSI, CI)) -return Res; + switch (LHSI->getOpcode()) { + case Instruction::And: +if (LHSI->hasOneUse() && isa(LHSI->getOperand(1)) && +LHSI->getOperand(0)->hasOneUse()) { + ConstantInt *AndCST = cast(LHSI->getOperand(1)); + + // If the LHS is an AND of a truncating cast, we can widen the + // and/compare to be the input width without changing the value + // produced, eliminating a cast. + if (CastInst *Cast = dyn_cast(LHSI->getOperand(0))) { +// We can do this transformation if either the AND constant does not +// have its sign bit set or if it is an equality comparison. +// Extending a relational comparison when we're checking the sign +// bit would not work. +if (Cast->hasOneUse() && isa(Cast) && +(I.isEquality() || AndCST->getValue().isPositive() && + CI->getValue().isPositive())) { + ConstantInt *NewCST; + ConstantInt *NewCI; + APInt NewCSTVal(AndCST->getValue()), NewCIVal(CI->getValue()); + uint32_t BitWidth = cast( +Cast->getOperand(0)->getType())->getBitWidth(); + NewCST = ConstantInt::get(NewCSTVal.zext(BitWidth)); + NewCI = ConstantInt::get(NewCIVal.zext(BitWidth)); + Instruction *NewAnd = +BinaryOperator::createAnd(Cast->getOperand(0), NewCST, + LHSI->getName()); + InsertNewInstBefore(NewAnd, I); + return new ICmpInst(I.getPredicate(), NewAnd, NewCI); +} + } + + // If this is: (X >> C1) & C2 != C3 (where any shift and any compare + // could exist), turn it into (X & (C2 << C1)) != (C3 << C1). This + // happens a LOT in code produced by the C front-end, for bitfield + // access. + BinaryOperator *Shift = dyn_cast(LHSI->getOperand(0)); + if (Shift && !Shift->isShift()) +Shift = 0; + + ConstantInt *ShAmt; + ShAmt = Shift ? dyn_cast(Shift->getOperand(1)) : 0; + const Type *Ty = Shift ? Shift->getType() : 0; // Type of the shift. + const Type *AndTy = AndCST->getType(); // Type of the and. + + // We can fold this as long as we can't shift unknown bits + // into the mask. This can only happen with signed shift + // rights, as they sign-extend. + if (ShAmt) { +bool CanFold = Shift->isLogicalShift(); +if (!CanFold) { + // To test for the bad case of the signed shr, see if any + // of the bits shifted in could be tested after the mask. + uint32_t TyBits = Ty->getPrimitiveSizeInBits(); + int ShAmtVal = TyBits - ShAmt->getLimitedValue(TyBits); + + uint32_t BitWidth = AndTy->getPrimitiveSizeInBits(); + if ((APInt::getHighBitsSet(BitWidth, BitWidth-ShAmtVal) & + AndCST->getValue()) == 0) +CanFold = true; +} + +if (CanFold) { + Constant *NewCst; + if (Shift->getOpcode() == Instruction::Shl) +NewCst = ConstantExpr::getLShr(CI, ShAmt); + else +NewCst = ConstantExpr::getShl(CI, ShAmt); + + // Check to see if we are shifting out any of the bits being +
[llvm-commits] CVS: llvm-www/DevMtgMay2007.html
Changes in directory llvm-www: DevMtgMay2007.html updated: 1.33 -> 1.34 --- Log message: Put the actual date in the title. --- Diffs of the changes: (+2 -2) DevMtgMay2007.html |4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Index: llvm-www/DevMtgMay2007.html diff -u llvm-www/DevMtgMay2007.html:1.33 llvm-www/DevMtgMay2007.html:1.34 --- llvm-www/DevMtgMay2007.html:1.33Tue Apr 3 02:53:55 2007 +++ llvm-www/DevMtgMay2007.html Tue Apr 3 02:56:27 2007 @@ -1,5 +1,5 @@ -May 2007 LLVM Developers Meeting +May 25, 2007LLVM Developers' Meeting Summary Agenda @@ -261,6 +261,6 @@ src="http://jigsaw.w3.org/css-validator/images/vcss"; alt="Valid CSS!"> http://validator.w3.org/check/referer";>http://www.w3.org/Icons/valid-html401"; alt="Valid HTML 4.01!"> -Last modified: $Date: 2007/04/03 07:53:55 $ +Last modified: $Date: 2007/04/03 07:56:27 $ ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm-www/DevMtgMay2007.html
Changes in directory llvm-www: DevMtgMay2007.html updated: 1.32 -> 1.33 --- Log message: Fix typo. --- Diffs of the changes: (+2 -2) DevMtgMay2007.html |4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Index: llvm-www/DevMtgMay2007.html diff -u llvm-www/DevMtgMay2007.html:1.32 llvm-www/DevMtgMay2007.html:1.33 --- llvm-www/DevMtgMay2007.html:1.32Tue Apr 3 02:43:27 2007 +++ llvm-www/DevMtgMay2007.html Tue Apr 3 02:53:55 2007 @@ -251,7 +251,7 @@ Unconfirmed 1NASA, Ames Total confirmed attendees: 16 - Possible additional attendeew: 9 + Possible additional attendees: 9 @@ -261,6 +261,6 @@ src="http://jigsaw.w3.org/css-validator/images/vcss"; alt="Valid CSS!"> http://validator.w3.org/check/referer";>http://www.w3.org/Icons/valid-html401"; alt="Valid HTML 4.01!"> -Last modified: $Date: 2007/04/03 07:43:27 $ +Last modified: $Date: 2007/04/03 07:53:55 $ ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm-www/DevMtgMay2007.html
Changes in directory llvm-www: DevMtgMay2007.html updated: 1.31 -> 1.32 --- Log message: Portray the confirmed/unconfirmed attendees more accurately. --- Diffs of the changes: (+14 -6) DevMtgMay2007.html | 20 ++-- 1 files changed, 14 insertions(+), 6 deletions(-) Index: llvm-www/DevMtgMay2007.html diff -u llvm-www/DevMtgMay2007.html:1.31 llvm-www/DevMtgMay2007.html:1.32 --- llvm-www/DevMtgMay2007.html:1.31Tue Apr 3 02:17:54 2007 +++ llvm-www/DevMtgMay2007.html Tue Apr 3 02:43:27 2007 @@ -224,6 +224,7 @@ The table below lists the confirmed attendees for the meeting. +Confirmed Attendees NameOrganization Vikram AdveUIUC Owen AndersonIndependent @@ -234,16 +235,23 @@ Christopher LambAgeia Technologies, Inc. Chris LattnerApple, Inc. Nick LewyckyIndependent -Scott Michel + 2Aerospace +Scott MichelAerospace Devang PatelApple, Inc. -Mark Schimmel + 1Wind River +Mark SchimmelWind River Reid SpencerIndependent -Sarah Thompson + 1NASA, Ames Research Center +Sarah ThompsonNASA, Ames Research Center Bill WendlingApple, Inc. Marcel WeiherMetaObject +Unconfirmed Attendees +NameOrganization +Unconfirmed 3Adobe +Unconfirmed 2+Apple +Unconfirmed 2Aerospace +Unconfirmed 1Wind River +Unconfirmed 1NASA, Ames - Total confirmed attendees: 20 - Possible additional attendeew: 5 + Total confirmed attendees: 16 + Possible additional attendeew: 9 @@ -253,6 +261,6 @@ src="http://jigsaw.w3.org/css-validator/images/vcss"; alt="Valid CSS!"> http://validator.w3.org/check/referer";>http://www.w3.org/Icons/valid-html401"; alt="Valid HTML 4.01!"> -Last modified: $Date: 2007/04/03 07:17:54 $ +Last modified: $Date: 2007/04/03 07:43:27 $ ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm-www/DevMtgMay2007.html
Changes in directory llvm-www: DevMtgMay2007.html updated: 1.30 -> 1.31 --- Log message: Add Evan Cheng. --- Diffs of the changes: (+4 -3) DevMtgMay2007.html |7 --- 1 files changed, 4 insertions(+), 3 deletions(-) Index: llvm-www/DevMtgMay2007.html diff -u llvm-www/DevMtgMay2007.html:1.30 llvm-www/DevMtgMay2007.html:1.31 --- llvm-www/DevMtgMay2007.html:1.30Mon Apr 2 14:14:17 2007 +++ llvm-www/DevMtgMay2007.html Tue Apr 3 02:17:54 2007 @@ -228,6 +228,7 @@ Vikram AdveUIUC Owen AndersonIndependent Ryan BrownGoogle +Evan ChengApple, Inc. Jeff CohenIndependent Robert HundtGoogle Christopher LambAgeia Technologies, Inc. @@ -241,8 +242,8 @@ Bill WendlingApple, Inc. Marcel WeiherMetaObject - Total confirmed attendees: 19 - Possible additional attendees: 6 + Total confirmed attendees: 20 + Possible additional attendeew: 5 @@ -252,6 +253,6 @@ src="http://jigsaw.w3.org/css-validator/images/vcss"; alt="Valid CSS!"> http://validator.w3.org/check/referer";>http://www.w3.org/Icons/valid-html401"; alt="Valid HTML 4.01!"> -Last modified: $Date: 2007/04/02 19:14:17 $ +Last modified: $Date: 2007/04/03 07:17:54 $ ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
Re: [llvm-commits] eh_arm.cc
On Apr 2, 2007, at 11:34 PM, Bill Wendling wrote: > I'm getting this error during llvm-gcc compilation: > > make[3]: *** No rule to make target `eh_arm.cc', needed by > `eh_arm.lo'. Stop. > make[3]: *** Waiting for unfinished jobs This is related to Lauro Ramos Venancio's patch Dale committed. - Devang ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits