completely refactor codegen of scalar expressions out into its own CGExprScalar.cpp file.

This patch temporarily breaks compound assignment operators, but greatly simplifies many
things.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41355 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/CodeGen/CGObjC.cpp b/CodeGen/CGObjC.cpp
index e08fcca..9fc63e1 100644
--- a/CodeGen/CGObjC.cpp
+++ b/CodeGen/CGObjC.cpp
@@ -15,14 +15,11 @@
 #include "CodeGenModule.h"
 #include "clang/AST/Expr.h"
 #include "llvm/Constant.h"
-
 using namespace clang;
 using namespace CodeGen;
 
-RValue CodeGenFunction::EmitObjCStringLiteral(const ObjCStringLiteral* E)
-{
+llvm::Value *CodeGenFunction::EmitObjCStringLiteral(const ObjCStringLiteral *E){
   std::string S(E->getString()->getStrData(), E->getString()->getByteLength());
-  
-  return RValue::get(CGM.GetAddrOfConstantCFString(S));
+  return CGM.GetAddrOfConstantCFString(S);
 }