[llvm-commits] [llvm-gcc-4.2] r54175 - in /llvm-gcc-4.2/trunk/gcc: ./ config/ config/arm/ config/i386/ config/rs6000/ cp/ ginclude/

Bill Wendling isanbard at gmail.com
Tue Jul 29 15:09:11 PDT 2008


Author: void
Date: Tue Jul 29 17:09:10 2008
New Revision: 54175

URL: http://llvm.org/viewvc/llvm-project?rev=54175&view=rev
Log:
Update the header, opt, and def files to Apple GCC's 4.2 TOT.

Modified:
    llvm-gcc-4.2/trunk/gcc/c-common.h
    llvm-gcc-4.2/trunk/gcc/c-objc-common.h
    llvm-gcc-4.2/trunk/gcc/c-pretty-print.h
    llvm-gcc-4.2/trunk/gcc/c-tree.h
    llvm-gcc-4.2/trunk/gcc/c.opt
    llvm-gcc-4.2/trunk/gcc/common.opt
    llvm-gcc-4.2/trunk/gcc/config/arm/arm-protos.h
    llvm-gcc-4.2/trunk/gcc/config/arm/arm.h
    llvm-gcc-4.2/trunk/gcc/config/arm/arm.opt
    llvm-gcc-4.2/trunk/gcc/config/arm/bpabi.h
    llvm-gcc-4.2/trunk/gcc/config/arm/darwin.h
    llvm-gcc-4.2/trunk/gcc/config/arm/elf.h
    llvm-gcc-4.2/trunk/gcc/config/darwin-protos.h
    llvm-gcc-4.2/trunk/gcc/config/darwin.h
    llvm-gcc-4.2/trunk/gcc/config/darwin.opt
    llvm-gcc-4.2/trunk/gcc/config/freebsd.h
    llvm-gcc-4.2/trunk/gcc/config/i386/darwin.h
    llvm-gcc-4.2/trunk/gcc/config/i386/darwin64.h
    llvm-gcc-4.2/trunk/gcc/config/i386/i386-protos.h
    llvm-gcc-4.2/trunk/gcc/config/i386/i386.h
    llvm-gcc-4.2/trunk/gcc/config/rs6000/darwin.h
    llvm-gcc-4.2/trunk/gcc/config/rs6000/rs6000.h
    llvm-gcc-4.2/trunk/gcc/convert.h
    llvm-gcc-4.2/trunk/gcc/cp/cp-objcp-common.h
    llvm-gcc-4.2/trunk/gcc/cp/cp-tree.h
    llvm-gcc-4.2/trunk/gcc/cp/decl.h
    llvm-gcc-4.2/trunk/gcc/cp/name-lookup.h
    llvm-gcc-4.2/trunk/gcc/defaults.h
    llvm-gcc-4.2/trunk/gcc/dwarf2.h
    llvm-gcc-4.2/trunk/gcc/except.h
    llvm-gcc-4.2/trunk/gcc/flags.h
    llvm-gcc-4.2/trunk/gcc/function.h
    llvm-gcc-4.2/trunk/gcc/gcc.h
    llvm-gcc-4.2/trunk/gcc/ginclude/tgmath.h
    llvm-gcc-4.2/trunk/gcc/gsyslimits.h
    llvm-gcc-4.2/trunk/gcc/gthr-win32.h
    llvm-gcc-4.2/trunk/gcc/hard-reg-set.h
    llvm-gcc-4.2/trunk/gcc/langhooks-def.h
    llvm-gcc-4.2/trunk/gcc/langhooks.h
    llvm-gcc-4.2/trunk/gcc/libfuncs.h
    llvm-gcc-4.2/trunk/gcc/limitx.h
    llvm-gcc-4.2/trunk/gcc/limity.h
    llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp
    llvm-gcc-4.2/trunk/gcc/longlong.h
    llvm-gcc-4.2/trunk/gcc/rtl.h
    llvm-gcc-4.2/trunk/gcc/sched-int.h
    llvm-gcc-4.2/trunk/gcc/target-def.h
    llvm-gcc-4.2/trunk/gcc/tree.def

Modified: llvm-gcc-4.2/trunk/gcc/c-common.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/c-common.h?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/c-common.h (original)
+++ llvm-gcc-4.2/trunk/gcc/c-common.h Tue Jul 29 17:09:10 2008
@@ -781,8 +781,6 @@
 /* APPLE LOCAL begin IMA built-in decl merging fix (radar 3645899) */
 extern bool builtin_function_disabled_p (const char *);
 /* APPLE LOCAL end */
-/* APPLE LOCAL define this sensibly in all languages */
-extern bool c_flag_no_builtin (void);
 
 /* This is the basic parsing function.  */
 extern void c_parse_file (void);
@@ -1067,6 +1065,8 @@
 tree objc_build_property_reference_expr (tree, tree);
 bool objc_property_reference_expr (tree);
 /* APPLE LOCAL end radar 5285911 */
+/* APPLE LOCAL radar 5802025 */
+tree objc_build_property_getter_func_call (tree);
 tree objc_build_setter_call (tree, tree);
 /* APPLE LOCAL end C* property (Radar 4436866) */
 /* APPLE LOCAL radar 4712269 */
@@ -1094,8 +1094,6 @@
 bool objc_check_format_nsstring (tree, unsigned HOST_WIDE_INT, bool *);
 /* APPLE LOCAL end 4985544 */
 
-/* APPLE LOCAL radar 2996215 */
-tree objc_create_init_utf16_var (const unsigned char *, size_t, size_t *);
 /* APPLE LOCAL radar 5202926 */
 bool objc_anonymous_local_objc_name (const char *);
 /* APPLE LOCAL begin radar 5195402 */
@@ -1121,6 +1119,90 @@
 extern tree vector_constructor_from_expr (tree, tree);
 /* APPLE LOCAL end AltiVec */
 
+/* APPLE LOCAL begin radar 5732232 - blocks */
+enum {
+     BLOCK_NEEDS_FREE =        (1 << 24),
+     BLOCK_HAS_COPY_DISPOSE =  (1 << 25),
+     BLOCK_NO_COPY =           (1 << 26), /* interim byref: no copies allowed */
+     BLOCK_IS_GC =             (1 << 27)
+};
+
+struct block_sema_info {
+  tree helper_func_decl;
+  tree copy_helper_func_decl;
+  tree destroy_helper_func_decl;
+  tree block_arg_ptr_type;
+  /* This is for C.  */
+  struct c_arg_info * arg_info;
+  tree block_ref_decl_list;
+  tree block_byref_decl_list;
+  /* APPLE LOCAL radar 5803600 */
+  tree block_byref_global_decl_list;
+  tree block_original_ref_decl_list;
+  tree block_original_byref_decl_list;
+  tree block_body;
+  bool hasPrototype;
+  bool isVariadic;
+  bool BlockHasCopyDispose;
+  bool BlockHasByrefVar;
+
+  /* the_scope - This is the scope for the block itself, which
+     contains arguments etc.  Use only for C.  */
+  struct c_scope *the_scope;
+  /* Same as the above, only for C++.  */
+  struct cp_binding_level *cp_the_scope;
+
+  /* return_type - This will get set to block result type, by looking
+     at return types, if any, in the block body. */
+  tree return_type;
+
+  /* prev_block_info - If this is nested inside another block, this points
+     to the outer block. */
+  struct block_sema_info *prev_block_info;
+};
+
+extern struct block_sema_info *cur_block;
+extern tree build_helper_func_decl (tree, tree);
+extern bool building_block_byref_decl;
+extern tree invoke_impl_ptr_type;
+extern tree build_block_byref_decl (tree, tree, tree);
+extern tree build_block_ref_decl (tree, tree);
+extern tree begin_block (void);
+extern struct block_sema_info *finish_block (tree);
+extern bool in_imm_block (void);
+extern bool lookup_name_in_block (tree, tree*);
+extern void build_block_internal_types (void);
+extern void push_to_top_level (void);
+extern void pop_from_top_level (void);
+extern void start_block_helper_function (tree func_decl, bool add_result_decl);
+extern void block_build_prologue (struct block_sema_info *block_impl);
+extern tree c_finish_return (tree);
+extern tree copy_in_object (tree);
+extern bool block_requires_copying (tree);
+extern tree retain_block_component (tree);
+extern tree release_block_component (tree);
+/* APPLE LOCAL begin radar 5803600 */
+extern void add_block_global_byref_list (tree);
+extern bool in_block_global_byref_list (tree);
+/* APPLE LOCAL end radar 5803600 */
+/* APPLE LOCAL end radar 5732232 - blocks */
+/* APPLE LOCAL begin radar 5932809 - copyable byref blocks */
+extern tree build_byref_local_var_access (tree, tree);
+extern tree do_digest_init (tree, tree);
+extern tree cast_to_pointer_to_id (tree);
+/* APPLE LOCAL end radar 5932809 - copyable byref blocks */
+
+/* APPLE LOCAL begin radar 6083129 - byref escapes */
+extern void gen_block_byref_release_exp (tree);
+extern tree build_block_byref_release_exp (tree);
+extern tree build_block_byref_release_decl (void);
+extern void release_all_local_byrefs_at_return (void);
+void diagnose_byref_var_in_current_scope (void);
+extern void release_local_byrefs_at_break (void);
+extern void in_bc_stmt_block (void);
+extern void outof_bc_stmt_block (void);
+/* APPLE LOCAL end radar 6083129 - byref escapes */
+
 /* In c-omp.c  */
 extern tree c_finish_omp_master (tree);
 extern tree c_finish_omp_critical (tree, tree);

Modified: llvm-gcc-4.2/trunk/gcc/c-objc-common.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/c-objc-common.h?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/c-objc-common.h (original)
+++ llvm-gcc-4.2/trunk/gcc/c-objc-common.h Tue Jul 29 17:09:10 2008
@@ -115,10 +115,6 @@
 #define LANG_HOOKS_TYPE_PROMOTES_TO c_type_promotes_to
 #undef LANG_HOOKS_REGISTER_BUILTIN_TYPE
 #define LANG_HOOKS_REGISTER_BUILTIN_TYPE c_register_builtin_type
-/* APPLE LOCAL begin define this sensibly in all languages */
-#undef LANG_HOOKS_FLAG_NO_BUILTIN
-#define LANG_HOOKS_FLAG_NO_BUILTIN c_flag_no_builtin
-/* APPLE LOCAL end define this sensibly in all languages */
 #undef LANG_HOOKS_TO_TARGET_CHARSET
 #define LANG_HOOKS_TO_TARGET_CHARSET c_common_to_target_charset
 #undef LANG_HOOKS_EXPR_TO_DECL

Modified: llvm-gcc-4.2/trunk/gcc/c-pretty-print.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/c-pretty-print.h?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/c-pretty-print.h (original)
+++ llvm-gcc-4.2/trunk/gcc/c-pretty-print.h Tue Jul 29 17:09:10 2008
@@ -167,6 +167,8 @@
 void pp_c_dot (c_pretty_printer *);
 void pp_c_ampersand (c_pretty_printer *);
 void pp_c_star (c_pretty_printer *);
+/* APPLE LOCAL blocks */
+void pp_c_caret (c_pretty_printer *);
 void pp_c_arrow (c_pretty_printer *);
 void pp_c_semicolon (c_pretty_printer *);
 void pp_c_complement (c_pretty_printer *);

Modified: llvm-gcc-4.2/trunk/gcc/c-tree.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/c-tree.h?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/c-tree.h (original)
+++ llvm-gcc-4.2/trunk/gcc/c-tree.h Tue Jul 29 17:09:10 2008
@@ -304,6 +304,8 @@
   cdk_array,
   /* A pointer.  */
   cdk_pointer,
+  /* APPLE LOCAL blocks (C++ ch) */
+  cdk_block_pointer,
   /* Parenthesized declarator with nested attributes.  */
   cdk_attrs
 };
@@ -509,6 +511,10 @@
 extern struct c_declarator *build_id_declarator (tree);
 extern struct c_declarator *make_pointer_declarator (struct c_declspecs *,
 						     struct c_declarator *);
