[llvm-commits] [llvm-gcc-4.2] r104753 - /llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp

Rafael Espindola rafael.espindola at gmail.com
Wed May 26 15:05:04 PDT 2010


Author: rafael
Date: Wed May 26 17:05:04 2010
New Revision: 104753

URL: http://llvm.org/viewvc/llvm-project?rev=104753&view=rev
Log:
Set the calling convention when calling fabs.

Modified:
    llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp

Modified: llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp?rev=104753&r1=104752&r2=104753&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp (original)
+++ llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp Wed May 26 17:05:04 2010
@@ -3550,20 +3550,38 @@
   // Turn FP abs into fabs/fabsf.
   const char *Name = 0;
 
+  tree ArgType;
   switch (Op->getType()->getTypeID()) {
   default: assert(0 && "Unknown FP type!");
-  case Type::FloatTyID:  Name = "fabsf"; break;
-  case Type::DoubleTyID: Name = "fabs"; break;
+  case Type::FloatTyID:
+    Name = "fabsf";
+    ArgType = float_type_node;
+    break;
+  case Type::DoubleTyID:
+    Name = "fabs";
+    ArgType = double_type_node;
+    break;
   case Type::X86_FP80TyID:
   case Type::PPC_FP128TyID:
-  case Type::FP128TyID: Name = "fabsl"; break;
+  case Type::FP128TyID:
+    Name = "fabsl";
+    ArgType = long_double_type_node;
+    break;
   }
 
   Value *V = TheModule->getOrInsertFunction(Name, Op->getType(), Op->getType(),
                                             NULL);
+  // Determine the calling convention.
+  CallingConv::ID CallingConvention = CallingConv::C;
+#ifdef TARGET_ADJUST_LLVM_CC
+  tree FunctionType = build_function_type_list(ArgType, ArgType ,NULL);
+  TARGET_ADJUST_LLVM_CC(CallingConvention, FunctionType);
+#endif
+
   CallInst *Call = Builder.CreateCall(V, Op);
   Call->setDoesNotThrow();
   Call->setDoesNotAccessMemory();
+  Call->setCallingConv(CallingConvention);
   return Call;
 }
 





More information about the llvm-commits mailing list