aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2007-08-26 07:16:41 +0000
committerChris Lattner <sabre@nondot.org>2007-08-26 07:16:41 +0000
commit10b00cfe6422906b223724048b9b2123968d3baa (patch)
tree8a78f9c3e828a4c4d377532430816f71ff1dc435
parent4b0029d5f8742760981a3bd58004f75454090a61 (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.cpp21
-rw-r--r--CodeGen/CGExprScalar.cpp6
-rw-r--r--CodeGen/CodeGenFunction.h4
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);