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

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