[cfe-commits] r105676 - /cfe/trunk/lib/CodeGen/CGBuiltin.cpp
Rafael Espindola
rafael.espindola at gmail.com
Tue Jun 8 20:48:40 PDT 2010
Author: rafael
Date: Tue Jun 8 22:48:40 2010
New Revision: 105676
URL: http://llvm.org/viewvc/llvm-project?rev=105676&view=rev
Log:
Simplify the code a bit and avoid a gcc waring about uninitialized variables.
Modified:
cfe/trunk/lib/CodeGen/CGBuiltin.cpp
Modified: cfe/trunk/lib/CodeGen/CGBuiltin.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGBuiltin.cpp?rev=105676&r1=105675&r2=105676&view=diff
==============================================================================
--- cfe/trunk/lib/CodeGen/CGBuiltin.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGBuiltin.cpp Tue Jun 8 22:48:40 2010
@@ -906,35 +906,7 @@
Value *CodeGenFunction::EmitARMBuiltinExpr(unsigned BuiltinID,
const CallExpr *E) {
- llvm::SmallVector<Value*, 4> Ops;
- bool usgn, quad, poly, half;
- const llvm::Type *Ty;
- unsigned Int;
-
- // Determine the type of this overloaded NEON intrinsic.
- if (BuiltinID > ARM::BI__builtin_thread_pointer) {
- for (unsigned i = 0, e = E->getNumArgs() - 1; i != e; i++)
- Ops.push_back(EmitScalarExpr(E->getArg(i)));
-
- llvm::APSInt Result;
- const Expr *Arg = E->getArg(E->getNumArgs()-1);
- if (!Arg->isIntegerConstantExpr(Result, getContext()))
- return 0;
-
- unsigned type = Result.getZExtValue();
- usgn = type & 0x08;
- quad = type & 0x10;
- poly = type == 5 || type == 6;
- half = type == 7;
-
- Ty = GetNeonType(VMContext, type & 0x7, quad);
- if (!Ty)
- return 0;
- }
-
- switch (BuiltinID) {
- default: return 0;
- case ARM::BI__clear_cache: {
+ if (BuiltinID == ARM::BI__clear_cache) {
const FunctionDecl *FD = E->getDirectCallee();
Value *a = EmitScalarExpr(E->getArg(0));
Value *b = EmitScalarExpr(E->getArg(1));
@@ -944,6 +916,29 @@
return Builder.CreateCall2(CGM.CreateRuntimeFunction(FTy, Name),
a, b);
}
+
+ llvm::SmallVector<Value*, 4> Ops;
+ // Determine the type of this overloaded NEON intrinsic.
+ assert(BuiltinID > ARM::BI__builtin_thread_pointer);
+ for (unsigned i = 0, e = E->getNumArgs() - 1; i != e; i++)
+ Ops.push_back(EmitScalarExpr(E->getArg(i)));
+
+ llvm::APSInt Result;
+ const Expr *Arg = E->getArg(E->getNumArgs()-1);
+ if (!Arg->isIntegerConstantExpr(Result, getContext()))
+ return 0;
+
+ unsigned type = Result.getZExtValue();
+ bool usgn = type & 0x08;
+ bool quad = type & 0x10;
+
+ const llvm::Type *Ty = GetNeonType(VMContext, type & 0x7, quad);
+ if (!Ty)
+ return 0;
+
+ unsigned Int;
+ switch (BuiltinID) {
+ default: return 0;
case ARM::BI__builtin_neon_vaba_v:
case ARM::BI__builtin_neon_vabaq_v:
Int = usgn ? Intrinsic::arm_neon_vabau : Intrinsic::arm_neon_vabas;
More information about the cfe-commits
mailing list