[llvm-commits] [llvm-gcc-4.2] r44184 - /llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp
Anton Korobeynikov
asl at math.spbu.ru
Thu Nov 15 17:37:14 PST 2007
Author: asl
Date: Thu Nov 15 19:37:13 2007
New Revision: 44184
URL: http://llvm.org/viewvc/llvm-project?rev=44184&view=rev
Log:
Lower __builtin_flt_rounds into LLVM intrinsic
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=44184&r1=44183&r2=44184&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp (original)
+++ llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp Thu Nov 15 19:37:13 2007
@@ -3911,7 +3911,15 @@
}
switch (DECL_FUNCTION_CODE(fndecl)) {
- default: return false;
+ default:
+#ifndef NDEBUG
+ std::cerr << "Unhandled builtin!\n"
+ << "DECL_FUNCTION_CODE: " << DECL_FUNCTION_CODE(fndecl) << "\n";
+ debug_tree(fndecl);
+ abort();
+#else
+ return false;
+#endif
// Varargs builtins.
case BUILT_IN_VA_START:
case BUILT_IN_STDARG_START: return EmitBuiltinVAStart(exp);
@@ -4028,7 +4036,13 @@
Result, "tmp");
return true;
}
-
+ case BUILT_IN_FLT_ROUNDS: {
+ Result = Builder.CreateCall(Intrinsic::getDeclaration(TheModule,
+ Intrinsic::flt_rounds),
+ "tmp");
+ Result = BitCastToType(Result, ConvertType(TREE_TYPE(exp)));
+ return true;
+ }
#if 1 // FIXME: Should handle these GCC extensions eventually.
case BUILT_IN_APPLY_ARGS:
case BUILT_IN_APPLY:
More information about the llvm-commits
mailing list