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->fp 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.