+/* APPLE LOCAL begin radar 5814025 - blocks (C++ cg) */
+extern struct c_declarator *make_block_pointer_declarator (struct c_declspecs *,
+							     struct c_declarator *);
+/* APPLE LOCAL end radar 5814025 - blocks (C++ cg) */
 extern struct c_declspecs *build_null_declspecs (void);
 extern struct c_declspecs *declspecs_add_qual (struct c_declspecs *, tree);
 extern struct c_declspecs *declspecs_add_type (struct c_declspecs *,

Modified: llvm-gcc-4.2/trunk/gcc/c.opt
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/c.opt?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/c.opt (original)
+++ llvm-gcc-4.2/trunk/gcc/c.opt Tue Jul 29 17:09:10 2008
@@ -751,6 +751,12 @@
 ObjC ObjC++ Var(flag_objc_exceptions)
 Enable Objective-C exception and synchronization syntax
 
+; APPLE LOCAL begin ARM hybrid objc-2.0
+fobjc-legacy-dispatch
+ObjC ObjC++ Var(flag_objc_legacy_dispatch) Init(-1)
+Use Objective-C v1 message dispatching
+; APPLE LOCAL end ARM hybrid objc-2.0
+
 ; APPLE LOCAL begin radar 2848255
 fobjc-zerocost-exceptions
 ObjC ObjC++ Var(flag_objc_zerocost_exceptions) Init(0)
@@ -773,6 +779,12 @@
 ObjC ObjC++ Var(flag_objc_gc)
 Enable garbage collection (GC) in Objective-C/Objective-C++ programs
 
+; APPLE LOCAL begin radar 5811887 - blocks
+fblocks
+C ObjC C++ ObjC++ Var(flag_blocks) Init(-1)
+Program supports c/objc extension blocks
+; APPLE LOCAL end radar 5811887 - blocks
+
 ; Nonzero means that we generate NeXT setjmp based exceptions.
 fobjc-sjlj-exceptions
 ObjC ObjC++ Var(flag_objc_sjlj_exceptions) Init(-1)
@@ -965,6 +977,12 @@
 C ObjC C++ ObjC++ Joined Separate
 -iwithprefixbefore <dir>	Add <dir> to the end of the main include path
 
+; APPLE LOCAL begin ARM iwithsysroot 4917039
+iwithsysroot
+C ObjC C++ ObjC++ Joined Separate
+-iwithsysroot <dir> Add <sysroot>/<dir> to the start of the system include path
+; APPLE LOCAL end ARM iwithsysroot 4917039
+
 lang-asm
 C Undocumented
 

Modified: llvm-gcc-4.2/trunk/gcc/common.opt
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/common.opt?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/common.opt (original)
+++ llvm-gcc-4.2/trunk/gcc/common.opt Tue Jul 29 17:09:10 2008
@@ -560,6 +560,19 @@
 Common Report Var(flag_function_sections)
 Place each function into its own section
 
+;; APPLE LOCAL begin 5695218
+fglobal-alloc-prefer-bytes
+Common Report Var(flag_global_alloc_prefer_bytes) Init(1) PerFunc
+Prefer to allocate byte and short candidates before word candidates (x86_32 only)
+
+;; APPLE LOCAL end 5695218
+
+;; APPLE LOCAL begin ARM conditionally disable local RA
+flocal-alloc
+Common Report Var(flag_local_alloc) Init(1) PerFunc
+Run the local register allocator
+;; APPLE LOCAL end ARM conditionally disable local RA
+
 ; APPLE LOCAL begin optimization pragmas 3124235/3420242
 fgcse
 Common Report Var(flag_gcse) PerFunc

Modified: llvm-gcc-4.2/trunk/gcc/config/arm/arm-protos.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/arm/arm-protos.h?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/arm/arm-protos.h (original)
+++ llvm-gcc-4.2/trunk/gcc/config/arm/arm-protos.h Tue Jul 29 17:09:10 2008
@@ -26,6 +26,15 @@
 
 /* APPLE LOCAL ARM darwin optimization defaults */
 extern void optimization_options (int, int);
+/* APPLE LOCAL begin ARM compact switch tables */
+extern void arm_adjust_insn_length (rtx, int *);
+extern void register_switch8_libfunc (void);
+extern void register_switchu8_libfunc (void);
+extern void register_switch16_libfunc (void);
+extern void register_switch32_libfunc (void);
+extern int count_thumb_unexpanded_prologue (void);
+extern int arm_label_align (rtx);
+/* APPLE LOCAL end ARM compact switch tables */
 /* APPLE LOCAL ARM prefer SP to FP */
 extern HOST_WIDE_INT arm_local_debug_offset (rtx);
 extern void arm_override_options (void);
@@ -54,6 +63,10 @@
 extern bool arm_vector_mode_supported_p (enum machine_mode);
 extern int arm_hard_regno_mode_ok (unsigned int, enum machine_mode);
 extern int const_ok_for_arm (HOST_WIDE_INT);
+/* APPLE LOCAL begin 5831562 long long constants */
+extern bool const64_ok_for_arm_immediate (rtx);
+extern bool const64_ok_for_arm_add (rtx);
+/* APPLE LOCAL end 5831562 long long constants */
 extern int arm_split_constant (RTX_CODE, enum machine_mode, rtx,
 			       HOST_WIDE_INT, rtx, rtx, int);
 extern RTX_CODE arm_canonicalize_comparison (RTX_CODE, enum machine_mode,
@@ -177,6 +190,12 @@
 extern void thumb_set_return_address (rtx, rtx);
 #endif
 
+/* APPLE LOCAL begin ARM enhance conditional insn generation */
+#ifdef BB_HEAD
+extern void arm_ifcvt_modify_multiple_tests (ce_if_block_t *, basic_block, rtx *, rtx*);
+#endif
+/* APPLE LOCAL end ARM enhance conditional insn generation */
+
 /* Defined in pe.c.  */
 extern int arm_dllexport_name_p (const char *);
 extern int arm_dllimport_name_p (const char *);
@@ -193,5 +212,7 @@
 extern void arm_pr_long_calls (struct cpp_reader *);
 extern void arm_pr_no_long_calls (struct cpp_reader *);
 extern void arm_pr_long_calls_off (struct cpp_reader *);
+/* APPLE LOCAL 5946347 ms_struct support */
+extern int arm_field_ms_struct_align (tree);
 
 #endif /* ! GCC_ARM_PROTOS_H */

Modified: llvm-gcc-4.2/trunk/gcc/config/arm/arm.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/arm/arm.h?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/arm/arm.h (original)
+++ llvm-gcc-4.2/trunk/gcc/config/arm/arm.h Tue Jul 29 17:09:10 2008
@@ -31,9 +31,6 @@
 #ifndef TARGET_MACHO
 #define TARGET_MACHO 0
 #endif
-#ifndef MACHO_DYNAMIC_NO_PIC_P
-#define MACHO_DYNAMIC_NO_PIC_P 0
-#endif
 /* APPLE LOCAL end ARM darwin target */
 
 /* APPLE LOCAL ARM interworking */
@@ -469,7 +466,10 @@
 #define PREFERRED_STACK_BOUNDARY \
     (arm_abi == ARM_ABI_ATPCS ? 64 : STACK_BOUNDARY)
 
-#define FUNCTION_BOUNDARY  32
+/* APPLE LOCAL begin ARM 6008578 */
+#define FUNCTION_BOUNDARY arm_function_boundary ()
+extern int arm_function_boundary (void);
+/* APPLE LOCAL end ARM 6008578 */
 
 /* The lowest bit is used to indicate Thumb-mode functions, so the
    vbit must go into the delta field of pointers to member
@@ -480,6 +480,11 @@
 
 #define BIGGEST_ALIGNMENT (ARM_DOUBLEWORD_ALIGN ? DOUBLEWORD_ALIGNMENT : 32)
 
+/* APPLE LOCAL begin 5946347 ms_struct support */
+#define TARGET_FIELD_MS_STRUCT_ALIGN(FIELD) arm_field_ms_struct_align (FIELD)
+#define BIGGEST_MS_STRUCT_ALIGNMENT 128
+/* APPLE LOCAL end 5946347 ms_struct support */
+
 /* XXX Blah -- this macro is used directly by libobjc.  Since it
    supports no vector modes, cut out the complexity and fall back
    on BIGGEST_FIELD_ALIGNMENT.  */
@@ -967,6 +972,26 @@
     95				    \
 }
 
+/* APPLE LOCAL begin 5831562 add DIMODE_REG_ALLOC_ORDER */
+#define DIMODE_REG_ALLOC_ORDER  	    \
+{                                   \
+     2,  3,  1,  0, 12, 14,  4,  5, \
+     6,  7,  8, 10,  9, 11, 13, 15, \
+    16, 17, 18, 19, 20, 21, 22, 23, \
+    27, 28, 29, 30, 31, 32, 33, 34, \
+    35, 36, 37, 38, 39, 40, 41, 42, \
+    43, 44, 45, 46, 47, 48, 49, 50, \
+    51, 52, 53, 54, 55, 56, 57, 58, \
+    59, 60, 61, 62,		    \
+    24, 25, 26,			    \
+    78, 77, 76, 75, 74, 73, 72, 71, \
+    70, 69, 68, 67, 66, 65, 64, 63, \
+    79, 80, 81, 82, 83, 84, 85, 86, \
+    87, 88, 89, 90, 91, 92, 93, 94, \
+    95				    \
+}
+/* APPLE LOCAL end 5831562 add DIMODE_REG_ALLOC_ORDER */
+
 /* Interrupt functions can only use registers that have already been
    saved by the prologue, even if they would normally be
    call-clobbered.  */
@@ -1833,15 +1858,9 @@
 #define SHORT_CALL_FLAG_CHAR	'^'
 #define LONG_CALL_FLAG_CHAR	'#'
 
-#define ENCODED_SHORT_CALL_ATTR_P(SYMBOL_NAME) \
-  (*(SYMBOL_NAME) == SHORT_CALL_FLAG_CHAR)
-
 #define SYMBOL_SHORT_CALL_ATTR_P(SYMBOL) \
   (SYMBOL_REF_FLAGS (SYMBOL) & SYMBOL_SHORT_CALL)
 
-#define ENCODED_LONG_CALL_ATTR_P(SYMBOL_NAME)  \
-  (*(SYMBOL_NAME) == LONG_CALL_FLAG_CHAR)
-
 #define SYMBOL_LONG_CALL_ATTR_P(SYMBOL) \
   (SYMBOL_REF_FLAGS (SYMBOL) & SYMBOL_LONG_CALL)
 
@@ -2070,6 +2089,111 @@
    for the index in the tablejump instruction.  */
 #define CASE_VECTOR_MODE Pmode
 
+/* APPLE LOCAL begin ARM compact switch tables */
+#define CASE_VECTOR_PC_RELATIVE (TARGET_THUMB)
+
+#define CASE_VECTOR_SHORTEN_MODE(MIN_OFFSET, MAX_OFFSET, BODY)	\
+(TARGET_ARM ? SImode						\
+ : (MIN_OFFSET) >= -256 && (MAX_OFFSET) <= 254			\
+ ? (ADDR_DIFF_VEC_FLAGS (BODY).offset_unsigned = 0, QImode)	\
+ : (MIN_OFFSET) >= 0 && (MAX_OFFSET) <= 510			\
+ ? (ADDR_DIFF_VEC_FLAGS (BODY).offset_unsigned = 1, QImode)	\
+ : (MIN_OFFSET) >= -65536 && (MAX_OFFSET) <= 65534		\
+ ? (ADDR_DIFF_VEC_FLAGS (BODY).offset_unsigned = 0, HImode)	\
+ : SImode)
+
+/* This macro uses variable "file" that exists at 
+   the single place it is invoked, in final.c.  INSN_ADDRESSES 
+   and INSN_UID also expand to variables visible at that point,
+   but not everywhere.  Ewww.
+   Table in RTL includes default target as the last element (via
+   local change in stmt.c).  Table in .s file additionally includes 
+   count as first element, count does not include the last element.  
+   All that is dealt with here. */
+   
+
+#define ASM_OUTPUT_ADDR_DIFF_VEC(LABEL, BODY)				\
+do {									\
+  int idx, size = GET_MODE_SIZE (GET_MODE (BODY));			\
+  int pack = (TARGET_THUMB) ? 2 : 4;					\
+  /* APPLE LOCAL 5837498 assembler expr for (L1-L2)/2 */		\
+  /* removed unused variable "base_addr" */				\
+  int base_label_no = CODE_LABEL_NUMBER (LABEL);			\
+  int vlen = XVECLEN (BODY, 1); /*includes trailing default */		\
+  const char* directive;						\
+  if (GET_MODE (BODY) == QImode)					\
+      directive = ".byte";						\
+  else if (GET_MODE (BODY) == HImode)					\
+      directive = ".short";						\
+  else									\
+    {									\
+      pack = 1;		    						\
+      directive = ".long";						\
+    }									\
+  /* Alignment of table was handled by aligning its label,		\
+     in final_scan_insn. */						\
+  targetm.asm_out.internal_label (file, "L", base_label_no);		\
+  /* Default is not included in output count */				\
+  if (TARGET_THUMB)							\
+    asm_fprintf (file, "\t%s\t%d @ size\n", directive, vlen - 1);	\
+  for (idx = 0; idx < vlen; idx++)					\
+    {									\
+      rtx target_label = XEXP (XVECEXP (BODY, 1, idx), 0);		\
+      /* APPLE LOCAL begin 5837498 assembler expr for (L1-L2)/2 */	\
+      if (GET_MODE (BODY) != SImode)					\
+        {								\
+	  /* ARM mode is always SImode bodies */			\
+	  gcc_assert (!TARGET_ARM);					\
+	  /* APPLE LOCAL 5903944 */					\
+	  asm_fprintf (file, "\t%s\t(L%d-L%d)/%d\n",			\
+	    directive,							\
+	    CODE_LABEL_NUMBER (target_label), base_label_no, pack);	\
+        }								\
+      /* APPLE LOCAL end 5837498 assembler expr for (L1-L2)/2 */	\
+      else if (!TARGET_THUMB)						\
+	asm_fprintf (file, "\tb\tL%d\n",				\
+			CODE_LABEL_NUMBER (target_label));		\
+      else								\
+	/* Let the assembler do the computation here; one case that	\
+	   uses is this is when there are asm's, which makes		\
+	   compile time computations unreliable. */			\
+	asm_fprintf (file, "\t%s\tL%d-L%d\n",				\
+	  directive,							\
+	  CODE_LABEL_NUMBER (target_label), base_label_no);		\
+    }									\
+  /* Pad to instruction boundary. */					\
+  vlen = (vlen + 1/*count*/) * size;					\
+  while (vlen % pack != 0)						\
+    {									\
+      asm_fprintf (file, "\t%s\t0 @ pad\n", directive);			\
+      vlen += size;							\
+    }									\
+} while (0)
+
+/* This is identical to the default code when ASM_OUTPUT_ADDR_VEC is
+   not defined; however, final_scan_insn() will not invoke that
+   code when ASM_OUTPUT_ADDR_DIFF_VEC is defined.  In other words
+   if one of these is defined the other must be also, assuming you
+   want to use both kinds of tables in different circumstances.
+   Grr. This requirement is undocumented.  */
+
+#define ASM_OUTPUT_ADDR_VEC(LABEL, BODY)			    \
+do								    \
+    {								    \
+      int vlen = XVECLEN (BODY, 0);				    \
+      int idx;							    \
+      if (GET_CODE (BODY) != ADDR_VEC)				    \
+	gcc_unreachable ();					    \
+      for (idx = 0; idx < vlen; idx++)				    \
+	{							    \
+	  ASM_OUTPUT_ADDR_VEC_ELT				    \
+	    (file, CODE_LABEL_NUMBER (XEXP			    \
+		    (XVECEXP (BODY, 0, idx), 0)));		    \
+	}							    \
+    }								    \
+while (0)
+/* APPLE LOCAL end ARM compact switch tables */
+
 /* signed 'char' is most compatible, but RISC OS wants it unsigned.
    unsigned is probably best, but may break some code.  */
 #ifndef DEFAULT_SIGNED_CHAR
@@ -2118,10 +2242,26 @@
 /* Calling from registers is a massive pain.  */
 #define NO_FUNCTION_CSE 1
 
+/* APPLE LOCAL begin DImode multiply enhancement */
+/* Enable a new optimization in combine.c, see there. */
+#define COMBINE_TRY_RETAIN 1
+/* APPLE LOCAL end DImode multiply enhancement */
+
 /* The machine modes of pointers and functions */
 #define Pmode  SImode
 #define FUNCTION_MODE  Pmode
 
+/* APPLE LOCAL begin ARM enhance conditional insn generation */
+/* A C expression to modify the code described by the conditional if
+   information CE_INFO, for the basic block BB, possibly updating the tests in
+   TRUE_EXPR, and FALSE_EXPR for converting the && and || parts of if-then or
+   if-then-else code to conditional instructions.  OLD_TRUE and OLD_FALSE are
+   the previous tests.  Set either TRUE_EXPR or FALSE_EXPR to a null pointer if
+   the tests cannot be converted.  */
+#define IFCVT_MODIFY_MULTIPLE_TESTS(CE_INFO, BB, TRUE_EXPR, FALSE_EXPR) \
+arm_ifcvt_modify_multiple_tests (CE_INFO, BB, &TRUE_EXPR, &FALSE_EXPR)
+/* APPLE LOCAL end ARM enhance conditional insn generation */
+
 #define ARM_FRAME_RTX(X)					\
   (   (X) == frame_pointer_rtx || (X) == stack_pointer_rtx	\
    || (X) == arg_pointer_rtx)
@@ -2499,10 +2639,49 @@
   optimization_options ((LEVEL), (SIZE))
 /* APPLE LOCAL end ARM darwin optimization defaults */
 
+/* APPLE LOCAL begin 5831562 ARM pseudo-pseudo tying */
+#define TIE_PSEUDOS 1
+/* APPLE LOCAL end 5831562 ARM pseudo-pseudo tying */
+
+/* APPLE LOCAL begin ARM strings in code */
+/* APPLE LOCAL begin ARM compact switch tables */
+/* length for consttable_string needs to be done in code */
+#define ADJUST_INSN_LENGTH(INSN, LENGTH) \
+  arm_adjust_insn_length ((INSN), &(LENGTH))
+/* APPLE LOCAL end ARM compact switch tables */
+/* APPLE LOCAL end ARM strings in code */
+
 /* APPLE LOCAL begin ARM prefer SP to FP */
 #define DEBUGGER_AUTO_OFFSET(X) arm_local_debug_offset (X)
 #define ALLOW_ELIMINATION_TO_SP
 /* APPLE LOCAL end ARM prefer SP to FP */
+
+/* APPLE LOCAL begin ARM compact switch tables */
+#define LABEL_ALIGN(LABEL) arm_label_align(LABEL)
+#define TARGET_EXTRA_CASES (TARGET_THUMB ? 1 : 0)
+
+/* Don't take shortcuts which may compromise preciseness of
+   address/alignment calculations.  */
+#define TARGET_EXACT_SIZE_CALCULATIONS
+
+/* Count size of prologue */
+#define TARGET_UNEXPANDED_PROLOGUE_SIZE \
+		(TARGET_THUMB ? count_thumb_unexpanded_prologue () : 0)
+
+/* Align labels in ADDR_DIFF_VECs with the same alignment as
+   the table they are a part of.  */
+#define TARGET_ALIGN_ADDR_DIFF_VEC_LABEL
+/* APPLE LOCAL end ARM compact switch tables */
+
+/* APPLE LOCAL begin ARM 4-byte align stack objects */
+/* In Thumb mode align stack objects on 4 bytes, so we can use
+   the %sp+N form of ADD to compute their addresses rather than
+   having to break this into 2 insns. */
+#if TARGET_MACHO
+#define LOCAL_ALIGNMENT(TYPE, BASIC_ALIGN) \
+  (TARGET_THUMB ? (MAX (BASIC_ALIGN, 4 * BITS_PER_UNIT)) : BASIC_ALIGN)
+#endif
+/* APPLE LOCAL end ARM 4-byte align stack objects */
 
 enum arm_builtins
 {
@@ -2672,6 +2851,7 @@
 };
 
 /* LLVM LOCAL begin */
+#ifdef ENABLE_LLVM
 #define LLVM_TARGET_INTRINSIC_PREFIX "arm"
 
 /* Turn -march=xx into a CPU type.
@@ -2734,7 +2914,7 @@
   else if ((ESCAPED_CHAR) == '@') {       		\
     (RESULT) += ASM_COMMENT_START;                      \
   }
-
+#endif
 /* LLVM LOCAL end */
 
 #endif /* ! GCC_ARM_H */

Modified: llvm-gcc-4.2/trunk/gcc/config/arm/arm.opt
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/arm/arm.opt?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/arm/arm.opt (original)
+++ llvm-gcc-4.2/trunk/gcc/config/arm/arm.opt Tue Jul 29 17:09:10 2008
@@ -98,17 +98,23 @@
 Target Report RejectNegative InverseMask(BIG_END)
 Assume target CPU is configured as little endian
 
+; APPLE LOCAL begin mlong-branch for arm
 mlong-branch
 Target Mask(LONG_CALLS)
 Alias for -mlong-calls
+; APPLE LOCAL end mlong-branch for arm
 
+; APPLE LOCAL begin mlong-branch for arm
 mlong-calls
 Target Report Mask(LONG_CALLS) MaskExists
 Generate call insns as indirect calls, if necessary
+; APPLE LOCAL end mlong-branch for arm
 
+; APPLE LOCAL begin mlong-branch for arm
 mlongcall
 Target Mask(LONG_CALLS) MaskExists
 Alias for -mlong-calls
+; APPLE LOCAL end mlong-branch for arm
 
 mpic-register=
 Target RejectNegative Joined Var(arm_pic_register_string)
@@ -163,3 +169,9 @@
 mwords-little-endian
 Target Report RejectNegative Mask(LITTLE_WORDS)
 Assume big endian bytes, little endian words
+
+; APPLE LOCAL begin 5946347 ms_struct support
+mms-bitfields
+Target Report Mask(MS_BITFIELD_LAYOUT)
+Use Microsoft structure layout
+; APPLE LOCAL end 5946347 ms_struct support

Modified: llvm-gcc-4.2/trunk/gcc/config/arm/bpabi.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/arm/bpabi.h?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/arm/bpabi.h (original)
+++ llvm-gcc-4.2/trunk/gcc/config/arm/bpabi.h Tue Jul 29 17:09:10 2008
@@ -35,9 +35,13 @@
 
 /* EABI targets should enable interworking by default.  */
 #undef TARGET_DEFAULT
-/* LLVM Local begin */
+/* LLVM LOCAL begin */
+#ifdef ENABLE_LLVM
 #define TARGET_DEFAULT (0)
-/* LLVM Local end */
+#else
+#define TARGET_DEFAULT MASK_INTERWORK
+#endif
+/* LLVM LOCAL end */
 
 /* The ARM BPABI functions return a boolean; they use no special
    calling convention.  */

Modified: llvm-gcc-4.2/trunk/gcc/config/arm/darwin.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/arm/darwin.h?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/arm/darwin.h (original)
+++ llvm-gcc-4.2/trunk/gcc/config/arm/darwin.h Tue Jul 29 17:09:10 2008
@@ -28,14 +28,15 @@
 
 #undef CC1_SPEC
 #define CC1_SPEC "%<faltivec %<mcpu=G4 %<mcpu=G5 \
-%{!mmacosx-version-min=*:-mmacosx-version-min=%(darwin_minversion)} \
+%{!mmacosx-version-min=*: %{!miphoneos-version-min=*: %(darwin_cc1_minversion)}} \
 %{static: %{Zdynamic: %e conflicting code gen style switches are used}} \
 %{static: %{mdynamic-no-pic: %e conflicting code gen style switches are used}} \
 %{!static:%{!mdynamic-no-pic:-fPIC}} \
 %{!fbuiltin-strcat:-fno-builtin-strcat} \
 %{!fbuiltin-strcpy:-fno-builtin-strcpy} \
 %<fbuiltin-strcat \
-%<fbuiltin-strcpy"
+%<fbuiltin-strcpy \
+%<pg"
 
 #undef LIB_SPEC
 #define LIB_SPEC "%{!static:-lSystem}"
@@ -213,10 +214,18 @@
    mcpu=arm1176jzf-s:armv6;			\
    :arm -force_cpusubtype_ALL}"
 
