Revert "Revert "New implementation of llvm-rs-cc (replacement of slang_driver).""

This reverts commit a6d60672695f1438a63acdbf85eae7f97ce2b50d.
diff --git a/Android.mk b/Android.mk
index 954c6a0..2a957de 100644
--- a/Android.mk
+++ b/Android.mk
@@ -159,7 +159,9 @@
 include $(CLEAR_VARS)
 include $(CLEAR_TBLGEN_VARS)
 
-LOCAL_MODULE := slang
+LOCAL_IS_HOST_MODULE := true
+LOCAL_MODULE := llvm-rs-cc
+LOCAL_MODULE_TAGS := optional
 
 LOCAL_MODULE_CLASS := EXECUTABLES
 
@@ -170,11 +172,13 @@
 	Attrs.inc    \
 	DeclNodes.inc    \
 	DiagnosticCommonKinds.inc   \
+	DiagnosticDriverKinds.inc	\
+	DiagnosticSemaKinds.inc	\
 	StmtNodes.inc	\
-	DiagnosticSemaKinds.inc
+	RSCCOptions.inc
 
 LOCAL_SRC_FILES :=	\
-	slang_driver.cpp	\
+	llvm-rs-cc.cpp	\
 	slang_rs.cpp	\
 	slang_rs_context.cpp	\
 	slang_rs_pragma_handler.cpp	\
@@ -190,6 +194,7 @@
 	libslang
 
 LOCAL_STATIC_LIBRARIES :=	\
+	libclangDriver	\
 	librsheader-types	\
 	librsheader-cl  \
 	librsheader-core	\
@@ -197,6 +202,13 @@
 
 LOCAL_REQUIRED_MODULES := llvm-rs-link
 
+# For build RSCCOptions.inc from RSCCOptions.td
+intermediates := $(call local-intermediates-dir)
+LOCAL_GENERATED_SOURCES += $(intermediates)/RSCCOptions.inc
+$(intermediates)/RSCCOptions.inc: $(LOCAL_PATH)/RSCCOptions.td $(CLANG_ROOT_PATH)/include/clang/Driver/OptParser.td $(TBLGEN)
+	@echo "Building RenderScript compiler (llvm-rs-cc) Option tables with tblgen"
+	$(call transform-host-td-to-out,opt-parser-defs)
+
 include $(CLANG_HOST_BUILD_MK)
 include $(CLANG_TBLGEN_RULES_MK)
 include $(BUILD_HOST_EXECUTABLE)