[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