-#define DARWIN_MINVERSION_SPEC "10.5"
+#define DARWIN_MINVERSION_SPEC "2.0"
 
-#define DARWIN_DSYMUTIL_SPEC \
-  "%{gdwarf*: dsymutil %{o*:%*}%{!o:a.out}}"
+/* Default cc1 option for specifying minimum version number.  */
+#define DARWIN_CC1_MINVERSION_SPEC "-miphoneos-version-min=%(darwin_minversion)"
+
+/* Default ld option for specifying minimum version number.  */
+#define DARWIN_LD_MINVERSION_SPEC "-iphoneos_version_min %(darwin_minversion)"
+
+/* Use iPhone OS version numbers by default.  */
+#define DARWIN_DEFAULT_VERSION_TYPE  DARWIN_VERSION_IPHONEOS
+
+#define DARWIN_IPHONEOS_LIBGCC_SPEC "-lgcc_s.1 -lgcc"
 
 #undef SUBTARGET_EXTRA_SPECS
 #define SUBTARGET_EXTRA_SPECS			\
@@ -231,6 +240,8 @@
 do {									\
   if (1)								\
   {									\
+    if (!darwin_macosx_version_min && !darwin_iphoneos_version_min)	\
+      darwin_iphoneos_version_min = "2.0";				\
     if (MACHO_DYNAMIC_NO_PIC_P)						\
       {									\
         if (flag_pic)							\
@@ -243,6 +254,10 @@
         warning (0, "-fpic is not supported; -fPIC assumed");		\
         flag_pic = 2;							\
       }									\
+    /* Remove when ld64 generates stubs for us. */			\
+    darwin_stubs = true;						\
+    if (profile_flag)							\
+      error ("function profiling not supported on this target");	\
   }									\
 } while(0)
 
@@ -313,9 +328,6 @@
     && (flag_pic || MACHO_DYNAMIC_NO_PIC_P)		\
     && (MODE == SFmode || MODE == DFmode)) ? 1 : 0)
 
-/* Until dyld supports aligned commons... */
-#undef ASM_OUTPUT_ALIGNED_COMMON
-
 /* Adjust inlining parameters.  */
 #undef SUBTARGET_OPTIMIZATION_OPTIONS
 #define SUBTARGET_OPTIMIZATION_OPTIONS			\
@@ -335,10 +347,15 @@
 #undef MAX_CONDITIONAL_EXECUTE
 #define MAX_CONDITIONAL_EXECUTE	(optimize_size ? INT_MAX : (BRANCH_COST + 1))
 
-/* Use stabs for now */
-#undef PREFERRED_DEBUGGING_TYPE
-#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
-
 #undef TARGET_IASM_OP_CONSTRAINT
 #define TARGET_IASM_OP_CONSTRAINT	\
   { "ldr", 2, "m" },
+
+#define OBJC_TARGET_FLAG_OBJC_ABI		\
+  do {						\
+    if (flag_objc_abi == -1)			\
+      flag_objc_abi = 2;			\
+    if (flag_objc_legacy_dispatch == -1)	\
+      flag_objc_legacy_dispatch = 1;		\
+  } while (0)
+

Modified: llvm-gcc-4.2/trunk/gcc/config/arm/elf.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/arm/elf.h?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/arm/elf.h (original)
+++ llvm-gcc-4.2/trunk/gcc/config/arm/elf.h Tue Jul 29 17:09:10 2008
@@ -98,7 +98,10 @@
    Otherwise, the readonly data section is used.  */
 /* We put ARM jump tables in the text section, because it makes the code
    more efficient, but for Thumb it's better to put them out of band.  */
-#define JUMP_TABLES_IN_TEXT_SECTION (TARGET_ARM)
+/* APPLE LOCAL begin ARM compact switch tables */
+/* The above is no longer true.  */
+#define JUMP_TABLES_IN_TEXT_SECTION (TARGET_EITHER)
+/* APPLE LOCAL end ARM compact switch tables */
 
 #ifndef LINK_SPEC
 #define LINK_SPEC "%{mbig-endian:-EB} %{mlittle-endian:-EL} -X"

Modified: llvm-gcc-4.2/trunk/gcc/config/darwin-protos.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/darwin-protos.h?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/darwin-protos.h (original)
+++ llvm-gcc-4.2/trunk/gcc/config/darwin-protos.h Tue Jul 29 17:09:10 2008
@@ -136,8 +136,9 @@
 /* APPLE LOCAL radar 5195402 */
 extern bool objc_check_cfstringref_type (tree);
 
-/* APPLE LOCAL begin radar 2996215 */
-extern tree objc_create_init_utf16_var (const unsigned char *, size_t, size_t *);
-/* APPLE LOCAL end radar 2996215 */
+/* APPLE LOCAL begin radar 2996215 - 6068877 */
+extern bool cvt_utf8_utf16 (const unsigned char *, size_t, unsigned char **, size_t *);
+extern tree create_init_utf16_var (const unsigned char *inbuf, size_t length, size_t *numUniChars);
+/* APPLE LOCAL end radar 2996215 - 6068877 */
 /* APPLE LOCAL radar 5202926 */
 extern bool objc_anonymous_local_objc_name (const char *);

Modified: llvm-gcc-4.2/trunk/gcc/config/darwin.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/darwin.h?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/darwin.h (original)
+++ llvm-gcc-4.2/trunk/gcc/config/darwin.h Tue Jul 29 17:09:10 2008
@@ -124,6 +124,14 @@
    command-line option translations specific to the particular target
    architecture.  */
 
+/* LLVM LOCAL - begin */
+#ifdef ENABLE_LLVM
+#define LLVM_FLAG  { "-mllvm", "-Zmllvm" },
+#else
+#define LLVM_FLAG
+#endif
+/* LLVM LOCAL - end */
+
 #define TARGET_OPTION_TRANSLATE_TABLE \
   { "-all_load", "-Zall_load" },  \
   { "-allowable_client", "-Zallowable_client" },  \
@@ -160,7 +168,7 @@
   { "-init", "-Zinit" },  \
   { "-install_name", "-Zinstall_name" },  \
   /* LLVM LOCAL */ \
-  { "-mllvm", "-Zmllvm" },  \
+  LLVM_FLAG  \
   { "-mkernel", "-mkernel -static -Wa,-static" }, \
   { "-multiply_defined_unused", "-Zmultiplydefinedunused" },  \
   { "-multiply_defined", "-Zmultiply_defined" },  \
@@ -191,6 +199,13 @@
 extern GTY(()) int darwin_reverse_bitfields;
 /* APPLE LOCAL end pragma reverse_bitfields */
 
+/* APPLE LOCAL begin ARM 5683689 */
+enum darwin_version_type {
+  DARWIN_VERSION_MACOSX,
+  DARWIN_VERSION_IPHONEOS
+};
+/* APPLE LOCAL end ARM 5683689 */
+
 /* APPLE LOCAL AT&T-style stub 4164563 */
 #define MACHOPIC_ATT_STUB (darwin_macho_att_stub)
 
@@ -202,6 +217,11 @@
 	warn_pointer_sign = 1;						\
 	CPP_OPTION (parse_in, pascal_strings) = 1;			\
       }									\
