svn commit: r213534 - in head: contrib/llvm contrib/llvm/autoconf contrib/llvm/include/llvm/ADT contrib/llvm/lib/CodeGen contrib/llvm/lib/Target/ARM contrib/llvm/lib/Target/X86 contrib/llvm/tools/c...

Dimitry Andric dim at FreeBSD.org
Thu Oct 7 20:31:08 UTC 2010


Author: dim
Date: Thu Oct  7 20:31:07 2010
New Revision: 213534
URL: http://svn.freebsd.org/changeset/base/213534

Log:
  Upgrade Clang and LLVM to the 2.8 release.  See here for release notes:
  http://llvm.org/releases/2.8/docs/ReleaseNotes.html
  
  Approved by:	rpaulo (mentor)

Modified:
  head/contrib/llvm/Makefile.rules
  head/contrib/llvm/autoconf/configure.ac
  head/contrib/llvm/configure
  head/contrib/llvm/include/llvm/ADT/SmallVector.h
  head/contrib/llvm/lib/CodeGen/MachineCSE.cpp
  head/contrib/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
  head/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp
  head/contrib/llvm/tools/clang/lib/Basic/Version.cpp
  head/lib/clang/include/clang/Basic/Version.inc
Directory Properties:
  head/contrib/llvm/   (props changed)
  head/contrib/llvm/tools/clang/   (props changed)

Modified: head/contrib/llvm/Makefile.rules
==============================================================================
--- head/contrib/llvm/Makefile.rules	Thu Oct  7 18:23:28 2010	(r213533)
+++ head/contrib/llvm/Makefile.rules	Thu Oct  7 20:31:07 2010	(r213534)
@@ -941,6 +941,11 @@ ifdef EXPORTED_SYMBOL_FILE
 # First, set up the native export file, which may differ from the source
 # export file.
 
+# The option --version-script is not effective on GNU ld win32.
+ifneq (,$(filter $(HOST_OS),Cygwin MingW))
+  HAVE_LINK_VERSION_SCRIPT := 0
+endif
+
 ifeq ($(HOST_OS),Darwin)
 # Darwin convention prefixes symbols with underscores.
 NativeExportsFile := $(ObjDir)/$(notdir $(EXPORTED_SYMBOL_FILE)).sed

Modified: head/contrib/llvm/autoconf/configure.ac
==============================================================================
--- head/contrib/llvm/autoconf/configure.ac	Thu Oct  7 18:23:28 2010	(r213533)
+++ head/contrib/llvm/autoconf/configure.ac	Thu Oct  7 20:31:07 2010	(r213534)
@@ -31,7 +31,7 @@ dnl===
 dnl===-----------------------------------------------------------------------===
 dnl Initialize autoconf and define the package name, version number and
 dnl email address for reporting bugs.
-AC_INIT([[llvm]],[[2.8rc]],[llvmbugs at cs.uiuc.edu])
+AC_INIT([[llvm]],[[2.8]],[llvmbugs at cs.uiuc.edu])
 
 dnl Provide a copyright substitution and ensure the copyright notice is included
 dnl in the output of --version option of the generated configure script.

Modified: head/contrib/llvm/configure
==============================================================================
--- head/contrib/llvm/configure	Thu Oct  7 18:23:28 2010	(r213533)
+++ head/contrib/llvm/configure	Thu Oct  7 20:31:07 2010	(r213534)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.60 for llvm 2.8rc.
+# Generated by GNU Autoconf 2.60 for llvm 2.8.
 #
 # Report bugs to <llvmbugs at cs.uiuc.edu>.
 #
@@ -561,8 +561,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
 # Identity of this package.
 PACKAGE_NAME='llvm'
 PACKAGE_TARNAME='-llvm-'
-PACKAGE_VERSION='2.8rc'
-PACKAGE_STRING='llvm 2.8rc'
+PACKAGE_VERSION='2.8'
+PACKAGE_STRING='llvm 2.8'
 PACKAGE_BUGREPORT='llvmbugs at cs.uiuc.edu'
 
 ac_unique_file="lib/VMCore/Module.cpp"
