diff options
Diffstat (limited to 'gcc-4.2.1-5666.3/gcc/ChangeLog.apple')
-rw-r--r-- | gcc-4.2.1-5666.3/gcc/ChangeLog.apple | 14532 |
1 files changed, 14532 insertions, 0 deletions
diff --git a/gcc-4.2.1-5666.3/gcc/ChangeLog.apple b/gcc-4.2.1-5666.3/gcc/ChangeLog.apple new file mode 100644 index 000000000..157b28f4e --- /dev/null +++ b/gcc-4.2.1-5666.3/gcc/ChangeLog.apple @@ -0,0 +1,14532 @@ +2010-09-27 Bob Wilson <bob.wilson@apple.com> + + Radar 8392704 + * doc/cppopts.texi: Fix description of -isysroot for Apple's GCC. + * doc/invoke.texi (Directory Options): Update --sysroot description to + refer Apple users to -isysroot. + +2010-08-13 Bob Wilson <bob.wilson@apple.com> + + Radar 8307333 + * config/i386/darwin.h (DARWIN_IPHONEOS_LIBGCC_SPEC): Do not link + against libgcc_s.10.5.dylib. + * config/rs6000/darwin.h (DARWIN_IPHONEOS_LIBGCC_SPEC): Likewise. + +2010-04-16 Fariborz Jahanian <fjahanian@apple.com> + + Radar 7865106 is backed out. + +2010-04-15 Fariborz Jahanian <fjahanian@apple.com> + + Radar 7865106 + * config/darwin.h (objc_weak_import_class): New decl. + (ASM_WEAKEN_DECL): Call objc_weak_import_class see if + we have a 'weak_reference' decl. + * darwin.c (objc_weak_import_class): New definition. + +2010-04-13 Stuart Hastings <stuart@apple.com> + + Radar 7212824 + * cp/decl.c (redeclaration_error_message): Insure we're looking + at a VAR_DECL before diagnosing a redeclaration. + +2010-03-18 Stuart Hastings <stuart@apple.com> + + Radar 7763139 + * config/i386/i386.c (iasm_x86_canonicalize_operands): Add LEA + to list of opcodes that ignore 2nd type attribute. + +2010-03-16 Fariborz Jahanian <fjahanian@apple.com> + + Radar 7760213 + * c-common.h (HasByrefArray): New decl. + * c-common.c (HasByrefArray): New definition. + * c-typeck.c (build_external_ref): Diagnose access of + __block array. + +2010-03-12 Jim Grosbach <grosbach@apple.com> + + Radar 7744816 + + * expmed.c (synth_mult): Remove incorrect special case handling for + 0xffffffff. + +2010-03-12 Fariborz Jahanian <fjahanian@apple.com> + + Radar 7735196 + * c-parser.c (build_block_struct_initlist): + Set BLOCK_USE_STRET flag in block descriptor for + blocks which return their aggregate value in memory. + * c-common.h (BLOCK_USE_STRET): New flag. + +2010-03-05 Fariborz Jahanian <fjahanian@apple.com> + + Radar 7721728 + * c-typeck.c (build_external_ref): Diagnose + importation of copied-in variables. + +2010-02-16 Jim Grosbach <grosbach@apple.com> + + Radar 7649286 + + * config/arm/arm.md (call_value_mem, call): Rename call_value_mem_v4, + call_mem_v4. Restrict to only when blx is not available (pre-ARMv5). + +2010-02-08 Jim Grosbach <grosbach@apple.com> + + Radar 7590305 + * config/arm/arm.c (handle_thumb_unexpanded_prologue): When calling + helper function to save off VFP regs, update the DWARF call frame + information. + +2010-02-01 Stuart Hastings <stuart@apple.com> + + Radar 7599272 + * gcc/config/darwin-c.c (create_init_utf16_var): Apply Evan's + LLVM-GCC r95013 patch to GCC. + +2010-01-27 Jim Grosbach <grosbach@apple.com> + + Radar 7581650 + * dwarf2out.c (gen_subprogram_die): DW_AT_APPLE_isa should use data1 + encoding. + +2010-01-13 Jim Grosbach <grosbach@apple.com> + + Radar 7511696 + * flow.c (flow_lite): Don't change allocation availailability of PIC + base register when not doing flow analysis. Add early exit. + * local-alloc.c (local_alloc): Debug dump even when no PIC base flow + analysis was performed. + (dump_inheritance): Add function name to pic_rtx_inheritance debug + dump line. + +2010-01-07 Jim Grosbach <grosbach@apple.com> + + Radar 7519550 + * doc/invoke.texi: Document -force_load + +2010-01-07 Jim Grosbach <grosbach@apple.com> + + Radar 7519550 + * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE, + WORD_SWITCH_TAKES_ARG, LINK_SPEC): Add -force_load. + +2009-12-04 Jim Grosbach <grosbach@apple.com> + + Radar 6930582 + * config/arm/arm1136jfs.md: Adjust load latencies up by one. + * config/arm/cortex-a8.md: Adjust load latencies up by one. + +2009-12-04 Jim Grosbach <grosbach@apple.com> + + Radar 7393136 + * config/arm/arm.c (arm_split_compare_and_swap): Just use a data + memory barrier after the strex. dsb is overkill. + * config/arm/sync.md (arm_memory_barrier_v7): Use "dmb ish" since + the compiler usage is for multithreading, not external device sync. + +2009-12-04 Jim Grosbach <grosbach@apple.com> + + Radar 7442004 + * config/arm/t-darwin: Always build libgcc2 functions with -marm. + +2009-11-03 Stuart Hastings <stuart@apple.com> + + Radar 6951876 + * local-alloc.c (reg_inheritance_1): Check for int->float + SUBREG cast, assume it uses the pic-base. This is the + 32-bit float analogue to 6050374 (see below). + +2009-11-02 Stuart Hastings <stuart@apple.com> + + Radar 7105615 + * fold-const.c (fold_binary): When folding an unsigned + comparision into a signed comparision, set TREE_OVERFLOW so + that the loop optimizer in tree-vrp.c understands that the + user did not write this. + +2009-10-15 Jim Grosbach <grosbach@apple.com> + + Radar 7295521 + * config/arm/arm.c (arm_split_compare_and_swap): Call insns for + arm_memory_barrier* and arm_memory_sync* directory rather than using + the expander. + * config/arm/sync.md (memory_barrier, memory_sync): Allocate a scratch + register rather than forcing IP. + (arm_memory_barrier_v6): Match the scratch register from the expander + rather than forcing IP. Rename to arm_memory_barrier_v6_explicit. + (arm_memory_barrier_v6_explicit): New. + (arm_memory_sync_v6): Match the scratch register from the expander + rather than forcing IP. Rename to arm_memory_sync_v6_explicit. + (arm_memory_sync_v6_explicit): New. + +2009-09-08 Jim Grosbach <grosbach@apple.com> + + Radar 7174451 + * config/arm/arm.c (arm_select_dominance_cc_mode): Unordered floats. + +2009-09-08 Jim Grosbach <grosbach@apple.com> + + Radar 6258536 + * gcc/testsuite/lib/target-supports.exp + (check_effective_target_sync_int_long): Enable __sync* tests for ARM. + * gcc/config/arm/arm.c (emit_load_locked, emit_store_conditional, + arm_split_compare_and_swap): New. + * gcc/config/arm/arm.h (ARM_PRINT_OPERAND_ADDRESS): Omit the ", #0" + for no-offset register addresses to make LDREX* and STREX* happy. + (arm_arch7a): Make extern for use in .md files. + * gcc/config/arm/arm-protos.h (arm_split_compare_and_swap): New. + * gcc/config/arm/sync.md: New file. + * gcc/config/arm/arm.md: Include "sync.md". + (UNSPEC_CMPXCHG, UNSPEC_BARRIER, UNSPEC_SYNC, VUNSPEC_LL, + VUNSPEC_SC): New. + +2009-09-04 Jim Grosbach <grosbach@apple.com> + + Radar 6574544 + * config/arm/arm.c (arm_expand_neon_args): Convert builtin arguments + to the expected mode. + +2009-09-04 Jim Grosbach <grosbach@apple.com> + + Radar 7198870 + * config/arm/arm.c (thumb2_legitimate_index_p): Restrict negative + range to -255 since that's the min for STR. + +2009-09-01 Jim Grosbach <grosbach@apple.com> + + Radar 7191061 + * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Force 32-bit + alignment for MI thunk functions. + +2009-09-01 Jim Grosbach <grosbach@apple.com> + + Radar 7109945 + * config/arm (thumb2_legitimate_index_p): VFP register addresses + should be restricted to constants in range for VSTR. + +2009-07-31 Bob Wilson <bob.wilson@apple.com> + + Radar 7105099 + Backport from mainline (the ARM portions were already partly there): + 2007-07-16 Julian Brown <julian@codesourcery.com> + * config/arm/arm-protos.h (arm_mangle_type): Add prototype. + * config/arm/arm.c (TARGET_MANGLE_TYPE): Define target hook. + (arm_init_neon_builtins): Fix comment. + (arm_mangle_map_entry): New. + (arm_mangle_map): New. + (arm_mangle_type): New. + * config/i386/i386.c (ix86_mangle_fundamental_type): Rename to... + (ix86_mangle_type): This. Use TYPE_MAIN_VARIANT and restrict + mangled types to VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, REAL_TYPE. + (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define. + (TARGET_MANGLE_TYPE): Define this instead. + * config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Rename + to... + (rs6000_mangle_type): This. Use TYPE_MAIN_VARIANT. + (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define. + (TARGET_MANGLE_TYPE): Define this instead. + * cp/mangle.c (write_type): Call mangle_type target hook on all + types before mangling. Use original type, not main variant, as + argument. + * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): Rename hook to... + (TARGET_MANGLE_TYPE): This. + * target.h (gcc_target): Rename mangle_fundamental_type to + mangle_type. + * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Rename section to... + (TARGET_MANGLE_TYPE): This. Note slightly different semantics. + +2009-07-24 Bob Wilson <bob.wilson@apple.com> + + Radar 7088565 + * config/arm/t-darwin (MULTILIB_OPTIONS): Separate options with + slashes instead of spaces so that they are mutually exclusive. + (MULTILIB_EXCEPTIONS): Stop using gen-darwin-multilib-exceptions.sh. + (MULTILIB_MATCHES): Recognize equivalent -march and -mcpu options. + * config/arm/gen-darwin-multilib-exceptions.sh: Delete. + * config.gcc: Remove duplicate for arm/t-darwin. + +2009-07-09 Jim Grosbach <grosbach@apple.com> + + Radar 6999417 + * config/darwin.h (DARWIN_DYLIB1_SPEC): -ldylib1.o is not necessary + for iPhoneOS >= 3.1 + (DARWIN_BUNDLE1_SPEC): New. -lbundle1.o is not necessary for + iPhoneOS >= 3.1 + (DARWIN_CRT1_SPEC): iPhoneOS >= 3.1 should use -lcrt1.3.1.o; + otherwise, -lcrt1.o. + +2009-07-07 Stuart Hastings <stuart@apple.com> + + Radar 6939151 + * local-alloc.c (local_alloc): Add comment, limit to a 12MB + bitmap. + +2009-07-07 Stuart Hastings <stuart@apple.com> + + Radar 6939151 + * local-alloc.c (local_alloc): Avoid allocating huge register + bitmaps. Arbitrarily set 64K pseudo-register limit for + reg_inheritance analysis. + +2009-06-25 Bob Wilson <bob.wilson@apple.com> + + Radar 6879229 + * config/arm/arm.c (arm_override_options): Disallow -fasm-blocks. + * doc/invoke.texi (-fasm-blocks): Document this restriction. + +2009-06-17 Jim Grosbach <grosbach@apple.com> + + Radar 6821124 + * builtin-attrs.def (DEF_FORMAT_ATTRIBUTE): For Darwin, don't claim + the format argument to be nonnull. + * builtins.def (BUILT_IN_FPUTS, BUILT_IN_FPUTS_UNLOCKED, + BUILT_IN_PUTS, BUILT_IN_PUTS_UNLOCKED): Likewise. + +2009-06-17 Jim Grosbach <grosbach@apple.com> + + Radar 6858124 + * config/arm/arm.c (arm_output_mi_thunk): Stub calls aren't indirect + in MI thumb thunks. + +2009-06-15 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6936421 + * cvt.c (force_rvalue): Convert property reference + expression to its getter call before converting to + rvalue. + * obj-c++.dg/property-as-initializer.mm: New + +2009-06-12 Jim Grosbach <grosbach@apple.com> + + Radar 6868127 + * doc/invoke.texi (-mthumb): Specify that thumb is the default for + armv7. + +2009-05-20 Jim Grosbach <grosbach@apple.com> + + Radar 6902937 + * config/arm/arm.c (arm_output_epilogue_vfp_restore): New function. + (arm_output_epilogue): Factor out common code to + arm_output_epilogue_vfp_restore. + +2009-05-19 Jim Grosbach <grosbach@apple.com> + + Radar 6902792 + * config/arm/arm.c: Add includes for stdlib.h and ctype.h. + (TARGET_MD_ASM_CLOBBERS): New. + (arm_md_asm_clobbers): New function. Add a clobber of the upper + half D register when a Q register clobber is used. + +2009-04-08 Jim Grosbach <grosbach@apple.com> + + Radar 6738583 + * config/arm/arm.c (arm_init_cumulative_args): Always short call local + functions. + +2009-04-06 Stuart Hastings <stuart@apple.com> + + Radar 6755006 + * tree-ssa-loop-ivopts.c (aff_combination_to_tree): Unsigned + types can't be negative. + +2009-03-12 Caroline Tice <ctice@apple.com> + + Radar 6144634 + * c-parser.c (c_parser_statement_after_labels): When + re-setting the expression location at the end, use the input + location for Block pointer assignments. + +2009-03-18 Jim Grosbach <grosbach@apple.com + + Radar 6676111 (from Mike's fix to SnowLeopard gcc 4.2 6486153) + * fold-const.c (extract_muldiv_1): Copy TYPE_OVERFLOW_UNDEFINED from + other uses in extract_muldiv_1 to avoid optimization when overflow + is defined. + +2009-03-18 Bob Wilson <bob.wilson@apple.com> + + Radar 6545322 + * gcc/config/arm/ieee754-sf.S (floatundisf): Replace undefined do_itt + macro call by do_it with an extra "t" argument. + * gcc/config/arm/ieee754-df.S (floatdidf): Likewise. + (muldf3): Revert inexplicable change that replaced a BIC with an AND. + +2009-02-25 Jim Grosbach <grosbach@apple.com> + + Radar 6465387 + * gcc/config/arm/t-darwin (LIB1ASMFUNCS): Add _save_vfp_d8_d15_regs, + _restore_vfp_d8_d15_regs. + * gcc/config/arm/arm.c (handle_thumb_unexpanded_prologue, + handle_thumb_unexpanded_epilogue): Add call to + ___{save,restore}_vfp_d8_d15_regs when compiling a function + w/ a non-local label in Thumb1 mode for a v6 or later processor. + * gcc/config/arm/lib1funcs.asm (save_vfp_d8_d15_regs, + restore_vfp_d8_d15_regs): New functions, built only for v6 ARM. + +2009-02-11 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6573923 + * c-decl.c (synth_block_byref_id_object_copy_func, + synth_block_byref_id_object_dispose_func): Set BLOCK_BYREF_CALLER + flag in call to copy/dispose helper functions. + * c-common.h (BLOCK_BYREF_CALLER): New flag. + +2009-02-25 Jim Grosbach <grosbach@apple.com> + + Radar 6611402 + * gcc/config/arm/t-darwin (ARM_MULTILIB_ARCHS): New. + * (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, MULTILIB_EXCEPTIONS): + Derive values from list in ARM_MULTILIB_ARCHS. + * gcc/config/arm/gen-darwin-multilib-exceptions.sh: New. + Helper function to calculate the list for MULTILIB_EXCEPTIONS. + +2009-02-02 Jim Grosbach <grosbach@apple.com> + + Radar 5571707 + * gcc/config/arm/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Set + flag to reserve R9 on v6 if target iPhone SDK is less than 3.0. + * gcc/config/arm/arm.c (darwin_reserve_r9_on_v6): New flag. + (arm_darwin_subtarget_conditional_register_usage): Conditionalize + making R9 available on darwin_reserve_r9_on_v6 when targeting v6. + +2009-01-30 Jim Grosbach <grosbach@apple.com> + + Radar 6370037 + * ifcvt.c (cond_exec_process_if_block): Move loop-local variable + initialization inside loop so that further iterations don't + incorrectly use a value of the variable from a previous iteration. + +2009-01-29 Josh Conner <jconner@apple.com> + + Radar 6186914, 6541440 + * dwarf2out.c (dwarf_stack_op_name): Handle DW_OP_bit_piece. + (size_of_loc_descr, output_loc_operands): Likewise. + (reg_loc_descriptor): Call TARGET_DWARF2_REG_HANDLER if it is defined. + * config/arm/arm.h (TARGET_DWARF2_REG_HANDLER): Define. + +2009-01-27 Jim Grosbach <grosbach@apple.com> + + Radar 6483528 + * config/arm/arm.c (arm_output_epilogue): Pop VFP registers in + correct order when multiple pop instructions are necessary. + +2009-01-22 Jim Grosbach <grosbach@apple.com> + + Radar 5571707 + * config/arm/darwin.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE): + Allow use of R9 on v6 and v7. + * config/arm/arm.c (arm_darwin_subtarget_conditional_register_usage): + New function. + * config/arm/arm-protos.h + (arm_darwin_subtarget_conditional_register_usage): Ditto. + +2009-01-22 Stuart Hastings <stuart@apple.com> + + Radar 6515001 + * ifcvt.c(noce_try_cmove_arith): Use a more conservative trap + check. + +2009-01-12 Caroline Tice <ctice@apple.com> + + Radar 6476836 + * dwarf2out.c(struct die_struct): New field, "dead". + (size_of_inlined): Don't count entries whose "dead" field is marked. + (output_debug_inlined_section): Remove code that was commented out; + don't output info for dies whose "dead" field is marked. + (prune_unused_types_cleanup_inlining): New function. + (prune_unused_types): Call prune_unused_types_cleanup_inlining before + calling prune_unused_types_prune. + +2008-12-21 Caroline Tice <ctice@apple.com> + + Radar 6455678 + * cp/typeck.c (original_type): Stop if the type + and its DECL_ORIGINAL_TYPE are the same. + +2008-12-18 Bill Wendling <wendling@apple.com> + + Radar 6457359 + * c-parser.c (build_block_struct_initlist): Changed type. + * cp/parser.c (build_block_struct_initlist): Ditto. + +2008-12-18 Stuart Hastings <stuart@apple.com> + + Radar 6440204 + * config/i386/sse.md (sse2_ashlti3): Moved from here... + * config/i386/i386.md (sse2_ashlti3): ...to here. + +2008-12-11 Caroline Tice <ctice@apple.com> + + Radars 5964438, 6007135 + * cp/name-lookup.c (pushdecl_maybe_friend): Copy + type decl info to DECL_ORIGINAL_TYPE if the type + decl was anonymous. + * dwarf2out.c (gen_variable_die): Don't attempt to + reference an abstract origin unless the die actually + exists. + +2008-12-10 Jim Grosbach <grosbach@applecom> + + Radar 6387939 + * config/arm/arm.md (builtin_setjmp_setup): Properly terminate + the code snipped to prevent the rtl template from adding an + extraneous "use" insn into the instruction list. + +2008-12-09 Stuart Hastings <stuart@apple.com> + + Radar 6414738 + * var-tracking.c (clobber_variable_part): Update anextp for + next iteration. + +2008-12-05 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6413140 + * c-parser.c (c_parser_block_literal_expr): Warn on use of explicit + block return type. + +2008-12-05 Stuart Hastings <stuart@apple.com> + + Radar 6382081 + * config/i386/i386.md (floatdisf2): Replace SSE code + with x87 code. + +2008-12-02 Caroline Tice <ctice@apple.com> + + Radar 6386976 + * objcp/objcp-decl.h (TYPE_HAS_OBJCXX_INFO): New macro. + * objcp/objcp-lang.c (objcp-decl.h): New include statement, with + required define. + (LANG_HOOKS_IS_RUNTIME_SPECIFIC_TYPE): Redefine for + obj-c++. + (objcxx_is_runtime_type): New function. + +2008-12-02 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6411649 + * funciton.h: Added new field. + * c-common.c (build_block_helper_name): Produce a unique + block number per each enclosing function when building + the block helper function name. + +2008-12-02 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6396238 + * c-typeck.c (build_block_call): Handle case of a block + expression tree with side-effect when envoking the block. + +2008-12-01 Caroline Tice <ctice@apple.com> + + Radar 6386976 + * objc/objc-lang.c (objc_is_runtime_type): New function. + (LANG_HOOKS_IS_RUNTIME_SPECIFIC_TYPE): Re-define new constant. + * dwarf2out.c (dwarf_attr_name): Add case statements for + DW_AT_APPLE_major_runtime_vers and DW_AT_APPLE_runtime_class. + ( gen_struct_or_union_type_die): Call + lang_hooks.types.is_runtime_specific_type, and add runtime attribute + if appropriate. + (dwarf2out_finish): Add DW_AT_APPLE_major_runtime_vers to comp_unit + die if appropriate. + * dwarf2.h (enum dwarf_attribute): Add two new Apple dwarf attributes: + DW_AT_APPLE_major_runtime_vers and DW_AT_APPLE_runtime_class. + * langhooks.c (lhd_is_runtime_specific_type): New generic function. + * langhooks.h (struct lang_hooks_for_types): Add new function field, + is_runtime_specific_type. + * langhooks-def.h (lhd_is_runtime_specific_type): New extern decl. + (LANG_HOOKS_IS_RUNTIME_SPECIFIC_TYPE): New constant definition. + (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use new constant definition to + initialize new field. + + +2008-12-01 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6404979 + * c-decl.c (block_build_prologue): Use an internal name for + block helper's hidden argument. + * c-parser.c (c_parser_block_literal_expr): Ditto. + +2008-12-01 Stuart Hastings <stuart@apple.com> + + Radar 6382081 + * config/i386/i386.md (floatdisf2): Add SSE code for + conversion on x86_32. + * config/i386/i386.c (ix86_expand_convert_sign_DI2DF_sse): Typo. + +2008-11-24 Stuart Hastings <stuart@apple.com> + + * config/i386/i386.c (ix86_expand_convert_uns_SI2DF_sse): Fix + comment. + +2008-11-18 Stuart Hastings <stuart@apple.com> + + Radar 6353006 + * tree.c (generic_block_literal_struct_type): Fix APPLE LOCAL. + * langhooks-def.h (lhd_build_generic_block_struct_type): Fix + APPLE LOCAL. + +2008-11-12 Caroline Tice <ctice@apple.com> + + * tree.c (generic_block_literal_struct_type): Move global variable + decl here from c-common.c. + (build_block_pointer_type): Change call to + build_generic_block_struct_type to go through lang_hooks. + * tree.h: Remove extern function dec, for + build_generic_block_struct_type. + * cp/cp-objcp-common.h: Define c++-specific version of + LANG_HOOKS_BUILD_GENERIC_BLOCK_STRUCT_TYPE. + * cp/parser.c (build_generic_block_struct_type): Rename function to + c_build_generic_block_struct_type. + * c-objc-common.h: Define c-specific version of + LANG_HOOKS_BUILD_GENERIC_BLOCK_STRUCT_TYPE. + * langhooks.c (lhd_build_generic_block_struct_type): New generic + function. + * langhooks.h (struct lang_hooks): Add new function field, + build_generic_block_struct_type. + * c-common.c (generic_block_literal_struct_type): Move global variable + decl from here to tree.c. + * c-common.h (c_build_generic_block_struct_type): New extern + function decl. + * c-parser.c (build_generic_block_struct_type): Rename function to + c_build_generic_block_struct_type. + * langhooks-def.h (lhd_build_generic_block_struct_type): New extern + function decl. + (LANG_HOOKS_BUILD_GENERIC_BLOCK_STRUCT_TYPE): New variable + definition. + (LANG_HOOKS_INITIALIZER): Initialize new field to + LANG_HOOKS_BUILD_GENERIC_BLOCK_STRUCT_TYPE + +2008-11-11 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6351990 + * config/darwin.c (machopic_select_section): Accomodate change + for meta-data prefix name. + * config/darwin-sections.def (__objc_protorefs, __objc_protolist): + These sections are now coalesced. + +2008-11-11 Stuart Hastings <stuart@apple.com> + + Radar 4299257 + * config/i386/i386.c (bdesc_com): Move ucomXX instructions + from here... (bdesc_ucomi): ...to here. New. + (ix86_init_mmx_sse_builtins): Add a loop to walk + bdesc_ucomi[] and instantiate ucomiXX builtins. + (ix86_expand_sse_ucomi): New. (ix86_expand_builtin): Call + it. + +2008-11-07 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5847976 + * c-decl.c (synth_block_byref_id_object_copy_func): Takes a new + 'flag' argument and generates the much simplified API. + (synth_block_byref_id_object_dispose_func): Ditto. + (new_block_byref_decl): Hack to prevent issuing bogus warning + on a field declared as __weak. + (init_byref_decl): Takes an additional 'flag' argument + and passes it down to synth_block_byref_id_object_copy_func and + synth_block_byref_id_object_dispose_func. + (finish_decl): Computes the flag for the block variable declaration. + * c-common.c (build_block_byref_release_decl, + build_block_byref_assign_copy_decl): Removed. + (build_block_byref_release_exp): Use the new API. + (build_block_object_assign_decl, build_block_object_assign_call_exp, + build_block_object_dispose_decl, build_block_object_dispose_call_exp): New. + (build_indirect_object_id_exp): Fixed a code gen bug which was exposed in + c/c++ mode, but not in ObjC/ObjC++ mode. + * c-common.h (build_block_object_assign_call_exp, + build_block_object_dispose_call_exp, + objc_is_gcable_type): New decls. + Declaration of several new flags. + (cast_to_pointer_to_id): Removed. + * stub-objc.c (objc_is_gcable_type): New + (copy_in_object, retain_block_component, release_block_component): Removed. + (cast_to_pointer_to_id): Removed. + * c-parser.c (build_block_struct_initlist): Remove call to copy_in_object. + (synth_copy_helper_block_func): Generates much simplified API. + (synth_destroy_helper_block_func): Ditto. + (block_object_dispose): Removed. + * config/darwin-c.c (darwin_cpp_builtins): Define __weak even when + -fobjc-gc is off. + +2008-11-18 Jim Grosbach <grosbach@apple.com> + Radar 6361608 + * config/arm/arm.c (arm_output_mi_thunk): C++ thunks for multiple + inheritance need to account for the different PC-relative offset + bias of the add instruction in Thumb-2 vs. ARM mode (4 vs. 8). + +2008-11-13 Jim Grosbach <grosbach@apple.com> + + Radar 6357106 + * config/arm/arm.c (arm_function_boundary): Thumb2 functions + should be 32-bit aligned. + +2008-11-13 Jim Grosbach <grosbach@apple.com> + Radar 6333007 + * config/darwin-driver.c (darwin_default_min_version): Bump default + iPhoneos-version-min to 3.0. + * config/arm/darwin.h (DARWIN_MINVERSION_SPEC, + SUBTARGET_OVERRIDE_OPTIONS): Ditto. + +2008-11-13 Jim Grosbach <grosbach@apple.com> + + Radar 6345234 + * config/arm/arm.c (arm_file_start): Emit section directives + for text sections at the start of file, as for PPC. + +2008-11-11 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6351990 + * config/darwin.c (machopic_select_section): Accomodate change + for meta-data prefix name. + * config/darwin-sections.def (__objc_protorefs, __objc_protolist): + These sections are now coalesced. + +2008-11-4 Jim Grosbach <grosbach@apple.com> + + Radar 6327222 + * config/arm/arm.c (legitimize_pic_address): Be more generous about + constants when the operand is of the form (const (plus (something) + (const)). + +2008-10-31 Stuart Hastings <stuart@apple.com> + + Radar 5813921 + * builtins.c (validate_arglist): Tolerate enums where + INTEGER_TYPE is expected. + +2008-10-31 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6175959 + * stub-objc.c (block_requires_copying): Object pointers with + NSObject attribute also require copy/release API. + * c-parser.c (synth_copy_helper_block_func): Use the new API + _Block_object_assign for ObjC object copying. + (block_object_dispose): New + (synth_destroy_helper_block_func): Call block_object_dispose + to use new _Block_object_dispose API for ObjC object release. + +2008-10-30 Stuart Hastings <stuart@apple.com> + + Radar 5834718 + * coverage.c (prg_ctr_mask, prg_n_ctrs, fn_ctr_mask, + fn_n_ctrs, fn_b_ctrs): Added GTY(()) markers. + +2008-10-29 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6329245 + * c-decl.c (build_block_descriptor_type): Remove + "FuncPtr" field decl. + * c-typeck.c (build_block_call): Block call is + now same as old ABI. + * c-parser.c (build_generic_block_struct_type): Primary block + type is now reverted to old ABI in its first 4 fields. + (build_block_struct_type): Ditto. + (build_block_struct_initlist): Primary block initializer + list is now reverted to old ABI somewhat. + +2008-10-28 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6243961 + * varasm.c (build_constant_desc): With -fwritable-string + prefix normal string constants with "lC". + (output_constant_def): Turn off -fwritable-string + for cf-strings. + +2008-10-28 Stuart Hastings <stuart@apple.com> + + * ggc-common.c (init_ggc_heuristics): Add ATTRIBUTE_UNUSED. + +2008-10-27 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6231433 + * c-typeck.c (objc_compare_types, objc_have_common_type): + Take an extra argument for better diagnostics. + * c-common.c (objc_compare_types, objc_have_common_type): + Take extra argument. + * stub-objc.c: Ditto + +2008-10-27 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6302949 + * c-parser.c (c_parser_objc_property_attrlist): Warn on missing + ',' separator for property attribute list. + +2008-10-24 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6305545 + * cgraph.h (lower_if_nested_functions): New decl. + * tree-gimple.h (lower_nested_functions): Takes one more arg. + * cgraphunit.c (lower_if_nested_functions): New + * tree-nested.c (lower_nested_functions): Skip structors. + +2008-10-24 Stuart Hastings <stuart@apple.com> + + Radar 308664 6310728 6311054 6311100 + * config/i386/i386.c (legitimate_pic_address_disp_p): Local + labels should not be affected by -mfix-and-continue. + +2008-10-24 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5847213 (minor tweak) + * c-decl.c (build_block_descriptor_type): + Make descriptor_ptr_type and descriptor_ptr_type_with_copydispose + visible to pch. + +2008-10-24 Josh Conner <jconner@apple.com> + + Radar 6305331 + * config/arm/arm.h (TARGET_COMPACT_SWITCH_TABLES): Define... + (CASE_VECTOR_SHORTEN_MODE): ...use. + (ASM_OUTPUT_ADDDR_DIFF_VEC): ...use. + * config/arm/arm.md (casesi): ...use. + (thumb_casesi_internal): ...use. + +2008-10-23 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6307941 + * config/darwin.h (OBJC2_ABI_DISPATCH): New macro. + +2008-10-23 Caroline Tice <ctice@apple.com> + + Radar 6300081 + * tree.c(build_block_pointer_type): Add call to + build_generic_block_struct_type to initialize + generic_block_literal_struct_type if necessary. + * cp/parser.c (build_generic_block_struct_type): Update comments. + (build_block_struct_type): Remove call to + build_generic_block_struct_type. + (make_block_pointer_declarator): Likewise. + * c-decl.c (make_block_pointer_declarator): Likewise. + * c-parser.c (build_block_struct_type): Likewise. + (build_generic_block_struct_type): Update comments. + +2008-10-22 Caroline Tice <ctice@apple.com> + + Radar 6300081 + * c-parser.c (build_generic_block_struct_type): Add comments. + * cp/parser.c (build_generic_block_struct_type): Add comments. + +2008-10-22 Caroline Tice <ctice@apple.com> + + Radar 6300081 & Radar 6163705 + * tree.h (generic_block_literal_struct_type): Extern global variable + decl. + (build_generic_block_struct_type): New extern function decl. + * cp/parser (build_generic_block_struct_type): New function. + (build_block_struct_type): Call build_generic_block_struct_type + to initialize generic_block_literal_struct_type. + (make_block_pointer_declarator): Likewise. + (declare_block_prologue_local_vars): Temporarily set input_location + to 1 before the start of the block function; re-set input_location at + the end of this function. + * dwarf2out.c (add_type_attribute): If the type is a + BLOCK_POINTER_TYPE, assign it to be a pointer to a + generic_block_literal_struct_type. + * c-decl.c (make_block_pointer_declarator): Call + build_generic_block_struct_type to initialize + generic_block_literal_struct_type. + * c-common.c (generic_block_literal_struct_type): New global variable. + * c-parser.c (build_generic_block_struct_type): New function. + (build_block_struct_type): Call build_generic_block_struct_type + to initialize generic_block_literal_struct_type. + * testsuite/gcc.apple/block-debug-1.c: Fix test to work with new + compiler modifications. + * testsuite/gcc.apple/block-debug-2.c: Likewise. + * testsuite/g++.apple/block-debug-1.C: Likewise. + * testsuite/g++.apple/block-debug-2.C: Likewise. + +2008-10-22 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6310599 + * dwarf2out.c: forwarding is now __forwarding + * c-decl.c: All internal field names in block internal types + have '__' prefix. + * c-typeck.c: Ditto + * c-common.c: Ditto + * c-parser.c: Ditto + +2008-10-21 Stuart Hastings <stuart@apple.com> + + Radar 6187262 + * tree-ssa-loop-ivopts.c (may_be_nonaddressable): Treat + "(vector)scalar" like "(aggregate)scalar". + +2008-10-21 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4746503 + * toplev.c (warn_deprecated_use): Do not issue + any deprecated warning in a function that itself + is deprecated. + +2008-10-20 Stuart Hastings <stuart@apple.com> + + Radar 6222167 + * sse.md (sse_4_1_smax<mode>3, sse_4_1_umax<mode>3, + sse_4_1_smin<mode>3, sse_4_1_umin<mode>3): Drop '*' so these + are visible... + * i386.c (__builtin_ia32_pmaxsb128, __builtin_ia32_pmaxsd128, + __builtin_ia32_pmaxud128, __builtin_ia32_pmaxuw128, + __builtin_ia32_pminsb128, __builtin_ia32_pminsd128, + __builtin_ia32_pminud128, __builtin_ia32_pminuw128): + ...here. Use CODE_FOR_sse4_1_XX codes. + +2008-10-20 Stuart Hastings <stuart@apple.com> + + Radar 6227434 + * config/i386/i386.c (legitimate_pic_addres_disp_p): Use #if + TARGET_MACHO for Linux portability. + +2008-10-20 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6255595 + * config/darwin.c (output_objc_section_asm_op): Add two new section names. + (objc_internal_variable_name): New routine. + (machopic_select_section): Call objc_internal_variable_name. + * config/darwin-sections.def: Define two new kinds of + __DATA section. + +2008-10-17 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6289031 + * c-parser.c: Removed all code related to + radar 6083129 (byref escapes). + * c-common.h: Removed all declarations + related to radar 6083129 (byref escapes). + * c-typeck.c: Removed all code related to + radar 6083129 (byref escapes). + * c-decl.c: Removed all code related to + radar 6083129 (byref escapes). + (finish_decl): Add code to cleanup a + __block declared variable. + (build_block_byref_decl): Add code to cleanup a + __block declared variable. + +2008-10-15 Stuart Hastings <stuart@apple.com> + + Radar 6255801 + * objc/objc-act.c (objc_set_global_decl_fields): Set + DECL_USER_ALIGN on OBJC metadata to keep only word + alignment. + +2008-10-17 Stuart Hastings <stuart@apple.com> + + Radar 6227434 + * config/i386/i386.c (legitimate_pic_address_disp_p): All + static variables are addressed as global under -m64 + -mfix-and-continue, except Objective-C metadata. + +2008-10-17 Caroline Tice <ctice@apple.com> + + Radar 6292557 + * dwarf2out.c (add_inlined_section_entry): If the + function does not have any debug info, don't try + to add it to the dwarf inlined section. + * testsuite/gcc.apple/r6292557.c: New testcase. + +2008-10-16 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6276695 + + (Removed all references to __byref and removed '|' syntax for byref decls.) + * cp/decl.c: Modifed + * cp/parser.c: Modifed + * c-decl.c: Modifed + * c-typeck.c: Modifed + * c-common.c: Modifed + * c-common.h: Modifed + * c-parser.c: Modifed + * config/darwin-c.c: Modified + +2008-10-16 Josh Conner <jconner@apple.com> + + Radar 6288519 + * config/arm/arm.md (casesi): Disallow for TARGET_THUMB && + TARGET_LONG_CALLS. + (thumb_casesi_internal): Likewise. + +2008-10-14 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6286881 + * fold-const.c (fold_binary): Type of operands to + TRUTH_NOT_EXPR must match. + +2008-10-10 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5847213 - New Block ABI + * dwarf2out.c (add_type_attribute): Unusuable code + for radar 5811943 is removed. + * c-decl.c (build_block_byref_decl): Removed unneeded + build of block_original_byref_decl_list. + (build_block_internal_types): Removed. + (build_block_descriptor_type): New routine to build the descriptor type. + (make_block_pointer_declarator): Unused code is removed. + * c-typeck.c (build_block_call): New code gen for block calls. + * c-common.c (invoke_impl_ptr_type): Removed. + * c-common.h (block_original_byref_decl_list, build_block_internal_types): Removed + (build_block_descriptor_type, BLOCK_HAS_DESCRIPTOR): Decls added. + * c-parser.c (build_block_struct_type): Block literal expression internal type + is redeclared into its new layout. + (build_block_struct_initlist): Initializer list for above type is redone. + (build_descriptor_block_decl): New routine to declare the descriptor variable + (build_block_literal_tmp): Modified for the new type and initiazation. + +2008-10-10 Stuart Hastings <stuart@apple.com> + + Radar 6107012 + * ipa-type-escape.c (parent_type_p_pset): New. + (check_cast_type): Initialize it. (parent_type_p): Use it. + +2008-10-10 Stuart Hastings <stuart@apple.com> + + Radar 6227434 + * config/i386/i386.c (legitimate_pic_address_disp_p): All + static variables are addressed as global under -m64 + -mfix-and-continue. + +2008-10-10 Caroline Tice <ctice@apple.com>a + + Radar 6275985 + * dwarf2out.c (debug_inlined_section): New global variable. + (struct indirect_string_node): Add new field, is_fn_name. + (inlined_ref): New typedef. + (struct inlined_entry_struct): New global type. + (DWARF_INLINED_HEADER_SIZE): New constant. + (debug_inlined_table): New global variable. + (size_of_inlined): New function. + (add_inlined_section_entry): New function. + (output_debug_inlined_section): New function. + (add_AT_string): set new field, is_fn_name, to true if the + string is a function name. + (AT_string_form): Force the form to always be a string pointer + if the string is a function name. + (has_AT): New function. + (add_abstract_origin_attribute): Make sure any function that + gets inlined as the DW_AT_inline attribute. + (get_inlined_subroutine_die): Call add_inlined_section_entry, to + add it to the new section. + (dwarf2init): Allocate the new debug_inlined_table; initialize + debug_inlined_section if DEBUG_INLINED_SECTION is defined. + (prune_unused_types): Make sure function names always go into + the debug_str_hash table. + (dwarf2out_finish): if DEBUG_INLINED_SECTION is defined, + switch to the debug_inlined_section and call + output_debug_inlined_section. + * config/darwin.h: define DEBUG_INLINED_SECTION. + * config/darwin.c (darwin_file_start): Add DEBUG_INLINED_SECTION + to list of debug sections. + +2008-10-09 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6269491 + * config/darwin.h (darwin_ms_struct): Remove addition + of -Wno-non-lvalue-assign when -fobjc-gc is specified. + +2008-10-09 Caroline Tice <ctice@apple.com> + + Radar 6163705 (again) + * function.c (find_block_prologue_insns): Don't worry about + other insns before the prologue insns, if the optimization level + is zero. + +2008-10-07 Stuart Hastings <stuart@apple.com> + + Radar 6258941 + gcc/cfgbuild.c (control_flow_insn_p): Treat unconditional TRAP + like any conditional TRAP. + +2008-10-06 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6268817 + * c-decl.c (check_for_loop_decls): Block helper function + is OK if declared in a for-loop main statement block. + +2008-10-03 Josh Conner <jconner@apple.com> + + Radar 6268204 + * doc/invoke.texi (-mkernel): Document that -mlong-branch + is set for ARM. + * config/arm/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Have -mkernel + and -fapple-kext imply -mlong-branch. + +2008-10-02 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6246527 + * attribs.c (decl_attributes): Added support for adding attributes + on block pointer variable declarations. + * c-common.c (block_delta_format_args): Add + (any_recognized_block_attribute): Add + * c-common.h (any_recognized_block_attribute): New decl. + * c-parser.c (c_parser_block_literal_expr): Call to do the delta + on printf attribute. + +2008-10-02 Stuart Hastings <stuart@apple.com> + + Radar 5919583 + * config/i386/emmintin.h (_mm_srli_si128, _mm_srli_si128): + Revise to invoke __builtin_ia32_pslldqi128_byteshift and + __builtin_ia32_psrldqi128_byteshift, remove parameters and + move multiplication by 8 from here... + * config/i386/i386.c (ix86_expand_builtin): ...to here. Add + support for IX86_BUILTIN_PSLLDQI128_BYTESHIFT and + IX86_BUILTIN_PSRLDQI128_BYTESHIFT. + (IX86_BUILTIN_PSLLDQI128_BYTESHIFT, + IX86_BUILTIN_PSRLDQI128_BYTESHIFT, + __builtin_ia32_pslldqi128_byteshift, + __builtin_ia32_psrldqi128_byteshift): New. + +2008-10-01 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6252174 + * config/darwin.c (machopic_select_section): Send objc_msgSendSuper* + symbol to msgrefs section. + +2008-09-30 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6261552 + * gimplify (gimplify_return_expr): code to check for + cur_block is removed. + +2008-09-30 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6230297 + * c-parser.c (build_block_struct_initlist): 'trivial' + block temporary can be static as well. + (build_block_literal_tmp): Accomodate 'trivial' block + literal temporary variable as static. + +2008-09-30 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6225809 + * c-decl.c (build_block_byref_decl): Add __block vaiables + to intervening blocks. + +2008-09-30 Stuart Hastings <stuart@apple.com> + + Radar 5919583 + Revert 2008-09-26 patch. + +2008-09-30 Caroline Tice <ctice@apple.com> + + Radars 6237086 & 6237616 + * dwarf2out.c (find_block_byref_var_real_type): Fix to work whether + TYPE_NAME (block_struct) is an IDENTIFIER_NODE or a TYPE_DECL. + (block_fixup_location_description): New function. + (build_byref_var_location_expression): Add call to + block_fixup_location_description. + (add_block_byref_var_location_attribute): Fix to work whether + TYPE_NAME (block_struct) is an IDENTIFIER_NODE or a TYPE_DECL. + (gen_variable_die): Ditto, when handling block byref variables. + +2008-09-28 Caroline Tice <ctice@apple.com> + + Radar 6163705 + * function.c (append_insn_list): Remove function. + (find_and_extract_block_prologue_insns): Renamed (see next entry). + (find_block_prologue_insns): Renamed from + find_and_extract_block_prologue_insns; instead of extracting a + list of prologue insns, it now only finds the prologue insns and + determines if it's safe to move the end-of-prologue note to just + past the last prologue insn; if so it returns the last prologue insn, + otherwise just returns null. + +2008-09-26 Stuart Hastings <stuart@apple.com> + + Radar 5919583 + * config/i386/emmintin.h (_mm_srli_si128, _mm_srli_si128): + Remove parameters and move multiplication by 8 from here... + * config/i386/i386.c (ix86_expand_builtin): ...to here. + +2008-09-25 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6244520 - minor addition + * c-common.c (build_indirect_object_id_exp): offset needs + be updated to accomodate addition of the new field. + +2008-09-26 Caroline Tice <ctice@apple.com> + + Radar 6163705 + * cp/parser.c (declare_block_prologue_local_byref_vars): Assign the + decl_stmt a line number of one before the declaration of the function. + * c-decl.c (declare_block_prologue_local_vars): Likewise. + * function.c (find_and_extract_block_prologue_insns): New function. + (append_insn_list): New function. + (thread_prologue_and_epilogue_insns): If the function is a Block + helper function, call find_and_extract_block_prologue_insns; If that + function call returned a list of insns, call append_insn_list to add + them to the end of the "normal" prologue. + +2008-09-25 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6246965 + * c-typeck.c (functiontypes_are_block_compatible): Use + existing API for argument-list type checking. + +2008-09-25 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6244520 + * c-decl.c (new_block_byref_decl): New field added to + struct __Block_byref_x. + (init_byref_decl): Above field initialized to NULL. + +2008-09-25 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6237713 + * c-common.c (handle_noreturn_attribute): Add 'noreturn' + attribute to block pointer decls. + * c-parser.c (c_parser_block_literal_expr): Parse and set + attributes on block literals. + +2008-09-24 Stuart Hastings <stuart@apple.com> + + Radar 6025404 + * config/i386/sse.md (ssse3_pmaddubswv8hi3, + ssse3_pmaddubswv4hi3): Not commutative. + +2008-09-23 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6196572 + * c-typeck.c (functiontypes_are_block_compatible): Assignment to + variadic block pointer is ok. + +2008-09-19 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6173152 + * c.opt (-fnew-property-ivar-synthesis): Is now the default. + +2008-09-19 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6230656 + * config/darwin-c.c (darwin_cpp_builtins): Don't define __block + macro with -fno-blocks. + +2008-09-19 Stuart Hastings <stuart@apple.com> + + Radar 6119849 + * gcc/builtins.c (fold_builtin_classify): Under -ffast-math, + finite() should return 1. + +2008-09-17 Josh Conner <jconner@apple.com> + + Radar 6204451 + * global.c (global_alloc): Remove code that ignores conflicts + on single-set tied pseudos. + +2008-09-16 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6214617 + * c-common: New flag BLOCK_HAS_CXX_OBJ replaces BLOCK_NO_COPY. + (BlockImportsCxxObjects): New field replaces BlockHasByrefVar. + * c-parser.c (build_block_struct_type): Remove setting of + BLOCK_NO_COPY flag. + +2008-09-16 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6217257 + * c-common.c (handle_blocks_attribute): Diagnose + vla __block declarations. + +2008-09-13 Josh Conner <jconner@apple.com> + + Radar 6214296 + * config/darwin.h (STARTFILE_SPEC): Don't add crt3.o to the link line + if -miphoneos-version-min was specified. + +2008-09-12 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6212507 + * config/darwin-c.c (objc_check_format_cfstring): Check for + argument number value. + +2008-09-12 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6212722 (tweak) + * c-decl.c (build_block_ref_decl): Use array_to_pointer_conversion + and function_to_pointer_conversion. + * c-typeck.c (array_to_pointer_conversion, function_to_pointer_conversion): + Made them global. + * c-common.h (array_to_pointer_conversion, function_to_pointer_conversion): + Declare. + +2008-09-11 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6212722 + * c-decl.c (build_block_ref_decl): Add support for array referenced + as copied in objects in blocks. + +2008-09-11 Caroline Tice <ctice@apple.com> + + Radar 6066486 + * dwarf2out.c (add_sibling_attribute): Move leaf-test return + statement to below the code that potentially removes the + DW_AT_MIPS_linkage_name attribute. + +2008-09-10 Caroline Tice <ctice@apple.com> + + Radar 6193416 + * dwarf2out.c (gen_subprogram_die): Force Blocks helper + functions to be children of the comp_unit die. + +2008-09-09 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6169580 + * c-commmon.c (build_block_helper_name): Fix bug in + block helper function name mangling. + +2008-09-08 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6064186 + * config/darwin.c (machopic_select_section): Message refs + symbol prefixes changed now. Accomodate it. + * config/darwin-sections.def: __objc_msgrefs is now typed + as "coalesced". + +2008-09-08 Stuart Hastings <stuart@apple.com> + + Radar 6070085 + * gcc/tree-ssa-alias.c (group_aliases): Continue merging alias + sets until the changes converge. + +2008-09-03 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6185344 + * c-typeck.c (c_finish_return): Don't do block specific + stuff when block has a return type. + * c-common.h (block_sema_info): block_has_return_type is + a new field. + * c-parser.c (c_parser_direct_declarator): Terminate type + parsing for block return types. + (c_parser_block_literal_expr): Added support to parse and + handle explicit return type for blocks. + +2008-08-28 Stuart Hastings <stuart@apple.com> + + Radar 5023884 + * gcc/config/darwin.h (LINK_SPEC): Remove "-multiply_defined + suppress". + +2008-08-28 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6160536 + * c-commmon.c (build_block_helper_name): New + * c-common.h (build_block_helper_name): New decl. + * c-parser.c (c_parser_block_literal_expr): Call + build_block_helper_name to build pretty helper function + name. + +2008-08-28 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6180456 + * c-decl.c (synth_block_byref_id_object_copy_func): Different + API for copying __block declared objects in c. + (synth_block_byref_id_object_dispose_func): Different API + for releasing __block declared objects in c. + * c-common.c (block_byref_assign_copy_decl): New + (build_indirect_object_id_exp): Cast to 'id *' in objective-c + mode only. + * c-common.h (build_block_byref_assign_copy_decl): New decl. + * c-parser.c (synth_copy_helper_block_func): Refactored code + to call build_block_byref_assign_copy_decl(). + +2008-08-27 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6177162 + * c-typeck.c (build_external_ref): Allow local static as a byref + variable by default. + +2008-08-27 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5780114 + * gcc/doc/extend.texi: Modify documentation for -fobjc-gc. + +2008-08-26 Stuart Hastings <stuart@apple.com> + + Radar 6131435 + * gcc/config/i386/i386.h (SLOW_BYTE_ACCESS): Remove check for + TARGET. + +2008-08-22 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6164211 + * c-typeck.c (build_array_ref): Preserve element's + protocol list when building array type. + +2008-08-22 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6172148 + * tree.h (BLOCK_SYNTHESIZED_FUNC): Define + * dwarf2out.c (dwarf2out_decl): Check for + block helpers and do not treat them as nested + functions. + * c-decl.c (build_helper_func_decl): Set BLOCK_SYNTHESIZED_FUNC + for all block helper functions. + +2008-08-25 Josh Conner <jconner@apple.com> + + Radar 6148015 + * config/arm/arm.h (ARG_POINTER_CFA_OFFSET): Define. + * config/arm/arm.c (arm_expand_prologue): Mark pushes as + RTX_FRAME_RELATED_P. + +2008-08-24 Caroline Tice <ctice@apple.com> + + Radars 6144664, 6145471, 6144634 + c-decl.c (build_block_byref_decl): Assign the source + location for each byref decl to the source location of + the helper function decl. + (build_block_ref_decl): Ditto for ref decls. + +2008-08-23 Josh Conner <jconner@apple.com> + + Radar 6162387 + * config/darwin-sections.def (objc_v2_selector_refs_section): + Change section type to literal_pointers. + +2008-08-22 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5595325 + * config/darwin-protos.h (darwin_handle_nsobject_attribute): New decl. + * config/darwin.c (darwin_handle_nsobject_attribute): New handler + for NSObject attribute. + * config/darwin.h: New entry for NSObject attribute table. + +2008-08-19 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5435299 + * c.opt (fnew-property-ivar-synthesis): New option. + +2008-08-20 Stuart Hastings <stuart@apple.com> + + Radar 6131435 + * gcc/config/i386.h (SLOW_BYTE_ACCESS): Fix APPLE LOCAL. + +2008-08-19 Stuart Hastings <stuart@apple.com> + + Radar 6131435 + * gcc/config/i386.h (SLOW_BYTE_ACCESS): Set false under + -mkernel, -fapple-kext, or -m64. + +2008-08-18 Josh Conner <jconner@apple.com> + + Revert: + 2008-08-14 Eugene Marinelli <marinelli@apple.com> + Radar 6149764 + * Makefile.in: Add treecode-num-insns.def to tree-inline.o dependency + list. + + 2008-08-06 Eugene Marinelli <marinelli@apple.com> + Radar 6013597 + * params.def: Change default PARAM_INLINE_CALL_COST from 16 to 2. + Multiply instruction-count related parameters by 0.55 to account + for new instruction count estimation. + * tree-inline.c (estimate_num_insns_1): Replace most cases with + addition of constants defined in treecode-num-insns.def. Other cases + modified to return 1000 times the estimated number of instructions. + (estimate_num_insns): Divide result of estimate_num_insns_1 by 1000. + * treecode-num-insns.def: Add + +2008-08-14 Eugene Marinelli <marinelli@apple.com> + + Radar 6149764 + * Makefile.in: Add treecode-num-insns.def to tree-inline.o dependency + list. + +2008-08-14 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5822844 + * c-typeck.c (digest_init): Handler block as initializer. + (c_finish_return): check for completed block before + analyzing block's return expression. + * varasm.c (output_constant): Allow outputting block data. + * c-common.h (BLOCK_IS_GLOBAL): New flag. + (block_is_complete): New field in block data structure. + * c-parser.c (build_block_struct_initlist): New initializer and + flag for global block data. + (build_block_literal_tmp): Temporary data for global block is + declared as global static. + (c_parser_block_literal_expr): Removed diagnostics for global blocks. + Moved fixing helper function type earlier before its tree is built. + +2008-08-11 Jim Grosbach <grosbach@apple.com> + + Radar 6141565 + * gcc/c-common.c (iasm_constraint_for): fix compiler warning + +2008-08-08 Stuart Hastings <stuart@apple.com> + + Radar 6131435 + * gcc/config/i386.h (SLOW_BYTE_ACCESS): Set false for all + targets. + +2008-08-08 Stuart Hastings <stuart@apple.com> + + Radar 5971844 + * gcc/config/i386/darwin.opt + (-mdarwin-rtl-pre-ignore-critical-edges): New flag. + * gcc/postreload-gcse.c (eliminate_partially_redundant_load): + Disable critical edge check under + -mdarwin-rtl-pre-ignore-critical-edges. + +2008-08-07 Stuart Hastings <stuart@apple.com> + + Radar 6128170 + * gcc/except.c (output_function_exception_table): Move .align + ahead of both labels. + +2008-08-06 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6014138 + * c-decl.c (build_block_byref_decl): In the presence of nested "{" + move up the scope chain until reaching the main function body's scope. + +2008-08-06 Eugene Marinelli <marinelli@apple.com> + + Radar 6013597 + * params.def: Change default PARAM_INLINE_CALL_COST from 16 to 2. + Multiply instruction-count related parameters by 0.55 to account + for new instruction count estimation. + * tree-inline.c (estimate_num_insns_1): Replace most cases with + addition of constants defined in treecode-num-insns.def. Other cases + modified to return 1000 times the estimated number of instructions. + (estimate_num_insns): Divide result of estimate_num_insns_1 by 1000. + * treecode-num-insns.def: Add + +2008-08-06 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6112131 - again (restore __byref again). + * config/darwin-c.c (darwin_cpp_builtins): Define __block. + +2008-08-05 Eugene Marinelli <marinelli@apple.com> + + Radar 6020402 + Re-add fixed version of original patch for radar 6020402. + +2008-08-05 Jim Grosbach <grosbach@apple.com> + + Radar 6110622 + * config/arm/arm.md (soft_muldi3): Missing length attribute + +2008-08-05 Stuart Hastings <stuart@apple.com> + + Radar 6102803 + * flow.c (recompute_reg_usage): If targeting ppc with + -ftree-pre, clear existing reg-lifetime info to insure + thorough dead-code elimination. + * sbitmap.c (dump_sbitmap_vector): Avoid dumping uninitialized + memory. + +2008-08-04 Eugene Marinelli <marinelli@apple.com> + + Radar 6020402 + Temporarily reverting previous fix because of compilation error. + +2008-08-04 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6040305 - work in progress. + * c-decl.c (build_indirect_object_id_exp): Removed. + * c-common.c (build_indirect_object_id_exp): Added + * c-common.h (build_indirect_object_id_exp): New decl. + * config/darwin-c.c (darwin_cpp_builtins): Define __byref + in c++ mode as well. + +2008-08-04 Eugene Marinelli <marinelli@apple.com> + + Radar 6020402 + * calls.c (store_unaligned_arguments_into_pseudos): Add additional + argument to store_bit_field call. + * expmed.c (store_bit_field): Add argument for type of struct + containing the bit field. + (widest_mode_including_no_volatile_fields): Add. + (store_fixed_bit_field): Use widest_mode_including_no_volatile_fields + to set the maximum mode size to the size around the current field + that does not include any volatile fields. + * expr.c (emit_group_store, copy_blkmode_from_reg, write_complex_part): + Add arguments to store_bit_field calls. + * expr.h (store_bit_field): Add argument for struct type. + * ifcvt.c (noce_emit_move_insn): Add arguments to + store_bit_field calls. + +2008-08-4 Jim Grosbach <grosbach@apple.com> + Radar 6090616 + * global.c (set_preference): Add checks to prevent integer underflow + of register numbers. + +2008-08-01 Geoff Keating <geoffk@apple.com> + + Radar 5095227 + * config/rs6000/rs6000.c (darwin_rs6000_override_options): Don't + enable -fstack-protector for PPC kexts targeting 10.6 by default. + * g++.apple/kext-stackprotect-1.c: New. + * g++.apple/kext-stackprotect-2.c: New. + +2008-08-01 Jon Ziegler <jonz@apple.com> + + Radar 5095227 + Re-apply Geoff's patch for -fstack-protector. + +2008-08-01 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5965787 (tweak). + * c-decl.c (build_indirect_object_id_exp): Fixed offset + computation of the 'object' field. + +2008-07-31 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6040305 - work in progress + * gimplify.c (gimplify_return_expr): Do not gimplify + return expresison yet if inside a block. + +2008-07-30 Bill Wendling <wendling@apple.com> + + Radar 6113240 + * tree.h: Declare invoke_impl_ptr_type. + * dwarf2out.c (is_objc): New. Returns true if language is ObjC. + (modified_type_die): Use is_objc instead of c_dialect_objc. + (add_type_attribute): Don't assert if invoke_imple_ptr_type is null. + * c-common.h: invoke_impl_ptr_type is now declared in tree.h. + +2008-07-30 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6112131 (__block renamed to __byref) + * config/darwin-c.c (darwin_cpp_builtins): Remove __block + definition. + * c-parser.c: Refer to __byref instead of __block. + * c-common.c: Ditto + * c-typeck.c: Ditto + * c-decl.c: Ditto. Also, restored it + to its previous version. + +2008-07-25 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6014138 + * config/darwin-c.c (darwin_cpp_builtins): Define __block + same as __byref. + * c-parser.c: All __byref are renamed to __block. + * c-decl.c: Ditto + * c-typeck.c: Rename __byref to __block. + A __block variable is added to the 'byref' list now. + +2008-07-23 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6096219 + * c-common.c (handle_blocks_attribute): __blocks' argument is now + 'byref'. + * config/darwin-c.c (darwin_cpp_builtins): Expand __byref into + __attribute__((__blocks__(byref))). + +2008-07-21 Stuart Hastings <stuart@apple.com> + + Radar 6050374 + * local-alloc.c (reg_inheritance_1): Check for int->double + SUBREG cast, assume it uses the pic-base. + +2008-07-18 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6068877 + * c-common.h (objc_create_init_utf16_var): Removed decl. + * stub-objc.c (objc_create_init_utf16_var): Removed definition. + * config/darwin-protos.h: Renamed objc_create_init_utf16_var, + objc_cvt_utf8_utf16 to create_init_utf16_var and cvt_utf8_utf16; + respectively. + * config/darwin.c (darwin_build_constant_cfstring): Call + create_init_utf16_var, instead of objc_create_init_utf16_var. + * config/darwin-c.c (create_init_utf16_var): New routine. + (cvt_utf8_utf16): Used to be called objc_cvt_utf8_utf16. + +2008-07-18 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6084601 + * c-opts.c (c_common_post_options): Allow blocks in C99 for objc + programs. + +2008-07-18 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6083129 - twiked + * c-decl.c (release_all_local_byrefs_at_return): Do not release + imported __byref variables in the block. + * c-parser.c (gen_block_byref_release_exp): Do not release __byref + variables outside of the block when returning from the block. + +2008-07-17 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6083129 + * c-decl.c (push_scope): set byref_in_current_scope in the new scope. + (in_bc_stmt_block, outof_bc_stmt_block, + release_all_local_byrefs_at_return, diagnose_byref_var_in_current_scope, + release_local_byrefs_at_break): New. + (pop_scope): Call gen_block_byref_release_exp when a __byref variable + is exited. + * c-typeck.c (c_finish_goto_label): Diagnose __byref variables in presense of + gotos. + (c_finish_block_return_stmt): Much clean up and simplified. + (c_finish_return): Call the new and improved c_finish_block_return_stmt. + (c_finish_return): Release out-of-scope __byref locals when return/break + is seen. + * c-common.h: Several new declarations. + * c-parser.c (c_parser_switch_statement): call to in_bc_stmt_block + and outof_bc_stmt_block. + (c_parser_while_statement): Ditto. + (c_parser_do_statement): Ditto. + (c_parser_for_statement): Ditto. + (build_block_byref_release_decl, gen_block_byref_release_exp): New. + (synth_destroy_helper_block_func): Simplified to call + build_block_byref_release_decl. + +2008-07-15 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6035389 + * convert.c (convert_to_integer): Can convert block pointer to integer. + +2008-07-15 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5988451 + * c-decl.c (build_block_ref_decl): Insert copied in variable + in each enclosing block which does not use it. + (begin_block): Remove setting of "the_scope" field of the block. + (in_imm_block): Fix effect of changing the "the_scope" field. + (lookup_name_in_block): Do not skip over copied-in variables when + looking up a variable in the block. + * c-parser.c (c_parser_block_literal_expr): Set block's "the_scope" field + to the helper function's outer-most body scope. + +2008-07-09 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6034839 + * c-parser.c (c_parser_block_literal_expr): Warning to error. + +2008-07-08 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5988451 + * c-parser.c (build_block_struct_type): If inner block has copy/destroy + helpers, so does its outer block. + (c_parser_block_literal_expr): Fix unique_count so we get unique helpers + when having nested blocks. + +2008-07-08 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6048570 + * c-typeck.c (c_finish_return): Error on returning a block on the stack. + +2008-07-07 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6048397 (twik). + (causes build failure with enable-checking on). + * dwarf2out.c (gen_variable_die) check for node + kind. + +2008-07-03 Caroline Tice <ctice@apple.com> + + Radar 6048397 + * dwarf2out.c (find_closure_byref_var_real_type): New function. + (build_byref_var_location_expression): New function. + (add_closure_byref_var_location_attribute): New function. + (gen_variable_die): Check the type of the variable to see if it is a + pass-by-reference closure variable; if so, try to call + find_closure_byref_var_real_type) to get its type, and call + add_closure_byref_var_location_attribute to get its location; if those + calls fail, fall back on the old functionality. + +2008-06-19 Eugene Marinelli <marinelli@apple.com> + + Radar 5923888 + * config/i386/i386.h (TARGET_IASM_OP_CONSTRAINT): Add addpd instruction. + +2008-06-16 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5939894 (twik) + * c-typeck.c : Routine build_closure_internal_types moved + from here to: + * c-decl.c : Also, check for previous declaration of + "struct invoke_impl" before defining one. + * c-parser.c : Removed a comment, so makediff may be happy again. + (unrelated to this radar). + +2008-06-06 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5988451 + * c-decl.c (lookup_name_in_closure): check for flags + only if having a var_decl in scope. + +2008-06-06 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5992047 + * c-parser.c (synth_destroy_helper_closure): Lookup _Block_destroy + before declaring one. + +2008-06-05 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5988995 + * c-typeck.c (types_are_closure_compatible): Nested block pointer + types must be considered when matching block types. + +2008-06-05 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5982990 + * c-parser.c (c_parser_objc_synch_compound_statement): New + (c_parser_objc_synchronized_statement): Call + c_parser_objc_synch_compound_statement. + +2008-06-04 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5985368 + * c-parser.c (c_parser_declaration_or_fndef): Better diagnostics for + a bad block definition. + +2008-05-30 Jim Grosbach <grosbach@apple.com> + + Radar 5946347 + * gcc/doc/extend.texi: Add documentation for ARM Type Attributes + ms_struct and gcc_struct. Remove errant reference to ms_struct and + gcc_struct as variable attributes for x86 and PPC. + * gcc/doc/invoke.texi: Add documentation for -mms-bitfields for + x86, PPC, and ARM target options. + * gcc/doc/tm.texi: Add documenation for TARGET_FIELD_MS_STRUCT_ALIGN + and BIGGEST_MS_STRUCT_ALIGNMENT. + * gcc/testsuite/gcc.dg/bf-ms-layout.c: Run for ARM. Add correct + testcase values for ARM. + * gcc/testsuite/gcc.dg/bf-no-ms-layout.c: Ditto. + * gcc/testsuite/gcc.dg/attr-ms_struct-2.c: Run for ARM. + * gcc/testsuite/gcc.dg/attr-ms_struct-1.c: Run for ARM. + * gcc/testsuite/gcc.dg/bf-ms-layout-2.c: Run for ARM. + * gcc/defaults.h (TARGET_FIELD_MS_STRUCT_ALIGN): New macro. + If not explicitly set by the target, TARGET_FIELD_MS_STRUCT_ALIGN + is defined to TYPE_ALIGN of the type of the field. + (BIGGEST_MS_STRUCT_ALIGNMENT): Ditto. If not explicitly set by + the target, BIGGEST_MS_STRUCT_ALIGNMENT is defined to + BIGGEST_ALIGNMENT. + * gcc/stor-layout.c (start_record_layout): Allow a target to + override the default offset_alignment for ms_struct attributed + records by defining BIGGEST_MS_STRUCT_ALIGNMENT. + (update_alignment_for_field): Use TARGET_FIELD_MS_STRUCT_ALIGN + for determining the alignment for a field in an ms_struct attributed + record. + (place_field): Ditto. + * gcc/config/arm/arm.c (arm_handle_ms_struct_attribute): New function. + (arm_handle_gcc_struct_attribute): Ditto. + (arm_ms_bitfield_layout_p): Ditto. + (arm_field_ms_struct_align): Ditto. + (TARGET_MS_BITFIELD_LAYOUT_P): New macro. + (arm_attribute_table): New entries for ms_struct and gcc_struct + attributes. + (arm_set_default_type_attributes): If -mms-bitfields was specified, + or if #pragma ms_struct is on, apply an ms_struct attribute to + an structure type definition. + * gcc/config/arm/arm.h (TARGET_FIELD_MS_STRUCT_ALIGN): New macro. + (BIGGEST_MS_STRUCT_ALIGNMENT): Ditto. + * gcc/config/arm/arm-protos.h (arm_field_ms_struct_align): Prototype. + * gcc/config/arm/arm.opt (-m[no-]ms-btifields): New target options. + +2008-05-30 Josh Conner <jconner@apple.com> + + Radar 5974622 + * flow.c (flow_lite): Deallocate pic_rtx_inheritance. + * local-alloc.c (reg_inheritance): Only calculate if !optimize. + +2008-05-30 Josh Conner <jconner@apple.com> + + Radar 5933878 + Backport from 4.3: + 2007-07-09 Geoffrey Keating <geoffk@apple.com> + PR 32617 + * c-common.c (c_alignof_expr): Look at DECL_ALIGN of + FUNCTION_DECLs. + (handle_aligned_attribute): Allow use on FUNCTION_DECLs. + * varasm.c (assemble_start_function): Honor DECL_ALIGN + for FUNCTION_DECLs. Don't use align_functions_log if + DECL_USER_ALIGN. + * print-tree.c (print_node): Print DECL_ALIGN and DECL_USER_ALIGN + even for FUNCTION_DECLs. + * c-decl.c (merge_decls): Propagate DECL_ALIGN even for + FUNCTION_DECLs. + * tree.h (DECL_ALIGN): Update for new location of 'align'. + (DECL_FUNCTION_CODE): Update for new location and name of + 'function_code'. + (DECL_OFFSET_ALIGN): Update for new location of 'off_align'. + (struct tree_decl_common): Move 'align' and 'off_align' out + of union, ensure they're still on a 32-bit boundary. Remove + other fields in union 'u1'. + (struct tree_function_decl): Add field 'function_code' replacing + 'u1.f' in tree_decl_common. + * tree.c (build_decl_stat): Set initial value of DECL_ALIGN. + * doc/extend.texi (Function Attributes): Add 'aligned' attribute. + (Variable Attributes): Cross-reference 'aligned' attribute + to Function Attributes. + * flags.h (force_align_functions_log): Delete. + * toplev.c (force_align_functions_log): Delete. + +2008-05-28 Josh Conner <jconner@apple.com> + + Radar 5939894 + * dwarf2out.c (gen_variable_die): Move special handling of + CLOSURE_POINTER_TYPE from here... + (gen_variable_die): ...to here. + * c-typeck.c (build_closure_call): Add assert of + invoke_impl_ptr_type. Move call of + build_closure_internal_types from here... + * c-decl.c (make_closure_pointer_declarator): ...to here. + * c-parser.c (build_closure_struct_initlist): Add assert + of invoke_impl_ptr_type. + +2008-05-27 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5965787 - (some blocks clean up). + * c-decl.c (build_indirect_object_id_exp): Check correct + macro for size of a pointer. + (new_block_byref_decl): Better way of allocation a buffer. + (init_byref_decl): Some flags are renamed to match the runtime name. + End function type's typelist with a void. + * c-common.h: For blocks, use same flags as in its runtime. + * c-parser.c (build_closure_struct_type): More cleanup. + (build_closure_struct_initlist): More cleanup. + (synth_copy_helper_closure_fuction): All function type's type + list must end with a void type. + (synth_destroy_helper_closure): Ditto. + (c_parser_closure_literal_exp): Ditto. + +2008-05-27 Stuart Hastings <stuart@apple.com> + + Radar 5951842 + * config/i386/sse.md (sse2_lshrti3): Moved from here... + * config/i386/i386.md (sse2_lshrti3): ...to here. + * testsuite/gcc.apple/5951842.c: New. + +2008-05-23 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5925639 + * c-parser.c: (c_parser_for_statement): Check for a non-null + collection expression before deciding that it is a fraeach + statement. + +2008-05-23 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5957801 + * c-typeck.c (build_conditional_expr): Allow convesion + of a pointer type null to a block pointer in a + conditional expression. + +2008-05-23 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5928316 + * c-typeck.c (build_binary_op): Added check for + block pointer. + +2008-05-23 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5925781 + * c-common.c (handle_nonnull_attribute): Support block pointer + just like a pointer for nonnull attribute. + (check_nonnull_arg): Ditto. + +2008-05-20 Jon Ziegler <jonz@apple.com> + + Radar 5095227 + Back out Geoff's patch for -fstack-protector. + Leave in the test case. + +2008-05-20 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5932809 - minor change for runtime delight. + * c-parser.c (build_closure_struct_type): Add strcutor fields + for __byref 'id' object blocks as well. + (build_closure_struct_initlist): And their initializers. + +2008-05-16 Geoff Keating <geoffk@apple.com> + + Radar 5095227 + * common.opt (-fstack-protector): Default to -1. + * config/darwin.c (darwin_override_options): If on 10.5 and + -fstack-protector is unspecified, switch it on. + * toplev.c (process_options): If -fstack-protector is still + unspecified, switch it off. + +2008-05-16 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5932809 + * tree.h: VAR_DECL node now use two new flags. + (COPYABLE_BYREF_LOCAL_VAR, COPYABLE_BYREF_LOCAL_NONPOD): + New macros to access these flags. + * c-decl.c (build_indirect_object_id_exp, + synth_block_byref_id_object_copy_func, + synth_block_byref_id_object_dispose_func, + new_block_byref_decl, init_byref_decl): New. + (finish_decl): Build a new type for a __byref local + variable and initialize it to a list of initializers. + (build_byref_local_var_access): New routine. + (build_closure_byref_decl): Merge the BYREF flags + into the newly declared variable. + (build_closure_ref_decl): decl' was previously declared byref. + Copy the value embedded in the above variable. + * c-typeck.c (build_external_ref): build_closure_ref_decl call + takes one less argument. + (do_digest_init): New. + * c-common.c (handle_blocks_attribute): New routine to + implement __byref attribute on variables. + * c-common.h: Bunch of new declarations to implement + __byref variables. + * stub-objc.c (cast_to_pointer_to_id): New stub. + * c-parser.c (c_parser_postfix_expression): Code to transform + a reference to a __byref variable X into + __Block_byref_X.forwarding->X. + (build_closure_struct_type): Go through list of __byref + variables for the blocks and set hasByrefNonPOD and hasByrefPOD + flags for NonPOD and POD of such variables. __byref POD variables + also require addition of the two strcutor pointer fields in the + block structure type. + (build_closure_struct_initlist): Initialzer list must also match the + new requiement for __byref PODs. + (synth_copy_helper_closure_func): For each __byref declared variable + used in |...| Must generate call to _Block_byref_assign_copy. + (synth_destroy_helper_closure): For each __byref declared variable + used in |...| Must generate call to _Block_byref_release. + (c_parser_closure_literal_exp): Must synthesize helper functions for + __byref local variables declared as byref in the block. + + * config/darwin-c.c (darwin_cpp_builtins): Define + __byref attribute if -fblocks. + +2008-05-15 Stuart Hastings <stuart@apple.com> + + Radar 5695218 + * stmt.c (expand_asm_operands): Revert last change. + +2008-05-13 Stuart Hastings <stuart@apple.com> + + Radar 5695218 + * common.opt (-fglobal-alloc-prefer-bytes): New flag. + * doc/invoke.texi (-fglobal-alloc-prefer-bytes): Document it. + * tree-pass.h (pass_life3): Declare new pass. + * passes.c (init_optimization_passes): Add pass_life3. + * flow.c (normal_flow, maybe_uses_pic_offset_table_rtx, + gate_flow_lite, flow_lite, pass_life3): New. + (verify_local_live_at_start): Tolerate picbase register + deaths. (update_life_info, alloc_reg_life_data, + free_propagate_block_info, mark_set_1): Check normal_flow + before setting REG_LIVE_LENGTH(). (attempt_auto_inc): Check + normal_flow before setting REG_LIVE_LENGTH(), call + maybe_uses_pic_offset_table_rtx(). + * global.c (global_alloc): Rebalance parenthesis, restore + un-alloc-ability status of PIC_OFFSET_TABLE_REGNUM. + (allocno_compare): Prefer byte registers. + (remove_invlidated_death_notes): Tolerate out-of-range + original regnos. (dump_global_regs): Dump RTXs instead of + numbers, add register names to hard reg list. + (dump_hard_regset, debug_hard_regset): New. + * local-alloc.c (pic_rtx_inheritance, reg_inheritance_matrix, + reg_inheritance_1, reg_inheritance, dump_inheritance, + debug_inheritance): New. (local_alloc): Initialize and free + reg_inheritance_matrix. (update_equiiv_regs): Call + reg_inheritance_1 on every insn. + * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Rewrite. + * rtl.h (replace_regs): Declare. + * config/i386/i386.c (pic_labels_used): Add GTY marker. + (ix86_globally_replace_pic_reg): New. (ix86_save_reg): + Handle non-picbase useage of %ebx, call + ix86_globally_replace_pic_reg(). + (ix86_tieable_integer_mode_p): Convert integral return + expression into bool. + * stmt.c (expand_asm_operands): Revise to handle new %ebx + allocation policy. + +2008-10-30 Josh Conner <jconner@apple.com> + + Radar 6297258 + * config/arm/arm.c (arm_output_mi_thunk): Emit 32-bit branch + for thumb2 target. + +2008-10-24 Josh Conner <jconner@apple.com> + + Radar 6305331 + * config/arm/arm.c (arm_asm_output_addr_diff_vec): Disable support + for compact switch tables with -mlongcall. + * config/arm/arm.h (TARGET_COMPACT_SWITCH_TABLES): New definition... + (CASE_VECTOR_SHORTEN_MODE): ...use it. + * config/arm/arm.md (casesi): ...use it. + (thumb_casesi_internal): ...use it. + +2008-10-20 Fariborz Jahanian <fjahanian@apple.com> + + Radar 6255595 + * config/darwin.c (output_objc_section_asm_op): Add two new section names. + (objc_internal_variable_name): New routine. + (machopic_select_section): Call objc_internal_variable_name. + * config/darwin-sections.def: Define two new kinds of + __DATA section. + +2008-10-16 Josh Conner <jconner@apple.com> + + Radar 6293989 + * arm.c (arm_legitimate_address_p): Don't allow pre-inc/dec or + post-dec addressing for NEON vector operations. + (thumb2_legitimate_address_p): Likewise. + +2008-10-16 Josh Conner <jconner@apple.com> + + Radar 6288519 + * config/arm/arm.md (casesi): Disallow for TARGET_THUMB && + TARGET_LONG_CALLS. + (thumb_casesi_internal): Likewise. + +2008-10-13 Josh Conner <jconner@apple.com> + + Radar 6280380 + * config/arm/arm.c (arm_final_prescan_insn): Check predicability + of insns before allowing them to be predicated. + +2008-10-09 Josh Conner <jconner@apple.com> + + Radar 6279481 + * config/arm/arm.c (arm_adjust_insn_length): Don't adjust thumb-2 + epilogue lengths. + +2008-10-09 Josh Conner <jconner@apple.com> + + Radar 6267907 + * config/arm/thumb2.md (thumb2_casesi_internal): Mark scratch reg as + early-clobber. + (thumb2_casesi_internal_pic): Remove this define_insn. + * config/arm/arm.md (casesi): Don't use thumb2_casesi_internal_pic. + +2008-10-03 Josh Conner <jconner@apple.com> + + Radar 6268204 + * doc/invoke.texi (-mkernel): Document that -mlong-branch + is set for ARM. + * config/arm/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Have -mkernel + and -fapple-kext imply -mlong-branch. + +2008-10-03 Josh Conner <jconner@apple.com> + + Radar 6261739 + * config/arm/thumb2.md (thumb2_cbz): Check for low-register + use when calculating cost. + (thumb2_cbnz): Likewise. + +2008-10-02 Josh Conner <jconner@apple.com> + + Radar 6134442 + * config/arm/t-darwin: Re-enable multi-libs for v5. + +2008-09-30 Josh Conner <jconner@apple.com> + + Radar 6197406 + * config/arm/neon.md (mulsf3addsf_neon, mulsf3subsf_neon): + Remove. + +2008-09-30 Josh Conner <jconner@apple.com> + + Radar 6251664 + * config/arm/neon.md (mulsf3subsf_neon): Reverse operands to + minus. + +2008-09-30 Josh Conner <jconner@apple.com> + + Radar 6160917 + * config/arm/arm.c (neon_vector_mem_operand): Call + arm_legitimate_index_p. + (neon_reload_in): New function. + (neon_reload_out): New function. + * config/arm/arm-protos.h (neon_reload_in): New proto. + (neon_reload_out): New proto. + * config/arm/neon.md (reload_in<mode>): New expand pattern. + (reload_out<mode>): New expand pattern. + * config/arm/predicates.md (neon_reload_mem_operand): New + predicate. + +2008-05-12 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5925784 + * c-parser (c_parser_closure_literal_exp): Set TREE_USED + flag on _self hiddent argument. + +2008-05-08 Josh Conner <jconner@apple.com> + + Radar 5901604 + * config/rs6000/t-darwin (MULTILIB_EXTRA_OPTS): Define. + +2008-05-08 Josh Conner <jconner@apple.com> + + Radar 5914860 + * config/arm/t-darwin (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): + Add armv6. + (TARGET_LIBGCC2_CFLAGS): Remove armv6. + (DARWIN_EXTRA_CRT_BUILD_FLAGS): Remove. + +2008-09-19 Josh Conner <jconner@apple.com> + + Radar 6216388 + * config/arm/arm.c (TARGET_DEFAULT_TARGET_FLAGS): Remove + MASK_SCHED_PROLOG. + +2008-09-19 Josh Conner <jconner@apple.com> + + Radar 6196857 + * config/arm/arm.c (arm_output_epilogue): Use pop instead of ldmfd + on Thumb-2. + +2008-04-30 Caroline Tice <ctice@apple.com> + + Radar 5811961 + * c-decl.c: (declare_closure_prologue_local_vars): Set the source + location for the new decl expr statement to be the source location of + the decl tree. + +2008-04-25 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5803005 (tweaked) + * c-typeck.c (build_external_ref): Refactored global decl checks. + +2008-09-11 Josh Conner <jconner@apple.com> + + Radar 6150882 + * config/arm/ieee754-df.S: Add do_it macros to allow building + thumb-2. + * config/arm/ieee754-sf.S: Likewise. + * config/arm/lib1funcs.asm: Redefine macros to allow building + thumb-2. Disable compact switch table code for thumb-2. + * config/arm/arm.c (arm_override_options): armv7a implies thumb-2. + (arm_legitimate_index_p): Require VECTOR_MODE_P to use NEON + instruction ranges. + (thumb2_legitimate_index_p): Likewise. + * config/arm/arm.h (TARGET_THUMB): Define. + * config/arm/arm.opt (thumb_option): New option. + +2008-09-09 Josh Conner <jconner@apple.com> + + Radar 6195983 + * config/arm/arm.c (thumb2_output_casesi): Fix table invocation + instructions. + (arm_asm_output_addr_diff_vec): Emit b.w instead of b for + Thumb-2. + +2008-09-03 Jim Grosbach <grosbach@apple.com> + + * Radar 6150859 + * config/arm/arm.c (arm_print_operand): Add 'p' output code to + print a d{0-15} reference to a 32 bit register. + * config/arm/arm.h (VFP_REGNO_OK_FOR_SINGLE): Restrict SF mode + values to even numbered float registers so they can be referenced + by the 32x2 NEON instructions. + * config/arm/vfp.md (*addsf3_vfp, *subsf3_vfp, *mulsf3_vfp, + *mulsf3addsf_vfp, *mulsf3subsf_vfp): Disable for TARGET_NEON + since we'll be using the NEON instructions instead. + * config/arm/neon.md (*addsf3_neon, *subsf3_neon, *mulsf3_neon, + *mulsf3addsf_neon, *mulsf3subsf_neon): New productions. + +2008-08-26 Jim Grosbach <grosbach@apple.com> + + Radar 6152801 + * config/arm/arm.c (thumb2_output_casesi, + arm_asm_output_addr_diff_vec): For thumb2, use direct + braches for SImode switch tables (like we do for ARM mode). + +2008-08-25 Josh Conner <jconner@apple.com> + + * config/arm/t-darwin: Disable multi-libs for v5. + +2008-04-24 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5803005 + * c-typeck.c (build_external_ref): Treat globals as 'byref' by default. + +2008-04-24 Caroline Tice <ctice@apple.com> + + Radar 5811943 + * tree.h (TYPE_CLOSURE_IMPL_STRUCT): New macro. + (lang_flag_2): Use previously unused field in tree_type to indicate + closure structs. + * dwarf2out.c (c-common.h): New include statement. + (dwarf_attr_name): Add case for DW_AT_APPLE_closure. + (gen_variable_die): Give pointers to closures the + invoke_impl_ptr_type. + (gen_struct_or_union_type_die): Add DW_AT_APPLE_closure + to structs that define closures. + * dwarf2.h (DW_AT_APPLE_closure): New Dwarf attribute. + * c-typeck.c (invoke_impl_ptr_type): Move declaration from here to + c-common.c + (build_closure_internal_types): Set TYPE_CLOSURE_IMPL_STRUCT + flag for closure structs. + * c-common.c (invoke_impl_ptr_type): Move declaration to here from + c-typeck.c. + +2008-04-23 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5882266 + * c-typeck.c (types_are_closure_compatible): Check for underlying + pointer types as well. + +2008-08-11 Josh Conner <jconner@apple.com> + + Radar 6134442 + * config/arm/t-darwin: Enable multi-libs for v5. + +2008-08-06 Jim Grosbach <grosbach@apple.com> + + Radar 6093696 + * config/arm/t-darwin (t-darwin): Enable multi-libs for v7 + +2008-08-06 Jim Grosbach <grosbach@apple.com> + + Radar 6129445 + * config/arm/arm.md (mulsidi3, umulsidi3, smulsi3_highpart, + umulsi3_highpart): Remove conditionalization on non-v6 + (mulsidi3_v6, umulsidi3_v6, smulsi3_highpart_v6, + umulsi3_highpart_v6): Remove production. + +2008-04-23 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5882266 + * tree.c (reconstruct_complex_type): Add case for + closure pointer types. + * c-decl.c (make_closure_pointer_declarator): Get the 'itarget' + which has the attribute info. + +2008-04-22 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5878380 + * c-typeck.c (convert_for_assignment): Check for a pointer type + before checking for its pointee type. + +2008-04-16 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5868913 + * c-cppbuiltin.c (c_cpp_builtins): Do not define __BLOCKS__ + in c++/ObjC++ modes. + +2008-04-15 Stuart Hastings <stuart@apple.com> + + Radar 5862465 + * tree.h (PTR_OR_REF_CHECK, POINTER_TYPE_P): Add + CLOSURE_POINTER_TYPE. + * fold-const.c (fold_convert): Add CLOSURE_POINTER_TYPE. + * testsuite/gcc.apple/closure-5862465.c: New. + +2008-04-02 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5811599 + * c-typeck.c (types_are_closure_compatible): Replaced "Reseverd" field + with "void *isa" in "struct invoke_impl". + * c-parser.c (build_closure_struct_type): Declared "void *_NSConcreteStackBlock" + if necessary and inisitlize 'isa' field with &_NSConcreteStackBlock. + +2008-04-01 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5834569 + * c-parser.c (build_closure_struct_initlist): Variables used as + initializers to block structure must be flagged as TREE_USED. + +2008-04-01 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5344182 + * dwarf2out.c (add_prototyped_attribute): Check for objc as + the language to generate DW_AT_prototyped dwarf attr. + +008-03-31 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5831855 + * c-typeck.c (convert_for_assignment): Block and 'id' types + are interchangeable. + +2008-03-28 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5809099 + * convert.c (convert_to_pointer): Allow typecast of closure + pointer to 'id'. + (convert_to_closure_pointer): Allow typecast of 'id' + of a closure pointer expression. + +2008-03-24 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5824092 + * c-parser.c (c_parser_closure_literal_exp): Diagnose + declaration of block literal at global scope. + +2008-03-26 Caroline Tice <ctice@apple.com> + + Radar 5811952 + * dwarf2out.c (dwarf2out_decl): Special treatment for + Block helper function. + +2008-03-25 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5811887 (minor change) + * c-opts.c (c_common_post_options): Remove conditional check + of pedantic when setting flag_blocks. + +2008-03-24 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5811887 + * c-cppbuiltin.c: flag_closures renamed to flag_blocks + * c-parser.c: Ditto. + * c.opt: flag_closures renamed to flag_blocks. flag_blocks + defaulted to -1. + * c-opts.c (c_common_post_options): All flavors of c99, blocks are off by + default unless requested via -fblocks. + +2008-03-24 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5814025 + * c-tree.h (make_closure_pointer_declarator): Takes + additional argument. + * c-decl.c (grokdeclarator): Get 'const'-ness of closure + pointer. + (make_closure_pointer_declarator): Takes additional argument for + const/volatile. + * c-parser.c (c_parser_declarator): Pass down attribute info. + to make_closure_pointer_declarator. + +2008-03-18 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5803600 + * c-decl.c (add_closure_global_byref_list, + in_closure_global_byref_list): New defs. + * c-common.h (add_closure_global_byref_list, + in_closure_global_byref_list): New decls. + * c-typeck.c (build_external_ref): global variables + declared as 'byref' are enterred in their own list + of such declarations per each closure. + * c-parser.c (c_parser_postfix_expression): Remove previous fix. + (c_parser_closure_byref_declaration): Check for global + 'byref' by calling in_closure_global_byref_list. + +2008-03-18 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5805175 + * c-decl.c (build_closure_ref_decl): Set TREE_READONLY flag + on readonly declaration. + +2008-03-17 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5803600 + * c-typeck.c (build_external_ref): Access global 'byref' + variables directly. + * c-parser.c (c_parser_postfix_expression): We are accessing + global 'byref' variables directly. Do not indirect derefence + them. + +2008-03-13 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5795493 + * c-typeck.c: Renamed typesAreClosureCompatible to + types_are_closure_compatible. + +2008-03-12 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5795493 - type matching of closure types + * c-typeck.c (comptypes_internal): Added case for + CLOSURE_POINTER_TYPE. + +2008-03-12 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5796058 - ivar in blocks + * c-decl (build_closure_byref_decl): Takes an additional + argument for the initializer expression. + (build_closure_ref_decl): Ditto. + * c-typeck.c (build_external_ref): Call to build_closure_byref_decl, + build_closure_ref_decl get extra argument. + * c-common.h (build_closure_ref_decl, build_closure_byref_decl): + Take additional argument. + +2008-03-11 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5732232 (Related to change of command option/macro) + * c-cppbuiltin.c: __CLOSURES__ macro rename __BLOCKS__ + * c.opt: -fclosures change to -fblocks. + +2008-03-10 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5782740 - part 2 (bug fix). + * c-parser.c (synth_copy_helper_closure, + synth_destroy_helper_closure): set DECL_ARG_TYPE field of input + arguments for the two synthesized helper functions. + +2008-03-06 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5782740 + * stub-objc.c (retain_closure_component, release_closure_component, + copy_in_object, closure_requires_copying): New stubs. + * c-decl.c (build_helper_func_decl): Setting of CLOSURE_HELPER_FUNC + move at the call site. + (start_closure_helper_function): Changed first argument, added + 2nd argument to conditionally generate the result_decl node. + * c-common.h: Added two new fields to struct closure_sema_info + More extern function decls. + * c-parser.c (build_closure_struct_type): Conditionally add + two new fields to synthesize "struct closure" type. + (build_closure_struct_initlist): Conditionally add helper copy/destroy + function pointers to closure literals. + Set the 'flags' field properly. + (synth_copy_helper_closure_func): New routine to synthesize a closure + copy helper function. + (synth_destroy_helper_closure_func): New routine to synthesize a closure + destroy helper function. + (c_parser_closure_literal_exp): If needed, build closure copy/destroy helper + function declarations and ask for their synthesis. + +2008-03-01 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5732232 - Fix a closure pointer type bug. + + * tree.c (build_closure_pointer_type): Do no add + CLOSURE_POINTER_TYPE to POINTER_TYPE's list. + +2008-02-28 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5732232 - Fix nested closure bugs. + + * tree.h: Defined a new flag and CLOSURE_DECL_COPIED + * c-decl.c (build_closure_ref_decl): Set CLOSURE_DECL_COPIED + for copied variables. + (lookup_name_in_closure): Modified for nested closures. + * c-typeck.c (build_external_ref): Call to lookup_name_in_closure + returns user declaration of the variable if not in current + closure. + * c-common.h: lookup_name_in_closure takes an added argument. + +2008-02-27 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5732232 + * c-parser.c: Use clean_and_exit function call + instead of EXIT_CLEAN macro. + +2008-02-27 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5732232 - code gen part 2. + * tree.h: No need for closure_decl_ref, use + a new flag closure_helper_func instead. + (CLOSURE_HELPER_FUNC): New macro. + * c-decl.c (build_closure_byref_decl): Fix a type bug. + Enter variable in function's body scope. + (build_closure_ref_decl): Find function's body scope and + enter copied in variable in this scope. + (parent_is_closure, bind_closure_args, inside_closure): Removed. + (build_helper_func_decl): New routine to build a FUNCTION_DECL + for helper function. + (start_closure_helper_function): A stripped down version of + start_function used for helper functions only. + (closure_build_prologue, declare_closure_prologue_local_vars): + Builds prologue trees for the helper function. + * function.c (allocate_struct_function): Don't try to figure + out aggregate types for closures as it does not work. + * function.h (cur_closure): Need to declare it. + * c-typeck.c (build_closure_internal_types): Use the main + variant for type compares. + (c_finish_return): Removed dead code and added + code for building the return expressions for closure return + statements. + * tree.def: Removed not needded tree codes. + * c-gimplify.c (c_gimplify_expr): Build closure's return + expression tree. Remove dead code. + * c-common.h: Added/removed some declarations. + * c-parser.c (c_parser_postfix_expression): Dereference + use of byref variables in closures. + (build_closure_struct_type): Fixed a type. + (build_closure_struct_initlist): Must use the new list for + initialization. + (build_closure_literal_tmp): Moved some code around. + (c_parser_closure_literal_expr): Extensive changes to use + the nested function infrastructure for helper functions. + +2008-02-26 Bill Wendling <wendling@apple.com> + + * c-typeck.c (build_closure_internal_types) Fix warning. + +2008-02-20 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5732232 - code gen part 1. + * tree.c: Changed apple local markers. + * c-decl.c (build_closure_byref_decl): Add byref decls + to the list of such decls for the closure. + (build_closure_ref_decl): New + (closure_end): Now returns the closure info. + (in_imm_closure_block): Fixed a bug. + (ascend_to_file_scope, restore_current_scope): Two + new routines to enter/exit file scope. + * c-typeck.c (build_external_ref): Allow importation + of variables only to the closure literal block. + (build_function_call): Call to build closure calls trees. + (build_closure_internal_types): New. + (build_closure_call): New. + (c_finish_return): Diagnose returning closure literals on + the stack. + * c-common.h: Added new macros, added couple of fields + to struct closure_sema_info. + * c-parser.c (build_closure_struct_type): New + (build_closure_struct_initlist): New + (build_closure_literal_tmp): New. + (c_parser_closure_literal_expr): Diagnose missing + argument list in closure literal expression. + Generate necessary code for closure literal block use. + * dwarf2out.c (root_type, is_base_type, gen_type_die): Treat + closure pointer types as function pointer types. + +2008-02-15 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5732232 - minor twik + * tree.h: changed a comment. + * c-parser.c (c_parser_closure_byref_declarations): Better way to + report an error. + +2008-02-14 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5732232 - part9 + * tree.h (CLOSURE_DECL_BYREF): New field for var_decl/parm/decl + * c-decl.c (build_closure_byref_decl, in_imm_closure_block): New + * c-typeck.c (build_external_ref): Build a new declaration in + current scope for a byref variable decl. + * c-common.h (in_imm_closure_block, build_closure_byref_decl, + building_closure_byref_decl): New decls. + * c-parser.c (c_parser_compound_statement_nostart): Parse byref + variable decls enclosed by '|'. + (c_parser_closure_byref_declarations): New + +2008-02-13 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5732232 - part 8 + + *c-parser.c (c_parser_statement_after_labels): Diagnose use of gotos + in closures. + (c_parser_closure_literal_exp): Diagnose break/continue statement + used in a closure literal block which is nested in a while/for/switch + statement. + +2008-02-13 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5732232 - part 7 + * c-typeck.c (build_conditional_expr): Add closure pointer expression + use in conditionals. + +2008-02-12 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5732232 - part 6 (closure literal expressions). + + * tree.def (CLOSURE_EXPR_EXPR): New closure tree node. + * c-gimplify.c (c_gimplify_expr): Hack to ignore gimplification + of CLOSURE_EXPR_EXPR expressions. + * c-parser.c (c_parser_postfix_expression): Remove restriction on + postfix expression after a caret. + (c_parser_block_expr): Now parse and build CLOSURE_EXPR_EXPR + for closure expressions. + +2008-02-12 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5732232 - part 5 + * c-typeck.c (c_finish_return): Warn when returning a closure block + literal expression. + +2008-02-12 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5732232 - part4 (argument declaration in closure literals). + * c-decl.c (bind_closure_args): New + (closure_end): pop the scope. + (inside_closure): Use c-style comments. + * c-typeck.c : (convert_arguments): Fix a diagnistic. + * c-gimplify.c (c_gimplify_expr): Fix type of the hack. + * c-common.h (closure_sema_info): Fix type of params field. + (bind_closure_args): New decl. + * c-parser.c (c_parser_postfix_expression): Check for '(' as + a new lookahead after '^'. + (c_parser_block_expr): Modified to handle argument decls. + before closure literal block. + +2008-02-11 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5732232 - part3 (closure return statement). + * c-decl.c (cur_closure) Global decl. to keep track of + closure block literals. + (closure_start): Allocate and initialize a new + cur_closure object. + (closure_end): Free up cur_closure object and set it + to its predecessor, if any. + (inside_closure): Use cur_closure to know if inside a closure. + (lookup_name_in_closure): Use cur_closure instead. + * c-typeck.c (c_finish_return): Short circuit to closure-specific + routine if 'return' is inside a closure. + remove check for inside closure in two places (no longer + needed). + (c_finish_closure_return_stmt): New + * c-common.h (closure_sema_info): New overall data structure to + keep track of various closure context information. + * c-parser.c (c_parser_block_expr): Initialize and then use + closure's return type in building function type. + +2008-02-09 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5732232 - part 2 (basic closure literals syntax). + * tree.h (closure_decl_ref): New flag + for variables used in closures and declared + outside its scope. + (CLOSURE_DECL_REF) : Macro for above flag. + * c-decl.c (closure_scope): New flag for the closure's scope. + (closure_start, closure_end, inside_closure, + lookup_name_in_closure, parent_is_closure): New + * c-typeck.c (build_external_ref): Record variables used in + closure but declared outside. + * (c_finish_return) don't issue return warning if + inside closure. + (c_finish_bc_stmt): issue diagnostic for continuation + inside closures (currently commented out). + * tree.def (CLOSURE_BLOCK_EXPR): New expression node + for closure literals. + * c-gimplify.c (c_gimplify_expr): For now ignore + gimplifying CLOSURE_BLOCK_EXPR tree. + * c-common.h (closure_start, closure_end, inside_closure, + lookup_name_in_closure, parent_is_closure): New decls. + * c-parser.c (c_parser_postfix_expression): Parse and + build a closure literal block. + (c_parser_block_expr) : New. + +2008-02-08 Fariborz Jahanian <fjahanian@apple.com> + + closures - part2 + * c-cppbuiltin.c (c_cpp_builtins) __CLOSURES__ to 1 if -fclosures + is passed. + +2008-02-08 Fariborz Jahanian <fjahanian@apple.com> + + closures - part1 + * tree.c (build_closure_pointer_type): New + * tree.h (build_closure_pointer_type): New decl. + * c-tree.h (cdk_closure_pointer): New enumerator for + enum c_declarator_kind. + * (make_closure_pointer_declarator): New decl. + * c-pretty-print.c (pp_c_caret): New + * c-pretty-print (pp_c_caret): New decl. + (pp_c_pointer): recognize CLOSURE_POINTER_TYPE and + translate it into '^'. + (pp_c_specifier_qualifier_list): Handle CLOSURE_POINTER_TYPE type. + (pp_c_abstract_declarator): Ditto. + (pp_c_direct_abstract_declarator): Ditto. + (pp_c_direct_declarator): Ditto. + * stor-layout.c (layout_type): Set mode for CLOSURE_POINTER_TYPE. + * c-typeck.c (typesAreClosureCompatible): New + (build_function_call): Allow call of a closure pointer. + (convert_arguments): Make diagnostic specific to a bad closure + pointer call. + (build_unary_op): Allow '!' unary operation on a closure pointer. + (build_c_cast): Allow cast of a closure pointer to void *. + (functionTypesAreClosureCompatible): New + (typesAreClosureCompatible): New + (convert_for_assignment): Handle assignment of two closue pointers, + int to a closure pointer, etc. + (build_binary_op): Handle comparing two closure pointers, closure pointer + and NULL. + * c.opt: New -fclosures option. + * calls.c (expand_call): Call can be to a closure pointer. + * tree.def: Define new CLOSURE_POINTER_TYPE type. + * c-convert.c (convert): Handle convertion to a CLOSURE_POINTER_TYPE. + * c-parser.c (c_parser_declarator): Supprt use of '^' in a declarator + under -fclosures flag only. + * convert.c (convert_to_pointer): Support convertion of a closure + pointer to "void *". + (convert_to_closure_pointer): New + * convert.h (convert_to_closure_pointer): New declaration. + + Radar 6093388 + * config/arm/arm.c (FL_FOR_ARCH7A): Add FL_NEON. + (arm_arch7a): New global flag. + (arm_override_options): Set arm_arch7a flag. + * config/arm/darwin.h (FPUTYPE_DEFAULT): Default to Neon for v7. + (TARGET_DEFAULT_FLOAT_ABI): Default to ARM_FLOAT_ABI_SOFTFP for v7, + like we do for v6. + +2008-07-23 Josh Conner <jconner@apple.com> + + Radar 6090740 + * config/arm/arm.c (arm_output_epilogue): Use SP not IP + as scratch when restoring VFP registers. + +2008-07-22 Josh Conner <jconner@apple.com> + + Radar 6077274 + * config/darwin.c (machopic_symbol_defined_p): Return false + for a weak function declaration. + +2008-07-22 Josh Conner <jconner@apple.com> + + Radar 6083621 + * config/arm/arm.c (arm_adjust_insn_length): Add 2 bytes for + alignment to 32-bit thumb switch tables. + +2008-07-22 Josh Conner <jconner@apple.com> + + Radar 6067743 + * config/arm/arm.c (arm_reorg): Move label pad logic into... + (get_label_pad): ...here... + (create_fix_barrier): ...and call it here, too. + +2008-07-15 Josh Conner <jconner@apple.com> + + Radar 6062215 + * config/arm/arm.c (arm_encode_call_attribute): Check visibility + too. + (arm_darwin_encode_section_info): Likewise. + +2008-07-01 Jim Grosbach <grosbach@apple.com> + Radar 6040923 + * config/arm/arm.md (*mulsi3_compare0_v6, + *mulsi_compare0_scratch_v6): Remove "&& optimize_size" conditional. + +2008-06-25 Josh Conner <jconner@apple.com> + + Radar 6008578 + * config/arm/arm.c (arm_reorg): Consider alignment of labels. + (arm_function_boundary): New function... + * config/arm/arm.h (FUNCTION_BOUNDARY): ...use it. + +2008-06-18 Josh Conner <jconner@apple.com> + + Radar 6013984 + * config/arm/darwin.h (CC1_SPEC): Ignore -pg. + +2008-06-06 Josh Conner <jconner@apple.com> + + Radar 5920116 + * config/arm/arm.c (arm_output_mi_thunk): Add longcall + handling. When indirecting, use a non-lazy ptr for weak + calls. + +2008-06-05 Josh Conner <jconner@apple.com> + + Radar 5914860 + * t-darwin (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add armv6. + (TARGET_LIBGCC2_CFLAGS): Remove armv6. + (DARWIN_EXTRA_CRT_BUILD_FLAGS): Remove. + +2008-05-27 Josh Conner <jconner@apple.com> + + Radar 5960553 + * c.opt (iwithsysroot): Add -iwithsysroot. + * c-opts.c (c_common_missing_argument): Likewise. + (c_common_handle_option): Likewise. + * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Likewise. + * doc/invoke.texi: Describe -iwithsysroot option. + +2008-05-15 Josh Conner <jconner@apple.com> + + Radar 5938756 + * dwarf2out.c (modified_type_die): Verify that + TREE_TYPE (TYPE_NAME (type)) is non-null before using it. + +2008-05-14 Stuart Hastings <stuart@apple.com> + + Radar 5774356 + * config/rs6000/rs6000.c (debug_sp_offset, + debug_vrsave_offset): New. (rs6000_expand_builtin): Return 0 + when nothing matches. (rs6000_expand_prologue): Revise + sp_offset computation, set debug_sp_offset and + debug_vrsave_offset. (rs6000_expand_epilogue): Test + debug_sp_offset and debug_vrsave_offset. + * testsuite/gcc.apple/5774356.c: New. + +2008-05-12 Stuart Hastings <stuart@apple.com> + + * tree-ssa.c (tree_ssa_useless_type_conversion_1): Moved APPLE + LOCAL. + +2008-05-09 Stuart Hastings <stuart@apple.com> + + Radar 5799099 + * tree-ssa.c (tree_ssa_useless_type_conversion_1): Moved + cast-into-void* check after checks for losing volatile or + const. + * testsuite/gcc.apple/5799099.c: New. + +2008-05-09 Caroline Tice <ctice@apple.com + + Radar 5839812 + * objc/objc-act.c (objc_synthesize_new_getter): Temporarily set + input_location to be the location of the '@synthesize' statement + while the new getter method is synthesized; re-set it to its original + value afterwards. + (objc_syntehsize_new_setter): Likewise. + +2008-05-6 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5914395 + * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC_GC__ for + -fobjc-gc-only option as well. + +2008-05-06 Jim Grosbach <grosbach@apple.com> + + Radar 5880719 + Merge from 4.0 + * combine.c: Add parameter to try_combine declaration. + (COMBINE_TRY_RETAIN): Define, if not already. + (try_combine): Add new parameter. If we had to add copies + of the original input(s) because their value(s) are used later, + and the resulting pattern does not match, try matching the + replacement without those copie(s) and leaving the original(s) + alone. + (combine_instructions): Adjust calls to try_combine. + (combine_validate_cost): Allow i2 to be 0. In retain_inputs + case, accept replacement when it is equal to original, not + necessarily a strict improvement. + * config/arm/arm.c (arm_size_rtx_costs): Adjust cost of DImode MULT. + * config/arm/arm.md (muldi3, *soft_muldi3): New. + * config/arm/cirrus.md (muldi3): Rename to cirrus_muldi3. + +2008-05-02 Josh Conner <jconner@apple.com> + + Radar 5905142 + * doc/invoke.texi: Add documentation for + MACOSX_DEPLOYMENT_TARGET and IPHONEOS_DEPLOYMENT_TARGET. + +2008-05-02 Jim Grosbach <grosbach@apple.com> + + Radar 5903944 + * config/arm/arm.h (ASM_OUTPUT_ADDR_DIFF_VEC): Add missing + parentheses. + +2008-05-01 Caroline Tice <ctice@apple.com> + + Radar 5741731 + * dwarf2out.c (c-common.h): New include statement. + (modified_type_die): Temporarily remove volatile attribute, if it + was added because of objective '@try' block. + +2008-04-30 Josh Conner <jconner@apple.com> + + Radar 5702478 + * config/rs6000/rs6000.c (rs6000_override_options): Always + set TARGET_PIM_ALTIVEC if rs6000_altivec_pim is given. + +2008-04-29 Josh Conner <jconner@apple.com> + + Radar 5866634 + * cse.c (insert): Balance parentheses across #ifdefs. + +2008-04-29 Josh Conner <jconner@apple.com> + + Radar 5866634 + * cse.c (insert): Lower cost of SP+const addresses. + +2008-04-28 Josh Conner <jconner@apple.com> + + Radar 5883867 + * config.gcc (arm*-*-darwin*): Clear extra_headers. + +2008-04-16 Jim Grosbach <grosbach@apple.com> + + Radar 5837498 + * config/arm/arm.h (ASM_OUTPUT_ADDR_DIFF_VEC): Use assembler + expression to calculate (L1-L2)/2 rather than relying on insn + length attributes. + +2008-04-22 Josh Conner <jconner@apple.com> + + Radar 5840600 + * common.opt (flocal-alloc): New command-line option and + corresponding variable, flag_local_alloc... + * local-alloc.c (block_alloc): ...use it. + * config/arm/arm.c (optimization_options): ...disable it by + default. + * doc/invoke.texi: Add -flocal-alloc documentation. + +2008-04-16 Jim Grosbach <grosbach@apple.com> + + Radar 5831562 + Merge from 4.0 + * global.c (TIE_PSEUDOS): New macro. + (empty_reg_set): New variable. + (find_reg): Adjust heuristics of propagating preferences and + pseudo-pseudo ties after a reg is selected. + (set_preference): Allow for vector/nonvector SUBREGS. Use + TIE_PSEUDOS. + * config/arm/arm.h (TIE_PSEUDOS): Define. + +e008-04-15 Josh Conner <jconner@apple.com> + + Radar 5866711 + * config/darwin.h (DARWIN_DYLIB1_SPEC): When + -miphoneos-version-min is seen, use dylib1.o. + +2008-04-15 Josh Conner <jconner@apple.com> + + Radar 5866354 + * config.host (*-darwin*): Add DARWIN_PCH_ADDR_SPACE_SIZE to + host_xm_defines. + * config/host-darwin.c (pch_address_space): Use + DARWIN_PCH_ADDR_SPACE_SIZE to determine size. + * config/arm/x-darwin: New file. + * config/arm/host-arm-darwin.c: New file. + +2008-04-15 Jim Grosbach <grosbach@apple.com> + + Radar 5831562 + Merge from 4.0 + * expr.c (expand_expr_real_1) (CONVERT_EXPR): + Improve codegen for (int)(long long >> 32). + +2008-04-11 Jim Grosbach <grosbach@apple.com> + + Radar 5831562 + Merge from 4.0 + * config/arm/arm.c (const64_ok_for_arm_add, + const64_ok_for_arm_immediate): New. + * config/arm/arm-protos.h: Prototype them. + * config/arm/predicates.md (arm_immediate64_operand, + arm_rhs64_operand, arm_add_immediate64_operand, + arm_add64_operand): New. + * config/arm/constraints.md: Add 'Dd'. + * config/arm/arm.md (adddi3, *arm_adddi3, unnamed define_split + for logical binary operators, anddi3, iordi3, xordi3): Accept + 64-bit constants that match 'Dd' constraint. + (adddi3): Allow negative constants whose negation is in-range + for SUB; generate SUB for these. + (subdi3): Allow constants either in-range for SUB, or whose + negation is in-range for ADD. Generate ADD for the latter. + (*arm_adddi3, *arm_subdi3): Allow constants. + +2008-04-11 Josh Conner <jconner@apple.com> + + Radar 5840278 - part 2 + * (analyze_leg): Cast TREE_INT_CST_HIGH to unsigned. + +2008-04-10 Josh Conner <jconner@apple.com> + + Radar 5854251 + * config/arm/libgcc-iphoneos.ver: Remove __switch* functions. + +2008-04-09 Jim Grosbach <grosbach@apple.com> + + Radar 5831562 + Merge from 4.0 + * local-alloc.c (find_free_reg): Use DIMODE_REG_ALLOC_ORDER, if + defined. + * regclass.c (dimode_reg_alloc_order, + dimode_inv_reg_alloc_order): New variables. + (init_reg_sets): Use DIMODE_REG_ALLOC_ORDER, if defined. + * global.c (find_reg): Use DIMODE_REG_ALLOC_ORDER, if defined. + * hard-reg-set.h (dimode_reg_alloc_order, + dimode_inv_reg_alloc_order): New declarations. + * config/arm/arm.h (IMODE_REG_ALLOC_ORDER): New macro. + (COMBINE_TRY_RETAIN): New macro. + * recog.c (peep2_find_free_register): Use + DIMODE_REG_ALLOC_ORDER, if defined. + * reload1.c (find_reg): Likewise. + +2008-04-09 Josh Conner <jconner@apple.com> + + Radar 5851089 + * config/arm/arm.md (insv): Enable for Thumb. + +2008-04-09 Josh Conner <jconner@apple.com> + + Radar 5847848 + * ifcvt.c (cond_exec_process_insns): Don't stop + conditionalization at a compare for TARGET_ARM. + (cond_exec_branch_targets_equiv): New function. + (cond_exec_process_if_block): Allow for null then_bb, + indicating merging of multiple && or || blocks only. + (process_if_block): Ditto. + (find_if_block): Ditto. + * config/arm/arm.c (arm_ifcvt_modify_multiple_tests): New + function. + * config/arm/arm.h (IFCVT_MODIFY_MULTIPLE_TESTS): New define. + * config/arm/arm-protos.h (arm_ifcvt_modify_multiple_tests): + New proto. + * config/arm/arm.md (*arm_cmpsi_insn): Mark predicable. + +2008-04-03 Josh Conner <jconner@apple.com> + + Radar 5840278 + * expr.c (look_for_bytemanip): New function... + (expand_expr_real_1): ...use it. + (struct bytemanip): New type. + (bswap32_shift_first): New variable. + (bswap32_and_first): New variable. + (bswap64_shift_first): New variable. + (bswap64_and_first): New variable. + (uxtb16_shift_first): New variable. + (uxtb16_and_first): New variable. + (find_and_record_values): New function. + (analyze_leg): New function. + * config/arm/arm.md (bswapsi2): New expand. + (arm_bswapsi2): New insn. + (thumb_bswapsi2): New insn. + (bswapdir2): New expand. + (arm_bswapdi2): New insn. + (thumb_bswapdi2): New insn. + (uxtb16): New insn. + +2008-04-03 Josh Conner <jconner@apple.com> + + Radar 5835816 + * config/arm/arm.md (arm_andsi3_insn): Remove non-immediate + operand permutation. Change from a define_insn_and_split to a + define_insn. + (arm_iorsi3): Likewise. + +2008-04-02 Jim Grosbach <grosbach@apple.com> + + Radar 5831528 + * ifcvt.c (cond_exec_process_insns): Don't conditionally + execute calls with a NORETURN note attached. + * config/arm/arm.md (call_reg_armv6, call_reg_arm, call_mem, + call_value_reg_armv5, call_value_reg_arm, call_value_mem): + Make predicable. + (call_symbol_predicable): New. + (call_value_symbol_predicable): New. + (call_symbol): Only match for TARGET_INTERWORK. + (call_value_symbol): Likewise. + +2008-04-01 Josh Conner <jconner@apple.com> + + Radar 5829269 + * config/arm/arm.md (define_split 64-bit constants): Always + split 64-bit constants when generating Thumb code. + +2008-04-01 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5344182 + * dwarf2out.c (add_prototyped_attribute): Check for objc as + the language to generate DW_AT_prototyped dwarf attr. + +2008-04-01 Josh Conner <jconner@apple.com> + + Radar 5829297 + * config/arm/arm.c (thumb_size_rtx_costs): New function... + (arm_size_rtx_costs): ...Use it. + +2008-03-31 Jim Grosbach <grosbach@apple.com> + + Radar 5819088 + * cfglayout.c (duplicate_insn_chain): Add missing case to + copy NOTE_INSN_ALLOCA notes. + +2008-03-31 Stuart Hastings <stuart@apple.com> + + Radar 5814283 + * gcc/testsuite/gcc.apple/5814283.c: Tweaked to test on x86 + only. + +2008-03-28 Jim Grosbach <grosbach@apple.com> + + Radar 5823776 + * config/darwin.h: Use crt1.o if iphoneos-version-min is + specified + +2008-03-27 Stuart Hastings <stuart@apple.com> + + Radar 5814283 + * config/i386/emmintrin.h (_mm_shuffle_pd, + _mm_shufflehi_epi16, _mm_shufflelo_epi16, + _mm_shuffle_epi32): Insert missing parens. + * config/i386/tmmintrin.h (_mm_alignr_epi8): Insert missing + parens. + * testsuite/gcc.apple/5814283.c: New. + +2008-03-24 Josh Conner <jconner@apple.com> + + Radar 5777572 - take 2 (cont.) + * config/darwin.h (LINK_SPEC): Change -iphone_version_min to + -iphoneos_version_min. + * config/arm/darwin.h (DARWIN_LD_MINVERSION_SPEC): Likewise. + +2008-03-24 Josh Conner <jconner@apple.com> + + Radar 5819018 + * config/darwin-driver.c (darwin_default_min_version): Don't + warn if both MACOSX_DEPLOYMENT_TARGET and + IPHONEOS_DEPLOYMENT_TARGET are set. + +2008-03-24 Josh Conner <jconner@apple.com> + + Radar 4382996 + * config/arm/predicates.md (binary_cc_noclobber_operator): New + special_predicate. + * config/arm/arm.md (arm_binary_ne_0) New define_insn_and_split. + (arm_add_ne_0): Likewise. + (arm_mul_ne_0): Likewise. + +2008-03-24 Stuart Hastings <stuart@apple.com> + + Radar 5612787 + * testsuite/lib/target-supports.exp + (check_no_compiler_messages, check_no_messages_and_pattern): + Remove redundant definitions. + +2008-03-24 Josh Conner <jconner@apple.com> + + Radar 4826373 + * config/arm/darwin.h (ASM_OUTPUT_ALIGNED_COMMON): Remove + undef. + +2008-03-20 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5802025 + * c-common.h (objc_build_property_getter_func_call): New decl. + * stub-objc.c (objc_build_property_getter_func_call): New stub. + +2008-03-19 Bill Wendling <wendling@apple.com> + + Radar 5571540 + * config/i386/i386.c (output_pic_addr_const): darwin_stubs flag + is only available on Mach-O systems. + +2008-03-17 Josh Conner <jconner@apple.com> + + Radar 5619587 (Reverts 5342595) + * config/i386/darwin.h (DARWIN_DSYMUTIL_SPEC): Remove + definition. + * config/rs6000/darwin.h (DARWIN_DSYMUTIL_SPEC): Likewise. + * config/arm/darwin.h (DARWIN_DSYMUTIL_SPEC): Likewise. + (PREFERRED_DEBUGGING_TYPE): Remove definition. + * config/darwin.h (LINK_COMMAND_SPEC): Replace darwin_dsymutil + spec invocation with string. + (darwin_dsymutil): Remove spec definition. + +2008-03-15 Josh Conner <jconner@apple.com> + + Radar 5777572 - take 2 + * config.gcc: Replace all instances of 'iphone' with 'iphoneos'. + * config/darwin-c.c: Likewise. + * config/darwin.opt: Likewise. + * config/i386/darwin.h: Likewise. + * config/rs6000/darwin.h: Likewise. + * config/rs6000/rs6000.c: Likewise. + * config/darwin.h: Likewise. + * config/arm/darwin.h: Likewise. + * config/darwin-driver.c: Likewise. + * config/arm/t-slibgcc-iphone: Rename to... + * config/arm/t-slibgcc-iphoneos: ...new file. + * config/arm/libgcc-iphone.ver: Rename to... + * config/arm/libgcc-iphoneos.ver: ...new file. + +2008-03-14 Josh Conner <jconner@apple.com> + + Radar 5641084 + * config/arm/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Err on -pg. + +2008-03-13 Jim Grosbach <grosbach@apple.com> + + Radar 5798689 + * testsuite/gcc.dg/sibcall-3.c: Skip test for thumb + * testsuite/gcc.dg/sibcall-4.c: Likewise + +2008-03-13 Josh Conner <jconner@apple.com> + + Undo Radar 5730079 + * config/i386/darwin.h (DARWIN_ALLOWED_VERSION_TYPES): Remove + definition. + * config/rs6000/darwin.h (CC1_SPEC): Don't err on + -miphone-version-min. + (DARWIN_ALLOWED_VERSION_TYPES): Remove definition. + * config/darwin.h (DARWIN_VERSION_MACOSX): Remove definition. + (DARWIN_VERSION_IPHONE): Remove definition. + (enum darwin_version_type): New enum. + (darwin_default_min_version): Remove allowable_vers_types + parameter. + * config/arm/darwin.h (CC1_SPEC): Don't err on + -mmacosx-version-min switch. + (DARWIN_ALLOWED_VERSION_TYPES): Remove definition. + * config/darwin-driver.c (darwin_default_min_version): Remove + allowable_vers_types parameter and logic to handle it. Rename + default_vers_type paramter to vers_type. + +2008-03-13 Josh Conner <jconner@apple.com> + + Radar 5777572 + * config.gcc: Replace all instances of 'aspen' with 'iphone'. + * config/darwin-c.c: Likewise. + * config/darwin.opt: Likewise. + * config/i386/darwin.h: Likewise. + * config/rs6000/darwin.h: Likewise. + * config/rs6000/rs6000.c: Likewise. + * config/darwin.h: Likewise. + * config/arm/darwin.h: Likewise. Also, set default minversion + to 2.0. + * config/darwin-driver.c: Likewise. + * config/arm/t-slibgcc-aspen: Rename to... + * config/arm/t-slibgcc-iphone: ...new file. + * config/arm/libgcc-aspen.ver: Rename to... + * config/arm/libgcc-iphone.ver: ...new file. + +2008-03-12 Stuart Hastings <stuart@apple.com> + + Radar 5612787 + * ChangeLog.apple: Fixed typo in two entries. + +2008-03-10 Stuart Hastings <stuart@apple.com> + + * config/i386/i386.c (ix86_builtins): Need APPLE LOCAL markers + around deletion. + +2008-03-07 Jim Grosbach <grosbach@apple.com> + + * global.c (set_preference): The apple local change to not + punt on subregs breaks under ARM. Go back to mainline behaviour + for that case. + +2008-03-07 Jim Grosbach <grosbach@apple.com> + + * config/arm/arm.h (CASE_VECTOR_SHORTEN_MODE): Do not shorten + VECTOR_DIFF tables in Thumb2 mode. The length calculations for + many variable length instructions are only approximate, but the + shorter tables require them to be exact and are thus often + incorrect. + +2008-03-07 Jim Grosbach <grosbach@apple.com> + + * config/arm/arm.md: Split out a separate thumb2_jump pattern + to enable accurate length attribute calculation. + +2008-03-07 Jim Grosbach <grosbach@apple.com> + + * config/arm/arm.h: Functionalize ASM_OUTPUT_ADDR_DIFF_VEC + * config/arm/arm-protos.h: Ditto + * config/arm/arm.c (arm_asm_output_addr_diff_vec): New function. + Adjust offset calculations for Thumb2 as the table layout does + not need the Apple specific compact switch table bits. + +2008-03-07 Josh Conner <jconner@apple.com> + + Radar 5782111 + * config/darwin.h (ASM_OUTPUT_LABELREF): Add label prefix to + quoted names, too. + +2008-03-07 Stuart Hastings <stuart@apple.com> + + * c-common.c: Restore blank line to satisfy checklocals. + * config/i386/i386.c (ix86_builtins): APPLE LOCAL marker for + deletion. + * config/darwin.c (output_objc_section_asm_op): Insert blank + to force checklocal behavior. + +2008-03-07 Stuart Hastings <stuart@apple.com> + + Radar 5612787 + * config/i386/ammintrin.h: Added APPLE LOCAL file marker. + * config/i386/nmmintrin.h: Added APPLE LOCAL file marker. + * config/i386/smmintrin.h: Added APPLE LOCAL file marker. + * c-typeck.c (build_binary_op): Added APPLE LOCAL marker. + +2008-03-06 Stuart Hastings <stuart@apple.com> + + Radar 5612787 + * expr.h (expand_normal): New. + * config.gcc(extra_headers): For x86, added ammintrin.h, + smmintrin.h, and nmmintrin.h. (OPTION_MASK_ISA_SSE4_1, + OPTION_MASK_ISA_SSE4_2, OPTION_MASK_ISA_SSE4A): New. + * doc/invoke.texi (-flax-vector-conversions): New flag. + * c.opt (-flax-vector-conversions): New flag. + * c-common.h (vector_types_convertible_p): Update extern decl. + (-flax-vector-conversions): New. + * c-common.c (-flax-vector-conversions): New flag, defaulting + TRUE. (vector_types_convertible_p): Backport 4.3 code with + new emit_lax_note parameter. + * c-opts.c (-flax-vector-conversions): New flag. + * c-typeck.c (convert_for_assignment, digest_init): New parm + for vector_types_convertible_p. + * cp/call.c (standard_conversion): New parm for + vector_types_convertible_p. + * cp/typeck.c (convert_for_assignment, + ptr_reasonably_similar): New parm for + vector_types_convertible_p. + * cp/typeck2.c (digest_init): New parm for + vector_types_convertible_p. + * config/i386/i386.h (MASK_SSEREGPARM, MASK_SSSE3, + MASK_NO_RED_ZONE): Tweak bit masks. + (OPTION_MASK_ISA_SSE4_1, OPTION_MASK_ISA_SSE4_2, + OPTION_MASK_ISA_SSE4A, TARGET_SSE4_1, TARGET_SSE4_2, + TARGET_SSE4A): New. (TARGET_SWITCHES): New flags "sse4.1", + "sse4.2", "sse4", "no-sse4", "sse4a". + (TARGET_CPU_CPP_BUILTINS): New defines "__SSE4_1__", + "__SSE4_2__", "__SSE4A__". (reg_class, REG_CLASS_NAMES, + REG_CLASS_CONTENTS): New class: SSE_FIRST_REG. + (REG_CLASS_FROM_CONSTRAINT, CONSTRAINT_LEN): New; support + "Y0". + * config/i386/i386.md (UNSPEC_EXTRQI, UNSPEC_EXTRQ, + UNSPEC_INSERTQI, UNSPEC_INSERTQ, UNSPEC_BLENDV, + UNSPEC_INSERTPS, UNSPEC_DP, UNSPEC_MOVNTDQA, UNSPEC_MPSADBW, + UNSPEC_PHMINPOSUW, UNSPEC_PTEST, UNSPEC_ROUND, UNSPEC_CRC32, + UNSPEC_PCMPESTR, UNSPEC_PCMPISTR): New. (sseinsq, sseinsqi, + prefix_extra, negtf2, abstf2, *absnegtf2_sse, CRC32MODE, + crc32modesuffix, crcmodeconstraint, sse4_2_crc32<mode>, + sse4_2_crc32di): New. (length_immediate) Add support for + SSE4A insertq. + * config/i386/nmmintrin.h: New. + * config/i386/smmintrin.h: New. + * config/i386/ammintrin.h: New. + * config/i386/predicates.md (reg_not_xmm0_operand, + nonimm_not_xmm0_operand, const_pow2_1_to_2_operand, + const_pow2_1_to_32768_operand): New. + * config/i386/smmintrin.h: New file. + * config/i386/i386-modes.def + (CCA, CCC, CCO, CCS, V2QI): New modes. + * config/i386/sse.md (SSEMODE14, sse4_2_crc32<mode>, + sse4_2_crc32di, *vec_setv4sf_sse4_1, sse4_1_insertps, + sse4_1_mulv2siv2di3, *sse4_1_mulv4si3, *sse4_1_smax<mode>3, + *sse4_1_umax<mode>3, *sse4_1_smin<mode>3, + *sse4_1_umin<mode>3, sse4_1_eqv2di3, sse4_2_gtv2di3, + *sse4_1_pinsrb, *sse4_1_pinsrd, *sse4_1_pinsrq, + *sse4_1_pextrb, *sse4_1_pextrb_memory, sse2_pextrw, + *sse4_1_pextrw_memory, *sse4_1_pextrd, *sse4_1_pextrq, + sse4a_vmmovntv2df, sse4a_movntdf, sse4a_vmmovntv4sf, + sse4a_movntsf, sse4a_extrqi, sse4a_extrq, sse4a_insertqi, + sse4a_insertq, sse4_1_blendpd, sse4_1_blendps, + sse4_1_blendvpd, sse4_1_blendvps, sse4_1_dppd, sse4_1_dpps, + sse4_1_movntdqa, sse4_1_mpsadbw, sse4_1_packusdw, + sse4_1_pblendvb, sse4_1_pblendw, sse4_1_phminposuw, + sse4_1_extendv8qiv8hi2, *sse4_1_extendv8qiv8hi2, + sse4_1_extendv4qiv4si2, *sse4_1_extendv4qiv4si2, + sse4_1_extendv2qiv2di2, *sse4_1_extendv2qiv2di2, + sse4_1_extendv4hiv4si2, *sse4_1_extendv4hiv4si2, + sse4_1_extendv2hiv2di2, *sse4_1_extendv2hiv2di2, + sse4_1_extendv2siv2di2, *sse4_1_extendv2siv2di2, + sse4_1_zero_extendv8qiv8hi2, *sse4_1_zero_extendv8qiv8hi2, + sse4_1_zero_extendv4qiv4si2, *sse4_1_zero_extendv4qiv4si2, + sse4_1_zero_extendv2qiv2di2, *sse4_1_zero_extendv2qiv2di2, + sse4_1_zero_extendv4hiv4si2, *sse4_1_zero_extendv4hiv4si2, + sse4_1_zero_extendv2hiv2di2, *sse4_1_zero_extendv2hiv2di2, + sse4_1_zero_extendv2siv2di2, *sse4_1_zero_extendv2siv2di2, + sse4_1_ptest, sse4_1_roundpd, sse4_1_roundps, + sse4_1_roundsd, sse4_1_roundss, sse4_2_pcmpestr, + sse4_2_pcmpestri, sse4_2_pcmpestrm, sse4_2_pcmpestr_cconly, + sse4_2_pcmpistr, sse4_2_pcmpistri, sse4_2_pcmpistrm, + sse4_2_pcmpistr_cconly): New. (sse2_smulv8hi3_highpart): + Split and renamed to smulv8hi3_highpart and + *smulv8hi3_highpart. (sse2_umulv8hi3_highpart): Split and + renamed to umulv8hi3_highpart and *umulv8hi3_highpart. + (sse2_umulv2siv2di3): Tweaked to V4SImode, added + prefix_data16. (umaxv4si3): Support pmaxud. (umin<mode>3): + Support pminud. * config/i386/darwin.h + (MASK_MACHO_DYNAMIC_NO_PIC, MASK_ALIGN_NATURAL, + MASK_ALIGN_MAC68K): Tweak mask bits. * + config/i386/i386-protos.h (ix86_expand_sse_unpack, + ix86_expand_sse4_unpack): New. * config/i386/i386.c + (x86_popcnt) New. (enum pta_flags): Added PTA_CX16, + PTA_POPCNT, PTA_ABM, PTA_SSE4A, PTA_NO_SAHF, PTA_SSE4_1, + PTA_SSE4_2. (override_options): Support + OPTION_MASK_ISA_SSE4_1, OPTION_MASK_ISA_SSE4_2, + OPTION_MASK_ISA_SSE4A, x86_popcnt. (ix86_expand_int_vcond): + Backport 4.3 code. (ix86_expand_sse_unpack, + ix86_expand_sse4_unpack): New. (IX86_BUILTIN_MOVNTSD, + IX86_BUILTIN_MOVNTSS, IX86_BUILTIN_EXTRQI, + IX86_BUILTIN_EXTRQ, IX86_BUILTIN_INSERTQI, + IX86_BUILTIN_INSERTQ, IX86_BUILTIN_BLENDPD, + IX86_BUILTIN_BLENDPS, IX86_BUILTIN_BLENDVPD, + IX86_BUILTIN_BLENDVPS, IX86_BUILTIN_PBLENDVB128, + IX86_BUILTIN_PBLENDW128, IX86_BUILTIN_DPPD, + IX86_BUILTIN_DPPS, IX86_BUILTIN_INSERTPS128, + IX86_BUILTIN_MOVNTDQA, IX86_BUILTIN_MPSADBW128, + IX86_BUILTIN_PACKUSDW128, IX86_BUILTIN_PCMPEQQ, + IX86_BUILTIN_PHMINPOSUW128, IX86_BUILTIN_PMAXSB128, + IX86_BUILTIN_PMAXSD128, IX86_BUILTIN_PMAXUD128, + IX86_BUILTIN_PMAXUW128, IX86_BUILTIN_PMINSB128, + IX86_BUILTIN_PMINSD128, IX86_BUILTIN_PMINUD128, + IX86_BUILTIN_PMINUW128, IX86_BUILTIN_PMOVSXBW128, + IX86_BUILTIN_PMOVSXBD128, IX86_BUILTIN_PMOVSXBQ128, + IX86_BUILTIN_PMOVSXWD128, IX86_BUILTIN_PMOVSXWQ128, + IX86_BUILTIN_PMOVSXDQ128, IX86_BUILTIN_PMOVZXBW128, + IX86_BUILTIN_PMOVZXBD128, IX86_BUILTIN_PMOVZXBQ128, + IX86_BUILTIN_PMOVZXWD128, IX86_BUILTIN_PMOVZXWQ128, + IX86_BUILTIN_PMOVZXDQ128, IX86_BUILTIN_PMULDQ128, + IX86_BUILTIN_PMULLD128, IX86_BUILTIN_ROUNDPD, + IX86_BUILTIN_ROUNDPS, IX86_BUILTIN_ROUNDSD, + IX86_BUILTIN_ROUNDSS, IX86_BUILTIN_PTESTZ, + IX86_BUILTIN_PTESTC, IX86_BUILTIN_PTESTNZC, + IX86_BUILTIN_VEC_EXT_V16QI, IX86_BUILTIN_VEC_SET_V2DI, + IX86_BUILTIN_VEC_SET_V4SF, IX86_BUILTIN_VEC_SET_V4SI, + IX86_BUILTIN_VEC_SET_V16QI, IX86_BUILTIN_VEC_PACK_SFIX, + IX86_BUILTIN_CRC32QI, IX86_BUILTIN_CRC32HI, + IX86_BUILTIN_CRC32SI, IX86_BUILTIN_CRC32DI, + IX86_BUILTIN_PCMPESTRI128, IX86_BUILTIN_PCMPESTRM128, + IX86_BUILTIN_PCMPESTRA128, IX86_BUILTIN_PCMPESTRC128, + IX86_BUILTIN_PCMPESTRO128, IX86_BUILTIN_PCMPESTRS128, + IX86_BUILTIN_PCMPESTRZ128, IX86_BUILTIN_PCMPISTRI128, + IX86_BUILTIN_PCMPISTRM128, IX86_BUILTIN_PCMPISTRA128, + IX86_BUILTIN_PCMPISTRC128, IX86_BUILTIN_PCMPISTRO128, + IX86_BUILTIN_PCMPISTRS128, IX86_BUILTIN_PCMPISTRZ128, + IX86_BUILTIN_PCMPGTQ, IX86_BUILTIN_INFQ, IX86_BUILTIN_FABSQ, + IX86_BUILTIN_COPYSIGNQ): New. (def_builtin_const, + bdesc_ptest, bdesc_pcmpestr, bdesc_pcmpistr, bdesc_crc32, + bdesc_sse_3arg): New. (bdesc_2arg): + __builtin_ia32_pmulhw128 and __builtin_ia32_pmulhuw128 + updated for new code. CODE_FOR_sse4_1_mulv2siv2di3, + __builtin_ia32_packusdw128, __builtin_ia32_pcmpeqq, + __builtin_ia32_pmaxsb128, __builtin_ia32_pmaxsd128, + __builtin_ia32_pmaxud128, __builtin_ia32_pmaxuw128, + __builtin_ia32_pminsb128, __builtin_ia32_pminsd128, + __builtin_ia32_pminud128, __builtin_ia32_pminuw128, + __builtin_ia32_pmulld128, __builtin_ia32_pcmpgtq: New. + (bdesc_1arg): CODE_FOR_sse4_1_extendv8qiv8hi2, + CODE_FOR_sse4_1_extendv4qiv4si2, + CODE_FOR_sse4_1_extendv2qiv2di2, + CODE_FOR_sse4_1_extendv4hiv4si2, + CODE_FOR_sse4_1_extendv2hiv2di2, + CODE_FOR_sse4_1_extendv2siv2di2, + CODE_FOR_sse4_1_zero_extendv8qiv8hi2, + CODE_FOR_sse4_1_zero_extendv4qiv4si2, + CODE_FOR_sse4_1_zero_extendv2qiv2di2, + CODE_FOR_sse4_1_zero_extendv4hiv4si2, + CODE_FOR_sse4_1_zero_extendv2hiv2di2, + CODE_FOR_sse4_1_zero_extendv2siv2di2, + CODE_FOR_sse4_1_phminposuw, CODE_FOR_sse4_1_roundpd, + CODE_FOR_sse4_1_roundps: New. (ix86_init_mmx_sse_builtins): + Added SSE4 builtin signatures, including + v2di_ftype_v2di_unsigned_unsigned, + v2di_ftype_v2di_v2di_unsigned_unsigned, + v2di_ftype_v2di_v16qi, v2df_ftype_v2df_v2df_v2df, + v4sf_ftype_v4sf_v4sf_v4sf, v8hi_ftype_v16qi, + v4si_ftype_v16qi, v2di_ftype_v16qi, v4si_ftype_v8hi, + v2di_ftype_v8hi, v2di_ftype_v4si, v2di_ftype_pv2di, + v16qi_ftype_v16qi_v16qi_int, v16qi_ftype_v16qi_v16qi_v16qi, + v8hi_ftype_v8hi_v8hi_int, v4si_ftype_v4si_v4si_int, + int_ftype_v2di_v2di, int_ftype_v16qi_int_v16qi_int_int, + v16qi_ftype_v16qi_int_v16qi_int_int, and + int_ftype_v16qi_v16qi_int. Added __builtin_ia32_movntdqa, + __builtin_ia32_pmovsxbw128, __builtin_ia32_pmovsxbd128, + __builtin_ia32_pmovsxbq128, __builtin_ia32_pmovsxwd128, + __builtin_ia32_pmovsxwq128, __builtin_ia32_pmovsxdq128, + __builtin_ia32_pmovzxbw128, __builtin_ia32_pmovzxbd128, + __builtin_ia32_pmovzxbq128, __builtin_ia32_pmovzxwd128, + __builtin_ia32_pmovzxwq128, __builtin_ia32_pmovzxdq128, + __builtin_ia32_pmuldq128, __builtin_ia32_roundpd, + __builtin_ia32_roundps, __builtin_ia32_roundsd, + __builtin_ia32_roundss, __builtin_ia32_movntsd, + __builtin_ia32_movntss, __builtin_ia32_extrqi, + __builtin_ia32_extrq, __builtin_ia32_insertqi, + __builtin_ia32_insertq, __builtin_ia32_crc32di, + __builtin_ia32_crc32qi, __builtin_ia32_crc32hi, + __builtin_ia32_crc32si, __builtin_ia32_vec_set_v2di, + __builtin_ia32_vec_set_v4sf, __builtin_ia32_vec_set_v4si, + __builtin_ia32_vec_set_v16qi, and + __builtin_ia32_vec_ext_v16qi. + (ix86_expand_sse_4_operands_builtin, ix86_expand_crc32, + ix86_expand_sse_ptest, ix86_expand_sse_pcmpestr, + ix86_expand_sse_pcmpistr): New. (ix86_expand_unop_builtin, + ix86_expand_builtin, ix86_expand_vector_set, + ix86_expand_vector_extract): Backport 4.3 code. + (ix86_expand_vec_set_builtin): Backport PR31582 fix from + 4.2. + * config/darwin.c (machopic_select_section): Backport 4.3 code. + * testsuite/gcc.dg/vect/vect-none.c: Adjust for improved + SSE4 vectorization. + * testsuite/lib/target-supports.exp (get_compiler_message): + Backport additional parameters. + (check_no_compiler_messages, check_no_messages_and_pattern): + New. (check_visibility_available, + check_named_sections_available, + check_effective_target_ilp32, check_effective_target_lp64): + New parm for get_compiler_message(). + * testsuite/gcc.target/i386/sse4_1-pmovsxwq.c: New. + * testsuite/gcc.target/i386/sse4_1-dpps-2.c: New. + * testsuite/gcc.target/i386/sse4_1-insertps-1.c: New. + * testsuite/gcc.target/i386/sse4_1-pcmpeqq.c: New. + * testsuite/gcc.target/i386/sse4_1-roundsd-1.c: New. + * testsuite/gcc.target/i386/sse4_1-roundsd-3.c: New. + * testsuite/gcc.target/i386/sse4_1-pmovsxbq.c: New. + * testsuite/gcc.target/i386/sse4_2-popcntq.c: New. + * testsuite/gcc.target/i386/sse4_1-pmovsxbw.c: New. + * testsuite/gcc.target/i386/sse4_1-pminsb.c: New. + * testsuite/gcc.target/i386/sse4_1-pminsd.c: New. + * testsuite/gcc.target/i386/sse4_1-pmaxsb.c: New. + * testsuite/gcc.target/i386/sse4_1-pblendw.c: New. + * testsuite/gcc.target/i386/sse4_1-roundss-1.c: New. + * testsuite/gcc.target/i386/sse4_1-pblendvb.c: New. + * testsuite/gcc.target/i386/sse4_1-pmaxsd.c: New. + * testsuite/gcc.target/i386/sse4_1-roundss-3.c: New. + * testsuite/gcc.target/i386/sse4_1-pmovzxwd.c: New. + * testsuite/gcc.target/i386/sse4_1-ptest-2.c: New. + * testsuite/gcc.target/i386/sse4_1-pextrb.c: New. + * testsuite/gcc.target/i386/sse4a-montss.c: New. + * testsuite/gcc.target/i386/sse4_1-pextrd.c: New. + * testsuite/gcc.target/i386/sse4_2-pcmpestri-2.c: New. + * testsuite/gcc.target/i386/i386.exp: New. + * testsuite/gcc.target/i386/sse4_1-pmovzxbd.c: New. + * testsuite/gcc.target/i386/sse4_1-roundpd-1.c: New. + * testsuite/gcc.target/i386/sse4_2-pcmpistri-2.c: New. + * testsuite/gcc.target/i386/sse4_2-pcmpestrm-2.c: New. + * testsuite/gcc.target/i386/sse4_1-roundpd-3.c: New. + * testsuite/gcc.target/i386/sse4_1-pinsrq.c: New. + * testsuite/gcc.target/i386/sse4_2-pcmpistrm-2.c: New. + * testsuite/gcc.target/i386/sse4_1-pminuw.c: New. + * testsuite/gcc.target/i386/sse4_1-packusdw.c: New. + * testsuite/gcc.target/i386/sse4_1-pmaxuw.c: New. + * testsuite/gcc.target/i386/sse4_1-check.h: New. + * testsuite/gcc.target/i386/sse4_2-check.h: New. + * testsuite/gcc.target/i386/sse4_1-dppd-1.c: New. + * testsuite/gcc.target/i386/sse4_1-pmovsxwd.c: New. + * testsuite/gcc.target/i386/sse4_1-blendps.c: New. + * testsuite/gcc.target/i386/sse4_1-pmovzxdq.c: New. + * testsuite/gcc.target/i386/sse4_1-roundps-1.c: New. + * testsuite/gcc.target/i386/sse4_1-roundps-3.c: New. + * testsuite/gcc.target/i386/sse4a-extract.c: New. + * testsuite/gcc.target/i386/sse4_2-crc32q.c: New. + * testsuite/gcc.target/i386/sse4_2-pcmpstr.h: New. + * testsuite/gcc.target/i386/sse4_1-pmuldq.c: New. + * testsuite/gcc.target/i386/sse4_1-pmovsxbd.c: New. + * testsuite/gcc.target/i386/sse4_1-dpps-1.c: New. + * testsuite/gcc.target/i386/sse4_2-crc32w.c: New. + * testsuite/gcc.target/i386/sse4_1-insertps-2.c: New. + * testsuite/gcc.target/i386/sse4_1-phminposuw.c: New. + * testsuite/gcc.target/i386/sse4_2-popcnt.h: New. + * testsuite/gcc.target/i386/sse4_1-extractps.c: New. + * testsuite/gcc.target/i386/sse4_1-blendvps.c: New. + * testsuite/gcc.target/i386/sse4_1-roundsd-2.c: New. + * testsuite/gcc.target/i386/sse4_1-roundsd-4.c: New. + * testsuite/gcc.target/i386/sse4_2-popcntl.c: New. + * testsuite/gcc.target/i386/sse4_1-pmovsxdq.c: New. + * testsuite/gcc.target/i386/sse4_2-crc32.h: New. + * testsuite/gcc.target/i386/sse4a-insert.c: New. + * testsuite/gcc.target/i386/sse4a-montsd.c: New. + * testsuite/gcc.target/i386/sse4_1-round.h: New. + * testsuite/gcc.target/i386/sse4_1-pminud.c: New. + * testsuite/gcc.target/i386/sse4_1-roundss-2.c: New. + * testsuite/gcc.target/i386/sse4_1-pinsrb.c: New. + * testsuite/gcc.target/i386/sse4_1-ptest-1.c: New. + * testsuite/gcc.target/i386/sse4_1-mpsadbw.c: New. + * testsuite/gcc.target/i386/sse4_1-pmaxud.c: New. + * testsuite/gcc.target/i386/sse4_1-roundss-4.c: New. + * testsuite/gcc.target/i386/sse4_1-pinsrd.c: New. + * testsuite/gcc.target/i386/sse4_1-ptest-3.c: New. + * testsuite/gcc.target/i386/sse4_2-pcmpestri-1.c: New. + * testsuite/gcc.target/i386/sse4_1-blendpd.c: New. + * testsuite/gcc.target/i386/sse4_2-pcmpestrm-1.c: New. + * testsuite/gcc.target/i386/sse4_2-pcmpistri-1.c: New. + * testsuite/gcc.target/i386/sse4_1-roundpd-2.c: New. + * testsuite/gcc.target/i386/sse4_1-pmovzxwq.c: New. + * testsuite/gcc.target/i386/sse4_2-pcmpgtq.c: New. + * testsuite/gcc.target/i386/sse4_2-pcmpistrm-1.c: New. + * testsuite/gcc.target/i386/sse4_2-crc32b.c: New. + * testsuite/gcc.target/i386/sse4_1-pextrq.c: New. + * testsuite/gcc.target/i386/sse4_1-dppd-2.c: New. + * testsuite/gcc.target/i386/sse4_1-pmovzxbq.c: New. + * testsuite/gcc.target/i386/sse4_1-pextrw.c: New. + * testsuite/gcc.target/i386/sse4_1-movntdqa.c: New. + * testsuite/gcc.target/i386/sse4_1-roundps-2.c: New. + * testsuite/gcc.target/i386/sse4_2-crc32l.c: New. + * testsuite/gcc.target/i386/sse4_1-pmovzxbw.c: New. + * testsuite/gcc.target/i386/sse4_1-pmulld.c: New. + * testsuite/gcc.target/i386/sse4_1-blendvpd.c: New. + +2008-03-05 Josh Conner <jconner@apple.com> + + Radar 5603763 + * config/darwin.h (GEN_SUFFIXED_NAME_FOR_SYMBOL): New macro... + (GEN_LAZY_PTR_NAME_FOR_SYMBOL): ...use it. + * config/arm/arm.c (machopic_output_stub): Generate stub lazy + ptr label using GEN_SUFFIXED_NAME_FOR_SYMBOL instead of simple + concatenation. + +2008-03-04 Josh Conner <jconner@apple.com> + + Radar 5603792 + * config/arm/arm.c (arm_darwin_encode_section_info): New + function... + (TARGET_ENCODE_SECTION_INFO): ...use for TARGET_MACHO. + (arm_encode_section_info): Remove TARGET_MACHO-specific bits. + +2008-03-03 Jim Grosbach <grosbach@apple.com> + + Radar 5316398 + * config/arm/t-darwin (LIB2FUNCS_EXTRA, LIB2FUNCS_EXCLUDE): + Override libgcc functions for double/single float to DI + conversion with arm specific versions. + * config/arm/_fixdfdi.c: New file. ARM specific __fixdfdi() + * config/arm/_fixunsdfdi.c: New file. ARM specific __fixunsdfdi() + * config/arm/_fixsfdi.c: New file. ARM specific __fixsfdi() + * config/arm/_fixunssfdi.c: New file. ARM specific __fixunssfdi() + +2008-03-03 Josh Conner <jconner@apple.com> + + Radar 5757769 + * config/arm/arm.c (arm_dbx_register_number): Start VFP + debug register numbering from 256. + +2008-02-29 Josh Conner <jconner@apple.com> + + Radar 5730079 + * config/i386/darwin.c (DARWIN_ALLOWED_VERSION_TYPES): New + macro. + * config/rs6000/darwin.h (CC1_SPEC): Generate an error for + -maspen-version-min. + (DARWIN_ALLOWED_VERSION_TYPES): New macro. + * config/darwin.h: Change DARWIN_VERSION from enums to + bitfield macros. + (darwin_default_min_version): Add allowable types parameter. + * config/arm/darwin.c (CC1_SPEC): Generate an error for + -mmacosx-version-min. + (DARWIN_ALLOWED_VERSION_TYPES): New macro. + * config/darwin-driver.c (darwin_default_min_version): Add + allowable_vers_types parameter and logic to handle it. Rename + vers_type parameter to default_vers_type. + +2008-02-26 Caroline Tice <ctice@apple.com> + + Radar 5743691 + * dwarf2out.c (DW_ISA_*): New defines. + (dwarf_attr_name): Recognize DW_AT_APPLE_isa. + (gen_subprogram_die): For ARM, emit DW_AT_APPLE_isa. + * dwarf2.h (enum dwarf_attribute): Add DW_AT_APPLE_isa. + +2008-02-21 Caroline Tice <ctice@apple.com> + + Radar 5741070 + * objc/objc-act.c (objc_finish_message_expr): Find + the record-type tree from the class interface, and mark the record + type as used, for emitting debug info. + * cp/cp-objcp-common.c (c_return_interface_record_type): New function. + * cp/cp-tree.h (c_return_interface_record_type): New extern function + declaration. + * c-tree.h (c_return_interface_record_type): Likewise + * c-decl.c (c_return_interface_record_type): New function. + +2008-02-18 Jim Grosbach <grosbach@apple.com> + Radar 5752613 + * fold-const.c (fold_inf_compare): equality comparisons to + infinity are not equivalent to relatives comparison to DBL_MAX + due to, e.g., different treatment of the "invalid" flag. Remove the + conversions which make those transformations. + +2008-02-19 Caroline Tice <ctice@apple.com> + + Radar 2338865 + * dwarf2out.c (options.h): New include statement. + (dwarf_attr_name): Add cases for DW_AT_APPLE_flags and + DW_AT_APPLE_optimized. + (gen_subprogram_die): Add DW_AT_APPLE_optimized to subprogram die if + optimization level for the subroutine is greater than zero. + (dwarf2out_finish): Add DW_AT_APPLE_optimized to the comp unit die if + the optimization level is greater than zero. + * dwarf2.h (DW_AT_APPLE_optimized): Add new Apple attribute. + +2008-02-08 Josh Conner <jconner@apple.com> + + Radar 5681645 + Radar 5717692 + * config.gcc: Move t-slibgcc-darwin from *-*-darwin* into + i[34567]86-*-darwin*, powerpc-*-darwin*, and + powerpc64-*-darwin*. Add t-libgcc-aspen to arm*-*-darwin*. + * config/i386/darwin.h (DARWIN_ASPEN_LIBGCC_SPEC): New macro. + * config/rs6000/darwin.h (DARWIN_ASPEN_LIBGCC_SPEC): New macro. + * config/darwin.h (REAL_LIBGCC_SPEC): If -maspen-version-min is + seen, use darwin_aspen_libgcc spec. + (DARWIN_EXTRA_SPECS): Add darwin_aspen_libgcc. + * config/arm/t-darwin (SHLIB_VERPFX): Remove. + * config/arm/t-slibgcc-aspen: New file. + * config/arm/darwin.h (DARWIN_ASPEN_LIBGCC_SPEC): New macro. + * config/arm/libgcc-aspen.ver: New file. + * config/arm/darwin-libgcc.10.4.ver: Remove file. + * config/arm/darwin-libgcc.10.5.ver: Remove file. + +2008-02-06 Josh Conner <jconner@apple.com> + + Radar 5723857 + * config/arm/t-darwin: No longer create multilibs. Add + -march=armv6k to the library build options. + +2008-02-06 Josh Conner <jconner@apple.com> + + Radar 5726269 + * config/arm/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Don't set + flag_objc_abi or flag_objc_legacy_dispatch here. + (OBJC_TARGET_FLAG_OBJC_ABI): New macro. + +2008-02-06 Hui-May Chang <hm.chang@apple.com> + + Radar 5103201 + * config/i386/mmx.md (mov<MMXMODEI>_internal_rex64, + mov<MMXMODEI>_internal) : Resolved the conflict between mainline + and the patch for radar 4043818. + +2008-02-04 Josh Conner <jconner@apple.com> + + Radar 5717579 + * config/arm/arm.c (arm_encode_section_info): On darwin, invoke + arm_encode_call_attribute even if !first. + +2008-01-30 Josh Conner <jconner@apple.com> + + Radar 5683689 + * config/darwin-c.c (iphone_version_as_macro): Rename to... + (aspen_version_as_macro): ...this. Also, replace all iphone + references with aspen. + (darwin_cpp_builtins): Likewise. + * config/darwin.opt (miphone-version-min): Rename to... + (maspen-version-min): ...this. Also, replace all iphone + references with aspen. + * config/i386/darwin.h (CC1_SPEC): Replace all iphone references + with aspen. + (SUBTARGET_OVERRIDE_OPTIONS): Likewise. + (TARGET_DWARF_UNINIT_VARS): Likewise. + * config/rs6000/darwin.h (C_COMMON_OVERRIDE_OPTIONS): Likewise. + (CC1_SPEC): Likewise. + (HAVE_OFFS_MSGSEND_FAST): Likewise. + (TARGET_C99_FUNCTIONS): Likewise. + (TARGET_DWARF_UNINIT_VARS): Likewise. + * config/rs6000/rs6000.c (darwin_rs6000_override_options): + Likewise. + * config/darwin.h (enum darwin_version_type): Likewise. + (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise. + (LINK_SPEC): Likewise. + (REAL_LIBGCC_SPEC): Likewise. + (DARWIN_DYLIB1_SPEC): Likewise. + (DARWIN_CRT1_SPEC): Likewise. + (OBJC_FLAG_OBJC_ABI): Likewise. + * config/arm/darwin.h (CC1_SPEC): Likewise. + (DARWIN_CC1_MINVERSION_SPEC): Likewise. + (DARWIN_LD_MINVERSION_SPEC): Likewise. + (DARWIN_DEFAULT_VERSION_TYPE): Likewise. + (SUBTARGET_OVERRIDE_OPTIONS): Likewise. + * config/darwin-driver.c (darwin_default_min_version): Likewise. + +2008-01-30 Josh Conner <jconner@apple.com> + + Radar 5713583 + * config/darwin.h (REAL_LIBGCC_SPEC): When -maspen-version-min + is seen, also pass -lgcc. + +2008-01-30 Josh Conner <jconner@apple.com> + + Radar 5482675 + * config/arm/arm.md (define_expand "call"): Test for longcall + before calling machopic_indirect_call_target. + (define_expand "call_value"): Likewise. + +2008-01-30 Hui-May Chang <hm.chang@apple.com> + + Radar 5103201 + Backport from mainline: + 2007-06-05 H.J. Lu <hongjiu.lu@intel.com> + 2007-02-06 Richard Henderson <rth@redhat.com> + * config/i386/mmx.md (mov<MMXMODEI>_internal_rex64, + mov<MMXMODEI>_internal, movv2sf_internal_rex64, movv2sf_internal, + vec_extractv2si_1): Change Y constraints to Yt. + +2008-01-25 Josh Conner <jconner@apple.com> + + Radar 5660282 + * config/darwin.h (OBJC_FLAG_OBJC_ABI): Warn and ignore + flag_objc_gc and flag_objc_gc_only if darwin_iphone_version_min + is set. + +2008-01-23 Hui-May Chang <hm.chang@apple.com> + + Radar 5618945 + * config/i386/emmintrin.h : Replace "static __inline" by "__liline" + if __GNUC_STDC_INLINE__ is defined. + * config/i386/pmmintrin.h : Likewise. + * config/i386/tmmintrin.h : Likewise. + * config/i386/xmmintrin.h : Likewise. + * config/i386/mmintrin.h : Likewise. + +2008-01-22 Josh Conner <jconner@apple.com> + + Radar 5683689 + * config/darwin-c.c (version_as_macro): Renamed to... + (macosx_version_as_macro): ...this. + (iphone_version_as_macro): New function. + (darwin_cpp_builtins): Define + __ENVIRONMENT_IPHONE_VERSION_MIN_REQUIRED__, as needed. + * config/darwin.opt (mmacosx-version-min): Initialize to + NULL. + (miphone-version-min): New option. + * config/i386/darwin.h (CC1_SPEC): Use darwin_cc1_minversion + if -miphone-version-min and -mmacosx-version-min not seen. + (DARWIN_CC1_MINVERSION_SPEC): New define. + (DARWIN_LD_MINVERSION_SPEC): New define. + (DARWIN_DEFAULT_VERSION_TYPE): New define. + (SUBTARGET_OVERRIDE_OPTIONS): Set darwin_macosx_version_min, + if needed. + (TARGET_DWARF_UNINIT_VARS): Check darwin_iphone_version_min. + * config/rs6000/darwin.h (C_COMMON_OVERRIDE_OPTIONS): Don't + clear flag_use_cxa_get_exception_ptr if + darwin_iphone_version_min is set. + (CC1_SPEC): Use darwin_cc1_minversion if -miphone-version-min + and -mmacosx-version-min not seen. + (DARWIN_CRT2_SPEC): Verify that -mmacosx-version-min is set + before using it. + (DARWIN_CC1_MINVERSION_SPEC): New define. + (DARWIN_LD_MINVERSION_SPEC): New define. + (DARWIN_DEFAULT_VERSION_TYPE): New define. + (HAVE_OFFS_MSGSEND_FAST): Set if darwin_iphone_version_min is + set. + (TARGET_C99_FUNCTIONS): Likewise. + (TARGET_DWARF_UNINIT_VARS): Likewise. + * config/rs6000/rs6000.c (darwin_rs6000_override_options): + Set darwin_macosx_version_min, if needed. Set + darwin_constant_cfstrings, but not altivec target_flags, if + darwin_iphone_version_min is set. + * config/darwin.c (darwin_override_options): Verify that + darwin_macosx_version_min is set before using it. + * config/darwin.h (enum darwin_version_type): New type. + (SUBSUBTARGET_OVERRIDE_OPTIONS): Err if both + darwin_macosx_version_min and darwin_iphone_version_min are + set. + (LINK_SPEC): Use darwin_ld_minversion as default. Pass + -iphone_version_min to linker, if -miphone-version-min was + given. + (REAL_LIBGCC_SPEC): Use -lgcc_s.10.5 if -miphone-version-min + was seen. + (DARWIN_EXTRA_SPECS): Add darwin_cc1_minversion and + darwin_ld_minversion. + (DARWIN_DYLIB1_SPEC): Use dylib1.10.5.o if -miphone-version-min + was given. + (DARWIN_CRT1_SPEC): Use crt1.10.5.o if -miphone-version-min was + given. + (OBJC_FLAG_ZEROCOST_EXCEPTIONS): Verify that + darwin_macosx_version_min is set before using it. + (OBJC_WARN_OBJC2_FEATURES): Only perform this check if + darwin_macosx_version_min is set. + (darwin_default_min_version): Add parameter to prototype. + (GCC_DRIVER_HOST_INITIALIZATION): Add new parameter to + darwin_default_min_version call. + * config/arm/darwin.h (CC1_SPEC): Use darwin_cc1_minversion if + -miphone-version-min and -mmacosx-version-min not seen. + (DARWIN_MINVERSION_SPEC): Change to "1.2". + (DARWIN_CC1_MINVERSION_SPEC): New define. + (DARWIN_LD_MINVERSION_SPEC): New define. + (DARWIN_DEFAULT_VERSION_TYPE): New define. + (SUBTARGET_OVERRIDE_OPTIONS): Set darwin_iphone_version_min, + if needed. + * config/darwin-driver.c (darwin_default_min_version): Add new + parameter, vers_type, and logic to handle it. Change size of + new_flag. Don't use default if any of the *-version-min options + were given. Check for IPHONE_DEPLOYMENT_TARGET environment + variable. + +2008-01-11 Caroline Tice <ctice@apple.com> + + Radar 5636185 + * dwarf2out.c (contained_in_subroutine): New function. + (add_sibling_attributes): Add code to test for & remove + DW_AT_MIPS_linkage_name, if appropriate. + (assembler_name_exists_and_is_different): New function. + (add_src_coords_attributes): Modify test condition for adding + DW_AT_MIPS_linkage_name attribute: Change TREE_PUBLIC to + TREE_PUBLIC || TREE_STATIC || DECL_EXTERNAL, and replace + DECL_ASSEMBLER_NAME test with call to + assembler_name_exists_and_is_different. + +2008-01-10 Josh Conner <jconner@apple.com> + + Radar 5680184 + * c.opt (fobjc-legacy-dispatch): New option. + * config/darwin.h (OBJC_FLAG_OBJC_ABI): Specify a default + for flag_objc_legacy_dispatch. + * config/arm/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): + Specify a default for flag_objc_abi and + flag_objc_legacy_dispatch. + +2008-01-09 Josh Conner <jconner@apple.com> + + Radar 5256615 + * doc/invoke.texi: Document -Xarch_* option. + +2008-01-08 Hui-May Chang <hm.chang@apple.com> + + Radar 5596043 & 5645144 + * cse.c (cse_insn) : Ignore the asm source operand of an + inline assembly instruction when finding all the SETs in the + instruction and invalidate its target. + +2007-12-21 Josh Conner <jconner@apple.com> + + Radar 5651192 + * config/arm/arm.md (adjustable_thumb_movdi_insn): Fix + pool_range. + (thumb_movdf_insn): Likewise. + +2007-12-19 Caroline Tice <ctice@apple.com> + + Radar 5645155 + * dwarf2out.c (dwarf2out.c): Add call to maybe_emit_file, to + make sure current compilation unit filename is added to + line table info. + * testsuite/gcc.apple/dwarf-files.c: New testcase. + +2007-12-18 Stuart Hastings <stuart@hastings.org> + + Radar 5562718 + * tree-vrp.c (value_inside_range): Return can't-tell if cmp1 + or cmp2 is not a bool constant. (range_includes_zero_p): + Handle can't-tell case. + * testsuite/g++.apple/R5562718.C: New. + +2007-12-18 Josh Conner <jconner@apple.com> + + Radar 5622318 (continued) + * config/arm/darwin-libgcc.10.5.ver: Remove aeabi functions. + +2007-12-18 Josh Conner <jconner@apple.com> + + Radar 5622318 + * config/arm/ieee754-df.S (muldf3vfp, adddf3vfp, subdf3vfp, + divdf3vfp, eqdf2vfp, nedf2vfp, ltdf2vfp, ledf2vfp, gtdf2vfp, + gedf2vfp, unorddf2vfp, fixdfsivfp, fixunsdfsivfp, + extendsfdf2vfp, truncdfsf2vfp, floatsidfvfp, floatunssidfvfp): + New functions. + * config/arm/ieee754-sf.S (mulsf3vfp, addsf3vfp, subsf3vfp, + divsf3vfp, eqsf2vfp, nesf2vfp, ltsf2vfp, lesf2vfp, gtsf2vfp, + gesf2vfp, unordsf2vfp, fixsfsivfp, fixunssfsivfp, + floatsisfvfp, floatunssisfvfp): New functions. + * config/arm/t-darwin (LIB1ASMFUNCS): Add all of the above. + * config/arm/arm.c (arm_init_libfuncs): Set up optabs to call + the above in Thumb, non-soft-float, non-static mode. + (indirect_sibreturn_reg): New function. + (indirect_sibreturn_mem): New function. + (use_return_insn): Add support for indirect sibcalls. + (arm_function_ok_for_sibcall): Allow indirect sibcalls. + (arm_legitimize_address): Improve code for addresses including + large constants, or including stack address + constant. + (arm_rtx_costs_1): Allow an extra cycle for shifted operands + in arithmetic instructions (leading to better decisions + about expanding multiplies). + (arm_cannot_copy_p): Recognize MEM(UNSPEC_PIC_BASE) within a + set insn. + (arm_gen_movmemqi): Choose smallest alternative at -Os. + (arm_expand_prologue): Use extra register saves instead of a + subtract from SP when possible at -Os. + (arm_output_epilogue): Likewise. Handle indirect sibcalls + that use a callee-saved reg. + * config/arm/arm.h (FUNCTION_BOUNDARY): Allow halfword alignment + for thumb functions, when possible. + (LOCAL_ALIGNMENT): New definition. + * config/arm/darwin.h (FLOAT_LIB_COMPARE_RETURNS_BOOL): New. + * config/arm/lib1funcs.asm (ARM_FUNC_START): Mandate word- + alignment of all ARM functions. + * config/arm/arm.md (define_peephole2, line 583): New peephole. + (define_peephole2, line 6110): New peephole. + (arm_pic_ldrsi): New define_insn. + (arm_pic_strsi): New define_insn. + (sibcall_insn): Add support for indirect sibcalls. + (sibcall_value_insn): Likewise. + (movmemqi): Choose smallest alternative at -Os (Thumb variant). + * config/arm/darwin-libgcc.10.5.ver: Update for Leopard. + +2007-12-16 Hui-May Chang <hm.chang@apple.com> + + Radar 5645144 + * cse.c (cse_insn) : Undo the patch of 5596043 for the ld64 failure + found in SWB. + +2007-12-14 Josh Conner <jconner@apple.com> + + Radar 5635246 + * final.c (calculate_alignments): New function. + (shorten_branches): Move calculations of uid_align into + calculate_alignments. Invoke when alignments change. + +2007-12-12 Josh Conner <jconner@apple.com> + + Radar 5643197 + * config/rs6000/rs6000.c (rs6000_vector_alignment_reachable): + Implement TARGET_MACHO+TARGET_64BIT logic. + +2007-12-11 Eric Christopher <echristo@apple.com> + + Radar 5582941 + * config/i386/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Use correct + bitmask for default setting variables. + +2007-12-11 Josh Conner <jconner@apple.com> + + Radar 5569774 + + Backport from FSF 4.2: + 2007-07-25 Dorit Nuzman <dorit@il.ibm.com> + Devang Patel <dpatel@apple.com> + PR tree-optimization/25413 + * targhooks.c (default_builtin_vector_alignment_reachable): New. + * targhooks.h (default_builtin_vector_alignment_reachable): New. + * tree.h (contains_packed_reference): New. + * expr.c (contains_packed_reference): New. + * tree-vect-analyze.c (vector_alignment_reachable_p): New. + (vect_enhance_data_refs_alignment): Call + vector_alignment_reachable_p. + * target.h (vector_alignment_reachable): New builtin. + * target-def.h (TARGET_VECTOR_ALIGNMENT_REACHABLE): New. + * config/rs6000/rs6000.c (rs6000_vector_alignment_reachable): + New. + (TARGET_VECTOR_ALIGNMENT_REACHABLE): Define. + + Revert the following: + 2005-12-07 Devang Patel <dpatel@apple.com> + Radar 4333194 + * tree-vect-analyze.c (vect_compute_data_ref_alignment): Check + misalignment where natural alignment is not reachable using loop + peeling. + +2007-12-05 Stuart Hastings <stuart@apple.com> + + Radar 5591571 + * config/i386/i386.c (override_options): Disable instruction scheduler. + * doc/invoke.texi (-fschedule-insns, -fschedule-insns2): Disabled for x86. + +2007-12-05 Hui-May Chang <hm.chang@apple.com> + + Radar 5596043 + * cse.c (cse_insn) : Ignore the asm source operand of an + inline assembly instruction when finding all the SETs in the + instruction and invalidate its target memory reference. + +2007-12-03 Caroline Tice <ctice@apple.com> + + Radar 5619139 + * dwarf2out.c (gen_typedef_die): Don't add typedef to + pubtypes table unless renamed type is fully defined in + current file. + +2007-11-30 Hui-May Chang <hm.chang@apple.com> + + Radar 5596043 + * cse.c (cse_insn) : Ignore the asm source operand of an + inline assembly instruction when finding all the SETs in the + instruction. + +2007-11-29 Hui-May Chang <hm.chang@apple.com> + + Radar 5612779 + * fold-const.c (extract_muldiv_1) : Do not move a negative + constant from an ABS_EXPR. + +2007-11-28 Josh Conner <jconner@apple.com> + + Radar 5594980 + * defaults.h (TARGET_EXTRA_CASES): New definition. + * final.c (compute_alignments): Always compute alignments if + TARGET_EXACT_SIZE_CALCULATIONS is defined. + (shorten_branches): Figure out asms_present and disallow + CASE_VECTOR_SHORTEN_MODE shortening if true. Account for + prologue size if TARGET_UNEXPANDED_PROLOGUE_SIZE is defined. + Invoke ADJUST_INSN_LENGTH for switch tables. Give table + label the same alignment as the table if + TARGET_ALIGN_ADDR_DIFF_VEC_LABEL is defined. + * function.c (struct function): Add needs_4byte_alignment + field. + * config/arm/t-darwin (LIB1ASMFUNCS): Add _switchu8, _switch8, + _switch16, and _switch32. + * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Set for both + ARM and Thumb. + * config/arm/arm.c (thumb_exit): Rename handle_thumb_exit, + rewrite to count bytes as well as emit code. + (thumb_pushpop): Rename handle_thumb_pushpop, rewrite + similarly. + (thumb_unexpanded_epilogue): Rename + handle_thumb_unexpanded_epilogue, rewrite similarly. + (thumb_output_function_prologue): Rename + handle_thumb_unexpanded_prologue, rewrite similarly. + (switch8_libfunc, switchu8_libfunc, switch16_libfunc, + switch32_libfunc, register_switch8_libfunc, + register_switchu8_libfunc, register_switch16_libfunc, + register_switch32_libfunc, arm_adjust_insn_length, + count_thumb_unexpanded_prologue, arm_label_align): New + functions. + (arm_reorg): Initialize address with + count_thumb_unexpanded_prologue. + (thumb_load_double_from_address): Disallow *[reg+reg] + addressing. + * config/arm/lib1funcs.asm: Add switchu8, switch8, switch16, and + switch32 functions. + * config/arm/arm.h (CASE_VECTOR_PC_RELATIVE, + CASE_VECTOR_SHORTEN_MODE, ASM_OUTPUT_ADDR_DIFF_VEC, + ASM_OUTPUT_ADDR_VEC, ADJUST_INSN_LENGTH, LABEL_ALIGN, + TARGET_EXTRA_CASES, TARGET_EXACT_SIZE_CALCULATIONS, + TARGET_UNEXPANDED_PROLOGUE_SIZE, + TARGET_ALIGN_ADDR_DIFF_VEC_LABEL): New definitions. + * config/arm/arm-protos.h (arm_adjust_insn_length, + register_switch8_libfunc, register_switchu8_libfunc, + register_switch16_libfunc, register_switch32_libfunc, + count_thumb_unexpanded_prologue, arm_label_align): New protos. + * config/arm/predicates.md (thumb_low_register_operand): + New predicate. + * config/arm/arm.md (VUNSPEC_POOL_STRING): New VUNSPEC. + (*thumb_zero_extendhisi2): Rename + adjustable_thumb_zero_extendhisi2. + (*thumb_zero_extendhisi2_v6): Rename + adjustable_thumb_zero_extendhisi2_v6. + (*thumb_extendhisi2_insn_v6): Rename + adjustable_thumb_extendhisi2_insn_v6. + (*thumb_extendqisi2): Rename adjustable_thumb_extendqisi2. + (*thumb_extendqisi2_v6): Rename + adjustable_thumb_extendqisi2_v6. Fix typo. + (*thumb_movdi_insn): Rename + adjustable_thumb_movdi_insn. Fix length. + (*pic_load_addr_based_insn): Fix length. + (*thumb_movhi_insn): Rename adjustable_thumb_movhi_insn. + (*thumb_movdf_insn): Fix length. + (*ldmsi_postinc4_thumb): Fix length. + (*stmsi_postinc4_thumb): Fix length. + (casesi): Add TARGET_THUMB support. + (thumb_casesi_internal): New define_insn. + (align_4): Fix length. + (align_8): Fix length. + (consttable_end): Fix length. + (prologue_use): Fix length. + * stmt.c (expand_case): Allow for ADDR_DIFF_VEC being + handled by ASM_OUTPUT_ADDR_DIFF_VEC. Add TARGET_EXTRA_CASES at + the end of the table as needed. + +2007-11-28 Hui-May Chang <hm.chang@apple.com> + + Radar 5591491 + * tree-sra.c (generate_element_zero) : Built a zero expression + when the decision is an integer copy. + +2007-11-14 Josh Conner <jconner@apple.com> + + Radar 5595814 + * config/arm/arm.c (symbol_mentioned_with_filter): Recurse + through symbol_mentioned_with_filter, not symbol_mentioned_p. + +2007-11-14 Josh Conner <jconner@apple.com> + + Radar 5597292 + * dbxout.c (dbxout_type_xref): For a TYPE_DECL, also check if + DECL_NAME(TYPE_NAME) is NULL. + +2007-11-14 Josh Conner <jconner@apple.com> + + Radar 5595749 + * dwarf2out.c (frame_pointer_fb_offset_from): New variable... + (based_loc_descr): ...use it... + (compute_frame_pointer_to_fb_displacement): ...set it. + * var-tracking.c (find_src_status): Add COND_EXEC handling. + (find_src_set_src): Likewise. + +2007-11-13 Hui-May Chang <hm.chang@apple.com> + + Radar 4877693 + * config/i386/i386.c (ix86_internal_arg_pointer) : Emit an error + message when -mstackrealign -m64 options were specified. + +2007-11-13 Josh Conner <jconner@apple.com> + + Radar 5595934 + * config/arm/arm.md (pic_load_addr_thumb): Change pool_range + to 1022. + +2007-11-09 Eric Christopher <echristo@apple.com> + + Radar 5582941 + * config/i386/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Add + cpu features that don't have masks if we haven't specified an + arch. + * config/i386/i386.h: Make above variables non-const. + * config/i386/i386.c: Ditto. Fix cmpxchg16b definition. + +2007-11-09 Eric Christopher <echristo@apple.com> + + * c-common.c (iasm_stmt): Replace use of MACHO_DYNAMIC_NO_PIC_P + with !flag_pic. + +2007-11-08 Josh Conner <jconner@apple.com> + + Radar 5589109 + * gcc/config/arm/darwin-libgcc.10.4.ver (adddf3, extendsfdf2, + floatdidf, floatsidf, subdf3): Remove. + +2007-11-07 Josh Conner <jconner@apple.com> + + Radar 5581683 + * function.h (struct function): Add calls_builtin_ret_addr + and calls_builtin_frame_addr. + (current_function_calls_builtin_ret_addr): New definition. + (current_function_calls_builtin_frame_addr): New definition. + * builtins.c (expand_builtin_return_addr): Set + current_function_calls_builtin_frame_addr and + current_function_calls_builtin_ret_addr. + (expand_builtin_setjmp_receiver): Check + builtin_setjmp_frame_value. + * dbxout.c (dbxout_parms): Adjust debug info offset by + DEBUGGER_ARG_OFFSET. + * global.c (global_alloc): Add ALLOW_ELIMINATION_TO_SP + logic. + * reload1.c (update_eliminables): Likewise. + (init_elim_table): Likewise. + * config/arm/arm.c (arm_builtin_setjmp_frame_value): New + function. + (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define. + (inclusive_bitmask): New function. + (use_return_insn): Support darwin alternate frame layout. + (arm_compute_save_reg0_reg12_mask): Likewise. + (arm_compute_save_reg_mask): Likewise. + (thumb_compuate_save_reg_mask): Mandate use of FP. Also, + support darwin alternate frame layout. + (arm_output_epilogue): Support darwin alternate frame layout. + (arm_get_frame_offsets): Likewise. + (arm_compute_initial_elimination_offset): Likewise. + (arm_expand_prologue): Likewise. + (arm_return_addr): Likewise. + (thumb_compute_initial_elimination_offset): Likewise. + (thumb_expand_prologue): Likewise. + (arm_set_return_addr): Likewise. + (thumb_set_return_addr): Likewise. + (arm_debugger_arg_offset): Adjust for SP-relative addressing. + (thumb_output_function_prologue): Mandate use of FP. + (arm_builtin_setjmp_frame_value): New function. + (arm_local_debug_offset): New function. + * config/arm/arm.h (ARM_HARD_FRAME_POINTER_REGNUM): Define as + r7. + (FRAME_POINTER_REQUIRED): Redefine to match darwin alternate + frame layout. + (ELIMINABLE_REGS): Don't eliminate from AP into FP. + Merge ARM and Thumb hard frame pointers. + (CAN_ELIMINATE): Allow elimination to SP if SP doesn't change + during a function's lifetime. + (DEBUGGER_ARG_OFFSET): Always call arm_debugger_arg_offset. + (DEBUGGER_AUTO_OFFSET): Define. + (ALLOW_ELIMINATION_TO_SP): Define. + * config/arm/arm-protos.h (arm_local_debug_offset): New proto. + * config/arm/darwin-libgcc.10.4.ver (addsf3, floatdisf, + floatsisf, subsf3): Remove. + +2007-11-07 Josh Conner <jconner@apple.com> + + Radar 5585396 + * config/arm/arm.md (trap): New define_insn. + +2007-11-06 Eric Christopher <echristo@apple.com> + + Radar 5583537 + * config.gcc: Remove duplicate apple local code. + +2007-11-05 Hui-May Chang <hm.chang@apple.com> + + Radar 4709514 + * tree-pass.h (pass_memset) : Removed. + * bitmap.h (bitmap_empty_p) : Removed. + * tree-ssa-loop.c: (tree_ssa_loop_memset, gate_tree_ssa_loop_memset, + pass_memset) : Removed. + * tree-ssa-loop-memset.c : Removed. + * tree-vectorizer.h: (vect_analyze_pointer_ref_access) : Removed. + * tree-vect-analyze.c (tree vect_get_loop_niters): Declared it as + a static instead of an extern function. + * tree-flow.h (tree_ssa_memset): Removed. + * passes.c (pass_memset): Removed. + * Makefile.in (tree-ssa-loop-memset.o) : Removed. + +2007-11-05 Josh Conner <jconner@apple.com> + + Radar 5569420 + * doc/invoke.texi: Reinstate ARM options. + * builtins.c (expand_builtin_alloca): Emit NOTE_INSN_ALLOCA. + * final.c (final_scan_insn): Handle NOTE_INSN_ALLOCA. + * insn-notes.def (ALLOCA): New INSN_NOTE. + * cse.c (fold_rtx): Verify REGNO_QTY_VALID_P (folded_arg1) + before using it. + * stor-layout.c (start_record_layout): Add PEG_ALIGN_FOR_MAC68K + handling. + * calls.c (store_one_arg): Handle arguments which are partially + on the stack when detecting argument overlap. + * except.c (sjlj_emit_function_enter): Split this into + (sjlj_generate_setjmp_sequence): ...this new function... + (sjlj_emit_function_setjmps): ...and this new function. + (sjlj_emit_dispatch_table): Call sjlj_emit_function_setjmps + instead of sjlj_emit_function_enter. + * config/i386/darwin.h (CC1_SPEC): Ignore -mthumb and + -mno-thumb. + * config/rs6000/darwin.h (CC1_SPEC): Likewise. + * config/arm/arm.c (all_architectures): Change default + processors for TARGET_MACHO. + (arm_override_options): Don't warn if interworking selected + on a processor that doesn't support thumb. Enable + interworking by default on v5 and later architectures. + (arm_compute_func_type): Consider TARGET_INTERWORK only on + pre-v5 architectures. + (use_return_insn): Likewise. + (thumb_pushpop): Likewise. + (thumb_exit): Likewise. + (arm_function_ok_for_sibcall): Likewise. Also, don't allow + sibcalls of external functions on TARGET_MACHO. Also, + don't allow sibcalls of weak functions. + (arm_legitimate_index_p): Limit indexed addressing on + TARGET_VFP. Also, consider TARGET_INTERWORK only on pre-v5 + architectures. + (arm_output_mi_thunk): Use a stub for dynamic references. + Also, use a -8 offset when calculating the address of a + PIC reference to a non-local function. + (optimization_options): New function. + * config/arm/arm.h (TARGET_INTERWORK): Define. + (OPTIMIZATION_OPTIONS): Define. + * config/arm/arm-protos.h (optimization_options): New + prototype. + * config/arm/arm.opt (mthumb-interwork): Set interwork_option + instead of a target mask. + * config/arm/arm.md (UNSPEC_JMP_XCHG): New UNSPEC. + (thumb_extendqisi2_v6): Check for which_alternative == 1. + (builtin_setjmp_receiver): Remove. + (builtin_setjmp_setup): New define_expand. + (builtin_longjmp): New define_expand. + (indirect_jump_exchange): New define_expand. + (arm_indirect_jump_exchange): New define_insn. + (thumb_indirect_jump_exchange): New define_insn. + +2007-11-04 Hui-May Chang <hm.chang@apple.com> + + Radar 5543378 + * config/i386/i386.c (ix86_expand_builtin): Improved the previous + patch. + +2007-10-30 Hui-May Chang <hm.chang@apple.com> + + Radar 5543378 + * config/i386/i386.c (ix86_expand_builtin): Allow non-immediate + shift count, load a memory operand to a register and convert to + TI mode if necessary. + +2007-10-26 Josh Conner <jconner@apple.com> + + Radar 5562046 + * defaults.h (LEGITIMATE_INDIRECT_OPERAND_P): Define... + * reload.c (find_reloads): ...use. + * reload1.c (reload): Likewise. + * recog.c (general_operand): Likewise. + (immediate_operand): Likewise. + (nonmemory_operand): Likewise. + (asm_operand_ok): Likewise. + * regclass.c (record_reg_classes): Likewise. + * gcc.c (main): Add sysroot prefix to startfile_prefixes. + * jump.c (rtx_renumbered_equal_p): Don't allow LABEL_REFs to + undefined labels to match. + * c-common.c (iasm_process_arg): Define default constraints for + ARM. + (cw_cpsr, cw_cpsr_c): New variables. + (iasm_lookup_label): Recognize cpsr and cpsr_c as operands. + * config.gcc: Add arm*-*-darwin* target. + * config/i386/darwin.h (DARWIN_DSYMUTIL_SPEC): New definition. + * config/rs6000/darwin.h (DARWIN_DSYMUTIL_SPEC): New definition. + * config/darwin-protos.h (machopic_lookup_stub_or_non_lazy_ptr): + New function. + (machopic_data_defined_p): Make extern. + * config/darwin.c (machopic_data_defined_p): Make extern. + (struct machopic_indirection): Add 'emitted' field. + (indirection_uses_changed): New variable. + (machopic_indirection_name): Set 'emitted' field. + (machopic_lookup_stub_or_non_lazy_ptr): New function. + (machopic_validate_stub_or_non_lazy_ptr): Set + indirection_uses_changed. Use 'emitted' field. + (machopic_output_indirection): Set 'emitted' field. + (machopic_finish): Use 'indirection_uses_changed' to determine + whether to invoke htabl_traverse_noresize again. + (machopic_select_section): Fix a signedness mismatch. + * config/darwin-sections.def (machopic_symbol_stub4_section): + New section defintion. + (machopic_picsymbol_stub4_section): New section definition. + * config/darwin.h (LINK_COMMAND_SPEC): Use DARWIN_DSYMUTIL_SEPC. + (DARWIN_EXTRA_SPECS): Add darwin_dsymutil. + (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New definition... + (ASM_DECLARE_FUNCTION_NAME): ...use it. + * config/arm/t-darwin: New file. + * config/arm/ieee754-df.S (*): Convert macro definitions to + gcc preprocessor and cctools assembler style macros. Don't + use local labels > 9. + * config/arm/ieee754-sf.S (*): Likewise. + * config/arm/lib1funcs.asm (*): Likewise. + * config/arm/arm.c: Add libcpp/internal.h include. + (arm_darwin_file_start): New function. + (arm_darwin_file_end): New function. + (symbol_mentioned_with_filter): New function. + (arm_cannot_force_const_mem): New function. + (arm_binds_local_p): New function. + (TARGET_ASM_FILE_START): New definition. + (TARGET_ASM_FILE_END): New definition. + (TARGET_ASM_ALIGNED_SI_OP): New definition. + (TARGET_CANNOT_FORCE_CONST_MEM): Redefine. + (TARGET_BINDS_LOCAL_P): New definition. + (arm_override_options): Don't warn for conflicting -mcpu and + -march switch on darwin. Don't set arm_pic_register on darwin. + Invoke SUBTARGET_OVERRIDE_OPTIONS and + SUBSUBTARGET_OVERRIDE_OPTIONS. + (arm_attribute_table): Include SUBTARGET_ATTRIBUTE_TABLE. + (arm_encode_call_attribute): Add MACHO handling. + (current_file_function_operand): Use SYMBOL_SHORT_CALL_ATTR_P on + darwin. + (arm_is_longcall_p): Use SYMBOL_LONG_CALL_ATTR_P on darwin. + (legitimize_pic_address): Add TARGET_MACHO support. + (arm_load_pic_register): Disable for darwin. Pass label rtx + when calling gen_pic_load_addr_arm, gen_pic_add_dot_plus_eight, + gen_pic_load_addr_thumb, and gen_pic_add_dot_plus_four. + (arm_cannot_force_const_mem): New function. + (symbol_mentioned_p): Call symbol_mentioned_with_filter. + (symbol_mentioned_with_filter): New function. + (arm_cannot_copy_insn_p): Match MACHO UNSPEC_PIC_BASE. + (arm_output_function_epilogue): For darwin, insert a nop after + a trailing label. + (arm_print_operand): Use a LOCAL_LABEL_PREFIX, if one is + defined. + (arm_assemble_integer): Assume aligned_p on darwin. Use + DOT_WORD instead of ".word". + (arm_elf_asm_constructor): Only define if OBJECT_FORMAT_ELF. + (arm_init_builtins): Include SUBTARGET_INIT_BUILTINS. + (arm_darwin_file_start): New function. + (arm_darwin_file_end): New function. + (arm_encode_section_info): For TARGET_MACHO, call + darwin_encode_section_info, and use SYMBOL_LONG_CALL and + SYMBOL_SHORT_CALL. + (arm_cxx_class_data_always_comdat): Return false for darwin. + (arm_binds_local_p): New function. + (reset_optimization_options): New function. + (machopic_output_stub): New function. + (iasm_memory_clobber): New function. + * config/arm/arm.h (TARGET_MACHO, DOT_WORD, SYMBOL_SHORT_CALL, + SYMBOL_LONG_CALL, SYMBOL_SHORT_CALL_ATTR_P, + SYMBOL_LONG_CALL_ATTR_P, LEGITIMATE_DYNAMIC_NO_PIC_OPERAND_P, + LEGITIMATE_INDIRECT_OPERAND_P): Define. + (ENCODED_SHORT_CALL_ATTR_P, ENCODED_LONG_CALL_ATTR_P): Remove. + (THUMB_TRAMPOLINE_TEMPLATE): Use DOT_WORD instead of ".word". + (ARM_NAME_ENCODING_LENGTHS): Remove handling of + SHORT_CALL_FLAG_CHAR and LONG_CALL_FLAG_CHAR. + (ARM_DECLARE_FUNCTION_SIZE): Use SYMBOL_SHORT_CALL instead of + SHORT_CALL_FLAG_CHAR. + (ARM_DECLARE_FUNCTION_NAME): Add symbol name to .thumb_func. + (PRINT_OPERAND_PUNCT_VALID_P): Allow '.'. + * config/arm/darwin.opt: New file. + * config/arm/arm-protos.h (non_local_symbol_mentioned_p): New + prototype. + * config/arm/darwin.h: New file. + * config/arm/arm.opt (mlong-branch): New option, alias for + -mlong-calls). + * config/arm/predicates.md (arm_branch_target): New predicate. + * config/arm/arm.md (movsi): Use LEGITIMATE_INDIRECT_OPERAND_P. + (pic_load_addr_arm): Include label reference as param. Allow + to match for dynamic-no-pic on darwin. + (pic_load_addr_thumb): Likewise. + (pic_add_dot_plus_four): Likewise. + (pic_add_dot_plus_eight): Likewise. + (cbranchsi4_insn, cbranchsi4_scratch, movsi_cbranchsi4, + negated_cbranchsi4, tbit_cbranch, tlobits_cbranch, + tstsi3_cbranch, andsi3_cbranch, orrsi3_cbranch_scratch, + orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch, + bicsi3_cbranch_scratch, bicsi3_cbranch, cbranchne_decr1, + addsi3_cbranch, addsi3_cbranch_scratch, subsi3_cbranch, + subsi3_cbranch_scratch): Don't use relative local labels. + (call): Calculate stub name on darwin, if building dynamic. + (call_value): Likewise. + (sibcall): Likewise. + (sibcall_value): Likewise. + (call_symbol): Require an arm_branch_target destination. + (call_value_symbol): Likewise. + (call_insn): Likewise. On darwin, use stub if one was + generated. + (call_value_insn): Likewise. + * config/arm/darwin-libgcc.10.4.ver: New file. + * config/arm/darwin-libgcc.10.5.ver: New file. + +2007-10-26 Josh Conner <jconner@apple.com> + + Radar 3399553 + * config/i386/i386.c (ix86_expand_flt_rounds): Fix comment. + +2007-10-25 Josh Conner <jconner@apple.com> + + Radar 3399553 + * ginclude/float.h (FLT_ROUNDS): Define to __builtin_flt_rounds. + * builtins.c (expand_builtin_flt_rounds): New function... + (expand_builtin): ...call it. + * builtins.def (BUILT_IN_FLT_ROUNDS): Define. + * config/i386/i386.md (UNSPEC_FLT_ROUNDS): New UNSPEC. + (flt_rounds): New define_expand. + * config/i386/i386-protos.h (ix86_expand_flt_rounds): New proto. + * config/i386/i386.c (ix86_expand_flt_rounds): New function. + * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Bump to 115. + (LAST_PHYSICAL_REGISTER): New definition... + (DWARF_FRAME_REGISTERS): ...use it here... + (DWARF_REG_TO_UNWIND_COLUMN): ...and here. + (FIXED_REGISTERS): Add value for FPSCR_REGNO. + (CALL_USED_REGISTERS): Likewise. + (CALL_REALLY_USED_REGISTERS): Likewise. + (FPSCR_REGNO): Define. + (REG_ALLOC_ORDER): Add FPSCR_REGNO. + (enum reg_class): Add FPSCR_REGNO to ALL_REGS class. + (REGISTER_NAME): Add FPSCR name. + * config/rs6000/rs6000.md (UNSPEC_MFFS) New UNSPEC. + (UNSPEC_FLT_ROUNDS): Likewise. + (mffs): New define_insn. + (flt_rounds): New define_expand. + * config/rs6000/rs6000-protos.h (rs6000_expand_flt_rounds): New + proto. + * config/rs6000/darwin.h (REGISTER_NAMES): Add fpscr. + * config/rs6000/rs6000.c (rs6000_reg_names): Add fpscr. + (alt_reg_names): Likewise. + (rs6000_expand_flt_rounds): New function. + +2007-10-23 Eric Christopher <echristo@apple.com> + + Radar 5547244 + * config/i386/i386.c (override_options): For darwin 64-bit kernel + compilations turn off the red zone. + +2007-10-23 Hui-May Chang <hm.chang@apple.com> + + Radar 3996036 + * config/darwin.c (darwin_init_cfstring_builtins) : Do not emit + a warning message for __builtin_CFString when -Wpadded is specified. + +2007-10-15 Hui-May Chang <hm.chang@apple.com> + + Radar 5416357 + * tree-sra.c (decide_block_copy) : Removed MERGE FIXME. + +2007-10-15 Caroline Tice <ctice@apple.com> + + Radar 5359827 + * dwarf2out.c (modified_type_die): If the die is a pointer type, and + it has a name, add it to the list of potential types for the pubtypes + table. + +2007-10-08 Eric Christopher <echristo@apple.com> + + Radar 5516808 + * config/rs6000/rs6000.c (altivec_pim_info): Fix comment. + (altivec_ovl_resolve): Split out conditionals. + (altivec_convert_args): Check for too many arguments to builtin. + (rs6000_fold_builtin): Update comment, remove merge fixme. + Fix type for fcode. Make sure that our second argument has + a proper type as well. + +2007-10-05 Eric Christopher <echristo@apple.com> + + Radar 5518348 + * common.opt: Remove -fpascal-strings option. + +2007-10-01 Jon Ziegler <jonz@apple.com> + + Radar 5490688 + * doc/invoke.texi: remove reference to gcc_select + +2007-09-28 Eric Christopher <echristo@apple.com> + + Radar 5490617 + * varasm.c (assemble_variable): Use the classified section, not + DECL_COMMON for zerofill. + +2007-09-24 Hui-May Chang <hm.chang@apple.com> + + Radar 5447227 + * config/rs6000/rs6000.c (altivec_expand_predicate_builtin) : + Fixed APPLE LOCAL marker. + +2007-09-22 Hui-May Chang <hm.chang@apple.com> + + Radar 5447227 + * config/rs6000/rs6000.c (altivec_expand_abs_builtin, + altivec_expand_predicate_builtin, altivec_expand_lv_builtin, + altivec_expand_stv_builtin) : Fixed compile time warnings. + +2007-09-21 Hui-May Chang <hm.chang@apple.com> + + Radar 5447227 + * config/rs6000/rs6000.c (altivec_expand_abs_builtin, + altivec_expand_predicate_builtin, altivec_expand_lv_builtin, + altivec_expand_stv_builtin, altivec_expand_ld_builtin, + altivec_expand_st_builtin, altivec_expand_dst_builtin) + : Issue error messages for functions with too few arguments. + +2007-09-21 Hui-May Chang <hm.chang@apple.com> + + Radar 4994150 + * rs6000.c (rs6000_legitimate_offset_address_p): Return + false for AltiVec vector modes. + +2007-09-13 Stuart Hastings <stuart@apple.com> + + Radar 5437393 + * gcse.c (gcse_main, cprop_insn): Remove APPLE LOCAL. + +2007-09-04 Hui-May Chang <hm.chang@apple.com> + Radar 5155743 + * target.h (have_dynamic_stack_space): New. + * target-def.h (TARGET_HAVE_DYNAMIC_STACK_SPACE) : New. + * explow.c (allocate_dynamic_stack_space) : Reserve space + for outgoing args and registers saved area if + DYNAMIC_STACK_OFFSET is defined. + * rs6000.c (TARGET_HAVE_DYNAMIC_STACK_SPACE): New. + +2007-08-23 Hui-May Chang <hm.chang@apple.com> + + Radar 4869885 + Backport from mainline: + 2006-10-31 Geoffrey Keating <geoffk@apple.com> + PR 23067 + * c-decl.c (start_struct): Don't create self-containing + structures. + * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align): + New. + * config/rs6000/rs6000-protos.h + (darwin_rs6000_special_round_type_align): New. + * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Rewrite. + (ROUND_TYPE_ALIGN): Use darwin_rs6000_special_round_type_align. + + * stor-layout.c (ADJUST_FIELD_ALIGN): Only passed two arguments. + +2007-08-22 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4947311 + * c-common.h (objc_declare_protocols, objc_start_protocol): Decl changed. + * stub-objc.c (objc_declare_protocols, objc_start_protocol): Changed. + * c-parser.c (c_parser_external_declaration): Call to + c_parser_objc_protocol_definition takes additional argument. + (c_parser_declaration_or_fndef): Protocols with attributes are processed + here by passing it to c_parser_objc_protocol_definition. + (c_parser_objc_protocol_definition): Takes additional argument and passes + it to objc_declare_protocols or objc_start_protocol. + +2007-08-21 Hui-May Chang <hm.chang@apple.com> + + Radar 4874197 + * gcc/config/i386/i386.c (legitimate_constant_p): Accepted a sse + constant vector as a legitimate constant. + +2007-08-20 Hui-May Chang <hm.chang@apple.com> + + Radar 4870336, 4874471, 4874208 + * tree.c (build_vector) : Moved the declaration of max_index + inside the block it is used. + +2007-08-20 Hui-May Chang <hm.chang@apple.com> + + Radar 4708086 + * passes.c (rest_of_compilation): Removed after confirming the + patch to radar 4548482 is no longer needed in gcc 4.2. + +2007-08-20 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5422751 + * c-common.h (objc_protocol_implementation): decl removed. + * stub-objc.c (objc_protocol_implementation): stub removed. + * c-parser.c (c_parser_objc_class_definition): Misplaced syntax + recognition removed. + +2007-08-17 Hui-May Chang <hm.chang@apple.com> + + Radar 5134231 + * gcc/config/rs6000/rs6000.c (rs6000_handle_option): Set + rs6000_alignment_flags to OPTION_MASK_ALIGN_MAC68K instead of + OPTION_ALIGN_MAC68K for -malign-mac68k option. + +2007-08-17 Hui-May Chang <hm.chang@apple.com> + + Radar 4876451 + Backport from mainline: + 2007-04-24 Richard Henderson <rth@redhat.com> + * libgcc2.h (AVOID_FP_TYPE_CONVERSION): Rename from + IS_IBM_EXTENDED. Also define in terms of WIDEST_HARDWARE_FP_SIZE. + * libgcc2.c (__floatdisf): Avoid double-word arithmetic when + looking for non-zero bits shifted out. Avoid a recursive call + when constructing the scalar. + (__floatundisf): Likewise. + +2007-08-14 Hui-May Chang <hm.chang@apple.com> + + Radar 4870336, 4874471, 4874208 + * tree.c (build_vector) : Assign zeroes to uninitialized + vector elements only for -mpim-alitivec option on ppc. + +2007-08-10 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5376125 + * doc/invoke.texi (-Wdirect-ivar-access): New option + * c.opt (-Wdirect-ivar-access): New warning + +2007-08-10 Stuart Hastings <stuart@apple.com> + + Radar 5379188 + * config/i386/i386.md (*darwin_cmpstrnqi_nz_1, + *darwin_cmpstrqi_1): Mark destination with earlyclobber. + +2007-08-10 Stuart Hastings <stuart@apple.com> + + Radar 4448096, 5238795 + * gcc/doc/invoke.texi: Remove erroneous comment. + +2007-08-09 Hui-May Chang <hm.chang@apple.com> + + Radar 4875125 + Undo the mainline patch who broke ABI compatibility. + 2005-06-10 Uros Bizjak <uros@kss-loka.si> + PR target/21981 + * config/i386/i386.c (ix86_return_in_memory): Return 1 for MMX/3dNow + vectors. + +2007-08-08 Geoffrey Keating <geoffk@apple.com> + + Radar 5395148 + * toplev.c (general_init): Don't install SIGHUP handler. + (interrupt_signal): Remove. + +2007-07-24 Stuart Hastings <stuart@apple.com> + + Radar 5346453 + * gcc/config/darwin.c (machopic_select_section): C strings + with embedded NUL characters are ineligible for the .cstring + section. + +2007-07-17 Stuart Hastings <stuart@apple.com> + + * config/i386.c (ix86_init_mmx_sse_builtins): Delete + twice-merged definition of __builtin_ia32_vec_ext_v16qi. + +2007-07-13 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5277239 + * c-parser.c (c_parser_next_token_starts_declspecs): Exclude + objc2's property dot-syntax as a declarator. + (c_parser_postfix_expression): Convert property dot-syntax on + class objects into a property reference expression. + +2007-07-10 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5285911 + * tree.h (CALL_EXPR_OBJC_PROPERTY_GETTER): Macro removed. + * c-typeck.c (build_component_ref): Call + objc_build_property_reference_expr instead of objc_build_getter_call. + (build_modify_expr): Call objc_property_reference_expr instead of + objc_property_call. + * c-common.h (objc_build_getter_call, objc_property_call): Decl removed. + (objc_build_property_reference_expr, objc_property_reference_expr): Decl. + added. + * stub-objc.c (objc_build_getter_call, objc_property_call): Stub removed. + (objc_build_property_reference_expr, objc_property_reference_expr): + Stub added. + +2007-06-29 Stuart Hastings <stuart@apple.com> + + * gcc/cfghooks.c (split_block): One-line APPLE LOCAL needs + begin and end markers. + * gcc/objc/objc-act.c (objc2_build_indirect_ref_ivar2): Add a + comment to prevent '}' from matching in the wrong place. + * gcc/testsuite/gcc.dg/invalid-call-1.c: Missing APPLE LOCAL. + * gcc/c-common.h (objc_build_weak_reference_tree, + objc_v2_build_ivar_ref, diagnose_selector_cast, + objc_check_format_nsstring): One-line APPLE LOCAL needs + begin and end markers. + * gcc/stub-objc.c: Remove a blank line to appease checklocals. + (objc_build_weak_reference_type): Move an APPLE LOCAL from + here... (objc_weak_reference_expr): ...to here. + * gcc/loop-doloop.c (doloop_valid_p): Remove a blank line to + appease checklocals. + * gcc/predict.c (predict_loops): Likewise. + * gcc/tree-flow.c: Likewise. + * gcc/tree-ssa-loop-niter.c: Likewise. + * gcc/config/i386/i386.c: Likewise. + * gcc/cfgrtl.c: Likewise. + +2007-07-02 Hui-May Chang <hm.chang@apple.com> + + Radar 4993982 + Backport from mainline: + 007-03-08 Zdenek Dvorak <dvorakz@suse.cz> + PR tree-optimization/31085 + * tree-ssa-address.c (create_mem_ref): Fix test of type of base. + Do not put an expression containing a cast to the base of + TARGET_MEM_REF. + +2007-06-29 Stuart Hastings <stuart@apple.com> + + * gcc/builtins.c: Remove a blank line to appease checklocals. + +2007-06-29 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5082000 + * c.opt (-print-objc-ivar-layout): New option + * c-opts.c (c_common_handle_option): Set print_objc_ivar_layout + * c-common.c (print_objc_ivar_layout): declare + * c-common.h (print_objc_ivar_layout): declare + +2007-06-29 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5276085 + * c-parser.c (c_parser_binary_expression) : objc_generate_weak_read + replaced with call to objc_build_weak_reference_tree + * c-typeck.c (build_modify_expr, c_objc_common_truthvalue_conversion): + objc_remove_weak_read replaced with call to objc_weak_reference_expr. + * c-common.h (objc_weak_reference_expr, + objc_build_weak_reference_tree) : New decl. + (objc_generate_weak_read, objc_remove_weak_read): remove. + * stub-objc.c (objc_weak_reference_expr, + objc_build_weak_reference_tree): New stub. + (objc_generate_weak_read, objc_remove_weak_read): remove. + +2007-06-28 Geoffrey Keating <geoffk@apple.com> + + * version.c: Update comments, put space before VERSUFFIX. + +2007-06-27 Geoffrey Keating <geoffk@apple.com> + + * config/darwin.h (CPP_SPEC): Remove local change to pass down + -arch (which cc1 doesn't understand). + + * cgraphunit.c (cgraph_build_static_cdtor): Remove local change + so that DECL_IGNORED_P is set. + +2007-06-26 Geoffrey Keating <geoffk@apple.com> + + Radar 5295606 + * tree-if-conv.c (process_phi_nodes): Remove local change. + +2007-06-25 Eric Christopher <echristo@apple.com> + + Radar 5293043 + * config/i386/i386.c: Revert apple local changes to generic + cpu. + +2007-06-25 Eric Christopher <echristo@apple.com> + + Radar 5292674 + * config.gcc (ix86-darwin): Use core2 for with_cpu. + (x86_64-darwin): Ditto. + +2007-06-22 Eric Christopher <echristo@apple.com> + + * config.gcc: Update mni tags for mainline. + * config/t-slibgcc-darwin: Update no-libtool tags for + mainline. + +2007-06-22 Eric Christopher <echristo@apple.com> + + * doc/extend.texi: Update ssse3 tags for mainline. + * doc/invoke.texi: Ditto. + * config/i386/i386.h: Ditto. + * config/i386/i386.md: Ditto. + * config/i386/i386.opt: Ditto. + * config/i386/sse.md: Ditto. + +2007-06-22 Eric Christopher <echristo@apple.com> + + Radar 5289424 + * config/i386/darwin.h (TARGET_DEEP_BRANCH_PREDICTION): Remove. + * config/i386/i386.c (x86_deep_branch): Remove m_GENERIC. Comment. + +2007-06-22 Eric Christopher <echristo@apple.com> + + Radar 5289384 + * config/i386/darwin.h: Remove duplicate apple local code. + +2007-06-22 Geoffrey Keating <geoffk@apple.com> + + * configure.ac: Remove -DDARWIN_CROSS_COMPILE. + * configure: Regenerate. + +2007-06-21 Eric Christopher <echristo@apple.com> + + Radar 5283703 + * doc/invoke.texi: Deprecate Wshorten-64-to-32. + * tree.h (TREE_OVERFLOW_P): New. + * c-common.c: Remove include of options.h. + (warnings_for_convert_and_check): New. + (convert_and_check): Use. + * c-common.h: Declare warnings_for_convert_and_check. + * Makefile.in: Remove c-common.o dependence upon + options.h. + +2007-06-19 Eric Christopher <echristo@apple.com> + + Radar 5279253 + * Makefile.in: Remove apple order file support. + +2007-06-19 Eric Christopher <echristo@apple.com> + + Radar 5279941 + * Makefile.in: Remove LIBGCC_OPT local code. + +2007-06-18 Eric Christopher <echristo@apple.com> + + * config/i386/i386.c: Remove Altivec vector modes. + +2007-06-18 Eric Christopher <echristo@apple.com> + + * config/i386/i386.c (x86_use_incdec): Remove m_CORE2. + +2007-06-18 Eric Christopher <echristo@apple.com> + + * config/i386/i386.c: Include c-tree.h and c-common.h. + Fix up workarounds in file accordingly. + +2007-06-18 Eric Christopher <echristo@apple.com> + + * config/i386/i386.h: Remove apple cpu support. + (TARGET_SUBTARGET32_DEFAULT): Define to zero. + (TARGET_SUBTARGET64_DEFAULT): Ditto. + * config/i386/i386.c: Remove apple cpu support. + (override_options): Use above. Move ix86_flag handling earlier. + Use ix86_arch_specified. + * config/i386/darwin.h (TARGET_SUBTARGET32_DEFAULT): Define. + (TARGET_SUBTARGET64_DEFAULT): Ditto. + +2007-06-18 Stuart Hastings <stuart@apple.com> + + Radar 5150147 + * gcc/tree-ssa-loop-niter.c (unmark_surely_finite_loop, + mark_maybe_infinite_loops): Remove. + * gcc/tree-pass.h (pass_mark_maybe_inf_loops): Remove. + * gcc/builtins.c (BUILT_IN_MAYBE_INFINITE_LOOP): Remove. + * gcc/cfghooks.c (split_block, make_forwarder_block): Remove + APPLE LOCAL LNO code. + * gcc/toplev.c (lang_dependent_init): Remove APPLE LOCAL LNO + code. + * gcc/builtins.def (BUILT_IN_MAYBE_INFINITE_LOOP): Remove. + * gcc/opts.c (set_flags_from_O): Remove APPLE LOCAL LNO code. + * gcc/tree-ssa-loop.c (tree_mark_maybe_inf_loops, + gate_tree_mark_maybe_inf_loops, pass_mark_maybe_inf_loops): + Remove. + * gcc/predict.c (predict_loops): Remove APPLE LOCAL LNO code. + * gcc/loop-doloop.c (doloop_valid_p): Remove APPLE LOCAL LNO + comment. + * gcc/cfgloop.c (flow_loops_find): Remove APPLE LOCAL LNO + code. + * gcc/tree-flow.h (mark_maybe_inf_loops): Remove. + * gcc/tree-cfg.c (tree_redirect_edge_and_branch): Remove APPLE + LOCAL LNO code. + * gcc/passes.c (init_optimization_passes): Remove reference to + pass_mark_maybe_inf_loops. + * gcc/cfgrtl.c (purge_dead_edges): Remove APPLE LOCAL LNO + code. + +2007-06-16 Hui-May Chang <hm.chang@apple.com> + + Radar 5109764 + * reload1.c (emit_output_reload_insns): Undo radar 5002270. + * config/i386/sse.md (sse2_stored) : Undo radar 4412214, 4172200. + Backport from mainline: + 2007-04-23 H.J. Lu <hongjiu.lu@intel.com> + * config/i386/sse.md (sse2_stored): Don't split to inter-unit + move if inter-unit move isn't allowed. + Don't split moving the first element of V2DI to DI to inter-unit + move if inter-unit move isn't allowed. + 2007-02-09 Richard Henderson <rth@redhat.com> + * config/i386/sse.md (sse2_stored): Split rm alternative, use Yi. + +2007-06-06 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5250860 (Remove old property) + * config/darwin-c.c (darwin_cpp_builtins): Define + OBJC_NEW_PROPERTIES unconditionally. + * c-common.h: Remove enums and macros which defined + old property tokens. + * c-parser.c: Remove recognition of old property tokens + and parsing of old property syntax. + +2006-12-13 Geoffrey Keating <geoffk@apple.com> + + Radar 4697325 + * gcc.c (process_command): Move handling of + MACOSX_DEPLOYMENT_TARGET environment variable from here. + * config/darwin-driver.c: Remove. + +2007-06-07 Stuart Hastings <stuart@apple.com> + + Radar 534419 + * gcc/config/rs6000/rs6000.md (movdi_internal64): Change + remaining 'm' constraints into 'Y' constraints. + +2007-06-01 Mike Stump <mrs@apple.com> + + Radar 5226662 + * gcc.c (main): Be sure to set_input when languages == 0. + +2007-05-31 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5172645 + * c.opt (Wproperty-assign-default): New warning option. + * doc/invoke.texi: Document -Wproperty-assign-default + +2007-05-29 Hui-May Chang <hm.chang@apple.com> + + Radar 5164498 + Backport from mainline: + * config/i386/i386.c (ix86_function_regparm): Added checking of + ix86_force_align_arg_pointer to determine the number of + register parameters. + +2007-05-23 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5195402 + * c-format.c (handle_format_arg_attribute): Check for NSString * + and CFStringRef as valid formatting types. + (check_format_string): Ditto. + * c-common.h (objc_check_format_nsstring, + objc_check_cfstringref_type): New decls. + * stub-objc.c (objc_check_nsstring_pointer_type): New stub. + * config/darwin-c.c (objc_check_cfstringref_type): New + (objc_check_format_cfstring): Call objc_check_cfstringref_type + for valid CFStringRef argument type. + * config/darwin-protos.h (objc_check_cfstringref_type): New decl. + * config/darwin.h (CFSTRING_TYPE_CHECK): New macro. + +2007-05-17 Eric Christopher <echristo@apple.com> + + Radar 4663646 + * config/rs6000/rs6000.c (rs6000_emit_prologue): If the stack frame + is large then save r12 if we're going to save altivec registers and + use the frame pointer. + +2007-05-18 Fariborz Jahanian <fjahanian@apple.com> + + Radar 2996215 (twik) + * config/darwin.c (darwin_build_constant_cfstring): Change error to + warning when character is not valid utf-8. + +2007-05-18 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5202926 + * c-common.h (objc_anonymous_local_objc_name): New decl. + * config/darwin-protos.h (objc_anonymous_local_objc_name): Decl. + * stub-objc.c (objc_anonymous_local_objc_name): New stub. + * config/darwin.h (ASM_OUTPUT_LABELREF) Call + objc_anonymous_local_objc_name. + +2007-05-17 Fariborz Jahanian <fjahanian@apple.com> + + Radar 2996215 + * c-common.h (objc_create_init_utf16_var): New decl. + * stub-objc.c (objc_create_init_utf16_var): New stub + * config/darwin-c.c (objc_cvt_utf8_utf16): New + * config/darwin-protos.h (objc_create_init_utf16_var): New decl. + (objc_cvt_utf8_utf16): New decl. + * config/darwin.c (darwin_build_constant_cfstring): Add support for + native char-set to UTF-16. + +2007-05-09 Caroline Tice <ctice@apple.com> + + Radar 4964532 + * defaults.h (TARGET_DWARF_UNINIT_VARS): New macro, to control + tracking uninitialized variables. + * rtl.def (VAR_LOCATION): Add a new integer subfield to VAR_LOCATION + note definitions, to allow recording of initialization status in the + notes. + * dwarf2out.c (dwarf_stack_op_name): Add case for DW_OP_APPLE_uninit. + (add_var_loc_to_decl): Add comparison of NOTE_VAR_LOCATION_STATUS to + determine if two note locations are equal. + (output_loc_list): Don't output list entries whose start & end labels + are the same. + (reg_loc_descriptor): Add parameter for initialization status; pass it + to other loc descriptor functions. + (one_reg_loc_descriptor): Add parameter for initialization status; + check its value and add DW_OP_APPLE_uninit to returned loc descr if + appropriate. + (multiple_reg_loc_descriptor): Add parameter for initialization status; + pass its value to other loc descriptor functions; check its value and + add DW_OP_APPLE_uninit to returned loc descr if appropriate. + (based_loc_descr): Likewise. + (mem_loc_descriptor): Likewise. + (concat_loc_descriptor): Likewise. + (loc_descriptor): Add parameter for initialization status; add + appropriate initialization status to other loc descriptor function + calls. + (loc_descriptor_from_tree_1): Add appropriate initialization status + to loc descriptor function calls. + (add_location_or_const_value_attribute): Get initialization status + from note; add initialization status to loc descriptor function calls. + * dwarf2.h (enum dwarf_location_atom): New op, DW_OP_APPLE_uninit. + * print-rtl.c (print_rtx): When printing a VAR_LOCATION note, if status + is uninitialized, add "[uninint]" to output. + * rtl.h (NOTE_VAR_LOCATION_STATUS): New macro for accessing new field. + (enum var_init_status): New type, for var initialization status field. + * var-tracking.c (struct location_chain_def): Two new fields, init, + for initialization status, and set_src for the assignment value expr. + (unshare_variable): New parameter for initialization status; initialize + new init and set_src fields. + (var_reg_set): New parameters for initialization status and value; + pass them to set_variable_part. + (var_mem_set): Likewise. + (get_init_value): New function. + (var_reg_delete_and_set): New initialization status & value parameters; + add call to get_init_value if status is unknown; pass new parameters + to clobber_variable_part and var_reg_set. + (var_mem_delete_and_set): Likewise. + (variable_union): Pass status to unshare_variable; initialize new init + and set_src fields. + (add_stores): Store insn, rather than NEXT_INSN(insn), so it can be + used later to get the set_src value. + (find_src_status): New function. + (find_src_set_src): New function. + (compute_bb_dataflow): Pass status to calls to var_reg_set, + var_mem_set, var_reg_delete_and_set and var_mem_delete_and_set; for + MO_SET, get set_src value and pass it to + var_reg_delete_and_set and var_mem_delete_and_set. + (dump_variable): Print out "[uninit]" if appropriate. + (set_variable_part): Add new initialization and set_src parameters; + pass status to unshare_variable; set node->init and node->set_src + fields and modify slot in hash table appropriately; save the init and + set_src values if appropriate and assign to the new node. + (clobber_variable_part): New set_src parameter; if two nodes have + same variable and same location but different set_src (assignment) + values, clobber old node. + (delete_variable_part): Pass status to unshare_variable. + (emit_note_insn_var_location): Add initialized var; assign var's init + status to new 'initialized'; pass new init status field to calls to + gen_rtx_VAR_LOCATION. + (emit_notes_in_bb): Pass initialization status to calls to var_reg_set, + var_mem_set, var_reg_delete_and_set and var_mem_delete_and_set; for + MO_SET, get set_src value and pass it to var_reg_delete_and_set and + var_mem_delete_and_set; call emit_notes_for_changes on NEXT_INSN(insn) + rather than on insn, to make up for change in add_stores. + (vt_add_function_parameters): Add status to calls to set_variable_part. + * config/i386/darwin.h (TARGET_DWARF_UNINIT_VARS): New macro + definition to control tracking uninitialized variables. + * config/rs6000/darwin.h (TARGET_DWARF_UNINIT_VARS): New macro + definition to control tracking uninitialized variables. + +2007-05-07 Fariborz Jahanian <fjahanian@apple.com> + + Radar 3506309 + * doc/invoke.texi: Document -Wnonportable-cfstrings + +2007-05-07 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4157812 + * c-common.h (objc_build_keyword_decl): Takes a new argument. + * stub-objc.c (objc_build_keyword_decl): Ditto. + * c-parser.c (c_parser_objc_method_decl): Recognize optional + method's argument attribute. + (c_parser_objc_method_decl): Handle errornous selector. + +2007-05-04 Eric Christopher <echristo@apple.com> + + Radar 4929122 + * config/rs6000/predicates.md: Revert part of patch for + 4874526. + +2007-05-03 Eric Christopher <echristo@apple.com> + + Radar 4960076 + * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Translate + -shared to -Zdynamiclib. + +2007-05-02 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4502186 + * c-typeck.c (convert_for_assignment): Remove synthesized 'volatile' + type before doing type comparison. + +2007-04-25 Hui-May Chang <hm.chang@apple.com> + + Radar 5122634 + Backport from mainline: + 2007-04-24 Hui-May Chang <hm.chang@apple.com> + + * reload1.c (merge_assigned_reloads) : Do not merge a RELOAD_OTHER + instruction with a RELOAD_FOR_OPERAND_ADDRESS instruction. + +2007-04-24 Mike Stump <mrs@apple.com> + + Radar 5083137 + * gcc.c (PREFIX_PRIORITY_FIRST): Add. + (main): Add add_sysrooted_prefix should use SYSROOT_PRIORITY + instead of PREFIX_PRIORITY_LAST. + * config/darwin.h (GCC_DRIVER_HOST_INITIALIZATION): Add. + +2007-04-24 Stuart Hastings <stuart@apple.com> + + Radar 5108956 + * gcc/loop-invariant.c (find_invariant_insn): Remove APPLE LOCAL. + +2007-04-23 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4859753 + * config/rs6000/rs6000.h (RS6000_8BYTE_STRUCT_HACK): Define + * stor-layout.c (compute_record_mode): Use RS6000_8BYTE_STRUCT_HACK + instead of RS6000_VARARGS_AREA. + +2007-04-20 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5130983 + * c-common.h (enum lvalue_use): New enumerator lv_foreach + added. + * c-common.c (lvalue_error): Diagnose on lv_foreach. + +2007-04-20 Stuart Hastings <stuart@apple.com> + + Radar 5131847 + * gcc/config/i386/i386.md (movstrictqi_and): Add 64-bit support. + +2007-04-13 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4899595 + * c.opt (-fobjc-new-property) on by default. + * config/darwin-c.c (darwin_cpp_builtins): Define OBJC_NEW_PROPERTIES + when new property flag is on. + +2007-03-12 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5023725 + * c-opts.c: Remove flag_objc_zerocost_exceptions check. + * config/darwin.h + (OBJC_FLAG_ZEROCOST_EXCEPTIONS): New macro to issue diagnostic. + (OBJC_FLAG_OBJC_ABI): Set -fobjc-zerocost-exceptions as + default for objc2 abi. + * config/darwin-c.c (darwin_cpp_builtins): Define OBJC_ZEROCOST_EXCEPTIONS + when zero-cost exception flag is on. + +2007-04-10 Fariborz Jahanian <fjahanian@apple.com> + + Fix bootstrap problem caused by radar 5096648. + * c-format.c (tm_p.h): Include it. + * config/darwin-protos.h: (objc_check_format_cfstring): Add decl. + +2007-04-09 Fariborz Jahanian <fjahanian@apple.com> + + Radar 5096648 + * c-format.c (tm_p.h): header file include. + (format_type): cfstring_format_type enum added. + (format_kind_info): New entry for CFString format added. + (objc_check_nsformat_arg): Renamed to objc_check_cfformat_arg + and modified. + (check_format_info): Added support for CFString format. + (handle_format_attribute): Ditto. + * c-common.h (objc_NSString_format): decl removed. + * stub-objc.c (objc_NSString_format): def removed. + * config/darwin.h (TARGET_CFSTRING_P): Removed. + (CHECK_FORMAT_CFSTRING, CFSTRING_TYPE_NODE): Added. + * Makefile.in (tmp.h): c-format.o now depends on. + * config/darwin-c.c (objc_check_format_cfstring): New + +2007-04-09 Mike Stump <mrs@apple.com> + + Radar 4401222 + * gsyslimits.h: Don't include_next <limits.h> here... + * limitx.h: instead, include_next <limits.h> here. + * limity.h: Simplify. + +2007-04-06 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4792158 + * config/darwin.c: (output_objc_section_asm_op): Arrays tomark and tomarkv2 streamlined. + darwin_sections initializations streamlined. + (machopic_select_section): Switch to objc_v2_constant_string_object_section for objc2's + string objects. + Sections selection of various symbols are streamlined into objc1 and objc2 specific + selections. + * config/darwin-sections.def: Cleanup or add new section definitions for objc2 abi. + +2007-03-31 Mike Stump <mrs@apple.com> + + Radar 4994030 + * c.opt: Accept ObjC/ObjC++ whenever C/C++ is accepted. + +2007-03-29 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4947014 - objc atomic property + * c-common.h (RID_NONATOMIC): Add + * c-parse.c (c_parser_objc_property_attribute) : Recognize 'nonatomic' + as new property. + +2007-03-29 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4564694 + * c-parse.c (c_parser_objc_class_instance_variables): Add @package + support to syntax. + * c-common.h (RID_AT_PACKAGE): Add + +2007-03-06 Mike Stump <mrs@apple.com> + + Radar 5033355 + * c-incpath.c (merge_include_chains): Note framework include + directories. + +2007-03-23 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4985544 + * c-format.c (enum format_type): New entry for NSString format. + (format_typ): Has a new entry for NSString format. + (decode_format_attr): Error on use of NSString format on a + non-objective-c program. + (objc_check_nsformat_arg): New. + (check_format_info): Call back for NSString is objc_check_nsformat_arg + (handle_format_attribute): Use objc_check_format_nsstring for + NSString format. + * c-common.h (objc_NSString_format): New decl. + (objc_check_format_nsstring): New decl. + * stub-objc.c (objc_NSString_format, objc_check_format_nsstring): New + stubs. + * config/darwin-protos.h (darwin_cfstring_type_node): New decl. + * config/darwin.c (darwin_cfstring_type_node): New + * config/darwin.h (TARGET_CFSTRING_P): New macro + +2007-03-22 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4965989 + * c-parser.c (c_parser_objc_class_definition): Add supprt for anonymous + category syntax. + +2007-03-22 Fariborz Jahanian <fjahanian@apple.com> + + Removed objc2 hybrid abi + * c-parsec (c_parser_struct_or_union_specifier): removed flag_objc_abi == 3. + * config/darwin-c.c: Removed checking for + hybrid abi. + * config/darwin.c: Ditto. + * config/darwin.h: Issue error if use of hybrid abi is + attempted. Removed checking for hybrid abi. + +2007-03-21 Fariborz Jahanian <fjahanian@apple.com> + + Radar 2848255 + * c-parser.c (c_parser_objc_try_catch_statement): Parse @catch(...). + * c.opt: Add -fobjc-zerocost-exceptions option. + * c-opts.c (c_common_post_options): Set the flags for + -fobjc-zerocost-exceptions. + * c-common.h: Add some declarations. + * stub-objc.c (objc2_valid_objc_catch_type, objc2_build_throw_call): + New stubs. + * config/darwin.h (OBJC_FLAG_OBJC_ABI): Check for proper + use of -fobjc-zerocost-exceptions option. + +2007-03-21 Stuart Hastings <stuart@apple.com> + + Radar 5000667 + * gcc/cse.c (record_jump_equiv): Drop CCmode expressions. + * gcc/objc/objc-act.c (next_sjlj_build_catch): 'rethrow' needn't be volatile. + +2007-03-15 Eric Christopher <echristo@apple.com> + + * cfgexpand.c (expand_used_vars): Fix warning from + previous checkin. + +2007-03-14 Eric Christopher <echristo@apple.com> + + Radar 5006196 + * cfgexpand.c (expand_used_vars): Do not create a guard + for iasm functions. + +2007-03-14 Hui-May Chang<hm.chang@apple.com> + + Radar 5002270 + * reload1.c (emit_output_reload_insns): If the output + register is a SUBREG, and its mode size is greater than + the mode size of its inner value, check if the instruction + generated by gen_reload is valid nor not. If not, generate + a new instruction with the right mode. + +2007-03-07 Hui-May Chang<hm.chang@apple.com> + + Radar 5021057 + * config/rs6000/rs6000.c (rs6000_fold_builtin): Check if + there is any error in the argument list of a builtin + function. + +2007-02-15 Geoffrey Keating <geoffk@apple.com> + + Radar 4992792 + * dwarf2.h: Modify DW_AT_APPLE_flags value. + +2007-02-12 Josh Conner <jconner@apple.com> + + Radar 4708231 + * cfgloopmanip.c (loop_split_edge_with): Remove MERGE FIXME + comment. + +2007-02-12 Josh Conner <jconner@apple.com> + + Radar 4987589 + * function.c (instantiate_virtual_regs_in_insn): Add support + for OP_OUT and OP_INOUT when predicate no longer matches. + +2007-02-07 Dale Johannesen <dalej@apple.com> + + Radar 4981913 + * config/i386/i386.c (override_options): Make + -fomit-frame-pointer setting work for -fast. + +2007-02-06 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4949034 + * c.opt: Update -fobjc-call-cxx-cdtors settings. + +2007-02-05 Hui-May Chang <hm.chang@apple.com> + + Radar 4961827 + * gcc/config/i386/darwin.h (ASM_OUTPUT_COMMON): Print the size + of a variable as an unsigned HOST_WIDE_INT integer. + +2007-02-05 Geoffrey Keating <geoffk@apple.com> + + Radar 4957887 + * dwarf2out.c (dwarf2out_finish): Optionally add DW_AT_APPLE_flags + attribute to compilation unit. + * dwarf2.h (enum dwarf_attribute): Add DW_AT_APPLE_flags. + * toplev.c (get_arguments): New. + * toplev.h (get_arguments): New. + +2007-01-30 Stuart Hastings <stuart@apple.com> + + Radar 4134510 + * gcc/config/i386/i386.md (cmpstrsi): Prefer libcall for + indefinite or length > 30. + +2007-01-29 Bill Wendling <wendling@apple.com> + + * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): + Removed extra def'n. + +2007-01-24 Josh Conner <jconner@apple.com> + + Radar 4708231 + * config/rs6000/rs6000.c (rs6000_expand_vector_init): Copy + memory address into a register. + (rs6000_expand_vector_set): Likewise. + (rs6000_expand_vector_extract): Likewise. + * config/rs6000/altivec.md (altivec_lvx_<mode>, + altivec_stvx_<mode>, altivec_lvsl, altivec_lvsr, + altivec_lve<VI_char>x, altivec_lvesfx, altivec_lvxl, + altivec_lvx, altivec_stvx, altivec_stvxl, + altivec_stve<VI_char>x, altivec_stvesfx): Replace memory_operand + with indexed_or_indirect_operand. + +2007-01-24 Mike Stump <mrs@apple.com> + + Radar 4951636 + * builtins.c (expand_builtin_synchronize): Use build5 to build + ASM_EXPRs. + +2007-01-22 Mike Stump <mrs@apple.com> + + Radar 4930711 + * config/i386/i386.c (iasm_raise_reg): Use lang hook for pushdecl. + Use set_user_assembler_name instead of change_decl_assembler_name. + (iasm_type_for): Use lang hook for type_for_mode. + +2007-01-19 Eric Christopher <echristo@apple.com> + + Backport from mainline: + 2007-01-17 Eric Christopher <echristo@apple.com> + + * config.gcc: Support core2 processor. + +2007-01-19 Eric Christopher <echristo@apple.com> + + Backport from mainline: + 2007-01-15 Eric Christopher <echristo@apple.com> + + * config/darwin.h: Update copyright. + (TARGET_OPTION_TRANSLATE_TABLE): Add umbrella. + (LINK_COMMAND_SPEC): Add -u. + (LINK_SPEC): Fix umbrella for above. + +2007-01-19 Eric Christopher <echristo@apple.com> + + Radar 4928883 + * real.c: Fix last checkin. + +2007-01-19 Josh Conner <jconner@apple.com> + + Radar 4875159 + Backport from mainline: + 2007-01-18 Josh Conner <jconner@apple.com> + PR target/30485 + * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Add + support for UNLE, UNLT, UNGE, and UNGT. + +2007-01-15 Eric Christopher <echristo@apple.com> + + Radar 4737425 + Backport from mainline: + 2006-11-18 Vladimir Makarov <vmakarov@redhat.com> + + * doc/invoke.texi (core2): Add item. + * config/i386/i386.h (TARGET_CORE2, TARGET_CPU_DEFAULT_core2): New macros. + (TARGET_CPU_CPP_BUILTINS): Add code for core2. + (TARGET_CPU_DEFAULT_generic): Change value. + (TARGET_CPU_DEFAULT_NAMES): Add core2. + (processor_type): Add new constant PROCESSOR_CORE2. + * config/i386/i386.md (cpu): Add core2. + * config/i386/i386.c (core2_cost): New initialized variable. + (m_CORE2): New macro. + (x86_use_leave, x86_push_memory, x86_movx, x86_unroll_strlen, + x86_deep_branch, x86_partial_reg_stall, x86_use_simode_fiop, + x86_use_cltd, x86_promote_QImode, x86_sub_esp_4, x86_sub_esp_8, + x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves, + x86_partial_reg_dependency, x86_memory_mismatch_stall, + x86_accumulate_outgoing_args, x86_prologue_using_move, + x86_epilogue_using_move, x86_arch_always_fancy_math_387, + x86_sse_partial_reg_dependency, x86_rep_movl_optimal, + x86_use_incdec, x86_four_jump_limit, + x86_schedule, x86_pad_returns): Add m_CORE2. + (override_options): Add entries for Core2. + (ix86_issue_rate): Add case for Core2. + +2007-01-12 Dale Johannesen <dalej@apple.com> + + Radar 4875151 (partial) + * tree-sra.c (decide_block_copy): Don't use DImode copy + for two-field structs. + +2007-01-10 Eric Christopher <echristo@apple.com> + + Radar 4709353 + * gcc.c (execute): Remove status wait workaround for --help. + +2007-01-09 Eric Christopher <echristo@apple.com> + + Radar 4872009 + * config/darwin-c.c (darwin_pragma_pack): Update for 4.2 + +2007-01-08 Eric Christopher <echristo@apple.com> + + * config.gcc: Use --with-arch=apple. + +2007-01-08 Dale Johannesen <dalej@apple.com> + + Radar 4708067 + * tree-pass.h (pass_loop_prefetch): Remove duplicate declaration. + * timevar.def (TV_DEP_GRAPH): Remove. + * tree-ssa-loop.c (tree_mark_maybe_inf_loops): Remove + setting of marked_maybe_inf_loops. + * function.h (struct function): Remove marked_maybe_inf_loops. + * params.def (PARAM_MAX_DOLOOP_INSNS): Remove. + * loop-doloop.c (doloop_optimize): Remove check for it. + * tree-flow.h (tree_debug_loop, tree_debug_loops): + Remove declarations. + * sched-rgn.c (compute_trg_info): Remove initializations + for el.nr_members, el.first_member. + * tree-cfg.c (tree_debug_loops): Rename to debug_loop_ir. + (tree_debug_loop): Remove. + +2007-01-05 Eric Christopher <echristo@apple.com> + + * tree-ssa-loop.c (pass_mark_maybe_inf): Update ssa after + pass. + +2007-01-05 Josh Conner <jconner@apple.com> + + Radar 4708067 + * cfgloop.c (flow_loops_find): Re-enable call to + free_dominance_info. + * passes.c (execute_todo): Remove TODO_write_loop_closed logic. + * tree-pass.h: Likewise. + * tree-ssa-loop-niter.c (unmark_surely_finite_loop): Remove + unneeded comments. + (maybe_mark_infinite_loops): Mark call to + builtin_maybe_infinite_loop for SSA renaming. + * tree-ssa-loop.c (tree_mark_maybe_inf_loops): Re-enable. + * tree-ssa-sink.c (execute_sink_code): Split call to + calculate_dominance_info into two calls. + +2007-01-05 Dale Johannesen <dalej@apple.com> + + Radar 4859866 + * opts.c (option_enabled): Dump options that use the + access_flag mechanism. + * opt-functions.awk (switch_flags): Handle CL_VARUINT, + CL_PERFUNC correctly. + +2007-01-04 Dale Johannesen <dalej@apple.com> + + Radar 4874634 + * config/rs6000/rs6000.c (optimization_options): Set + sra-max-structure-count. + +2007-01-03 Dale Johannesen <dalej@apple.com> + + Radar 4874526 + * config/rs6000/predicates.md (word_offset_memref_operand): + Check for valid operands of LO_SUM. + * config/rs6000/rs6000.md (*movdi_internal64): Use Y constraint + for ld and std instructions. + +2006-12-22 Josh Conner <jconner@apple.com> + + Radar 4746131 + * targhooks.c (default_vector_alignment_reachable): Remove. + * targhooks.h: Remove prototypes for + [default_]vector_alignment_reachable. + * target.h: Remove vector_alignment_reachable. + * tree-vect-analyze.c: Don't include target.h. + (vect_enhance_data_refs_alignment): Remove APPLE LOCAL code + for rdar://4375453. + * target-def.h: Remove TARGET_VECTOR_ALIGNMENT_REACHABLE. + * Makefile.in: Remove tree-vect-analyze.o dependency on + $(TARGET_H). + * config/rs6000/rs6000.c: Remove + rs6000_vector_alignment_reachable and + TARGET_VECTOR_ALIGNMENT_REACHABLE. + +2006-12-20 Dale Johannesen <dalej@apple.com> + + Revert darwin.h part of preceding. + +2006-12-20 Stuart Hastings <stuart@apple.com> + + Radar 4709503 + * gcc/tree-ssa-forwprop.c (cast_conversion_assignment_p, replacable_use_in_cond_expr, + all_uses_are_replacable, eliminate_unnecessary_casts): Remove. + (tree_ssa_forward_propagate_single_use_va): Delete call. + +2006-12-19 Dale Johannesen <dalej@apple.com> + + Radar 4874526 + * config/rs6000/darwin.h (DATA_ALIGNMENT): New. + * Makefile.in (targethooks.o): Add missing dependency. + +2006-12-19 Josh Conner <jconner@apple.com> + + Radar 4709381 + * opts.c (handle_option): Don't try to handle CLVC_BIT_CLEAR, + CLVC_BIT_SET, or CLVC_STRING when using option->access_flag. + +2006-12-14 Mike Stump <mrs@apple.com> + + * config/darwin.h (OBJC_FLAG_OBJC_ABI): Use abi 1 for the gnu + runtime. + +2006-12-14 Fariborz Jahanian <fjahania@apple.com> + + Radar 4841447 + * c.opt (-fobjc-new-property): Modified its language description + +2006-12-14 Josh Conner <jconner@apple.com> + + Radar 4874491 + Revert: + Radar 4134283 + 2005-07-29 Devang Patel <dpatel@apple.com> + * c-decl.c (ext_block): New static variable. + (c_write_global_declarations): Optimize before wrapping up + globals. + +2006-12-13 Josh Conner <jconner@apple.com> + + Radar 4856717 + * varasm.c (output_constructor): Sort bitfields by position + before outputting them. + * vec.h (VEC_swap): New. + +2006-12-23 Mike Stump <mrs@apple.com> + + Radar 4527353 + * libgcc2.c (__eprintf): Ensure backwards compatibility to 10.3.9. + +2006-12-13 Fariborz Jahanian <fjahania@apple.com> + + Radar 4531086 + * config/darwin.h (OBJC_WARN_OBJC2_FEATURES): New macro. + +2006-12-13 Fariborz Jahanian <fjahania@apple.com> + + Radar 4862848 + * common.opt (flag_objc_abi): Defaulted to -1 + * config/darwin.h (OBJC_FLAG_OBJC_ABI): New macro. + +2006-12-12 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4865576 + * tree.c (type_hash_eq): Check for TYPE_NAME of two colliding + tentative struct/union types. + +2006-12-11 Josh Conner <jconner@apple.com> + + Radar 4870233 + * config/rs6000/rs6000.c (round_type_align): Check for + error_mark_node in TREE_TYPE of fields. + +2006-12-11 Josh Conner <jconner@apple.com> + + Radar 4870523 + * config/darwin-c.c (darwin_pragma_pack): verify that constants + are INTEGER_CST. + +2006-12-09 Dale Johannesen <dalej@apple.com> + + * tree-pass.h: Eliminate pass_loop_test. + * tree-ssa-dom.c: Eliminate include of cfgloop.h. + * tree-ssa-loop.c: Eliminate includes of tree-data-ref.h, + function.h. Eliminate tree_ssa_loop_test, + gate_tree_ssa_loop_test, pass_loop_test. + * lambda.h: Eliminate include of gcc.h. + * cfglayout.c: Eliminate extra decl of cfg_layout_duplicate_bb. + * common.opt: Eliminate -floop-test. + * passes.c: Eliminate pass_loop_test. + +2006-12-08 Dale Johannesen <dalej@apple.com> + + Radar 4709381 (partial) + * optc-gen.awk: Fix merge FIXMEs related to host-dependent + macro in padding computation. + * opth-gen.awk: Ditto. + +2006-12-07 Eric Christopher <echristo@apple.com> + + Radar 4869218 + * doc/extend.texi: Replace mni with ssse3. + * doc/invoke.texi: Ditto. + +2006-12-06 Dale Johannesen <dalej@apple.com> + + Radar 4859530 + * config/rs6000/rs6000.c (rs6000_override_options): Fix + merge FIXMEs related to -fast. + +2006-12-05 Dale Johannesen <dalej@apple.com> + + Radar 4859374 + * c-decl.c (diagnose_mismatched_decls): Use warning not + note for mismatch inside disable_typechecking_for_spec. + +2006-12-01 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4859096 + * c-typeck.c (build_modify_expr): Skip property calls + when checking for lvalue-ness. + * c-common.h (objc_property_call): New decl. + * stub-objc.c (stub-objc.c): New function stub. + * c-parser.c (reswords): Add new objc property keywords. + (c_parse_init): Fix up 'dynamic' as an @ keyword. + (c_lex_one_token): Handle recognition of new property + keywords. + (c_parser_external_declaration): Add call to parsing routines + for @synthesize and @dynamic. + (c_parser_objc_property_attribute): Handle new property attributes. + (c_parser_objc_atsynthesize_declaration): New to parse @synthesize + directive. + (c_parser_objc_atdynamic_declaration): New to parse @dynamic + directive. + +2006-11-15 Eric Christopher <echristo@apple.com> + + * config/darwin.h (LINK_COMMAND_SPEC): Remove {u*} from + options passed through. + +2006-11-15 Eric Christopher <echristo@apple.com> + + Radar 4839411 + * config/i386/tmmintrin.h: Depend on SSSE3. + +2006-11-15 Dale Johannesen <dalej@apple.com> + + Radar 4827197 + * doc/extend.texi (align=power): Document actual + behavior and workaround for existing code. + +2006-11-14 Dale Johannesen <dalej@apple.com> + + Radar 4812082 + * doc/invoke.texi (-fast): Describe Intel options, fix typos. + * config/i386/i386.c (override_options): Change -fast options. + +2006-10-26 Hui-May Chang <hm.chang@apple.com> + + Radar 4709300 + * dominance.c (first_dom_son): Remove the code added during merging, + building and testing. + +2006-10-05 Hui-May Chang <hm.chang@apple.com> + + Radar 4708086 + * passes.c (MaxAlignForThisBlock, LargestAlignmentOfVariables): + Moved to local-alloc.c. + (rest_of_compilation) : patch involved save_PREFERRED_STACK_BOUNDARY + as moved to final.c. + * local-alloc.c (MaxAlignForThisBlock, LargestAlignmentOfVariables): + Moved from passes.c. + * final.c (rest_of_clean_state) : patch involved + save_PREFERRED_STACK_BOUNDARY was moved from passes.c. + * i386.h : define SAVE_PREFERRED_STACK_BOUNDARY. + * i386.c : define ix86_preferred_stack_boundary. + + +2006-09-29 Hui-May Chang <hm.chang@apple.com> + + Radar 4709138 + * cgraphunit.c (record_reference): Remove MERGE FIXME comment. + +2006-09-18 Hui-May Chang <hm.chang@apple.com> + + Radar 4699543 + Restore patch for radar 4158356 + * tree-sra.c + +1006-11-09 Fariborz Jahanian <fjahania@apple.com> + + Radar 4810609 + * c.opt (-fobjc-gc-only): New option + * doc/invoke.texi (Objective-C GC Options): Add -fobjc-gc-only. + +2006-11-09 Eric Christopher <echristo@apple.com> + + Radar 4574849 + * t-slibgcc-darwin: Pass -install_name directly. + * config/darwin.h (LINK_COMMAND_SPEC): Use ld, not libtool. + Fix up argument passthrough accordingly. + (STARTFILE_SPEC): Ditto. + +2006-11-07 Stuart Hastings <stuart@apple.com> + + Radar 4611086 + * gcc/config/rs6000/rs6000.c (rs6000_stack_info): Include + vrsave_size in stack size computation. + +1006-11-06 Fariborz Jahanian <fjahania@apple.com> + + Radar 4781080 (part 2) + * targhooks.c (default_objc_fpreturn_msgcall): Takes 2nd argument. + * targhooks.h (default_objc_fpreturn_msgcall): Changed Decl. + * target.h (objc_fpreturn_msgcall): Changed Decl. + * config/i386/i386.h (OBJC_FPRETURN_MSGCALL): Changed Decl. + * config/i386/i386-protos.h (ix86_objc_fpreturn_msgcall): Changed Decl. + * config/i386/i386.c (ix86_objc_fpreturn_msgcall): Changed definition. + +1006-11-06 Fariborz Jahanian <fjahania@apple.com> + + Radar 4781080 + * targhooks.c (default_objc_fpreturn_msgcall): New + * targhooks.h (default_objc_fpreturn_msgcall): Declare + * target.h (objc_fpreturn_msgcall): New field declaration. + * target-def.h (TARGET_OBJC_FPRETURN_MSGCALL): New macro + * config/i386/i386.h (OBJC_FPRETURN_MSGCALL): New macro + * config/i386/i386-protos.h (ix86_objc_fpreturn_msgcall): + New declaration. + * config/i386/i386.c (ix86_objc_fpreturn_msgcall): New definition + +2006-11-06 Stuart Hastings <stuart@apple.com> + + * gcc/global.c (expand_preferences): Move another APPLE LOCAL. + +2006-11-06 Hui-May Chang <hm.chang@apple.com> + + Radar 4805365 + * gcc/config/rs6000/rs6000.c (lwa_operand): Check the alignment of + a memory operand is 32 bits aligned or not. + +2006-11-03 Stuart Hastings <stuart@apple.com> + + * gcc/global.c (expand_preferences): Move APPLE LOCAL. + +2006-11-03 Josh Conner <jconner@apple.com> + + Radar 4815483 + Backport from mainline: + 2005-08-02 Diego Novillo <dnovillo@redhat.com> + PR 23192 + * tree-ssa-alias.c (add_pointed_to_var): If VALUE is of the + form &(*PTR), take points-to information from PTR. + Give up if VALUE by marking PTR as pointing anywhere if VALUE + is not recognized. + +2006-11-02 Stuart Hastings <stuart@apple.com> + + Radar 4253848 + * gcc/convert.c (convert_to_vector): Generate + VIEW_CONVERT_EXPR. + * gcc/c-typechk.c (digest_init): Treat VIEW_CONVERT_EXPR like + NOP_EXPR. + * gcc/c-common.c (vector_types_convertible_p, lvalue_or_else): + Treat VIEW_CONVERT_EXPR like NOP_EXPR. + * gcc/global.c (expand_preferences): Pseudo regs that die in + the current instruction are tied to the destination psuedo on + two-address opcodes (e.g. x86). + (pseudo_preference_transitivity): New. + + Radar 4517311 + * gcc/config/i386/i386.c (ix86_expand_convert_uns_DF2SI_sse, + ix86_expand_convert_uns_SF2SI_sse): Use gen_sse2_stored() to + avoid useless MOVs. + +2006-11-01 Fariborz Jahanian <fjahania@apple.com> + + Radar 4805321 (new property). + * c-common.h (RID_AT_SYNTHESIZE, RID_AT_DYNAMIC, + RID_READWRITE, RID_ASSIGN, RID_RETAIN, RID_COPY): New enums. + (OBJC_IS_NEW_PATTR_KEYWORD): New macro. + (OBJC_IS_NEW_AT_KEYWORD): New macro. + * stub-objc.c: (objc_declare_property_impl): New stub. + * c.opt (fobjc-new-property): New command-line option. + * c-parse.in: New grammar added for recognition of new property + syntax. + +2006-10-31 Caroline Tice <ctice@apple.com> + + * dwarf2out.c (size_of_pubnames): Only add DWARF_OFFSET_SIZE for entries + in table that will actually be written out. + * testsuite/gcc.apple/pubtypes-2.c: Fix size in "Length of Public Type + Names Info" line. + * testsuite/gcc.apple/pubtypes-3.c: Likewise. + * testsuite/gcc.apple/pubtypes-4.c: Likewise. + +2006-10-27 Eric Christopher <echristo@apple.com> + + Radar 4806229 + * config/darwin-driver.c (main): Don't set ima_is_used if we're + only compiling. + +2006-10-26 Hui-May Chang <hm.chang@apple.com> + + Radar 4603883 + Backport from mainline: + 2005-08-17 James E Wilson <wilson@specifix.com> + * c-decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE in + array size check. + +2006-10-25 Eric Christopher <echristo@apple.com> + + Temporarily revert: + 2006-09-25 Eric Christopher <echristo@apple.com> + + Radar 4574849 + * config/t-slibgcc-darwin (SHLIB_LINK): Use + -dylib_install_name. + * config/darwin.h (LINK_COMMAND_SPEC): Remove use + of libtool. + (LINK_SPEC): Adjust options for above. + (STARTFILE_SPEC): Ditto. + +2006-10-19 Caroline Tice <ctice@apple.com> + + * dwarf2out.c (pubname_entry): Add DEF_VEC_GC_O statement for this + type. + (pubname_table): Redefine as a vector. + (pubtype_table): New static global variable, defined as a vector. + (pubname_table_allocated): Remove static global variable. + (pubname_table_in_use): Remove static global variable. + (PUBNAME_TABLE_INCREMENT): Remove constant. + (size_of_pubnames): Add parameter to deal with either pubnames or + pubtypes, and change code to deal with table being a vector. + (add_pubname): Change to deal with table being a vector. + (add_pubtype): New function. + (output_pubnames): Add parameter to deal with either pubnames or + pubtypes, and change code to deal with table being a vector. + (gen_array_type_die): Add call to add_pubtype. + (gen_enumeration_type_die): Add call to add_pubtype. + (gen_struct_or_union_type_die): Add call to add_pubtype. + (gen_subroutine_type_die): Add call to add_pubtype. + (gen_typedef_die): Add call to add_pubtype. + (dwarf2out_init): Add code to initialize pubname_table and + pubtype_table vectors. + (prune_unused_types): Change to deal with pubnames being a vector. + (dwarf2out_finish): Change to deal with pubnames being a vector; add + pubnames table to call to output_pubnames; Add code to output pubtypes + table if DEBUG_PUBTYPES_SECTION is defined. + * config/darwin.c (darwin_file_start): Add DEBUG_PUBTYPES_SECTION to + debugnames. + * config/darwin.h (DEBUG_PUBTYPES_SECTION): Define new global variable. + * testsuite/gcc.dg/pubtypes-1.c: New file/testcase. + * testsuite/gcc.dg/pubtypes-2.c: New file/testcase. + * testsuite/gcc.dg/pubtypes-3.c: New file/testcase. + * testsuite/gcc.dg/pubtypes-4.c: New file/testcase. + * testsuite/g++.dg/pubtypes.C: New file/testcase. + +2006-10-18 Mike Stump <mrs@apple.com> + + Radar 4094959 + * c-opts.c (c_common_handle_option): Handle language specific + target options. + * opts.c (handle_option): Verify language for target options, if + any are given. + * opth-gen.awk: Add CL_LANG_ALL. + * config/darwin.opt (iframework): Add. + * config/darwin.h (TARGET_HANDLE_C_OPTION): Add. + * config/darwin-c.c (add_system_framework_path): Export. + (darwin_handle_c_option): Add. + * config/darwin-protos.h (darwin_handle_c_option): Add. + * doc/invoke.texi (Darwin Options): Add -iframework. + +2006-10-17 Mike Stump <mrs@apple.com> + + Radar 4197305 + * c-lex.c (c_lex_with_flags): Arrange for tokens to not be + over-written while peeking forward for Objective-C languages. + +2006-10-13 Stuart Hastings <stuart@apple.com> + + * Radar 4740805, 4741439 + * gcc/loop.c (LOOP_REG_LIFETIME, LOOP_REG_GLOBAL_P): Remove commentary. + +2006-10-11 Mike Stump <mrs@apple.com> + + Radar 4197305 + * c-lex.c (c_lex_with_flags): Prefer _cpp_backup_tokens over iasm_saved_token. + Avoid fetching extra characters. + +2006-10-10 Mike Stump <mrs@apple.com> + + Radar 4739936 + * c-parse.in (_yylex): Restore error for invalid integer suffixes. + +2006-10-06 Stuart Hastings <stuart@apple.com> + + * Radar 4740805, 4741439 + * gcc/loop.c (LOOP_REG_LIFETIME, LOOP_REG_GLOBAL_P): Revert APPLE LOCAL. + +2006-10-09 Caroline Tice <ctice@apple.com. + + Radar 4771255 + * dwarf2out.c (struct inlined_calls, inlined_calls_list, + file_table_last_lookup): Move to a point in the file outside + the #ifdef DWARF2_DEBUGGING_INFO clause. + +2006-10-06 Eric Christopher <echristo@apple.com> + + Radar 4755586 + * config/i386/i386.h: Rename mni to ssse3. + * config/i386/i386.md: Ditto. + * config/i386/tmmintrin.h: Ditto. + * config/i386/i386.c: Ditto. + * config/i386/sse.md: Ditto. + +2006-10-05 Dale Johannesen <dalej@apple.com> + + * opts.c (restore_func_cl_pf_opts_mapping): Reset + align_loops_log, align_jumps_log, align_labels_log, + align_labels_max_skip in code. + * flags.h (align_loops_max_skip, align_jumps_max_skip): + Remove declarations. + * common.opt (align_loops_max_skip, align_jumps_max_skip): + Make PerFunc and VarUint. + * config/darwin-c.c (darwin_set_flags_from_pragma): New. + (darwin_pragma_opt_level): Call it. + (darwin_opt_size): Ditto. + * config/rs6000/rs6000.c (reset_optimization_options): + Reset align_jumps, align_loops, align_jumps_max_skip, + align_loops_max_skip. + * config/i386/i386.c (reset_optimization_options): + Reset ix86_cost, align_loops, align_jumps, + align_jumps_max_skip, align_loops_max_skip. + (override_options): Move processor_table_target to + file scope. + +2006-10-03 Dale Johannesen <dalej@apple.com> + + * doc/extend.texi (x86 Vector Extensions): Change + di to v1di throughout. Add builtins psllwi, pslldi, + psrlwi, psrldi, psrawi, psradi. Remove builtin pmulhuq. + * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode. + * config/i386/i386-modes.def: Add V1DImode, V1SImode. + * config/i386/mmx.md (MMXMODEI): Add V1DImode. + (MMXMODE): Add V1DImode. + (MMXMODE124): New (same as former MMXMODE). + (MMXMODE248): New. + (mmxvecsize): Change DI to V1DI. + (mmx_adddi3, mmx_subdi3, mmx_ashldi3, mmx_ashldi2si, mmx_lshrdi3, + mmx_lshrdi2si): Remove. + (mmx_psadbw, sse_movntdi, mmx_ashr<mode>3): Change DI to V1DI. + (sse2_umulsidi3): Change DI to V1DI, SI to V1SI. + (mmx_lshr<mode>3, mmx_ashl<mode>3): Change DI to V1DI. + Change MMXMODE24 to MMXMODE248. + (mmx_lshr<mode>2si, mmx_ashl<mode>2si, mmx_ashr<mode>2si): New. + (mmx_eq<mode>3, mmx_gt<mode>3): Change MMXMODEI to MMXMODE124. + (*mov<mode>_internal_rex64): Remove * constraint in ym->y case. + * config/i386/xmmintrin.h (_mm_stream_pi): Remove casts in + movntq call. + * config/i386/mmintrin.h (_mm_add_si64, _mm_sub_si64, _mm_sll_pi16, + _mm_sll_pi32, _mm_sll_si64, _mm_slli_si64, _mm_sra_pi16, _mm_sra_pi32, + _mm_srl_pi16, _mm_srl_pi32, _mm_srl_si64, _mm_srli_si64): + Remove casts in calls. + (_mm_slli_pi16, _mm_slli_pi32, _mm_srai_pi16, _mm_srai_pi32, + _mm_srli_pi16, _mm_srli_pi32): Call -i form of builtin. + * config/i386/sse.md (mni_psign<mode>3, mni_pabs<mode>2): + Change MMXMODEI to MMXMODE124. + (mni_palignrdi): Change to mni_palignrv1di. Change DI to V1DI. + * config/i386/i386.c (type_natural_mode): Treat V1DI as DI in + 32-bit calling sequence. + (builtin_description bdesc_2arg): Change PADDQ to use mmx_addv1di3. + Change PSUBQ to use mmx_subv1di3. Change PSLLWI to use ashlv4hi2si. + Change PSLLDI to use ashlv2si2si. Change PSLLQ to use ashlv1di3. + Change PSLLQI to use mmx_ashlv1di2si. Change PSRLWI to use + mmx_lshrv4hi2si. Change PSRLDI to use lshrv2si2si. Change + PSRLQ to use lshrv1di3. Change PSRLQI to use mmx_lshrv1di2si. + Change PSRAWI to use mmx_ashrv4hi3. Change PSRADI to use + mmx_ashrv2si2si. + (ix86_init_mmx_sse_builtins): Add V1DI_type_node. + Rename pdi_type_node to pv1di_type_node, adjust arguments. + Rename v4hi_ftype_v4hi_di to v4hi_ftype_v4hi_v1di, adjust. + Rename v2si_ftype_v2si_di to v2si_ftype_v2si_v1di, adjust. + v2si_ftype_v2si_int: New. + Rename void_ftype_pdi_di to void_ftype_pv1di_v1di, adjust. + Rename di_ftype_di_di to v1di_ftype_v1di_v1di, adjust. + Rename di_ftype_di_int to v1di_ftype_v1di_int, adjust. + Rename di_ftype_di_di_int to v1di_ftype_v1di_v1di_int, adjust. + Rename di_ftype_v8qi_v8qi to v1di_ftype_v8qi_v8qi, adjust. + Use v4hi_ftype_v4hi_v1di for builtin psllw. Add builtin psllwi. + Use v2si_ftype_v2si_v1di for builtin pslld. Add builtin pslldi. + Use v1di_ftype_v1di_v1di for builtin psllq. + Use v1d1_ftype_v1di_int for builtin psllqi. + Use v4hi_ftype_v4hi_v1di for psrlw builtin. Add psrlwi builtin. + Use v2si_ftype_v2si_v1di for psrld builtin. Add psrldi builtin. + Use v1di_ftype_v1di_v1di for psrlq builtin. + Use v1di_ftype_v1di_int for psrlqi builtin. + Use v4hi_ftype_v4hi_v1di for psraw builtin. Add psrawi builtin. + Use v2si_ftype_v2si_v1di for psrad builtin. Add psradi builtin. + Use void_ftype_pv1di_v1di for movntq builtin. + Use v1di_ftype_v8qi_v8qi for psadbw builtin. + Use v1di_ftype_v2si_v2si for pmuludq builtin. + Use v1di_ftype_v1di_v1di_int for palignr builtin. + Use CODE_FOR_sse_movntv1di for movntq builtin. + Use CODE_FOR_mni_palignrv1di for palignr builtin. + +2006-09-29 Hui-May Chang <hm.chang@apple.com> + + Radar 4736174 + Backport from mainline: + 2005-08-27 Richard Guenther <rguenther@suse.de> + PR target/23575 + * config/i386/sse.md (sse2_movsd): Add missing closing + braces. + +2006-09-27 Hui-May Chang <hm.chang@apple.com> + + Radar 4412214, 4172200 + * config/sse.md (sse2_stored): Add 'r' constraint to the + destination operand. + +2006-09-26 Eric Christopher <echristo@apple.com> + + Radar 4106877 + * config/darwin-driver.c (main): Remove dependence on -o + option. Fix comment spelling. + +2006-09-26 Fariborz Jahanian <fjahania@apple.com> + + Radar 4733555 + *config/darwin.c (darwin_handle_weak_import_attribute): Ignore 'weak_import' + on objc methods. + +2006-09-26 Dale Johannesen <dalej@apple.com> + + * config/i386/mmx.md (mmx_lshrdi2si): New. + (mmx_ashldi2si): New. + (*vec_extractv2si_0): Allow mmx->int reg moves. + * config/i386/i386.c (bdesc_2arg): Use mmx_ashldi2si + for IX86_BUILTIN_PSLLQI. Use mmx_lshrdi2si for + IX86_BUILITN_PSRLQI. + (ix86_init_mmx_sse_builtins): Add di_ftype_di_int. + Add __builtin_ia32_psllqi, __builtin_ia32_psrlqi. + * config/i386/mmintrin.h (_mm_slli_si64): Use + __builtin_ia32_psllqi. + (_mm_srli_si64): Use __builtin_ia32_psrlqi. + * doc/extend.texi: Document new builtins. + +2006-09-25 Eric Christopher <echristo@apple.com> + + Radar 4740850 + * config.gcc: Add apple as i386 cpu variant. + * config/i386/i386.h (TARGET_CPU_DEFAULT_apple): New. + (TARGET_CPU_DEFAULT_NAMES): Add apple. + (processor_type): Add PROCESSOR_APPLE. + * config/i386/i386.c (apple_cost): New. + (override_options): Use. Add apple cpu. Move default + SSE options to 64-bit default init section. + +2006-09-25 Eric Christopher <echristo@apple.com> + + Radar 4574849 + * config/t-slibgcc-darwin (SHLIB_LINK): Use + -dylib_install_name. + * config/darwin.h (LINK_COMMAND_SPEC): Remove use + of libtool. + (LINK_SPEC): Adjust options for above. + (STARTFILE_SPEC): Ditto. + +2006-09-25 Bill Wendling <wendling@apple.com> + + PR c/23576 + * c-decl.c (grokdeclarator): Don't write to fields + of error_mark_node. + +2006-09-22 Mike Stump <mrs@apple.com> + + Radar 4736998 + * config/i386/i386.c (iasm_x86_canonicalize_operands): Avoid + outputting arguments for movs, as the assembler can mis-assemble + it. + +2006-09-19 Josh Conner <jconner@apple.com> + + Radar 4727273 + * flow.c (initialize_uninitialized_subregs): Only do something + if TARGET_MUST_INIT_SUBREG is set. + +2006-09-18 Fariborz Jahanian <fjahania@apple.com> + + Radar 4667060 + * c-gimplify.c (gimplify_c_loop): Add support for + setting of foreach loop controlling variable to 'nil' on + normal loop exit. + +2006-09-15 Fariborz Jahanian <fjahania@apple.com> + + Radar 4727659 + * c-common.c (handle_noreturn_attribute): Handle method_decl + nodes as well. + +2006-09-14 Bill Wendling <wendling@apple.com> + + Radar 4731660 + * config/darwin.h (REDO_SECTION_INFO_P): Removed + +2006-09-11 Josh Conner <jconner@apple.com> + + Radar 4658012 + * calls.c (expand_call): Don't set keep bit on temps for holding + structure return values. + * integrate.c (copy_decl_for_inlining): Add is_result + parameter, add handling for DECL_BY_REFERENCE. + * integrate.h (copy_decl_for_inlining): Add is_result parameter. + * tree-inline.c (remap_decl): Adjust call for above. + (setup_one_parameter): Likewise. + (mark_local_for_remap_r): Likewise. + (declare_return_variable): Likewise. Add bind_expr parameter. + Add handling for DECL_BY_REFERENCE. + (expand_call_inline): Adjust call to declare_return_variable + for additional parameter. + +2006-09-08 Stuart Hastings <stuart@hastings.org> + + Radar 4664847 + * gcc/config/i386/i386.md (fixuns_trunc_<mode>si2): Check for + TARGET_SSE2. + * gcc/config/i386/i386.c (ix86_expand_convert_uns_DF2SI_sse, + ix86_expand_convert_uns_SF2SI_sse, ix86_expand_convert_uns_DI2DF_sse): + Add to commentary. + +2006-09-07 Hui-May Chang <hm.chang@apple.com> + + Radar 4577796 + * config/i386/i386.c : Redefine global constant x86_use_incdec. + +2006-09-07 Stuart Hastings <stuart@hastings.org> + + * gcc/config/i386/i386.c (processor_alias_table): Delete APPLE + LOCAL comment. + +2006-09-06 Caroline Tice <ctice@apple.com> + + Radar 4707854 + * dwarf2out.c (dwar2out_abstract_function): Remove call_site test + from condition determining if an abstract origin die needs to be + generated. + +2006-09-06 Stuart Hastings <stuart@hastings.org> + + Radar 4515157 + * gcc/config/i386/i386.c (processor_alias_table): Enable SSE3 + for nocona. (override_options): Turn SSE3 off for 32-bit + Mach-O unless explicitly enabled on command line. + +2006-09-05 Mike Stump <mrs@apple.com> + + Radar 4699545 + * config/i386/i386.c (iasm_indirect): Avoid doing bad things with + ARRAY_TYPEs. + (iasm_canonicalize_bracket): Handle [var][edx+edx]. + (iasm_canonicalize_bracket_1): Allow edx+edx to have a type so + that we can pass it to the optimizer. + +006-09-01 Fariborz Jahanian <fjahania@apple.com> + + Radar 4712269 + * c-common.h (objc_build_incr_decr_setter_call): New decl. + * stub-objc.c (objc_build_incr_decr_setter_call): New stub. + * c-typeck.c (build_unary_op): Call objc_build_incr_decr_setter_call + for potential ince/decr pre/post expressions involving properties. + +2006-08-31 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4697411 + * c-common.h (objc_volatilize_component_ref): New decl. + * c-typeck.c (build_component_ref): Call objc_volatilize_component_ref. + * stub-objc.c (objc_volatilize_component_ref): New stub. + +2006-08-29 Mike Stump <mrs@apple.com> + + Radar 4699524 + * config/i386/i386.c (iasm_x86_canonicalize_operands): Add + pushfd/popfd. + +2006-08-29 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4705250 + * c.opt (fobjc-atdefs): Add + * c-parse.in: No error on use of @defs with -fobjc-atdefs + +2006-08-28 Bill Wendling <wendling@apple.com> + + Radar 4679943 + * doc/extend.texi (Structure-Packing Pragmas): Changed #pragma pack + documentation to reflect Apple's implementation. + * config/darwin-c.c (push_field_alignment, darwin_pragma_pack): + If #pragma pack([N]), don't clear out the natural alignment flag + on PPC64. + +2006-08-25 Fariborz Jahanian <fjahanian@apple.com> + + PR c/28418 + * c-gimplify.c (gimplify_compound_literal_expr): Don't add + variable again if DECL_SEEN_IN_BIND_EXPR_P. + +2006-08-24 Mike Stump <mrs@apple.com> + + Radar 4682427 + * c-common.c (iasm_stmt): Fix jmp/call. + * config/i386/i386.c (iasm_x86_canonicalize_operands): Likewise. + +2006-08-24 Bill Wendling <wendling@apple.com> + + Radar 4699019 + * doc/invoke.texi (C Language Options, Linker Options, + Warning Options): Removed -Wpragma-once, -no-c++filt, + and -Wpragma-once options' documentation. + * gcc/common.opt (fppc): Removed fppc flag. + * gcc/toplev.c (flag_fppc): Removed flag_fppc variable. + +2006-08-22 Hui-May Chang <hm.chang@apple.com> + + Radar 4287182 + * i386.h : Redefine SLOW_BYTE_ACCESS. + +2006-08-18 Fariborz Jahanian + + Reverted patch for radar 4674757 + * config/i386/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): + Remove darwin_constant_cfstrings setting. + +2006-08-18 Fariborz Jahanian + + Radar 4674757 + * config/i386/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): + Set darwin_constant_cfstrings. + +2006-08-17 Fariborz Jahanian + + Radar 4590221 + * c.opt (flag_objc_direct_dispatch): default to -1. + * config/rs6000/darwin.h (OFFS_MSGSEND_FAST, OFFS_ASSIGNIVAR_FAST, + HAVE_OFFS_MSGSEND_FAST): objective-c macro definitions. + +2006-08-15 Stuart Hastings <stuart@apple.com> + + Radar 4106131 + * gcc/config/i386/darwin.h (TARGET_DEEP_BRANCH_PREDICTION): + Remove NOCONA. + * gcc/testsuite/gcc.apple/execute/picbase-1.c (xsqrt): Replace + references to __builtin functions with their portable + equivalents. + +2006-08-15 Stuart Hastings <stuart@apple.com> + + Radar 4424891 + * gcc/config/i386/i386.c: APPLE LOCAL fixups. + +2006-08-14 Stuart Hastings <stuart@apple.com> + + Radar 4424891 + * gcc/config/i386/i386.md (fixuns_trunc<mode>si2) Call + ix86_expand_convert_uns_<MODE>2SI_sse. + (floatdidf2): Call ix86_expand_convert_sign_DI2DF_sse. + (floatunssidf2): New. + * gcc/config/i386/i386-protos.h (ix86_expand_convert_DF2SI_sse, + ix86_expand_convert_SF2SI_sse, ix86_expand_convert_DI2DF_sse): + Update names to ix86_expand_convert_uns_DF2SI_sse, + ix86_expand_convert_uns_SF2SI_sse, ix86_expand_convert_uns_DI2DF_sse. + (ix86_expand_convert_uns_SI2DF_sse, + ix86_expand_convert_sign_DI2DF_sse): New. + * gcc/config/i386/i386.c (x86_expand_convert_DF2SI_sse, + ix86_expand_convert_SF2SI_sse, ix86_expand_convert_DI2DF_sse): + Update names to ix86_expand_convert_uns_DF2SI_sse, + ix86_expand_convert_uns_SF2SI_sse, ix86_expand_convert_uns_DI2DF_sse. + (ix86_expand_convert_uns_SI2DF_sse, + ix86_expand_convert_sign_DI2DF_sse): New. + (x86_emit_floatuns): Use new functions, tolerate SFmode target. + +2006-08-14 Hui-May Chang <hm.chang@apple.com> + + Radar 4645709 + * config/i386/i386.md (movstrictqi_and): Update the whole register + for a byte operand. + +2006-08-11 Caroline Tice <ctice@apple.com>' + + Radar 4591706 + * dwarf2out.c (dwarf2out_abstract_function): Make sure the abstract + die, with DW_AT_inline, exists before adding the inlined call site + information. + (gen_inlined_subroutine_die): Change code so it no longer relies on + matching function names to find correct call site information. Also, + generate an internal error if it can't find the call site information + for an inlined subroutine. + +2006-08-11 Josh Conner <jconner@apple.com> + + Radar 4674871 + * gcc.c (process_command): Increment n_infiles for the + weak-l command-line option. + +2006-08-04 Jon Ziegler <jonz@apple.com> + + Radar 4674934 + Revert patch for 4424891 due to it breaking the build. + +2006-08-04 Mike Stump <mrs@apple.com> + + Radar 4669052 + * Makefile.in (LIBGCC_DEPS): Don't depend on LANGUAGES. + (c-parse.y): Ensure that we don't rebuild. + +2006-08-04 Stuart Hastings <stuart@apple.com> + + Radar 4106131 + * config/i386/darwin.h (TARGET_DEEP_BRANCH_PREDICTION): Override default. + +2006-07-31 Mike Stump <mrs@apple.com> + + Radar 4660333 + * toplev.c (general_init): Don't try and catch SIGKILL. + +2006-07-28 Stuart Hastings <stuart@apple.com> + + Radar 4424891 + * gcc/config/i386/i386.md (fixuns_trunc<mode>si2): Update. + (floatdidf2): Call ix86_expand_convert_sign_DI2DF_sse. + (floatunssidf2): New. + * config/i386/i386-protos.h (ix86_expand_convert_uns_DF2SI_sse, + ix86_expand_convert_uns_SF2SI_sse, ix86_expand_convert_uns_DI2DF_sse): New names. + (ix86_expand_convert_uns_SI2DF_sse, ix86_expand_convert_sign_DI2DF_sse): New. + * config/i386/i386.c (ix86_expand_convert_uns_DF2SI_sse, + ix86_expand_convert_uns_SF2SI_sse, ix86_expand_convert_uns_DI2DF_sse): New names. + (ix86_expand_convert_uns_SI2DF_sse, ix86_expand_convert_sign_DI2DF_sse): New. + +2006-07-28 Mike Stump <mrs@apple.com> + + Radar 4653181 + * c-common.c (iasm_stmt): Don't clabber edx when edx is used + as an operand. Ensure that it is an input output operand, if + used. + +2006-07-25 Stuart Hastings <stuart@apple.com> + + Radar 4643646 + * gcc/config/i386/i386.c (ix86_expand_vector_init_duplicate): + Omit TARGET_SSE check. + +2006-07-26 Hui-May Chang <hm.chang@apple.com> + + Radar 4629695 + * builtins.c (fold_builtin_1): Fix APPLE LOCAL markers. + +2006-07-25 Hui-May Chang <hm.chang@apple.com> + Radar 4629695 + * builtins.c (fold_builtin_1): Check if the callee declaration is + available. + +2006-07-18 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4592503 + * c-decl.c (finish_struct): Check on illegal use of __weak + on struct fields. + * decl.c (start_decl): Check on illegal use of __weak on + variable declarations. + * stub-objc.c (objc_checkon_weak_attribute): New stub. + * c-common.h (objc_checkon_weak_attribute): New decl. + +2006-07-18 Mike Stump <mrs@apple.com> + + Radar 4636974 + * c-parse.in: Remove extraneous commas on tokens. + +2006-07-18 Hui-May Chang <hm.chang@apple.com> + + Radar 4430340 + Backport from mainline: + 2006-06-09 Mike Stump <mrs@apple.com> + * c-typeck.c (c_begin_vm_scope): Fix file_scope processing. + +2006-07-18 Stuart Hastings <stuart@apple.com> + + Radar 4538899 + * gcc/tree-ssa-threadupdate.c + (rediscover_loops_after_threading): Tweak another APPLE LOCAL comment. + +2006-07-17 Eric Christopher <echristo@apple.com> + + Radar 4633168 + Radar 4630878 + * config/t-slibgcc-darwin (stmp-lipo): Remove. + Rewrite libgcc_s.1.dylib dependencies. + +2006-07-17 Stuart Hastings <stuart@apple.com> + + Radar 4538899 + * gcc/tree-ssa-threadupdate.c + (rediscover_loops_after_threading): Tweak APPLE LOCAL comment. + +2006-07-14 Mike Stump <mrs@apple.com> + + Radar 4630911 + * config/darwin-driver.c (is_x_file): Add. + (resolve_path_to_executable): Use is_x_file instead. + +2006-07-14 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4621020 + * c-parse.in: Added 'weak' attribute keyword for @property. + * c-common.h: 'weak' related declarations. + +2006-07-13 Stuart Hastings <stuart@apple.com> + + Radar 4538899 + * config/rs6000/rs6000.c (SMALL_INT): Fix cast. + * testsuite/gcc.dg/20060713-1.c: New. + +2006-07-13 Jeff Law <law@redhat.com> + Stuart Hastings <stuart@apple.com> + + Radar 4538899 + original FSF patch dated 2005-03-04 + * basic-block.h (rediscover_loops_after_threading): Declare. + * tree-ssa-dom.c: Include cfgloop.h. + (tree_ssa_dominator_optimize): Discover loops and some basic + properties. Remove forwarder blocks recreated by loop header + canonicalization. Also mark backedges in the CFG. + * tree-ssa-threadupdate.c: Include cfgloop.h + (rediscover_loops_after_threading): Define. + (struct local_info): New field, JUMP_THREADED. + (prune_undesirable_thread_requests): New function. + (redirect_edges): Clear EDGE_ABNORMAL. If edges were threaded + then record that fact for the callers of redirct_edges. + (thread_block): If BB has incoming backedges, then call + prune_undesirable_thraed_requests. Note when we are + going to have to rediscover loop information. Return a + boolean indicating if any jumps were threaded. + (thread_through_all_blocks): Bubble up boolean indicating + if any jumps were threaded. + * Makefile.in (tree-ssa-dom.o): Depend on cfgloop.h + (tree-ssa-threadupdate.o): Similarly. + +2006-07-14 Hui-May Chang <hm.chang@apple.com> + + Radar 4614623 + * config/i386/i386.c (ix86_expand_vector_move): Set cfun->uses_vector to 1 + to honor the alignment requirement of vector instructions. + +2006-07-13 Mike Stump <mrs@apple.com> + + Radar 4515069 + * c-common.c (iasm_print_operand): Arrange for local variables to + not be promoted to static duration. + * gimplify.c (gimplify_init_constructor): Likewise. + * tree.h (DECL_IASM_DONT_PROMOTE_TO_STATIC): Add. + (struct tree_decl): Add iasm_dont_promote_to_static. + +2006-07-12 Eric Christopher <echristo@apple.com> + + Radar 4624477 + * config/t-slibgcc-darwin: Import from mainline. Add x86_64 libgcc_s.1.dylib + support. + +2006-07-11 Eric Christopher <echristo@apple.com> + + Radar 4522154 + * config/t-slibgcc-darwin: Add extra dependency to stmp-lipo. + +2006-07-07 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4585769 + * config/darwin-protos.h: New declarations. + * config/darwin.c (machopic_select_section): New sections + for objc1 extensions. + * config/darwin.h: Declaration of __class_ext, __property + and __protocol_ext sections. + +2006-06-29 Mike Stump <mrs@apple.com> + + Radar 4560301 + * c-common.c (iasm_stmt): Fix argument numbers for repeated arguments. + * config/asm.h: Likewise. + +2006-06-26 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4591909 + * c-parse.in: New/modified grammar for new attributes in + properties. + (yylexname): Change to recognize new attribute terminals. + * c-common.h (RID_DYNAMIC): New enum declaration. + +2006-06-27 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4600999 + * config/darwin.c (darwin_handle_objc_gc_attribute): Fix main variant + after attribute insertion. + +2006-06-23 Mike Stump <mrs@apple.com> + + * config/i386/mmintrin.h: Simplifiy use of __nodebug__. + * config/i386/xmmintrin.h: Likewise. + * config/i386/emmintrin.h: Likewise. + * config/i386/pmmintrin.h: Likewise. + +2006-06-22 Geoffrey Keating <geoffk@apple.com> + + Radar 4597080 + * dwarf2out.c (dwarf2out_finish): Move output_line_info call + after debug_info output. + +2006-06-22 Mike Stump <mrs@apple.com> + + Radar 4336222 + * c-decl.c (merge_decls): block-scope extern doesn't mean extern + at file-scope. + +2006-06-21 Geoffrey Keating <geoffk@apple.com> + + Radar 4594955 + * dwarf2out.c (struct source_loc_list): Use location_s directly, + rather than source_locus. + (dwarf2out_abstract_function): Use GC to allocate struct + source_loc_list. + (gen_inlined_subroutine_die): Update for changes to + struct source_loc_list. + +2006-06-20 Geoffrey Keating <geoffk@apple.com> + + Radar 4594280 + * dwarf2out.c (struct inlined_calls): Mark for GC; change field + 'file_index' to be a 'struct dwarf_file_data *'. + (inlined_calls_list): Mark for GC. + (add_to_global_inlined_calls_list): Take a + 'struct dwarf_file_data *' as the call_file parameter. Allocate + struct inlined_calls using GC. Update for file data structure + changes. + (gen_inlined_subroutine_die): Update for file data structure + changes. + +2006-06-19 Mike Stump <mrs@apple.com> + + Radar 4336222 + * tree.c (variably_modified_type_p): VM arguments don't make the + type a VM type. + +2006-06-18 Hui-May Chang <hm.chang@apple.com> + + Radar 4286110 + * config/i386/emmintrin.h (_mm_set1_epi16): Redefine. + +2006-06-18 Hui-May Chang <hm.chang@apple.com> + + Radar 4534621 + * reload.c (find_reload_address) : Indexed ([reg+reg]) memory + address for TImode is not supported on powerpc. Need to load + [reg+reg] to a register first before addressing the memory. + +2006-06-14 Mike Stump <mrs@apple.com> + + Radar 4586112 + * configure.ac (HAVE_GAS_LITERAL16): Add. + * config/darwin.c (HAVE_GAS_LITERAL16): Default to 0. + * config/i386/t-darwin: Don't assume we can always build x86_64 multilib. + +2006-06-12 Devang Patel <dpatel@apple.com> + + Radar 4580289 + * config/darwin-driver.c (resolve_symlink, resolve_path_to_executable, + get_prog_name_len): New. + (main): Find appropriate program. + +2006-06-12 Devang Patel <dpatel@apple.com> + + Radar 4208510 + * doc/invoke.texi (fopt-diary): Document. + * tree-vectorizer.c (debug.h): Include. + (vectorize_loops): Add opt diary entry to note vectorized loops. + * sdbout.c (sdb_debug_hooks): Add debug_nothing_od_msg_loc. + * vmsdbgout.c (vmsdbg_debug_hooks): Same. + * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Same. + * debug.c (do_nothing_hooks): Same. + (debug_nothing_od_msg_loc): New. + * common.opt (fopt-diary): Add. + * debug.h (debug_od_msg, debug_od_category): New. + (gcc_debug_hooks): Add opt_diary_entry hook. + (debug_nothing_od_msg_loc): New. + * Makefile.in (tree-vectorizer.o): Depend on debug.h + * dwarf2out.c (dwarf2out_od_entry, dwarf2out_od_category, + dwarf2out_od_version, gen_new_od_entry_die): New. + (dwarf_tag_name): Handle DW_TAG_GNU_OD_entry. + (dwarf_attr_name): Handle DW_AT_GNU_OD_msg, DW_AT_GNU_OD_category + and DW_AT_GNU_OD_version. + (add_src_coords_attributes_locus): New. + (add_src_coords_attributes): Use add_src_coords_attributes_locus. + (dwarf2out_init): Record opt diary version. + * dwarf2.h (dwarf_tag): Add DW_TAG_GNU_OD_entry. + (dwarf_attributes): Add DW_AT_GNU_OD_msg, DW_AT_GNU_OD_category, + DW_AT_GNU_OD_version. + +2006-06-09 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4084991 + * fold-const.c (fold_cond_expr_with_comparison): Check for + Objective-C++ same as C++. + +2006-06-07 Hui-May Chang <hm.chang@apple.com> + + Radar 4571747 + * rs6000.c (const struct bdesc_altivec_preds) + Rename CODE_FOR_altivec_predicate_* to work with new descriptions in + altivec.md. + * altivec.md + Expand nine altivec predicate vcmp* instructions. + +2006-06-06 Hui-May Chang <hm.chang@apple.com> + + Radar 4314956 + Import from mainline: + 2005-08-31 Richard Henderson <rth@redhat.com> + + * config/i386/i386.c (ix86_function_ok_for_sibcall): Fix + test for fp return matching. + + 2005-08-11 Richard Guenther <rguenther@suse.de> + + PR target/23289 + * config/i386/i386.c (ix86_function_ok_for_sibcall): Handle + cases where we call to/from functions returning void. + +2006-06-01 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4570979 + * config/darwin.h: Change certain 'type' of objc2 sections + to 'regular' from 'literal_pointers' (reversing radar + 4561264).. + +2006-06-01 Hui-May Chang <hm.chang@apple.com> + + Radar 4469713 + * i386.c (ix86_init_mmx_sse_builtins) + The return type of builtin function, __builtin_ia32_vec_ext_v8hi, + should be an unsigned instead of a signed type. + +2006-05-30 Roger Sayle <roger@eyesopen.com> + Stuart Hastings <stuart@apple.com> + + Radar 4561329 + PR middle-end/26557 + * stmt.c (emit_case_nodes): Handle the case where the index is a + CONST_INT, where the comparison mode is specified by the index type. + +2006-05-26 Paolo Bonzini <bonzini@gnu.org> + Dale Johannesen <dalej@apple.com> + Stuart Hastings <stuart@apple.com> + + Fragment from this FSF trunk patch: + PR target/19653 + * config/i386/i386.c (ix86_preferred_reload_class): Force + using SSE registers (and return NO_REGS for floating-point + constants) if math is done with SSE. + +2006-05-26 Fariborz Jahanian <fjahanian@apple.com> + + radar 4563012 + * config/darwin.c (darwin_construct_objc_string): Clear out the + ggc'able cfstring_descriptor node. + +2006-05-25 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4561264 + * config/darwin.h: Change certain 'type' of objc2 sections + to 'literal_pointers' from 'regular'. + +2006-05-18 Geoffrey Keating <geoffk@apple.com> + + Radar 3334812 + * config/darwin.h (NO_IMPLICIT_EXTERN_C): Define. + +2006-05-23 Caroline Tice <ctice@apple.com> + + * passes.c (rest_of_compilation): Add apple local markers. + +2006-05-18 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4548636 (objc attributes on class) + * c-parse.in: Add attribute non-terminal before + AT_INTERFACE. + * c-common.h (objc_start_class_interface): New argument added. + * stub-objc.c (objc_start_class_interface): Ditto. + +2006-05-19 Caroline Tice <ctice@apple.com + + * dwarf2out.c (gen_inlined_subroutine_die): Added type-cast to + assignment and removed declaration of unused variable. + +2006-05-18 Devang Patel <dpatel@apple.com> + + Radar 4509291 + * Undo Radar 4509280 + +2006-05-18 Caroline Tice <ctice@apple.com> + + Radar 4548482 + * sdbout.c (sdb_debug_hooks): Change do_nothing function for + outlining_inline_function to have a second parameter, a source locus. + * vmsdbgout.c (vmsdbgout_abstract_function): Add secord (NULL) + argument to outlining_inline_function call. + * debug.c (do_nothing_debug_hooks): Change do_nothing function for + outlining_inline_function to have a second parameter, a source locus. + (debug_nothing_tree_loc): New function. + * debug.h (struct gcc_debug_hooks): Add a second parameter, a + source_locus, to outlining_inling_function. + (debug_nothing_tree_loc): New extern declaration. + * tree-inline.c (expand_call_inline): Add second argument, + input_location, to outlining_inline_function call. + * dbxout.c (dbx_debug_hooks): Change do_nothing function for + outlining_inline_function to have a second paramenter, a source_locus. + (xcoff_debug_hooks): Likewise. + * passes.c (rest_of_compilation): Add a second argument, NULL, to + the call to outlining_inline_function. + * dwarf2out.c (dwarf2out_abstract_function): Add second parameter, a + source locus. Add code to check to see if a call site location was + passed in, and if so to append the call site location to the list of + inlined call sites attached to the abstract origin die. + (struct source_loc_list): New struct. + (struct die_struct): Add new field, inlined_call_sites. + (struct inlined_calls): New struct. + (inlined_calls_list): New global variable. + (add_to_global_inlined_calls_list): New function. + (gen_inlined_subroutine_die): Add second argument, NULL, to call to + dwarf2out_abstract_function. Add code to look for appropriate call + site record, either in list attached to abstract origin, or in + global list, and if found, to add DW_AT_call_file and DW_AT_call_line + to inlined subroutine die. + (gen_decl_die): Add second argument, NULL, to calls to + dwarf2out_abstract_function. + (add_abstract_origin_attribute): Likewise. + * c-decl.c (merge_decls): Likewise. + * testsuite/gcc.apple/dwarf-inlining.c: New file (test). + +2006-05-17 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4550582 + * c-parse.in: Reset objc_foreach_context to 0. + +2006-05-16 Devang Patel <dpatel@apple.com> + + Radar 4547137 + * dbxout.c (dbxout_end_source_file): Check current_file. + +2006-05-16 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4547045 + * c-gimplify.c (obj_reuse_bc_block): Removed. + (objc_pop_label, objc_push_label): New. + (gimplify_c_loop): Fix up foreach's innerloop break label. + +2006-05-15 Fariborz Jahanian <fjahanian@apple.com> + + radar 4529765 + * c-format.c (format_type_warning): Compensate for two hidden + arguments in objc messaging when warning. + +2006-05-11 Stuart Hastings <stuart@apple.com> + + Radar 4506977 + * gcc/tree-cfg.c (fold_cond_expr_cond): Un-static it. + * gcc/tree-flow.h (fold_cond_expr_cond) Extern it. + * gcc/tree-optimize.c (execute_cleanup_cfg_post_optimizing): Call it. + * gcc/config/rs6000/darwin.md (movdf_low_si): Rewrite to avoid pic-base reference. + * gcc/config/rs6000/rs6000.md (zero_reg_mem_operand): New predicate. + (extenddftf2_internal): Use it. + +2006-05-09 Fariborz Jahanian <fjahanian@apple.com> + + radar 4529200 + * c-parse.in (yylexname): Add '[' as another token + that can follow 'in'. + +2006-05-08 Fariborz Jahanian <fjahanian@apple.com> + + radar 4535676 + * config/darwin-protos.h: New declarations. + * config/darwin.c (machopic_select_section): Code to generate + new section __super_refs. + * config/darwin.h: Macros for new section declarations. + +2006-05-05 Fariborz Jahanian <fjahanian@apple.com> + + radar 4533974 - ObjC new protocol + * c-parse.in: New grammar production. + * c-common.h: New declarations. + * stub-objc.c (objc_protocol_implementation): New stub. + * config/darwin-protos.h: New declarations. + * config/darwin.c (machopic_select_section): Code to generate + new sections __protocol_list and __protocol_refs. + * config/darwin.h: Macros for new section declarations. + +2006-05-01 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4512786 + * doc/invoke.texi (fobjc-sjlj-exceptions): Replaces + fobjc-exceptions. + +2006-04-28 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4512786 + * doc/invoke.texi (fobjc-exceptions): Say it is + on by default. + +2006-04-26 Fariborz Jahanian <fjahanian@apple.com> + + Radar 3803157 (method attributes) + * c-parse.in: Add grammar support for declaring + attribute for objc methods. + * c-common.c (handle_deprecated_attribute): Recognize + objc methods as valid declarations. + (handle_unavailable_attribute): Ditto. + * c-common.h: Bunch of new extern declarations. + * stub-objc.c (objc_add_method_declaration, objc_start_method_definition): + Added new argument. + (objc_method_decl): New stub. + +2006-04-13 Devang Patel <dpatel@apple.com> + + Radar 4503682 + * c-lex.c (c_lex_with_flags): CPP_BINCL and CPP_EINCL tokens do not block PCH. + +2006-04-12 Devang Patel <dpatel@apple.com> + + Radar 4509280 + * tree-vectorizer.c (vectorize_loops): Print vectorized loop count in opt + diary only if count is more then zero. + * flags.h (opt_diary_filename): New. + * tree-pass.h (TODO_proposal_1): New. + * tree-sra.c (pass_sra): Add TODO_proposal_1 in todo_flags_finish. + * tree-ssa-forwprop.c (pass_forwprop): Same. + * tree-ssa-dce.c (pass_dce, pass_cd_dce): Same. + * tree-ssa-ccp.c (pass_ccp): Same. + * tree-ssa-loop.c (pass_lim, pass_unswitch, pass_vectorize, pass_linear_transform, + pass_loop_prefetch, pass_iv_canon, pass_complete_unroll, pass_iv_optimize): Same. + * common.opt (fopt-diary-proposal-1): New. + * toplev.c (opt-diary.h): Include. + (opt_diary_filename): new. + (do_compile): Open and close opt diary. + * tree-optimize.c (opt-diary.h): Include. + (execute_one_pass): Redir dump_file to opt diary and restore it back. + Insert annotation header tag in opt diary. + * Makefile.in (opt-diary.o): New rule. + (tree-cfg.o, tree-optimize.o, toplev.o): Depend on opt-diary.h + * tree-cfg.c (opt-diary.h): Include. + (dump_function_to_file): Do not dump function into opt diary. + * opts.c (common_handle_option): Handle OPT_fopt_diary_proposal_1_. + * tree-ssa-opearnds. (get_indirect_ref_operands): Suppress flow sensitive alias + info dump in optimization diary. + * opt-diary.c: New file. + * opt-diary.h: New file. + +2006-04-13 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4502236 + * c-parse.in (c99_block_lineno_labeled_stmt): Pass same flags to + c_end_compound_stmt to match c_begin_compound_stmt. + +2006-04-12 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4507230 + * c-common.h (objc_type_valid_for_messaging): Declare. + * stub-objc.c (objc_type_valid_for_messaging): New stub. + +2006-04-06 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4436866 + (Missing copies attribute) + * c-parse.in: Add grammer for 'copies' attribute. + * c-common.h (RID_COPIES): New enumerator. + +2006-04-04 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4498373 + (Metadata for objective-c properties) + * config/darwin.c (machopic_select_section): Put metadata + name/attribute strings in .data section. + +2006-03-29 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4493912 + * config/darwin.c (darwin_init_cfstring_builtins): Make type of + CFString.length 'long'. + (darwin_init_cfstring_builtins): Initialize CFString.length to + a 'long' value. + +2006-03-27 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4133425 + * c-common.h (objc_diagnose_private_ivar): New decl. + * stub-objc.c (objc_diagnose_private_ivar): New stub. + * c-decl.c (undeclared_variable): Issue disnostic on + private 'ivar' access. + +2006-03-27 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4491608 + * c-typeck.c (convert_arguments): function name must come from 'selector' + when diagnosing 'too many arguments'. + +2006-03-24 Devang Patel <dpatel@apple.com> + + Radar 4485223 + * opts.c (decode_options): Issue warning if -ftree-vectorize + overrides -fno-strict-aliasing. + +2006-03-23 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4193359 + * c-typeck.c (convert_for_assignment): Remove Objective-C EH machinery + 'volatile' qualifier before doing type comparison. + +2006-03-22 Geoffrey Keating <geoffk@apple.com> + + Radar 4255172 + * config/rs6000/darwin.h (PEG_ALIGN_FOR_MAC68K): Move to here from + config/darwin.h. Don't test TARGET_ALTIVEC. + * config/darwin.h [RS6000_VECTOR_ALIGNMENT] (PEG_ALIGN_FOR_MAC68K): + Move this definition to config/rs6000/darwin.h. + * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Don't define + Altivec PIM macros unless -faltivec. + * config/rs6000/rs6000.c (rs6000_override_options): Don't allow + special Altivec vector initialisation unless -faltivec. + +2006-03-22 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4436866 + * c-parse.in: Add all the needed grammar and lexical support for + objective-c @property. + * c-typeck.c (build_component_ref): Call objc_build_getter_call. + (build_modify_expr): Call objc_build_setter_call. + * tree.h (CALL_EXPR_OBJC_PROPERTY_GETTER): New macro. + * c-common.h: Several new declarations in support of + objective-c's @property. + * stub-objc.c (objc_set_property_attr, objc_add_property_variable, + objc_build_getter_call, objc_build_setter_call): New stubs. + +2006-03-16 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4293709 + * c-typeck.c (digest_init): Check for protocol match in + initialization of two otherwise matching pointers. + +2006-03-13 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4472881 + * c-parse.in: Change grammar code as needed to allow + declaration in objective-c's foreach for-loop loop header. + +2006-03-08 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4468456 + * c-gimplify.c (gimplify_c_loop): 'continue' label is generated + as in normal case and belongs to current loop. + +2006-03-07 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4468498 + * c-parse.in (for_objc_collection): Add grammar for non-declarative + form of foreach-statement. + +2006-02-28 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4441049 + * c-common.h (objc_v2_bitfield_ivar_bitpos): New decl. + * expr.h (objc_v2_bitfield_ivar_bitpos): New decl. + * stub-objc.c (objc_v2_bitfield_ivar_bitpos): New stub. + * expr.c (get_inner_reference): Compute ivar's bitfield bit offset. + +2006-02-28 Devang Patel <dpatel@apple.com> + Ziemowit Laski <zlaski@apple.com> + + Radar 4137741 + * Makefile.in (c-lex.o): Revert langhooks.h dependency. + (langhooks.o): Revert debug.h dependency. + * c-lex.c: Do not include langhooks.h. + (fe_file_change): Revert lang_hooks calls; issue debug_hooks + calls only if defer_file_change_debug_hooks flag is cleared. + (c_lex_with_flags): Propagate line number information for + CPP_BINCL and CPP_EINCL tokens. + * langhooks-def.h: Revert Radar 4133801 changes. + * langhooks.c: Likewise. + * langhooks.h: Likewise. + +2006-02-15 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4445586 + * c-common.def (DO_STMT): Takes an extra argument. + +2006-02-15 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4441551 + * c-parse.in (component_decl_list2): Issue warning for @defs as needed. + * c-typeck.c (build_c_cast): Call diagnose_selector_cast. + * common.opt: New -Wobjc2 option. + * c-common.h (diagnose_selector_cast): New decl. + * stub-objc.c (diagnose_selector_cast): New stub. + * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for + objc's new abi. + +2006-02-14 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4441049 + * c-common.h (objc_v2_component_ref_field_offset): New decl. + * stub-objc.c (objc_v2_component_ref_field_offset): New stub. + * expr.c (component_ref_field_offset): May get the bitfield + byte-offset from a variable for the new objc abi. + * expr.h (objc_v2_component_ref_field_offset): New decl. + * config/darwin.c (machopic_select_section): Explicitly use .data + section for global class/metaclass metadata. + +2006-02-08 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4437670 (new abi stuff) + * common.opt: New -fobjc-nilcheck option. + * config/darwin-protos.h: Stuff for new __OBJC2, __protocol section. + * config/darwin.c: Ditto. + * config/darwin.h: Ditto. + +2006-02-07 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4426814 + * c-parse.in (cast_expr): Minor fix. + +2006-02-02 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4426814 + * c-parse.in (cast_expr): generate objc_read_weak call on + each __weak object in the expession. + * c-typeck.c (build_modify_expr): Undo the call to objc_read_weak + on LHS expression. + * c-objc-common.c (c_objc_common_truthvalue_conversion): Generate + objc_read_weak call before generating tree for !exp, etc. + * c-common.h (objc_generate_weak_read, objc_remove_weak_read): New decl. + * stub-objc.c (objc_generate_weak_read, objc_remove_weak_read): New stubs. + +2006-01-30 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4386773 + * c-common.h (RID_AT_OPTIONAL, RID_AT_REQUIRED): Two new + objective-c keywords. + (objc_set_method_opt): New declaration. + * stub-objc.c (objc_set_method_opt): New stub. + +2006-01-26 Devang Patel <dpatel@apple.com> + + Radar 4388369 + * dbxout.c (dbxout_complete_type): Handle internally volatized + types for Objective-C EH mechanism. + +2006-01-23 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4391705 + * config/darwin-protos.h + (objc_v2_selector_refs_section): New declaration. + * config/darwin.c: use section __OBJC2,__selector_refs for + @selector expressions in new-ABI and hybrid-ABI. + * config/darwin.h: Initialization of __OBJC2,__selector_refs + section and inclusion of hybrid abi for __OBJC2 sections + initializations. + +2006-01-18 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4294910 + * c-parse.in: Add grammar supprt for the foreach initialization + part. + * c-gimplify.c (obj_reuse_bc_block): New function. + (gimplify_c_loop): Has a new argument to recgognize nested + do-while statement part of foreach-statement synthesis. Use + existing continue/break labels for this loop. + * c-common.h (DO_FOREACH): New field for a do-while statement. + (objc_finish_foreach_loop, objc_build_component_ref, + objc_build_foreach_components): New declarations. + * stub-objc.c: New stubs. + +2006-01-18 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4391705 + * config/darwin-protos.h: New declarations for new sections. + * config/darwin.c: Generate new symbols in OBJC2 segment in + new sections __category_list, __class_refs, __nonlazy_class + and __nonlazy_catgry. + * config/darwin.h: Define and initialize the above new sections. + +2006-01-02 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4391705 + * config/darwin.h: Change segment and section name of class meta + data. + (objc_section_init): Initialize OBJC2 sections for new abi only. + +2005-12-15 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4229905 + * c-typeck.c (build_conditional_expr): Call objc_have_common_type when + looking for objective-c common pointer types. + * c-common.h objc_have_common_type): New declaration. + * stub-objc.c (objc_have_common_type): New stub. + +2005-12-06 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4360146 + * c-common.h (objc_v2_build_ivar_ref): New declaration. + * stub-objc.c (objc_v2_build_ivar_ref): New stub. + * c-typeck.c (build_component_ref): Generate the new ivar reference + tree. + +2006-07-05 Hui-May Chang <hm.chang@apple.com> + + * doc/extend.texi: Fixed the unmatched APPLE LOCAL marker introduced by + the previous checkin for radar 4395773. + +2006-06-26 Hui-May Chang <hm.chang@apple.com> + + Radar 4395773 + * doc/extend.texi: Document SSE2 built-in functions and other new functions. + +2006-06-26 Eric Christopher <echristo@apple.com> + + Radar 4512244 + * config/t-slibgcc-darwin (SHLIB_SUFFIX): Depend only on ppc64 + for suffix. + +2006-06-14 Mike Stump <mrs@apple.com> + + Radar 4586112 + * configure.ac (HAVE_GAS_LITERAL16): Add. + * config/darwin.c (HAVE_GAS_LITERAL16): Default to 0. + * config/i386/t-darwin: Don't assume we can always build x86_64 multilib. + +2006-06-26 Eric Christopher <echristo@apple.com> + + Radar 4601627 + * config/t-slibgcc-darwin (SHLIB_MAPFILES): Revert previous patch. + +2006-06-26 Eric Christopher <echristo@apple.com> + + Radar 4601584 + * config.gcc: Revert part of previous patch. + * config/t-darwin: Ditto. + +2006-06-23 Eric Christopher <echristo@apple.com> + + Radar 4476324 + * config/i386/i386.c (standard_sse_mode_p): New. + (standard_sse_constant_p): Use. + * config/i386/predicates.md (vector_move_operand): Revert + patch for 4283414. + (nonimmediate_or_sse_const_operand): Define. + * config/i386/sse.md (*mov<mode>_internal): Use. + (*movv4sf_internal): Ditto. + (*movv2df_internal): Ditto. + +2006-06-23 Mike Stump <mrs@apple.com> + + Radar 4591284 + * config/i386/tmmintrin.h: Add __always_inline__ and __nodebug__. + +2006-06-22 Eric Christopher <echristo@apple.com> + + Radar 4512244 + * config.gcc (*-*-darwin*): Add crt3.o to extra_parts. + (powerpc-*-darwin*): Add ${extra_parts}. + * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove. + * config/t-slibgcc-darwin: Rewrite libgcc_s.1.dylib handling. + +2006-06-22 Eric Christopher <echristo@apple.com> + + Radar 4598165 + * config/i386/i386.c (ix86_preferred_reload_class): Bring in + rest of patch for 3501055 from mainline. + * config/i386/i386.h (IS_STACK_MODE): Ditto. + +2006-06-22 Mike Stump <mrs@apple.com> + + Radar 4535822 + * c-common.c (iasm_stmt): Update for new assembler. + (iasm_print_operand): Likewise. + * config/asm.h: Likewise. + * config/i386/i386.c (iasm_x86_canonicalize_operands): Likewise. + * config/i386/i386.h (TARGET_IASM_OP_CONSTRAINT): Fix constraints + for lldt and ltr. + +2006-06-05 Hui-May Chang <hm.chang@apple.com> + + Radar 4469713 + * i386.c (ix86_init_mmx_sse_builtins) + The return type of builtin function, __builtin_ia32_vec_ext_v8hi, + should be an unsigned instead of a signed type. + +2006-06-05 Eric Christopher <echristo@apple.com> + + Radar 4560266 + * config/i386/darwin.h (OPTION_DEFAULT_SPECS): Remove port + specific version. + +2006-05-30 Eric Christopher <echristo@apple.com> + + Radar 4555787 + * config/darwin-protos.h (literal16_section): Prototype. + * config/darwin.h (EXTRA_SECTION): Define. + (EXTRA_SECTION_FUNCTIONS): Define. + * config/darwin.c (machopic_select_section): Use. + Conditionalize on TARGET_64BIT. + (machopic_select_rtx_section): Ditto. + (darwin_set_section_for_var_p): Ditto. + +2006-05-26 Paolo Bonzini <bonzini@gnu.org> + Dale Johannesen <dalej@apple.com> + Stuart Hastings <stuart@apple.com> + + Fragment from this FSF trunk patch: + PR target/19653 + * config/i386/i386.c (ix86_preferred_reload_class): Force + using SSE registers (and return NO_REGS for floating-point + constants) if math is done with SSE. + +2006-05-11 Stuart Hastings <stuart@apple.com> + + Radar 4525731 + * gcc/config/i386/i386.c (ix86_handle_cconv_attribute): + Diagnose force_align_arg_pointer versus regparm collisions. + (ix86_function_regparm): Reduce number of regparms available + when force_align_arg_pointer in use. + +2006-05-10 Eric Christopher <echristo@apple.com> + H.J. Lu <hongjiu.lu@intel.com> + + Radar 4424835 + * config.gcc (i[34567]86-*-*): Add tmmintrin.h to extra_headers. + (x86_64-*-*): Likewise. + * config/i386/i386.c (pta_flags): Add PTA_MNI. + (override_options): Check MNI. + (ix86_builtins): Add IX86_BUILTIN_PHADDW, IX86_BUILTIN_PHADDD, + IX86_BUILTIN_PHADDSW, IX86_BUILTIN_PHSUBW, IX86_BUILTIN_PHSUBD, + IX86_BUILTIN_PHSUBSW, IX86_BUILTIN_PMADDUBSW, + IX86_BUILTIN_PMULHRSW, IX86_BUILTIN_PSHUFB, + IX86_BUILTIN_PSIGNB, IX86_BUILTIN_PSIGNW, IX86_BUILTIN_PSIGND, + IX86_BUILTIN_PALIGNR, IX86_BUILTIN_PABSB, IX86_BUILTIN_PABSW, + IX86_BUILTIN_PABSD, IX86_BUILTIN_PHADDW128, + IX86_BUILTIN_PHADDD128, IX86_BUILTIN_PHADDSW128, + IX86_BUILTIN_PHSUBW128, IX86_BUILTIN_PHSUBD128, + IX86_BUILTIN_PHSUBSW128, IX86_BUILTIN_PMADDUBSW128, + IX86_BUILTIN_PMULHRSW128, IX86_BUILTIN_PSHUFB128, + IX86_BUILTIN_PSIGNB128, IX86_BUILTIN_PSIGNW128, + IX86_BUILTIN_PSIGND128, IX86_BUILTIN_PALIGNR128, + IX86_BUILTIN_PABSB128, IX86_BUILTIN_PABSW128 and + IX86_BUILTIN_PABSD128. + (bdesc_2arg): Add MNI. + (bdesc_1arg): Likewise. + (ix86_init_mmx_sse_builtins): Support MNI. + (ix86_expand_builtin): Likewise. + * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Likewise. + * config/i386/i386.md (UNSPEC_PSHUFB): New. + (UNSPEC_PSIGN): Likewise. + (UNSPEC_PALIGNR): Likewise. + Include mmx.md before sse.md. + * config/i386/i386.opt: Add -mmni. + * config/i386/sse.md (mni_phaddwv8hi3): New pattern for MNI. + (mni_phaddwv4hi3): Likewise. + (mni_phadddv4si3): Likewise. + (mni_phadddv2si3): Likewise. + (mni_phaddswv8hi3): Likewise. + (mni_phaddswv4hi3): Likewise. + (mni_phsubwv8hi3): Likewise. + (mni_phsubwv4hi3): Likewise. + (mni_phsubdv4si3): Likewise. + (mni_phsubdv2si3): Likewise. + (mni_phsubswv8hi3): Likewise. + (mni_phsubswv4hi3): Likewise. + (mni_pmaddubswv8hi3): Likewise. + (mni_pmaddubswv4hi3): Likewise. + (mni_pmulhrswv8hi3): Likewise. + (mni_pmulhrswv4hi3): Likewise. + (mni_pshufbv16qi3): Likewise. + (mni_pshufbv8qi3): Likewise. + (mni_psign<mode>3): Likewise. + (mni_psign<mode>3): Likewise. + (mni_palignrti): Likewise. + (mni_palignrdi): Likewise. + (mni_pabs<mode>2): Likewise. + (mni_pabs<mode>2): Likewise. + * config/i386/tmmintrin.h: New file. + * doc/extend.texi: Document MNI built-in functions. + * doc/invoke.texi: Document -mmni/-mno-mni switches. + +2006-05-10 Eric Christopher <echristo@apple.com> + + Radar 4541111 + * config/i386/i386.c (override_options): Disable + -fomit-frame-pointer. + +2005-05-06 Eric Christopher <echristo@apple.com> + + Radar 4539437 + * config/i386/i386.c (processor_alias_table): Remove + PTA_SSE3 for nocona. + +2006-05-05 Eric Christopher <echristo@apple.com> + Nate Begeman <nbegeman@apple.com> + + Radar 4434601 + Backport from mainline: + 2006-01-19 Jan Hubicka <jh@suse.cz> + H.J. Lu <hongjiu.lu@intel.com> + Evandro Menezes <evandro.menezes@amd.com> + + * invoke.texi (generic): Document + (i686) Update. + * config.gcc: Make x86_64-* and i686-* default to generic tuning. + * i386.h (TARGET_GENERIC32, TARGET_GENERIC64, TARGET_GENERIC, + TARGET_USE_INCDEC, TARGET_PAD_RETURNS): New macros. + (x86_use_incdec, x86_pad_returns): New variables + (TARGET_CPU_DEFAULT_generic): New constant + (TARGET_CPU_DEFAULT_NAMES): Add generic. + (enum processor_type): Add generic32 and generic64. + * i386.md (cpu attribute): Add generic32/generic64 + (movhi splitter): Behave sanely when both partial_reg_dependency and + partial_reg_stall are set. + (K8 splitters): Enable for generic as well. + * predicates.md (incdec_operand): Use TARGET_INCDEC + (aligned_operand): Avoid memory mismatch stalls. + * athlon.md: Enable for generic64, new patterns for 128bit moves. + * ppro.md: Enable for generic32 + * i386.c (generic64_cost, generic32_cost): New. + (m_GENERIC32, m_GENERIC64, m_GENERIC): New macros. + (x86_use_leave): Enable for generic64. (x86_use_sahf, + x86_ext_80387_constants): Enable for generic32. (x86_push_memory, + x86_movx, x86_unroll_strlen, x86_deep_branch, x86_use_simode_fiop, + x86_use_cltd, x86_promote_QImode, x86_sub_esp_4, x86_sub_esp_8, + x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves, + x86_partial_reg_dependency, x86_memory_mismatch_stall, + x86_accumulate_outgoing_args, x86_prologue_using_move, + x86_epilogue_using_move, x86_arch_always_fancy_math_387, + x86_sse_partial_reg_dependency, x86_four_jump_limit, x86_schedule): + Enable for generic. + (x86_use_incdec, x86_pad_returns): New. + (override_options): Add generic32 and generic64, translate "generic" + to generic32/generic64 and "i686" to "generic32", refuse + "generic32"/"generic64" as arch target. + (ix86_issue_rate, ix86_adjust_cost): Handle generic as athlon. + (ix86_reorg): Honor PAD_RETURNS. + +2006-05-02 Eric Christopher <echristo@apple.com> + + Radar 4534752 + * config/i386/i386.h (MACHOPIC_UNDEFINED_FUNCTION): Remove define. + * config/i386/i386.c (output_pic_addr_const): Bracket machopic routines + with TARGET_MACHO. + * config/darwin.h (MACHOPIC_INDIRECT): Undef before defining. + (MACHOPIC_PURE): Ditto. + +2006-05-02 Eric Christopher <echristo@apple.com> + + Radar 4534752 + * config/rs6000/rs6000.c (reset_optimization_options): Bracket by TARGET_MACHO. + * config/i386/i386.c (reset_optimization_options): Ditto. + (ix86_file_end): Ditto. + * config/i386/i386.h (MACHOPIC_INDIRECT): Define to 0. + (MACHOPIC_UNDEFINED_FUNCTION): Ditto. + (MACHOPIC_PURE): Ditto. + +2006-05-02 Eric Christopher <echristo@apple.com> + + Radar 4533898 + * global.c (flag_cw_asm_blocks): Change to + flag_iasm_blocks. + * config/i386/i386.h (IASM_VALID_PIC): Move... + * config/i386/darwin.h: ... here. + +2006-05-01 Eric Christopher <echristo@apple.com> + + Radar 4533757 + * global.c (flag_cw_asm_blocks): Declare. + +2006-04-10 Eric Christopher <echristo@apple.com> + + Radar 4467352 + * config/i386/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Disable + mdynamic-no-pic for 64-bit. + +2006-04-04 Eric Albert <ejalbert@apple.com> + + Radar 4502551 + * config/darwin.h (PREFERRED_DEBUGGING_TYPE): Default to stabs for all + configurations. + +2006-03-27 Eric Christopher <echristo@apple.com> + + Radar 4446385 + * config/darwin-driver.c (get_arch_name): Rewrite. + +2006-06-14 Geoffrey Keating <geoffk@apple.com> + + Radar 4587142 + * dwarf2out.c (dwarf_file_data): New. + (enum dw_val_class): Add dw_val_class_file. + (struct dw_val_struct): Add val_file. + (file_table): Change to a hash table. + (file_table_emitted): Delete. + (file_table_last_lookup_index): Delete. + (emitcount): Delete. + (last_emitted_file): New. + (lookup_filename): Change prototype to return a struct dwarf_file_data. + (init_file_table): Delete. + (maybe_emit_file): Change prototype to take a struct dwarf_file_data. + (AT_addr): Add comment. + (add_AT_file): New. + (AT_file): New. + (get_AT_file): New. + (print_die): Handle dw_val_class_file. + (print_dwarf_line_table): Update for new file table structure. + (attr_checksum): Do checksum a filename. + (same_dw_val_p, same_attr_p): Do compare a filename. + (size_of_die): Handle dw_val_class_file. + (value_format): Likewise. + (output_die): Likewise. Also, call maybe_emit_file here. + (struct file_info): Constify filenames. Make file_idx a pointer + to a struct dwarf_file_data. + (struct dir_info): Constify directory names. Remove 'used' field. + (struct file_name_acquire_data): New. + (file_name_acquire): New. + (output_file_names): Modify to handle new file data structures. + (add_src_coords_attributes): Use add_AT_file. + (add_call_src_coords_attributes): Likewise. + (dwarf2out_imported_module_or_decl): Likewise. + (gen_subprogram_die): Modify for new file data structures. + (gen_variable_die): Likewise. + (file_table_eq): New. + (file_table_hash): New. + (file_table_last_lookup): New. + (lookup_filename): Rewrite to handle new file data structures. + (maybe_emit_file): Rewrite to handle new file data structures. + (dwarf2out_source_line): Always call lookup_filename and + maybe_emit_file. + (dwarf2out_init): Create file_table here. + (prune_unused_types_walk_attribs): Don't call maybe_emit_file here. + (file_table_relative_p): New. + (dwarf2out_finish): Change detection of relative filenames + to work with new file data structures. + +2006-06-05 Roger Sayle <roger@eyesopen.com> + Stuart Hastings <stuart@apple.com> + + Radar 4561329 + PR middle-end/26557 + * stmt.c (emit_case_nodes): Handle the case where the index is a + CONST_INT, where the comparison mode is specified by the index type. + +2006-05-30 Mike Stump <mrs@apple.com> + + Rarar 4527214 + * c-common.c (iasm_stmt): Fix clobbers for mul/imul/div/idiv. + +2006-05-18 Mike Stump <mrs@apple.com> + + Radar 4501833 + * c-common.c (iasm_delete_blr): Add. + (iasm_saw_frfree_blr): Add. + (iasm_ensure_blr_last): Add. + (iasm_stmt): Add logic to ensure that blr follows frfree and that + blr is last. Manage line numbes better. Only allow fralloc and + frfree on ppc. + * c-parse.in (compstmt_nostart): Use iasm_end_block to end inline + assmebly blocks. + (iasm_compstmt): Likewise. + (iasm_compstmt_nostart): Likewise. + * config/asm.h (iasm_end_block): Add. + * function.c (assign_parm_setup_reg): Don't spill to memory for a + frameless asm function. + +2006-05-03 Mike Stump <mrs@apple.com> + + Radar 4529651 + * doc/invoke.texi (Optimize Options): Improve -fast documentation + a little. + +2006-05-01 Stuart Hastings <stuart@apple.com> + + Radar 4222119 + * gcc/doc/invoke.texi: Document -mlong-branch. + +2006-04-27 Eric Christopher <echristo@apple.com> + + Radar 4454599 + Radar 4481146 + * stor-layout.c (update_alignment_for_field): Unconditionalize + ms_bitfield_layout_p code. Handle non-bitfield fields. Remove + extra alignment code. + (place_field): Don't realign if ms_bitfield_layout_p. Unconditionalize + ms_bitfield_layout_p code. Rewrite handling of structure fields. + Rewrite bitfield reversal handling. + +2006-04-27 Hui-May Chang <hm.chang@apple.com> + + Radar 4314956 + Revert 2006-04-26 patch. + +2006-04-27 Mike Stump <mrs@apple.com> + + Radar 4529992 + * c-common.c (pointer_int_sum): Only form ARRAY_REF for ARRAY_TYPEs. + (iasm_maybe_force_mem): Ensure that we only use DECL_HARD_REGISTER on + VAR_DECLs. + * c-typeck.c (iasm_c_build_component_ref): Move [eax].16 code up, + to avoid calling lookup_name on [eax]. + +2006-04-26 Hui-May Chang <hm.chang@apple.com> + + Radar 4491613 + * loop.c (general_induction_var) : If an induction variable + may trap, it shouldn't be a general induction variable. + +2006-04-26 Hui-May Chang <hm.chang@apple.com> + + Radar 4314956 + Import from mainline: + 2005-08-31 Richard Henderson <rth@redhat.com> + * config/i386/i386.c (ix86_function_ok_for_sibcall): Fix test for + fp return matching. + +2006-04-26 Mike Stump <mrs@apple.com> + + Radar 4505697 + * config/i386/i386.c (iasm_x86_canonicalize_operands): Fix movzx handling. + +2006-04-26 Mike Stump <mrs@apple.com> + + Radar 4505741 + * c-common.c (iasm_print_operand): Fix .machine all for ppc64. + + (iasm_addr): Add. + (pointer_int_sum): Handle ptr+4 correctly. + (iasm_stmt): Set up the line number correctly for C. + (IASM_VALID_PIC): Add. + (iasm_type_for): Move to i386.h + (iasm_maybe_force_mem): Add. + (iasm_print_operand): Split code out to new functions. + Add warnings for non-pic code when in PIC mode. + Add ARRAY_REF handling. + * i386/i386-protos.h (iasm_raise_reg): Add + * i386/i386.c: + Rename x86_canonicalize_operands to iasm_x86_canonicalize_operands. + (iasm_type_for): Add. + (iasm_raise_reg): Add. + (iasm_default_conv): Add. + (iasm_is_offset): Imrove support for ADDR_EXPR. + (iasm_canonicalize_bracket_1): Handle constants better. + Ensure that stack based addresses occur as one argument to the asm. + Ensure that expressions form adderess exrepssions. + (iasm_indirect): Add. + (iasm_add): Add. + (iasm_canonicalize_bracket): Split out code. + Ensure that stack based addresses occur as one argument to the asm. + Ensure that expressions form adderess exrepssions. + (iasm_x86_canonicalize_operands): Handle ARRAY_REF. + (iasm_warn_extra_reg): Add. + (iasm_print_op): Don't indirect here. + Handle address constant memory expressions. + Add warnings for extra registers. + Handle ADDR_EXPR better. + * i386/i386.h (IASM_VALID_PIC): Add. + + Rename cw_ to iasm_: + * c-common.c: + Rename flag_cw_asm_blocks to flag_iasm_blocks. + Rename cw_asm_states to iasm_states. + Rename cw_asm_state to iasm_state. + Rename cw_asm_in_decl to iasm_in_decl. + Rename inside_cw_asm_block to inside_iasm_block. + Rename cw_asm_at_bol to iasm_at_bol. + Rename cw_asm_in_operands to iasm_in_operands. + Rename cw_split_next to iasm_split_next. + Rename cw_asm_buffer to iasm_buffer. + Rename cw_asm_labels to iasm_labels. + Rename cw_asm_labels_uniq to iasm_labels_uniq. + Rename cw_asm_identifier to iasm_identifier. + Rename cw_memory_clobber to iasm_memory_clobber. + Rename get_cw_asm_label to iasm_get_label. + Rename cw_get_mode to iasm_get_mode. + Rename cw_ptr_conv to iasm_ptr_conv. + Rename cw_build_bracket to iasm_build_bracket. + Rename cw_asm_default_function_conversion to iasm_default_function_conversion. + Rename cw_is_pseudo to iasm_is_pseudo. + Rename cw_op_constraint to iasm_op_constraint. + Rename TARGET_CW_OP_CONSTRAINT to TARGET_IASM_OP_CONSTRAINT. + Rename cw_op_comp to iasm_op_comp. + Rename TARGET_CW_REORDER_ARG to TARGET_IASM_REORDER_ARG. + Rename CW_SYNTH_CONSTRAINTS to IASM_SYNTH_CONSTRAINTS. + Rename cw_constraint_for to iasm_constraint_for. + Rename cw_process_arg to iasm_process_arg. + Rename CW_CANONICALIZE_OPERANDS to IASM_CANONICALIZE_OPERANDS. + Rename CW_IS_PREFIX to IASM_IS_PREFIX. + Rename CW_PRINT_PREFIX to IASM_PRINT_PREFIX. + Rename cw_is_prefix to iasm_is_prefix. + Rename cw_num_constraints_1 to iasm_num_constraints_1. + Rename cw_num_constraints to iasm_num_constraints. + Rename cw_set_constraints_1 to iasm_set_constraints_1. + Rename cw_set_constraints to iasm_set_constraints. + Rename CW_MAX_CLOBBERS to IASM_MAX_CLOBBERS. + Rename cw_op_clobber to iasm_op_clobber. + Rename cw_op_clobber_comp to iasm_op_clobber_comp. + Rename TARGET_CW_EXTRA_CLOBBERS to TARGET_IASM_EXTRA_CLOBBERS. + Rename cw_extra_clobbers to iasm_extra_clobbers. + Rename cw_asm_stmt to iasm_stmt. + Rename cw_asm_field_offset to iasm_field_offset. + Rename cw_simple_expr to iasm_simple_expr. + Rename cw_asm_expr_val to iasm_expr_val. + Rename TARGET_CW_PRINT_OP to TARGET_IASM_PRINT_OP. + Rename CW_IMMED_PREFIX to IASM_IMMED_PREFIX. + Rename CW_OFFSET_PREFIX to IASM_OFFSET_PREFIX. + Rename CW_HIDE_REG to IASM_HIDE_REG. + Rename CW_SEE_IMMEDIATE to IASM_SEE_IMMEDIATE. + Rename CW_SEE_NO_IMMEDIATE to IASM_SEE_NO_IMMEDIATE. + Rename CW_FUNCTION_MODIFIER to IASM_FUNCTION_MODIFIER. + Rename cw_force_constraint to iasm_force_constraint. + Rename print_cw_asm_operand to iasm_print_operand. + Rename cw_asm_get_register_var to iasm_get_register_var. + Rename cw_asm_reg_name to iasm_reg_name. + Rename cw_asm_label to iasm_label. + Rename cw_get_identifier to iasm_get_identifier. + Rename clear_cw_asm_labels to iasm_clear_labels. + Rename cw_ha16 to iasm_ha16. + Rename cw_hi16 to iasm_hi16. + Rename cw_lo16 to iasm_lo16. + Rename cw_do_id to iasm_do_id. + Rename cw_asm_build_register_offset to iasm_build_register_offset. + Rename cw_asm_entry to iasm_entry. + * c-lex.c: Likewise + Rename cw_skip_to_eol to iasm_skip_to_eol. + Rename cw_asm_saved_token to iasm_saved_token. + Rename cw_insert_saved_token to iasm_insert_saved_token. + * c-parse.in: Likewise. + Rename CW_ASM_KEYWORD to IASM_ASM_KEYWORD. + Rename CW_ASM_BOL to IASM_BOL. + Rename CW_ASM_EOL to IASM_EOL. + Rename cw_asm_lineno to iasm_lineno. + Rename CW_SEE_OPCODE to IASM_SEE_OPCODE. + Rename c_parse_cw_maybe_prefix to c_parse_iasm_maybe_prefix. + Rename cw_save_location to iasm_save_location. + Rename cw_asm_stmt_nobol to iasm_stmt_nobol. + Rename cw_asm_stmt_list to iasm_stmt_list. + Rename cw_maybe_comment to iasm_maybe_comment. + Rename cw_identifier to iasm_identifier. + Rename cw_identifier1 to iasm_identifier1. + Rename cw_maybe_prefix to iasm_maybe_prefix. + Rename single_cw_asm_stmt to single_iasm_stmt. + Rename cw_asm_stmts to iasm_stmts. + Rename cw_asm_compstmt_start to iasm_compstmt_start. + Rename cw_asm_compstmt to iasm_compstmt. + Rename cw_asm_compstmt_nostart to iasm_compstmt_nostart. + Rename cw_asm_compstmt_contents_nonempty to iasm_compstmt_contents_nonempty. + Rename cw_asm_operands to iasm_operands. + Rename cw_nonnull_asm_operands to iasm_nonnull_operands. + Rename cw_asm_operand to iasm_operand. + Rename cw_asm_expr_no_commas to iasm_expr_no_commas. + Rename cw_asm_unary_expr to iasm_unary_expr. + Rename cw_asm_primary to iasm_primary. + Rename cw_asm_specbit to iasm_asm_specbit. + Rename cw_asm_typename_or_reserved to iasm_typename_or_reserved. + Rename cw_asm_c_build_component_ref to iasm_c_build_component_ref. + * config/asm.h: Likewise. + Rename cw_asm_none to iasm_none. + Rename cw_asm_decls to iasm_decls. + Rename cw_asm_asm to iasm_asm. + Rename CW_MAX_ARG to IASM_MAX_ARG. + Rename TARGET_CW_EXTRA_INFO to TARGET_IASM_EXTRA_INFO. + Rename cw_md_Extra_info to iasm_md_Extra_info. + Rename cw_md_extra_info to iasm_md_extra_info. + * config/darwin-protos.h: Likewise. + Rename CW_ASM_SPECIAL_LABEL to IASM_SPECIAL_LABEL. + * config/darwin.c: Likewise. + Rename darwin_cw_asm_special_label to darwin_iasm_special_label. + * i386/darwin.h: Likewise. + Rename CW_ASM_REGISTER_NAME to IASM_REGISTER_NAME. + * i386/i386-protos.h: Likewise. + * i386/i386.c: Likewise. + Rename cw_reg_comp to iasm_reg_comp. + Rename i386_cw_asm_register_name to i386_iasm_register_name. + Rename cw_x86_needs_swapping to iasm_x86_needs_swapping. + Rename x86_swap_operands to iasm_x86_swap_operands. + Rename cw_is_offset to iasm_is_offset. + Rename cw_combine_type to iasm_combine_type. + Rename cw_canonicalize_bracket_1 to iasm_canonicalize_bracket_1. + Rename cw_canonicalize_bracket to iasm_canonicalize_bracket. + Rename x86_canonicalize_operands to iasm_x86_canonicalize_operands. + Rename CW_PREFIX_SEP to IASM_PREFIX_SEP. + Rename x86_cw_print_prefix to iasm_x86_print_prefix. + Rename cw_print_op to iasm_print_op. + * i386/i386.h: Likewise. + * rs6000/rs6000-protos.h: Likewise. + * rs6000/rs6000.c: Likewise. + Rename rs6000_cw_asm_register_name to rs6000_iasm_register_name. + * rs6000/rs6000.h: Likewise. + * rs6000/rs6000.md: Likewise. + * function.c: Likewise. + * function.h: Likewise. + Rename cw_asm_function to iasm_asm_function. + Rename cw_asm_noreturn to iasm_noreturn. + Rename cw_asm_frame_size to iasm_frame_size. + * gimple-low.c: Likewise. + * global.c: Likewise. + * print-tree.c: Likewise. + * reload1.c: Likewise. + * scan-decls.c: Likewise. + * stmt.c: Likewise. + * tree-inline.c: Likewise. + * tree.h: Likewise. + Rename cw_asm_function_flag to iasm_asm_function_flag. + Rename cw_asm_noreturn_flag to iasm_noreturn_flag. + +2006-04-25 Devang Patel <dpatel@apple.com> + + Radar 4505813 + * config/i386/mmintrin.h (__m64): Update def. + +2005-04-21 Dale Johannesen <dalej@apple.com> + + Radar 4506160 + Bring in Joern Rennecke's fix from mainline: + PR middle-end/23135 + * reload.c (find_reloads_subreg_address): Pass down TYPE + unchanged. Change all callers except find_reloads_toplev. + +2006-04-18 Stuart Hastings <stuart@apple.com> + + Radar 4505290 + * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Use + pmode for SYMBOL_REFs. + +2006-04-18 Dale Johannesen <dalej@apple.com> + + Radar 4516827 + * tree-ssa-loop-ivopts.c (find_interesting_uses_address): + Apply Zdenek's fix from mainline (PR 26643). + +2006-04-18 Stuart Hastings <stuart@apple.com> + + Radar 4505290 + * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): New. + * config/t-darwin (crt3.o): Use it. + * config/rs6000/rs6000.md (call_indirect_nonlocal_sysv, + call_nonlocal_sysv, call_value_indirect_nonlocal_sysv, + call_value_nonlocal_sysv, sibcall_nonlocal_sysv, + sibcall_value_nonlocal_sysv): Use the P macro for 32/64 support. + +2006-04-18 Devang Patel <dpatel@apple.com> + + Radar 4475058 + * tree-ssa-forwprop.c (all_uses_are_replacable): Processing of one + worklist stmt may remove casts from another worklist item. + +2006-04-17 Devang Patel <dpatel@apple.com> + + Radar 4499790 + * c-lex.c (lex_string): Enable pascal strings for wchars. + +2006-04-12 Mike Stump <mrs@apple.com> + + Radar 4477426 4466768 4498501 + * c-common.c (cw_is_pseudo): Add. + (cw_asm_stmt): Handle _emit, opword and .machine better. + (print_cw_asm_operand): Handle .machine better. + * config/asm.h (struct cw_md_Extra_info, no_label_map): Add + (cw_is_pseudo): Add. + * i386/i386.c (cw_x86_needs_swapping): Handle pseduo instructions better. + (x86_canonicalize_operands): Likewise. + * i386/i386.h (TARGET_CW_EXTRA_INFO): Add. + (CW_IMMED_PREFIX): Handle pseduo instructions better. + (TARGET_CW_OP_CONSTRAINT): Add missing cmp.*{pd,ps,sd,ss} instructions. + +2006-04-06 Stuart Hastings <stuart@apple.com> + + Radar 4499627 + * gcc/config/i386/i386.md (gen_fix_trunc<mode>_i386_fisttp): + Remove 4209085 peephole. + +2006-03-30 Geoffrey Keating <geoffk@apple.com> + + Radar 4493694 + * c-opts.c (c_common_handle_option): Ignore -fsave-repository + when not using STABS. + +2006-03-28 Geoffrey Keating <geoffk@apple.com> + + Radar 4321213 + * doc/include/sourcecode.texi (Source Code): Rewrite for Subversion. + +2006-03-28 Stuart Hastings <stuart@apple.com> + + * gcc/config/i386/i386.c (preferred_stack_boundary): Add APPLE + LOCAL mainline comments. (ix86_function_regparm): Move APPLE + LOCAL comments. + +2006-03-24 Stuart Hastings <stuart@apple.com> + + Radar 4443946 + * gcc/global.c (global_alloc): Allow -fasm-blocks to clobber + the frame pointer. + +2006-03-24 Stuart Hastings <stuart@apple.com> + + Radar 4474259 + * gcc/config/i386/i386.c (cw_reg_comp): Use strcasecmp. + (x86_canonicalize_operands): Exception for movd. + +2006-03-22 Eric Christopher <echristo@apple.com> + Eric Albert <ejalbert@apple.com> + + Radar 4485288 + * config/i386/darwin.h (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Emit a + @GOTPCREL expression for x86_64. + +2006-03-22 Eric Christopher <echristo@apple.com> + Devang Patel <dpatel@apple.com> + + * config/darwin-driver.c (get_arch_name): If arch exists in + table do not call NXGetLocalArchInfo(). + +2006-03-19 Eric Christopher <echristo@apple.com> + Eric Albert <ejalbert@apple.com> + + * config/i386/darwin.h (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Copy from + config/darwin.h and disable for x86_64. + * config/rs6000/darwin.h (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Copy from + config/darwin.h. + * config/darwin.h (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Remove. + +2006-03-19 Eric Albert <ejalbert@apple.com> + + * config/i386/darwin.h (FUNCTION_PROFILER): Disable stub generation + for 64-bit. + +2006-03-12 Eric Christopher <echristo@apple.com> + + * config.gcc: Remove x86_64 specific changes. + * config/i386/darwin32.h: Remove. + * config/i386/darwin64.h: Ditto. + * config/i386/t-darwin32: Ditto. + * config/i386/t-darwin64: Ditto. + * config/i386/t-darwin: Add m64 multilib. + * config/i386/darwin.h: Revert previous x86_64 specific changes. + (TARGET_64BIT): Define. + (PTRDIFF_TYPE): Ditto. + (MAX_BITS_PER_WORD): Ditto. + (TARGET_OS_CPP_BUILTINS): Add 64-bit support. + (ASM_SPEC): Ditto. + (SUBTARGET_EXTRA_SPECS): Ditto. + (ASM_QUAD): Define. + * config/i386/i386.c (processor_alias_table): Add 64bit to possible + pentium-m and prescott chips. + * config/darwin-driver.c (arch_config_guess_map): Move x86_64 to i686 + processor. + +2006-03-03 Eric Christopher <echristo@apple.com> + + * config/i386/i386.h (JUMP_TABLES_IN_TEXT_SECTION): Fix typo. + * config/i386/darwin64.h (SIZE_TYPE): Redefine. + (PTRDIFF_TYPE): Ditto. + (WCHAR_TYPE): Ditto. + (WCHAR_TYPE_SIZE): Ditto. + * config/i386/i386.c (override_options): Clean up flag_pic. + (ix86_function_ok_for_sibcall): Fix conditional for TARGET_MACHO. + (ix86_expand_move): Ditto. + +2006-03-22 Eric Christopher <echristo@apple.com> + + Radar 4473966 + * config/darwin-driver.c (fnasm_seen): Remove. + (do_nasm): Ditto. + (main): Remove check for fnasm. Remove call. + +2006-03-22 Geoffrey Keating <geoffk@apple.com> + + Radar 4484188 + * config/darwin.h (STARTFILE_SPEC): Don't use -l for crt3.o. + * config/darwin-crt3.c: Rewrite entire file. + +2006-03-15 Geoffrey Keating <geoffk@apple.com> + + Radar 3992198 + * config/i386/darwin.h (C_COMMON_OVERRIDE_OPTIONS): New. + * config/rs6000/darwin.h (C_COMMON_OVERRIDE_OPTIONS): Call + SUBTARGET_C_COMMON_OVERRIDE_OPTIONS. + * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): NEw. + * config/darwin-crt3.c: Be empty if __PIC__ is not defined. + +2006-03-15 Devang Patel <dpatel@apple.com> + + Radar 4479522 + * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Do not + enable Altivec by default when deployment target is Mac OSX 10.5 + or higher. + +2006-03-13 Mike Stump <mrs@apple.com> + + Radar 4230099 + * c.opt (fvisibility-ms-compat): Add. + * doc/invoke.texi (-fvisibility-ms-compat): Add. + +2006-03-13 Stuart Hastings <stuart@apple.com> + + Radar 4474655 + * gcc/config/i386/i386.c (override_options): Remove + APPLE LOCAL for ix86_preferred_stack_boundary. + +2006-03-07 Stuart Hastings <stuart@apple.com> + + Radar 4457939 + * gcc/config/i386/i386.c (ix86_darwin_init_expanders): New. + * gcc/config/i386/darwin.h (ix86_darwin_init_expanders): Declare. + (INIT_EXPANDERS): Define. + +2006-03-07 Mike Stump <mrs@apple.com> + + Radar 4408780 + * c-common.c (cw_type_for): Add support for r*, x* and m* registers. + * config/i386/i386.h (TARGET_CW_OP_CONSTRAINT): Add or fix up + addps, addsd, addss, addsubpd, addsubps, andnpd, andnps, andpd, + andps, comisd, comiss, cvtdq2pd, cvtdq2ps, cvtpd2dq, cvtpd2pi, + cvtpd2ps, cvtpi2pd, cvtpi2ps, cvtps2dq, cvtps2pd, cvtps2pi, + cvtsd2ss, cvtsi2sd, cvtsi2ss, cvtss2sd, cvttpd2dq, cvttpd2pi, + cvttps2dq, cvttps2pi, divpd, divps, divsd, divss, fidivl, fidivrl, + paddq, pextrw, pinsrw, psubq, psubsb, psubsw, psubw, shld and + shrd. + +2006-03-03 Stuart Hastings <stuart@apple.com> + + * Radar 4425360 + * gcc/tree-ssa-dse.c (dse_optimize_stmt): Update from FSF trunk (see below). + +2005-12-16 Jeff Law <law@redhat.com> + + * tree-ssa-dse.c (dse_optimize_stmt): Correctly handle PHI nodes which + represent a use and definition of the same SSA_NAME. + +2006-02-28 Stuart Hastings <stuart@apple.com> + + * gcc/function.c (APPLE LOCAL) Fix. + * gcc/config/i386/darwin.h (BASIC_STACK_BOUNDARY): Delete. + * gcc/config/i386/i386.c (BASIC_STACK_BOUNDARY): Delete. + (APPLE LOCAL) Fix. + +2006-02-28 Devang Patel <dpatel@apple.com> + Dorit Nuzman <dorit@apple.com> + + Radar 4375453 + * targhooks.h (vector_alignment_reachable): New. + * targhooks.c (default_vector_alignment_reachable): New. + * target.h (gcc_target): Add vector_alignment_reachable. + * target-def.h (TARGET_VECTOR_ALIGNMENT_REACHABLE): New. + * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Avoid + peeling when natural alignment is not reachable due to known + misalignment. Use target hook to check unknown alignment. + * config/rs6000.c (TARGET_VECTOR_ALIGNMENT_REACHABLE, + rs6000_vector_alignment_reachable): New. + +2006-02-27 Stuart Hastings <stuart@apple.com> + + Radar 4356747 + (marked APPLE LOCAL "4356747 stack realign") + * gcc/config/i386/i386.c + (ix86_force_align_arg_pointer_string): Tweak decl. + +2006-02-27 Stuart Hastings <stuart@apple.com> + + Radar 4356747 + (marked APPLE LOCAL "4356747 stack realign") + * gcc/rtl.h (gen_tmp_stack_mem): Declare. + Fix up previous ChangeLog entry. + +2006-02-27 Stuart Hastings <stuart@apple.com> + + Radar 4356747 + (marked APPLE LOCAL "4356747 stack realign") + * doc/extend.texi (force_align_arg_pointer): Document. + * doc/invoke.texi (-mstackrealign): Document. + * config/i386/i386.h (TARGET_OPTIONS): Add -mstackrealgin. + * config/i386/i386.c (ix86_force_align_arg_pointer): New. + (ix86_force_align_arg_pointer_string): New. + (ix86_attribute_table): Add "force_align_arg_pointer" attribute. + (ix86_function_regparm): Compensate for new attribute. + (ix86_internal_arg_pointer): Check for new attribute. + +2005-11-02 Richard Henderson <rth@redhat.com> + + PR target/9350 + PR target/24374 + * dwarf2out.c (dwarf2out_reg_save_reg): New. + (dwarf2out_frame_debug_expr): Return after dwarf_handle_frame_unspec. + * function.c (assign_parms): Use calls.internal_arg_pointer. + (expand_main_function): Remove FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN + code. + * target-def.h (TARGET_INTERNAL_ARG_POINTER): New. + (TARGET_CALLS): Add it. + * target.h (struct gcc_target): Add calls.internal_arg_pointer. + * targhooks.c (default_internal_arg_pointer): New. + * targhooks.h (default_internal_arg_pointer): Declare. + * tree.h (dwarf2out_reg_save_reg): Declare. + * doc/tm.texi (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Remove. + * config/i386/i386.c (dbx_register_map): Add return column. + (dbx64_register_map, svr4_dbx_register_map): Likewise. + (TARGET_INTERNAL_ARG_POINTER, ix86_internal_arg_pointer): New. + (TARGET_DWARF_HANDLE_FRAME_UNSPEC, ix86_dwarf_handle_frame_unspec): New. + (ix86_function_ok_for_sibcall): Disable if force_align_arg_pointer. + (ix86_save_reg): Save force_align_arg_pointer. + (ix86_emit_save_regs): Make regno unsigned. + (ix86_emit_save_regs_using_mov): Likewise. + (ix86_expand_prologue): Handle force_align_arg_pointer. + (ix86_expand_epilogue): Likewise. + * config/i386/i386.h: (dbx_register_map): Update. + (dbx64_register_map, svr4_dbx_register_map): Update. + (struct machine_function): Add force_align_arg_pointer. + * config/i386/i386.md (UNSPEC_REG_SAVE, UNSPEC_DEF_CFA): New. + (UNSPEC_TP, UNSPEC_TLS_GD, UNSPEC_TLS_LD_BASE): Renumber. + (TARGET_PUSH_MEMORY peepholes): Disable if RTX_FRAME_RELATED_P. + +2006-02-27 Stuart Hastings <stuart@apple.com> + + Radar 4448096 + * gcc/config/i386/i386.md (fixuns_truncdfsi2, + fixuns_truncsfsi2, floatunsdidf2): Disable for 4-byte aligned stack. + * gcc/config/i386/i386.c (override_options): Set 4-byte + aligned stack for -fapple-kext. + (ix86_expand_convert_DF2SI_sse, ix86_expand_convert_SF2SI_sse, + ix86_expand_convert_DI2DF_sse): assert a 16-byte aligned stack. + * gcc/doc/invoke.texi (-fapple-kext): Document new + -fapple-kext behavior. + +2006-02-24 Mike Stump <mrs@apple.com> + + Radar 4456673 + * c-common.c (print_cw_asm_operand): Revert change from + Radar 4399388 as it breaks C++ ppc. + +2006-02-24 Mike Stump <mrs@apple.com> + + Radar 4298040 + * config/i386/i386.h (TARGET_CW_OP_CONSTRAINT): Improve fdivr, + fiadd, ficom, ficomp, fidiv, fidivr fild, fimul, fist, fistp, + fisttp, fisub, fisubr, fmul, idiv, inc, lds, les, lfs, lgs, lss. + Remove fildl, fildll, fistpll, fisttpll. + * config/i386/i386.c (x86_canonicalize_operands): Add DImode + support. Allow mov to be used on floats. + * c-common.c (m1, m2, m4, m2m4): Remove. + (m64, m16m32, m16m32m64, r16r32, r16r32r64): Add. + (rm64, rm8rm16rm32rm64): Add. + (print_cw_asm_operand, case INDIRECT_REF): Handle all + INDIRECT_REFs uniformly. + +2006-02-23 Eric Christopher <echristo@apple.com> + + Radar 4081414 + * global.c (local_reg_weight): Make HOST_WIDE_INT. + (global_alloc): Remove casts to double for local_reg_weight. + (find_reg): Use integer temporary for weight computation. + +2006-02-21 Geoffrey Keating <geoffk@apple.com> + + Radar 4444941 + * dwarf2out.c (gen_subprogram_die): Add DW_AT_MIPS_linkage_name + when it might not have been added previously. + +2006-02-16 Mike Stump <mrs@apple.com> + + Radar 4419735 + * c-common.c (cw_build_bracket): Add support for [word ptr esi]. + (cw_ptr_conv): Likewise. + * config/i386/i386.c (cw_canonicalize_bracket): Likewise. + (cw_canonicalize_bracket_1): Likewise. + (cw_combine_type): Add. + + (x86_canonicalize_operands): Don't add a modifier for + fstcw/fnstcw. + +2006-02-14 Eric Christopher <echristo@apple.com> + + Radar 4331439 + * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute): + Disable for 64-bit Mach-O. + * config/rs6000/darwin.h (SUBTARGET_OPTIONS): Disable longcall + only for Mach-O. + +2006-02-14 Mike Stump <mrs@apple.com> + + Radar 4443942 + * config/i386/i386.c (x86_canonicalize_operands): Don't add a + modifier for movq/movntq. + +2006-02-14 Mike Stump <mrs@apple.com> + + Radar 4415216 + * config/i386/i386.c (additional_names): Add. + (cw_reg_comp): Add. + (i386_cw_asm_register_name): Add support for upper case register + names. + +2006-02-14 Josh Conner <jconner@apple.com> + + Radar 4373419 + PR target/25376 + * varasm.c (function_section): Don't call select_section if a + section name is present. + +2006-02-13 Geoffrey Keating <geoffk@apple.com> + + Radar 4408439 + * opts.c (set_debug_level): DWARF is now best for GDB. + +2006-02-10 Dale Johannesen <dalej@apple.com> + + Radar 4420531 + * doc/invoke.texi: Warn that -ftree-loop-linear is buggy. + +2006-02-10 Dale Johannesen <dalej@apple.com> + + Radar 4430139 4431497 + * tree.h: Remove reversed_flag. + (record_layout_info_s): Add among_reversed_bitfields, + reversed_bitfield_type_size, reversed_bitfield_bitpos. + * stor-layout.c (place_field): Rewrite + reversed-bitfield logic to use them. + +2006-02-09 Devang Patel <dpatel@apple.com> + + Radar 4435472 + * config/darwin-driver.c (main.c): Check --save-temps. + +2006-02-09 Mike Stump <mrs@apple.com> + + Radar 4399388 + * config/i386/i386.c (cw_canonicalize_bracket_1): Add. + (cw_canonicalize_bracket): Improve. + (cw_is_offset): Add NEGATE_EXPR support. + (cw_print_op): Improve BRACKET_EXPR handling. + * c-common.c (print_cw_asm_operand): Add parens around + NEGATE_EXPR. + +2006-02-08 Stuart Hastings <stuart@apple.com> + + Radar 4176531 (revised version of 27jan06 patch) + * config/i386/i386.md (fixuns_trunc<mode>si2, + fixuns_truncdfhi2, fixuns_truncsfhi2): New. + (floatunsdidf2): Allow for 32-bit when optimize_size is off. + * config/i386/i386-protos.h + (ix86_expand_convert_DF2SI_sse, ix86_expand_convert_SF2SI_sse, + ix86_expand_convert_DI2DF_sse): New. + * config/i386/i386.c (ix86_expand_vector_move2, + gen_2_4_rtvec, ix86_expand_convert_DF2SI_sse, + ix86_expand_convert_SF2SI_sse, ix86_expand_convert_DI2DF_sse): New. + (x86_emit_floatuns): Call ix86_expand_convert_DI2DF_sse. + +2006-02-08 Mike Stump <mrs@apple.com> + + Radar 4407059 + * c-lex.c (c_lex_with_flags): Only recognize "offset" when doing + x86 assembly. + +2006-02-03 Mike Stump <mrs@apple.com> + + Radar 4432782 + * config/i386/i386.c (x86_canonicalize_operands): A movz with 2 + operands of the same size is converted to a normal mov. + +2006-02-02 Mike Stump <mrs@apple.com> + + Radar 4433955 + * c-common.c (cw_asm_get_register_var): Remove static. + (pointer_int_sum): Build up ARRAY_REFs when possible. + * config/i386/i386.c (cw_canonicalize_bracket): Let forms with + pointer types through to optimizer and print_operand. + (cw_print_op): Likewise. + * config/asm.h (cw_asm_get_register_var): Add. + * c-common.c (pointer_int_sum): Strip NOPs for C++. + +2006-02-01 Stuart Hastings <stuart@apple.com> + + Radar 4429317 + (SWB regressions; back out patch for Radar 4176531.) + * config/i386/i386.md (fixuns_trunc<mode>si2, + fixuns_truncdfhi2, fixuns_truncsfhi2): Remove. + (floatunsdidf2): Restore to previous. + * config/i386/i386-protos.h + (ix86_expand_convert_DF2SI_sse, ix86_expand_convert_SF2SI_sse, + ix86_expand_convert_DI2DF_sse): Remove. + * config/i386/i386.c (ix86_expand_vector_move2, + gen_2_4_rtvec, ix86_expand_convert_DF2SI_sse, + ix86_expand_convert_SF2SI_sse, ix86_expand_convert_DI2DF_sse): Remove. + (x86_emit_floatuns): Remove call to ix86_expand_convert_DI2DF_sse. + +2006-02-01 Devang Patel <dpatel@apple.com> + + Radar 4208007 + * tree-vectorizer.c (vect_print_dump_info): Add vect_dump check. + +2006-01-31 Devang Patel <dpatel@apple.com> + + Radar 4382844 + * tree-data-ref.c (analyze_array, init_data_ref, + find_data_references_in_loop): Set DR_TYPE. + * tree-data-ref.h (data_ref_type): New. + (struct data_reference): New member, data reference type. + (DR_TYPE): New. + * tree-vect-analyze.c (record_ptr_differ_p, + vect_base_object_differ_p): New. + (vect_base_addr_differ_p): Check base objects. + +2006-01-30 Stuart Hastings <stuart@apple.com> + + Radar 4176531 + * config/i386/i386.c (ix86_expand_convert_DF2SI_sse): + Fixes for -Werror. + +2006-01-28 Dale Johannesen <dalej@apple.com> + + Radar 4420068 + * stor-layout.c (place_field): don't adjust + rli->bitpos and rli->offset after a non-bitfield + whose type is zero-sized. + +2006-01-27 Stuart Hastings <stuart@apple.com> + + Radar 4176531 + * config/i386/i386.md (fixuns_trunc<mode>si2, + fixuns_truncdfhi2, fixuns_truncsfhi2): New. + (floatunsdidf2): Allow for 32-bit when optimize_size is off. + * config/i386/i386-protos.h + (ix86_expand_convert_DF2SI_sse, ix86_expand_convert_SF2SI_sse, + ix86_expand_convert_DI2DF_sse): New. + * config/i386/i386.c (ix86_expand_vector_move2, + gen_2_4_rtvec, ix86_expand_convert_DF2SI_sse, + ix86_expand_convert_SF2SI_sse, ix86_expand_convert_DI2DF_sse): New. + (x86_emit_floatuns): Call ix86_expand_convert_DI2DF_sse. + +2006-01-23 Devang Patel <dpatel@apple.com> + + Radar 4334498 + * dbxout.c (dbxout_init): Queue void type. + +2006-01-23 Dale Johannesen <dalej@apple.com> + + Radar 4390273 + * cfgloopmanip.c (create_loop_notes): Handle case + where we move a block outside the loop into the loop, + but the preceding block (the latch) was not moved. + +2006-01-20 Mike Stump <mrs@apple.com> + + Radar 4381918 + * c-decl.c (start_function): Avoid warnings about lack of return + in asm functions. + * config/i386/i386.c (ix86_save_reg): Don't save any registers for + asm functions. + (ix86_expand_prologue): Don't adjust the stack for asm functions. + (ix86_expand_epilogue): Don't generate most of the epilogue for an + asm function, but do generate a ret. + * function.c (assign_parms): Don't avoid doing work for asm + functions. + (expand_function_start): We don't need DECL_RTL for asm functions. + (expand_function_end): Use a naked return for asm functions. + (expand_function_end): + * gimple-low.c (lower_function_body): Don't generate a return; for + asm functions. + * tree-inline.c (inline_forbidden_p): Don't inline asm functions on ppc. + +2006-01-18 Stuart Hastings <stuart@apple.com> + + Radar 4405429 + * global.c (find_tied_stack_pseudo): Insist on a valid + memory address (no pseudos). + +2006-01-17 Geoffrey Keating <geoffk@apple.com> + + Radar 4383509 + * dwarf2out.c (debug_frame_section): New. + (output_call_frame_info): Use debug_frame_section. Pass it to + dw2_asm_output_offset. + (output_die): Pass appropriate section to dw2_asm_output_offset. + (output_compilation_unit_header): Likewise. + (output_pubnames): Likewise. + (output_aranges): Likewise. + * dwarf2asm.h (dw2_asm_output_offset): Add section parameter. + * dwarf2asm.c (dw2_asm_output_offset): Add base section parameter. + Pass to ASM_OUTPUT_DWARF_OFFSET. + * doc/tm.texi (SDB and DWARF): Add extra parameter to + ASM_OUTPUT_DWARF_OFFSET. Use @var to indicate metavariables. + +2006-01-13 Geoffrey Keating <geoffk@apple.com> + + Radar 4386531 + * stab.def (N_OSO): New. + * dbxout.c (dbxout_init): Output N_OSO stab always. + +2006-01-13 Stuart Hastings <stuart@apple.com> + + Radar 4386991 + * cp/typeck2.c (split_nonconstant_init): Remove APPLE LOCAL 4285232. + +2006-01-13 Dale Johannesen <dalej@apple.com> + + Radar 4401223 4401224 + * tree.h (record_layout_info_s): Add bitfield_seen. + * stor-layout.c (start_record_layout): Initialize it. + (place_field): When reversing bitfields: consider + rli->offset when computing current alignment; + maintain rli->bitfield_seen; adjust rli->bitpos and + rli_offset after a non-bitfield, but not if we saw + a bitfield earlier. + +2006-01-03 Geoffrey Keating <geoffk@apple.com> + + Radar 4392520 + * config/darwin.h (FRAME_BEGIN_LABEL): Use Lname if not for EH. + +2005-12-22 Dale Johannesen <dalej@apple.com> + + Radar 4387676 4388773 + * tree.h (TREE_FIELDS_REVERSED): Remove. + * varasm.c (output_constructor): Remove reference to it. + * stor-layout.c (place_field): Ditto. + +2005-12-22 Stuart Hastings <stuart@apple.com> + + * config/darwin.c (machopic_force_indirect_call_target): + Remove extra APPLE LOCAL marker. + * config/rs6000/rs6000.c (output_call): Remove blank line. + +2005-12-21 Stuart Hastings <stuart@apple.com> + + Radar 4380289, 4299630 + * config/rs6000/rs6000.c (add_compiler_branch_island): + Remove one parameter. (rs6000_output_mi_thunk): Update call + to add_compiler_branch_island. (macho_branch_islands): + Rewrite. (output_call): Rewrite. + * config/darwin-protos.h + (machopic_force_indirect_call_target): New. + * config/darwin.c (machopic_force_stub): New. + (machopic_force_indirect_call_target): Use it. + (machopic_indirect_call_target): Ditto. + +2005-12-20 Dale Johannesen <dalej@apple.com> + + Radar 4385068 + * global.c (expand_preferences): Reduce aggressiveness + of previous preference enhancement on x86, and disable + altogether on ppc. + +2005-12-15 Geoffrey Keating <geoffk@apple.com> + + Radar 4370117 + * config/darwin.h (DEBUG_FRAME_SECTION): Mark as 'regular,debug'; + move to __DWARF segment. + (DEBUG_INFO_SECTION): Move to __DWARF segment. + (DEBUG_ABBREV_SECTION): Move to __DWARF segment. + (DEBUG_ARANGES_SECTION): Move to __DWARF segment. + (DEBUG_MACINFO_SECTION): Move to __DWARF segment. + (DEBUG_LINE_SECTION): Move to __DWARF segment. + (DEBUG_LOC_SECTION): Move to __DWARF segment. + (DEBUG_PUBNAMES_SECTION): Move to __DWARF segment. + (DEBUG_STR_SECTION): Move to __DWARF segment. + (DEBUG_RANGES_SECTION): Move to __DWARF segment. + * config/darwin.c (darwin_emit_unwind_label): Don't emit global + symbols in debug sections. + +2005-12-14 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4278774 + * c-common.def: Add new expression code AT_ENCODE_EXPR. + +2005-12-14 Eric Christopher <echristo@apple.com> + + Radar 4363479 + * tree-ssa-forwprop.c (all_uses_are_replacable): Fold replaced + statements. + +2005-12-14 Dale Johannesen <dalej@apple.com> + + Radar 4271691 (partial) + * global.c (expand_preferences): Enhance pseudo + preferences for vectors. + * reload1.c (reload): Make sure reused stack slots + are expanded correctly. + +2005-12-13 Mike Stump <mrs@apple.com> + + * Revert 2005-12-07 Devang Patel <dpatel@apple.com> Radar 4137741 + +2005-12-13 Stuart Hastings <stuart@apple.com> + + * config/rs6000/rs6000.c (macho_branch_islands): Add APPLE LOCAL. + +2005-12-12 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4373486 + + * config/darwin.h (objc_section_init): Remove initialization of + C* sections. + +2005-12-12 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4261575 + + * config/i386/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Undid the setting for + darwin_constant_cfstrings. Tests need be modified instead. + +2005-12-12 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4261575 + + * config/i386/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Set default value + for darwin_constant_cfstrings + +2005-12-09 Mike Stump <mrs@apple.com> + + Radar 4371551 + * c-common.c (print_cw_asm_operand): Handle complex operands better. + (cw_simple_expr): New. + * c-typeck.c (build_array_ref): Also handle exprs with no type. + * config/i386/i386.c (cw_canonicalize_bracket): Add support for + more complex offsets. + +2005-12-09 Zdenek Dvorak <rakdver@gcc.gnu.org> + Dale Johannesen <dalej@apple.com> + + Radar 3791237 + * toplev.c (process_options): Make -funroll-loops + turn on -fweb. + * doc/invoke.texi (-fsplit-ivs-in-unroller, -fweb, + -funroll-loops): Document this behavior. + +2005-12-09 Zdenek Dvorak <rakdver@gcc.gnu.org> + + Radar 4233898 + * tree-chrec.c (chrec_fold_multiply_poly_poly): Associate chrecs + correctly. + +2005-12-09 Stuart Hastings <stuart@apple.com> + + Radar 4299630 + * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Fixed APPLE LOCAL. + +2005-12-08 Dale Johannesen <dalej@apple.com> + + Radar 4285232 + * cp/typeck2.c (split_nonconstant_init): Don't + zero out object which is fully initialized. + +2005-12-08 Devang Patel <dpatel@apple.com> + Geoffrey Keating <geoffk@apple.com> + + Radar 4298879 + * config/rs6000/darwin.h (PROCESSOR_DEFAULT): Tune for G5 instructions + by default when not optimizing for size. + (SUBTARGET_OVERRIDE_OPTIONS): Enable Altivec by default when deployment + target is Mac OSX 10.5 or higher. + +2005-12-07 Devang Patel <dpatel@apple.com> + + Radar 4333194 + * tree-vect-analyze.c (vect_compute_data_ref_alignment): Check + misalignment where natural alignment is not reachable using loop + peeling. + +2005-12-07 Geoffrey Keating <geoffk@apple.com> + + Radar 4370117 + * config/darwin.h (DEBUG_INFO_SECTION): Mark as 'debug'. + (DEBUG_ABBREV_SECTION): Mark as 'debug'. + (DEBUG_ARANGES_SECTION): Mark as 'debug'. + (DEBUG_MACINFO_SECTION): Mark as 'debug'. + (DEBUG_LINE_SECTION): Mark as 'debug'. + (DEBUG_LOC_SECTION): Mark as 'debug'. + (DEBUG_PUBNAMES_SECTION): Mark as 'debug'. + (DEBUG_STR_SECTION): Mark as 'debug'. + (DEBUG_RANGES_SECTION): Mark as 'debug'. + +2005-12-07 Devang Patel <dpatel@apple.com> + Ziemowit Laski <zlaski@apple.com> + + Radar 4137741 + * Makefile.in (c-lex.o): Revert langhooks.h dependency. + (langhooks.o): Revert debug.h dependency. + * c-lex.c: Do not include langhooks.h. + (fe_file_change): Revert lang_hooks calls; issue debug_hooks + calls only if defer_file_change_debug_hooks flag is cleared. + (c_lex_with_flags): Propagate line number information for + CPP_BINCL and CPP_EINCL tokens. + * langhooks-def.h: Revert Radar 4133801 changes. + * langhooks.c: Likewise. + * langhooks.h: Likewise. + +2005-12-07 Dale Johannesen <dalej@apple.com> + + Radar 4349512 + * tree-ssa-forwprop.c (substitute_single_use_vars): + Check that COND_EXPRs being substituted into have the + expected form. + +2005-12-06 Stuart Hastings <stuart@apple.com> + + * config/rs6000/rs6000.md (longjump): New pattern. + * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Use it. + +2005-12-06 Dale Johannesen <dalej@apple.com> + + Radar 4332318 + * config/i386/sse.md (sse_movhlps): Reverse operands for + 2nd and 3rd alternatives. + +2005-12-05 Mike Stump <mrs@apple.com> + + Radar 4357979 + * doc/invoke.texi (C Dialect Options): Improve -fnested-functions wording. + * doc/extend.texi (Nested Functions): Note that on darwin nested + functions are off by default. + +2005-12-03 Mike Stump <mrs@apple.com> + + * c-parse.in (nested_function): Don't give two errors for nested functions. + (notype_nested_function): Likewise. + +2005-12-02 Mike Stump <mrs@apple.com> + + Radar 4363798 + * config/i386/i386.c (x86_canonicalize_operands): Break out + bracket canonicalization from here... + * config/i386/i386.c (cw_canonicalize_bracket): to here. Add more + canonicalizations. + (cw_is_offset): Add offsets built with PLUS_EXPR and MINUS_EXPR. + +2005-12-01 Dale Johannesen <dalej@apple.com> + + Radar 4350099 + * stor-layout.c (place_field): Keep TREE_FIELDS_REVERSED + in the field nodes, not the RECORD node. + * varasm.c (output_constructor): Ditto. + +2005-12-01 Alan Modra <amodra@bigpond.net.au> + + Radar 4345871 + ` PR middle-end/24950 + * expmed.c (store_bit_field): Don't attempt to insv a field + larger than the reg. + +2005-11-30 Mike Stump <mrs@apple.com> + + Radar 4357979 + * c-parse.in (nested_function): Add -fnested-functions to turn on + nested function support. + (notype_nested_function): Likewise. + * c.opt (-fnested-functions): Likewise. + * doc/invoke.texi (C Dialect Options): Likewise. + * config/darwin.h (LINK_COMMAND_SPEC): Pass -allow_stack_execute + when nested functions are on. + +2005-11-30 Dale Johannesen <dalej@apple.com> + Andrew Pinski <pinskia@physics.uc.edu> + + Radar 4347034 + * combine.c (find_split_point): Sign extend bitmask + when changing bitfield assignment to IOR of AND. + +2005-11-29 Mike Stump <mrs@apple.com> + + Radar 4358678 + * config/i386/i386.h (TARGET_CW_OP_CONSTRAINT): Add "r" to jmp constraint. + +2005-11-28 Mike Stump <mrs@apple.com> + + Radar 4357008 + * varasm.c (darwin_constant_cfstring_p): Add. + * config/i386/i386.c (legitimate_constant_p): Fix C building on linux. + (legitimate_address_p): Likewise. + (legitimize_address): Likewise. + (ix86_expand_move): Likewise. + (x86_field_alignment): Likewise. + +2005-11-18 Eric Christopher <echristo@apple.com> + + Radar 4324160 + * config/i386/i386.md (*zero_extendqihi2_movzbw): Avoid partial + register stalls by zero extending to the full register. + +2005-11-17 Devang Patel <dpatel@apple.com> + + Radar 4343764 + * objc/lang-specs.h: Process asm specs while creating symbol repository. + * objcp/lang-specs.h: Process asm specs while creating symbol repository. + * cp/lang-specs.h: Process asm specs while creating symbol repository. + +2005-11-17 Dale Johannesen <dalej@apple.com> + + Radar 4321079 + * global.c (remove_invalidated_death_notes): New. + * reload1.c (reload): Call it. + +2005-11-15 Mike Stump <mrs@apple.com> + + Radar 4344359 + * c-common.c (cw_extra_clobbers): Add. + (struct cw_op_clobber): Add. + (CW_MAX_CLOBBERS): Add. + (TARGET_CW_EXTRA_CLOBBERS): Add. + (cw_op_clobber_comp): Add. + (cw_asm_stmt): Add call to cw_extra_clobbers. + * config/i386/i386.h (TARGET_CW_EXTRA_CLOBBERS): Add. + +2005-11-15 Dale Johannesen <dalej@apple.com> + + * config/darwin-c.c (darwin_pragma_call_on_load): + Give an error for 64-bit targets. + (darwin_pragma_call_on_unload): Ditto. + +2005-11-15 Dale Johannesen <dalej@apple.com> + + * cfghooks.c (split_block): Copy loop_father. + * cfgloopmanip.c (create_loops_notes): Create preheaders. + +2005-11-14 Dale Johannesen <dalej@apple.com> + + * expmed.c (store_bit_field): Add offset unconditionally for + memory targets. + (extract_bit_field): Don't force extzv or extv operand into + a register if field is too big. + +2005-11-11 Evan Cheng <evan.cheng@apple.com> + + Radar 4299173 + * loop-invariant.c (find_invariant_insn): Find more loop + invariant insns. + +2005-11-10 Mike Stump <mrs@apple.com> + + Radar 4300193 + * c-common.c (cw_num_constraints): Add. + (cw_set_constraints): Add. + (cw_asm_stmt): Call cw_set_constraints to update contraints. + (cw_type_for): Add. + (print_cw_asm_operand): Transform registers into VAR_DECLs for x86. + + * config/i386/i386.h (TARGET_CW_OP_CONSTRAINT): xchg's 2nd arg is an update. + +2005-11-10 Dale Johannesen <dalej@apple.com> + + Radar 4321079 + * local-alloc.c (block_alloc): Disable local RA for vectors. + * global.c (pseudo_preferences): New. + (TEST_PSEUDO_PREF): New. + (SET_PSEUDO_PREF): New. + (CLEAR_PSEUDO_PREF): New. + (global_alloc): Allocate, free pseudo_preferences. Mark pseudo- + preferenced regs as nonconflicting when each is assigned to just once. + (expand_preferences): Apply transitive property to pseudo_preferences. + (find_reg): Propagate pseudo_preferences when a pseudo is assigned a + register. + (mirror_conflicts): Make pseudo_preferences symmetrical, like conflicts. + (set_preference): Look under SUBREG for vector-vector copies. Treat + these as creating a preference. + (find_tied_stack_pseudo): New. + (dump_conflicts): Dump pseudo_preferences and copy preferences. + * reload1.c (from_global): New. + (reload): Save it. + (alter_reg): Use it. Ask GRA for a stack slot already used by a + pseudo-preferenced register, before creating a new one. + +2005-11-10 Dale Johannesen <dalej@apple.com> + + Radar 4321079 + * cfgloopmanip.c: Include option.h. + (straighten_blocks): New. + (create_loop_notes): Call it. Look for and straighten + a specific 2-block loop pattern. + * Makefile.in (cfgloopmanip.o): Add options.h dependency. + +2005-11-08 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4330422 + + * c-common.h (objc_non_volatilized_type): New declaration + * stub-objc.c (objc_non_volatilized_type): New stub. + +2005-11-03 Evan Cheng <evan.cheng@apple.com> + + * config/i386/i386-protos.h (standard_sse_constant_opcode) Declare + * config/i386/i386.c (standard_sse_constant_p) Check for vector + constant -1. + (standard_sse_constant_opcode) New function to return the opcode + associated with standard_sse_constant_p. + (ix86_expand_vector_move) Use standard_sse_constant_p. + * config/i386/predicates.md (vector_move_operand) Use + standard_sse_constant_p. + (nonimmediate_or_0_operand) Return true if operand is a nonimmediate + or a constant zero. + * config/i386/sse.md (*mov<mode>_internal) Use + standard_sse_constant_opcode. + (*movv4sf_internal) Use standard_sse_constant_opcode. + (*movv2df_internal) Use standard_sse_constant_opcode. + (sse_movlhps) Replace vector_move_operand with + nonimmediate_or_0_operand. + (*sse_concatv2sf) Replace vector_move_operand with + nonimmediate_or_0_operand. + (*vec_setv4sf_0) Replace vector_move_operand with + nonimmediate_or_0_operand. + (sse2_loadlpd) Replace vector_move_operand with + nonimmediate_or_0_operand. + (*vec_concatv2df) Replace vector_move_operand with + nonimmediate_or_0_operand. + (sse2_loadld) Replace vector_move_operand with + nonimmediate_or_0_operand. + (*vec_concatv2di) Replace vector_move_operand with + nonimmediate_or_0_operand. + * testsuite/gcc.apple/4283414.c: New. + +2005-11-01 Fariborz Jahanian <fjahanian@apple.com> + + objc new meta-data definitions - part 1 + + * common.opt: Add new -fobjc-abi-version=n option. + +2005-11-01 Evan Cheng <evan.cheng@apple.com> + + Radar 4317709 + * stor-layout.c (place_field) A bitfield field cannot straddle + multiple units. + +2005-11-01 Stuart Hastings <stuart@apple.com> + + * config/darwin.h (fix-and-continue): Added APPLE LOCAL for comma. + +2005-11-01 Stuart Hastings <stuart@apple.com> + + * config/i386/i386.h (Unused): Fix gratuitous APPLE LOCAL change. + +2005-10-31 Devang Patel <dpatel@apple.com> + + Radar 4053179 + Backport from Mainline. + 2005-04-14 Richard Henderson <rth@redhat.com> + * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): Split ... + (ix86_expand_sse_fp_minmax): ... from ... + (ix86_expand_fp_movcc): ... here. + (ix86_expand_sse_movcc): Rewrite from ix86_split_sse_movcc. + * config/i386/i386-protos.h: Update. + * config/i386/i386.md (UNSPEC_IEEE_MIN, UNSPEC_IEEE_MAX): New. + (sse_setccsf, sse_setccdf): Allow before reload. + (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): Remove. + (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): Remove. + (ieee_sminsf3, ieee_smaxsf3, ieee_smindf3, ieee_smaxdf3): New. + * config/i386/sse.md (andsf3, nandsf3, iorsf3, xorsf3): New. + (anddf3, nanddf3, iordf3, xordf3): New. + * config/i386/i386.c (ix86_expand_sse_cmp): Split out from ... + (ix86_expand_sse_movcc): ... here. Take cmp as a pre-computed + register. + (ix86_expand_fp_movcc): Update to match. + (ix86_expand_fp_vcond, ix86_expand_int_vcond): New. + * config/i386/i386-protos.h: Update. + * config/i386/sse.md (vcondv4sf, vcondv2df): New. + (vcond<SSEMODE124>, vcondu<SSEMODE12>): New. + +2005-10-31 Devang Patel <dpatel@apple.com> + + Radar 4310696 + * dbxout.c (stabstr_I): Truncate anonymous aggregate names + in C++ and Objective-c++. + +2005-10-25 Evan Cheng <evan.cheng@apple.com> + + Radar 4209085 + * config/i386/i386.md (fix_trunc<mode>_i387_fisttp peephole2): Emit + fisttp for double signed integer conversion if source operand is in + ST(0). + * testsuite/gcc.apple/4209085.c: New. + +2005-10-25 Eric Christopher <echristo@apple.com> + + Import from mainline: + 2005-09-28 Mark Mitchell <mark@codesourcery.com> + + PR 17886 + * expmed.c (expand_shift): Move logic to reverse rotation + direction when rotating by constants ... + * optabs.c (expand_binop): ... here. + * config/i386/i386.md (rotrdi3): Handle 32-bit mode. + (ix86_rotrdi3): New pattern. + (rotldi3): Handle 32-bit mode. + (ix86_rotldi3): New pattern. + +2005-10-19 Eric Christopher <echristo@apple.com> + + Radar 3907496 + Import from mainline: + 2005-08-10 Eric Christopher <echristo@apple.com> + + * config/rs6000/rs6000.c (mems_ok_for_quad_peep): Rewrite. + * config/rs6000/rs6000.md (*lfq_power2, *stfq_power2): Use + V2DFmode. + +2005-10-10 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4301047 + + * c-parse.in (objc_quals): Build objc qualifier list same way + as gcc-3.3 + +2005-10-11 Geoffrey Keating <geoffk@apple.com> + + Radar 4271575 + * config/rs6000/darwin.h (DARWIN_CRT2_SPEC): New. + (SUBTARGET_EXTRA_SPECS): Define %(darwin_crt2). + * config/i386/darwin.h (SUBTARGET_EXTRA_SPECS): Define %(darwin_crt2) + as empty. + * config/darwin.h (STARTFILE_SPEC): Use %(darwin_crt2) to possibly + link in crt2.o. + +2005-10-12 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4291785 + + * c-common.h (objc_get_interface_ivars): New declaration + (objc_detect_field_duplicates): Ditto. + * c-decl.c (finish_struct): Check for duplicate among + flattened fields if objective-c. + * stub-objc.c (objc_get_interface_ivars): New stub. + (objc_detect_field_duplicates): Ditto. + +2005-10-07 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4204796 + * c-parse.in (typespec_nonreserved_nonattr): Remove volatile from + 'volatalized' type used in a typeof operator. + +2005-10-04 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4281748 + * c-common.h (objc_check_global_decl): New declaration. + * stub-objc.c (objc_check_global_decl): New stub. + * c-decl.c (start_decl): Check for redeclaration of class name. + * c-parse.in (after_type_declarator): Recognize CLASSNAME. + +2005-10-17 Geoffrey Keating <geoffk@apple.com> + + Radar 4122763 + * libgcc2.c [LIBCC_KEXT] (panic): Declare properly. + [LIBCC_KEXT] (abort): Don't abort with no string. + +2005-10-28 Stuart Hastings <stuart@apple.com> + + Radar 4164563 + * config/darwin.c (darwin_macho_att_stub, + darwin_macho_att_stub_switch): New. + * config/darwin.h (-matt-stubs): New flag. + (machopic_picsymbol_stub3_section): New __IMPORT section. + (MACHOPIC_NL_SYMBOL_PTR_SECTION): New. + (machopic_nl_symbol_ptr_section): Move non-lazy pointers to + __IMPORT section. + * config/i386/darwin.h (-matt-stubs): New flag. + (SUBTARGET_OVERRIDE_OPTIONS): Handle -matt-stubs. + * config/i386/i386.c (macho_output_stub): Generate AT&T style + (self-modifying) stubs. + * config/i386/i386.h (MACHOPIC_NL_SYMBOL_PTR_SECTION): Override + machopic_nl_symbol_ptr_section with new __IMPORT section. + +2005-10-28 Dale Johannesen <dalej@apple.com> + + Radar 4318818 + * varasm.c (output_constructor): Do not check + DECL_BIT_FIELD when reversing initializer list for + types with reversed_flag set. + +2005-10-28 Dale Johannesen <dalej@apple.com> + + Radar 4319602 + * cfgloopmanip.c (create_loop_notes): Add code to move + code logically inside a loop but physically outside, + to a place physically inside. + * ifcvt.c (find_if_case_1): Adjust cost test for ppc. + (find_if_case_2): Ditto. + +2005-10-21 Dale Johannesen <dalej@apple.com> + + * opts.c (set_flags_from_O): Revert 10-17 change. + * regrename.c (regrename_optimize): Ditto. + * ifcvt.c (find_if_case_1, find_if_case_2): Ditto. + * cfgloopmanip.c (create_loop_notes): Ditto, also + 10-19 and 10-20 changes. + +2005-10-20 Devang Patel <dpatel@apple.com> + + Radar 4307634 + * dbxout.c (struct typeinf): New member, q_type_number. + (struct qualified_typeinf): New. + (q_typevec, q_typevec_len, q_type_number); New. + (dbxout_reusable_type, dbxout_note_q_type, + dbxout_next_q_type_number): New. + (dbxout_init): Initialize q_typevec. + (dbxout_type_index): Check reusable type. + (dbxout_partial_type): Remove dbxout_next_type_number call. + Use dbxout_note_q_type(). + (dbxout_complete_type): Remove dbxout_next_type_number call. + (dbxout_pointer_type): Same. + (dbxout_file_type): Same. + (dbxout_function_type): Same. + (dbxout_reference_type): Same. + +2005-10-20 Dale Johannesen <dalej@apple.com> + + Radar 4307420 + * cfgloopmanip.c (create_loop_notes): Handle fallthru to EXIT_BLOCK. + +2005-10-19 Dale Johannesen <dalej@apple.com> + + Radar 4307392 + * cfgloopmanip.c (create_loop_notes): Handle jump tables. + +2005-10-17 Dale Johannesen <dalej@apple.com> + + Radar 4203984 + * ifcvt.c (find_if_case_1): Adjust cost test for ppc. + (find_if_case_2): Ditto. + * regrename.c (regrename_optimize): Change to do more + renaming. + * opts.c (set_flags_from_O): Reenable regrename at -O3. + * cfgloopmanip.c (create_loop_notes): Add code to move + code logically inside a loop but physically outside, + to a place physically inside. + +2005-10-14 Eric Christopher <echristo@apple.com> + + Radar 4302779 + * config/darwin-driver.c (do_nasm): Include -o in + explicit args. + +2005-10-14 Eric Christopher <echristo@apple.com> + + Radar 4302595 + * config/darwin-driver.c (do_nasm): Specify all + arguments to nasm explicitly. + +2005-10-14 Devang Patel <dpatel@apple.com> + + Radar 4300871 + * dbxout.c (dbxout_start_source_file): Flush type queue. + +2005-10-13 Stuart Hastings <stuart@apple.com> + + Radar 4278461 + * config/darwin.c (machopic_legitimize_pic_address): Set + regs_ever_live[current_PIC_reg]. + +2005-10-13 Devang Patel <dpatel@apple.com> + + R4281384 + * dbxout.c (dbxout_partial_type): Partially describe method types. + +2005-10-11 Evan Cheng <evan.cheng@apple.com> + + Radar 4228294 + Radar 4296479 + * varasm.c (output_constructor): Reverse initializer list for + types with reversed_flag set (revision). + +2005-10-12 Devang Patel <dpatel@apple.com> + + Radar 4278903 + * gcc.c (invoke_as): Process ASM_SPEC when -fsave-repository + is seen. + +2005-10-11 Dale Johannesen <dalej@apple.com> + + Radar 4134111 + * config/i386/i386.md (cmpstrsi): Modify for Darwin. + (darwin_cmpstrqi_nz_1): New. + (*darwin_cmpstrqi_nz_1): New. + (darwin_cmpstrqi_1): New. + (*darwin_cmpstrqi_nz_1): New. + +2005-10-11 Geoffrey Keating <geoffk@apple.com> + + Radar 4276161 + * config/darwin.h (REAL_LIBGCC_SPEC): Link in shared libgcc depending + on -mmacosx-version-min setting. + +2005-10-11 Devang Patel <dpatel@apple.com> + + Radar 4117876 + * config/rs6000.c (expand_block_clear, expand_block_move): Remove + vectorized memset/memcpy warning. + +2005-10-10 Stuart Hastings <stuart@apple.com> + + Radar 4271187 + * config/rs6000/rs6000.c (macho_branch_islands): Avoid fixed-size buffers. + +2005-10-07 Evan Cheng <evan.cheng@apple.com> + + Radar 4109832 + * config/i386/xmmintrin.h (_MM_TRANSPOSE4_PS): Rewrite using high/low + moves and unpack to speed up. + +2005-10-07 Stuart Hastings <stuart@apple.com> + + Radar 4205103 + * config/i386/i386.c (ix86_value_regno): Moved APPLE LOCAL marker. + +2005-10-06 Devang Patel <dpatel@apple.com> + + Radar 4257091 + * c-common.c (vector_types_compatible_p): Check REAL_TYPE's precision. + +2005-10-06 Dale Johannesen <dalej@apple.com> + + Radar 4284121 + * function.c (assign_parms): Fix RETURN_POPS_ARGS call. + +2005-10-04 Devang Patel <dpatel@apple.com> + + Radar 4278470 + * dbxout.c (dbxut_init): Flush type queue. + (type_queue, type_queue_index, type_queue_size): GTY'ed. + (dbxout_queue_type): Use ggc_realloc. + (dbxout_free_type_queue): Use ggc_free. + +2005-01-03 Devang Patel <dpatel@apple.com> + + Radar 4278903 + * gcc.c (invoke_as): Supply -arch when -fsave-repository is seen. + +2005-01-03 Devang Patel <dpatel@apple.com> + + Radar 4135682 + * invoke.texi: Avoid using specific version number. + +2005-10-01 Dale Johannesen <dalej@apple.com> + + Radar 4279065 + * config/i386/sse.md (sse_storeqv4si): Remove subreg. + +2005-09-30 Devang Patel <dpatel@apple.com> + + Radar 4274611 + * config/darwin-driver.c (do_nasm): New. + (fasm_seen): New variable. + (main): Check -fnasm. + +2005-09-28 Devang Patel <dpatel@apple.com> + + Radar 4263352 + * config/darwin-driver.c (GTY): Define empty macro. + +2005-09-29 Ziemowit Laski <zlaski@apple.com> + + Radar 4136489 + * config/darwin-c.c (darwin_cpp_builtins): Define a '__weak' + macro if Objective-C GC is being used. + * config/darwin.c (darwin_handle_objc_gc_attribute): Correctly + propagate GC attribute to ..._TYPE nodes, even for functions + and arrays. + * config/darwin.h (SUBTARGET_ATTRIBUTE_TABLE): Restrict use of + GC attribute to ..._TYPE nodes. + * doc/invoke.texi: Document '-fobjc-gc' switch. + +2005-09-28 Devang Patel <dpatel@apple.com> + + Radar 4263352 + * config/darwin.h (darwin_reverse_bitfields): Add GTY marker. + +2005-09-28 Devang Patel <dpatel@apple.com> + + Radar 4258406 + * c-parse.in (nested_function): Report an error, instead of a warning. + (nontype_nested_function): Same. + * c.opt (Wnested-funcs): Remove. + * doc/invoke.texi: Remove Wnested-funcs documentations. + +2005-09-28 Dale Johannesen <dalej@apple.com> + + Radar 4228294 (revision) + * stor-layout.c (layout_type): Move setting of TREE_FIELDS_REVERSED... + (place_field): ...to here. + +2005-09-26 Ziemowit Laski <zlaski@apple.com> + + Radar 4232445 + * dbxout.c (dbxout_partial_type): Insert missing + TYPE_STUB_DECL accessor. + (dbxout_partial_type): Use TYPE_NAME instead of DECL_NAME + when accessing a ..._TYPE node. + +2005-09-26 Fariborz Jahanian <fjahanian@apple.com> + + PR target/23847 + Radar 4263935 + * config/rs6000/rs6000.c (rs6000_function_value): Parallel pattern + for __complex__ double in -mcpu=G5 mode. + +2005-09-26 Stuart Hastings <stuart@apple.com> + + * config/i386/i386.c (ix86_comp_type_attributes): Moved APPLE LOCAL marker. + +2005-09-26 Mike Stump <mrs@apple.com> + + Radar 4273781 + * c-common.c (cw_asm_stmt): Add prefix support. + (cw_is_prefix): Add. + (cw_do_id): Add. + (get_cw_asm_label): Make static. + * c-common.h (cw_asm_stmt): Move to asm.h + (cw_asm_build_register_offset): Likewise. + (cw_asm_label): Likewise. + (prepend_char_identifier): Likewise. + (clear_cw_asm_labels): Likewise. + (cw_asm_reg_name): Likewise. + (get_cw_asm_label): Likewise. + (cw_asm_entry): Likewise. + (cw_asm_typename_or_reserved): Likewise. + (cw_asm_c_build_component_ref): Likewise. + (cw_get_identifier): Likewise. + (cw_build_bracket): Likewise. + (flag_cw_asm_blocks): Likewise. + * config/asm.h: Move various declarations to here. + * c-parse.in (c_parse_cw_maybe_prefix): Add. + (cw_skip_to_eol): Move decl to asm.h. + (cw_maybe_prefix): Add. + (single_cw_asm_stmt): Add prefix support. + * c-typeck.c (build_external_ref): Move some logic to cw_do_id. + * config/i386/i386.h (CW_SYNTH_CONSTRAINTS): Remove trailing ;. + (CW_IS_PREFIX): Add. + * config/i386/i386-protos.h (x86_cw_print_prefix): Add. + * config/i386/i386.c (x86_cw_print_prefix): Add. + + Radar 4271787 + * c-common.c (CW_CANONICALIZE_OPERANDS): Arrange to save the + opcode before translation for constraint lookups. + (cw_asm_stmt): Likewise. + * config/i386/i386.c (CW_CANONICALIZE_OPERANDS): Likewise. + +2005-09-24 Mike Stump <mrs@apple.com> + + Radar 4248159 + * config/i386/i386.c (x86_canonicalize_operands): Add (a+b) and + (a-b) support for memory references. + +2005-09-23 Fariborz Jahanian <fjahanian@apple.com> + + * Radar 4266982 + * combine.c (make_extraction): Check for valid use of subreg. + +2005-09-23 Mike Stump <mrs@apple.com> + + Radar 4259442 + * c-common.c (cw_split_next): Add. + (print_cw_asm_operand): Add extra * parameter. + (cw_asm_get_register_var): Likewise. + (struct Extra): Add. + (cw_x86_needs_swapping): Split out from canonicalize_operands. + (canonicalize_operands): Handle %st(i) style references for x86. + Add code to support opcode modifiers based upon arguments. + Rewrite movsx to movs. + Rewrite movzx to movz. + (cw_constraint_for): Pass number of arguments. + Add checking code to ensure that opcode table is sorted. + Handle option second opcode. + (cw_process_arg): Add extra * and op_num parameters. + Allow contrainst to be constructed from context. + (cw_asm_stmt): Add extra data structure and pass it around to + callees. + (print_cw_asm_operand): Add extra * parameter. + Prefix constants with "$" unless they are part of an offset. + Double up % on register names. + Don't track ST(i) lifetimes yet. + Handle .+24 as we do for .-24. + Ensure that offsets are not output with "$". + Track context information and set constraints appropriately. + Don't use labels for non-labels like lo16, hi16 and ha16. + * config/asm.h: Add. + * c-common.h (cw_split_next): Add. + (cw_insert_saved_token): Add. + * c-lex.c (cw_insert_saved_token): Add. + (c_lex_with_flags): When starting a decl, we don't need a BOL to + see the start of an instruction. When switching to cw_asm_asm, + also arrange for a BOL token to be returned. Arrange to split + [.+-] from opcode when PREV_WHITE. + * cp-parse.in (cw_identifier1): Add. + (cw_identifier): Add trailing ' ' on identifiers to split out + [.+-] from opcode. + (cw_asm_compstmt): Handle opcode int. + (cw_asm_primary): Add '.'. + (yylexname): Handle opcode int. + * c-typeck.c (cw_asm_typename_or_reserved): Likewise. + * config/i386/i386.c (i386_cw_asm_register_name): Don't double up + on '%' as a register prefix, as then it doesn't match a register + name. + (cw_memory_clobber): Move to here. + (cw_x86_needs_swapping): Likewise. + (x86_swap_operands): Likewise. + (x86_canonicalize_operands): Likewise. + (cw_is_offset): Likewise. + (cw_print_op): Split out from print_cw_asm_operand. + * config/i386/i386.h (TARGET_CW_OP_CONSTRAINT): Massive fixups, + switch operand ordering. + (TARGET_CW_EXTRA_INFO): Add. + (TARGET_CW_EXTRA_INFO): Add. + (CW_SYNTH_CONSTRAINTS): Add. + (TARGET_CW_PRINT_OP): Add. + (CW_CANONICALIZE_OPERANDS): Add. + (CW_SEE_OPCODE): Add. + (CW_IMMED_PREFIX): Add. + (CW_HIDE_REG): Add. + (CW_SEE_OFFSET): Add. + (CW_SEE_NO_OFFSET): Add. + * doc/extend.texi (Asm Blocks and Functions): Update for x86. + * tree-cfg.c (set_bb_for_stmt): Handle label rewritting anywhere in opcode. + +2005-09-22 Stuart Hastings <stuart@apple.com> + + Radar 4231761 + * doc/invoke.texi: Tweak documentation for -Oz. + +2005-09-22 Stuart Hastings <stuart@apple.com> + + Radar 4205103 + * config/i386/i386.c (ix86_function_value, ix86_value_regno): Backport new + three-argument versions from FSF mainline, add support for __attribute__ ((regparmandstackparm)). + (ix86_handle_cdecl_attribute, ix86_handle_regparm_attribute, ix86_handle_cconv_attribute): + Replace the first two with the third, from FSF mainline; added support for + __attribute__ ((regparmandstackparm)). + (ix86_function_regparm): Check for __attribute__ ((regparmandstackparm)). + (ix86_function_sseregparm): Backported from FSF mainline, add check for + __attribute__ ((regparmandstackparm)). + (ix86_comp_type_attributes, init_cumulative_args, function_arg_advance, function_arg, + TARGET_FUNCTION_VALUE): Backport changes from FSF mainline. + (ix86_function_ok_for_sibcall): Backport new version from FSF mainline. + (ix86_darwin_make_regparmandstackparmee, ix86_darwin_regparmandstackparm_mangle_name, + ix86_darwin_regparmandstackparm_dup_fndecl, ix86_darwin_regparmandstackparm_extern_decl, + ix86_darwin_redirect_calls, ix86_darwin_re_context_1, ix86_darwin_re_context, + ix86_darwin_regparmandstackparm_wrapper): New. + (ix86_darwin_handle_regparmandstackparm, ix86_darwin_redirect_calls): New; support for + __attribute__ ((regparmandstackparm)). + * cgraphunit.c (cgraph_finalize_function): Use ix86_darwin_handle_regparmandstackparm. + (cgraph_finalize_compilation_unit): Use ix86_darwin_redirect_calls. + * config/i386/i386-protos.h(ix86_function_value): Updated extern decl. + * config/i386/i386.h (MASK_SSEREGPARM, TARGET_SSEREGPARM): New. + (FUNCTION_VALUE): Backported three-argument version from FSF mainline. + (struct ix86_args): Backported float_in_sse field from FSF mainline. + (SSE_REGPARM_MAX): Added Darwin/x86-specific support for __attribute__ ((regparmandstackparm)). + (ix86_darwin_handle_regparmandstackparm, ix86_darwin_redirect_calls): Declare. + * doc/extend.texi (regparmandstackparm): Documentation for __attribute__ ((regparmandstackparm)). + +2005-09-21 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4043818 (pr19653) + * /config/i386/mmx.md (mov<mode>_internal): Make cost of 'y' (mmx_regs) + computable. + +2005-08-31 Richard Henderson <rth@redhat.com> + + Radar 4043818 (pr19653) + * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Force subregs + into a pseudo before applying gen_lowpart. + +2005-08-30 Richard Henderson <rth@redhat.com> + + Radar 4043818 (pr19653) + PR target/23630 + * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Use gen_lowpart + whenever the mode sizes match. + +2005-08-23 Paolo Bonzini <bonzini@gnu.org> + + Radar 4043818 (pr19653) + PR middle-end/23517 + * fold-const.c (fold_convert): Use VIEW_CONVERT_EXPR to convert + between vectors. + * convert.c (convert_to_integer, convert_to_vector): Likewise. + +2005-09-19 Devang Patel <dpatel@apple.com> + + Radar 4252541 + * config/rs6000/rs6000.c (rs6000_expand_binop_builtin, + rs6000_expand_ternop_builtin, rs6000_expand_unop_builtin): Check expr + arguments. + +2005-09-16 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4232296 + * config/rs600.c (rs6000_emit_move): Check for a valid symbol_ref + before attempt to generate indirect pic stub. + +2005-09-15 Devang Patel <dpatel@apple.com> + + dbxout_type rewrite. + * dbxout.c (enum typestatus): Add TYPE_QUEUED. + (dbxout_type):Rewrite. Use dbxout_partial_type and dbxout_complete_type + to do actual work. + (dbxout_partial_type, dbxout_complete_type, dbxout_type_xref, + dbxout_pointer_type, dbxout_void_type, dbxout_integer_type, + dbxout_real_type, dbxout_char_type, dbxout_complex_type, + dbxout_file_type, dbxout_function_type, dbxout_reference_type, + dbxout_next_type_number, dbxout_cross_ref_type_p, dbxout_type_with_name, + dbxout_queue_type, dbxout_free_type_queue): New. + (dbxout_function_end): Flush type queue. + (dbxout_end_source_file): Same. + * final.c (debug_flush_symbol_queue): Same. + * debug.h (dbxout_flush_type_queue): New. + +2005-09-15 Devang Patel <dpatel@apple.com> + + Radar 4241538 + * config/rs600.c (altivec_cov_rt_2p): Check NULL_TREE. + +2005-09-08 Dale Johannesen <dalej@apple.com> + + Radar 4220129 + * config/i386/emmintrin.h (_mm_set1_epi8): Redefine. + +2005-09-08 Dale Johannesen <dalej@apple.com> + + Radar 4229407 + * passes.c (rest_of_compilation): Reduce stack alignment + to 8 bytes, not 4, for leaves containing doubles. + +2005-09-08 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4168635 + * config/i386/i386.c (ix86_delegitimize_address): Recognize + pattern for darwin-style PIC address of a constant. + +2005-09-07 Dale Johannesen <dalej@apple.com> + + Radar 4228294 + * tree.h (struct tree_common): Add reversed_flag. + (TREE_FIELDS_REVERSED): New. + * stor-layout.c (layout_type): Set it. + * varasm.c (output_constructor): Reverse initializer list for + types with reversed_flag set. + +2005-08-30 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4233894 + pr 22348 (fsf mainline) + * tree-ssa-loop-niter.c (number_of_iterations_cond): + constant fold the delta. + +2005-08-31 Mike Stump <mrs@apple.com> + + Radar 4239455 + * i386/i386.h (TARGET_CW_OP_CONSTRAINT): Sort. + +2005-08-31 Dale Johannesen <dalej@apple.com> + + Radar 4212458 + * loop-iv.c (iv_number_of_iterations): Fix overflow check for + loops that count down. + +2005-08-31 Stuart Hastings <stuart@apple.com> + + Radar 4231773 + * opts.c (decode_options): Add -Oz. + +2005-08-30 Eric Christopher <echristo@apple.com> + + Radar 4223128 + * config/i386/i386.h (TARGET_CW_OP_CONSTRAINT): Add remaining opcodes. + +2005-08-30 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4235138 + * c-common.c (print_cw_asm_operand): Generate tree for nested + member operand. + * c-typeck.c (cw_asm_c_build_component_ref): Build component ref + for nested member operand. + +2005-08-29 Eric Christopher <echristo@apple.com> + + Radar 4223128 + * config/i386/i386.h (TARGET_CW_OP_CONSTRAINT): Finish through m. + Add constraints to all existing opcodes. + +2005-08-27 Dale Johannesen <dalej@apple.com> + + Radar 4217585 + * config/i386/i386.c (nocona_cost): Increase MOVE_RATIO. + +2005-08-26 Ian Lance Taylor <ian@airs.com> + + Radar 4229621 + * combine.c (make_extraction): Avoid reference outside object. + +2005-08-26 Ziemowit Laski <zlaski@apple.com> + + Radar 4080358 + * config/darwin.c (darwin_construct_objc_string): Place string literals + in the CFString hash table even if they will be used for NSConstantString + objects instead. + +2005-08-25 Dale Johannesen <dalej@apple.com> + + Radar 4216496 4229407 + * passes.c (MaxAlignForThisBlock): Rewrite to descend + into nested blocks. + (LargestAlignmentOfVariables): Ditto. + +2005-08-23 Stuart Hastings <stuart@apple.com> + + Radar 4224227 + * opts.c (decode_options): Disable optimize_size after cmdline processing. + +2005-08-24 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4211430 + * stmt.c (expand_asm_operands): Make static entry symbol + local and not extern. + +2005-08-23 Eric Christopher <echristo@apple.com> + + Radar 4223128 + * config/i386/i386.h (TARGET_CW_OP_CONSTRAINT): Add through "l". + +2005-08-23 Dale Johannesen <dalej@apple.com> + + Radar 4221664 + * convert.c (convert_to_real): Don't convert + (float)floor(double d) to floorf((float)d). + +2005-08-23 Mike Stump <mrs@apple.com> + + Radar 4211971 + * c-common.c (cw_is_offset): Add support for complex memory + addressing. + (cw_build_bracket): Likewise. + (print_cw_asm_operand): Likewise. + * c-common.def (BRACKET_EXPR): Likewise. + * c-common.h (cw_build_bracket): Likewise. + * c-parse.in (cw_asm_primary): Likewise. + * c-typeck.c (build_array_ref): Likewise. + (parser_build_binary_op): Likewise. + * config/i386/i386.h (TARGET_CW_OP_CONSTRAINT): Add a few more + opcodes. + +2005-08-22 Mike Stump <mrs@apple.com> + + Radar 4211954 + * c-opts.c (c_common_init): Add support for the h suffix to + identify hex integers. + +2005-08-19 Mike Stump <mrs@apple.com> + + Radar 4211947 + * c-lex.c (c_lex_with_flags): Add support for ; comments. + (cw_skip_to_eol): Likewise. + * c-parse.in (cw_asm_stmt_list): Likewise. + (cw_maybe_comment): Likewise. + (cw_asm_compstmt): Likewise. + (cw_save_location): Redo how line numbers are saved. + (cw_asm_stmt): Likewise. + (cw_asm_stmt_nobol): Likewise. + (single_cw_asm_stmt): Likewise. + * c.opt (-fms-asms): Add support for ; comments. + * config/i386/darwin.h: Likewise. + + * c-common.c (cw_memory_clobber): Assume everything clobbers + memory for now. + +2005-08-22 Dale Johannesen <dalej@apple.com> + + Radar 4225116 + * calls.c (store_one_arg): Disable sibcalls when incoming args + are clobbered before being used. + +2005-08-18 Eric Christopher <echristo@apple.com> + + Radar 4223128 + * config/i386/i386.h (TARGET_CW_OP_CONSTRAINT): Add a-c instructions. + +2005-08-18 Mike Stump <mrs@apple.com> + + Radar 4214021 + * c-common.c (cw_process_arg): Add more x86 support. + (cw_asm_label): Add support for @ <num>. + * c-lex.c (c_lex_with_flags): Add more x86 support. + * c-parse.in (cw_asm_stmt_nobol): Add. + (cw_asm_label): Add '@' CONSTANT. + (cw_asm_compstmt): Add asm nop support. + * config/i386/i386.h (TARGET_CW_OP_CONSTRAINT): Add jmp. + +2005-08-17 Devang Patel <dpatel@apple.com> + + Radar 4215975 + * dbxout.c (anon_place_holder): New. + (dbxout_init): Initialize anon_place_holder. + (dbxout_type): Use anon_place_holder. + (dbxout_symbol): Check anon_place_holder. + +2005-08-16 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4218231 + * c-common (print_cw_asm_operand): Add support for variable + component reference. + +2005-08-16 Dale Johannesen <dalej@apple.com> + + Radar 4216812 + * tree-sra.c (scalarize_init): Add integer_copy handling. + +2005-08-16 Eric Christopher <echristo@apple.com> + + Radar 4219129 + * c-common.c (TARGET_CW_OP_CONSTRAINT): New. Add default. + (cw_constraint_for): Use. + * config/rs6000/rs6000.h: Define. + * config/i386/i386.h: Ditto. + +2005-08-15 Mike Stump <mrs@apple.com> + + Radar 4211978 + * c-common.c (swap_operands): Add. + (cw_constraint_for): Add x86 support. + (cw_process_arg): Add x86 support. + (cw_asm_stmt): Add x86 suppport. + * config/i386/darwin.h (CW_ASM_REGISTER_NAME): Add. + * config/i386/i386-protos.h (i386_cw_asm_register_name): Add. + * config/i386/i386.c (i386_cw_asm_register_name): Add. + +2005-08-15 Dale Johannesen <dalej@apple.com> + + Radar 4214718 + * c.opt: Add -Wnested-functions. + * c-parse.in: Warn on nested functions if this is set. + * doc/invoke.texi: Document new flag. + +2005-08-15 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4204303 + * config/rs6000/rs6000.h (INITIAL_FRAME_ADDRESS_RTX): Define. + +2005-08-12 Devang Patel <dpatel@apple.com> + + Radar 4209318 + * dbxout.c (dbxout_type): Update this function to force type definition + in new LSYM stab. + (dbxout_symbol): Set TREE_ASM_WRITTEN only if did_output is true. + +2005-08-10 Dale Johannesen <dalej@apple.com> + + Radar 3893112 + * config/rs6000/rs6000.c (params.h): Include. + (optimization_options): Set sra-max-structure-size. + +2005-08-09 Stuart Hastings <stuart@apple.com> + + Radar 4209014 + * opts.c (set_flags_from_O): Limit auto-inlined functions to 30 insns. + * invoke.texi: Adjust documentation to match. + +2005-08-08 Devang Patel <dpatel@apple.com> + + Radar 4200243 + * config/i386/i386.c (override_options): Do not check RC_FORCE_SSE3 env. + variable. + (optimization_options): Check RC_FORCE_SSE3 env. variable. + +2005-08-08 Devang Patel <dpatel@apple.com> + + Radar 4200243 + * config/i386/i386.c (override_options): Check RC_FORCE_SSE3 env. variable. + +2005-08-08 Dale Johannesen <dalej@apple.com> + + Radar 4206991 + * config/i386/i386.c (ix86_preferred_reload_class): + Disallow int constants in SSE registers. + +2005-08-08 Devang Patel <dpatel@apple.com> + + Radar 4208760 + * config/rs6000.darwin.h (CC1_SPEC): Ignore -msse3. + +2005-08-05 Devang Patel <dpatel@apple.com> + + * dbxout.c (dbxout_function_end): Enable N_ENSYM in -gused mode. + (dbxout_begin_prologue): Enable N_BNSYM in -gused mode. + +2005-08-05 Stuart Hastings <stuart@apple.com> + + Radar 4200438 + * invoke.texi: Added documentation noting differing + inliner behavior between C++ and C. + +2005-08-05 Stuart Hastings <stuart@apple.com> + + Radar 4200438 + * opts.c (set_flags_from_O): Set inline heuristic according to input language. + * rs6000.c (optimization_options): Remove -Os inline heuristic fudging. + * i386.c (optimization_options): Likewise. + +2005-08-04 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4205758 + * config/rs6000/rs6000.c (rs6000_emit_prologue): No prologue code + with CW nofralloc directive. + (rs6000_emit_epilogue): No epilogue code with CW nofralloc directive. + +2005-08-05 Dale Johannesen <dalej@apple.com> + + * cfgexpand.c (construct_init_block): Roll in fix + for PR 21562 from mainline. + +2005-08-05 Stuart Hastings <stuart@apple.com> + + Radars 4037817, 4178585, 4200438 + * rs6000.c (optimization_options): Set -Os inlining heuristics to 30,30. + * i386.c (optimization_options): Likewise. + +2005-08-04 Devang Patel <dpatel@apple.com> + + Radar 4196953 + * dbxout.c (dbxout_type): Emit type defs in new LSYM stab. + +2005-08-04 Ziemowit Laski <zlaski@apple.com> + + Radar 4174833 + * dbxout.c (dbxout_type): For Objective-C classes, do not + output superclass metadata before outputting the fields. + +2005-08-03 Dale Johannesen <dalej@apple.com> + + * reload.c (push_reload): Better handling for + PREFERRED_OUTPUT_RELOAD_CLASS. + (find_dummy_reload): Ditto. + (find_reloads): Ditto. + * regclass.c (struct reg_pref): Redocument prefclass. + (regclass): Allow for memory being better than any regclass. + (record_reg_classes): Allow for prefclass being NO_REGS. + * i386.c (ix86_preferred_reload_class): Improved handling for SSE. + (ix86_preferred_output_reload_class): New. + * i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): New. + * i386.md (cmpfp_i_mixed, cmpfp_iu_mixed, pushsf, pushsf_rex64, + movsf_1, pushdf_nointeger, pushdf_integer, movdf_nointeger, + movdf_integer, pushxf_integer, movxf_integer, extendsfdf2_mixed, + truncxfsf2_mixed, truncxfsf2_i387, truncxfdf2_mixed, + truncxfdf2_i387, floatsisf2_mixed, floatdisf2_mixed, floatsidf2_mixed, + floatdidf2_mixed, absnegsf2_mixed, absnegdf2_mixed, fp_jcc_1_mixed, + fp_jcc_2_mixed, fop_sf_comm_mixed, fop_sf_1_mixed, fop_df_comm_mixed, + fop_df_1_mixed, sqrtsf2_mixed, sqrtdf2_mixed, movsfcc_1_387, + movdfcc_1, movdfcc_1_rex64): Remove register hints. + * i386-protos.h (ix86_preferred_output_reload_class): New. + +2005-08-03 Ziemowit Laski <zlaski@apple.com> + + Radar 4174833 + * dbxout.c (dbxout_type_fields): For Objective-C classes, + recursively output fields for superclasses first. + +2005-08-03 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4188876 + * c-typeck.c (pop_init_level): Issue diagnostic on non-constant + vector initializers. + +2005-08-03 Dale Johannesen <dalej@apple.com> + + * loop.c (scan_loop): Disable optimizations of loops that + start with a jump into their middle. + +2005-08-01 Devang Patel <dpatel@apple.com> + + Radar 4168568 + * c-incpatch.c (hmap_construct_pathname): Remove case mismatch warning. + +2005-07-30 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4152603 + * c-common.c (c_common_att): New entry added for "nodebug". + (handle_nodebug_attribute): New function. + * tree-inline.c (call_location_p, call_location): New fields in + struct inline_data. + (copy_body_r): Set new location of copied tree, if available. + (expand_call_inline): If callee's '__nodebug__' attribute is + set, use caller's input_location for copied trees. + * config/i386/emmintrin.h: All intrinsic functions have + "__nodebug__" Added to their declarations. + * config/i386/mmintrin.h: Ditto. + * config/i386/pmmintrin.h: Ditto. + * config/i386/xmmintrin.h: Ditto. + +2005-07-29 Devang Patel <dpatel@apple.com> + + Radar 4134283 + * c-decl.c (ext_block): New static variable. + (c_write_global_declarations): Optimize before wrapping up globals. + +2005-07-28 Stuart Hastings <stuart@apple.com> + + Radar 4178585 + * config/rs6000/rs6000.c (optimization_options): Override -Os + inlining default, set to 90. + * config/i386/i386.c (optimization_options): Raise from 30 to + match above. + +2005-07-26 Dale Johannesen <dalej@apple.com> + + * postreload-gcse.c (alloc_mem): Start CUID numbering at 1. + +2005-07-22 Devang Patel <dpatel@apple.com> + + Radar 4167759 + * common.opt (flimit-debug-info): New. + * doc/invoke.texi: Document -flimit-debug-info. + +2005-07-21 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4187164 + * c-common.c (print_cw_asm_operand): Recognize and handle a PIC address + expression. + * c-typeck.c (parser_build_binary_op): Generate PIC address tree. + * function.c (init_function_start): Move fralloc info to asm function + declaration. + * print-tree.c (print_node): Print extra info for asm function. + * reload1.c (init_elim_table): asm function does not need frame + pointer. + * tree-cfg.c (set_bb_for_stmt): Make PIC label unique inside PIC + expression. + * config/rs6000/rs6000.c (rs6000_stack_info): Set stack size according to + setting of fralloc directive. + * rs6000.md (return, return_internal_si): Don't generaate 'blr' with + nofralloc. + +2005-07-19 Devang Patel <dpatel@apple.com> + + Radar 4183032 + * tree-vectorizer.c (vect_loop_location): New. + (vect_print_dump_info): Use vect_loop_location. + (vectorize_loops): Set vect_loop_location. + +2005-07-15 Devang Patel <dpatel@apple.com> + + Radar 4182529 + * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Use absolute + value of distance vector. + +2005-07-14 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4178242 + * c-common.c (print_cw_asm_operand): Add a new argument + to return the label declaration in. + (cw_asm_label): Add label declaration, if any, to asm_expr + tree. + (get_cw_asm_label): Build and return a label declaration tree + instead of a node_identifier for the label. + (cw_asm_labelno): Make it static. + * c-common.h: Remove extern declaration of cw_asm_labelno. + * c-typeck.c (parser_build_binary_op): Check for a spurious label + decl tree and return an error node instead. + (cw_asm_c_build_component_ref): If a label declaration, get its + underlying identifier node. + * tree-cfg.c (set_bb_for_stmt): Generate a unique label name for the + asm_expr's generic label name, if any. + * tree.def (ASM_EXPR): Define a new field for it. + * tree.h (ASM_LABEL): New macro definition. + * cp/semantics.c (finish_asm_stmt): Building of ASM_EXPR tree requires a + new argument. + +2005-07-14 Dale Johannesen <dalej@apple.com> + + Radar 4174405 + * calls.c (expand_call): Don't let sibcalls clobber caller's + stack space on x86. + +2005-07-14 Stuart Hastings <stuart@apple.com> + + Radar 4150746 + * config/i386/i386.c (ix86_file_end): Move get_pc_thunks to + __TEXT,__textcoal_nt. + * config/darwin.h: Remove darwin_textcoal_nt_section. + * config/darwin-proto.h: Likewise. + +2005-07-14 Dale Johannesen <dalej@apple.com> + + Radar 4095526 + * rs6000.c: Fix local comment. + +2005-07-14 Stuart Hastings <stuart@apple.com> + + Radar 4177798 + * build_gcc: Default to -msse2 -march=pentium-m -mtune=prescott. + +2005-07-13 Dale Johannesen <dalej@apple.com> + + Radar 4175845 + * tree-ssa-loop-im.c (for_each_index): Permit + VIEW_CONVERT_EXPR with int constant operand. + +2005-07-12 Dale Johannesen <dalej@apple.com> + + Radar 4095526 (mainline) + * expr.c (compress_float_constant): Add cost check. + * config/rs6000.c (rs6000_rtx_cost): Adjust FLOAT_EXTEND cost. + +2005-07-12 Devang Patel <dpatel@apple.com> + + Radar 4172062 : Take 2 + * final.c (final_start_function): Supress debug hooks while making symbol + repository. + (final_scan_insn): Same. + * passes (rest_of_handle_final): Same. + * dbxout.c (dbxout_function_end): Do not disable FUN stabs when symbol + separation is ON. + (dbxout_begin_prologue): Do not disable BNSYM stabs when symbol separation + is ON. + (dbxout_source_line): Do not disable SLINE stabs when symbol separation is ON. + (dbxout_symbol, dbxout_symbol_location): Do not disable STSYM and LCSYM stabs + when symbol separation is ON. + (dbxout_output_lbrac, dbxout_output_rbrack): Do not disable LBRAC and RBRAC + stabs when symbol separation is ON. + + +2005-07-08 Devang Patel <dpatel@apple.com> + + Radar 4172150 + * dbxout.c (dbxout_type): Check Objective-C++ lang also. + +2005-07-08 Dale Johannesen <dalej@apple.com> + + Radar 4173477, 4173754, 4173757, 4173774, 4174030 + * tree-sra.c (decide_block_copy): Disallow integer + copies bigger than DImode. + +2005-07-07 Devang Patel <dpatel@apple.com> + + Radar 4172062 + * dbxout.c (dbxout_function_end): Disable FUN stabs when symbol + separation is ON. + (dbxout_begin_prologue): Disable BNSYM stabs when symbol separation is + ON. + (dbxout_source_line): Disable SLINE stabs when symbol separation is ON. + (dbxout_symbol, dbxout_symbol_location): Disable STSYM and LCSYM stabs + when symbol separation is ON. + (dbxout_output_lbrac, dbxout_output_rbrack): Disable LBRAC and RBRAC + stabs when symbol separation is ON. + +2005-07-06 Dale Johannesen <dalej@apple.com> + Andrew Pinski <pinskia@physics.uc.edu> + + Radar 4158356 + * tree-sra.c (enum copy_how): New. + (struct sra_elt): Change use_block_copy to how_to_copy. + (instantiate_element_integer): New. + (decide_block_copy): Rewrite logic. + (generate_copy_inout): Use how_to_copy. + (generate_element_zero): Ditto. + (scalarize_copy): Ditto. + (scalarize_init): Ditto. + (scalarize_ldst): Ditto. + +2005-06-30 Devang Patel <dpatel@apple.com> + + * doc/invoke.texi: Document -fsave-repository. + +2005-06-30 Devang Patel <dpatel@apple.com> + + * c-opts.c (c_common_handle_option): Handle OPT_fsave_repository. + Set flag_pch_file. + * c.opt (fsave-repository=): New. + * dbxout.c: Use dbx_out_file instead of asm_out_file. + (dbx_out_file): New. + (dbxout_init): Open dbx_out_file for writing. + (emit_bincl_stab): Emit EXCL and BINCL stabs with checksum. + (dbxout_finish): Close dbx_out_file. + * flags.h (flag_pch_file, flag_save_repository): New. + * gcc.c (pch): Invoke as when -fsave-repository is used. + * toplev.c (asm_file_name2, flag_pch_file, flag_save_repository): New. + (init_asm_output): Handle -fsave-repository. + +2005-06-30 Fariborz Jahanian <fjahanian@apple.com> + + * opts.c (decode_options): Don't set -fforce-mem with -O2 and more. + +2005-06-30 Stuart Hastings <stuart@apple.com> + + Radar 4131077, copied from FSF mainline. + * config/i386/mmintrin.h: Mark vector intrinsics always_inline. + * config/i386/emmintrin.h: Likewise. + * config/i386/pmmintrin.h: Likewise. + * config/i386/xmmintrin.h: Likewise. + +2005-06-28 Dale Johannesen <dalej@apple.com> + + Radar 4163069 + * config/darwin-c.c (darwin_pragma_options): + Add handling for second parameter. + +2005-06-22 Ziemowit Laski <zlaski@apple.com> + + Radar 4154928 + * c-common.h (objc_common_type): New prototype. + * c-typeck.c (build_conditional_expr): For two ObjC pointer types, + use their ObjC common type. + * stub-objc.c (objc_common_type): New stub. + +2005-06-21 Ziemowit Laski <zlaski@apple.com> + + Radar 4149909 + * config/darwin.c (machopic_select_section): constant ObjC string + objects now always have type "__builtin_ObjCString". + +2005-06-20 Dale Johannesen <dalej@apple.com> + + Radar 4087330 + * calls.c (expand_call): Enable indirect sibcalls unconditionally. + * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow + indirect sibcalls on Darwin when PLT considerations prohibit + them on other OSs. + +2005-06-20 Stuart Hastings <stuart@apple.com> + + Radar 4146993 + * config/i386/i386.c (machopic_output_stub): Use only %ecx. + +2005-06-20 Dale Johannesen <dalej@apple.com> + + Radar 4151537 + * config/rs6000/rs6000.md (UNSPEC_LD_MPIC_L): New. + * config/rs6000/darwin.md (load_macho_picbase_label): New. + (load_macho_picbase_label_si): New. + (load_macho_picbase_label_di): New. + * config/rs6000/rs6000.c (objc_method_using_pic): Remove. + (name_encodes_objc_method_p): Rewrite. + (rs6000_emit_prologue): Rewrite "ObjC method use of R12". + +2005-06-15 Devang Patel <dpatel@apple.com> + + Undo + 2005-06-04 Devang Patel <dpatel@apple.com> + * dbxout.c (struct dbx_file): Apply GTY markers. + (dbxout_init, dbxout_start_source_file): Use ggc_alloc instead of xmalloc. + +2005-06-15 Geoffrey Keating <geoffk@apple.com> + + * varasm.c (replace_weak): Make 'static'. + +2005-06-10 Dale Johannesen <dalej@apple.com> + + Fixes from mainline. + Radar 4137102, 4141805, 4104248 + * config/i386/i386.md (movqi_1): Fix case where source + is memory and destination EDI. + * tree-nested.c (finalize_nesting_tree_1): Disable + warn_padded around layout_type call. + * cfgcleanup.c (try_crossjump_to_edge): update_forwarder_flag for + src2 if src2 has been split. + +2005-06-04 Devang Patel <dpatel@apple.com> + + * dbxout.c (struct dbx_file): Apply GTY markers. + (dbxout_init, dbxout_start_source_file): Use ggc_alloc instead of xmalloc. + +2005-06-04 Dale Johannesen <dalej@apple.com> + + Radar 4131839 (from mainline) + * config/rs6000/rs6000.c (insn-addr.h): Don't include. + (no_global_regs_above): New. + (rs6000_emit_prologue): Use it; cosmetic formatting fixes. + (rs6000_emit_epilogue): Use it; cosmetic formatting fixes. + (rs6000_conditional_register_usage): Don't put Darwin PIC + register in global_regs. + (rs6000_override_options): Add -fgcse-las to -fast. + Remove clear of -fspeculative-prefetching. + (rs6000_rtx_mult_cost): Remove. + (rs6000_stack_info, rs6000_emit_prologue, rs6000_emit_epilogue): + Adjust LOCAL comments. + (rs6000_is_costly_dependence): Look under ZERO/SIGN_EXTEND for MEMs. + * config/rs6000/rs6000-protos.h (rs6000_rtx_mult_cost): Remove. + +2005-06-03 Geoffrey Keating <geoffk@apple.com> + + * gcc.c (macosx_vers_tbl): Handle '10.5'. + +2005-06-02 Stuart Hastings <stuart@apple.com> + + * simplify-rtx.c(simplify_binary_operation, simplify_immed_subreg): + Back out these extra checks (Chablis branch). + +2005-05-31 Stuart Hastings <stuart@apple.com> + + Copy 2004-05-19 patch from Karma mainline onto Chablis branch: + Radar 4124883, 4122515 + * config/i386/i386.md (UNSPEC_LDQ, UNSPEC_MOVQ, UNSPEC_STOQ): New. + * config/i386/sse.md (sse_loadqv4si, sse_storeqv4si, sse_movqv4si): + Move UNSPECs inside patterns, incorporate new UNSPEC_ constants. + +2005-05-27 Stuart Hastings <stuart@apple.com> + + Radar 41216124 + * config.gcc: Darwin/x86 sets need_64bit_hwint=yes. + * config.host: Darwin/x86 sets use_long_long_for_widest_fast_int=yes. + * libcpp/configure.ac: Darwin/x86 sets need_64bit_hwint=yes. + * libcpp/configure: Regenerated with autoconf. + +2005-05-25 Ziemowit Laski <zlaski@apple.com> + + * stub-objc.c (objc_comptypes): Remove for real. + +2005-05-19 Ziemowit Laski <zlaski@apple.com> + + Radar 4035492 + * c-common.h (objc_comptypes): Remove prototype. + (objc_compare_types, objc_volatilized_decl, objc_type_quals_match): + New prototypes. + * c-decl.c (objc_mark_locals_volatile): Streamline by calling + objc_volatilize_decl(). + * c-typeck.c (comp_target_types): Remove third parameter; do not + call objc_comptypes(). + (comptypes): Remove calls to objc_comptypes(). + (build_function_call): Extend compatible prototype check to ObjC. + (build_conditional_expr): Adjust call to comp_target_types(). + (convert_for_assignment): Call objc_compare_types() instead of + objc_comptypes(); adjust calls to comp_target_types(); call + objc_type_quals_match() before issuing qualifier mismatch warnings. + (build_binary_op): Call objc_compare_types() before issuing + pointer mismatch warnings; adjust calls to comp_target_types(). + * gimplify.c (gimplify_expr): Adjust APPLE LOCAL markers to + point at new culprit. + * stub-objc.c (objc_comptypes): Remove stub. + (objc_compare_types, objc_volatilized_decl, objc_type_quals_match): + New stubs. + +2005-05-17 Devang Patel <dpatel@apple.com> + + Radar 4119059 + * config/altivec.md: Use u5bit_cint_operand and s5bit_cint_operand. + * config/rs6000/rs6000.c (s5bit_cint_operand, u5bit_cint_operand): New. + (rs6000_expand_unop_builtin): Fix signed 5 bits literal validation. + +2005-06-01 Devang Patel <dpatel@apple.com> + + Radar 4133801 + * Makefile.in (c-lex.o): Depend on langhooks.h. + (langhooks.o): Depend on debug.h. + * c-lex.c (langhooks.h): Include. + (fe_file_change): Use lang hooks instead of debug hooks. + * langhooks-def.h (lhd_start_source_file, lhd_end_source_file, + LANG_HOOKS_START_SOURCE_FILE, LANG_HOOKS_END_SOURCE_FILE): New. + * langhooks.c (debug.h): Include. + (lhd_start_source_file, lhd_end_source_file): New. + * langhooks.h (struct lang_hooks): Two new members. + +2005-05-19 Devang Patel <dpatel@apple.com> + + Radar 4123684 + * config/rs6000/rs6000.md (insvsi_internal1): Remove. + +2005-05-19 Stuart Hastings <stuart@apple.com> + + Radar 4124883, 4122515 + * simplify-rtx.c(simplify_binary_operation): Can't simplify vector shifts yet. + (simplify_immed_subreg): Fail instead of asserting when asked for a TImode constant. + * config/i386/i386.md(UNSPEC_LDQ, UNSPEC_MOVQ, UNSPEC_STOQ): New. + * config/i386/sse.md(sse_loadqv4si, sse_storeqv4si, sse_movqv4si): + Move UNSPECs inside patterns, incorporate new UNSPEC_ constants. + +2005-05-12 Dale Johannesen <dalej@apple.com> + Stuart Hastings <stuart@apple.com> + + * stor-layout.c (compute_record_mode): Put back 8-byte struct + "hack", merged with FSF and 64-bit ABI changes. + +2005-05-11 Stan Shebs <shebs@apple.com> + + Fix 64-bit varargs for Darwin (Radar 4028089). + * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr. + * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush): + Add argument, add case for 8-byte register half-filled with a float. + (rs6000_darwin64_record_arg_advance_recurse): Detect and handle + single-precision floats specially. + +2005-05-11 Devang Patel <dpatel@apple.com> + + Radar 4110735 + * config/rs6000/rs6000.md (insvsi_internal1): Fix operand[1]. + +2005-05-10 Dale Johannesen <dalej@apple.com> + + Radar 4111151 + * toplev.c (backend_init): Call init_caller_save unconditionally. + +2005-05-10 Stuart Hastings <stuart@apple.com> + + Radar 4099020 + Reinstall patch, omitting simplify-rtx change. + * config/i386/sse.md (sse_loadqv4s, sse_storeqv4si, sse_movqv4si): New. + * config/i386/i386.c (IX86_BUILTIN_MOVQ, + IX86_BUILTIN_LOADQ, IX86_BUILTIN_STOREQ): New. + (__builtin_ia32_movqv4si, __builtin_ia32_loadlv4si, __builtin_ia32_storelv4si): New. + * emmintrin.h (_mm_loadl_epi64, _mm_storel_epi64, _mm_move_epi64): Use them. + * config/i386/mmx.md: Exempt SSE subregs from multiword split. + +2005-05-10 Stuart Hastings <stuart@apple.com> + + Radar 4078600 + * stor-layout.c(compute_record_mode): Delete the "8-byte struct hack". + +2005-05-10 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4095567 + * passes.c (rest_of_compilation): Readjust default stack boundaries for + leaf functions with no vector code. + +2005-05-09 Jon Ziegler <jonz@apple.com> + + Radar 4099020 + Revert Stuart's patch for 4099020. + +2005-05-09 Dale Johannesen <dalej@apple.com> + + Radar 4113078 + * tree-inline.c (expand_call_inline): Propagate uses_vector bit correctly. + +2005-05-07 Stuart Hastings <stuart@apple.com> + + Radar 4099020 + * config/i386/sse.md (sse_loadqv4s, sse_storeqv4si, sse_movqv4si): New. + * config/i386/i386.c (IX86_BUILTIN_MOVQ, + IX86_BUILTIN_LOADQ, IX86_BUILTIN_STOREQ): New. + (__builtin_ia32_movqv4si, __builtin_ia32_loadlv4si, __builtin_ia32_storelv4si): New. + * emmintrin.h (_mm_loadl_epi64, _mm_storel_epi64, _mm_move_epi64): Use them. + * config/i386/mmx.md: Exempt SSE subregs from multiword split. + * simplify-rtx.c(simplify_immed_subreg): Exit cleanly if outermode too wide. + +2005-05-06 Dale Johannesen <dalej@apple.com> + + Radar 4090661 + * config/i386/i386.c (ix86_constant_alignment): Max out + alignment of string constants at 4 bytes. + +2005-05-05 Stuart Hastings <stuart@apple.com> + + * Radar 4078600 + * stor-layout.c(compute_record_mode): Revert previous patch. + +2005-04-04 Devang Patel <dpatel@apple.com> + + * Radar 4095052 + * varasm.c (replace_weak): New. + (merge_weak): Use replace_weak. + +2005-05-04 Stuart Hastings <stuart@apple.com> + + * Radar 4078600 + * stor-layout.c(compute_record_mode): Remove flag_pic from "8-byte struct hack" test. + +2005-05-03 Dale Johannesen <dalej@apple.com> + + Radar 4104248 + * objc/objc-act.c: Include opts.h. + * objc/Make-lang.in (objc-act.o): Ditto. + * config/darwin-protos.h (machopic_picsymbol_stub2_section): New. + * config/i386/i386.c: Include params.h. + * config/i386/i386.md (movqi_1): Handle ESI/EDI destination. + +2005-05-02 Mike Stump <mrs@apple.com> + + * Radar 4099000 + * config/i386/lib1funcs.asm: Add ___i686.get_pc_thunk.<reg> to + libgcc. + * config/i386/t-darwin: Add. + * config.gcc: Add i386/t-darwin. + +2005-05-02 Dale Johannesen <dalej@apple.com> + + Radar 4102133 (PR 21293, Zdenek's patch) + * tree-cfg.c (find_taken_edge_cond_expr): Use zero_p instead of + integer_zerop. + * tree-gimple.c (is_gimple_min_invariant): Consider overflowed + constants invariant. + * fortran/trans-intrinsic.c (gfc_conv_intrinsic_ishft): Convert + the argument of the shift to the unsigned type. + +2005-04-28 Devang Patel <dpatel@apple.com> + + Radar 4086969 + * c-typeck.c (convert_for_assignment): Fix warn_discard_qual. + +2005-04-28 Devang Patel <dpatel@apple.com> + + Radar 4086969 + * c-typeck.c (convert_for_assignment): Check warn_discard_qual. + * c.opt (Wdiscard-qual): New. + * doc/invoke.texi: Dcoument -Wdiscard-qual. + +2005-04-28 Dale Johannesen <dalej@apple.com> + + Radar 4101687 + * i386.c (legitimize_address): Canonicalize shifts correctly. + +2005-04-28 Dale Johannesen <dalej@apple.com> + + Radar 4100712 (PR 21173, Dan Berlin's patch) + * tree-ssa-pre.c (create_expression_by_pieces): Call unshare_expr + on things we pass to force_gimple_operand. Don't try to special + case min_invariants. + +2005-04-28 Dale Johannesen <dalej@apple.com> + + Radar 4101973 + * config/i386/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): + Back out patch for 4096578. + * config/i386/i386.c (reset_optimization_options): Ditto. + +2005-04-26 Dale Johannesen <dalej@apple.com> + + Radar 4099768 + * config/i386/i386.c (ix86_split_long_mode): Adjust + stack offsets for 128-bit long doubles correctly. + +2005-04-26 Dale Johannesen <dalej@apple.com> + + Radar 4096578 + * config/i386/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): + Default omit-frame-pointer on with optimization. + * config/i386/i386.c (reset_optimization_options): Ditto. + +2005-04-26 Stuart Hastings <stuart@apple.com> + + Radar 4010496 + * config/i386/x-darwin: Add -mdynamic-no-pic. + +2005-04-25 Devang Patel <dpatel@apple.com> + + Radar 4095956 + * config/rs6000/darwin.h (REAL_LIBGCC_GCC): Use -lgcc_static. + +2005-04-26 Stuart Hastings <stuart@apple.com> + + Radar 4096118 + * build_gcc: Default to --with-arch=pentium4 --with-tune=prescott. + * config/i386/darwin.h: Override OPTIONS_DEFAULT_SPECS. + +2005-04-25 Devang Patel <dpatel@apple.com> + + Radar 4095956 + * config/darwin.h (REAL_LIBGCC_GCC): Use -lgcc_static. + +2005-04-25 Devang Patel <dpatel@apple.com> + + Radar 3954848 + * dbxout.c (dbxout_type): Emit attribute vector. + +2005-04-23 Dale Johannesen <dalej@apple.com> + + Radar 4097111 + * opts.c (decode_options): Move cl_pf_opts_cooked setup... + * toplev.c (process_options): ...to here. + +2005-04-22 Dale Johannesen <dalej@apple.com> + + * common.opt (falign-functions=): Fix it. + +2005-04-22 Devang Patel <dpatel@apple.com> + + * config/rs6000/darwin.h: Update APPLE LOCAL markers to reflect + FSF mainline check-in. + +2005-04-21 Dale Johannesen <dalej@apple.com> + + Radar 3124235 + * Makefile.in (options.o): New dependencies. + (tree-optimize.o): Ditto. + * c-decl.c (start_function): Record perfunc flags. + * common.opt (falign-jumps, falign-labels, falign-loops): + Add PerFunc, VarUint, VarExists. + (fbranch-count-reg, fbranch-target-load-optimize, + fbranch-target-load-optimize2, fbtr-bb-exclusive, + fcaller-saves, fcprop-registers, fcrossjumping, + fcse-follow-jumps, fcse-skip-blocks, fcx-limited-range, + fdefer-pop, fdelayed-branch, fdelete-null-pointer-checks, + fexpensive-optimizations, ffinite-math-only, ffloat-store, + fforce-addr, fforce-mem, ffunction-cse, fgcse, fgcse-lm, + fgcse-sm, fgcse-las, fgcse-after-reload, + fguess-branch-probability, fif-conversion, fif-conversion2, + fivopts, floop-optimize, floop-optimize2, fmath-errno, + fmodulo-sched, fmove-loop-invariants, + freschedule-modulo-scheduled-loops, fomit-frame-pointer, + foptimize-register-move, foptimize-sibling-calls, fpeel-loops, + fpeephole, fpeephole2, fprefetch-loop-arrays, fregmove, + frename-registers, freorder-blocks, freorder-blocks-and-partition, + frerun-cse-after-loop, frerun-loop-opt, frounding-math, + fsched-interblock, fsched-spec, fsched-spec-load, + fsched-spec-load-dangerous, fsched2-use-superblocks, + fsched2-use-traces, fschedule-insns, fschedule-insns2, + fsignaling-nans, fsplit-ivs-in-unroller, + fvariable-expansion-in-unroller, fstrength-reduce, + fthread-jumps, ftracer, ftrapping-math, ftrapv, ftree-ccp, + ftree-ch, ftree-combine-temps, ftree-copyrename, ftree-dce, + ftree-dominator-opts, ftree-dse, ftree-fre, ftree-loop-im, + ftree-loop-linear, ftree-loop-ivcanon, ftree-loop-memset, + ftree-loop-optimize, ftree-pre, ftree-sra, ftree-ter, + ftree-lrs, funroll-loops, funroll-all-loops, + funsafe-math-optimizations, funswitch-loops, ftree-vectorize, + fweb, fwrapv): Add PerFunc. + (fsched-verbose): Add Var, UInteger, PerFunc, VarUint. + (fsched-stalled-insns-dep): Add PerFunc, VarUint. + (p): Add VarExists. + * final.c (asm_insn_count): Replace "optimize" by "optimizing". + (final): Ditto. + (final_scan_insn): Ditto. + * flags.h (optimize, optimize_size): Remove. + * haifa-sched.c (sched_verbose_param): Remove. + (fix_sched_param): Remove. + * loop.c (struct loop_mem_info): Replace "optimize" by "optimizable". + (insert_loop_mem, load_mems): Adjust references. + * opt-functions.awk (flag_set_p): New. + (switch_flags): Add VarUint, PerFunc. + (var_ref): Handle them. + (access_ref): New. + * optc-gen.awk (END): Substantial rewrite to handle PerFunc, + VarUint. + * opth-gen.awk (END): Ditto. + * opts.c (hashtab.h): New include. + (handle_option): Use access_flag. + (set_flags_from_O): New. + (decode_options): Split out set_flags_from_O. Save + cl_pf_opts_cooked. + (common_handle_options): Remove special cases for + align-functions, align-jumps, align-labels, + align-loops, sched-verbose, sched-stalled-insns-dep. + Use access_flag. + (cl_perfunc_opts_hash_table, hash_cl_perfunc_opts, + cmp_cl_perfunc_opts, make_perfunc_opts, + func_cl_pf_opts_mapping_hash_table, struct func_cl_pf_opts_mapping, + func_cl_pf_opts_mapping_hash, func_cl_pf_opts_mapping_eq, + record_func_cl_pf_opts_mapping, restore_func_cl_pf_opts_mapping, + copy_func_cl_pf_opts_mapping): New. + * opts.h (set_flags_from_O, record_func_cl_pf_opts_mapping, + restore_func_cl_pf_opts_mapping, copy_func_cl_pf_opts_mapping): New. + (struct cl_option): Add access_flag. + (CL_VARUINT, CL_PERFUNC): New. + * toplev.c (optimize, optimize_size): Remove. + (print_switch_values): Use access_flag. + * toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion, + flag_if_conversion2, flag_peel_loops, flag_rerun_cse_after_loops, + flag_thread_jumps, flag_tracer, flag_unroll_loops, + flag_unroll_all_loops, flag_unswitch_loops, flag_cprop_registers, + flag_loop_optimize2): Remove. + * tree-optimize.c (opts.h): New include. + (tree_rest_of_compilation): Restore saved opts from definition. + * config/darwin-c.c (flags.h, opts.h, varray.h): New includes. + (darwin_pragma_reverse_bitfields): Fix obvious spelling bug. + (va_opt, push_opt_level, pop_opt_level, darwin_pragma_opt_level, + darwin_pragma_opt_size): New. + * config/darwin-protos.h (darwin_pragma_opt_level, + darwin_pragma_opt_size, reset_optimization_options): New. + * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): + Add optimization_level, optimize_for_size. + * config/t-darwin (darwin-c.o): New dependencies. + * config/i386/i386.c (reset_optimization_options): New. + * config/rs6000/rs6000.c (reset_optimization_options): New. + * config/rs6000/rs6000.h (optimize, flag_expensive_optimizations): Remove. + * cp/Make-lang.in (cp/decl.o): New dependency. + * cp/decl.c (opts.h): New include. + (build_library_fn_1): Record perfunc opts. + (start_preparsed_function): Propagate saved opts to existing forward decl. + (start_function): Record perfunc opts. + * doc/extend.texi (pragma optimization_level, optimize_for_size): + Document. + * objc/objc-act.c (objc_start_function): Record perfunc opts. + +2005-04-21 Dale Johannesen <dalej@apple.com> + + Radar 4080945 + PR 20742 + * params.def (PARAM_SCEV_MAX_EXPR_SIZE): New. + * tree-chrec.c (params.h): New include. + (chrec_fold_plus_1): Avoid too deep recursion. + (reset_evolution_in_loop): Use build2 not build. + (tree_contains_chrecs): Add size argument. + * tree-chrec.h (tree_constains_chrecs): Add size argument. + (tree_does_not_contain_chrecs): Adjust call to it. + * tree-scalar-evolution.c (simple_iv): Ditto. + * doc/invoke.texi (scev-max-expr-size): Document. + +2005-04-21 Devang Patel <dpatel@apple.com> + + Radar 4080840 + * config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New. + +2005-04-20 Mike Stump <mrs@apple.com> + + Radar 4077104 + * c-common.c (print_cw_asm_operand): Handle -40(sp) in C++ CW asms better. + +2005-04-20 Stuart Hastings <stuart@apple.com> + + * Radar 4067496 + * config/i386/i386.c (optimization_options): Raise inlining limits under -Os. + +2005-04-20 Fariborz Jahanian <fjahanian@apple.com> + + * expr.c (emit_single_push_insn): Radar 4087332. + +2005-04-18 Devang Patel <dpatel@apple.com> + + * config/rs6000/atlivec.md (mulv4si3): Update APPLE LOCAL markers to + reflect check-in on mainline. + +2005-04-15 Devang Patel <dpatel@apple.com> + + Radar 3972875 + * config/rs6000/atlivec.md (mulv4si3): New pattern. + +2005-04-15 Stuart Hastings <stuart@apple.com> + + Radar 4087864 + * config/darwin-protos.h: Extern for machopic_symbol_stub2_section. + * config/i386/i386.c (machopic_output_stub): Fix stubs targeted for + deeply-pipelined CPUs. + +2005-04-15 Caroline Tice <ctice@apple.com> + + Radar 4078608 + * config/darwin.c (machopic_select_section): Change name for function + to switch to cold text section to unlikely_text_section + (the correct function name, in varasm.c). + * config/darwin.h (SECTION_FUNCTION): Remove code that created a second + (incorrect) function for switching to cold text section. + +2005-04-14 Devang Patel <dpatel@apple.com> + + Radar 4080840 + * common.opt (falign-jumps-max-skip, falign-jumps-max-skip=, + falign-loops-max-skip, falign-loops-max-skip=): New. + * opts.c (common_handle_option): Handle new falign-loops-max-skip + and falign-jumps-max-skip options. + * doc/invoke.texi: Document -falign-jumps-max-skip and + -falign-loops-max-skip. + * toplev.c (align_jumps_max_skip, align_loops_max_skip): Remove. + +2005-04-14 Devang Patel <dpatel@apple.com> + + Radar 3972515 + * config/rs600/altivec.md (altivec_vsr<VI_char>): Rename to .. + (lhsr<mode>3): ... new name. + (altivec_vsra<VI_char>): Rename to .. + (ashr<mode>3): ... new name. + * config/rs6000/rs6000.c (builtin_description): Rename shift + operations. + +2005-04-12 Geoffrey Keating <geoffk@apple.com> + + Radar 4087079 + * rtlanal.c (subreg_regno_offset): Compute offset into float + subregs on x86 properly. + (subreg_offset_representable_p): Likewise. + +2005-04-08 Ziemowit Laski <zlaski@apple.com> + + Radar 4055183 + * c-common.h (objc_rewrite_function_call): New prototype. + * c-typeck.c (build_function_call): + Call objc_rewrite_function_call() to handle casts. + * stub-objc.c (objc_rewrite_function_call): New stub. + +2005-04-08 Devang Patel <dpatel@apple.com> + + Radar 4044861 + * config/darwin-drver.c (save_temps_seen): New. + (main): Reject -save-temps with multiple -arch options. + +2005-04-07 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4063657 (part 2). + * c-common.c (cw_process_arg): Remove from 'uses' list any + register which ends up on an output or input list. + (cw_asm_stmt): New 'uses' argument is passed to cw_process_arg. + 'uses' list is added to 'clobber' list. + (print_cw_asm_operand): When building 'uses' list do not + duplicate a hard register on this list. + +2005-04-07 Devang Patel <dpatel@apple.com> + + Radar 4069922 + * tree-sra.c (decide_block_copy): Disable scalarization of sub-elements. + +2005-04-05 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4063657 (part 1). + * c-common.c (print_cw_asm_operand): Added a new argument to + track use of hard registers. Return any use of hard register + to caller in a tree-list form. + (cw_asm_stmt): Add tree-list of hard register register uses to + ASM_EXPR statement tree. + (cw_asm_label): Add the extra argument when building ASM_EXPR. + (cw_asm_entry): Ditto. + * c-typeck.c (build_asm_expr): Ditto. + * cp/semantics.c (finish_asm_stmt): Ditto. + * recog.c (asm_noperands): Bypass USE seen in asm_operand. + (decode_asm_operands): Ditto. + * stmt.c (expand_asm_operands): Insert list of use of hard + registers in the asm_operand rtl following the clobber list. + (expand_asm_expr): Pass hard register usage tree-list to + expand_asm_operands. + * tree.def (ASM_EXPR): Tree now takes an extra argument. + * tree.h (ASM_USES): New macro defined. + +2005-04-02 Ziemowit Laski <zlaski@apple.com> + + Radar 4072153 + * tree.c (build2_stat): Never mark tcc_expression-class nodes + as constant, unless AltiVec PIM support has been selected + and we have a compound expression with constant elements. + +2005-04-01 Jon Ziegler <jonz@apple.com> + + Radar 4075524 + * ginclude/tgmath.h (scalbn) Change to use __TGMATH_REAL_1_2 macro. + (scalbln) Likewise. + +2005-03-31 Dale Johannesen <dalej@apple.com> + + * print-tree.c (print_node): Handle STATEMENT_LIST (mainline). + +2005-03-29 Dale Johannesen <dalej@apple.com> + + Radar 3955567 + * stor-layout.c (place_field): Reverse bitfields if pragma was set. + * target-def.h (TARGET_REVERSE_BITFIELDS_P): New, defaults to false. + * target.h (struct gcc_target): Add reverse_bitfields_p. + * config/darwin-c.c (darwin_pragma_reverse_bitfields): New. + * config/darwin-protos.h: Declare it. + * config/darwin.c (darwin_reverse_bitfields): Define, initialize to 0. + * config/darwin.h: Declare it. + (DARWIN_REGISTER_TARGET_PRAGMAS): Add reverse_bitfields. + * config/rs6000/rs6000.c (rs6000_reverse_bitfields_p): New. + (TARGET_REVERSE_BITFIELDS_P): Use it. + (rs6000_override_options): Set darwin_reverse_bitfields to 0. + +2005-03-24 Dale Johannesen <dalej@apple.com> + + Radar 3982365 + * cp/tree.c (cp_tree_equal): Fix from mainline. + +2005-03-22 Devang Patel <dpatel@apple.com> + + Radar 4023104 + * config/darwin-driver.c (dash_capital_m_seen): Remove. + (main) : Do not handle -M options. + +2005-03-21 Stuart Hastings <stuart@apple.com> + + Radars 3805723 4010664 3965893 4010496 4015764 + * config/mh-x86-darwin: New; now bootstraps with -mdynamic-no-pic on Darwin/x86. + * configure.in: Now bootstraps with -mdynamic-no-pic on Darwin/x86. + * configure: Re-autoconfiscated with above. + * config/darwin-protos.h (machopic_lazy_symbol_ptr2, machopic_lazy_symbol_ptr3): + New lazy_symbol_ptr sections for new Darwin/x86 stubs. + (darwin_texcoal_nt_section): New section for set_pc_thunk pic-base settors. + * config/darwin.c (machopic_symbol_defined_p): No longer static. + (machopic_indirect_data_reference): Revise to support -mdynamic-no-pic for x86. + * config/darwin.h (machopic_lazy_symbol_ptr2, machopic_lazy_symbol_ptr3, + machopic_picsymbol_stub2, darwin_textcoal_nt): New sections. + * config/i386/darwin.h (CC1_SPEC): Un-disable -mdynamic-no-pic option. + (TARGET_ASM_FILE_END): Use darwin_x86_file_end. (darwin_x86_file_end): New. + (TARGET_DEEP_BRANCH_PREDICTION, MASK_MACHO_DYNAMIC_NO_PIC, TARGET_DYNAMIC_NO_PIC): + Un-disable for x86. (SUBTARGET_OVERRIDE_OPTIONS): New arch/tune/fpmath defaults for Darwin/x86. + * config/i386/i386.c (override_options): New diagnostic for "-fPIC -mdynamic-no-pic." + (get_pc_thunk_name): Mach-O support. (ix86_output_function_epilogue): Isolate labels + from the end of Mach-O sections with a NOP. + (legitimate_constant_p, legitimze_address, print_operand, ix86_expand_move, + machopic_output_stub): Darwin -mdynamic-no-pic support. + (darwin_x86_file_end): New; appends set_pc_thunks at end of compilation. + * config/i386/i386.h: Update unused-bits comment. + * cp/optimize.c: Wire the decloner OFF. + +2005-03-18 Geoffrey Keating <geoffk@apple.com> + + * doc/include/sourcecode.texi: Update branch name. + +2005-03-17 Geoffrey Keating <geoffk@apple.com> + + * c-parse.in: Change number of expected conflicts to 15. + +2005-03-14 Dale Johannesen <dalej@apple.com> + + Radar 4045984 + * rtlanal.c (find_first_parameter_load): Rewrite to + return actual first param load or the call if none, + instead of first in block, when not all loads exist. + +2005-03-11 Devang Patel <dpatel@apple.com> + + * target.h: Reinsert one line comment. + +2005-03-11 Ziemowit Laski <zlaski@apple.com> + + Radar 3995882 + * c-decl.c (objc_mark_locals_volatile): Mark local variables and + parameters 'volatile' in ways expected by the C front-end. + +2005-03-10 Devang Patel <dpatel@apple.com> + + Radar 4040918 + * c-opts.c (set_std_c89): Do not set lang if it is already set as CLK_ASM. + +2005-03-09 Devang Patel <dpatel@apple.com> + + * tree-vectorizer.c (vect_analyze_loop): Reorder data refs alignment analysis. + +2005-03-08 Dale Johannesen <dalej@apple.com> + + * Makefile.in: Remove useless code from LNO branch. + * tree-ssa-loop-ch.c: Local marker cleanup. + * tree-pass.h: Ditto. + * tree-ssa-loop.c: Ditto both the above. + +2005-03-08 Dale Johannesen <dalej@apple.com> + + * Makefile.in: Remove useless code from LNO branch. + * cfgloop.h: Ditto. + * cfgloopmanip.c: Ditto. + * common.opt: Ditto. + * lambda-trans.c: Ditto. + * opts.c: Ditto. + * rtl.h: Ditto. + * timevar.def: Ditto. + * toplev.c: Ditto. + * toplev.h: Ditto. + * tree-flow.h: Ditto. + * tree-optimize.c: Ditto. + * tree-pass.h: Ditto. + * tree-ssa-loop-ch.c: Ditto. + * tree-ssa-loop.c: Ditto. + * tree.h: Ditto. + * varray.h: Ditto. + +2005-03-07 Devang Patel <dpatel@apple.com> + + * target-def.h (TARGET_VECT): Remove. + * target.h (tree.h, tree-flow.h): Do not include. + (struct gcc_target): Remove struct vect. + * config/rs6000/rs6000.c (cfgloop.h): Do not include. + (rs6000_support_misaligned_vloads, rs6000_permute_misaligned_vloads, + rs6000_build_builtin_lvsl, rs6000_build_builtin_lvsr, + rs6000_build_builtin_vperm, rs6000_support_vmul_uch_p, + rs6000_build_vmul_uch, rs6000_support_vector_init_p, + get_vector_init_fns_for_type, rs6000_build_vector_init): Remove. + (TARGET_VECT_SUPPORT_MISALIGNED_LOADS, TARGET_VECT_PERMUTE_MISALIGNED_LOADS, + TARGET_VECT_BUILD_BUILTIN_LVSL, TARGET_VECT_BUILD_BUILTIN_LVSR, + TARGET_VECT_BUILD_BUILTIN_VPERM, TARGET_VECT_SUPPORT_VMUL_UCH_P, + TARGET_VECT_BUILD_VMUL_UCH, TARGET_VECT_SUPPORT_VECTOR_INIT_P, + TARGET_VECT_BUILD_VECTOR_INIT, TARGET_GIMPLIFY_VA_ARG_EXPR): Remove. + * c-incpath.c (errors.h): Include. + +2005-03-06 Devang Patel <dpatel@apple.com> + + * config/darwin.h (LINK_COMMAND_SPEC): Remove foutput-dbg. + +2005-03-06 Devang Patel <dpatel@apple.com> + + * target-def.h (TARGET_VECT_SUPPORT_MISALIGNED_LOADS, + TARGET_VECT_PERMUTE_MISALIGNED_LOADS, TARGET_VECT_BUILD_BUILTIN_LVSL, + TARGET_VECT_BUILD_BUILTIN_LVSR, TARGET_VECT_BUILD_BUILTIN_VPERM, + TARGET_VECT_SUPPORT_VMUL_UCH_P, TARGET_VECT_BUILD_VMUL_UCH, + TARGET_VECT_SUPPORT_VECTOR_INIT_P, TARGET_VECT_BUILD_VECTOR_INIT): Remove + redundant macros. + +2005-03-06 Devang Patel <dpatel@apple.com> + + Radar 4025991 + * tree-vectorizer.c (vect_is_simple_cond): Now second parameter is + loop_vec_info instead of loop *. + (vectorizable_select): Supply loop_vec_info to vect_is_simple_use. + (vect_build_dist_vector): Use loop nest's depth. + +2005-03-06 Devang Patel <dpatel@apple.com> + + * c-opts.c (c_common_handle_option): Remove QA_DISABLE_WERROR. + +2005-03-06 Devang Patel <dpatel@apple.com> + + * tree-ssa-operands.h (add_vdef): Remove. + * tree.h (get_array_base): Remove. + (swap_tree_comparison): Remove redundant decl. + +2005-03-06 Devang Patel <dpatel@apple.com> + + * varray.h (VARRAY_DG_INIT, VARRAY_DG): Remove. + +2005-03-04 Dale Johannesen <dalej@apple.com> + + Radar 4025985 (partial) + * config/rs6000/rs6000.c: Restore 64-bit ABI from mainline. + * config/rs6000/rs6000.h: Ditto. + +2005-03-03 Dale Johannesen <dalej@apple.com> + + Radar 3897244 + * config/i386/darwin.h: Define REGISTER_TARGET_PRAGMAS + and ROUND_TYPE_ALIGN. + * config/i386/i386.c (x86_field_alignment): Support Mac68K alignment. + +2005-03-02 Devang Patel <dpatel@apple.com> + + Undo Radar 4023104 + * config/darwin-driver.c (dash_capital_m_seen): Remove. + (main) : Do not handle -M options. + +2005-02-28 Ziemowit Laski <zlaski@apple.com> + + Radar 4015382 + * config/darwin.c (machopic_select_section): Do not place + non-weak '::operator new' and '::operator delete' definitions + in the coalesced section. + +2005-02-27 Dale Johannesen <dalej@apple.com> + + Radar 4015911 + * config/i386/i386.c (ix86_binds_local_p): New. + (TARGET_BINDS_LOCAL_P): Use it. + +2005-02-26 Dale Johanensen <dalej@apple.com> + + Radar 3988125 + PR 19360 (from mainline) + * tree-ssa-dom.c (tree_ssa_dominator_optimize): Clear SSA_NAME_VALUE + at the end of the main DOM loop rather than just before DOM exits. + +2005-02-25 Devang Patel <dpatel@apple.com> + + Radar 4023104 + * config/darwin-driver.c (dash_capital_m_seen): New. + (main) : Handle -M options. + +2005-02-24 Dale Johannesen <dalej@apple.com> + + * doc/extend.texi (nested function description): Improvement + from mainline. + +2005-02-23 Dale Johannesen <dalej@apple.com> + + Radar 4011924 + PR 19241 (patch from mainline) + * tree-inline.c (copy_body_r): Don't recurse when + remapping variables. + +2005-02-23 Devang Patel <dpatel@apple.com> + + Radar 4021019 + * config/rs6000/darwin.h (CC1_SPEC): Ignore -march=pentium4 and + -mcpu=pentium4. + * config/i386/darwin.h (CC1_SPEC): Ignore -mno-fused-madd. + +2005-02-23 Devang Patel <dpatel@apple.com> + + Radar 3841402 3841397 3841275 + * config/darwin-driver.c (add_arch_options): Do not supply + -march=i386. Interpret -arch pentIIm3 appropriately. + +2005-02-22 Devang Patel <dpatel@apple.com> + + Radar 3844827 + Backport from Mainline. + + 2005-01-18 Andi Kleen <ak@muc.de> + + * c-typeck.c (convert_for_assignment): Check warn_pointer_sign. + * c.opt (-Wpointer-sign): Add. + * doc/invoke.texi (-Wpointer-sign): Add. + +2005-02-21 Dale Johannesen <dalej@apple.com> + + Radar 4015820 (missing piece) + * objcp/objcp-lang.c: Use objc_gimplify_expr. + +2005-02-21 Dale Johannesen <dalej@apple.com> + + Radar 4015820 + * objc/objc-act.c (objc_gimplify_expr): New. + * objc/objc-lang.c (LANG_HOOKS_GIMPLIFY_EXPR): Use it. + * objc/objc-act.h: Declare it. Include tree-gimple.h. + * objc/Make-lang.in: Add required tree-gimple.h's. + * objcp/Make-lang.in: Ditto. + +2005-02-21 Stan Shebs <shebs@apple.com> + + * config/darwin-c.c (darwin_pragma_options): Warn about uses + of mac68k alignment pragma when 64-bit. + +2005-02-21 Devang Patel <dpatel@apple.com> + + Radar 3964387 + * config/rs6000/darwin.h (CC1_SPEC): Ignore -msse and -msse2. + +2005-02-19 Ziemowit Laski <zlaski@apple.com> + + Radar 4014879 + * config/rs6000/rs6000.md (call_nonlocal_sysv, + sibcall_symbolic): Add handling of ABSCALL annotations. + +2005-02-17 Devang Patel <dpatel@apple.com> + + Radar 4008460 + * tree-vectorizer.c (vect_analyze_data_ref_dependence): Check for NULL + distance vector. + +2005-02-17 Devang Patel <dpatel@apple.com> + + Undo Radar 3964387 fix. + +2005-02-17 Fariborz Jahanian <fjahanian@apple.com> + + Radar 3971074 + + * c-common.c (cw_asm_stmt): Generate .file and .line + directives. Remove cw_asm_lineno declaration. + * c-common.h: Add argument to cw_asm_stmt declaration, remove + cw_asm_lineno declaration. + * c-parse.in: Accurately pass line no information to + cw_asm_stmt routine. + +2005-02-17 Ziemowit Laski <zlaski@apple.com> + + Radar 3635843, 3922342 + * c-common.h (objc_generate_write_barrier): New prototype. + * c-typeck.c (lvalue_or_else): Do not emit warning if + '-Wno-non-lvalue-assign' has been specified. + (build_modify_expr): Call objc_generate_write_barrier() if + '-fobjc-gc' has been specified. + * c.opt (-Wassign-intercept, -Wnon-lvalue-assign, + -fobjc-direct-dispatch, -fobjc-gc): New options. + * calls.c (emit_call_1): For functions with 'hard_coded_address' + attribute, annotate the RTL call instruction with the address + to use. + * reg-notes.def (ABSCALL): New RTL annotation. + * stub-objc.c (objc_generate_write_barrier): New stub. + * config/darwin-protos.h (darwin_handle_objc_gc_attribute): + New prototype. + * config/darwin.c (darwin_handle_objc_gc_attribute): New function. + * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add + '-Wno-non-lvalue-assign' whenever '-fobjc-gc' is seen. + (SUBTARGET_OS_CPP_BUILTINS): Define '__strong' and '__OBJC_GC__' + macros as needed. + (SUBTARGET_ATTRIBUTE_TABLE): Add 'objc_gc' attribute. + * config/rs6000/rs6000.md (call_value_nonlocal_sysv, + sibcall_value_symbolic): Add handling of ABSCALL annotations. + +2005-02-16 Dale Johannesen <dalej@apple.com> + + Radar 4006687 + PR 17767 et al (fix from mainline) + * cse.c (fold_rtx) [RTX_COMPARE, RTX_COMM_COMPARE]: Don't attempt + any simplifications of vector mode comparison operators. + * simplify-rtx.c (simplify_relational_operation): Fix variable name. + +2005-02-15 Dale Johannesen <dalej@apple.com> + + Radar 3991611 + Radar 3990578 + PRs 19084 and 19348 (fix from mainline) + * recog.c (peephole2_optimize): Do global life update if some peephole + decides it doesn't need at least one of its inputs and that change + influences liveness at the start of the basic block. + * basic-block.h (EXECUTE_IF_AND_COMPL_IN_REG_SET): Needs 2 REGSET + arguments instead of 1. + +2005-02-15 Dale Johannesen <dalej@apple.com> + + Radar 3876378 + Radar 3838108 + PR 18109 (fix from mainline) + * config/i386/i386.md (movhi_1): Remove previous attempt at a fix. + (movqi_1): Ditto. Don't use 4-byte load when unsafe. + +2004-02-16 Devang Patel <dpatel@apple.com> + + Radar 3964387 + * build_gcc: Build darwin-driver-rs6000.c and darwin-driver-i386.c + * config/darwin-driver-rs6000.c: New file + * config/darwin-driver-i386.c: New file + * config/darwin-driver.h: New file + * config/darwin-driver.c (darwin-driver.h): Include. + (ppc_specific_args, ppc_specific_args_size, ppc_specific_arg_count, + x86_specific_args, x86_specific_args_size, x86_specific_arg_count, + is_ppc_specific_option, is_x86_specific_option): New. + (remove_arch_options): New parameter. + (add_arch_options): Insert arch specific options. + (main): Interpret arch specific options. + +2005-02-16 Fariborz Jahanian <fjahanian@apple.com> + + Radar 3970655 + + * c-common.c (prepend_char_identifier): Modified old + get_atsign_identifier to handle any character. + * c-common.h (prepend_char_identifier): New function declaration. + Removed get_atsign_identifier declaration. + * c-lex.c (c_lex_with_flags): Add '.' to those tokens which + can start a CW asm statement. + * c-parse.in (cw_identifier): New CW identifier syntax. + +2005-02-15 Fariborz Jahanian <fjahanian@apple.com> + + Radar 3970646 + * c-common.c (cw_asm_identifier): New routine. + (cw_asm_stmt): call cw_asm_identifier on asm operator. + * cp/parser.c (cp_parser_cw_asm_relative_branch): New routine. + (cp_parser_cw_asm_postfix_expression): Call + cp_parser_cw_asm_relative_branch to parse relative branch + operand. + +2005-02-14 Devang Patel <dpatel@apple.com> + + Radar 4002184 + * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove + -ffix-and-continue. + +2005-02-14 Fariborz Jahanian <fjahanian@apple.com> + + Radar 3971053 + * cp/parser.c (cp_parser_unary_expression): Defer 'sizeof' in asm + block to cp_parser_cw_asm_postfix_expression. + (cp_parser_cw_asm_postfix_expression): Process sizeof here. + + Radar 3971060 + * c-common.c (cw_asm_expr_val): New routine. + (print_cw_asm_operand): Call cw_asm_expr_val to evaluate complex + numeric expressions used in asm block. + + Radar 3971070 + * c-parse.in (cw_asm_unary_expr): Error on undeclared type used + in sizeof. + * c-typeck.c (parser_build_binary_op): Check for use of undefined + in asm block. + * cp/typeck.c (build_x_binary_op): Ditto + +2005-02-11 Ziemowit Laski <zlaski@apple.com> + + Radar 3962013 (Part 2) + * doc/invoke.texi: Document '-Wstrict-selector-match'. + +2005-02-11 Devang Patel <dpatel@apple.com> + + Radar 3996800 + * gcc.c (cpp_uniq_options): Emit '-mconstant-cfstrings' option, + if needed. + +2005-02-09 Dale Johannesen <dalej@apple.com> + + Radar 3985162 + Radar 3990505 + * cselib.c (cselib_process_insn): Clear out regs where + HARD_REGNO_CALL_PART_CLOBBERED is true at a call. + * reload.c (find_equiv_reg): Ditto. + +2005-02-06 Dale Johannesen <dalej@apple.com> + + Radar 3988061 + * langhooks-def.h: add lhd_vtable_p, LANG_HOOKS_VTABLE_P + * langhooks.c (lhd_vtable_p): New. + * langhooks.h (struct lang_hooks): Add vtable_p. + * config/rs6000/rs6000.c (rs6000_binds_local_p): Treat kext + vtables as non-local-binding. + * cp/cp-objcp-common.c (cp_vtable_p): New. + * cp/cp-objcp-common.h: Use it for LANG_HOOKS_VTABLE_P. + * cp/cp-tree.h: Declare it. + +2005-02-06 Geoffrey Keating <geoffk@apple.com> + + Radar 3984134 (again) + * config/darwin-driver.c (do_compile): Update argc_count for + target-specific options. + (add_arch_options): Improve debug output. + +2005-02-02 Mike Stump <mrs@apple.com> + + Radar 3981486 + * objcp/lang-specs.h ("@objc++-cpp-output"): Add support for 3.3 + language name for distributed builds. + +2005-02-02 Geoffrey Keating <geoffk@apple.com> + + Radar 3984134 + * config/darwin-driver.c (initialize): Allow for extra NULL in + new_argv. Update comment for lipo_argv. + (do_lipo): Add NULL at end. Check for NULL at end when printing. + (do_compile): Add NULL at end of current_argv. + (main): Add NULL at end of new_argv. + +2005-02-01 Devang Patel <dpatel@apple.com> + + Radar 3983593 + * c-pch.c (pch_matching[]): Add -faltivec. + * c.opt (faltivec): Use flag_altivec as variable. + * toplev.c (flag_disable_opts_for_faltivec): New. + * flags.h (flag_disable_opts_for_faltivec): Same. + +2005-01-31 Ziemowit Laski <zlaski@apple.com> + + Radar 3978168 + * c-typeck.c (lvalue_or_else): Allow certain non-lvalues + as arguments to '&', and print appropriate warning. + +2004-01-31 Devang Patel <dpatel@apple.com> + + Radar 3978580 + * varasm.c (const_hash_1): Check constant cfstring. + (compare_constant): Same. + * config/darwin-protos.h (darwin_constant_cfstring_p): New. + * config/darwin.c (darwin_constant_cfstring_p): New. + +2005-01-31 Roger Sayle <roger@eyesopen.com> + Dale Johannesen <dalej@apple.com> + + Radar 3974393 + * fold-const.c (fold_binary_op_with_conditional_arg): + Make types match original operands, before STRIP_NOPS. + (From mainline.) + +2005-01-30 Ziemowit Laski <zlaski@apple.com> + + Radar 3962013 + * c.opt (Wstrict-selector-match): New option. + +2005-01-28 Fariborz Jahanian <fjahanian@apple.com> + + Radar 3979484 + + * cp/typeck2.c (digest_init): Convert AltiVec-style + vector constant to its internal tree representation. + +2005-01-28 Fariborz Jahanian <fjahanian@apple.com> + + Radar 3967653 + * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): + Diagnose 'long long' and 64bit 'long' vector declarations. + +2005-01-26 Dale Johannesen <dalej@apple.com> + + Back out preceding change, which is wrong. + +2005-01-26 Dale Johannesen <dalej@apple.com> + + Radar 3974393 + PR 19650 + * fold-const.c (fold_binary_op_with_conditional_arg): + Make constant 0 or 1 be of correct type. + +2005-01-27 Mike Stump <mrs@apple.com> + + Radar 3978098 + * config/darwin.h (SUBTARGET_OS_CPP_BUILTINS): Move setting + pascal_string for cpp from here... + * config/darwin.h (SUBSUBTARGET_OVERRIDE_OPTIONS): ..to here. + * c-cppbuiltin.c: Remove includes for pascal strings. + * config/rs6000/rs6000.c (parse_in): Add. + * config/i386/i386.c (parse_in): Add. + +2005-01-26 Stuart Hastings <stuart@apple.com> + + Radar 3967989 + * gimplify.c (shortcut_cond_expr): Re-compute side-effects. + * testsuite/gcc.c-torture/execute/20050125-1.c: New. + +2005-01-26 Ziemowit Laski <zlaski@apple.com> + + Radar 3970884 + * tree.c (reconstruct_complex_type): Reconstruct + REFERENCE_TYPEs correctly, instead of turning them + into POINTER_TYPEs. + * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): + Propagate all qualifiers from element type onto vector type. + +2005-01-25 Dale Johannesen <dalej@apple.com> + + Radar 3941199 + * config/rs6000/darwin-tramp.asm (__trampoline_setup): + Make work for 64 bit. + +2005-01-25 Dale Johannesen <dalej@apple.com> + + Radar 3944688 + PR 19147 + * config/rs6000/rs6000.md (andsi3_internal7, andsi3_internal8): Delete. + +2005-01-25 Dale Johannesen <dalej@apple.com> + + Radar 3970057 + * config/rs6000/rs6000.c (rs6000_return_in_memory): + Implement Darwin 64-bit convention correctly. + (rs6000_darwin64_record_arg_flush_pending): + Compute correct reg for int field following doubles. + +2005-01-24 Stuart Hastings <stuart@apple.com> + + Radar 3939078 + * cgraphunit.c (cgraph_build_static_cdtor) Don't set DECL_IGNORED_P. + +2005-01-24 Ziemowit Laski <zlaski@apple.com> + + Radar 3961973 (Part 2) + * c-typeck.c (lvalue_or_else): Acccept NON_LVALUE_EXPRs + as cast expressions. + +2005-01-23 Ziemowit Laski <zlaski@apple.com> + + Radar 3961973 + * c-common.c (flag_lvalue_cast_assign): Remove. + * c-common.h (flag_lvalue_cast_assign): Remove. + * c-opts.c (c_common_handle_option): Remove + '-flvalue-cast-assign' handling. + * c-typeck.c (lvalue_or_else): Change first parameter from + 'tree' to 'tree *'; handle conditional lvalues in addition + to lvalue casts; when rewriting expressions, create a new + tree instead of clobbering an existing one. + (build_unary_op, build_modify_expr, build_asm_expr): + Adjust calls to lvalue_or_else(). + * c.opt: Rename -flvalue-cast-assign to -fnon-lvalue-assign + and add Var(...) and Init(...) annotation to create a flag. + * doc/invoke.texi: Likewise; add description of lvalue + conditional expressions and how they are transformed. + +2005-01-21 Ziemowit Laski <zlaski@apple.com> + + Radar 3951887 + * gimplify.c (gimplify_expr): Adjust the type of + INDIRECT_REFs after their argument is gimplified. + +2005-01-19 Robert Bowdidge <bowdidge@apple.com> + + * config/darwin.h (SUBSUBTARGET_OVERRIDE_OPTIONS) Turn off + -fweak whenever we're building kexts. + * Makefile.in: Add -fno-non-call-exceptions to flags passed when + building files for libcc_kext.a + * mklibgcc: Move -fexception and -fnon-call-exceptions to start of + command line so multilib machinery can override + +2005-01-20 Dale Johannesen <dalej@apple.com> + + Radar 3966230 + * config/rs6000/darwin.md (movsf_low_di): Make work. + +2005-01-19 Dale Johannesen <dalej@apple.com> + + Radar 3961638 + * config/rs6000/darwin.md (movdf_low_di): Make work. + +2005-01-19 Mike Stump <mrs@apple.com> + + Radar 3962625 + * c-incpath.c (hmap_construct_pathname): Warn when headermaps find + files with mismatched case. + +2005-01-13 Dale Johannesen <dalej@apple.com> + + Radars 3942172 3897795 3944716 3941494 + * config/rs6000/rs6000.h (CUMULATIVE_ARGS): New fields + intoffset, use_stack, named. + * config/rs6000/rs6000.c (rs6000_darwin64_function_arg): Remove. + rs6000_darwin64_record_arg_advance_flush_pending_int_fields: New. + rs6000_darwin64_record_arg_advance_recurs: New. + rs6000_darwin64_record_arg_flush_pending_int_fields: New. + rs6000_darwin64_record_arg_recurs: New. + rs6000_darwin64_record_arg: New. + rs6000_return_in_memory: Remove AGGREGATE_TYPE_P check. + function_arg_boundary: Handle 128-bit aligned structs. + function_arg_advance: Rewrite darwin-64 struct handling. + function_arg: Call rs6000_darwin64_record_arg. + function_arg_partial_nregs: Handle darwin-64 structs. + rs6000_darwin64_function_value: Remove. + rs6000_function_value: Call rs6000_darwin64_record_arg. + +2005-01-04 Anders Bertelrud <anders@apple.com> + + Radar 3871393 + * c-incpath.c: Merged in headermap code from GCC 3.3 source + base, modifying it somewhat to work in GCC 4.0. + (hmap_hash_string): Copied from GCC 3.3. + (hmap_compare_strings): Copied from GCC 3.3. + (hmap_load_header_map): Copied from GCC 3.3. + (hmap_construct_pathname): Copied from GCC 3.3 and modified + to have calling convensions for cpp_dir's 'construct' field. + (remove_duplicates): If a search path refers to a file rather than + a directory, we check if it's a headermap file immediately before + we would have reported an error. If it is, call hmap_load_header_map + and set up the 'construct' field of the cpp_dir. Otherwise, report + the error as usual. + +2005-01-17 Ziemowit Laski <zlaski@apple.com> + + Radar 3951689 + * c-common.h (objc_finish_try_stmt, objc_build_synchronized): + Return 'tree' instead of 'void'. + * stub-objc.c (objc_build_throw_stmt, objc_begin_try_stmt, + objc_finish_try_stmt, objc_begin_catch_clause, + objc_finish_catch_clause, objc_build_finally_clause, + objc_build_synchronized: New stubs. + +2005-01-15 Geoffrey Keating <geoffk@apple.com> + + * gcc.c (macosx_version_min_required): Make static. + +2005-01-14 Dale Johannesen <dalej@apple.com> + + Radar 3953308 + * tree-ssa-dce.c: Remove all vestiges of LNO branch. + * tree-flow.h (tree_ssa_dce_no_cfg_changes): Remove declaration. + +2005-01-13 Stuart Hastings <stuart@apple.com> + + Radar 3236762 + * config/i386/darwin.h (SUBTARGET_EXTRA_SPECS): Revert Mach-O arch back to i386, + regardless of -force_cpusubtype_ALL. + +2005-01-11 Stuart Hastings <stuart@apple.com> + + Radar 3943021 + * config/rs6000/rs6000.md (maxsf3, minsf3, split, maxdf3, mindf3, split): + disable when -flag-trapping-math. + * config/rs6000/rs6000.c (rs6000_emit_minmax): Don't abort + when #pragma fenv (-ftrapping-math) causes failure. + +2005-01-11 Fariborz Jahanian <fjahanian@apple.com> + + Radar 3903960 + * fold-const.c (fold_widened_comparison) Replace it with the + one from FSF mainline. + (fold_sign_changed_comparison): Ditto. + +2005-01-10 Ziemowit Laski <zlaski@apple.com> + + Radar 3943452 + * config/rs6000/rs6000.c (altivec_convert_args): Clear any oveflows + caused by integer literal conversions. + +2005-01-09 Mike Stump <mrs@apple.com> + + Radar 3926955 + * c-opts.c (c_common_handle_option): Remove wrong -faltivec code. + * c.opt (faltivec): Remove wrong set 0. + * config/rs6000/rs6000.c (rs6000_altivec_switch): Move -maltivec back + into TARGET_SWITCHES. + (rs6000_override_options): Likewise. + * config/rs6000/rs6000.h (TARGET_SWITCHES): Likewise. + (TARGET_OPTIONS): Likewise. + (rs6000_altivec_switch): Likewise. + +2005-01-10 Stuart Hastings <stuart@apple.com> + + Radar 3236762 + * config/i386/darwin.h (SUBTARGET_EXTRA_SPECS): Revert Mach-O arch back to i386. + +2005-01-09 Dale Johannesen <dalej@apple.com> + + Radar 3941146 + Following patches from mainline: + 2004-10-27 Daniel Berlin <dberlin@dberlin.org> + + Fix PR tree-optimization/17133 + + * tree-cfg.c (rewrite_to_new_ssa_names_bb): Also rewrite must + def kill operand. + + * tree-flow-inline.h: V_MUST_DEF_OP became V_MUST_DEF_RESULT. + (get_v_must_def_result_ptr): Modify for new structure of + v_must_defs array. + (get_v_must_def_kill_ptr): New. + (op_iter_next_use): Add support for the kill that occurs in V_MUST_DEFs. + (op_iter_next_tree): Ditto. Also V_MAY_DEF_OP became V_MAY_DEF_RESULT. + (op_iter_next_def): V_MAY_DEF_OP became V_MAY_DEF_RESULT. + (op_iter_init): Initialize new mustu members. + (op_iter_next_mustdef): New function. + (op_iter_init_mustdef): Ditto. + + * tree-flow.h (rewrite_def_def_chains): New function. + + * tree-into-ssa.c (mark_def_sites): Handle mustdefkill operands. + (ssa_mark_def_sites): Ditto. + (rewrite_stmt): Ditto. + (ssa_rewrite_stmt): Ditto. + (rewrite_blocks): Factor out from rewrite_into_ssa. + (mark_def_block_sites): Ditto. + (rewrite_def_def_chains): New function, just rewrites def-def + chains without phi node insertion. + + * tree-pass.h (TODO_fix_def_def_chains): New todo flag. + + * tree-optimize.c (execute_todo): Handle TODO_fix_def_def_chains. + + * tree-pretty-print.c (dump_vops): Print out MUST_DEF's so that + they include the rhs now. + + * tree-ssa-ccp.c (visit_assignment): V_MUST_DEF_OP became + V_MUST_DEF_RESULT. + + * tree-ssa-dce.c (mark_operand_necessary): Add phionly argument. + Update callers. + (mark_really_necessary_kill_operand_phis): New function. + (perform_tree_ssa_dce): Call it. + (pass_dce): Add TODO_fix_def_def_chains. + (pass_cd_dce): Ditto. + + * tree-ssa-loop-im.c (determine_max_movement): Look at kills as + well. + (rewrite_mem_refs): Ditto. + + * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Look at kills + as well. + + * tree-ssa-operands.c (allocate_v_may_def_optype): + v_may_def_operand_type_t became v_def_use_operand_type_t. + (allocate_v_must_def_optype) Ditto. + (finalize_ssa_v_must_defs): Update for new operand type, as well + as setting the use portion as well. + (copy_virtual_operands): Copy the kill operand as well. + (create_ssa_artficial_load_stmt): V_MUST_DEF_OP became + V_MUST_DEF_RESULT. + + * tree-ssa-operands.h (v_may_def_operand_type): Renamed to + v_def_use_operand_type. + (v_must_def_optype_d): Use v_def_use_operand_type. + (V_MUST_DEF_OP_*): Renamed to V_MUST_DEF_RESULT_* + (V_MUST_DEF_KILL_*): New macros. + (struct ssa_operand_iterator_d): Add num_v_mustu and v_mustu_i + members. + Rename existing must_i and num_v_must members to mustd_i and + num_v_mustd. + (SSA_OP_VMUSTDEFKILL): New flag. + (SSA_OP_VIRTUAL_KILLS): New flag. + (SSA_OP_ALL_OPERANDS): Add in SSA_OP_ALL_KILLS. + (SSA_OP_ALL_KILLS): New flag. + (FOR_EACH_SSA_MUSTDEF_OPERAND): New macro. + + * tree-ssa.c (verify_ssa): Verify virtual kills as well. + + * tree-vectorizer.c (vect_create_data_ref_ptr): V_MUST_DEF_OP + became V_MUST_DEF_RESULT. + (rename_variables_in_bb): Rename kill pointer as well. + + * tree-dfa.c (compute_immediate_uses_for_stmt): Add kills into the + immediate uses. + + 2004-10-28 Daniel Berlin <dberlin@dberlin.org> + + * tree-into-ssa.c (rewrite_virtual_phi_arguments): New function. + (rewrite_blocks): Modify argument, and use it to decide which + function to call. + (rewrite_def_def_chains): Call rewrite_blocks with true here. + (rewrite_into_ssa): and call it with false here. + + 2004-11-16 Daniel Berlin <dberlin@dberlin.org> + + Fix PR tree-optimization/18519 + + * tree-optimize (execute_todo): Add case for TODO_cleanup_cfg. + * tree-pass.h: Add TODO_cleanup_cfg. + * tree-ssa-ccp.c (pass_ccp): Use TODO_cleanup_cfg. + (ccp_finalize): Remove call to cleanup_cfg. + * tree-ssa-dce.c (pass_dce): Use TODO_cleanup_cfg and TODO_dump_func. + (pass_cd_dce): Ditto. + (perform_tree_ssa_dce): Remove call to cleanup_cfg, + dump_function_to_file. + * tree-ssa-loop-ch.c (copy_loop_headers): Remove call + to cleanup_cfg. + (pass_ch): Add TODO_cleanup_cfg. + * tree-ssa-loop.c (tree_ssa_loop_done): Remove call to + cleanup_cfg. + (pass_loop_done): Add TODO_cleanup_cfg. + * tree-ssa-phiopt.c (pass_phiopt): Ditto. + (tree_ssa_phiopt): Remove call to cleanup_cfg. + +2005-01-08 Ziemowit Laski <zlaski@apple.com> + + Radar 3913725 + * c-common.c (flag_lvalue_cast_assign): New global variable. + * c-common.h (flag_lvalue_cast_assign): Forward declare. + * c-opts.c (c_common_handle_option): Handle + '-f[no-]lvalue-cast-assign'. + * c-typeck.c (lvalue_or_else): If expression is not an lvalue, + check if it is a cast of an lvalue; if so, and if the cast + involves POD types with identical size and aligment, + rewrite '(type)expr' into '*(type *)&expr' and allow the + result as an lvalue. + * c.opt (flvalue-cast-assign): New flag. + * invoke.texi: Document '-f[no-]lvalue-cast assign' flag. + +2005-01-07 Devang Patel <dpatel@apple.com> + + Radar 3943502 + * stub-objc.c (objc_get_class_ivars): New. + +2005-01-06 Ziemowit Laski <zlaski@apple.com> + + Radar 3926755 + * c-decl.c (builtin_function): Do not require AltiVec + builtins to be explicitly declared. + * config/rs6000/rs6000.c (altivec_cov_rt_1h): New function. + (pim_flags): Add pim_rt_1h enumeration constant; renumber + all pim_rt_... constants. + (rs6000_fold_builtin): Select overload candidate before + determining return type; call altivec_cov_rt_1h() during + latter. + (altivec_init_builtins): Create builtins corresponding + to "specific operations" listed in AltiVec PIM; fix + entry for "vec_re" to return a 'vector float'; fix + entries for "vec_pack" to compute return vector type + as having twice as many elements as the first argument. + * config/rs6000/rs6000.h (rs6000_builtins): Add enumeration + constants corresponding to AltiVec PIM "specific operations". + +2005-01-06 Stan Shebs <shebs@apple.com> + + * config/rs6000/rs6000.c (rs6000_emit_prologue): Don't skip + saving r31 if we must do a full stack frame. + (rs6000_emit_epilogue): Similarly for restoring r31. + +2005-01-06 Andrew Pinski <pinskia@physics.uc.edu> + Stuart Hastings <stuart@apple.com> + + Radar 3830232 + * testsuite/gcc.apple/notailcall-1.c: New testcase. + +2005-01-06 Stuart Hastings <stuart@apple.com> + + Radar 3941684 + * c-common.c (print_cw_asm_operand): Casts for long long format. + * gcc.c (process_command): Malloc overflowing static char array. + * config/i386/dariwn.h (ASM_SPEC): Revert to i386. + * config/i386/i386.h (STACK_BOUNDARY): Must be of indeterminate signedness. + +2005-01-06 Mike Stump <mrs@apple.com> + + Radar 3929334 + * c-pch.c (c_common_pch_pragma): Add indirection for pch files for distcc. + +2005-01-04 Devang Patel <dpatel@apple.com> + + Radar 3886137 Part 2. + * cppdefault.c (INCLUDE_DEFAULTS): Enable isysroot override by default + for all include paths. + +2005-01-03 Fariborz Jahanian <fjahanian@apple.com> + + Radar 3936917 + * config/rs6000/altivec.md (altivec_vandc): Correct RTL + pattern and use its canonical form. + +2005-01-03 Stuart Hastings <stuart@apple.com> + + Radar 3830232, Bugzilla 17526 + * tree-gimple.c (is_gimple_mem_rhs): Force a temp for every + register-candidate to prevent bad tailcalls. + +2004-12-23 Dale Johannesen <dalej@apple.com> + + * config/darwin-c.c: Include options.h. + (darwin_pragma_fenv): New. + * config/darwin-protos.h: Declare it. + * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Register it. + * config/t-darwin: Add new dependency. + * config/rs6000/rs6000.c (optimization_options): + Default trapping-math off. + * config/i386/i386.c (optimization_options): Ditto. + * fixincludes/inclhack.def: Add #pragma GCC fenv to <fenv.h>. + * fixincludes/fixincl.x: Regenerate. + * testsuite/gcc.apple/apple-altivec-9.c: Add -ftrapping-math. + * testsuite/gcc.apple/darwin-fsel-3.c: New. + +2004-12-23 Dale Johannesen <dalej@apple.com> + + Radar 3926600 + Following patches brought in from mainline + * tree.c (iterative_hash_expr): Canonicalize builtins. + PR tree-opt/16951 + * tree-inline.c (setup_one_parameter): Don't directly map a + parameter to the address of another variable of the same + function. + +2004-12-22 Fariborz Jahanian <fjahanian@apple.com> + + Radar 3765572 + * expr.c (emit_push_insn): Remove unnecessary apple + local stuff which previously handled partial + arguments in mixed mode. + +2004-12-20 Dale Johannesen <dalej@apple.com> + + Radar 3926484 + * objc/objc-act.c (objc_get_callee_fndecl): New. + * objc/objc-act.h: Declare it. + * objc/objc-lang.c: Use it. + * objcp/objcp-lang.c: Ditto. + +2004-12-20 Matt Austern <austern@apple.com> + + Radar 3845716 + PR c++/19044 + * c-common.c (set_builtin_user_assembler_name): New. + * c-common.h (set_builtin_user_assembler_name): Declare. + * c-decl.c (finish_decl): Use set_builtin_user_assembler_name + +2004-12-20 Dale Johannesen <dalej@apple.com> + + Radar 3926488 + * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Don't + reference operand 1 of ADDR_EXPRs. + +2004-12-20 Devang Patel <dpatel@apple.com> + + Backport vectorizatin patches from Mainline. + Radar 3907012 3917979 3917991 3917994 3917999 + + PR tree-optimization/18009 + 2004-11-03 Dorit Naishlos <dorit@il.ibm.com> + + * tree-vectorizer.h (enum dr_alignment_support): New type. + (MAX_NUMBER_OF_UNALIGNED_DATA_REFS): Removed. + (LOOP_UNALIGNED_DR): replaced with LOOP_VINFO_UNALIGNED_DR and holds a + single data_reference (instead of a varray of references). + * tree-vectorizer.c (new_loop_vec_info): Likewise. + (vect_gen_niters_for_prolog_loop): Likewise. + (vect_update_inits_of_drs): Likewise. + + (vect_update_inits_of_drs): Setting of DR_MISALIGNMENT moved to + vect_enhance_data_refs_alignment. + (vect_do_peeling_for_alignment): Likewise. + (vect_enhance_data_refs_alignment): Decide if and by how much to peel; + this functionality used to be in vect_analyze_data_refs_alignment. + Also update DR_MISALIGNMENT due to peeling; this functionality used to + be in vect_update_inits_of_drs and vect_do_peeling_for_alignment). + (vect_analyze_data_refs_alignment): Decision on whether and by how much + to peel moved to vect_enhance_data_refs_alignment. Call + vect_supportable_dr_alignment. + + (vect_compute_data_ref_alignment): Set STMT_VINFO_VECTYPE. + (vect_compute_data_refs_alignment): Return bool. Consider return value + of vect_compute_data_ref_alignment and return true/false accordingly. + (vect_enhance_data_refs_alignment): Consider return value of + vect_compute_data_refs_alignment and return true/false accordingly. + + (vect_supportable_dr_alignment): New function. + (vectorizable_store): Call vect_supportable_dr_alignment. + (vectorizable_load): Call vect_supportable_dr_alignment. Alignment + support checks moved from here to vect_supportable_dr_alignment. + + (vect_transform_loop): Avoid 80 columns overflow. + + 2004-11-11 Dorit Naishlos <dorit@il.ibm.com> + + * tree-vectorizer.c (update_phi_nodes_for_guard): Call reverse_phis. + (vect_update_ivs_after_vectorizer): Update function documentation. + Avoid quadratic behavior and direct write to PHI_ARG_DEF. + + 2004-11-14 Dorit Naishlos <dorit@il.ibm.com> + Andrew Pinski <pinskia@physics.uc.edu> + + PR tree-opt/18425 + * tree-vectorize.c (vect_build_loop_niters): Do not insert + NULL into the instruction stream. Initialize new_bb to NULL. + (vect_update_ivs_after_vectorizer): Likewise. + (vect_gen_niters_for_prolog_loop): Likewise. + + PR tree-opt/18400 + * tree-vectorizer.c (make_loop_iterate_ntimes): Set loop->nb_iterations. + (vect_transform_loop_bound): Set loop->nb_iterations. + + 2004-11-14 Dorit Naishlos <dorit@il.ibm.com> + + PR tree-opt/18400 + * gcc.dg/vect/pr18400.c: New test. + + 2004-11-14 Dorit Naishlos <dorit@il.ibm.com> + Andrew Pinski <pinskia@physics.uc.edu> + + PR tree-opt/18425 + * gcc.dg/vect/pr18425.c: New test. + + 2004-11-14 Dorit Naishlos <dorit@il.ibm.com> + + * gcc.dg/vect/vect-78.c: Now vectorized on powerpc*. + + 2004-11-19 Dorit Naishlos <dorit@il.ibm.com> + + * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): New name for + function previously called tree_duplicate_loop_to_edge. + (slpeel_tree_duplicate_loop_to_edge_cfg): New name for function + previously called tree_duplicate_loop_to_edge_cfg. + (slpeel_update_phis_for_duplicate_loop): Prefix 'slpeel' added to + function name. + (slpeel_update_phi_nodes_for_guard): Likewise. + (slpeel_make_loop_iterate_ntimes): Likewise. + (slpeel_add_loop_guard): Likewise. + (allocate_new_names, free_new_names): Function declaration moved to top + of file. + (rename_use_op, rename_def_op): Likewise. + (rename_variables_in_bb, rename_variables_in_loop): Likewise. + (vect_generate_tmps_on_preheader): Function declaration moved. + (vect_transform_for_unknown_loop_bound): Added missing function + declaration. + + 2004-11-19 Dorit Naishlos <dorit@il.ibm.com> + + * tree-vectorizer.c (slpeel_can_duplicate_loop_p): New name for function + previously called verify_loop_for_duplication. All conditions compacted + into one compound condition. Removed debug dumps. + (vect_analyze_loop_with_symbolic_num_of_iters): Removed. Some of the + functionality moved to vect_can_advance_ivs_p, and some to + vect_analyze_loop_form. + (vect_can_advance_ivs_p): New function. Contains functionality that was + taken out of vect_analyze_loop_with_symbolic_num_of_iters. + (slpeel_tree_peel_loop_to_edge): Call slpeel_can_duplicate_loop_p. + (vect_analyze_operations): Call vect_can_advance_ivs_p and + slpeel_can_duplicate_loop_p. + (vect_get_loop_niters): Added documentation. + (vect_analyze_loop_form): Check the loop entry always - not only in case + of unknown loop bound. Create preheader and exit bb if necessary. Apply + a check that used to take place in + vect_analyze_loop_with_symbolic_num_of_iters. + (vectorize_loops): Call verify_loop_closed_ssa under ENABLE_CHECKING. + Remove redundant call to rewrite_into_loop_closed_ssa. + (vect_compute_data_refs_alignment): Removed obsolete comment. + + + 2004-11-19 Dorit Naishlos <dorit@il.ibm.com> + + * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Last two + arguments removed. + (slpeel_tree_peel_loop_to_edge): Call slpeel_make_loop_iterate_ntimes + without last two arguments. Update single_exit of loops. + (vect_update_niters_after_peeling): Removed. Its functionality was + moved to vect_do_peeling_for_alignment. + (vect_do_peeling_for_loop_bound): New name for function previously + called vect_transform_for_unknown_loop_bound. + (vect_transform_loop_bound): Call slpeel_make_loop_iterate_ntimes + instead of code that duplicates the same functionality. + (vect_do_peeling_for_alignment): Functionality of + vect_update_niters_after_peeling moved here. + (vect_transform_loop): Unify call to vect_do_peeling_for_loop_bound - + previously named vect_transform_for_unknown_loop_bound - for both known + and unknown loop bound cases. + + 2004-11-19 Andreas Tobler <a.tobler@schweiz.ch> + + * tree-vectorizer.c (slpeel_verify_cfg_after_peeling): Define only + if checking is enabled. + + 2004-11-22 Dorit Naishlos <dorit@il.ibm.com> + + PR tree-opt/18544 + * tree-vectorizer.c (vect_analyze_data_refs): Fail if memtag not found. + + 2004-11-22 Dorit Naishlos <dorit@il.ibm.com> + + PR tree-opt/18536 + * tree-vectorizer.c (make_loop_iterate_ntimes): Use type of niters when + creating iv instead of integer_type. + (vect_build_loop_niters): Remove redundant code. + (vect_transform_loop_bound): Removed (duplicates functionality of + make_loop_iterate_ntimes. + (vect_gen_niters_for_prolog_loop): Add documentation. Call + lang_hooks.types.type_for_size to create a type of the required size. + Use that type instead of integer_type. Remove redundant code. + (vect_update_niters_after_peeling): Use type of niters instead of + integer_type. + (vect_transform_loop): Unify handling of known and unknown loop bound + cases. Call make_loop_iterate_ntimes instead of + vect_transform_loop_bound. + + 2004-11-23 Dorit Naishlos <dorit@il.ibm.com> + + PR tree-opt/18403 + PR tree-opt/18505 + * tree-vectorizer.c (vect_create_data_ref_ptr): Use + lang_hooks.types.type_for_size instead of integer_type_node for the + type of ptr_update. + + 2004-11-23 Dorit Naishlos <dorit@il.ibm.com> + * tree-vectorizer.c (vect_analyze_operations): Don't vectorize if + the vectorization factor is greater than the iteration count. + (vect_gen_niters_for_prolog_loop): No need to calculate min if the + iteration count is known. + + (vect_build_symbol_bound): Removed. Its functionality moved to + vect_generate_tmps_on_preheader. + (vect_generate_tmps_on_preheader): Moved content of + vect_build_symbol_bound here instead of calling it. Changed some + variables names. + + (vect_build_loop_niters): We don't expect a new_bb to be generated - + use gcc_assert. + (vect_gen_niters_for_prolog_loop): Likewise. + (vect_gen_niters_for_prolog_loo): Likewise. + + (slpeel_make_loop_iterate_ntimes): Use buildN instead of build. + (slpeel_add_loop_guard): Likewise. + (slpeel_tree_peel_loop_to_edge): Likewise. + (vect_do_peeling_for_alignment): Likewise. + + (vect_get_first_index): Missing space. + + 2004-11-30 Dorit Naishlos <dorit@il.ibm.com> + PR tree-opt/18173 + + * tree-vectorizer.c (vect_can_force_dr_alignment_p): Return false for + decls that are assembled before vectorization takes place. + (vect_compute_data_ref_alignment): Set DECL_USER_ALIGN to 1. + + 2004-11-30 Dorit Naishlos <dorit@il.ibm.com> + * tree-vectorizer.c (vect_gen_niters_for_prolog_loop): Use + tree_low_cst instead of TREE_INT_CST_LOW. + + 2004-11-30 Ira Rosen <irar@il.ibm.com> + + PR tree-opt/18607 + * tree-vectorizer.c (vect_analyze_data_refs): Use temporary + variable for data_reference when looking for memtag. + + 2004-12-02 Dorit Naishlos <dorit@il.ibm.com> + + PR tree-opt/18716 + * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Properly set + then and else labels. + +2004-12-17 Mike Stump <mrs@apple.com> + + Radar 3549855 + * c-lex.c (c_lex_with_flags): Always do BOL processing for CW + asms. + +2004-12-17 Dale Johannesen <dalej@apple.com> + + Radar 3851659 + * c-decl.c (disagnose_mismatched_decls): Fix from mainline. + +2004-12-17 Fariborz Jahanian <fjahanian@apple.com> + + Radar 3914905 + * c-typeck.c (digest_init): Handle case of vector literal + initializer initializing a const variable. + * convert.c (build_compound_literal_vector): New routine to generate a + COMPOUND_LITERAL_EXPR expression for a vector constant. + (convert_to_vector); call build_compound_literal_vector. + +2004-12-16 Stuart Hastings <stuart@apple.com> + + Radar 3910248, 3915171 + * config/rs6000/rs6000.c (output_call): correctly skip + non-line-number notes. + +2004-12-16 Ziemowit Laski <zlaski@apple.com> + + Radar 3921172 + * dbxout.c (dbxout_finish): Switch to .text section before + emitting final SO STABS record. + +2004-12-15 Dale Johannesen <dalej@apple.com> + + Radar 3619824 + * config/rs6000/rs6000.c (optimization_options): Clear + flag_errno_math. + * doc/invoke.texi: Document that -fno-math-errno is the default. + +2004-12-15 Ziemowit Laski <zlaski@apple.com> + + Radar 3918376 + * config/rs6000/rs6000.c (altivec_ovl_resolve): When matching + 4-element vectors, allow V4SF in addition to V4SI modes. + (rs6000_fold_builtin): If invalid arguments are provided, use + the return type for the first overload candidate, if available. + +2004-12-15 Ziemowit Laski <zlaski@apple.com> + + Radar 3913672 + * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): For + '-faltivec', pass in '-pim-altivec' instead of '-maltivec + -maltivec-pim'. + * config/rs6000/rs6000.c (rs6000_altivec_switch): New. + (rs6000_override_options): Handle '-m(no)altivec' explicitly + (rather than via TARGET_SWITCHES); for '-maltivec' and + '-mcpu=xxx' (where xxx supports AltiVec), clear the + flag_disable_opts_for_faltivec flag, move handling of + '-m(no-)pim-altivec' (formerly '-m(no-)altivec-pim') + before handling of -maltivec and -mcpu, and have it + set MASK_ALTIVEC and flag_disable_opts_for_faltivec. + * config/rs6000/rs6000.h (TARGET_SWITCHES): Move + '-m(no-)altivec' to TARGET_OPTIONS. + (TARGET_OPTIONS): Rename '-m(no-)altivec-pim' to + '-m(no-)pim-altivec'; add in '-m(no-)altivec'. + (rs6000_altivec_switch): New forward declaration. + * doc/invoke.texi: Rename '-m(no-)altivec-pim' to + '-m(no-)pim-altivec'; move description of disabled + optimizations from '-faltivec' to '-mpim-altivec'. + +2004-12-14 Stuart Hastings <stuart@apple.com> + + Radar 3910248 + * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): ignore + -mlongcall when -m64 in use. + +2004-12-14 Fariborz Jahanian <fjahanian@apple.com> + + Radar 3889727 + brought in fix for PR target/18641 from FSF + below. + +2004-12-11 David Edelsohn <edelsohn@gnu.org> + Ulrich Weigand <uweigand@de.ibm.com> + + PR target/18641 + * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Reload all + constants into all register classes intersecting with FLOAT_REGS + via memory. + * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): Same. + * config/rs6000/rs6000.md (movdi_internal32): Ignore FPRs when + choosing register preferences. + (movdi_internal64): Same. + +2004-12-13 Mike Stump <mrs@apple.com> + + Radar 3865314 + * c-common.c (convert_and_check): Add support for -Wshorten-64-to-32. + * c.opt (Wshorten-64-to-32): Likewise. + * doc/invoke.texi (Warning Options): Likewise. + * Makefile.in (c-common.o): Added dependancy for options.h. + +2004-12-10 Devang Patel <dpatel@apple.com> + + Radar 3572046 (related) + * tree-ssa-forwprop.c (cast_conversion_assignment_p): New. + (replace_use_in_cond_expr): New. + (all_uses_are_replacable): New. + (eliminate_unnecessary_casts): New. + (tree_ssa_forward_propagate_single_use_var): Eliminate unnecessary + casts. + +2004-12-10 Devang Patel <dpatel@apple.com> + + Radar 3572046 (last patch) + * config/rs6000/rs6000.c (rs6000_emit_vector_select): Adjust + vector select insn parameters. + + +2004-12-10 Devang Patel <dpatel@apple.com> + + Radar 3893659 + * gcc.c (main): Do not break out of loop when error is reported while + processing one source file. + +2004-12-10 Ziemowit Laski <zlaski@apple.com> + + Radar 3640156, 3877958 + * config/rs6000/altivec.h: Skip contents of file + #ifdef __APPLE_ALTIVEC__, and issue a warning. + * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Do not + 'include altivec.h' upon seeing '-faltivec'; instead, specify + '-maltivec-pim'. + * config/rs6000/rs6000-c.c: Include options.h. + (rs6000_cpu_cpp_builtins): Define __APPLE_ALTIVEC__ and 'vec_step' + macro only if '-maltivec-pim' has been specified. + * config/rs6000/rs6000-protos.h (rs6000_fold_builtin): New prototype. + * config/rs6000/rs6000.c (altivec_cov_rt_12, altivec_cov_rt_2p, + altivec_cov_rt_1d, altivec_ovl_resolve, altivec_convert_args, + rs6000_fold_builtin): New functions. + (rs6000_altivec_inline_etc, rs6000_altivec_pim, + rs6000_altivec_pim_switch): New variables. + (rs6000_override_options): Handle '-m(no-)altivec-pim'. + (vector_builtin_fns): Decorate with GTY(()) voodoo; do not reserve + extra space for AltiVec PIM built-ins (since they won't be stored + there.) + (TARGET_FOLD_BUILTIN): Point at rs6000_fold_builtin(). + (enum pim_flags, struct altivec_pim_info): New data types. + (altivec_pim_table): New global variable. + (def_pim_builtin): New macro. + (altivec_init_builtins): If '-maltivec-pim' was specified, define + AltiVec PIM operations and predicates as built-ins. + (rs6000_handle_altivec_attribute): Add handling for 'element__' + argument, which returns the element type of the vector type passed in. + * config/rs6000/rs6000.h (enum rs6000_builtins): Append a new range, + ALTIVEC_PIM__FIRST... ALTIVEC_PIM__LAST, representing built-in codes + for AltiVec PIM operations and predicates. + (TARGET_OPTIONS): Add '-m(no-)altivec-pim' option. + (rs6000_altivec_inline_etc, rs6000_altivec_pim, + rs6000_altivec_pim_switch): Forward-declare. + * config/rs6000/t-rs6000 (rs6000-c.o): Depend on options.h. + * doc/invoke.texi: Update '-faltivec' description; add description + for '-maltivec-pim'. + +2004-12-08 Mike Stump <mrs@apple.com> + + Radar 3679243 + * varasm.c (assemble_variable): Don't use .zerofill for weak + symbols as it isn't supported in the assembler. Also, key off + !DECL_COMMON directly instead of flag_no_common so that C++ works. + +2004-12-08 Devang Patel <dpatel@apple.com> + + Radar 3903799 + * config/darwin.h (ASM_SPEC): Supply -force_cpusubtype_ALL. + +2004-12-07 Dale Johannesen <dalej@apple.com> + + Radar 3888787 + * doc/invoke.texi (-msoft-float): Rewrite to reflect reality. + +2004-12-07 Mike Stump <mrs@apple.com> + + Radar 3603833, 3896176, 3518821. + * c-common.c (cw_asm_operands_arg): New. + (print_cw_asm_operand): Add support for figuring out if the + argument must be a register or a memory reference. + (cw_asm_get_register_var): Likewise. + (cw_op_constraint): Likewise. + (cw_op_comp): Likewise. + (cw_constraint_for): Likewise. + (cw_process_arg): Likewise. + (cw_asm_stmt): Likewise. + (print_cw_asm_operand): Likewise. + (cw_asm_get_register_var): Likewise. + (cw_memory_clobber): Add support for figuring out if the + instruction needs a memory clobber. + (cw_asm_stmt): Likewise. + (print_cw_asm_operand): Add support for static duration variables. + + (cw_get_identifier): New. + (cw_ha16, cw_hi16, cw_lo16): New. + (get_cw_asm_label): Add support for ha16(x), hi16(x) and lo16(x). + * c-common.h (cw_get_identifier): New. + * c-parse.in (cw_identifier): Add support for '+', '-' and '.' in + C CW opcodes to allow for a less tightly coupled lexer. + (single_cw_asm_stmt): Likewise. + (cw_asm_operand): Add support for ha16(x)(r). + + * doc/extend.texi (Asm Blocks and Functions): Document memory + clobbers and instructions that take a memory operand. + +2004-12-06 Fariborz Jahanian <fjahanian@apple.com> + + Radar 3893215 + Following FSF mainline patch fixes it. + +2004-11-11 Zdenek Dvorak <dvorakz@suse.cz> + + PR tree-optimization/17742 + * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Handle + MINUS_EXPR correctly. + +2004-12-03 Dale Johannesen <dalej@apple.com> + + Radar 3905019 + * opts.c (common_handle_option): Fix from mainline. + +2004-12-03 Stuart Hastings <stuart@apple.com> + + Radar 3855246 + * config/rs6000/rs6000.c (init_cumulative_args): Remove APPLE LOCAL. + * config/rs6000/rs6000.h (target_flags): Remove APPLE LOCAL. + (TARGET_OPTIONS): Add -mlong-branch as a synonym for -mlongcall. + +2004-12-03 Caroline Tice <ctice@apple.com> + Andrew Pinski <pinskia@physics.uc.edu> + + Radar 3469752 (Adding loops-to-memset optimization) + * Makefile.in (OBJS-common): Add tree-ssa-loo-memset.o to list + (tree-ssa-loop-memset.o): Add rule for making this. + * bitmap.h (bitmap_empty_p): New macro. + * common.opt (ftree-loop-memset): Add new flag for optimization. + * tree-flow.h (tree_ssa_memset): Add function declaration. + * tree-optimize.c (init_tree_optimization_passes): Add loops-to-memset + pass. + * tree-pass.h (pass_memset): Add extern declaration for loops-to-memset + pass. + * tree-ssa-loop.c (tree_ssa_loop_memset, gate_tree_ssa_loop_memset): New + functions. + (pass_memset): Define new pass. + * tree-ssa-loop-memset.c: New file. + * tree-vectorizer.c (vect_is_simple_iv_evolution): Remove static + forward declaration; make the function globally visible. + (vect_get_loop_niters): Likewise. + (vect_analyze_pointer_ref_access): Likewise. + * tree-vectorizer.h (vect_is_simple_iv_evolution): Add external function + declaration. + (vect_get_loop_niters): Likewise. + (vect_analyze_pointer_ref_access): Likewise. + +2004-12-02 Devang Patel <dpatel@apple.com> + + Radar 3855723 and 3886718 + + Backport from Mainline + 2004-12-02 Devang Patel <dpatel@apple.com> + * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -gfull and -gused. + * config/rs6000/darwin.h (CC1_SPEC): Do not handle -gfull and -gused. + * config/i386/darwin.h (CC1_SPEC): Same. + +2004-12-02 Fariborz Jahanian <fjahanian@apple.com> + + Radar 3893215 - part 1 + * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi): + Added missing check for unknown evolution_of_loop. + (from FSF mainline). + +2004-11-30 Fariborz Jahanian <fjahanian@apple.com> + + Radar 3893125 + * loop.c (loop_giv_reduce_benefit): Remove APPLE LOCAL + patch which caused regression in galaxy(VMX) of skidmarks. + +2004-11-24 Devang Patel <dpatel@apple.com> + + * gcc.h: APPLE LOCAL marker cleanup. + +2004-11-24 Devang Patel <dpatel@apple.com> + + Radar 3876218 + * gcc.c (process_command): Supply -v to linker. + +2004-11-23 Stan Shebs <shebs@apple.com> + + * config.gcc (powerpc-*-darwin*): Remove bringup conditional. + * mklibgcc.in: Don't try to make dylibs from static/kext + libgcc. + * config/t-slibgcc-darwin: Don't use SHLIB_MULTILIB. + +2004-11-23 Devang Patel <dpatel@apple.com> + + Radar 3886137 + * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add isysroot. + * config/darwin-c.c (darwin_register_frameworks): Use sysroot. + +2004-11-22 Devang Patel <dpatel@apple.com> + + Radar 3846092 + * doc/invoke.text: Remove outdated docs for -fscalar-evolutions and + -fall-data-deps. Document not disabling of -fstrict-aliasing, when + auto vectorization is used, in Apple GCC compiler. + * opts.c (decode_options): Disable -fstrict-aliasing only if -ftree-vectorize + is not used. + +2004-11-22 Dale Johannesen <dalej@apple.com> + + * config/darwin.h (JUMP_TABLES_IN_TEXT_SECTION): Conditionalize + properly and comment. + +2004-11-21 Dale Johannesen <dalej@apple.com> + + * config/darwin.h (JUMP_TABLES_IN_TEXT_SECTION): Define. + (TARGET_TERMINATE_DW2_EH_FRAME_INFO): Remove dup definition. + +2004-11-18 Dale Johannese <dalej@apple.com> + + * lambda-code.c: cosmetic changes to match mainline. + +2004-11-17 Stuart Hastings <stuart@apple.com> + + Radar 3837835 + * cgraph.c: add "#include <function.h>". + (dump_cgraph_node) Add uses_vector bit to dump. + * cgraphunit.c:(altivec_infection, fndecl_uses_vector_p) New. + (record_call_1) Set uses_vector. + (cgraph_create_edges) Set uses_vector. + (cgraph_decide_inlining_of_small_functions, cgraph_decide_inlining, + cgraph_decide_inlining_incrementally) Check for altivec_infection. + * testsuite/lib/scantree.exp (diff-tree-dumps): + Expand globbing of 't??' dumpfile names to include 'ipa'. + +2004-11-16 Devang Patel <dpatel@apple.com> + + Merge stuff from autovect-branch. + + 2004-11-12 Devang Patel <dpatel@apple.com> + + * optabs.c (vector_compare_rtx): Use COMPARISON_CLASS_P. + + 2004-11-12 Devang Patel <dpatel@apple.com> + + Backport from Mainline. + + 2004-11-12 Sebastian Pop <pop@cri.ensmp.fr> + + * tree-data-ref.c (analyze_subscript_affine_affine): Correctly + compute the first overlapping iterations. + + 2004-11-12 Devang Patel <dpatel@apple.com> + + * tree-data-ref.c (compute_subscript_distance): Make externally visible. + (build_class_dist_vector): Same. + * tree-data-ref.h (compute_subscript_distance): New external decl. + (build_class_dist_vector): Same. + * tree-vectorizer.c (loops_num): New variable. + (vect_build_dist_vector): New function. + (vect_analyze_data_ref_dependence): Use distance vector to determine + dependence. + (vect_analyze_data_ref_dependences): Remove local variable loop. + (vect_analyze_loop): Analyze operations before data dependences + (vectorize_loops): Remove local variable loops_num. + + 2004-11-12 Devang Patel <dpatel@apple.com> + + * tree-vectorizer.c (vectorizable_select): New function. + (vect_is_simple_cond): New function. + (vect_analyze_operations): Handle conditional expr. + * tree-vectorizer.h (stmt_vec_info_type): New member, select_vec_info_type. + +2004-11-16 Dale Johannesen <dalej@apple.com> + + * tree-ssa.c (flush_pending_stmts): New. + +2004-11-16 Dale Johannesen <dalej@apple.com> + + * config/rs6000/rs6000.c (rs6000_override_options): + Put -ftree-loop-linear into -fast. + +2004-11-16 Dale Johannesen <dalej@apple.com> + + * lambda-code.c: Make identical to mainline as of + Nov 11, plus Dan Berlin's patch for swim. + * tree-loop-linear.c: Make identical to mainline. + * tree-data-ref.c: Make identical to mainline as + of Nov 11. + * tree-optimize.c (init_tree_optimization_passes): + Make order of passes same as mainline. + * tree-ssa-loop-ivopts.c (try_add_cand_for): Roll in + Zdenek's patch for important candidates. + +2004-11-16 Dale Johannesen <dalej@apple.com> + + * fold-const.c (try_move_mult_to_index): New. + (fold): Use it (2 places). + +2004-11-16 Dale Johannesen <dalej@apple.com> + + * tree.c (build_low_bits_mask): New. + * tree.h: Declare it. + * tree-ssa-loop-niter.c (number_of_iterations_cond): Use it. + +2004-11-16 Devang Patel <dpatel@apple.com> + + Related to Radar 3837835. + * tree-cfg.c (ivu_gate, fndecl_uses_vector_p, identify_vector_use, + pass_identify_vector_use): Remove. + * tree-optimzie.c (init_tree_optimization_passes): Remove pass_identify_vector_use. + * tree-pass.h (pass_identify_vector_use): Remove extern decl. + +2004-11-16 Caroline Tice <ctice@apple.com> + + * varasm.c (assemble_start_function): Don't print out section label + when aligning cold section. + +2004-11-16 Dale Johannesen <dalej@apple.com> + + * dbxout.c (dbxout_source_file): Restore local patch + for hot/cold partitioning. + +2004-11-16 Dale Johannesen <dalej@apple.com> + + * calls.c (expand_call): Fix ICE building crafty. + +2004-11-15 Dale Johannesen <dalej@apple.com> + + * profile.c (compute_branch_probabilities): Roll in fix from mainline. + +2004-11-15 Dale Johannesen <dalej@apple.com> + + * tree-flow.h (stmt_bsi): Remove. + (basic_block bsi_insert_on_edge_immediate): Remove duplicate decl. + (tree_block_label): Remove name in prototype. + (add_referenced_tmp_var): Ditto. + (TDFA_USE_OPS): Parenthesize. + (TDFA_USE_VOPS): Parenthesize. + (flush_pending_stmts): New. + (tree_duplicate_loop_to_exit): Remove. + (update_lv_condition): Ditto. + (estimate_loop_size): Ditto. + (insert_edge_copies): Remove name in prototype. + (expr_invariant_in_loop_p): Ditto. + +2004-11-15 Dale Johannesen <dalej@apple.com> + + * c-decl.c (find_tree_with_code_1): Remove. + (find_tree_with_code): Ditto. + (find_pointer): Ditto. + (struct should_transpose_for_loops_t): Ditto. + (should_transpose_for_loops_1): Ditto. + (should_transpose_for_loops): Ditto. + (tree_contains_1): Ditto. + (tree_contains): Ditto. + (perform_loop_transpose): Ditto. + (loop_transpose): Ditto. + (finish_function): Don't call it. + * common.opt (-floop-transpose): Remove. + * flags.h (flag_loop_transpose): Remove. + * opts.c (OPT_floop_transpose): Remove. + * toplev.c (flag_loop_transpose): Remove. + * config/rs6000/rs6000.c (rs6000_override_options): Don't set it. + * doc/invoke.texi (-fast): Remove reference. + * testsuite/gcc.apple/loop-transpose-1.c: Remove. + +2004-11-15 Matt Austern <austern@apple.com> + + Radar 3878983 + * ginclude/tgmath.h (fdim) Use __TGMATH_REAL_2 macro. + (hypot) Likewise. + (remainder) Likewise. + (nexttoward) Use proper number of arguments for TGMATH_REAL_1_2. + +2004-11-11 Dale Johannesen <dalej@apple.com> + + Radar 3875337 + * tree-cfg.c (cleanup_control_expr_graph): Remove redundant + local patch from LNO. + (thread_jumps_from_bb): Remove wrong local patch from LNO; + make identical to mainline. + (thread_jumps): Make identical to mainline. + +2004-11-11 Stuart Hastings <stuart@apple.com> + + * i386.md (*movqi_1): Short-term fix for 3838108. + +2004-11-11 Stuart Hastings <stuart@apple.com> + + * tree.c (build_vector): Proper initialization for 'list' + +2004-11-10 Fariborz Jahanian <fjahanian@apple.com> + + * c-common.c (vector_constructor_from_expr): Remove replication + of missing initializer. + * tree.c (build_vector): Replicate missing initializer. + * cp/typeck.c (build_c_cast): Move building of vector constant + past checking for processing of template declaration. + +2004-11-08 Geoffrey Keating <geoffk@apple.com> + + * gcc.c: Improve local markers. + (process_command): Set __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ + rather than MAC_OS_X_VERSION_MIN_REQUIRED. + +2004-11-08 Devang Patel <dpatel@apple.com> + + Radar 3846514 + * tree-if-conv.c (clean_predicate_lists): Use loop header and latch + directly. + +2004-11-08 Ziemowit Laski <zlaski@apple.com> + + Radar 3853429 + * varasm.c (output_addressed_constants): For CONST_DECLs, + output the initializer if present. + * config/darwin.c (machopic_select_section): Ensure that + constant Objective-C strings and constant CFStrings get emitted + into correct sections. + +2004-11-05 Devang Patel <dpatel@apple.com> + + Radar 3853509. + * cp/parser.c (cp_parser_objc_method_prototype_list): Handle #pragma. + (cp_parser_objc_class_interface): Get protocol qualified type. + +2004-11-05 Stuart Hastings <stuart@apple.com> + + Radar 3848818 + * cfgcleanup.c(merge_memattrs): copied from FSF mainline. + +2004-11-04 Dale Johannesen <dalej@apple.com> + + * config/darwin.h (EXTRA_SECTION_FUNCTIONS): + Fix text_unlikely_section. + +2004-11-04 Dale Johannesen <dalej@apple.com> + + Radar 3759876 + * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Enable + indirect sibcalls. + * config/rs6000/rs6000.md (*sibcall_symbolic): Make them work. + (*sibcall_value_symbolic): Ditto. + +2004-11-04 Dale Johannesen <dalej@apple.com> + + * opts.c (decode_options): Use mainline-style loop opts. + +2004-11-04 Dale Johannesen <dalej@apple.com> + + * config/rs6000/rs6000.md (*save_fpregs_with_label_si): + Use any_parallel_operand to remove a warning. + * config/rs6000/darwin.md (*save_fpregs_with_label_di): Ditto. + (*save_vregs_di): Ditto. + (*restore_vregs_di): Ditto. + (*save_vregs_with_label_di): Ditto. + +2004-11-04 Devang Patel <dpatel@apple.com> + + Partial 3837835 fix. + * function.h (struct function): New member, uses_vector. + * tree-cfg.c (ivu_gate, fndecl_uses_vector_p, identify_vector_use, + pass_identify_vector_use): New. + * tree-optimzie.c (init_tree_optimization_passes): Add pass_identify_vector_use. + * tree-pass.h (pass_identify_vector_use): New extern decl. + +2004-11-04 Devang Patel <dpatel@apple.com> + + Back out 3837840 fix. + * c-opts.c (c_common_handle_option): Update APPLE LOCAL marker. + * flags.h (flag_inline_trees): Remove extern decl. + * toplev.c (process_optiosn): Do not disable inlining with -faltivec. + +2004-11-03 Ziemowit Laski <zlaski@apple.com> + + Radar 3863563 (fix from mainline) + * c-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Remove. + (c_types_compatible_p): Move function definition... + * c-objc-common.c (c_types_compatible_p): ...here. + * c-objc-common.h (LANG_HOOKS_TYPES_COMPATIBLE_P): Moved here from + c-lang.c. + +2004-11-02 Fariborz Jahanian <fjahanian@apple.com> + + Radar 3857727 + * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Remove + setting of targetm.cast_expr_as_vector_init. + * config/rs6000/rs6000.c (rs6000_override_options): Set + targetm.cast_expr_as_vector_init. + +2004-11-02 Fariborz Jahanian <fjahanian@apple.com> + + Radar 3846637 + * config/rs6000/rs6000.md: Remove condition for + HONOR_SIGNED_ZEROS from fnmsub generation. + +2004-11-01 Ziemowit Laski <zlaski@apple.com> + + Radar 2810013 (fix from mainline) + * c-common.h (objc_lookup_ivar): Add second parameter to + prototype. + * c-typeck.c (build_external_ref): After looking up symbol, + pass it to objc_lookup_ivar() to decide whether it or the + ivar should be used, rather than deciding the issue locally. + * stub-objc.c (objc_lookup_ivar): Add an OTHER parameter, + which is simply returned in the non-ObjC case. + +2004-10-29 Fariborz Jahanian <fjahanian@apple.com> + + Radar 3848842 + * cp/call.c (build_over_call): Don't change type of + the function pointer built by call to build_vfn_ref_using_vtable. + * testsuite/g++.dg/kext6.C: New test + +2004-10-27 Geoffrey Keating <geoffk@apple.com> + + * c-common.c (handle_weak_import_attribute): Delete. + (c_common_attribute_table): Remove 'weak_import'. + * c-decl.c (start_function): Remove local change for weak_import. + * dbxout.c (dbxout_source_file): Remove local change for + hot/cold partitioning, sync with FSF GCC. + * dmp-tree.c (print_decl): Remove local change for weak_import. + * idebug.c: Remove local change for weak_import. + * rtl.h (struct rtx_def): Remove local change for weak_import. + (SYMBOL_REF_WEAK_IMPORT): Delete. + * tree.h (DECL_WEAK_IMPORT): Delete. + (IDENTIFIER_WEAK_IMPORT): Delete. + (struct tree_decl): Delete weak_import_flag. + (enum attribute_flags): Delete ATTR_FLAG_FUNCTION_DEF. + * varasm.c (merge_weak): Remove local change for weak_import. + * config/darwin.c (machopic_output_indirection): Remove local change + for weak_import. + (darwin_set_section_for_var_p): Do nothing if symbol is weak. + * config/rs6000/rs6000.c (find_weak_imports): Delete. + (rs6000_assemble_integer): Remove local change for weak_import. + (local_label_unique_number): Delete. + (macho_branch_islands): Remove local change for weak_import. + +2004-10-26 Geoffrey Keating <geoffk@apple.com> + + Radar 3840704 + * c-opts.c (c_common_handle_option): Rename flag_altivec to + flag_disable_opts_for_faltivec. + * c.opt (faltivec): Likewise. + * toplev.c (process_options): Likewise, and update comment. + * config/rs6000/rs6000.c (expand_block_clear): Handle + flag_disable_opts_for_faltivec. + (expand_block_move): Likewise. + +2004-10-26 Devang Patel <dpatel@apple.com> + + Radar 3233789 + * dbxout.c (dbxout_init): Remove APPLE LOCAL patch that suppresses + SO stab address. + +2004-10-26 Devang Patel <dpatel@apple.com> + + Radar 3760592 + + Backport from mainline. + 2004-10-21 Dndrew Pinksi <pinskia@physics.uc.edu> + * c-opts.c (push_command_line_include): Use the current file + name instead of the main one. + +2004-10-26 Matt Austern <austern@apple.com> + + * ginclude/tgmath.h (fabs): Fix typo (complex abs is cabs, not cfabs) + +2004-10-22 Fariborz Jahanian <fjahanian@apple.com> + + * config/rs6000/darwin.md: Remove vecstore/vecload patterns + specific to 64-bit Darwin. + +2004-10-21 Andrew Pinski <pinskia@physics.uc.edu> + Ziemowit Laski <zlaski@apple.com> + + Radar 3845826 (includes PR objc/17923) + * tree.c (staticp): A CONST_DECL has static storage if either + TREE_STATIC or DECL_EXTERNAL is set. + * config/darwin.c (darwin_build_constant_cfstring): Build a global + CONST_DECL to hold each constructed CFString. + * c-decl.c (pushdecl_top_level): Accept CONST_DECLs which can + have null names. + +2004-10-21 Fariborz Jahanian <fjahanian@apple.com> + + * c-common.c (vector_constructor_from_expr): In building vector expressions, + fold no_expr of nanf into a cst_real expression tree. + +2004-10-21 Fariborz Jahanian <fjahanian@apple.com> + + * function.c (assign_parms): Iterate over all non-vector args first, + then over vector args. + +2004-10-21 Ziemowit Laski <zlaski@apple.com> + + Radar 3540965 + * c-common.c (flag_objc_call_cxx_cdtors): New variable. + * c-common.h (flag_objc_call_cxx_cdtors): New forward declaration. + * c-opts.c (c_common_handle_option): Process '-fobjc-call-cxx-cdtors' + option. + * c.opt (fobjc-call-cxx-cdtors): New option. + * doc/invoke.texi (fobjc-call-cxx-cdtors): Document. + +2004-10-19 Devang Patel <dpatel@apple.com> + + Radar 3837840 + * c-opts.c (c_common_handle_option): Update APPLE LOCAL marker. + * c.opt (faltivec): Same. + * toplev.c (process_options): Same. + * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): + Same. + + +2004-10-19 Devang Patel <dpatel@apple.com> + + Radar 3837840 + * c-opts.c (c_common_handle_option): Handle OPT_faltivec. + * c.opt (faltivec): New option. + * toplev.c (process_options): Disable inlining when -faltivec + is used. + * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): + Supply -faltivec to cc1* also. + +2004-10-19 Fariborz Jahanian <fjahanian@apple.com> + + * c-common.c (cw_asm_stmt): Set correct constraint for + vector arguments. + +2004-10-18 Ziemowit Laski <zlaski@apple.com> + + Radar 3832999 (fix from mainline) + * c-parse.in (reservedwords): Add OBJC_TYPE_QUAL as alternative. + +2004-10-18 Devang Patel <dpatel@apple.com> + + Radar 3753408 + * Makefile.in (GTFILES): Remove APPLE LOCAL comments. + * target-def.h (TARGET_VECTOR_COMPARE_P, TARGET_VECTOR_COMPARE_FOR_P, + TARGET_VECTOR_COMPARE_STMT, TARGET_VECTOR_SELECT_P, + TARGET_VECTOR_SELECT_FOR_P, TARGET_VECTOR_SELECT_STMT): Remove #defines. + (TARGET_VECT): Remove vector select and compare members. + * target.h (struct gcc_target): Remove vector select and + compare members. + * tree-dfa.c (dump_immediate_uses_for): Do not print block number. + * tree-gimple.c (is_gimple_stmt): Handle COND_EXPR properly. + * tree-ssa-operands.c (add_vdef): Remove. + (build_ssa_operands): Remove local patch to handle COND_EXPR inside + MODIFY_EXPR case. + (get_expr_operands): Same. + * tree.c (get_array_base): Remove. + * config/rs6000/rs6000.c (rs6000_vector_compare_p, + rs6000_vector_compare_for_p, rs6000_vector_compare_stmt, + rs6000_vector_select_p, rs6000_vector_select_for_p, + rs6000_vector_select_stmt, get_vector_compare_for, + get_vector_select_for): Remove. + (TARGET_VECTOR_COMPARE_P, TARGET_VECTOR_COMPARE_FOR_P, + TARGET_VECTOR_COMPARE_STMT, TARGET_VECTOR_SELECT_FOR_P, + TARGET_VECTOR_SELECT_STMT): Remove #defines. + +2004-10-16 Dale Johannesen <dalej@apple.com> + + * c-common.c (c_common_get_alias_set): Use GGC for type_hash_table. + +2004-10-15 Dale Johannesen <dalej@apple.com> + + * objcp/objcp-lang.c (tree_code_type): Fix merge omission. + +2004-10-15 Mike Stump FIXME + + merge + +2004-10-15 Stuart Hastings <stuart@apple.com> + + * simplify-rtx.c(simplify_relational_operation): copied from FSF mainline. + +2004-10-15 Stuart Hastings <stuart@apple.com> + + * c-common.c(print_cw_asm_operand): proper casting. + * expr.c(expand_expr_addr_expr): delete problematic assertions. + +2004-10-14 Robert Bowdidge <bowdidge@apple.com> + + * config/darwin-driver.c: Remove off-by-one error in QA_OVERIDE... + machinery. + +2004-10-15 Fariborz Jahanian <fjahanian@apple.com> + + Radar 3719208 + * stor-layout.c (update_alignment_for_field): Don't use + first-field alignment adjustment for union. + +2004-10-13 Ziemowit Laski <zlaski@apple.com> + + Radar 3677258 + * c-decl.c (struct lang_identifier): Move definition to c-tree.h. + * c-tree.h (struct lang_identifier): Moved here from c-decl.c; + add 'interface_value' field. + (C_SIZEOF_STRUCT_LANG_IDENTIFIER): Update to reflect increased size. + +2004-10-11 Caroline Tice <ctice@apple.com> + + * passes.c (rest_of_compilation): Move hot/cold partitioning to + occur after scheduling (and SMS), but still before register + allocation. + +2004-10-10 Dale Johannesen <dalej@apple.com> + + * alias.c (write_dependence_p): Refs to same FE object interfere. + +2004-09-29 Stan Shebs <shebs@apple.com> + + * config/darwin.h (REAL_LIBGCC_SPEC): Add non-shared libgcc case for + use during 64-bit bringup. + +2004-09-27 Robert Bowdidge <bowdidge@apple.com> + + * opts.c: Remove QA_OVERRIDE_GCC3_OPTIONS machinery. + * config/darwin-driver.c: Reimplement QA_OVERRIDE_GCC3_OPTIONS in + driver-driver. + +2004-09-27 Dale Johannesen <dalej@apple.com> + + * tree-ssa-copyrename.c (copy_rename_partition_coalesce): + Roll in fix from mainline. + +2004-09-26 Caroline Tice <ctice@apple.com> + Dale Johannesen <dalej@apple.com> + + * value-prof.c (insn_prefetch_values_to_profile): + Don't instrument clobbers. + +2004-09-26 Dale Johannesen <dalej@apple.com> + + * gcc.c (default_compilers): Handle -fast, -fastcp same as -fast. + (process_command): Make -fastf, -fastcp imply -combine. + * tree-ssa-loop-ivopts.c (find_interesting_uses_stmt): Roll in + fix from mainline. + * print-rtl.c (print_rtx): Print REG_NOTES right (from mainline). + +2004-09-24 Dale Johannesen <dalej@apple.com> + + Radar 3811274 + PR 17625 + * loop-doloop.c (doloop-modify): roll in fix from FSF. + +2004-09-23 Stan Shebs <shebs@apple.com> + + * Makefile.in: Use --print-multi-lib to collect + compiled-in multilibs. + * config.gcc: Add in a Darwin 8.x makefile fragment. + * fixinc.in: Bandaid for a missing __ppc64__ in limits.h + * config/rs6000/t-darwin8: New file, adds -m64 multilib. + +2004-09-23 Devang Patel <dpatel@apple.com> + + Radar 3765210. + * gcc.c (main): Handle -E when combine_flag is set. + +2004-09-22 Stan Shebs <shebs@apple.com> + + * config/darwin.h (STARTFILE_SPEC): Don't link in crt2.o if -m64. + +2003-09-21 Matt Austern <austern@apple.com> + + Radar 3807942, backported from FSF mainline + * config/darwin.c (darwin_make_decl_one_only) + Allow coalesced symbol to appear in static archive's table of contents + +2004-09-17 Devang Patel <dpatel@apple.com> + + * gcc.c: Use .gch extension instead of .pch. + +2004-09-13 Dale Johannesen <dalej@apple.com> + + Radar 3793575 + * c-decl.c (start_decl): Fix from mainline (PR 17408). + +2004-09-13 Andrew Pinski <apinski@apple.com> + + Part of radar 3753405 and all of 3767339 + * Makefile.in (c-parse.y): Remove ifcwasm as it is no longer used. + * objc/Makefile.in (objc/objc-parse.y): Likewise. + * c-parse.in: Remove all of @@ifcwasm. Remove all of the MERGE FIXME + comments as they are fixed. + (cw_asm_expr_no_commas, cw_asm_unary_expr, cw_asm_primary, + cw_asm_operand): Change type to be exprtype. + (cw_asm_compstmt_nostart): Remove type. + (single_cw_asm_stmt): For cw_asm_operand use .value for the third + argument of cw_asm_entry. + (cw_asm_compstmt_start): Remove increment of compstmt_count. + Call c_begin_compound_stmt always and pass true. + (cw_asm_compstmt_nostart): Just set cw_asm_block to zero. + (cw_asm_compstmt): Call c_end_compound_stmt. + (cw_nonnull_asm_operands): use .value for the exprtype. + (cw_asm_operand): Set .value to cw_asm_build_register_offset + and .original_code to ERROR_MARK. + (stmt_nocomp): For cw_asm_compstmt and cw_asm_stmt, call + c_finish_expr_stmt. + (cw_asm_expr_no_commas): Remove extraneous curly braces. + Update return exprtype instead of just a tree. + (cw_asm_unary_expr): Likewise. + (cw_asm_primary): Likewise. + * c-typeck.c (cw_asm_c_build_component_ref): Change build2 to build3 and + add NULL as the last argument for COMPONENT_REF. + +2004-09-10 Dale Johannesen <dalej@apple.com> + + * config/rs6000/power4.md: Increase store latency (mainline). + +2004-09-08 Stan Shebs <shebs@apple.com> + + * config/rs6000/darwin-worldsave.asm: Remove, no longer used. + +2004-09-07 Caroline Tice <ctice@apple.com> + + * cfgrtl.c (rtl_verify_flow_info_1): Add new edge flag, + EDGE_CROSSING, to flags test case. + +2004-08-31 Devang Patel <dpatel@apple.com> + + * config/darwin-driver.c (get_arch_name): Replace abort() with + fatal("message"). + (get_driver_name): Same. + +2004-08-30 Fariborz Jahanian <fjahanian@apple.com> + + * c-common.c (vector_constructor_from_expr): Adapt to new representation + of comma-expression in c. + +2004-08-29 Andrew Pinski <apinski@apple.com> + + * loop-doloop.c (add_test): Take the mainline change. + * loop-invariant.c (find_exits, find_invariants_bb): Take the + mainline change, use CALL_P. + * tree-alias-common.c (HAVE_BANSHEE): Take the mainline change. + * tree-into-ssa.c (compute_global_livein): Take the mainline + reformatting. + * tree-pretty-print.c: Remove include for tree-chrec.h as it is + there later on. + * tree-ssa-loop-ivopts.c (zero_p): Make static. + * tree-ssa-loop-niter.c (zero_p): Add back, take the mainline change. + (number_of_iterations_exit): Take the mainline change for getting + a boolean false. + (MAX_ITERATIONS_TO_TRACK): Take the mainline change as it is now + configurable. + (struct nb_iter_bound): Take the mainline comment changes. + * tree-ssa-loop-prefetch.c (zero_p): Add to minimize changes + from the mainline. + * tree-ssa-loop.c (gate_loop): Take the mainline changes as we + want the gate so we can turn them on and off easier. + * tree.h (struct tree_phi_node, rewritten): Take the mainline change + as there are no other integer fields in this struct. + (build_vector_type): Remove duplicated prototype. + (zero_p): Remove prototype. + + * timevar.c (ppc_intrinsic_time): Correct definition and + make static. Cast __mftbu to unsigned. + +2004-08-28 Andrew Pinski <apinski@apple.com> + + * config.in: Regenerate. + +2004-08-23 Richard Henderson <rth@redhat.com> + Andrew Pinski <apinski@apple.com> + + * gimplify.c (gimplify_array_ref_to_plus): Delete. + (gimplify_addr_expr): Do not call gimplify_array_ref_to_plus + for ARRAY_REF. + + * config/rs6000/rs6000.c (altivec_expand_builtin): Go passed + ARRAY_REF also to get to the STRING_CST. + +2004-08-24 Stan Shebs <shebs@apple.com> + + * Makefile.in (libgcc.mk): Add ppc64 and ppc64_static libraries. + (libgcc.a): Move libraries so they will be found in testing. + * config/darwin.h (REAL_LIBGCC_SPEC): Add -m64 cases. + * config/darwin7.h (LIB_SPEC): Add -m64 -static case. + + * calls.c (emit_call_1): Use Pmode instead of SImode in Apple local + indirect call code. + (expand_call): Likewise. + +2004-08-23 Stan Shebs <shebs@apple.com> + + * config/rs6000/rs6000.c (rs6000_emit_prologue): Add 64-bit + cases to optimizations for FP save and picbase setup. + (rs6000_emit_epilogue): Adjust the LR save offset to be correct + for 64-bit frames. + +2004-08-22 Stan Shebs <shebs@apple.com> + + * config/darwin-driver.c (arch_config): Add ppc64. + (add_arch_options): Similarly. + +2004-08-22 Andrew Pinski <apinski@apple.com> + + PR c/15262 + * c-typeck.c (build_unary_op): Use &a.b if the foldded lowered + expression is not constant. + (c_finish_return): Do not go through INDIRECT_REF when looking + for the inner expression of an ADDR_EXPR for warning about. + + PR tree-opt/17138 + * tree-ssa-loop-ivopts.c (peel_address): Handle REALPART_EXPR + and IMAGPART_EXPR. + +2004-08-20 Stan Shebs <shebs@apple.com> + + * config/rs6000/darwin.h (DARWIN_ARCH_LD_SPEC): Pass -arch ppc64 + to linker if -m64. + (DARWIN_ARCH_ASM_SPEC): Similarly. + +2004-08-20 Dale Johannesen <dalej@apple.com> + + * config/rs6000/rs6000.c (rs6000_rtx_costs): Fix from mainline. + +2004-08-19 Dale Johannesen <dalej@apple.com> + + * c-decl.c (implicitly_declare): Reduce error to warning when + disable_typechecking_for_spec_flag is on. + +2004-08-18 Ziemowit Laski <zlaski@apple.com> + + Radar 3753413 + * config/darwin.c (darwin_build_constant_cfstring): Strip NOP_EXPRs + and dereference string literal argument; mark the ADDR_EXPR of + each constant CFString TREE_CONSTANT to squash initializer warnings. + +2004-08-18 Devang Patel <dpatel@apple.com> + + * config/darwin-driver.c (verbose_flag): New. + (do_lipo): Interpret -v. + (main): Set verbose_flag. + +2004-08-18 Dale Johannesen <dalej@apple.com> + + * tree-cfg.c (tree_block_ends_with_call_p): Fix comments. + (tree_block_ends_with_condjump_p): Ditto. + +2004-08-18 Matthew Sachs <msachs@apple.com> + + * Merge from mainline. + +2004-08-17 Devang Patel <dpatel@apple.com> + + * config/darwin-driver.c (main): Do not handle -x separately. + +2004-08-16 Robert Bowdidge <bowdidge@apple.com> + + * Add -mdynamic-no-pic to Darwin-specific options + +2004-08-16 Caroline Tice <ctice@apple.com> + + Add hot/cold partitioning update that was accepted in FSF Mainline. + * varasm.c (text_section): Remove alignment statement. + (assemble_start_function): Remove APPLE LOCAL markers from code + added to FSF mainline; Add code to properly align cold section at + start of function. + +2004-08-16 Devang Patel <dpatel@apple.com> + + Merge from mainlne. + 2004-08-16 Devang Patel <dpatel@apple.com> + + * c-common.c (handle_used_attribute): Set DECL_PRESERVE_P. + * print-tree.c (print_node): Print DECL_PRESERVE_P. + * target-def.h (TARGET_ASM_MARK_DECL_PRESERVED): New #define. + (TARGET_ASM_OUT): New member, TARGET_ASM_MARK_DECL_PRESERVED + * target.h (struct gcc_target): New member, mark_decl_preserved. + * hooks.c (hook_void_charptr): Rename to ... + (hook_void_constcharptr): ... new name. + * hooks.h (hook_void_charptr): Rename to .. + (hook_void_constcharptr): ... new name. + * tree.h (DECL_PRESERVE_P): New #define. + (struct tree_decl): New member, preserve_flag. + * varasm.c (assemble_start_function): Mark decl preserved. + (assemble_variable): Same. + * darwin.c (darwin_mark_decl_preserved): New function. + * darwin.h (TARGET_ASM_MARK_DECL_preserved): New #define. + * darwin-protos.h (darwin_mark_decl_preserved): New decl. + * doc/tm.texi (TARGET_ASM_MARK_DECL_PRESERVED): Document. + +2004-08-13 Matt Austern <austern@apple.com> + + Radar 2872232 + * ginclude/tgmath.h: New file. + * Makefile.in: Add tgmath.h to list of installed headers. + +2004-08-13 Devang Patel <dpatel@apple.com> + + Radar 3729261. Reviewed by Dale. + * dbxout.c (get_lang_number): New. + (dbxout_init): Include lang number in N_SO stab. + * dbxout.h (N_SO_AS, N_SO_C, N_SO_ANSI_C, N_SO_CC, N_SO_FORTRAN, + N_SO_PASCAL, N_SO_FORTRAN90, N_SO_OBJC, N_SO_OBJCPLUS): New #define. + +2004-08-13 Devang Patel <dpatel@apple.com> + + Merge from mainline. Radar 3739309. + 2004-08-11 Devang Patel <dpatel@apple.com> + + * dbxout.c (dbxout_begin_prologue): New function. + (dbx_debug_hooks): Use new begin prologue hook. + (dbxout_function_end): Emit N_ENSYM. + * stab.def (N_BNSYM, N_ENSYM): Define and document these two new stabs. + +2004-08-13 Devang Patel <dpatel@apple.com> + + Merge from mainline. Radar 3739302. + 2004-08-10 Devang Patel <dpatel@apple.com> + + * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -dead_strip + and -no_dead_strip_inits_and_terms. + (LINK_SPEC): Same. + * doc/invoke.text (Darwin Options): Document -dead_strip and + -no_dead_strip_inits_and_terms. + +2004-08-12 Stan Shebs <shebs@apple.com> + + Basic support for 64-bit Darwin. + * config/darwin.c (macho_indirect_data_reference): Add DImode case. + (machopic_legitimize_pic_address): Similarly, plus use Pmode + instead of SImode. + * config/rs6000/darwin.h (PTRDIFF_TYPE): Be "long int" if 64-bit. + (TARGET_OS_CPP_BUILTINS): Add 64-bit preprocessor macro. + (SUBTARGET_SWITCHES): Add -m32 and -m64 flags. + (SUBTARGET_OVERRIDE_OPTIONS): Require 64-bit processor if -m64. + (PROCESSOR_DEFAULT64): Define. + * config/rs6000/darwin.md: New file, patterns specific to 64-bit + Darwin. + * config/rs6000/rs6000.md: Include darwin.md. + (builtin_setjmp_receiver): Add DImode case. + * config/rs6000/rs6000.c (TARGET_ASM_UNALIGNED_DI_OP): Define for + Darwin. + (TARGET_ASM_ALIGNED_DI_OP): Ditto. + (rs6000_emit_move): Add DImode case to Darwin bits. + (machopic_output_stub): Use .quad if 64-bit. + * invoke.texi: Document -m32 and -m64. + +2004-08-12 Dale Johannesen <dalej@apple.com> + + * c-decl.c (diagnose_mismatched_decls): Improve + -fdisable-typechecking-for-spec. + +2004-08-12 Dale Johannesen <dalej@apple.com> + + * gcc.c (default_compilers): Handle -fast same as -combine. + (process_command): Make -fast imply -combine. + * tree-scalar-evolution.c (number_of_iterations_in_loop): + Don't compute iteration count for multiple-exit loops. + * config/rs6000/rs6000.c (rs6000_rtx_costs): Replace from mainline. + +2004-08-10 Devang Patel <dpatel@apple.com> + + Remove Symbol Separation. + Radar 3555440. Reviewed by Mike Stump. + * c-common.c (cb_restore_write_symbols, cb_clear_write_symbols, + cb_start_symbol_repository, cb_end_symbol_repository, + cb_is_builtin_identifier). Remove. + (debug.h): Do not include. + * c-common.h (dbg_dir): Remove. + (dbg_ss_init, c_common_write_context, cb_clear_write_sybols, + cb_restor_write_symbols, cb_start_symbol_repository, c_valid_cinfo, + cb_end_symbol_repository, cb_is_builtin_identifier): Remove extern + decls. + * c-lex.c (init_c_lex): Do not set up symbol separation call backs. + (c_common_write_context): Remove. + * c-objc-common.c (c_objc_common_finish_file): Do not write context. + * c-opts.c (dbg_dir): Remove. + (c_common_handle_option): Remove symbol separation option handling. + (c_common_parse_file): Do not initialize symbol repository. + * c.opt (Winvalid-sr, fsave-repository=): Remove. + * dbxout.c (dbxout_restore_write_symbols, dbxout_clear_write_symbols, + dbxout_start_symbol_repository, dbxout_end_symbol_repository) Remove. + (dbx_debug_h): Remove symbol separation hoooks. + (xcoff_debug): Same. + * debug.c (do_nothing_): Remove symbol separation hooks. + * debug.h (gcc_debug_hooks): Same. + * dwarf2out.c (dwarf2_debug): Same. + * flags.h (orig_write_symbols, flag_grepository): Same. + * gcc.c (pch): Remove fsave-repository support. + (cc1_options): Same. + (asm_options): Same. + (default_compilers): Same. + (option_map): Same. + (dbg_ss): Remove. + (static_specs): Remove dbg_ss. + * opts.c (orig_write_symbols, flag_grepository): Remove. + (set_debug_level): Remove symbol separation support. + * doc/invoke.texi: Remove symbol separation documentation. + +2004-08-09 Geoffrey Keating <geoffk@apple.com> + + * ginclude/stdarg.h: Remove APPLE LOCAL change. + * ginclude/varargs.h: Likewise. + +2004-08-08 Dale Johannesen <dalej@apple.com> + + * c-common.c (c_common_get_alias_set): Fixes from mainline. + * toplev.c: Ditto. + * tree.h: Ditto. + * coverage.c (tree_coverage_counter_ref): Ditto. + * tree-cfg.c (tree_block_ends_will_call_p): Ditto. + (tree_block_ends_with_condjump_p): Ditto. + +2004-08-08 Andrew Pinski <apinski@apple.com> + + * c-objc-common.c (c_objc_common_init): Remove APPLE LOCAL for setting -gused + by default as it is handled in CC1_SPECs now. + * opts.c (set_debug_level): Remove the handling of -gused and -gfull as they + are already handled in CC1_SPECs. + * config/rs6000/darwin.h (CC1_SPEC): Change the APPLE LOCAL tag to be what is + really local now. + +2004-08-06 Dale Johannesen <dalej@apple.com> + + * c-typeck.c (tagged_types_tu_compatible_p): Fix from mainline. + +2004-08-06 Andrew Pinski <apinski@apple.com> + + * config/darwin.h: Fix misplaced #endif which came in via the merge. + +2004-08-04 Fariborz Jahanian <fjahanian@apple.com> + + * c-common.c (vector_constructor_from_expr): Treat all constant + vector expression tree as a constant tree. + +2004-08-03 Stan Shebs <shebs@apple.com> + + Support for CodeWarrior-style assembly language blocks and + functions. Radar 3368707. + + * c.opt (-fasm-blocks): New option. + * c-common.h (enum cw_asm_states): New enum, state values. + * c-tree.h: Declare some functions. + * c-common.c (flag_cw_asm_blocks): New flag. + (cw_asm_states, cw_asm_in_decl, cw_asm_block, cw_asm_at_bol, + cw_asm_in_operands, cw_asm_labelno, cw_asm_buffer, + cw_asm_operands, cw_asm_labels, cw_asm_labels_uniq): New globals. + (cw_asm_default_function_conversion, cw_asm_stmt, + cw_asm_field_offset, cw_asm_field_offset, print_cw_asm_operand, + cw_asm_get_register_var, cw_asm_reg_name, cw_asm_label, + get_atsign_identifier, clear_cw_asm_labels, get_cw_asm_label, + cw_asm_build_register_offset, cw_asm_entry): New functions. + * c-decl.c (grokdeclarator): Recognize asm keyword, set flag + on function decl if seen. + (start_function): Change asm state to expect local decls. + (lookup_struct_or_union_tag): New function. + * c-lex.c (cw_asm_saved_token, c_lex_depth): New globals. + (c_lex_with_flags): Add state machine to return BOL and EOL + tokens at appropriate moments, return CPP_ATSIGN as its own + token if in asm block. + * c-opts.c (c_common_handle_option): Recognize -fasm-blocks. + * c-parse.in: Add rules for parsing CW asm blocks. + (CW_ASM_KEYWORD, CW_ASM_BOL, CW_ASM_EOL): New tokens. + (cw_asm_expr_no_commas, cw_asm_unary_expr, cw_asm_primary, + cw_asm_operands, cw_nonnull_asm_operands, cw_asm_operand, cw_asm_stmt, + single_cw_asm_stmt, cw_asm_compstmt, cw_asm_compstmt_start, + cw_asm_compstmt_nostart): New nonterminals. + (lineno_decl): Flag no longer in decls part. + (scspec): Add CW_ASM_KEYWORD. + (stmt): Add cw_asm_compstmt and cw_asm_stmt alternatives. + (yylexname): Detect asm functions and return CW_ASM_KEYWORD. + (_yylex): Return '@' as token if CW asm, return BOL/EOL. + * c-typeck.c (build_external_ref): Handle asm register names + and labels specially. + (cw_asm_typename_or_reserved, cw_asm_c_build_component_ref): + New functions. + + * function.h (struct function): New fields cw_asm_function, + cw_asm_noreturn, cw_asm_frame_size. + * tree.h (DECL_CW_ASM_FUNCTION, DECL_CW_ASM_NORETURN, + DECL_CW_ASM_FRAME_SIZE): New macros. + (struct tree_decl): New fields cw_asm_function_flag, + cw_asm_noreturn_flag, cw_asm_frame_size. + * config/darwin.h (CW_ASM_SPECIAL_LABEL): Define. + * config/darwin-protos.h (darwin_cw_asm_special_label): Declare. + * config/darwin.c (darwin_cw_asm_special_label): New function. + * rs6000/rs6000-protos.h (rs6000_cw_asm_register_name): Declare. + * rs6000/rs6000.c (rs6000_cw_asm_register_name): New function. + * rs6000/rs6000.h (CW_ASM_REGISTER_NAME): Define. + * scan-decls.c (flag_cw_asm_blocks, etc): Dummy definitions. + + * doc/extend.texi, doc/invoke.texi: Document. + +2004-08-01 Geoffrey Keating <geoffk@apple.com> + + * config/rs6000/rs6000.c (rs6000_split_multireg_move): Just abort + if trying to *store* to a non-offsettable address. + * config/rs6000/rs6000.md (movtf_internal): Don't move GPRs to + a nonoffsettable address. + (movdi_internal32): Don't move GPRs to a nonoffsettable address. + Clean up. + (movti_string): Don't move GPRs to a nonoffsettable address. + (movti_ppc64): Don't move GPRs to a nonoffsettable address. Clean up. + +2004-08-01 Devang Patel <dpatel@apple.com> + + Re-implement -fwritable-strings support. + Radar : 3699482 + + * c-common.c (fix_string_type): Check flag_writable_strings. + (fix_string_type): Likewise. + * c-opts.c (set_std_c89): Initialize flag_writable_strings. + (set_std_c99): Likewise. + * common.opt (fwritable-strings): Add. + * flags.h: Add the external declaration of + flag_writable_strings. + * opts.c (common_handle_option) <OPT_fwritable_strings>: + Add. + * toplev.c (flag_writable_strings): Add. + (f_options): Add an entry for writable-strings. + * varasm.c (const_hash_1) <STRING_CST>: Check + flag_writable_strings. + (compare_constant) <STRING_CST>: Likewise. + (build_constant_desc): Likewise. + * config/darwin.c (machopic_select_section): Likewise. + * doc/invoke.texi (-fwritable-strings): Add. + (-fno-const-strings): Document -fwritable-strings. + * doc/trouble.texi: Document -fwritable-strings. + +2004-08-01 Geoffrey Keating <geoffk@apple.com> + + * c-common.c (warn_long_double): Remove. + (warn_about_long_double): Remove. + * c-common.h (warn_long_double): Remove. + (warn_about_long_double): Remove. + * c-decl.c (grokdeclarator): Don't call warn_long_double. + * c-opts.c (c_common_handle_option): Remove case for OPT_Wlong_double. + * doc/invoke.texi: Don't document -Wlong-double. + +2004-07-30 Geoffrey Keating <geoffk@apple.com> + Fariborz Jahanian <fjahanian@apple.com> + + * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Permit + non-offsettable addresses even for DImode. + (rs6000_split_multireg_move): Cope with non-offsettable addresses + being moved into multiple GPRs. + + * config/rs6000/rs6000.c (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Default + to 64. + (rs6000_override_options): Use RS6000_DEFAULT_LONG_DOUBLE_SIZE. + * config/rs6000/darwin.h (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define + to 128. + * config/rs6000/darwin-ldouble.c (isless): New macro. + (inf): New macro. + (nonfinite): New macro. + (FPKINF): Delete. + (_xlqadd): Completely rewrite. + (_xlqmul): Correct overflow handling. + (_xlqdiv): Correct overflow handling. + * config/rs6000/darwin-ldouble-format: New file. + +2004-07-30 Matt Austern <austern@apple.com> + + * config/darwin-c.c (darwin_pragma_call_on_load): Deprecate. + (darwin_pragma_call_on_unload): Likewise. + +2004-07-15 Devang Patel <dpatel@apple.com> + + * tree-if-conv.c: Add brief description at the beginning. + (is_appropriate_for_if_conv): Rename to .. + (if_convertable_loop_p): ... new name. + (bb_with_exit_edge): Rename to .. + (bb_with_exit_edge_p): ... new name. + (make_cond_modify_expr): Update comment before function body. + (replace_phi_with_cond_modify_expr): Same. + (tree_if_convert_stmt): Same. Use new fn name, bb_with_exit_edge_p. + (if_convertable_loop_p): New function name. Remove some dead code. + (collapse_blocks): Update comment before function body. Format code. + Use bb_with_exit_edge_p. + (tree_if_conversion): Move this function body at the end of file. + (handle_siblint_pattern): Update comment before function body. + (fold_sibling_stmts): Same. Update dump info. + +2004-07-14 Devang Patel <dpatel@apple.com> + + * target.h (gcc_target): Additional parameter for + support_vector_compare_for_p. + * tree-if-conv.c (handle_sibling_pattern): New. + (fold_sibling_stmts): New. + (make_cond_modify_expr): Dump debugging info. + (tree_if_convert_stmt): Same. + (is_appropriate_for_if_conv): Remove filters that eliminated + loops becase of memory tags and difficult dominance relation. + (collapse_blocks): Handle memory tags. + (tree_if_conversion): Optimize sibling statements. + * tree-vectorizer.c (vect_init_vector): Additional parameter. + (vect_get_vec_def_for_operand): Supply vectype to vect_init_vector(). + (vect_init_vecotr): Use input parameter vectype. + (vect_transform_compare): Fix type in dump info. + (vect_transform_select): Handle ARRAY_REF as scalar dest. Handle + NOP_EXPR as an operand. + (vect_is_supportable_compare): Use operand's type to decide + second vector type for support_vector_compare_for_p(). + (vect_is_supportable_select): Fix typo. Allow SSA_NAME as 2nd + operand. + (exist_non_indexing_operands_for_use_p): Handle conditional modify + expr. + * config/rs6000/rs6000.c (rs6000_vector_compare_for_p): New parameter. + (get_vector_compare_for): New parameter. Use it to find appropriate + builtin. + +2004-06-26 Fariborz Jahanian <fjahanian@apple.com> + + * gcc.c: Don't use -fpredictive-compilation when + -fpreprocessed appears on command line. + +2004-07-01 Devang Patel <dpatel@apple.com> + + * tree-if-conv.c (mark_vdefs_vuses_for_rename): New function. + (make_ifcvt_temp_variable): Mark vdefs and vuses for renaming. + +2004-07-01 Devang Patel <dpatel@apple.com> + + Radar 3236762 + * config/darwin-driver.c (do_lipo): Do not supply -arch <arch_name> + to lipo. + +2004-06-29 Andrew Pinski <apinski@apple.com> + + * c-decl.c (perform_loop_transpose): Save chain of right_before_inner_loop + and set to NULL. Restore the chain before rejecting the loop. + +2004-06-29 Dorit Naishlos <dorit@il.ibm.com> + + * tree-vectorizer.c (vect_create_data_ref) INDIRECT_REF check moved to + analysis. Redundant checks removed. + (vect_analyze_data_refs): Make sure we have a mem_tag. + (vect_transform_loop): Make sure that we have a preheader bb. + (vect_init_vector): Insert on preheader edge instead of using bsi. + (vect_finish_stmt_generation_in_preheader): Now that a preheader bb is + created before vectorizing stmts, we do not expect a new bb to be + created (thereofore, abort instead of add_bb_to_loop). + * config/rs6000/rs6000.c (rs6000_build_vmul_uch): Likewise. + (rs6000_build_vector_init): Likewise. Also replace mark_call_clobbered + with direct setting of DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL. + +2004-06-28 Devang Patel <dpatel@apple.com> + + * Makefile.in (tree-ssa-loop-manip.o): Depend on tree-scalar-evolution.h + * tree-if-conv.c (collapse_blocks): Use release_phi_node instead of + remove_phie_node. + * tree-ssaname.c (make_ssa_name): Re-enable free_ssanames. + (release_ssa_name): Same. + * tree-scalar-evolution.c (scev_reset): Check current_loops and + scalar_evolution_info. + * tree-ssa-loop-manip.c (tree-scalar-evolution.h): Include. + (tree_duplicate_loop_to_header_edge): Call scev_reset(). + +2004-06-28 Devang Patel <dpatel@apple.com> + + * tree-if-conv.c (make_ifcvt_temp_variable): Fix formatting. + +2004-06-28 Devang Patel <dpatel@apple.com> + + * tree-if-conv.c (make_ifcvt_temp_variable): Add new parameter for + original stmt. Update new statement's vuse approritatly based on + original stmt. + (make_cond_modify_expr): Supply current statement as additional + parameter to make_ifcvt_temp_variable call. + (tree_if_convert_stmt): Same. + (replace_phi_with_cond_modify_expr): Update vuse and vdefs. + (is_appropriate_for_if_conv): Lift, first phi node needs to be constant + node, restriction. + * tree-ssa-operands.c (add_vdef): New function. + * tree-ssa-operands.h (add_vdef): Same. + +2004-06-25 Mike Stump <mrs@apple.com> + + * objcp/Make-lang.in (objcp/objcp-parse.y): Update to use + move-if-change from top directory. + +2004-06-25 Stuart Hastings <stuart@apple.com> + + Radar 3680191 + * tree-nested.c: Cast STACK_BOUNDARY for portability. + * config/i386/i386.c (output_pic_addr_const): Stubify optimized symbols. + * target-def.h (TARGET_BECT_BUILD_VECTOR_INIT) Initialize correctly. + +2004-06-25 Dale Johannesen <dalej@apple.com> + + * objc/Make-lang.in: use $(srcdir)/../move-if-change. + +2004-06-25 Dale Johannesen <dalej@apple.com> + + * Makefile.in: replace $(SHELL) ${srcdir}/mkinstalldirs + with $(mkinstalldirs) throughout. + +2004-06-25 Stuart Hastings <stuart@apple.com + + Radar 3690727 + * config/rs6000/rs6000.md: Add missing APPLE LOCAL markers. + * config/t-darwin.h: Ditto. + * ChangeLog.apple-ppc: Minor formatting cleanup. + +2004-06-24 Dale Johannesen <dalej@apple.com> + + Radar #: 3696823, 3673318, 3672998 + Roll in changes from mainline: + * config/rs6000/rs6000.c (legitimate_offset_address_p): Make + global, rename rs6000_legitimate_offset_address_p. + (rs6000_legitimate_address_p): Adjust calls to it. + (lmw_operation): Ditto. + (stmw_operation): Ditto. + * config/rs6000/rs6000-protos.h: Declare it. + * config/rs6000/rs6000.md (*movdf_hardfloat32): Use it + instead of offsettable_memref_p. + * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow + [reg+reg] mode for TFmode memory accesses. + (rs6000_eliminate_indexed_memrefs): New. + (rs6000_emit_move): Call preceding for TImode and TFmode. + +2004-06-24 Andrew Pinski <apinski@apple.com> + + Radar #: 3699721 + * config/darwin.c (machopic_indirect_data_reference): Copy + the SYMBOL_REF_DECL from the original RTX for the new + non-lazy pointer RTX. + +2004-06-24 Ayal Zaks <zaks@il.ibm.com> + + * target-def.h (TARGET_VECT_BUILD_BUILTIN_LVSR): New macro. + * target.h (build_builtin_lvsr): New function. + * tree-vectorizer.c (vect_create_index_for_array_ref): Add option + to only calculate init_val without creating the iv. + (vect_create_data_ref): Deal with unknown alignment; allow creating + data refs for initial access only. + (vect_transform_store): Call vect_create_data_ref accordingly. + (vect_finish_stmt_generation_in_preheader): New function. + (vect_finish_stmt_generation): Need to optionally bump bsi again. + (vect_transform_load): Replace call to lvsl by a call to lvsr(16-a) + in preheader. Move load of msq out to preheader. Removed TREE_INVARIANT. + (vect_analyze_data_refs_alignment): Allow unknown aligned loads. + * rs6000.c (rs6000_build_builtin_lvsr): New function. + (rs6000_support_misaligned_vloads, rs6000_permute_misaligned_vloads): + Check if TARGET_ALTIVEC. + (get_vector_init_fns_for_type): Initialize lve_fn, splt_fn vars. + +2004-06-22 Andrew Pinski <apinski@apple.com> + + Radar #: 3661615, 3623788 + * c-decl.c (perform_loop_transpose): Do not + change TREE_CHAIN (right_before_inner_loop) + until after we know we are going to do the + transformation. + + * c-decl.c (perform_loop_transpose): Fix formatting and cleanup. + +2004-06-22 Andrew Pinski <apinski@apple.com> + + Radar #: 3701874 + * c-decl.c (push_file_scope): Return early if we already + have a file scope. + +2004-06-22 Devang Patel <dpatel@apple.com> + + PR 16105 + * tree-vectorizer.c (vect_analyze_operations): Type of MODIFY_EXPR is + not reliable. Use LHS's type. + +2004-06-21 Dorit Naishlos <DORIT@il.ibm.com> + + * tree.def (MULT_UCH_EXPR): New tree code. + * tree-vectorizer.h (stmt_vec_info): New fields part_of_pattern, + related_stmt, v.vect_target_hook_for_pattern, and v.vectorized_stmt. + (STMT_VINFO_IN_PATTERN_P): New macro. + (STMT_VINFO_VEC_HOOK): New macro. + (STMT_VINFO_RELATED_STMT): New macro. + * tree-vectorizer.c (vect_pattern_recog): New function. + (vect_recog_mul_uch_to_uch): New function. + (vect_recog_mul_uch_to_uch1): New function. + (new_stmt_vec_info): Initialize new fields in stmt_vec_info. + (vect_transform_op): Call target hook recorded in STMT_VINFO_VEC_HOOK. + (vect_is_supportable_op): Use new field STMT_VINFO_VEC_HOOK to record + target support for the "mul_uch" pattern. + (vect_mark_relevant): Don't mark stmts involved in a pattern as + relevant. + (vect_mark_stmts_to_be_vectorized): Likewise. + (vect_create_data_ref): Fix alias-sets bug. + (vect_get_vec_def_for_operand): Call new hook support_vector_init_p. + * target.h (support_vmul_uch_p): New entry for target hook. + (build_vmul_uch): New entry for target hook. + (support_vector_init_p): New entry for target hook. + (build_vector_init): New entry for target hook. + * target-def.h (TARGET_VECT_SUPPORT_VMUL_UCH_P): New target hook. + (TARGET_VECT_BUILD_VMUL_UCH): New target hook. + (TARGET_VECT_SUPPORT_VECTOR_INIT_P): New target hook. + (TARGET_VECT_BUILD_VECTOR_INIT): New target hook. + * config/rs6000/rs6000.c (rs6000_support_vmul_uch_p): New function. + (rs6000_build_vmul_uch) New function. + (rs6000_support_vector_init_p) New function. + (get_vector_init_fns_for_type) New function. + (rs6000_build_vector_init) New function. + + +2004-06-17 Jon Ziegler <jonz@apple.com> + + Radar 3691917 + * Revert version string in version.c to as of apple-gcc-1762. + +2004-06-16 Jon Ziegler <jonz@apple.com> + Radar 3619941 + * Revert to apple-gcc-1762 plus Dorit/Devang's 2004-06-15 patch. + Radar 3691917 + * Update version string in version.c + +2004-06-16 Dale Johannesen <dalej@apple.com> + Radar 3661015/PR 15993 + * tree-ssa-dom.c (thread_across_edge): fix from FSF. + +2004-06-15 Dorit Naishlos <DORIT@il.ibm.com> + + Radar 3619941 + * tree-data-ref.c (init_data_ref): New function. + * tree-data-ref.h (init_data_ref): New function. + * tree-vectorizer.c (vect_get_array_first_index): Return index instead + of success status, and support pointers. + (vect_create_index_for_array_ref): Remove ARRAY_REF restriction, and + change call to vect_get_array_first_index. + (vect_create_data_ref): Handle INDIRECT_REFs. + (vect_is_supportable_store): Handle INDIRECT_REFs. + (vect_is_supportable_load): Handle INDIRECT_REFs. + (vect_analyze_data_ref_dependence): Handle INDIRECT_REFs. + (vect_analyze_data_ref_dependences): Remove usage of variable 'ok'. + (get_array_base): Removed (not used anymore). + (vect_force_dr_alignment_p): Use DR_BASE_NAME instead of + get_array_base. + (vect_align_data_ref): Likewise. + (vect_transform_store): Remove ARRAY_REF restriction. + (vect_transform_load): Remove ARRAY_REF restriction. + (vect_compute_data_ref_alignment): Support pointers. + (vect_analyze_data_refs): Support pointers. + (vect_debug_stats): New Function. + (vect_debug_details): New Function. + (vect_transform_loop): Use vect_debug_stats and vec_debug_details. + (vect_analyze_loop): Use vect_debug_details. + (vect_analyze_scalar_cycles): Use vect_debug_stats. + (vect_analyze_data_ref_dependence): Likewse. + (vect_analyze_data_refs_alignment): Likewise. + (vect_analyze_data_ref_accesses): Likewise. + (vect_analyze_data_refs): Likewise. + (vect_analyze_loop_form): Likewise. + (vect_gen_if_guard): Formatting fixes (avoid 80 column overflow). + (vect_update_initial_conditions_of_duplicatd_loop): Likewise. + (vect_transform_loop): Likewise. + (vect_analyze_loop_form): Likewise. + +2004-06-14 Caroline Tice <ctice@apple.com> + + Radar 3690727 (partial) + * defaults.h (NORMAL_TEXT_SECTION_NAME): Remove. + * passes.c (rest_of_compilation): Add missing APPLE LOCAL. + * config/rs6000/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove definition. + (SECTION_FORMAT_STRING): Likewise. + * config/rs6000/sysv4.h (NORMAL_TEXT_SECTION_NAME): Likewise. + (SECTION_FORMAT_STRING): Likewise. + * doc/tm.texi (NORMAL_TEXT_SECTION_STRING): Remove documentation. + (SECTION_FORMAT_STRING): Likewise. + +2004-06-14 Dale Johannesen <dalej@apple.com> + + Radar 3661661 + * tree-ssa.c (tree_ssa_useless_type_conversion_1): fix from FSF. + +2004-06-14 Dale Johannesen <dalej@apple.com> + + Radar 3690727 (partial) + * gimplify.c (copy_if_shared_r): Add missing APPLE LOCAL. + * config/rs6000/t-darwin: Ditto. + +2004-06-14 Fariborz Jahanian <fjahanian@apple.com> + + * version.c: Remove word tree-ssa from version string. + +2004-06-12 Devang Patel <dpatel@apple.com> + + * Makefile.in (OBJS-common): Add tree-if-conv.o. + (tree-if-conv.o): New rule. + * target-def.h (TARGET_VECTOR_COMPARE_P, TARGET_VECTOR_COMPARE_FOR_P, + TARGET_VECTOR_COMPARE_STMT, TARGET_VECTOR_SELECT_P, + TARGET_VECTOR_SELECT_FOR_P, TARGET_VECTOR_SELECT_STMT): New. + (TARGET_INITIALIZER): New members. + * target.h (tree.h): Include. + (struct gcc_target.vect): New members - support_vector_compare_p, + support_vector_compare_for_p, vector_compare_stmt, support_vector_select_p, + support_vector_select_for_p, vector_select_stmt. + * tree-dfa.c (dump_immediate_uses_for): Print block index. + * tree-flow.h (enum move_pos): Move from ... + * tree-ssa-loop-im.c (enum move_pos): here. + * tree-if-conv.c: New file. + * tree-simple.c (is_gimple_stmt): Make COND_EXPR valid gimple. + * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Check t. + * tree-ssa-live.c (debug_var_map): New function. + * tree-ssa-live.h (debug_var_map): New function declaration. + * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variable): Add + flow_loop_scan() call. + * tree-ssa-operands (get_stmt_operands): Handle MODIFY_EXPR when COND_EXPR + is RHS. + (get_expr_operands): Same. + * tree-ssanames.c (make_ssa_name): Do not use free_ssanames. + (release_ssa_name): Same. + * tree-vectorizer.c (vect_transform_select): New function. + (vect_transform_compare): New function + (vect_is_supportable_operation): New function. + (vect_is_supportable_compare): New function. + (vect_is_supportable_select): New function. + (get_array_base): Move into tree.c. + (vect_loop_version): New function. + (second_loop_vers_available): New variable. + (default_vector_compare_p): New function. + (default_vector_compare_for_p): New function. + (default_vector_comapre_stmt): New function. + (default_vector_select_p): New function. + (default_vector_select_for_p): New function. + (default_vector_select_stmt): New function. + (vect_transform_stmt): Handle select_vec_info_type and + compare_vec_info_type. + (vect_is_supportable_op): Use vect_is_supportable_operation. + (vect_analyze_operations): Check select and compare support. + (vect_analyze_data_refs_alignment): Print data reference in dump file. + (vect_analyze_loop_form): Use if-conversion and update loop->num_nodes + check. + (vectorize_loops): Use vect_loop_version. Handle second loop version. + * tree-vectorizer.h (struct _stmt_vec_info): New members - + select_vec_info_type and compare_vec_info_type. + (default_vector_compare_p): New function decl. + (default_vector_compare_for_p): New function decl. + (default_vector_comapre_stmt): New function decl. + (default_vector_select_p): New function decl. + (default_vector_select_for_p): New function decl. + (default_vector_select_stmt): New function decl. + * tree.c (get_array_base): Move from tree-vectorizer to here. + * tree.h (get_array_base): New function decl. + * config/rs6000 (vector_builtin_fns): New. + (rs6000_vector_compare_p): New function. + (rs6000_vector_compare_for_p): New function. + (rs6000_vector_compare_stmt): New function. + (rs6000_vector_select_p): New function. + (rs6000_vector_select_for_p): New function. + (rs6000_vector_select_stmt): New function. + (TARGET_VECTOR_COMPARE_P, TARGET_VECTOR_COMPARE_FOR_P, + TARGET_VECTOR_COMPARE_STMT, TARGET_VECTOR_SELECT_P, + TARGET_VECTOR_SELECT_FOR_P, TARGET_VECTOR_SELECT_STMT): Define. + (def_builtin): Record builtin fn node in vector_builtin_fns. + * rs6000.h (enum rs6000_builtins): New entry - RS6000_BUILTIN_MAX. + +2004-06-12 Devang Patel <dpatel@apple.com> + + Radar 3681611 + * gcc.c (do_spec_1): Disable local IMA patch that creats new temp. file for + each source file. + +2004-06-12 Dorit Naishlos <DORIT@il.ibm.com> + Olga Golovanevsky <OLGA@il.ibm.com> + Ayal Zaks <ZAKS@il.ibm.com> + + * tree-vectorize.c (vect_build_symbl_bound, vect_gen_if_guard): New. + (vect_create_index_for_array_ref): Use integer_zer_node as init. + (vect_update_initial_conditions_of_duplicated_loop): Update phis of epilog + loop header and new loop exit destination. + (vect_transform_loop): Remove code that now belongs to + vect_generate_tmps_on_preheader () function. Use + vect_gen_if_guard function twice. + +2004-06-11 Dale Johannesen <dalej.@apple.com> + + * tree-ssa-loop-niter.c (number-of_iterations_cond): Apply Zdenek's + patch from 5/28 lno-branch. + +2004-06-10 Dale Johannesen <dalej@apple.com> + * tree-scalar-evolution.c (scev_finalize): Remove wild load. + +2004-06-10 Fariborz Jahanian <fjahanian@apple.com> + + * version.c: Change version date to 20040529 (date of + last merge). + +2004-06-09 Dale Johannesen <dalej@apple.com> + + * df.c (df_def_record_1): Handle DImode parallel. + +2004-06-09 Fariborz Jahanian <fjahanian@apple.com> + + * gengtype.c (get_output_file_with_visibility): Removed dead code. + * gimplify.c (copy_if_shared_r): brought in patch to PR15884 done + by RTH to fix perlbmk crash. + +2004-06-08 Dale Johannesen <dalej@apple.com> + + * config/rs6000/t-darwin: Remove duplicate fpsave. + +2004-06-08 Andrew Pinski <pinskia@physics.uc.edu> + + approved Dale Johannesen <dalej@apple.com> + Radar 3683113, PR 15881. + * fold.const.c (fold_convert): Handle ptr-to-member. + * tree-scalar-evolution.c (count_ev_in_wider_type): Use + fold_convert not convert. + (compute_overall_effect_of_inner_loop): Ditto. + (chrec_is_positive): Ditto. + (add_to_evolution_1): Ditto. + (add_to_evolution): Ditto. + (first_iteration_non_satisfying_1): Ditto. + (follow_ssa_edge_in_rhs): Ditto. + (interpret_rhs_modify_expr): Ditto. + (number_of_iterations_in_loop): Ditto. + +2004-06-08 Robert Bowdidge <bowdidge@apple.com> + + * config/darwin.c (machopic_indirect_call_target): Added patch from + PR/15720 (function marked inline which is called directly isn't + emitted). + +2004-06-08 Fariborz Jahanian <fjahanian@apple.com> + + * varasm.c (assemble_variable): Resotored zerofill size optimization. + * config/rs6000/rs6000.c (rs6000_override_options): Place + rs6000_init_hard_regno_mode_ok after setting of -fast flags. + +2004-06-08 Caroline Tice <ctice@apple.com> + + * common.opt (fcreate-profile): Add new command line option. + (fuse-profile): Likewise. + * gcc.c (LINK_COMMAND_SPEC): Add fcreate-profile to list of flags + that causes "-lgcov" to be included in link command. + * opts.c (commmon_handle_option): Add cases for fcreate-profile and + fuse-profile; make them fall into the cases for fprofile-generate + and fprofile-use, respectively. + * config/darwin.h (LINK_COMMABND_SPEC): Add fcreate-profile to list + of flags that causes "-lgcov" to be included in link command. + * doc/invoke.texi (fcreate-profile, fuse-profile): Add documentation + for the new command line options. Indicates they are obsolete and + should not be used. + +2004-06-07 Fariborz Jahanian <fjahanian@apple.com> + + * gcc.c: Removed setting of -combine option with -fast. + +2004-06-07 Fariborz Jahanian <fjahanian@apple.com> + + * decl.c (maybe_commonize_var): Removed APPLE LOCAL coalescing stuff. + * method.c (use_thunk): ditto. + * rtti.c (tinfo_base_init): ditto. + * common.opt: ditto. + +2004-06-07 Dale Johannesen <dalej@apple.com> + + * cse.c (cse_insn): Make sure there's a ZERO_EXTEND before looking + under it. (176.gcc spec regression) + +2004-06-07 Ayal Zaks <zaks@il.ibm.com> + + Radar 3619935 - Part 1 + * target-def.h (TARGET_VECT, TARGET_VECT_BUILD_BUILTIN_LVSL, + TARGET_VECT_SUPPORT_MISALIGNED_LOADS, + TARGET_VECT_PERMUTE_MISALIGNED_LOADS, + TARGET_VECT_BUILD_BUILTIN_VPERM): New macros for + TARGET_INITIALIZER. + * target.h (struct vect): New substruct of gcc_target. + * tree-vectorizer.c (vect_create_index_for_array_ref): Return also the + initial value of the iv. + (vect_create_data_ref): Return also the created pointer; don't call + vect_align_data_ref. + (vect_finish_stmt_generation): New. + (vect_transform_load): Handle misaligned loads too. + (vect_analyze_data_refs_alignment): Allow loads to be misaligned. + * config/rs6000/rs6000.c (TARGET_VECT_BUILD_BUILTIN_LVSL, + TARGET_VECT_SUPPORT_MISALIGNED_LOADS, + TARGET_VECT_PERMUTE_MISALIGNED_LOADS, + TARGET_VECT_BUILD_BUILTIN_VPERM): Redefine. + (rs6000_support_misaligned_vloads, rs6000_permute_misaligned_vloads, + rs6000_build_builtin_lvsl, rs6000_build_builtin_vperm): New. + +2004-06-07 Olga Golovanevsky <OLGA@il.ibm.com> + + * tree-vectorizer.c (vect_update_initial_conditions_of_duplicated_loop): + Handle general form of "init" and "step" of access function. + * tree-ssa-loop-manip.c (tree_duplicate_loop_to_exit_cfg): + The exit from loop is taken from bb previous to latch instead + of latch itself. + +2004-06-07 Devang Patel <dpatel@apple.com> + + Radar 3673334 + * config/darwin-driver.c (add_arch): New. + (strip_path_and_suffix): Use strcpy. + (main): Use add_arch(). + +2004-06-07 Devang Patel <dpatel@apple.com> + + Radar 3668208 and 3668213 + * config/rs6000/darwin.h (CC1_SPEC): Handle -gused and -gfull. + * config/i386/darwin.h (CC1_SPEC): Same. + +2004-06-07 Caroline Tice <ctice@apple.com> + + * doc/invoke.texi (-fast): Add documentation for "-fast" option. + +2004-05-29 Dale Johannesen <dalej@apple.com> + + * config/rs6000/rs6000.c (rs6000_override_options): Enable + hot/cold partitioning with -fast -profile-use. + +2004-05-28 Ziemowit Laski <zlaski@apple.com> + + Radar 3665286 + * cpplex.c (_cpp_peek_token): Fix bug in computing context size; + increment/decrement 'keep_tokens' state instead of saving/restoring it. + * cpplib.h (cpp_callbacks): Change 'expand_macro_p' hook to + 'macro_to_expand', returning a cpp_hashnode pointer. + * cppmacro.c (cpp_get_token): Call 'macro_to_expand' hook instead of + 'expand_macro_p'. + (warn_of_redefinition): Do not warn if redefining a conditional macro. + * config/rs6000/rs6000-c.c (altivec_categorize_keyword): New function. + (rs6000_expand_macro_p): Renamed to 'rs6000_macro_to_expand'; rewritten + to call altivec_categorize_keyword() and return one of the three + canonical macros ('__vector', '__pixel' and '__bool') as needed. + (rs6000_cpu_cpp_builtins): Mark all AltiVec keyword variants as + conditional macros, some expanding to themselves (e.g., '#define + bool bool') by default. + * config/rs6000/rs6000-protos.h (rs6000_expand_macro_p): Renamed to + 'rs6000_macro_to_expand'. + +2004-05-28 Fariborz Jahanian <fjahanian@apple.com> + + * explow.c (copy_to_mode_reg): For PARALLEL patterns, copy + to reg via a temprary. + +2004-05-27 Dale Johannesen <dalej@apple.com> + + * loop-invariant.c (check_maybe_invariant): Disallow CALL hoists. + * varasm.c (assemble_start_function): Construct unlikely_section_label + unconditionally. + +2004-05-26 Caroline Tice <ctice@apple.com> + + * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges): + Initialize variable 'has_hot_blocks'. + (fix_up_fall_thru_edges): Initialize variable'cond_jump'. + * cfgcleanup.c (try_forward_edges): Add code/tests to make sure the + optimization is not attempted across section boundaries. + * cfglayout.c (fixup_reorder_chain): Correct comments. + * cfgrtl.c (try_redirect_by_replacing_jump): Fix test to make sure + optimization is not attempted across section boundaries. + * final.c (final_scan_instruction): Replace calls to text_section with + calls to function_section. + * predict.c (probably_never_executed_bb_p): Change criterion to be + basic block count equals zero. + * varasm.c (unlikely_text_section_name): New global variable. + (text_section): Remove call to assemble_align. + (unlikely_text_section): Modify to build & use unlikely_text_section_name + rather than directly using UNLIKELY_EXECUTED_TEXT_SECTION NAME; remove + call to assemble_align; move code to free/initialize + unlikely_section_label to assemble_start_function. + (in_unlikely_text_section): Modify to use unlikely_text_section_name. + (named_section): Add code to initialize unlikely_text_section_name if + appropriate. + (function_section): Reorder clauses in if statement to make sure + functions containing only cold blocks end up in the correct section. + (assemble_start_function): Add code to correctly initialize/free + unlikely_text_section_name. Also make sure the cold label is printed + out at the start of cold functions. + (default_section_type_flags_1): Modify to use unlikely_text_section_name. + * config/rs6000/darwin.h (HAS_LONG_UNCOND_BRANCH): Add darwin-specific + definition, based on the TARGET_LONG_BRANCH (-mlongcall) flag. + +2004-05-25 Dale Johannesen <dalej@apple.com> + + * tree-ssa-loop-niter.c: Add. New in lno branch. Oops. + +2004-05-25 Mike Stump <mrs@apple.com> + + Radar 3665096 + * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Change default + for long double type size to be 128. + +2004-05-25 Dale Johannesen <dalej@apple.com> + + Merge from LNO branch as of 05-18. + --The following files are identical to lno branch: + * df.c: Merge. + * lambda-code.c: Merge. + * loop-iv.c: Merge. + * tree-chrec.c: Merge. + * tree-chrec.h: Merge. + * tree-data-ref.c: Merge. + * tree-data-ref.h: Merge. + * tree-elim-check.c: Merge. + * tree-fold-const.h: Merge. + * tree-scalar-evolution.c: Merge. + * tree-scalar-evolution.h: Merge. + * tree-ssa-loop-ivcanon.c: Merge. + * tree-ssa-loop-ivopts.c: Merge. + * tree-vectorizer.c: Merge. + --These files were merged selectively, see lno branch ChangeLog.lno. + * Makefile.in: Add tree-ssa-loop-niter. + * cfgloop.c: Merge changes from Devang's 05-13 patch. + * cfgloop.h: Ditto, also Zdenek's 04-30 patch. + * expr.c: Merge changes from Zdenek's 05-13 patch. + * tree-cfg.c: Ditto. + * tree-flow.h: Ditto. Also from Zdenek's 04-30 patch. + * loop-invariant.c: Merge. Add DF_EQUIV_NOTES. + * rtl.h: Merge change from Zdenek's 05-09 patch. + * stor-layout.c: Ditto. + * tree.c: Merge change from Sebastian's 04-27 patch. + * tree.h: Ditto. Also Zdenek's 05-13 patch. Add TYPE_UNSIGNED. + * varasm.c: Merge change from Zdenek's 04-30 patch. + * config/rs6000/rs6000.c: Ditto. + -- Other stuff: + * fold-const.c: Remove unused variable. + * config/rs6000/rs6000-c.c: Make #define of bool work. + * config/rs6000/t-rs6000: Make #define of bool work. Remove + -Wno-error requirements. + +2004-05-25 Mike Stump <mrs@apple.com> + + Radar 3667005 + * config/darwin.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Move long + double size default from here... + * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): to here. + +2004-05-24 Devang Patel <dpatel@apple.com> + + Radar 3665390 + * config/darwin-driver.h (main): While reinserting output filename + do not forget -o. + +2004-05-24 Mike Stump <mrs@apple.com> + + Radar 3589079 + * config/darwin.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Change default + for long double type size to be 128. + * c-common.c: Change default for -Wwarn-long-double to off. + (warn_about_long_double): Change wording to account for new long + double size. + * doc/invoke.texi (-Wlong-double): Likewise. + +2004-05-22 Devang Patel <dpatel@apple.com> + + Radar 3644687 + * config/darwin-driver.c (main): Reinsert output filename + only if user supplied one. + +2004-05-22 Dale Johannesen <dalej@apple.com> + + * simplify-rtx.c (simplify_unary_operation): Don't create NOT(SYM) + or (MINUS(CON SYM)). + * config/rs6000/rs6000.h (machine_function): Make substitute_pic_base_reg + unsigned. + * config/rs6000/rs6000.md: Compare it to INVALID_REGNUM not -1. + * config/rs6000/rs6000.c (throughout): Ditto. + +2004-05-21 Ziemowit Laski <zlaski@apple.com> + + * opts.c (common_handle_option): Do not const-qualify a char buffer + that has sprintf() and free() called on it. + +2004-05-21 Ziemowit Laski <zlaski@apple.com> + + Radar 3621323 + * c-lex.c: Do not include target.h. + (C_LEX_BUFCAPACITY, C_LEX_OFFS_BOUND, c_lex_buf_beg, c_lex_buf_end, + c_lex_buf, c_lex_peek, c_lex_prepend): Remove. + (get_nonpadding_token): Get rid of int argument; adjust call sites + accordingly. + * cpplex.c (_cpp_peek_token): New function. + (_cpp_temp_token): Account for existence of lookaheads when allocating + token. + * cpplib.h (cpp_callbacks): Add new 'expand_macro_p' hook. + (NODE_CONDITIONAL): New flag for macro nodes. + (_cpp_peek_token, _cpp_backup_tokens_direct): New prototypes. + * cppmacro.c (cpp_get_token): For macros marked NODE_CONDITIONAL, + call the 'expand_macro_p' predicate to see if they should be + expanded. + (_cpp_backup_tokens_direct): New function, broken off from + _cpp_backup_tokens(). + (_cpp_backup_tokens): Call _cpp_backup_tokens_direct(). + * config/rs6000/rs6000-c.c (rs6000_expand_macro_p): Add cpp_reader + parameter; call _cpp_peek_token() instead of c_lex_peek(). + (rs6000_cpu_cpp_builtins): Attach rs6000_expand_macro_p() to a + cpplib callback instead of a target hook. + * config/rs6000/rs6000-protos.h (rs6000_expand_macro_p): Add cpp_reader + parameter to prototype. + * hooks.c (hook_bool_constcpp_tokenp_false): Remove. + * hooks.h (hook_bool_constcpp_tokenp_false): Remove prototype. + * target-def.h (TARGET_EXPAND_MACRO_P): Remove. + * target.h (gcc_target): Remove 'expand_macro_p' target hook. + +2004-05-20 Devang Patel <dpatel@apple.com> + + * config/darwin-driver.c (main): Prepand "-Wl," before + -final_output to make it linker option. + +2004-05-20 Fariborz Jahanian <fjahanian.apple.com> + + * c-opts.c (c_common_post_options): Remove old declaration and + use of stdin_filename. Add new call to set_stdin_option. + * common.opt: Add fpredictive-compilation=n option. + * cppfiles.c (STAT_SIZE_RELIABLE macro): Change definition. + (pch_open_file): No pch stuff with stdin file. + (find_file_in_dir): When opening the main file, revert + to opening stdin instead, in predictive compilation mode. + (read_file_guts): Support for reading from stdin for predictive + compilation sizes are added. (read_file): Don't close stdin. + (read_from_stdin): New routine. + * cpphash.h: New field declaration 'is_main_file' added. + * cppinit.c (cpp_read_main_file): Set is_main_file to true, + and then to false in predictive compilation mode. + * cpplex.c (_cpp_get_fresh_line): Read more from stdin when + in predictive compilation mode. + * cpplib.c (set_stdin_option): New definition. + * cpplib.h: Declaration updates. + * flags.h: Declaration of predictive_compilation. + * opts.c (common_handle_option): Processing -fprdictive-compilation=n + options. + * toplev.c: Definition of predictive_compilation added. + +2004-05-14 Dale Johannesen <dalej@apple.com> + + * Makefile.in: Remove local -Wno-error dependencies. + +2004-05-13 Caroline Tice <ctice@apple.com> + + * c-common.c (builtin_function_disabled_p): Remove "static" from + function declaration and definition. + * c-common.h (builtin_function_disabled_p): Add extern function + definition. + * c-decl.c (merge_translation_unit_decls): Add code to test + function decls to see if they are builtin and the builtin is + supposed to be disabled before attempting to merge the decls. + +2004-05-12 Devang Patel <dpatel@apple.com> + + * opts.c (common_handle_option): Handle OPT_arch. + +2004-05-12 Devang Patel <dpatel@apple.com> + + * config/darwin.h (darwin_builtins): Move to ... + * config/darwin.c (darwin_builtins); here. + +2004-05-12 Dale Johannesen <dalej@apple.com> + + Radar 3509006 + + * config/rs6000/rs6000.c (rs6000_override_options): + Don't enable string insns with -Os. + * doc/invoke.texi: Document this behavior. + * testsuite/gcc.apple/string-insns.c: New. + +2004-05-12 Dale Johannesen <dalej@apple.com> + + * config/rs6000/rs6000.c (rs6000_stack_info): Restore an + optimization lost in merge. + +2004-05-11 Ziemowit Laski <zlaski@apple.com> + + * gcc.c (process_command): Do not define __CONSTANT_CFSTRINGS__, + since config/darwin.h already does this. + (do_spec_1): Emit "-mconstant-cfstrings" instead of + "-fconstant-cfstrings". + +2004-05-11 Devang Patel <dpatel@apple.com> + + * gcc.c (optiom_map): Remove -precomp-trustfile support. + * c-opts.c (c_common_handle_option): Remove -precomp-trustfile and + -header-mapfile support. + * common.opt: Same. + * c.opt: Remove -header-mapfile support. + +2004-05-11 Caroline Tice <ctice@apple.com> + + * rtl.c (NOTE_INSN_UNLIKELY_EXECUTED_CODE): Add this note back + in; it seems to have vanished during a merge. + +2004-05-10 Ziemowit Laski <zlaski@apple.com> + + * config/rs6000/altivec.h: Bring over from mainline. + * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define + __APPLE_ALTIVEC__ to indicate Apple syntax support. + +2004-05-10 Dale Johannesen <dalej@apple.com> + * config/darwin.c: ANSIfy syntax (eliminate warnings). + * config/darwin-c.c: Ditto. + * rs6000.c: Small cosmetic change in local code. + +2004-05-06 Caroline Tice <ctice@apple.com> + + * config/rs6000/rs6000.c (rs6000_override_options): Modify to + not turn on hot/cold partitioning in the presence of exception + handling. + +2004-05-06 Dale Johannesen <dalej@apple.com> + + * Merge from lno branch as of 04-24. Files changed: + lambda-code.c + lambda.h + tree-chrec.c + tree-chrec.h + tree-data-ref.c + tree-elim-check.c + tree-flow.h + tree-loop-linear.c + tree-scalar-evolution.c + tree-ssa-loop-im.c + tree-ssa-loop-ivopts.c + tree-ssa-loop-manip.c + tree-ssa-loop.c + tree-vectorizer.c + tree-vectorizer.h + +2004-05-04 Caroline Tice <ctice@apple.com> + + * config/rs6000/darwin.h (FP_SAVE_INLINE): Modify this to + always be 1 ("on") if the optimization level is -O3 or + higher. + +2004-04-30 Dale Johannesen <dalej@apple.com> + + * cse.c (cse_insn): Don't add REG_EQUAL note for + (CONST (MINUS (LABEL_REF) (0))). + +2004-04-30 Caroline Tice <ctice@apple.com> + + * varasm.c (unlikely_section_label): New global variable. + (unlikely_text_section): Change variable name from + 'unlikely_section_name' to 'unlikely_section_label', make it a global + variable, and move the code to generate its value to + assemble_start_function. + (assemble_start_function): Add code to generate *correct* value for + 'unlikely_section_label'. Now makes use of value from 'fnname' + parameter. + +2004-04-29 Devang Patel <dpatel@apple.com> + + * loop-iv.c : Merge from lno-branch as of 2004:04:19 00:00. + * tree-pass.h : Merge from lno-branch as of 2004:04:19 00:00. + * tree-ssa-alias.c : Merge from lno-branch as of 2004:04:19 00:00. + * tree-ssa-phiopt.c : Merge from lno-branch as of 2004:04:19 00:00. + +2004-04-29 Devang Patel <dpatel@apple.com> + + Merge lno-branch as of 2004:04:18 00:00 into + apple-ppc-branch. + + +2004-04-28 Fariborz Jahanian <fjahanian@apple.com> + + * function.c (assign_parms): Add 2nd iteration over vector args + if needed. + * calls.c (initialize_argument_information): Add new argument, + add 2nd iteration over vector arguments if needed. + * target-def.h (default_skip_vec_args, TARGET_SKIP_VEC_ARGS): New. + * target.h (skip_vec_args): Added to calls structure. + * targhooks.c (default_skip_vec_args): Default + definition. + * targhooks.h (default_skip_vec_args): Declaration. + * config/rs6000/rs6000.c (skip_vec_args): New definition. + +2004-04-28 Stuart Hastings <stuart@apple.com> + + * config/rs6000/rs6000.c (macho_branch_islands): Fix sprintf arguments. + * config/rs6000/rs6000.md (output_call): Fix arguments. + +2004-04-27 Devang Patel <dpatel@apple.com> + + * config/darwin.h (LINK_COMMAND_SPEC): Use darwin_arch_ld_spec. + * config/rs6000/darwin.h (DARWIN_ARCH_ASM_SPEC): New. + (DARWIN_ARCH_SPEC): Rename as... + (DARWIN_ARCH_LD_SPEC): New name. + * config/i386/darwin.h (DARWIN_ARCH_ASM_SPEC): New. + (DARWIN_ARCH_SPEC): Rename as... + (DARWIN_ARCH_LD_SPEC): New name. + +2004-04-26 Andrew Pinski <pinskia@physics.uc.edu> + + * configure.ac: Add test for -Wno-long-double. + * Makefile.in (STRICT2_WARN): Add -Wno-long-double. + (alloc-pool.o-warn): Delete. + (ggc-page.o-warn): Delete. + * configure: Regenerate. + +2004-04-23 Dale Johannesen <dalej@apple.com> + + Radars 3480058, 3178986 + + * c-decl.c (merge_decls): Preserve duplicate_decl bit. + (merge_translation_unit_decls): Rewritten so -fno-common works. + * opts.c (decode_options): Turn on flag_no_common with -fast or -fastcp. + * tree.h (struct tree_decl): Add duplicate_decl bit and DECL_DUPLICATE_DECL. + * varasm.c (assemble_variable): Use it. + * config/rs6000/rs6000.c (rs6000_override_options): Remove + reorder-blocks-and-partition from -fast*. Enable align-natural with -fastcp. + * ../libstdc++-v3/include/std/std_fstream.h (basic_ifstream): Make + _M_filebuf 8-byte aligned. + (basic_ofstream): Ditto. + +2004-04-22 Devang Patel <dpatel@apple.com> + + Radar 3401402 and 3511029 + + Remove FAT Build support from gcc.c + + * gcc.c (struct arch_config_out): Remove. + (struct arch_out): Remove. + (num_arches, curent_arch, final_output): Remove. + (set_new_arch): Remove. + (%T support): Remove. + (%f support): Remove. + (%F support): Remove. + ('@' support in specs): Remove. + (ofile_merge_spec): Remove. + (exec_merge_spec): Remove. + (build_search_list): Remove fat builds readibility change. + (SWITCH_IGNORE_RESTORE): Remove. + (-arch support): Remove. + * config/darwin.h (LINK_COMMAND_SPEC): Remove -arch*. Add %(darwin_arch_spec). + * confiig/i386/darwin.h (ASM_SPEC): Add %(darwin_arch_spec). + (DARWIN_ARCH_SPEC): New. + * confiig/rs6000/darwin.h (ASM_SPEC): Add %(darwin_arch_spec). + (DARWIN_ARCH_SPEC): New. + * config/rs6000/rs6000.h (SUBTARGET_EXTRA_SPECS): Surround it with #ifndef. + * config/darwin-driver.c: New file. + +2004-04-20 Geoffrey Keating <geoffk@apple.com> + + * c-cppbuiltin.c (define__GNUC__): Better precision and more + error checking for code defining __APPLE_CC__. + * testsuite/gcc.apple/applecc.c: New. + +2004-04-15 Devang Patel <dpatel@apple.com> + + * config/i386.h: Add static tree nodes for vector types to + accomodate tree.h changes due to local Altivec patch. + +2004-04-15 Caroline Tice <ctice@apple.com> + + Fix various problems related to hot/cold partitioning (but not all of + them yet). + * bb-reorder.c (tm_p.h): Add new include statement. + (HAVE_return): Define HAVE_return appropriately if not already defined. + (find_rarely_executed_basic_blocks_and_crossing_edges): Modify to + only mark crossing edges if architecture supports named sections. + (fix_crossing_conditional_branches): Add test for HAVE_return before + calling gen_return. + (fix_crossing_unconditional_branches): Change VOIDmode to Pmode in call + to gen_rtl_LABEL_REF. + (fix_edges_for_rarely_executed_code): Only "fix" branches and add + REG_CROSSING_JUMP notes if the architecture supports named sections. + (reorder_basic_blocks): Change (* targetm.cannot_modify_jumps_p ()) + into (targetm.cannot_modify_jumps_p ()). Modify to only add + NOTE_INSN_UNLIKELY_EXECUTED_CODE notes if the architecture supports + named sections. + * cfglayout.c (fixup_reorder_chain): Modify code that adds + NOTE_INSN_UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes, to only + do so if architecture supports named sections. + * cfgrtl.c (target.h): Add new include statement. + (force_nonfallthru_and_redirect): Modify code that adds + NOTE_INSN_UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes, to only + do so if architecture supports named sections. + (commit_one_edge_insertion): Likewise. + * dbxout.c (dbxout_source_file): Fix bug, when writing out source + location debug information, to not change to the wrong section. + * defaults.h (NORMAL_TEXT_SECTION_NAME): Remove this definition. + (SECTION_FORMAT_STRING): Remove this definition. + * final.c (final_scan_insn): Remove unnecessary in_unlikely_text_section + test from if statement. Modify code that switches sections to not + do so if architecture does not support named sections. Cleaned up + if statement. + * ifcvt.c (if_convert): Modified test that disables optimization when + partitioning, to not disable it if the architecture does not support + named sections. + * passes.c (rest_of_compilation): Removed flag_exceptions test from + code that calls partitioning, as this is already taken care of + in decode_options. + * predict.c (choose_function_section): Modify to NOT choose hot or + cold sections for the function decl if we are doing partitioning + optimization (want to leave it up to the hot/cold partitioning + optimization, which is more fine-grained). + * varasm.c (text_section): Restore code that outputs assembly for + the text section to its original code. + (unlikely_text_section): Modify to always use named_section for + writing out section directive, remove unnecessary ifdef, and + use ASM_OUTPUT_LABEL for labelling the start of the + cold section. + (in_unlikely_text_section): Modify to deal correctly with being in + a named section. + (function_section): Restore code for generating section directives + to its original order. + * config/darwin.c (darwin_asm_named_section): Restore code that + generates section directive to its original state. + * config/i386/darwin.h (ASM_OUTPUT_ALIGN): Add in_unlikely_text_section () + to an if test that tests for in_text_section (). + * config/rs6000/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove definition. + (SECTION_FORMAT_STRING): Remove definition. + +2004-04-10 Paolo Bonzini <bonzini@gnu.org> + Richard Henderson <rth@redhat.com> + + PR target/14899 + + * c-common.c (vector_types_compatible_p): New function. + * c-typeck.c (comptypes): Recurse on vector types, + treat a non-opaque type as equivalent to an opaque type. + (convert_for_assignment): Use vector_types_compatible_p. + (digest_init): Use vector_types_compatible_p to check + validness of constant vector initializers; otherwise treat + them as scalars + * tree.c (make_or_reuse_type): New. + (build_common_tree_nodes): Use it. + * cp/call.c (standard_conversion): Likewise. + * cp/typeck.c (comptypes): Recurse on vector types, do not + treat a non-opaque type as equivalent to an opaque type. + (convert_for_assignment): Use vector_types_compatible_p. + +2004-04-13 Fariborz Jahanian <fjahanian@apple.com> + + * combine.c (combine_instructions): + Try insn with each REG_EQUAL note it links back to. + (unmentioned_reg_p_1, unmentioned_reg_p): New functions. + Brought from tree-ssa branch. + +2004-04-09 Dale Johannesen <dalej@apple.com> + + Roll in gcc-1552 enhancement for separate stack temps. + Turn on -fstrict-aliasing with -fast. + * function.c (assign_stack_local_with_alias): New function. + * rtl.h (assign_stack_local_with_alias): Declare it. + * config/rs6000/rs6000.c (rs6000_override_options): Turn on strict + aliasing with -fast. + * config/rs6000/rs6000.md (floatsidf2): Use + assign_stack_local_with_alias. + (floatunssidf2): Ditto. + (fix_truncdfsi2): Ditto. + +2004-04-07 Fariborz Jahanian <fjahanian@apple.com> + + Roll in Ziem Laski's Altivec front-end fixes to + support MOTOROLA's Altivec syntax. + * Makefile.in: Add c-lex.o dependencies. + * c-common.c (vector_constructor_from_expr): New function. + * c-common.h (vector_constructor_from_expr): Add declaration. + * c-lex.c: include target.h, cpphash.h. Add lexer support + for new syntax. + (c_lex_prepend): new function. (c_lex_peek): new function. + * c-pragma.h: add (c_lex_peek, c_lex_prepend) declarations. + +2004-04-06 Dale Johannesen <dalej@apple.com> + + Roll in Zdenek Dvorak's rewrite of doloop optimization. + * Makefile.in: add loop-doloop.*, remove doloop.* + * loop-doloop.c: New. + * doloop.c: Remove. + * cfgloop.h: Add new function declarations. + * cfgloopanal.c: Add get_loop_level. + * loop-iv.c: Recognize unexecuted loops. + * loop.c: Remove call to old doloop optimization. + * loop.h: Remove LOOP_BCT. + * passes.c: Ditto. Call new doloop optimization. + * config/rs6000/rs6000-protos.h: Remove duplicate declarations. + * config/rs6000/rs6000.c: Cosmetic cleanups. Add -freorder-blocks + to -fast. + +2004-04-02 Ziemowit Laski <zlaski@apple.com> + + Remove APPLE LOCAL AltiVec code whenever possible; merge in + AltiVec/VECTOR_TYPE-handling code from mainline. + +2004-04-01 Fariborz Jahanian <fjahanian@apple.com> + + * Makefile.in: add $(PARAMS_H) $(TM_P_H) dependencies + for sched-rgn.o. + * params.def: add definitions for + max-sched-region-blocks and max-sched-region-insns. + * sched-rgn.c (too_large): change return type to bool. + Use the parametrized values of max-sched-region-blocks, + max-sched-region-insns for computing upper limits for + interblock scheduling. + * doc/invoke.texi: Document max-sched-region-blocks, + max-sched-region-insns. + +2004-04-01 Caroline Tice <ctice@apple.com> + + * basic-block.h (struct edge_def): Add new field, crossing_edge. + (struct basic_block_def): Add new field, partition. + (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION): New constant macro + definitions. + (partition_hot_cold_basic_blocks): Add extern function + declaration. + * bb-reorder.c (function.h, obstack.h, expr.h, regs.h): Add four new + include statements. + (N_ROUNDS): Increase the maximum number of rounds by 1. + (branch_threshold): Add array value for new round. + (exec_threshold): Add array value for new round. + (push_to_next_round_p): New function. + (add_unlikely_executed_notes): New function. + (find_rarely_executed_basic_blocks_and_crossing_edges): New function. + (mark_bb_for_unlikely_executed_section): New function. + (add_labels_and_missing_jumps): New function. + (add_reg_crossing_jump_notes): New function. + (fix_up_fall_thru_edges): New function. + (find_jump_block): New function. + (fix_crossing_conditional_branches): New function. + (fix_crossing_unconditional_branches): New function. + (fix_edges_for_rarely_executed_code): New function. + (partition_hot_cold_basic_blocks): New function. + (find_traces): Add an extra round for partitioning hot/cold + basic blocks. + (find_traces_1_round): Add a parameter. Modify to push all cold blocks, + and only cold blocks, into the last (extra) round of collecting traces. + (better_edge_p): Add a parameter. Modify to favor non-crossing edges + over crossing edges. + (bb_to_key): Add code to correctly identify cold blocks when + doing partitioning. + (connect_traces): Modify to connect all the non-cold traces first, then + go back and connect up all the cold traces. + (reorder_basic_blocks): Add call to add_unlikely_executed_notes. + * cfg.c (entry_exit_blocks): Add initialization for partition field in + entry and exit blocks. + * cfgbuild.c (make_edges): Update current_function_has_computed_jump + if we are doing hot/cold partitioning. + * cfgcleanup.c (cfglayout.h): Add new include statement. + (try_simplify_condjump): Modify to not attempt on blocks with jumps + that cross section boundaries. + (try_forward_edges): Likewise. + (merge_blocks_move_predecessor_nojumps): Likewise. + (merge_blocks_move_successor_nojumps): Likewise. + (merge_blocks_move): Likewise. + (try_crossjump_to_edge): Modify to not attempt after we have done + the block partitioning. + (try_crossjump_bb): Modify to not attempt on blocks with jumps that + cross section boundaries. + (try_optimize_cfg): Likewise. + * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect + jumps that cross section boundaries. + * cfglayout.c (flags.h): Add new include statement. + (update_unlikely_executed_notes): New function. + (fixup_reorder_chain): Add code so when a new jumping basic block is + added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are + updated appropriately. + (duplicate_insn_chain): Add code to duplicate the new NOTE insn + introduced by this optimization. + * cfglayout.h (scan_ahead_for_unlikely_executed_note): Add new + extern function declaration. + * cfgrtl.c (can_delete_note_p): Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to + list of notes that can be deleted. + (create_basic_block_structure): Add initialization for partition field. + (rtl_can_merge_blocks): Modify to test blocks for jumps that cross + section boundaries. + (try_redirect_by_replacing_jump): Modify to not attempt on jumps that + cross section boundaries. + (commit_one_edge_insertion): Add code so newly created basic block + ends up in correct (hot or cold) section. Modify to disallow + insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes. + (rtl_verify_flow_info_1): Add code to verify that no fall_thru edge + crosses section boundaries. + (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that + cross section boundaries. + (force_nonfallthru_and_redirect): Modify to make sure new basic block + ends up in correct section, with correct notes attached. + * common.opt (freorder-blocks-and-partition): Add new flag for this + optimization. + * dbxout.c (dbx_function_end): Add code to make sure scope labels at + the end of functions are written into the correct (hot or cold) + section. + (dbx_source_file): Add code so writing debug file information + doesn't incorrectly change sections. + * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use + in partitioning hot/cold basic blocks into separate sections. + (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold + section partitioning. + (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not + conditional branches can span all of memory. + (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not + unconditional branches can span all of memory. + * final.c (scan_ahead_for_unlikely_executed_note): New function. + (final_scan_insn): Add code to check for NOTE instruction indicating + whether basic block belongs in hot or cold section, and to make sure + the current basic block is being written to the appropriate section. + Also added code to ensure that jump table basic blocks end up in the + correct section. + * flags.h (flag_reorder_blocks_and_partition): New flag. + * ifcvt.c (find_if_case_1): Modify to not attempt if conversion if + one of the branches has a jump that crosses between sections. + (find_if_case_2): Likewise. + (ifcvt): Modify to not attempt to mark loop exit edges after + hot/cold partitioning has occurred. + * opts.c (decode_options): Code to handle new flag, + flag_reorder_blocks_and_partition; also to turn it off if + flag_exceptions is on. + (common_handle_option): Code to handle new flag, + flag_reorder_blocks_and_partition. + * output.h (unlikely_text_section): New extern function declaration. + (in_unlikely_text_section): New extern function declaration. + * passes.c (rest_of_handle_stack_regs): Add + flag_reorder_blocks_and_partition as an 'or' condition for calling + reorder_basic_blocks. + (rest_of_handle_reorder_blocks): Add flag_reorder_blocks_and_partition + as an 'or' condition for calling reorder_basic_blocks. + (rest_of_compilation): Add call to partition_hot_cold_basic_blocks. + * print-rtl.c (print_rtx): Add code for handling new note, + NOTE_INSN_UNLIKELY_EXECUTED_CODE + * rtl.c (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below). + (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that + cross between section boundaries. + * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note instruction, + indicating the basic block containing it belongs in the cold section. + (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross + between hot and cold sections. + * toplev.c (flag_reorder_blocks_and_partition): Add code to + initialize this flag, and to tie it to the command-line option + freorder-blocks-and-partition. + * varasm.c (cfglayout.h): Add new include statement. + (unlikely_section_label_printed): New global variable, used for + determining when to output section name labels for cold sections. + (in_section): Add in_unlikely_executed_text to enum data structure. + (text_section): Modify code to use SECTION_FORMAT_STRING and + NORMAL_TEXT_SECTION_NAME macros. + (unlikely_text_section): New function. + (in_unlikely_text_section): New function. + (function_section): Add code to make sure beginning of function is + written into correct section (hot or cold). + (assemble_start_function): Add code to make sure stuff is written to + the correct section. + (assemble_zeros): Add in_unlikely_text_section as an 'or' condition + to an if statement that was checking 'in_text_section'. + (assemble_variable): Add 'in_unlikely_text_section' as an 'or' + condition to an if statement that was checking 'in_text_section'. + (default_section_type_flags_1): Add check: if in cold section + flags = SECTION_CODE. + * config/darwin.c (darwin_asm_named_section): Modify to use + SECTION_FORMAT_STRING if we are partitioning hot/cold blocks. + * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro + specifically for the i386. + (HAS_LONG_UNCOND_BRANCH): Defined this macro specifically for the i386. + * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change + text string to something more informative. + (NORMAL_TEXT_SECTION_NAME): Add new definition. + (SECTION_FORMAT_STRING): Add new definition. + * config/rs6000/rs6000.c (rs6000_assemble_integer): Add + '!in_unlikely_text_section' as an 'and' condition to an if statement + that was already checking '!in_text_section'. + (rs6000_override_options): Turn on flag_reorder_blocks_and_partition + with "-fast". + * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME, + UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make + sure these are properly defined for linux on ppc. + * doc/invoke.texi (freorder-blocks-and-partition): Add documentation + for this new flag. + * doc/rtl.texi (REG_CROSSING_JUMP): Add documentation for new + reg_note. + * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING, + HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for + these new macros. |