+    /* APPLE LOCAL begin ARM 5683689 */					\
+    if (darwin_macosx_version_min && darwin_iphoneos_version_min)	\
+      error ("-mmacosx-version-min not allowed with"			\
+             " -miphoneos-version-min");				\
+    /* APPLE LOCAL end ARM 5683689 */					\
     /* The c_dialect...() macros are not available to us here.  */	\
     darwin_running_cxx = (strstr (lang_hooks.name, "C++") != 0);	\
     /* APPLE LOCAL end constant cfstrings */				\
@@ -222,6 +242,14 @@
 
 /* These compiler options take n arguments.  */
 
+/* LLVM LOCAL - begin */
+#ifdef ENABLE_LLVM
+#define LLVM_STRCMP(STR) !strcmp (STR, "Zmllvm") ? 1 :
+#else
+#define LLVM_STRCMP(STR)
+#endif
+/* LLVM LOCAL - end */
+ 
 #undef  WORD_SWITCH_TAKES_ARG
 #define WORD_SWITCH_TAKES_ARG(STR)              \
   (DEFAULT_WORD_SWITCH_TAKES_ARG (STR) ? 1 :    \
@@ -237,8 +265,8 @@
    !strcmp (STR, "Zimage_base") ? 1 :           \
    !strcmp (STR, "Zinit") ? 1 :                 \
    !strcmp (STR, "Zinstall_name") ? 1 :         \
-  /* LLVM LOCAL */ \
-   !strcmp (STR, "Zmllvm") ? 1 :                \
+   /* LLVM LOCAL */                             \
+   LLVM_STRCMP(STR)                             \
    !strcmp (STR, "Zmultiplydefinedunused") ? 1 : \
    !strcmp (STR, "Zmultiply_defined") ? 1 :     \
    !strcmp (STR, "precomp-trustfile") ? 1 :     \
@@ -306,6 +334,7 @@
    specifying the handling of options understood by generic Unix
    linkers, and for positional arguments like libraries.  */
 /* APPLE LOCAL begin mainline */
+#ifdef ENABLE_LLVM
 #define LINK_COMMAND_SPEC "\
 %{!fdump=*:%{!fsyntax-only:%{!precomp:%{!c:%{!M:%{!MM:%{!E:%{!S:\
     %(linker) %l %X %{d} %{s} %{t} %{Z} %{u*} \
@@ -322,10 +351,29 @@
     %{!A:%{!nostdlib:%{!nostartfiles:%E}}} %{T*} %{F*} }}}}}}}}\n\
 %{!fdump=*:%{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S:\
 "/* APPLE LOCAL end mainline 4.3 2006-10-31 4370146 */"\
-"/* APPLE LOCAL ARM 5342595 */"\
 "/* LLVM LOCAL do not use dsymutil with -O1 or higher */"\
     %{.c|.cc|.C|.cpp|.cp|.c++|.cxx|.CPP|.m|.mm: \
     %{!O: %{!O1: %{!O2: %{!O3: %{!O4: %{!Os: %(darwin_dsymutil) }}}}}}}}}}}}}}"
+#else
+#define LINK_COMMAND_SPEC "\
+%{!fdump=*:%{!fsyntax-only:%{!precomp:%{!c:%{!M:%{!MM:%{!E:%{!S:\
+    %(linker) %l %X %{d} %{s} %{t} %{Z} %{u*} \
+    %{A} %{e*} %{m} %{r} %{x} \
+    %{o*}%{!o:-o a.out} \
+    %{!A:%{!nostdlib:%{!nostartfiles:%S}}} \
+    %{L*} %{fopenmp:%:include(libgomp.spec)%(link_gomp)}   \
+"/* APPLE LOCAL add fcreate-profile */"\
+    %(link_libgcc) %o %{fprofile-arcs|fprofile-generate|fcreate-profile|coverage:-lgcov} \
+"/* APPLE LOCAL nested functions 4357979  */"\
+    %{fnested-functions: -allow_stack_execute} \
+    %{!nostdlib:%{!nodefaultlibs:%(link_ssp) %G %L}} \
+"/* APPLE LOCAL begin mainline 4.3 2006-10-31 4370146 */"\
+    %{!A:%{!nostdlib:%{!nostartfiles:%E}}} %{T*} %{F*} }}}}}}}}\n\
+%{!fdump=*:%{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S:\
+"/* APPLE LOCAL end mainline 4.3 2006-10-31 4370146 */"\
+    %{.c|.cc|.C|.cpp|.cp|.c++|.cxx|.CPP|.m|.mm: \
+    %{g*:%{!gstabs*:%{!g0: dsymutil %{o*:%*}%{!o:a.out}}}}}}}}}}}}"
+#endif
 /* APPLE LOCAL end mainline */
 
 #ifdef TARGET_SYSTEM_ROOT
@@ -342,6 +390,14 @@
 /* Note that options taking arguments may appear multiple times on a
    command line with different arguments each time, so put a * after
    their names so all of them get passed.  */
+/* LLVM LOCAL - begin */
+#ifdef ENABLE_LLVM
+#define LLVM_LINK_SPEC "%{Zmllvm*:-mllvm %*}"
+#else
+#define LLVM_LINK_SPEC ""
+#endif
+/* LLVM LOCAL - end */
+
 /* APPLE LOCAL begin mainline */
 #define LINK_SPEC  \
   "%{static}%{!static:-dynamic} \
@@ -386,13 +442,14 @@
    %{headerpad_max_install_names*} \
    %{Zimage_base*:-image_base %*} \
    %{Zinit*:-init %*} \
-   "/* APPLE LOCAL begin mainline 2007-02-20 5005743 */" \
-   %{!mmacosx-version-min=*:-macosx_version_min %(darwin_minversion)} \
+   "/* APPLE LOCAL begin ARM 5683689 */"\
+   %{!mmacosx-version-min=*: %{!miphoneos-version-min=*: %(darwin_ld_minversion)}} \
    %{mmacosx-version-min=*:-macosx_version_min %*} \
-   "/* APPLE LOCAL end mainline 2007-02-20 5005743 */" \
-   "/* APPLE LOCAL begin llvm */" \
-   %{Zmllvm*:-mllvm %*} \
-   "/* APPLE LOCAL end llvm */" \
+   %{miphoneos-version-min=*:-iphoneos_version_min %*} \
+   "/* APPLE LOCAL end ARM 5683689 */"\
+   "/* APPLE LOCAL begin llvm */\
+  LLVM_LINK_SPEC \
+   /* APPLE LOCAL end llvm */" \
    %{nomultidefs} \
    %{Zmulti_module:-multi_module} %{Zsingle_module:-single_module} \
    %{Zmultiply_defined*:-multiply_defined %*} \
@@ -448,6 +505,8 @@
 #define REAL_LIBGCC_SPEC						   \
 /* APPLE LOCAL libgcc_static.a  */					   \
    "%{static:-lgcc_static; static-libgcc: -lgcc_eh -lgcc;		   \
+      "/* APPLE LOCAL ARM 5683689 5681645 */"				   \
+      miphoneos-version-min=*: %(darwin_iphoneos_libgcc);		   \
       shared-libgcc|fexceptions|fgnu-runtime:				   \
        %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_s.10.4)	   \
        %:version-compare(>= 10.5 mmacosx-version-min= -lgcc_s.10.5)	   \
@@ -491,19 +550,27 @@
   { "darwin_dylib1", DARWIN_DYLIB1_SPEC },				\
   { "darwin_minversion", DARWIN_MINVERSION_SPEC },			\
 /* APPLE LOCAL end mainline */						\
-/* APPLE LOCAL begin ARM 5342595 */					\
-  { "darwin_dsymutil", DARWIN_DSYMUTIL_SPEC },
-/* APPLE LOCAL end ARM 5342595 */
- 
-/* APPLE LOCAL begin mainline */
+/* APPLE LOCAL begin ARM 5683689 */					\
+  { "darwin_cc1_minversion", DARWIN_CC1_MINVERSION_SPEC },		\
+  { "darwin_ld_minversion", DARWIN_LD_MINVERSION_SPEC },		\
+/* APPLE LOCAL end ARM 5683689 */					\
+/* APPLE LOCAL ARM 5681645 */						\
+  { "darwin_iphoneos_libgcc", DARWIN_IPHONEOS_LIBGCC_SPEC },
+
+/* APPLE LOCAL begin ARM 5683689 */
 #define DARWIN_DYLIB1_SPEC						\
-  "%:version-compare(!> 10.5 mmacosx-version-min= -ldylib1.o)		\
-   %:version-compare(>= 10.5 mmacosx-version-min= -ldylib1.10.5.o)"
+  "%{miphoneos-version-min=*: -ldylib1.o}				\
+   %{!miphoneos-version-min=*:						\
+     %:version-compare(!> 10.5 mmacosx-version-min= -ldylib1.o)		\
+     %:version-compare(>= 10.5 mmacosx-version-min= -ldylib1.10.5.o)}"
 
 #define DARWIN_CRT1_SPEC						\
-  "%:version-compare(!> 10.5 mmacosx-version-min= -lcrt1.o)		\
-   %:version-compare(>= 10.5 mmacosx-version-min= -lcrt1.10.5.o)"
-/* APPLE LOCAL end mainline */
+/* APPLE LOCAL ARM 5823776 iphoneos should use crt1.o */		\
+  "%{miphoneos-version-min=*: -lcrt1.o}					\
+   %{!miphoneos-version-min=*:						\
+     %:version-compare(!> 10.5 mmacosx-version-min= -lcrt1.o)		\
+     %:version-compare(>= 10.5 mmacosx-version-min= -lcrt1.10.5.o)}"
+/* APPLE LOCAL end ARM 5683689 */
 
 /* Default Darwin ASM_SPEC, very simple.  */
 /* APPLE LOCAL begin radar 4161346 */
@@ -517,13 +584,19 @@
 #define DBX_DEBUGGING_INFO 1
 
 /* LLVM LOCAL begin */
+#ifdef ENABLE_LLVM
 /* Prefer DWARF only if appropriate dsymutil is available.  */
-  #define DWARF2_DEBUGGING_INFO
+#define DWARF2_DEBUGGING_INFO
 #ifdef HAVE_DSYMUTIL
   #define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG
 #else
   #define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
 #endif
+#else
+/* Prefer DWARF2.  */
+#define DWARF2_DEBUGGING_INFO
+#define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG
+#endif
 /* LLVM LOCAL end */
 
 /* APPLE LOCAL end mainline 4.3 2006-10-31 4370143 */
@@ -591,6 +664,7 @@
   } while (0)
 
 /* LLVM LOCAL begin */
+#ifdef ENABLE_LLVM
 /* As in the warning above, alias definitions aren't supported on Mach-O. */
 #define TARGET_DOES_NOT_SUPPORT_ALIAS_DEFINITIONS
 
@@ -608,6 +682,7 @@
       (FN)->setLinkage(Function::ExternalLinkage);                      \
     }                                                                   \
   } while (0)
+#endif
 /* LLVM LOCAL end */
 
 /* Darwin has the pthread routines in libSystem, which every program
@@ -701,7 +776,10 @@
 #undef OBJC_FLAG_ZEROCOST_EXCEPTIONS
 #define OBJC_FLAG_ZEROCOST_EXCEPTIONS						\
   do {									\
-       if (strverscmp (darwin_macosx_version_min, "10.5") < 0) 		\
+       /* APPLE LOCAL begin ARM 5683689 */				\
+       if (darwin_macosx_version_min					\
+	   && strverscmp (darwin_macosx_version_min, "10.5") < 0)	\
+       /* APPLE LOCAL end ARM 5683689 */				\
 	 error ("Mac OS X version 10.5 or later is needed for zerocost-exceptions"); \
      } while (0)
 /* APPLE LOCAL end radar 5023725 */
@@ -729,6 +807,10 @@
          } 								\
        if (flag_objc_abi == -1)						\
          flag_objc_abi = (flag_next_runtime && TARGET_64BIT) ? 2 : 1;	\
+       /* APPLE LOCAL begin ARM hybrid objc-2.0 */			\
+       if (flag_objc_legacy_dispatch == -1)				\
+	 flag_objc_legacy_dispatch = (flag_objc_abi < 2);		\
+       /* APPLE LOCAL end ARM hybrid objc-2.0 */			\
          /* APPLE LOCAL begin radar 2848255 */                          \
         /* APPLE LOCAL begin radar 5023725 */                           \
         if (flag_objc_abi == 2)                                         \
@@ -745,14 +827,29 @@
              flag_objc_abi = 2;  /* recover */                          \
            }                                                            \
          /* APPLE LOCAL end radar 2848255 */                            \
+	/* APPLE LOCAL begin 5660282 */					\
+	if (darwin_iphoneos_version_min && flag_objc_gc)		\
+	  {								\
+	    warning (0, "-fobjc-gc not supported for iPhone OS; ignoring.");\
+	    flag_objc_gc = 0;						\
+	  }								\
+	if (darwin_iphoneos_version_min && flag_objc_gc_only)		\
+	  {								\
+	    warning (0, "-fobjc-gc-only not supported for iPhone OS; ignoring.");\
+	    flag_objc_gc_only = 0;					\
+	  }								\
+	/* APPLE LOCAL end 5660282 */					\
   } while (0)
 /* APPLE LOCAL end radar 4862848 */
 
 /* APPLE LOCAL begin radar 4531086 */
 #undef OBJC_WARN_OBJC2_FEATURES
 #define OBJC_WARN_OBJC2_FEATURES(MESSAGE)				\
+  /* APPLE LOCAL begin ARM 5683689 */					\
   do {									\
-    if (strverscmp (darwin_macosx_version_min, "10.5") < 0)		\
+    if (darwin_macosx_version_min					\
+	&& strverscmp (darwin_macosx_version_min, "10.5") < 0)		\
+  /* APPLE LOCAL end ARM 5683689 */					\
       warning (0, "Mac OS X version 10.5 or later is needed for use of %s", \
 	       MESSAGE);						\
   } while (0)
@@ -1092,32 +1189,40 @@
       }								\
   } while (0)
 