@@ -1318,7 +1318,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures llvm 2.8rc to adapt to many kinds of systems.
+\`configure' configures llvm 2.8 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1384,7 +1384,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of llvm 2.8rc:";;
+     short | recursive ) echo "Configuration of llvm 2.8:";;
    esac
   cat <<\_ACEOF
 
@@ -1394,7 +1394,7 @@ Optional Features:
   --enable-optimized      Compile with optimizations enabled (default is NO)
   --enable-profiling      Compile with profiling enabled (default is NO)
   --enable-assertions     Compile with assertion checks enabled (default is
-                          YES)
+                          NO)
   --enable-expensive-checks
                           Compile with expensive debug checks enabled (default
                           is NO)
@@ -1533,7 +1533,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-llvm configure 2.8rc
+llvm configure 2.8
 generated by GNU Autoconf 2.60
 
 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1549,7 +1549,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by llvm $as_me 2.8rc, which was
+It was created by llvm $as_me 2.8, which was
 generated by GNU Autoconf 2.60.  Invocation command line was
 
   $ $0 $@
@@ -21045,7 +21045,7 @@ exec 6>&1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by llvm $as_me 2.8rc, which was
+This file was extended by llvm $as_me 2.8, which was
 generated by GNU Autoconf 2.60.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -21098,7 +21098,7 @@ Report bugs to <bug-autoconf at gnu.org>."
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF
 ac_cs_version="\\
-llvm config.status 2.8rc
+llvm config.status 2.8
 configured by $0, generated by GNU Autoconf 2.60,
   with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 

Modified: head/contrib/llvm/include/llvm/ADT/SmallVector.h
==============================================================================
--- head/contrib/llvm/include/llvm/ADT/SmallVector.h	Thu Oct  7 18:23:28 2010	(r213533)
+++ head/contrib/llvm/include/llvm/ADT/SmallVector.h	Thu Oct  7 20:31:07 2010	(r213534)
@@ -61,7 +61,7 @@ protected:
   // number of union instances for the space, which guarantee maximal alignment.
   struct U {
 #ifdef __GNUC__
-    char X __attribute__((aligned(8)));
+    char X __attribute__((aligned));
 #else
     union {
       double D;

Modified: head/contrib/llvm/lib/CodeGen/MachineCSE.cpp
==============================================================================
--- head/contrib/llvm/lib/CodeGen/MachineCSE.cpp	Thu Oct  7 18:23:28 2010	(r213533)
+++ head/contrib/llvm/lib/CodeGen/MachineCSE.cpp	Thu Oct  7 20:31:07 2010	(r213534)
@@ -54,6 +54,11 @@ namespace {
       AU.addPreserved<MachineDominatorTree>();
     }
 
+    virtual void releaseMemory() {
+      ScopeMap.clear();
+      Exps.clear();
+    }
+
   private:
     const unsigned LookAheadLimit;
     typedef ScopedHashTableScope<MachineInstr*, unsigned,
@@ -101,7 +106,7 @@ bool MachineCSE::PerformTrivialCoalescin
     unsigned Reg = MO.getReg();
     if (!Reg || TargetRegisterInfo::isPhysicalRegister(Reg))
       continue;
-    if (!MRI->hasOneUse(Reg))
+    if (!MRI->hasOneNonDBGUse(Reg))
       // Only coalesce single use copies. This ensure the copy will be
       // deleted.
       continue;
@@ -469,6 +474,8 @@ bool MachineCSE::PerformCSE(MachineDomTr
   DenseMap<MachineDomTreeNode*, MachineDomTreeNode*> ParentMap;
   DenseMap<MachineDomTreeNode*, unsigned> OpenChildren;
 
+  CurrVN = 0;
+
   // Perform a DFS walk to determine the order of visit.
   WorkList.push_back(Node);
   do {

Modified: head/contrib/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
==============================================================================
--- head/contrib/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp	Thu Oct  7 18:23:28 2010	(r213533)
+++ head/contrib/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp	Thu Oct  7 20:31:07 2010	(r213534)
@@ -1389,7 +1389,8 @@ ConvertToSetZeroFlag(MachineInstr *MI, M
 
   // Check that CPSR isn't set between the comparison instruction and the one we
   // want to change.
-  MachineBasicBlock::const_iterator I = CmpInstr, E = MI;
+  MachineBasicBlock::const_iterator I = CmpInstr, E = MI,
+    B = MI->getParent()->begin();
   --I;
   for (; I != E; --I) {
     const MachineInstr &Instr = *I;
@@ -1403,6 +1404,10 @@ ConvertToSetZeroFlag(MachineInstr *MI, M
       if (MO.getReg() == ARM::CPSR)
         return false;
     }
+
+    if (I == B)
+      // The 'and' is below the comparison instruction.
+      return false;
   }
 
   // Set the "zero" bit in CPSR.

Modified: head/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp
==============================================================================
--- head/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp	Thu Oct  7 18:23:28 2010	(r213533)
+++ head/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp	Thu Oct  7 20:31:07 2010	(r213534)
@@ -5414,11 +5414,11 @@ X86TargetLowering::LowerVECTOR_SHUFFLE(S
     return getMOVL(DAG, dl, VT, V2, V1);
   }
 
-  if (X86::isUNPCKLMask(SVOp))
+  if (X86::isUNPCKL_v_undef_Mask(SVOp) || X86::isUNPCKLMask(SVOp))
     return (isMMX) ?
       Op : getTargetShuffleNode(getUNPCKLOpcode(VT), dl, VT, V1, V2, DAG);
 
-  if (X86::isUNPCKHMask(SVOp))
+  if (X86::isUNPCKH_v_undef_Mask(SVOp) || X86::isUNPCKHMask(SVOp))
     return (isMMX) ?
       Op : getTargetShuffleNode(getUNPCKHOpcode(VT), dl, VT, V1, V2, DAG);
 
@@ -5443,11 +5443,11 @@ X86TargetLowering::LowerVECTOR_SHUFFLE(S
     SDValue NewOp = CommuteVectorShuffle(SVOp, DAG);
     ShuffleVectorSDNode *NewSVOp = cast<ShuffleVectorSDNode>(NewOp);
 
-    if (X86::isUNPCKLMask(NewSVOp))
+    if (X86::isUNPCKL_v_undef_Mask(NewSVOp) || X86::isUNPCKLMask(NewSVOp))
       return (isMMX) ?
         NewOp : getTargetShuffleNode(getUNPCKLOpcode(VT), dl, VT, V2, V1, DAG);
 
-    if (X86::isUNPCKHMask(NewSVOp))
+    if (X86::isUNPCKH_v_undef_Mask(NewSVOp) || X86::isUNPCKHMask(NewSVOp))
       return (isMMX) ?
         NewOp : getTargetShuffleNode(getUNPCKHOpcode(VT), dl, VT, V2, V1, DAG);
   }
@@ -5494,13 +5494,6 @@ X86TargetLowering::LowerVECTOR_SHUFFLE(S
                                   TargetMask, DAG);
   }
 
-  if (X86::isUNPCKL_v_undef_Mask(SVOp))
-    if (VT != MVT::v2i64 && VT != MVT::v2f64)
-      return getTargetShuffleNode(getUNPCKLOpcode(VT), dl, VT, V1, V1, DAG);
-  if (X86::isUNPCKH_v_undef_Mask(SVOp))
-    if (VT != MVT::v2i64 && VT != MVT::v2f64)
-      return getTargetShuffleNode(getUNPCKHOpcode(VT), dl, VT, V1, V1, DAG);
-
   // Handle v8i16 specifically since SSE can do byte extraction and insertion.
   if (VT == MVT::v8i16) {
     SDValue NewOp = LowerVECTOR_SHUFFLEv8i16(Op, DAG);

Modified: head/contrib/llvm/tools/clang/lib/Basic/Version.cpp
==============================================================================
--- head/contrib/llvm/tools/clang/lib/Basic/Version.cpp	Thu Oct  7 18:23:28 2010	(r213533)
+++ head/contrib/llvm/tools/clang/lib/Basic/Version.cpp	Thu Oct  7 20:31:07 2010	(r213534)
@@ -21,7 +21,7 @@ using namespace std;
 namespace clang {
   
 llvm::StringRef getClangRepositoryPath() {
-  static const char URL[] = "$URL: http://llvm.org/svn/llvm-project/cfe/branches/release_28/lib/Basic/Version.cpp $";
+  static const char URL[] = "$URL: http://llvm.org/svn/llvm-project/cfe/tags/RELEASE_28/lib/Basic/Version.cpp $";
   const char *URLEnd = URL + strlen(URL);
 
   const char *End = strstr(URL, "/lib/Basic");

Modified: head/lib/clang/include/clang/Basic/Version.inc
==============================================================================
--- head/lib/clang/include/clang/Basic/Version.inc	Thu Oct  7 18:23:28 2010	(r213533)
+++ head/lib/clang/include/clang/Basic/Version.inc	Thu Oct  7 20:31:07 2010	(r213534)
@@ -5,6 +5,6 @@
 #define	CLANG_VERSION_MINOR	8
 
 #define	CLANG_VENDOR		"FreeBSD "
-#define	CLANG_VENDOR_SUFFIX	" 20100917"
+#define	CLANG_VENDOR_SUFFIX	" 20101007"
 
-#define	SVN_REVISION		"114020"
+#define	SVN_REVISION		"115870"


More information about the svn-src-all mailing list