[llvm-commits] CVS: llvm/lib/Linker/LinkItems.cpp

2007-04-03 Thread Reid Spencer


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

2007-04-03 Thread Duncan Sands


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

2007-04-03 Thread Reid Spencer


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

2007-04-03 Thread Reid Spencer


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

2007-04-03 Thread Reid Spencer


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

2007-04-03 Thread Reid Spencer


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

2007-04-03 Thread Reid Spencer


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

2007-04-03 Thread Reid Spencer


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

2007-04-03 Thread Chris Lattner


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

2007-04-03 Thread Chris Lattner

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

2007-04-03 Thread Reid Spencer


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

2007-04-03 Thread Reid Spencer


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

2007-04-03 Thread Reid Spencer


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

2007-04-03 Thread Chris Lattner
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

2007-04-03 Thread Chris Lattner

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

2007-04-03 Thread Jeff Cohen
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

2007-04-03 Thread Jeff Cohen
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

2007-04-03 Thread Dale Johannesen

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

2007-04-03 Thread Jeff Cohen
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

2007-04-03 Thread Reid Spencer


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

2007-04-03 Thread Reid Spencer


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

2007-04-03 Thread Reid Spencer


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

2007-04-03 Thread Reid Spencer


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

2007-04-03 Thread Reid Spencer


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

2007-04-03 Thread Chris Lattner


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

2007-04-03 Thread Chris Lattner


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

2007-04-03 Thread Reid Spencer


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

2007-04-03 Thread Chris Lattner


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

2007-04-03 Thread Chris Lattner


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

2007-04-03 Thread Chris Lattner


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

2007-04-03 Thread Evan Cheng


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

2007-04-03 Thread Evan Cheng


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

2007-04-03 Thread Evan Cheng


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

2007-04-03 Thread Reid Spencer


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

2007-04-03 Thread Reid Spencer


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

2007-04-03 Thread Bill Wendling


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

2007-04-03 Thread Bill Wendling


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

2007-04-03 Thread Chris Lattner


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

2007-04-03 Thread Evan Cheng


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

2007-04-03 Thread Evan Cheng


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

2007-04-03 Thread Bill Wendling


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

2007-04-03 Thread Chris Lattner


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

2007-04-03 Thread Reid Spencer


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

2007-04-03 Thread John Criswell


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

2007-04-03 Thread Chris Lattner


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

2007-04-03 Thread Chris Lattner


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

2007-04-03 Thread Chris Lattner


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

2007-04-03 Thread Chris Lattner


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/

2007-04-03 Thread Chris Lattner


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/

2007-04-03 Thread Chris Lattner


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

2007-04-03 Thread Evan Cheng


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

2007-04-03 Thread Evan Cheng


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

2007-04-03 Thread Lauro Ramos Venancio

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:

2007-04-03 Thread clattner
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

2007-04-03 Thread Chris Lattner


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

2007-04-03 Thread Dale Johannesen

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

2007-04-03 Thread johannes
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

2007-04-03 Thread johannes
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

2007-04-03 Thread Reid Spencer


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

2007-04-03 Thread Reid Spencer


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

2007-04-03 Thread Lauro Ramos Venancio
> @@ -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

2007-04-03 Thread Nicolas Geoffray


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

2007-04-03 Thread Lauro Ramos Venancio
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

2007-04-03 Thread Nicolas Geoffray


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

2007-04-03 Thread Lauro Ramos Venancio
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

2007-04-03 Thread Nicolas Geoffray


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

2007-04-03 Thread Nicolas Geoffray


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

2007-04-03 Thread Anton Korobeynikov
> 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

2007-04-03 Thread Reid Spencer


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

2007-04-03 Thread Evan Cheng


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

2007-04-03 Thread Reid Spencer


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

2007-04-03 Thread Reid Spencer


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

2007-04-03 Thread Reid Spencer


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

2007-04-03 Thread Reid Spencer


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

2007-04-03 Thread Devang Patel

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