+/* APPLE LOCAL begin ARM 5603763 */
+/* Given a symbol name, remove quotes, prefix it with "L", suffix it
+   with SUFFIX, and re-apply quotes if needed.  */
+
+#define GEN_SUFFIXED_NAME_FOR_SYMBOL(BUF,SYMBOL,SYMBOL_LENGTH,SUFFIX)	\
+  do {									\
+    const char *symbol_ = (SYMBOL);					\
+    char *buffer_ = (BUF);						\
+    if (symbol_[0] == '"')						\
+      {									\
+        strcpy (buffer_, "\"L");					\
+        strcpy (buffer_ + 2, symbol_ + 1);				\
+	strcpy (buffer_ + (SYMBOL_LENGTH), SUFFIX "\"");		\
+      }									\
+    else if (name_needs_quotes (symbol_))				\
+      {									\
+        strcpy (buffer_, "\"L");					\
+        strcpy (buffer_ + 2, symbol_);					\
+	strcpy (buffer_ + (SYMBOL_LENGTH) + 2, SUFFIX "\"");		\
+      }									\
+    else								\
+      {									\
+        strcpy (buffer_, "L");						\
+        strcpy (buffer_ + 1, symbol_);					\
+	strcpy (buffer_ + (SYMBOL_LENGTH) + 1, SUFFIX);			\
+      }									\
+  } while (0)
+
 /* Given a symbol name string, create the lazy pointer version
    of the symbol name.  */
 
 #define GEN_LAZY_PTR_NAME_FOR_SYMBOL(BUF,SYMBOL,SYMBOL_LENGTH)	\
-  do {								\
-    const char *symbol_ = (SYMBOL);                             \
-    char *buffer_ = (BUF);					\
-    if (symbol_[0] == '"')					\
-      {								\
-        strcpy (buffer_, "\"L");				\
-        strcpy (buffer_ + 2, symbol_ + 1);			\
-	strcpy (buffer_ + (SYMBOL_LENGTH), "$lazy_ptr\"");	\
-      }								\
-    else if (name_needs_quotes (symbol_))			\
-      {								\
-        strcpy (buffer_, "\"L");				\
-        strcpy (buffer_ + 2, symbol_);				\
-	strcpy (buffer_ + (SYMBOL_LENGTH) + 2, "$lazy_ptr\"");	\
-      }								\
-    else							\
-      {								\
-        strcpy (buffer_, "L");					\
-        strcpy (buffer_ + 1, symbol_);				\
-	strcpy (buffer_ + (SYMBOL_LENGTH) + 1, "$lazy_ptr");	\
-      }								\
-  } while (0)
+  GEN_SUFFIXED_NAME_FOR_SYMBOL (BUF, SYMBOL, SYMBOL_LENGTH, "$lazy_ptr")
+/* APPLE LOCAL end ARM 5603763 */
 
 #define EH_FRAME_SECTION_NAME   "__TEXT"
 #define EH_FRAME_SECTION_ATTR ",coalesced,no_toc+strip_static_syms+live_support"
@@ -1168,8 +1273,10 @@
 #define HANDLE_PRAGMA_PACK_PUSH_POP 1
 
 /* LLVM LOCAL begin */
+#ifdef ENABLE_LLVM
 /* Handle pragma pack separately */
 #define TARGET_OVERRIDE_PRAGMA_PACK_HANDLER 1
+#endif
 /* LLVM LOCAL end */
 
 #define DARWIN_REGISTER_TARGET_PRAGMAS()			\
@@ -1297,7 +1404,6 @@
   darwin_handle_c_option (CODE, ARG, VALUE)
 /* APPLE LOCAL end iframework for 4.3 4094959 */
 
-
 /* LLVM LOCAL begin */
 #ifdef ENABLE_LLVM
 /* LLVM_IMPLICIT_TARGET_GLOBAL_VAR_SECTION - Given a VAR_DECL for a global
@@ -1434,11 +1540,23 @@
 
 /* APPLE LOCAL begin mainline 2007-06-14 5235474 */
 #ifndef CROSS_DIRECTORY_STRUCTURE
-extern void darwin_default_min_version (int * argc, char *** argv);
+/* APPLE LOCAL begin ARM 5683689 */
+/* LLVM FIXME: Uncomment!!! */
+#if 0
+extern void darwin_default_min_version (int * argc, char *** argv,
+					enum darwin_version_type vers_type);
 #define GCC_DRIVER_HOST_INITIALIZATION \
   /* APPLE LOCAL isysroot 5083137 */ \
   GCC_DRIVER_HOST_INITIALIZATION1; \
-  darwin_default_min_version (&argc, &argv)
+  darwin_default_min_version (&argc, &argv, DARWIN_DEFAULT_VERSION_TYPE)
+/* APPLE LOCAL end ARM 5683689 */
+#else
+extern void darwin_default_min_version (int * argc, char *** argv);
+#define GCC_DRIVER_HOST_INITIALIZATION          \
+   /* APPLE LOCAL isysroot 5083137 */ \
+   GCC_DRIVER_HOST_INITIALIZATION1; \
+   darwin_default_min_version (&argc, &argv)
+#endif
 #endif /* CROSS_DIRECTORY_STRUCTURE */
 /* APPLE LOCAL end mainline 2007-06-14 5235474 */
 

Modified: llvm-gcc-4.2/trunk/gcc/config/darwin.opt
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/darwin.opt?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/darwin.opt (original)
+++ llvm-gcc-4.2/trunk/gcc/config/darwin.opt Tue Jul 29 17:09:10 2008
@@ -23,15 +23,15 @@
 Target Report Var(darwin_fix_and_continue)
 Generate code suitable for fast turn around debugging
 
-; APPLE LOCAL begin mainline 2007-02-20 5005743
-; The Init here is for the convenience of GCC developers, so that
-; cc1 and cc1plus don't crash if no -mmacosx-version-min is passed.  The
-; driver will always pass a -mmacosx-version-min, so in normal use
-; the Init is never used.
+; APPLE LOCAL begin ARM 5683689
 mmacosx-version-min=
-Target Joined Report Var(darwin_macosx_version_min) Init("10.1")
+Target Joined Report Var(darwin_macosx_version_min) Init(NULL)
 The earliest MacOS X version on which this program will run
-; APPLE LOCAL end mainline 2007-02-20 5005743
+
+miphoneos-version-min=
+Target Joined Report Var(darwin_iphoneos_version_min) Init(NULL)
+The earliest iPhone OS version on which this program will run
+; APPLE LOCAL end ARM 5683689
 
 mone-byte-bool
 Target RejectNegative Report Var(darwin_one_byte_bool)

Modified: llvm-gcc-4.2/trunk/gcc/config/freebsd.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/freebsd.h?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/freebsd.h (original)
+++ llvm-gcc-4.2/trunk/gcc/config/freebsd.h Tue Jul 29 17:09:10 2008
@@ -87,5 +87,7 @@
 #define TARGET_POSIX_IO
 
 /* LLVM LOCAL begin */
+#ifdef ENABLE_LLVM
 #define HANDLE_PRAGMA_PACK_PUSH_POP
+#endif
 /* LLVM LOCAL end */

Modified: llvm-gcc-4.2/trunk/gcc/config/i386/darwin.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/i386/darwin.h?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/i386/darwin.h (original)
+++ llvm-gcc-4.2/trunk/gcc/config/i386/darwin.h Tue Jul 29 17:09:10 2008
@@ -97,8 +97,8 @@
 #define CC1_SPEC "%{!mkernel:%{!static:%{!mdynamic-no-pic:-fPIC}}} \
   "/* APPLE LOCAL ARM ignore -mthumb and -mno-thumb */"\
   %<mthumb %<mno-thumb \
-"/* APPLE LOCAL mainline 2007-02-20 5005743 */" \
-  %{!mmacosx-version-min=*:-mmacosx-version-min=%(darwin_minversion)} \
+  "/* APPLE LOCAL ARM 5683689 */"\
+  %{!mmacosx-version-min=*: %{!miphoneos-version-min=*: %(darwin_cc1_minversion)}} \
   "/* APPLE LOCAL ignore -mcpu=G4 -mcpu=G5 */"\
   %<faltivec %<mno-fused-madd %<mlong-branch %<mlongcall %<mcpu=G4 %<mcpu=G5 \
   %{g: %{!fno-eliminate-unused-debug-symbols: -feliminate-unused-debug-symbols }}"
@@ -124,10 +124,19 @@
     :10.4}"
 
 /* APPLE LOCAL end mainline 2007-03-13 5005743 5040758 */ \
-/* APPLE LOCAL begin 5342595 */
-#define DARWIN_DSYMUTIL_SPEC \
-  "%{g*:%{!gstabs*:%{!g0: dsymutil %{o*:%*}%{!o:a.out}}}}"
-/* APPLE LOCAL end 5342595 */
+/* APPLE LOCAL begin ARM 5683689 */
+/* Default cc1 option for specifying minimum version number.  */
+#define DARWIN_CC1_MINVERSION_SPEC "-mmacosx-version-min=%(darwin_minversion)"
+
+/* Default ld option for specifying minimum version number.  */
+#define DARWIN_LD_MINVERSION_SPEC "-macosx_version_min %(darwin_minversion)"
+
+/* Use macosx version numbers by default.  */
+#define DARWIN_DEFAULT_VERSION_TYPE DARWIN_VERSION_MACOSX
+/* APPLE LOCAL end ARM 5683689 */
+
+/* APPLE LOCAL ARM 5681645 */
+#define DARWIN_IPHONEOS_LIBGCC_SPEC "-lgcc_s.10.5 -lgcc"
 
 #undef SUBTARGET_EXTRA_SPECS
 #define SUBTARGET_EXTRA_SPECS                                   \
@@ -273,6 +282,11 @@
 #undef SUBTARGET_OVERRIDE_OPTIONS
 #define SUBTARGET_OVERRIDE_OPTIONS				\
   do {								\
+    /* APPLE LOCAL begin ARM 5683689 */				\
+    if (!darwin_macosx_version_min				\
+	&& !darwin_iphoneos_version_min)			\
+      darwin_macosx_version_min = "10.1";			\
+    /* APPLE LOCAL end ARM 5683689 */				\
     /* APPLE LOCAL begin CW asm blocks */			\
     if (flag_iasm_blocks)					\
       flag_ms_asms = 1;						\
@@ -394,9 +408,12 @@
     }
 /* APPLE LOCAL end mainline */
 /* APPLE LOCAL begin track initialization status 4964532  */
+/* APPLE LOCAL begin ARM 5683689 */
 #undef  TARGET_DWARF_UNINIT_VARS
 #define TARGET_DWARF_UNINIT_VARS   \
-  (strverscmp (darwin_macosx_version_min, "10.4") >= 0)
+  (darwin_iphoneos_version_min ||	   \
+   strverscmp (darwin_macosx_version_min, "10.4") >= 0)
+/* APPLE LOCAL end ARM 5683689 */
 /* APPLE LOCAL end track initialization status 4964532  */
 
 /* This needs to move since i386 uses the first flag and other flags are

Modified: llvm-gcc-4.2/trunk/gcc/config/i386/darwin64.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/i386/darwin64.h?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/i386/darwin64.h (original)
+++ llvm-gcc-4.2/trunk/gcc/config/i386/darwin64.h Tue Jul 29 17:09:10 2008
@@ -30,6 +30,7 @@
 
 #undef SUBTARGET_EXTRA_SPECS
 #define SUBTARGET_EXTRA_SPECS                                   \
+  /* APPLE LOCAL 6015949 */					\
   DARWIN_EXTRA_SPECS                                            \
   { "darwin_arch", DARWIN_ARCH_SPEC },                          \
   { "darwin_crt2", "" },                                        \

Modified: llvm-gcc-4.2/trunk/gcc/config/i386/i386-protos.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/i386/i386-protos.h?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/i386/i386-protos.h (original)
+++ llvm-gcc-4.2/trunk/gcc/config/i386/i386-protos.h Tue Jul 29 17:09:10 2008
@@ -175,8 +175,11 @@
 extern rtx function_arg (CUMULATIVE_ARGS *, enum machine_mode, tree, int);
 extern void function_arg_advance (CUMULATIVE_ARGS *, enum machine_mode,
 				  tree, int);
-/* LLVM LOCAL make this global */
+/* LLVM LOCAL - begin make this global */
+#ifdef ENABLE_LLVM
 extern bool contains_128bit_aligned_vector_p (tree);
+#endif
+/* LLVM LOCAL - end make this global */
 extern rtx ix86_function_value (tree, tree, bool);
 #endif
 

Modified: llvm-gcc-4.2/trunk/gcc/config/i386/i386.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/i386/i386.h?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/i386/i386.h (original)
+++ llvm-gcc-4.2/trunk/gcc/config/i386/i386.h Tue Jul 29 17:09:10 2008
@@ -35,7 +35,6 @@
    that start with ASM_ or end in ASM_OP.  */
 
 /* LLVM LOCAL begin */
-
 #ifdef ENABLE_LLVM
 
 /* Add general target specific stuff */
@@ -65,7 +64,6 @@
   };
 
 #endif /* ENABLE_LLVM */
-
 /* LLVM LOCAL end */
 
 /* Define the specific costs for a given cpu */
@@ -306,12 +304,12 @@
    it's analogous to similar code for Mach-O on PowerPC.  darwin.h
    redefines this to 1.  */
 #define TARGET_MACHO 0
-
 /* LLVM LOCAL begin mainline */
+#ifdef ENABLE_LLVM
 /* Likewise, for the Windows 64-bit ABI.  */
 #define TARGET_64BIT_MS_ABI 0
+#endif
 /* LLVM LOCAL end mainline */
-
 /* APPLE LOCAL begin mach-o cleanup */
 #define MACHOPIC_INDIRECT 0
 #define MACHOPIC_PURE 0
@@ -386,6 +384,14 @@
 #endif
 #endif
 
+/* LLVM LOCAL begin PR879 workaround */
+#ifdef ENABLE_LLVM
+#define LLVM_CPP_BUILTINS builtin_define("__NO_MATH_INLINES");
+#else
+#define LLVM_CPP_BUILTINS
+#endif
+/* LLVM LOCAL end PR879 workaround */
+
 /* Target CPU builtins.  */
 #define TARGET_CPU_CPP_BUILTINS()				\
   do								\
@@ -555,9 +561,9 @@
 	  builtin_define ("__core2__");				\
 	}							\
       /* APPLE LOCAL end mainline */				\
-      /* LLVM LOCAL begin PR879 workaround */             \
-      builtin_define("__NO_MATH_INLINES");                      \
-     /* LLVM LOCAL end PR879 workaround */                \
+      /* LLVM LOCAL begin PR879 workaround */                   \
+      LLVM_CPP_BUILTINS                                         \
+      /* LLVM LOCAL end PR879 workaround */                     \
     }								\
   while (0)
 
@@ -1113,10 +1119,12 @@
 #define REAL_PIC_OFFSET_TABLE_REGNUM  3
 
 #define PIC_OFFSET_TABLE_REGNUM				\
