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.
