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.