+  /* APPLE LOCAL begin 5695218 */			\
   ((TARGET_64BIT && ix86_cmodel == CM_SMALL_PIC)	\
-   || !flag_pic ? INVALID_REGNUM			\
-   : reload_completed ? REGNO (pic_offset_table_rtx)	\
-   : REAL_PIC_OFFSET_TABLE_REGNUM)
+  || !flag_pic ? INVALID_REGNUM				\
+   : reload_completed && pic_offset_table_rtx ? REGNO (pic_offset_table_rtx) \
+   : REAL_PIC_OFFSET_TABLE_REGNUM)					\
+  /* APPLE LOCAL end 5695218 */
 
 #define GOT_SYMBOL_NAME "_GLOBAL_OFFSET_TABLE_"
 
@@ -2514,6 +2522,8 @@
   { "adc", 2, "ir,m" },		\
   { "add", 1, "+rm,r" },	\
   { "add", 2, "ir,m" },		\
+  { "addpd", 1, "+x"},		\
+  { "addpd", 2, "xm"},		\
   { "addps", 1, "+x"},		\
   { "addps", 2, "xm"},		\
   { "addsd", 1, "+x"},		\
@@ -3271,7 +3281,7 @@
 	((SYMBOL_REF_FLAGS (X) & SYMBOL_FLAG_FAR_ADDR) != 0)
 
 /* LLVM LOCAL begin */
-
+#ifdef ENABLE_LLVM
 /* Codes for all the SSE/MMX builtins.  */
 enum ix86_builtins
 {
@@ -3893,6 +3903,7 @@
 #define LLVM_TARGET_INTRINSIC_LOWER(EXP, BUILTIN_CODE, DESTLOC, RESULT,       \
                                     DESTTY, OPS)                              \
         TargetIntrinsicLower(EXP, BUILTIN_CODE, DESTLOC, RESULT, DESTTY, OPS);
+#endif /* ENABLE_LLVM */
 /* LLVM LOCAL end */
 
 /*

Modified: llvm-gcc-4.2/trunk/gcc/config/rs6000/darwin.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/rs6000/darwin.h?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/rs6000/darwin.h (original)
+++ llvm-gcc-4.2/trunk/gcc/config/rs6000/darwin.h Tue Jul 29 17:09:10 2008
@@ -79,9 +79,11 @@
 #define C_COMMON_OVERRIDE_OPTIONS do {					\
   /* On powerpc, __cxa_get_exception_ptr is available starting in the	\
      10.4.6 libstdc++.dylib.  */					\
-/* APPLE LOCAL begin mainline 2007-02-20 5005743 */ \
-  if (strverscmp (darwin_macosx_version_min, "10.4.6") < 0		\
-/* APPLE LOCAL end mainline 2007-02-20 5005743 */ \
+/* APPLE LOCAL begin ARM 5683689 */					\
+  if (!darwin_iphoneos_version_min					\
+      && (!darwin_macosx_version_min					\
+	  || strverscmp (darwin_macosx_version_min, "10.4.6") < 0)	\
+/* APPLE LOCAL end 5683689 */						\
       && flag_use_cxa_get_exception_ptr == 2)				\
     flag_use_cxa_get_exception_ptr = 0;					\
   /* APPLE LOCAL begin 5731065 */					\
@@ -98,6 +100,7 @@
 
 #define RS6000_DEFAULT_LONG_DOUBLE_SIZE 128
 
+
 /* We want -fPIC by default, unless we're using -static to compile for
    the kernel or some such.  */
 
@@ -108,8 +111,8 @@
   %<msse  %<msse2 %<msse3 %<march=pentium4 %<mcpu=pentium4 \
   %{g: %{!fno-eliminate-unused-debug-symbols: -feliminate-unused-debug-symbols }} \
   %{static: %{Zdynamic: %e conflicting code gen style switches are used}}\
-  "/* APPLE LOCAL mainline 2007-02-20 5005743 */" \
-  %{!mmacosx-version-min=*:-mmacosx-version-min=%(darwin_minversion)} \
+  "/* APPLE LOCAL ARM 5683689 */"\
+  %{!mmacosx-version-min=*: %{!miphoneos-version-min=*: %(darwin_cc1_minversion)}} \
   "/* APPLE LOCAL -fast or -fastf or -fastcp */"\
   %{!mkernel:%{!static:%{!fast:%{!fastf:%{!fastcp:%{!mdynamic-no-pic:-fPIC}}}}}}"
 
@@ -135,8 +138,11 @@
    :ppc}}"
 
 /* crt2.o is at least partially required for 10.3.x and earlier.  */
+/* APPLE LOCAL begin ARM 5683689 */
 #define DARWIN_CRT2_SPEC \
-  "%{!m64:%:version-compare(!> 10.4 mmacosx-version-min= crt2.o%s)}"
+  "%{!m64: %{mmacosx-version-min=*:		\
+	%:version-compare(!> 10.4 mmacosx-version-min= crt2.o%s)}}"
+/* APPLE LOCAL end ARM 5683689 */
 
 /* APPLE LOCAL begin mainline 2007-03-13 5005743 5040758 */ \
 /* Determine a minimum version based on compiler options.  */
@@ -151,16 +157,33 @@
      :10.1}"
 
 /* APPLE LOCAL end mainline 2007-03-13 5040758 5005743 */
+/* APPLE LOCAL begin ARM 5683689 */
+/* Default cc1 option for specifying minimum version number.  */
+#define DARWIN_CC1_MINVERSION_SPEC "-mmacosx-version-min=%(darwin_minversion)"
+
+/* Default ld option for specifying minimum version number.  */
+#define DARWIN_LD_MINVERSION_SPEC "-macosx_version_min %(darwin_minversion)"
+
+/* Use macosx version numbers by default.  */
+#define DARWIN_DEFAULT_VERSION_TYPE  DARWIN_VERSION_MACOSX
+/* APPLE LOCAL end ARM 5683689 */
+
+/* APPLE LOCAL ARM 5681645 */
+#define DARWIN_IPHONEOS_LIBGCC_SPEC "-lgcc_s.10.5 -lgcc"
+
 /* APPLE LOCAL begin 5342595 */
 /* LLVM LOCAL begin */
+#ifdef ENABLE_LLVM
 #ifdef HAVE_DSYMUTIL
 #define DARWIN_DSYMUTIL_SPEC	\
   "%{g*:%{!gstabs*:%{!g0: dsymutil %{o*:%*}%{!o:a.out}}}}"
 #else
 #define DARWIN_DSYMUTIL_SPEC ""
 #endif
+#endif
 /* LLVM LOCAL end */
 /* APPLE LOCAL end 5342595 */
+
 /* APPLE LOCAL begin mainline */
 #undef SUBTARGET_EXTRA_SPECS
 #define SUBTARGET_EXTRA_SPECS			\
@@ -545,9 +568,10 @@
     (flag_next_runtime			\
      && flag_objc_direct_dispatch != 0	\
      && !TARGET_64BIT			\
-/* APPLE LOCAL begin mainline 2007-02-20 5005743 */ \
-     && (strverscmp (darwin_macosx_version_min, "10.4") >= 0 \
-/* APPLE LOCAL end mainline 2007-02-20 5005743 */ \
+/* APPLE LOCAL begin ARM 5683689 */				\
+     && (darwin_iphoneos_version_min				\
+         || strverscmp (darwin_macosx_version_min, "10.4") >= 0	\
+/* APPLE LOCAL end ARM 5683689 */ 				\
          || flag_objc_direct_dispatch == 1))
 
 /* This is the reserved direct dispatch address for Objective-C.  */
@@ -563,15 +587,18 @@
 #undef TARGET_C99_FUNCTIONS
 #define TARGET_C99_FUNCTIONS					\
   (TARGET_64BIT							\
-/* APPLE LOCAL begin mainline 2007-02-20 5005743 */ \
+   /* APPLE LOCAL begin ARM 5683689 */				\
+   || darwin_iphoneos_version_min				\
    || strverscmp (darwin_macosx_version_min, "10.3") >= 0)
-
-/* APPLE LOCAL end mainline 2007-02-20 5005743 */ \
+   /* APPLE LOCAL end ARM 5683689 */
 
 /* APPLE LOCAL begin track initialization status 4964532  */
+/* APPLE LOCAL begin ARM 5683689 */
 #undef  TARGET_DWARF_UNINIT_VARS
-#define TARGET_DWARF_UNINIT_VARS   \
-  (strverscmp (darwin_macosx_version_min, "10.4") >= 0)
+#define TARGET_DWARF_UNINIT_VARS	\
+  (darwin_iphoneos_version_min 		\
+   || (strverscmp (darwin_macosx_version_min, "10.4") >= 0))
+/* APPLE LOCAL end ARM 5683689 */
 /* APPLE LOCAL end track initialization status 4964532  */
 
 /* When generating kernel code or kexts, we don't use Altivec by

Modified: llvm-gcc-4.2/trunk/gcc/config/rs6000/rs6000.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/rs6000/rs6000.h?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/rs6000/rs6000.h (original)
+++ llvm-gcc-4.2/trunk/gcc/config/rs6000/rs6000.h Tue Jul 29 17:09:10 2008
@@ -216,7 +216,9 @@
 };
 
 /* LLVM LOCAL begin */
+#ifdef ENABLE_LLVM
 extern const char *rs6000_cpu_target;
+#endif
 /* LLVM LOCAL end */
 
 extern enum processor_type rs6000_cpu;
@@ -638,7 +640,7 @@
    We must map them here to avoid huge unwinder tables mostly consisting
    of unused space.  */
 /* APPLE LOCAL begin 3399553 */
-#define DWARF_REG_TO_UNWIND_COLUMN(r)  \
+#define DWARF_REG_TO_UNWIND_COLUMN(r)	\
   ((r) > 1200 ? ((r) - 1200 + LAST_PHYSICAL_REGISTER) : (r))
 /* APPLE LOCAL end 3399553 */
 
@@ -1212,9 +1214,13 @@
 
    On the RS/6000, we grow upwards, from the area after the outgoing
    arguments.  */
-/* LLVM LOCAL begin stack protector */
+/* LLVM LOCAL - begin stack protector */
+#ifdef ENABLE_LLVM
 #define FRAME_GROWS_DOWNWARD 0
-/* LLVM LOCAL end stack protector */
+#else
+#define FRAME_GROWS_DOWNWARD (flag_stack_protect != 0)
+#endif
+/* LLVM LOCAL - end stack protector */
 
 
 /* Size of the outgoing register save area */
@@ -3450,6 +3456,7 @@
 /* APPLE LOCAL end CW asm blocks */
 
 /* LLVM LOCAL begin */
+#ifdef ENABLE_LLVM
 #define LLVM_TARGET_INTRINSIC_PREFIX "ppc"
 
 /* Turn -march=xx into a CPU type.
@@ -3511,7 +3518,7 @@
   llvm_rs6000_should_return_vector_as_shadow((X), (isBuiltin))
 
 #endif /* LLVM_ABI_H */
-
+#endif /* ENABLE_LLVM */
 /* LLVM LOCAL end */
 
 enum rs6000_builtin_type_index

Modified: llvm-gcc-4.2/trunk/gcc/convert.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/convert.h?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/convert.h (original)
+++ llvm-gcc-4.2/trunk/gcc/convert.h Tue Jul 29 17:09:10 2008
@@ -26,5 +26,7 @@
 extern tree convert_to_real (tree, tree);
 extern tree convert_to_complex (tree, tree);
 extern tree convert_to_vector (tree, tree);
+/* APPLE LOCAL blocks */
+extern tree convert_to_block_pointer (tree, tree);
 
 #endif /* GCC_CONVERT_H */

Modified: llvm-gcc-4.2/trunk/gcc/cp/cp-objcp-common.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/cp/cp-objcp-common.h?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/cp/cp-objcp-common.h (original)
+++ llvm-gcc-4.2/trunk/gcc/cp/cp-objcp-common.h Tue Jul 29 17:09:10 2008
@@ -149,10 +149,6 @@
 #define LANG_HOOKS_TYPE_PROMOTES_TO cxx_type_promotes_to
 #undef LANG_HOOKS_REGISTER_BUILTIN_TYPE
 #define LANG_HOOKS_REGISTER_BUILTIN_TYPE c_register_builtin_type
-/* APPLE LOCAL begin define this sensibly in all languages */
-#undef LANG_HOOKS_FLAG_NO_BUILTIN
-#define LANG_HOOKS_FLAG_NO_BUILTIN c_flag_no_builtin
-/* APPLE LOCAL end define this sensibly in all languages */
 #undef LANG_HOOKS_TO_TARGET_CHARSET
 #define LANG_HOOKS_TO_TARGET_CHARSET c_common_to_target_charset
 #undef LANG_HOOKS_GIMPLIFY_EXPR

Modified: llvm-gcc-4.2/trunk/gcc/cp/cp-tree.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/cp/cp-tree.h?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/cp/cp-tree.h (original)
+++ llvm-gcc-4.2/trunk/gcc/cp/cp-tree.h Tue Jul 29 17:09:10 2008
@@ -1066,6 +1066,12 @@
   unsigned has_complex_assign_ref : 1;
   unsigned non_aggregate : 1;
 
+  /* APPLE LOCAL begin omit calls to empty destructors 5559195 */
+  unsigned has_nontrivial_destructor_body : 1;
+  unsigned destructor_nontrivial_because_of_base : 1;
+  unsigned destructor_triviality_final : 1;
+  /* APPLE LOCAL end omit calls to empty destructors 5559195 */
+
   /* When adding a flag here, consider whether or not it ought to
      apply to a template instance if it applies to the template.  If
      so, make sure to copy it in instantiate_class_template!  */
@@ -1073,7 +1079,9 @@
   /* There are some bits left to fill out a 32-bit word.  Keep track
      of this by updating the size of this bitfield whenever you add or
      remove a flag.  */
-  unsigned dummy : 12;
+  /* APPLE LOCAL begin omit calls to empty destructors 5559195 */
+  unsigned dummy : 10;
+  /* APPLE LOCAL end omit calls to empty destructors 5559195 */
 
   tree primary_base;
   VEC(tree_pair_s,gc) *vcall_indices;
@@ -2453,6 +2461,8 @@
    || TREE_CODE (TYPE) == ENUMERAL_TYPE		\
    || ARITHMETIC_TYPE_P (TYPE)			\
    || TYPE_PTR_P (TYPE)				\
+   /* APPLE LOCAL blocks 6040305 */		\
+   || TREE_CODE (TYPE) == BLOCK_POINTER_TYPE	\
    || TYPE_PTRMEMFUNC_P (TYPE))
 
 /* [dcl.init.aggr]
@@ -2534,6 +2544,20 @@
 #define TYPE_HAS_NONTRIVIAL_DESTRUCTOR(NODE) \
   (TYPE_LANG_FLAG_4 (NODE))
 
+/* APPLE LOCAL begin omit calls to empty destructors 5559195 */
+/* One if the body of the destructor of class type NODE has been shown to do
+   nothing, else zero. */
+#define CLASSTYPE_HAS_NONTRIVIAL_DESTRUCTOR_BODY(NODE) (LANG_TYPE_CLASS_CHECK (NODE)->has_nontrivial_destructor_body)
+
+/* One if destructor of this type must be called by its base classes because
+   one of its base classes' destructors must be called. */
+#define CLASSTYPE_DESTRUCTOR_NONTRIVIAL_BECAUSE_OF_BASE(NODE) (LANG_TYPE_CLASS_CHECK (NODE)->destructor_nontrivial_because_of_base)
+
+/* One if the values of CLASSTYPE_DESTRUCTOR_NONTRIVIAL_BECAUSE_OF_BASE
+   and CLASSTYPE_HAS_NONTRIVIAL_DESTRUCTOR_BODY are final. */
+#define CLASSTYPE_DESTRUCTOR_TRIVIALITY_FINAL(NODE) (LANG_TYPE_CLASS_CHECK (NODE)->destructor_triviality_final)
+/* APPLE LOCAL end omit calls to empty destructors 5559195 */
+
 /* Nonzero for class type means that copy initialization of this type can use
    a bitwise copy.  */
 #define TYPE_HAS_TRIVIAL_INIT_REF(NODE) \
