[llvm-branch-commits] [llvm-gcc-branch] r99926 - in /llvm-gcc-4.2/branches/Apple/Morbo: ./ gcc/config/i386/llvm-i386.cpp gcc/llvm-convert.cpp

Eric Christopher echristo at apple.com
Tue Mar 30 13:45:57 PDT 2010


Author: echristo
Date: Tue Mar 30 15:45:57 2010
New Revision: 99926

URL: http://llvm.org/viewvc/llvm-project?rev=99926&view=rev
Log:
Merge patches 99592 and 99593 from mainline.

Rest of fix for rdar://7661702

Modified:
    llvm-gcc-4.2/branches/Apple/Morbo/   (props changed)
    llvm-gcc-4.2/branches/Apple/Morbo/gcc/config/i386/llvm-i386.cpp
    llvm-gcc-4.2/branches/Apple/Morbo/gcc/llvm-convert.cpp

Propchange: llvm-gcc-4.2/branches/Apple/Morbo/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Mar 30 15:45:57 2010
@@ -1 +1 @@
-/llvm-gcc-4.2/trunk:98728,98841,98893,99305
+/llvm-gcc-4.2/trunk:98728,98841,98893,99305,99592-99593

Modified: llvm-gcc-4.2/branches/Apple/Morbo/gcc/config/i386/llvm-i386.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/branches/Apple/Morbo/gcc/config/i386/llvm-i386.cpp?rev=99926&r1=99925&r2=99926&view=diff
==============================================================================
--- llvm-gcc-4.2/branches/Apple/Morbo/gcc/config/i386/llvm-i386.cpp (original)
+++ llvm-gcc-4.2/branches/Apple/Morbo/gcc/config/i386/llvm-i386.cpp Tue Mar 30 15:45:57 2010
@@ -80,6 +80,7 @@
   case IX86_BUILTIN_MULPD:
   case IX86_BUILTIN_PMULLW:
   case IX86_BUILTIN_PMULLW128:
+  case IX86_BUILTIN_PMULLD128:
     Result = Builder.CreateMul(Ops[0], Ops[1]);
     return true;
   case IX86_BUILTIN_DIVPS:

Modified: llvm-gcc-4.2/branches/Apple/Morbo/gcc/llvm-convert.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/branches/Apple/Morbo/gcc/llvm-convert.cpp?rev=99926&r1=99925&r2=99926&view=diff
==============================================================================
--- llvm-gcc-4.2/branches/Apple/Morbo/gcc/llvm-convert.cpp (original)
+++ llvm-gcc-4.2/branches/Apple/Morbo/gcc/llvm-convert.cpp Tue Mar 30 15:45:57 2010
@@ -4918,8 +4918,7 @@
 //                     ... Builtin Function Expansion ...
 //===----------------------------------------------------------------------===//
 
-/// EmitFrontendExpandedBuiltinCall - For MD builtins that do not have a
-/// directly corresponding LLVM intrinsic, we allow the target to do some amount
+/// EmitFrontendExpandedBuiltinCall - We allow the target to do some amount
 /// of lowering.  This allows us to avoid having intrinsics for operations that
 /// directly correspond to LLVM constructs.
 ///
@@ -5075,14 +5074,17 @@
 #ifdef LLVM_TARGET_INTRINSIC_PREFIX
       TargetPrefix = LLVM_TARGET_INTRINSIC_PREFIX;
 #endif
+      // If the backend has some special code to lower, go ahead and try to
+      // do that first.
+      if (EmitFrontendExpandedBuiltinCall(exp, fndecl, DestLoc, Result))
+        return true;
+      
       // If this builtin directly corresponds to an LLVM intrinsic, get the
       // IntrinsicID now.
       const char *BuiltinName = IDENTIFIER_POINTER(DECL_NAME(fndecl));
       Intrinsic::ID IntrinsicID =
         Intrinsic::getIntrinsicForGCCBuiltin(TargetPrefix, BuiltinName);
       if (IntrinsicID == Intrinsic::not_intrinsic) {
-        if (EmitFrontendExpandedBuiltinCall(exp, fndecl, DestLoc, Result))
-          return true;
 
         error("%Hunsupported target builtin %<%s%> used", &EXPR_LOCATION(exp),
               BuiltinName);





More information about the llvm-branch-commits mailing list