Merge 81342 from mainline.
Propagate code model setting.

llvm-svn: 81413
diff --git a/llvm-gcc-4.2/gcc/config/i386/i386.h b/llvm-gcc-4.2/gcc/config/i386/i386.h
index ffedd0f..b86dfd9 100644
--- a/llvm-gcc-4.2/gcc/config/i386/i386.h
+++ b/llvm-gcc-4.2/gcc/config/i386/i386.h
@@ -3928,6 +3928,27 @@
    distinguish them. */
 #define LLVM_DO_NOT_USE_REG_NAMES
 
+/* Propagate code model setting to backend */
+#define LLVM_SET_MACHINE_OPTIONS(argvec)	   \
+  switch (ix86_cmodel) {			   \
+  case CM_SMALL:				   \
+  case CM_SMALL_PIC:				   \
+    argvec.push_back("--code-model=small");	   \
+    break;					   \
+  case CM_KERNEL:				   \
+    argvec.push_back("--code-model=kernel");	   \
+    break;					   \
+  case CM_MEDIUM:				   \
+  case CM_MEDIUM_PIC:				   \
+    argvec.push_back("--code-model=medium");	   \
+    break;					   \
+  case CM_32:					   \
+    argvec.push_back("--code-model=default");	   \
+    break;					   \
+  default:					   \
+    sorry ("code model %<%s%> not supported yet", ix86_cmodel_string);	\
+  }
+
 #endif /* ENABLE_LLVM */
 /* LLVM LOCAL end */