@@ -3726,6 +3750,8 @@
   cdk_pointer,
   cdk_reference,
   cdk_ptrmem,
+  /* APPLE LOCAL blocks 6040305 (ch) */
+  cdk_block_pointer,
   cdk_error
 } cp_declarator_kind;
 
@@ -3794,6 +3820,13 @@
       /* For cdk_ptrmem, the class type containing the member.  */
       tree class_type;
     } pointer;
+    /* APPLE LOCAL begin blocks 6040305 (ch) */
+    /* For cdk_block_pointer.  */
+    struct {
+      /* The cv-qualifiers for the pointer.  */
+      cp_cv_quals qualifiers;
+    } block_pointer;
+    /* APPLE LOCAL end blocks 6040305 (ch) */
   } u;
 };
 
@@ -4122,7 +4155,6 @@
 extern void yyhook				(int);
 extern bool cxx_init				(void);
 extern void cxx_finish				(void);
-extern bool in_main_input_context		(void);
 
 /* in method.c */
 extern void init_method				(void);
@@ -4205,7 +4237,6 @@
 extern bool reregister_specialization		(tree, tree, tree);
 extern tree fold_non_dependent_expr		(tree);
 extern bool explicit_class_specialization_p     (tree);
-extern tree outermost_tinst_level		(void);
 
 /* in repo.c */
 extern void init_repo				(void);
@@ -4630,6 +4661,8 @@
 /* APPLE LOCAL end radar 2848255 */
 /* APPLE LOCAL radar 5355344 */
 extern bool cp_objc_protocol_id_list (tree);
+/* APPLE LOCAL radar 6029624 */
+extern bool objcp_reference_related_p (tree, tree);
 
 /* -- end of C++ */
 
@@ -4650,4 +4683,9 @@
 /* APPLE LOCAL radar 5741070  */
 extern tree c_return_interface_record_type (tree);
 
+/* APPLE LOCAL begin block 6040305 (cg) */
+extern cp_declarator* make_block_pointer_declarator (tree, cp_cv_quals,
+						     cp_declarator *);
+/* APPLE LOCAL end block 6040305 (cg) */
+
 #endif /* ! GCC_CP_TREE_H */

Modified: llvm-gcc-4.2/trunk/gcc/cp/decl.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/cp/decl.h?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/cp/decl.h (original)
+++ llvm-gcc-4.2/trunk/gcc/cp/decl.h Tue Jul 29 17:09:10 2008
@@ -36,3 +36,6 @@
 			    enum decl_context, int, tree*);
 /* APPLE LOCAL radar 4721858 */
 extern void emit_instantiate_pending_templates (location_t *);
+/* APPLE LOCAL blocks 6040305 (ce) */
+/* LLVM FIXME: Uncomment!!! */
+/*extern tree grokparms (cp_parameter_declarator *first_parm, tree *parms); */

Modified: llvm-gcc-4.2/trunk/gcc/cp/name-lookup.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/cp/name-lookup.h?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/cp/name-lookup.h (original)
+++ llvm-gcc-4.2/trunk/gcc/cp/name-lookup.h Tue Jul 29 17:09:10 2008
@@ -76,6 +76,8 @@
   cxx_scope *scope;
   unsigned value_is_inherited : 1;
   unsigned is_local : 1;
+  /* APPLE LOCAL blocks 6040305 (ch) */
+  unsigned declared_in_block : 1;
 };
 
 /* Datatype used to temporarily save C++ bindings (for implicit
@@ -311,7 +313,9 @@
 extern void push_binding_level (struct cp_binding_level *);
 
 extern void push_namespace (tree);
-extern void push_namespace_with_attribs (tree, tree);
+/* APPLE LOCAL visibility 5805832 */
+/* LLVM FIXME: Uncomment !!! */
+/* extern bool push_namespace_with_attribs (tree, tree); */
 extern void pop_namespace (void);
 extern void push_nested_namespace (tree);
 extern void pop_nested_namespace (tree);

Modified: llvm-gcc-4.2/trunk/gcc/defaults.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/defaults.h?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/defaults.h (original)
+++ llvm-gcc-4.2/trunk/gcc/defaults.h Tue Jul 29 17:09:10 2008
@@ -920,4 +920,22 @@
 #define HARD_REGNO_NREGS_WITH_PADDING(REGNO, MODE) -1
 #endif
 
+/* APPLE LOCAL begin ARM compact switch tables */
+/* Extra cases to add to switch tables.  */
+#ifndef TARGET_EXTRA_CASES
+#define TARGET_EXTRA_CASES 0
+#endif
+/* APPLE LOCAL end ARM compact switch tables */
+
+/* APPLE LOCAL begin 5946347 ms_struct support */
+/* On most machines, the default type alignment is sufficient */
+#ifndef TARGET_FIELD_MS_STRUCT_ALIGN
+#define TARGET_FIELD_MS_STRUCT_ALIGN(FIELD) TYPE_ALIGN (TREE_TYPE (FIELD))
+#endif
+#ifndef BIGGEST_MS_STRUCT_ALIGNMENT
+#define BIGGEST_MS_STRUCT_ALIGNMENT BIGGEST_ALIGNMENT
+#endif
+
+/* APPLE LOCAL end 5946347 ms_struct support */
+
 #endif  /* ! GCC_DEFAULTS_H */

Modified: llvm-gcc-4.2/trunk/gcc/dwarf2.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/dwarf2.h?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/dwarf2.h (original)
+++ llvm-gcc-4.2/trunk/gcc/dwarf2.h Tue Jul 29 17:09:10 2008
@@ -389,9 +389,14 @@
     /* Apple extensions.  */
     /* APPLE LOCAL begin radar 2338865 optimization notification  */
     DW_AT_APPLE_optimized = 0x3fe1,
-    DW_AT_APPLE_flags     = 0x3fe2
+    DW_AT_APPLE_flags     = 0x3fe2,
     /* APPLE LOCAL end radar 2338865 optimization notification  */
     /* APPLE LOCAL end option verifier 4957887 */
+    /* APPLE LOCAL differentiate between arm & thumb.  */
+    /* APPLE LOCAL begin radar 5811943 - Fix type of pointers to blocks  */
+    DW_AT_APPLE_isa      = 0x3fe3,
+    DW_AT_APPLE_block    = 0x3fe4
+    /* APPLE LOCAL end radar 5811943 - Fix type of pointers to blocks  */
   };
 
 #define DW_AT_lo_user	0x2000	/* Implementation-defined range start.  */

Modified: llvm-gcc-4.2/trunk/gcc/except.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/except.h?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/except.h (original)
+++ llvm-gcc-4.2/trunk/gcc/except.h Tue Jul 29 17:09:10 2008
@@ -118,11 +118,13 @@
 extern bool verify_eh_edges (tree);
 
 /* LLVM local begin */
+#ifdef ENABLE_LLVM
 extern int classify_eh_handler (struct eh_region *);
 extern struct eh_region *get_eh_next_catch (struct eh_region *);
 extern struct eh_region *get_eh_region (unsigned);
 extern tree get_eh_type_list (struct eh_region *);
 extern tree lookup_type_for_runtime (tree);
+#endif
 /* LLVM local end */
 
 /* If non-NULL, this is a function that returns an expression to be
@@ -140,13 +142,14 @@
 extern tree (*lang_eh_runtime_type) (tree);
 
 /* LLVM local begin */
+#ifdef ENABLE_LLVM
 /* If non-NULL, this function returns a type that covers all others,
    a "catch-all" type.  It may also return NULL_TREE, indicating that
    the null runtime object catches all types, as in C++.  */
 extern tree (*lang_eh_catch_all) (void);
+#endif
 /* LLVM local end */
 
-
 /* Just because the user configured --with-sjlj-exceptions=no doesn't
    mean that we can use call frame exceptions.  Detect that the target
    has appropriate support.  */

Modified: llvm-gcc-4.2/trunk/gcc/flags.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/flags.h?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/flags.h (original)
+++ llvm-gcc-4.2/trunk/gcc/flags.h Tue Jul 29 17:09:10 2008
@@ -238,9 +238,11 @@
 extern int align_labels_max_skip;
 extern int align_functions_log;
 
-/* Like align_functions_log above, but used by front-ends to force the
-   minimum function alignment.  Zero means no alignment is forced.  */
+/* APPLE LOCAL begin mainline aligned functions 5933878 */
+/* LLVM FIXME: Remove next line!! */
 extern int force_align_functions_log;
+/* Removed extern force_align_functions_log.  */
+/* APPLE LOCAL end mainline aligned functions 5933878 */
 
 /* Nonzero if we dump in VCG format, not plain text.  */
 extern int dump_for_graph;
@@ -388,7 +390,10 @@
 /* Whether to emit an overflow warning whose code is C.  */
 #define issue_strict_overflow_warning(c) (warn_strict_overflow >= (int) (c))
 
-/* LLVM LOCAL */
+/* LLVM LOCAL begin */
+#ifdef ENABLE_LLVM
 extern int flag_llvm_pch_read;
+#endif
+/* LLVM LOCAL end */
 
 #endif /* ! GCC_FLAGS_H */

Modified: llvm-gcc-4.2/trunk/gcc/function.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/function.h?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/function.h (original)
+++ llvm-gcc-4.2/trunk/gcc/function.h Tue Jul 29 17:09:10 2008
@@ -460,6 +460,10 @@
   unsigned int uses_vector : 1;
   /* APPLE LOCAL end 3837835  */
 
+  /* APPLE LOCAL begin ARM compact switch tables */
+  unsigned int needs_4byte_alignment : 1;
+  /* APPLE LOCAL end ARM compact switch tables */
+
   /* APPLE LOCAL begin ARM reliable backtraces */
   unsigned int calls_builtin_ret_addr : 1;
   unsigned int calls_builtin_frame_addr : 1;
@@ -605,4 +609,6 @@
 
 extern void used_types_insert (tree);
 
+/* APPLE LOCAL radar 5732232 - blocks */
+extern struct block_sema_info *cur_block;
 #endif  /* GCC_FUNCTION_H */

Modified: llvm-gcc-4.2/trunk/gcc/gcc.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/gcc.h?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/gcc.h (original)
+++ llvm-gcc-4.2/trunk/gcc/gcc.h Tue Jul 29 17:09:10 2008
@@ -52,6 +52,8 @@
   || !strcmp (STR, "iwithprefix") || !strcmp (STR, "iwithprefixbefore") \
   || !strcmp (STR, "iquote") || !strcmp (STR, "isystem") \
   || !strcmp (STR, "isysroot") \
+  /* APPLE LOCAL ARM iwithsysroot 4917039 */ \
+  || !strcmp (STR, "iwithsysroot") \
   || !strcmp (STR, "-param") || !strcmp (STR, "specs") \
   || !strcmp (STR, "MF") || !strcmp (STR, "MT") || !strcmp (STR, "MQ"))
 

