diff options
author | Chris Lattner <sabre@nondot.org> | 2007-08-26 07:16:41 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2007-08-26 07:16:41 +0000 |
commit | 10b00cfe6422906b223724048b9b2123968d3baa (patch) | |
tree | 8a78f9c3e828a4c4d377532430816f71ff1dc435 | |
parent | 4b0029d5f8742760981a3bd58004f75454090a61 (diff) |
Omit EmitConversion
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41438 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | CodeGen/CGExpr.cpp | 21 | ||||
-rw-r--r-- | CodeGen/CGExprScalar.cpp | 6 | ||||
-rw-r--r-- | CodeGen/CodeGenFunction.h | 4 |
3 files changed, 2 insertions, 29 deletions
diff --git a/CodeGen/CGExpr.cpp b/CodeGen/CGExpr.cpp index 776ec78b51..58b4059aeb 100644 --- a/CodeGen/CGExpr.cpp +++ b/CodeGen/CGExpr.cpp @@ -44,27 +44,6 @@ llvm::Value *CodeGenFunction::EvaluateExprAsBool(const Expr *E) { // Conversions //===--------------------------------------------------------------------===// -/// EmitConversion - Convert the value specied by Val, whose type is ValTy, to -/// the type specified by DstTy, following the rules of C99 6.3. -RValue CodeGenFunction::EmitConversion(RValue Val, QualType ValTy, - QualType DstTy) { - ValTy = ValTy.getCanonicalType(); - DstTy = DstTy.getCanonicalType(); - if (ValTy == DstTy) return Val; - - // Handle conversions to bool first, they are special: comparisons against 0. - if (const BuiltinType *DestBT = dyn_cast<BuiltinType>(DstTy)) - if (DestBT->getKind() == BuiltinType::Bool) - return RValue::get(ConvertScalarValueToBool(Val, ValTy)); - - if (Val.isScalar() && !hasAggregateLLVMType(DstTy)) - return RValue::get(EmitScalarConversion(Val.getVal(), ValTy, DstTy)); - - - assert(0 && "FIXME: We don't support complex conversions yet!"); -} - - /// ConvertScalarValueToBool - Convert the specified expression value to a /// boolean (i1) truth value. This is equivalent to "Val == 0". llvm::Value *CodeGenFunction::ConvertScalarValueToBool(RValue Val, QualType Ty){ diff --git a/CodeGen/CGExprScalar.cpp b/CodeGen/CGExprScalar.cpp index b1f26d61be..deaf0a89fe 100644 --- a/CodeGen/CGExprScalar.cpp +++ b/CodeGen/CGExprScalar.cpp @@ -378,10 +378,8 @@ Value *ScalarExprEmitter::EmitCastExpr(const Expr *E, QualType DestTy) { // If the destination is void, just evaluate the source. if (DestTy->isVoidType()) return 0; - - // FIXME: Refactor EmitConversion to not return an RValue. Sink it into this - // method. - return CGF.EmitConversion(Src, E->getType(), DestTy).getVal(); + + assert(0 && "Can't convert from an aggregate yet!"); } //===----------------------------------------------------------------------===// diff --git a/CodeGen/CodeGenFunction.h b/CodeGen/CodeGenFunction.h index 71573df679..29b193890b 100644 --- a/CodeGen/CodeGenFunction.h +++ b/CodeGen/CodeGenFunction.h @@ -253,10 +253,6 @@ public: // Conversions //===--------------------------------------------------------------------===// - /// EmitConversion - Convert the value specied by Val, whose type is ValTy, to - /// the type specified by DstTy, following the rules of C99 6.3. - RValue EmitConversion(RValue Val, QualType ValTy, QualType DstTy); - /// ConvertScalarValueToBool - Convert the specified expression value to a /// boolean (i1) truth value. This is equivalent to "Val == 0". llvm::Value *ConvertScalarValueToBool(RValue Val, QualType Ty); |