Modified: llvm-gcc-4.2/trunk/gcc/ginclude/tgmath.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/ginclude/tgmath.h?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/ginclude/tgmath.h (original)
+++ llvm-gcc-4.2/trunk/gcc/ginclude/tgmath.h Tue Jul 29 17:09:10 2008
@@ -83,25 +83,32 @@
 #define __TGMATH_CPLX(z,R,C)                                                  \
   __builtin_choose_expr (__tg_cplx(z),                                        \
                          __tg_choose (__real__(z), C##f(z), (C)(z), C##l(z)), \
-                         __tg_choose (z, R##f(z), (R)(z), R##l(z)))
+			 /* APPLE LOCAL shorten-64-to-32 4604239 */	      \
+                         __tg_choose (z, R##f((float)(z)), (R)(z), R##l(z)))
 
 #define __TGMATH_CPLX_2(z1,z2,R,C)                                             \
   __builtin_choose_expr (__tg_cplx(z1) || __tg_cplx(z2),                       \
                          __tg_choose_2 (__real__(z1), __real__(z2),            \
                                         C##f(z1,z2), (C)(z1,z2), C##l(z1,z2)), \
                          __tg_choose_2 (z1, z2,                                \
-                                        R##f(z1,z2), (R)(z1,z2), R##l(z1,z2)))
+			 /* APPLE LOCAL shorten-64-to-32 5909621 */	       \
+                                        R##f((float)(z1),(float)(z2)), (R)(z1,z2), R##l(z1,z2)))
 
 #define __TGMATH_REAL(x,R) \
-  __tg_choose (x, R##f(x), (R)(x), R##l(x))
+  /* APPLE LOCAL shorten-64-to-32 5909621 */	      \
+  __tg_choose (x, R##f((float)(x)), (R)(x), R##l(x))
 #define __TGMATH_REAL_2(x,y,R) \
-  __tg_choose_2 (x, y, R##f(x,y), (R)(x,y), R##l(x,y))
+  /* APPLE LOCAL shorten-64-to-32 4604239 */	      \
+  __tg_choose_2 (x, y, R##f((float)(x),(float)(y)), (R)(x,y), R##l(x,y))
 #define __TGMATH_REAL_3(x,y,z,R) \
-  __tg_choose_3 (x, y, z, R##f(x,y,z), (R)(x,y,z), R##l(x,y,z))
+  /* APPLE LOCAL shorten-64-to-32 5909621 */	       \
+  __tg_choose_3 (x, y, z, R##f((float)(x),(float)(y),(float)(z)), (R)(x,y,z), R##l(x,y,z))
 #define __TGMATH_REAL_1_2(x,y,R) \
-  __tg_choose (x, R##f(x,y), (R)(x,y), R##l(x,y))
+  /* APPLE LOCAL shorten-64-to-32 5909621 */	       \
+  __tg_choose (x, R##f((float)(x),y), (R)(x,y), R##l(x,y))
 #define __TGMATH_REAL_2_3(x,y,z,R) \
-  __tg_choose_2 (x, y, R##f(x,y,z), (R)(x,y,z), R##l(x,y,z))
+  /* APPLE LOCAL shorten-64-to-32 5909621 */	       \
+  __tg_choose_2 (x, y, R##f((float)(x),(float)(y),z), (R)(x,y,z), R##l(x,y,z))
 #define __TGMATH_CPLX_ONLY(z,C) \
   __tg_choose (__real__(z), C##f(z), (C)(z), C##l(z))
 

Modified: llvm-gcc-4.2/trunk/gcc/gsyslimits.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/gsyslimits.h?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/gsyslimits.h (original)
+++ llvm-gcc-4.2/trunk/gcc/gsyslimits.h Tue Jul 29 17:09:10 2008
@@ -4,5 +4,5 @@
    instead of this text.  */
 
 #define _GCC_NEXT_LIMITS_H		/* tell gcc's limits.h to recurse */
-#include_next <limits.h>
-#undef _GCC_NEXT_LIMITS_H
+/* APPLE LOCAL begin 4401222 */
+/* APPLE LOCAL end 4401222 */

Modified: llvm-gcc-4.2/trunk/gcc/gthr-win32.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/gthr-win32.h?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/gthr-win32.h (original)
+++ llvm-gcc-4.2/trunk/gcc/gthr-win32.h Tue Jul 29 17:09:10 2008
@@ -561,10 +561,13 @@
 /* Windows32 thread local keys don't support destructors; this leads to
    leaks, especially in threaded applications making extensive use of
    C++ EH. Mingw uses a thread-support DLL to work-around this problem.  */
-static inline int
-__gthread_key_create (__gthread_key_t *key,
 /* LLVM LOCAL begin mainline */
-		      void (*dtor) (void *) __attribute__((unused)))
+static inline int
+__gthread_key_create (__gthread_key_t *key, void (*dtor) (void *)
+#ifdef ENABLE_LLVM
+                      __attribute__((unused))
+#endif
+)
 /* LLVM LOCAL end mainline */
 {
   int status = 0;

Modified: llvm-gcc-4.2/trunk/gcc/hard-reg-set.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/hard-reg-set.h?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/hard-reg-set.h (original)
+++ llvm-gcc-4.2/trunk/gcc/hard-reg-set.h Tue Jul 29 17:09:10 2008
@@ -456,6 +456,18 @@
 extern int inv_reg_alloc_order[FIRST_PSEUDO_REGISTER];
 #endif
 
+/* APPLE LOCAL begin 5831562 add DIMODE_REG_ALLOC_ORDER */
+#ifdef DIMODE_REG_ALLOC_ORDER
+/* Table of register numbers in the order in which to try to use them.  */
+
+extern int dimode_reg_alloc_order[FIRST_PSEUDO_REGISTER];
+
+/* The inverse of dimode_reg_alloc_order.  */
+
+extern int dimode_inv_reg_alloc_order[FIRST_PSEUDO_REGISTER];
+#endif
+/* APPLE LOCAL end 5831562 add DIMODE_REG_ALLOC_ORDER */
+
 /* For each reg class, a HARD_REG_SET saying which registers are in it.  */
 
 extern HARD_REG_SET reg_class_contents[N_REG_CLASSES];

Modified: llvm-gcc-4.2/trunk/gcc/langhooks-def.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/langhooks-def.h?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/langhooks-def.h (original)
+++ llvm-gcc-4.2/trunk/gcc/langhooks-def.h Tue Jul 29 17:09:10 2008
@@ -135,8 +135,6 @@
 #define LANG_HOOKS_TREE_SIZE		lhd_tree_size
 #define LANG_HOOKS_TYPES_COMPATIBLE_P	lhd_types_compatible_p
 #define LANG_HOOKS_BUILTIN_FUNCTION	builtin_function
-/* APPLE LOCAL define this sensibly for all languages */
-#define LANG_HOOKS_FLAG_NO_BUILTIN      hook_bool_void_false
 #define LANG_HOOKS_EXPR_TO_DECL		lhd_expr_to_decl
 #define LANG_HOOKS_TO_TARGET_CHARSET	lhd_to_target_charset
 #define LANG_HOOKS_INIT_TS		lhd_do_nothing
@@ -339,8 +337,6 @@
   LANG_HOOKS_BUILTIN_FUNCTION, \
   LANG_HOOKS_INIT_TS,          \
   LANG_HOOKS_EXPR_TO_DECL, \
-/* APPLE LOCAL define this sensibly for all languages */ \
-  LANG_HOOKS_FLAG_NO_BUILTIN, \
 }
 
 #endif /* GCC_LANG_HOOKS_DEF_H */

Modified: llvm-gcc-4.2/trunk/gcc/langhooks.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/langhooks.h?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/langhooks.h (original)
+++ llvm-gcc-4.2/trunk/gcc/langhooks.h Tue Jul 29 17:09:10 2008
@@ -468,9 +468,6 @@
      TREE_SIDE_EFFECTS need updating.  */
   tree (*expr_to_decl) (tree expr, bool *tc, bool *ti, bool *se);
 
-  /* APPLE LOCAL define this sensibly for all languages */
-  bool (*flag_no_builtin)(void);
-
   /* Whenever you add entries here, make sure you adjust langhooks-def.h
      and langhooks.c accordingly.  */
 };

Modified: llvm-gcc-4.2/trunk/gcc/libfuncs.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/libfuncs.h?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/libfuncs.h (original)
+++ llvm-gcc-4.2/trunk/gcc/libfuncs.h Tue Jul 29 17:09:10 2008
@@ -20,8 +20,11 @@
 
 #ifndef GCC_LIBFUNCS_H
 #define GCC_LIBFUNCS_H
-/* LOCAL LLVM */
+/* LOCAL LLVM begin */
+#ifdef ENABLE_LLVM
 #include "tree.h"
+#endif
+/* LOCAL LLVM end */
 
 /* Enumeration of indexes into libfunc_table.  */
 enum libfunc_index
@@ -52,9 +55,11 @@
    implicitly and not via optabs.  */
 extern GTY(()) rtx libfunc_table[LTI_MAX];
 /* LLVM LOCAL begin */
+#ifdef ENABLE_LLVM
 /* FUNCTION_DECL nodes for the library functions that are called
    implicitly and not via optabs.  */
 extern GTY(()) tree llvm_libfunc_table[LTI_MAX];
+#endif
 /* LLVM LOCAL end */
 
 /* Accessor macros for libfunc_table.  */

Modified: llvm-gcc-4.2/trunk/gcc/limitx.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/limitx.h?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/limitx.h (original)
+++ llvm-gcc-4.2/trunk/gcc/limitx.h Tue Jul 29 17:09:10 2008
@@ -1,12 +1,13 @@
 /* This administrivia gets added to the beginning of limits.h
    if the system has its own version of limits.h.  */
 
-/* We use _GCC_LIMITS_H_ because we want this not to match
-   any macros that the system's limits.h uses for its own purposes.  */
-#ifndef _GCC_LIMITS_H_  /* Terminated in limity.h.  */
-#define _GCC_LIMITS_H_
-
+/* APPLE LOCAL begin 4401222 */
 #ifndef _LIBC_LIMITS_H_
 /* Use "..." so that we find syslimits.h only in this same directory.  */
 #include "syslimits.h"
 #endif
+#ifdef _GCC_NEXT_LIMITS_H
+#include_next <limits.h>
+#undef _GCC_NEXT_LIMITS_H
+#endif
+/* APPLE LOCAL end 4401222 */

Modified: llvm-gcc-4.2/trunk/gcc/limity.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/limity.h?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/limity.h (original)
+++ llvm-gcc-4.2/trunk/gcc/limity.h Tue Jul 29 17:09:10 2008
@@ -1,10 +1,2 @@
-/* This administrivia gets added to the end of limits.h
-   if the system has its own version of limits.h.  */
-
-#else /* not _GCC_LIMITS_H_ */
-
-#ifdef _GCC_NEXT_LIMITS_H
-#include_next <limits.h>		/* recurse down to the real one */
-#endif
-
-#endif /* not _GCC_LIMITS_H_ */
+/* APPLE LOCAL begin 4401222 */
+/* APPLE LOCAL end 4401222 */

Modified: llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp (original)
+++ llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp Tue Jul 29 17:09:10 2008
@@ -70,6 +70,7 @@
 #include "tree-inline.h"
 #include "langhooks.h"
 #include "cgraph.h"
+#include "c-common.h"
 }
 
 // Non-zero if bytecode from PCH is successfully read.
@@ -380,7 +381,7 @@
       PM->add(createFunctionInliningPass());    // Inline small functions
     if (optimize > 2)
       PM->add(createArgumentPromotionPass());   // Scalarize uninlined fn args
-    if (!lang_hooks.flag_no_builtin())
+    if (!flag_no_builtin)
       PM->add(createSimplifyLibCallsPass());    // Library Call Optimizations
     PM->add(createInstructionCombiningPass());  // Cleanup for scalarrepl.
     PM->add(createJumpThreadingPass());         // Thread jumps.

Modified: llvm-gcc-4.2/trunk/gcc/longlong.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/longlong.h?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/longlong.h (original)
+++ llvm-gcc-4.2/trunk/gcc/longlong.h Tue Jul 29 17:09:10 2008
@@ -97,7 +97,7 @@
    (E.g. WE32100, IBM360.)  */
 
 /* LLVM LOCAL begin */
-#if defined (__GNUC__) && !defined (NO_ASM) && !defined (__llvm__)
+#if defined (__GNUC__) && !defined (NO_ASM) && (!defined (ENABLE_LLVM) || !defined (__llvm__))
 /* LLVM LOCAL end */
 
 /* We sometimes need to clobber "cc" with gcc2, but that would not be

Modified: llvm-gcc-4.2/trunk/gcc/rtl.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/rtl.h?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/rtl.h (original)
+++ llvm-gcc-4.2/trunk/gcc/rtl.h Tue Jul 29 17:09:10 2008
@@ -2266,6 +2266,8 @@
 extern rtx gen_hard_reg_clobber (enum machine_mode, unsigned int);
 extern rtx get_reg_known_value (unsigned int);
 extern bool get_reg_known_equiv_p (unsigned int);
+/* APPLE LOCAL 5695218 */
+extern rtx replace_regs (rtx, rtx *, unsigned int, int);
 
 #ifdef STACK_REGS
 extern int stack_regs_mentioned (rtx insn);

Modified: llvm-gcc-4.2/trunk/gcc/sched-int.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/sched-int.h?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/sched-int.h (original)
+++ llvm-gcc-4.2/trunk/gcc/sched-int.h Tue Jul 29 17:09:10 2008
@@ -344,7 +344,6 @@
 };
 
 extern struct haifa_insn_data *h_i_d;
-
 /* Used only if (current_sched_info->flags & USE_GLAT) != 0.
    These regsets store global_live_at_{start, end} information
    for each basic block.  */

Modified: llvm-gcc-4.2/trunk/gcc/target-def.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/target-def.h?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/target-def.h (original)
+++ llvm-gcc-4.2/trunk/gcc/target-def.h Tue Jul 29 17:09:10 2008
@@ -84,12 +84,6 @@
 #define TARGET_ASM_TTYPE hook_bool_rtx_false
 #endif
 
-/* LLVM LOCAL begin */
-#ifndef TARGET_ARM_TTYPE
-#define TARGET_ASM_TTYPE hook_bool_rtx_false
-#endif
-/* LLVM LOCAL end */
-
 #ifndef TARGET_ASM_ASSEMBLE_VISIBILITY
 #define TARGET_ASM_ASSEMBLE_VISIBILITY default_assemble_visibility
 #endif
@@ -511,16 +505,6 @@
 
 #define TARGET_ARM_EABI_UNWINDER false
 
-/* APPLE LOCAL begin mainline 2005-10-12 */
-#ifndef TARGET_VALID_DLLIMPORT_ATTRIBUTE_P
-#define TARGET_VALID_DLLIMPORT_ATTRIBUTE_P hook_bool_tree_true
-#endif
-/* APPLE LOCAL end mainline 2005-10-12 */
-
-/* LLVM LOCAL begin */
-#define TARGET_ARM_EABI_UNWINDER false
-/* LLVM LOCAL end */
-
 #define TARGET_PROMOTE_FUNCTION_ARGS hook_bool_tree_false
 #define TARGET_PROMOTE_FUNCTION_RETURN hook_bool_tree_false
 #define TARGET_PROMOTE_PROTOTYPES hook_bool_tree_false
@@ -600,11 +584,6 @@
 #define TARGET_SECONDARY_RELOAD default_secondary_reload
 #endif
 
-/* LLVM LOCAL begin */
-#ifndef TARGET_UNWIND_TABLES_DEFAULT
-#define TARGET_UNWIND_TABLES_DEFAULT false
-#endif
-/* LLVM LOCAL end */
 
 /* C++ specific.  */
 #ifndef TARGET_CXX_GUARD_TYPE

Modified: llvm-gcc-4.2/trunk/gcc/tree.def
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/tree.def?rev=54175&r1=54174&r2=54175&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/tree.def (original)
+++ llvm-gcc-4.2/trunk/gcc/tree.def Tue Jul 29 17:09:10 2008
@@ -177,6 +177,11 @@
    automatically to the value it points to.  Used in C++.  */
 DEFTREECODE (REFERENCE_TYPE, "reference_type", tcc_type, 0)
 
+/* APPLE LOCAL begin radar 5732232 - blocks */
+/* All pointer-to-block types have code BLOCK_POINTER_TYPE.
+   The TREE_TYPE points to the node for the type pointed to.  */
+DEFTREECODE (BLOCK_POINTER_TYPE, "block_pointer_type", tcc_type, 0)
+/* APPLE LOCAL end radar 5732232 - blocks */
 /* The ordering of the following codes is optimized for the checking
    macros in tree.h.  Changing the order will degrade the speed of the
    compiler.  COMPLEX_TYPE, VECTOR_TYPE, ARRAY_TYPE.  */





More information about the llvm-commits mailing list