[plain text]

2006-09-22  Mike Stump  <>

	Radar 4736998
	* config/i386/i386.c (iasm_x86_canonicalize_operands): Avoid
	outputting arguments for movs, as the assembler can mis-assemble

2006-09-22  Stuart Hastings  <>

	* gcc/config/i386/i386.c (processor_alias_table): Remove APPLE
	LOCAL comment.

2006-09-06  Stuart Hastings  <>

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

	Radar 4699545
	* config/i386/i386.c (iasm_indirect): Avoid doing bad things with
	(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.

2006-06-29  Mike Stump  <>

	Radar 4560301
	* c-common.c (iasm_stmt): Fix argument numbers for repeated arguments.
	* config/asm.h: Likewise.

2006-08-29  Mike Stump  <>

	Radar 4699524
	* config/i386/i386.c (iasm_x86_canonicalize_operands): Add

2006-08-29  Hui-May Chang  <>

	Radar 4645709
	* config/i386/ (movstrictqi_and): Update the whole register
	for a byte operand.

2006-08-25  Hui-May Chang  <>

	Radar 4614623, 4700281
	* config/i386/i386.c (ix86_expand_vector_move): Set cfun->uses_vector to 1
	to honor the alignment requirement of vector instructions.

2006-08-24  Mike Stump  <>

	Radar 4682427
	* c-common.c (iasm_stmt): Fix jmp/call.
	* config/i386/i386.c (iasm_x86_canonicalize_operands): Likewise.

2006-07-28  Mike Stump  <>

	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

2006-07-27  Stuart Hastings  <>

	Radar 4643646
	* gcc/config/i386/i386.c (ix86_expand_vector_init_duplicate):
	Omit TARGET_SSE check.

2006-07-05  Hui-May Chang  <>

	* doc/extend.texi: Fixed the unmatched APPLE LOCAL marker introduced by
	the previous checkin for radar 4395773.

2006-06-26  Hui-May Chang  <>

	Radar 4395773
	* doc/extend.texi: Document SSE2 built-in functions and other new functions.

2006-06-26  Eric Christopher  <>

	Radar 4512244
	* config/t-slibgcc-darwin (SHLIB_SUFFIX): Depend only on ppc64
	for suffix.

2006-06-14  Mike Stump  <>

	Radar 4586112
	* 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  <>

	Radar 4601627
	* config/t-slibgcc-darwin (SHLIB_MAPFILES): Revert previous patch.

2006-06-26  Eric Christopher  <>

	Radar 4601584
	* config.gcc: Revert part of previous patch.
	* config/t-darwin: Ditto.

2006-06-23  Eric Christopher  <>

	Radar 4476324
	* config/i386/i386.c (standard_sse_mode_p): New.
	(standard_sse_constant_p): Use.
	* config/i386/ (vector_move_operand): Revert
	patch for 4283414.
	(nonimmediate_or_sse_const_operand): Define.
	* config/i386/ (*mov<mode>_internal): Use.
	(*movv4sf_internal): Ditto.
	(*movv2df_internal): Ditto.

2006-06-23  Mike Stump  <>

	Radar 4591284
	* config/i386/tmmintrin.h: Add __always_inline__ and __nodebug__.

2006-06-22  Eric Christopher  <>

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

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

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

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

	Radar 4560266
	* config/i386/darwin.h (OPTION_DEFAULT_SPECS): Remove port
	specific version.

2006-05-30  Eric Christopher  <>

	Radar 4555787
	* config/darwin-protos.h (literal16_section): Prototype.
	* config/darwin.h (EXTRA_SECTION): 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  <>
	Dale Johannesen  <>
	Stuart Hastings <>

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

	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  <>
	    H.J. Lu  <>

	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,
	(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/ (UNSPEC_PSHUFB): New.
	(UNSPEC_PSIGN): Likewise.
	(UNSPEC_PALIGNR): Likewise.
	Include before
	* config/i386/i386.opt: Add -mmni.
	* config/i386/ (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  <>

	Radar 4541111
	* config/i386/i386.c (override_options): Disable

2005-05-06  Eric Christopher  <>

	Radar 4539437
	* config/i386/i386.c (processor_alias_table): Remove
	PTA_SSE3 for nocona.

2006-05-05  Eric Christopher  <>
	    Nate Begeman  <>

	Radar 4434601
	Backport from mainline:
	2006-01-19  Jan Hubicka  <>
            H.J. Lu  <>
	    Evandro Menezes <>

	* invoke.texi (generic): Document
	(i686) Update.
	* config.gcc: Make x86_64-* and i686-* default to generic tuning.
	(x86_use_incdec, x86_pad_returns): New variables
	(TARGET_CPU_DEFAULT_generic): New constant
	(enum processor_type): Add generic32 and generic64.
	* (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.
	* (incdec_operand): Use TARGET_INCDEC
	(aligned_operand): Avoid memory mismatch stalls.
	* Enable for generic64, new patterns for 128bit moves.
	* 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  <>

	Radar 4534752
	* config/i386/i386.h (MACHOPIC_UNDEFINED_FUNCTION): Remove define.
	* config/i386/i386.c (output_pic_addr_const): Bracket machopic routines
	* config/darwin.h (MACHOPIC_INDIRECT): Undef before defining.

2006-05-02  Eric Christopher  <>

	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.

2006-05-02  Eric Christopher  <>

        Radar 4533898
        * global.c (flag_cw_asm_blocks): Change to
        * config/i386/i386.h (IASM_VALID_PIC): Move...
        * config/i386/darwin.h: ... here.

2006-05-01  Eric Christopher  <>

        Radar 4533757
        * global.c (flag_cw_asm_blocks): Declare.

2006-04-10  Eric Christopher  <>

	Radar 4467352
	* config/i386/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Disable
	mdynamic-no-pic for 64-bit.

2006-04-04  Eric Albert  <>

	Radar 4502551
	* config/darwin.h (PREFERRED_DEBUGGING_TYPE): Default to stabs for all

2006-03-27  Eric Christopher  <>

	Radar 4446385
	* config/darwin-driver.c (get_arch_name): Rewrite.

2006-06-22  Geoffrey Keating  <>

	Radar 4599002
	* dwarf2out.c (dwarf2out_finish): Move output_line_info call
	after debug_info output.

2006-06-14  Geoffrey Keating  <>

	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
	(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  <>
	Stuart Hastings  <>

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

	Rarar 4527214
	* c-common.c (iasm_stmt): Fix clobbers for mul/imul/div/idiv.

2006-05-18  Mike Stump  <>

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

	Radar 4529651
	* doc/invoke.texi (Optimize Options): Improve -fast documentation
	a little.

2006-05-01  Stuart Hastings  <>

	Radar 4222119
	* gcc/doc/invoke.texi: Document -mlong-branch.

2006-04-27  Eric Christopher  <>

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

	Radar 4314956
	Revert 2006-04-26 patch.

2006-04-27  Mike Stump  <>

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

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

	Radar 4314956
	Import from mainline:
	2005-08-31  Richard Henderson  <>
	* config/i386/i386.c (ix86_function_ok_for_sibcall): Fix test for
	fp return matching.

2006-04-26  Mike Stump  <>

	Radar 4505697
	* config/i386/i386.c (iasm_x86_canonicalize_operands): Fix movzx handling.

2006-04-26  Mike Stump  <>

	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_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 cw_op_comp to iasm_op_comp.
	Rename cw_constraint_for to iasm_constraint_for.
	Rename cw_process_arg to iasm_process_arg.
	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_op_clobber to iasm_op_clobber.
	Rename cw_op_clobber_comp to iasm_op_clobber_comp.
	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 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.
	* Likewise.
	Rename cw_asm_lineno to iasm_lineno.
	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_md_Extra_info to iasm_md_Extra_info.
	Rename cw_md_extra_info to iasm_md_extra_info.
	* config/darwin-protos.h: Likewise.
	* config/darwin.c: Likewise.
	Rename darwin_cw_asm_special_label to darwin_iasm_special_label.
	* i386/darwin.h: Likewise.
	* 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 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/ 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  <>

	Radar 4505813
	* config/i386/mmintrin.h (__m64): Update def.

2005-04-21  Dale Johannesen <>

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

	Radar 4505290
        * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Use
	pmode for SYMBOL_REFs.

2006-04-18  Dale Johannesen  <>

	Radar 4516827
	* tree-ssa-loop-ivopts.c (find_interesting_uses_address):
	Apply Zdenek's fix from mainline (PR 26643).

2006-04-18  Stuart Hastings  <>

	Radar 4505290
        * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): New.
        * config/t-darwin (crt3.o): Use it.
        * config/rs6000/ (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  <>

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

	Radar 4499790
	* c-lex.c (lex_string): Enable pascal strings for wchars.

2006-04-12  Mike Stump  <>

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

	Radar 4499627
	* gcc/config/i386/ (gen_fix_trunc<mode>_i386_fisttp):
	Remove 4209085 peephole.

2006-03-30  Geoffrey Keating  <>

	Radar 4493694
	* c-opts.c (c_common_handle_option): Ignore -fsave-repository
	when not using STABS.

2006-03-28  Geoffrey Keating  <>

	Radar 4321213
	* doc/include/sourcecode.texi (Source Code): Rewrite for Subversion.

2006-03-28  Stuart Hastings  <>

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

	Radar 4443946
	* gcc/global.c (global_alloc): Allow -fasm-blocks to clobber
	the frame pointer.

2006-03-24  Stuart Hastings  <>

	Radar 4474259
	* gcc/config/i386/i386.c (cw_reg_comp): Use strcasecmp.
	(x86_canonicalize_operands): Exception for movd.

2006-03-22  Eric Christopher  <>
	    Eric Albert  <>

	Radar 4485288
	* config/i386/darwin.h (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Emit a
	@GOTPCREL expression for x86_64.

2006-03-22  Eric Christopher  <>
	    Devang Patel  <>

	* config/darwin-driver.c (get_arch_name): If arch exists in
	table do not call NXGetLocalArchInfo().

2006-03-19  Eric Christopher  <>
	    Eric Albert  <>

	* 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 (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Remove.

2006-03-19  Eric Albert  <>

	* config/i386/darwin.h (FUNCTION_PROFILER): Disable stub generation
	for 64-bit.

2006-03-12  Eric Christopher  <>

	* 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.
	(TARGET_OS_CPP_BUILTINS): Add 64-bit support.
	(ASM_SPEC): 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

2006-03-03  Eric Christopher  <>

	* config/i386/i386.h (JUMP_TABLES_IN_TEXT_SECTION): Fix typo.
	* config/i386/darwin64.h (SIZE_TYPE): Redefine.
	(WCHAR_TYPE): 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  <>

	Radar 4473966
	* config/darwin-driver.c (fnasm_seen): Remove.
	(do_nasm): Ditto.
	(main): Remove check for fnasm. Remove call.

2006-03-22  Geoffrey Keating  <>

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

	Radar 3992198
	* config/i386/darwin.h (C_COMMON_OVERRIDE_OPTIONS): New.
	* config/rs6000/darwin.h  (C_COMMON_OVERRIDE_OPTIONS): Call
	* config/darwin-crt3.c: Be empty if __PIC__ is not defined.

2006-03-15  Devang Patel  <>

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

	Radar 4230099
	* c.opt (fvisibility-ms-compat): Add.
	* doc/invoke.texi (-fvisibility-ms-compat): Add.

2006-03-13  Stuart Hastings  <>

	Radar 4474655
	* gcc/config/i386/i386.c (override_options): Remove
	APPLE LOCAL for ix86_preferred_stack_boundary.

2006-03-07  Stuart Hastings  <>

	Radar 4457939
	* gcc/config/i386/i386.c (ix86_darwin_init_expanders): New.
	* gcc/config/i386/darwin.h (ix86_darwin_init_expanders): Declare.

2006-03-07  Mike Stump  <>

	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

2006-03-03  Stuart Hastings  <>

	* Radar 4425360
	* gcc/tree-ssa-dse.c (dse_optimize_stmt): Update from FSF trunk (see below).

2005-12-16  Jeff Law  <>

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

	* gcc/function.c (APPLE LOCAL) Fix.
	* gcc/config/i386/darwin.h (BASIC_STACK_BOUNDARY): Delete.
	* gcc/config/i386/i386.c (BASIC_STACK_BOUNDARY): Delete.

2006-02-28  Devang Patel  <>
	    Dorit Nuzman  <>

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

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

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

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

	(marked APPLE LOCAL "mainline 2006-02-17 4356747 stack realign")
	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
	* 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.
	* 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/ (UNSPEC_REG_SAVE, UNSPEC_DEF_CFA): New.

2006-02-27  Stuart Hastings  <>

	Radar 4448096
	* gcc/config/i386/ (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  <>

	Radar 4456673
	* c-common.c (print_cw_asm_operand): Revert change from
	Radar 4399388 as it breaks C++ ppc.

2006-02-24  Mike Stump  <>

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

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

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

	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

2006-02-14  Eric Christopher  <>

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

	Radar 4443942
	* config/i386/i386.c (x86_canonicalize_operands): Don't add a
	modifier for movq/movntq.

2006-02-14  Mike Stump  <>

	Radar 4415216
	* config/i386/i386.c (additional_names): Add.
	(cw_reg_comp): Add.
	(i386_cw_asm_register_name): Add support for upper case register

2006-02-14  Josh Conner  <>

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

	Radar 4408439
	* opts.c (set_debug_level): DWARF is now best for GDB.

2006-02-10  Dale Johannesen  <>

        Radar 4420531
	* doc/invoke.texi:  Warn that -ftree-loop-linear is buggy.

2006-02-10  Dale Johannesen  <>

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

	Radar 4435472
	* config/darwin-driver.c (main.c): Check --save-temps.

2006-02-09  Mike Stump  <>

	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

2006-02-08  Stuart Hastings  <>

	Radar 4176531 (revised version of 27jan06 patch)
	* config/i386/ (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  <>

	Radar 4407059
	* c-lex.c (c_lex_with_flags): Only recognize "offset" when doing
	x86 assembly.

2006-02-03  Mike Stump  <>

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

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

	Radar 4429317
	(SWB regressions; back out patch for Radar 4176531.)
	* config/i386/ (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  <>

	Radar 4208007
	* tree-vectorizer.c (vect_print_dump_info): Add vect_dump check.

2006-01-31  Devang Patel  <>

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

	Radar 4176531
	* config/i386/i386.c (ix86_expand_convert_DF2SI_sse):
	Fixes for -Werror.

2006-01-28  Dale Johannesen  <>

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

	Radar 4176531
	* config/i386/ (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  <>

        Radar 4334498
        * dbxout.c (dbxout_init): Queue void type.

2006-01-23  Dale Johannesen  <>

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

	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
	(expand_function_start): We don't need DECL_RTL for asm functions.
	(expand_function_end): Use a naked return for asm functions.
	* 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  <>

	Radar 4405429
	* global.c (find_tied_stack_pseudo): Insist on a valid
	memory address (no pseudos).

2006-01-17  Geoffrey Keating  <>

	Radar 4383509
	* dwarf2out.c (debug_frame_section): New.
	(output_call_frame_info): Use debug_frame_section.  Pass it to
	(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.
	* doc/tm.texi (SDB and DWARF): Add extra parameter to
	ASM_OUTPUT_DWARF_OFFSET.  Use @var to indicate metavariables.

2006-01-13  Geoffrey Keating  <>

	Radar 4386531
	* stab.def (N_OSO): New.
	* dbxout.c (dbxout_init): Output N_OSO stab always.

2006-01-13  Stuart Hastings  <>

	Radar 4386991
	* cp/typeck2.c (split_nonconstant_init): Remove APPLE LOCAL 4285232.

2006-01-13  Dale Johannesen  <>

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

	Radar 4392520
	* config/darwin.h (FRAME_BEGIN_LABEL): Use Lname if not for EH.

2005-12-22  Dale Johannesen  <>

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

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

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

	Radar 4385068
	* global.c (expand_preferences): Reduce aggressiveness
	of previous preference enhancement on x86, and disable
	altogether on ppc.

2005-12-15  Geoffrey Keating  <>

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

	Radar 4278774
	* c-common.def: Add new expression code AT_ENCODE_EXPR.

2005-12-14  Eric Christopher  <>

	Radar 4363479
	* tree-ssa-forwprop.c (all_uses_are_replacable): Fold replaced

2005-12-14  Dale Johannesen  <>

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

	* Revert 2005-12-07  Devang Patel  <> Radar 4137741

2005-12-13  Stuart Hastings  <>

	* config/rs6000/rs6000.c (macho_branch_islands): Add APPLE LOCAL.

2005-12-12  Fariborz Jahanian <>

	Radar 4373486

	* config/darwin.h (objc_section_init): Remove initialization of
	C* sections.

2005-12-12  Fariborz Jahanian <>

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

	Radar 4261575

	* config/i386/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Set default value
	for darwin_constant_cfstrings

2005-12-09  Mike Stump  <>

	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 <>
	    Dale Johannesen  <>

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

	Radar 4233898
        * tree-chrec.c (chrec_fold_multiply_poly_poly): Associate chrecs

2005-12-09  Stuart Hastings  <>

	Radar 4299630
	* config/rs6000/rs6000.c (rs6000_output_mi_thunk): Fixed APPLE LOCAL.

2005-12-08  Dale Johannesen  <>

	Radar 4285232
	* cp/typeck2.c (split_nonconstant_init):  Don't
	zero out object which is fully initialized.

2005-12-08  Devang Patel  <>
	    Geoffrey Keating  <>

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

	Radar 4333194
	* tree-vect-analyze.c (vect_compute_data_ref_alignment): Check
	misalignment where natural alignment is not reachable using loop

2005-12-07  Geoffrey Keating  <>

	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  <>
   	    Ziemowit Laski  <>

        Radar 4137741
        * (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  <>

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

	* config/rs6000/ (longjump): New pattern.
	* config/rs6000/rs6000.c (rs6000_output_mi_thunk): Use it.

2005-12-06  Dale Johannesen  <>

	Radar 4332318
	* config/i386/ (sse_movhlps):  Reverse operands for
	2nd and 3rd alternatives.

2005-12-05  Mike Stump  <>

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

	* (nested_function): Don't give two errors for nested functions.
	(notype_nested_function): Likewise.

2005-12-02  Mike Stump  <>

	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
	(cw_is_offset): Add offsets built with PLUS_EXPR and MINUS_EXPR.

2005-12-01  Dale Johannesen  <>

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

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

	Radar 4357979
	* (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  <>
            Andrew Pinski  <>

	Radar 4347034
	* combine.c (find_split_point):  Sign extend bitmask
	when changing bitfield assignment to IOR of AND.

2005-11-29  Mike Stump  <>

	Radar 4358678
	* config/i386/i386.h (TARGET_CW_OP_CONSTRAINT): Add "r" to jmp constraint.

2005-11-28  Mike Stump  <>

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

	Radar 4324160
        * config/i386/ (*zero_extendqihi2_movzbw): Avoid partial
        register stalls by zero extending to the full register.

2005-11-17  Devang Patel  <>

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

	Radar 4321079
	* global.c (remove_invalidated_death_notes):  New.
	* reload1.c (reload):  Call it.

2005-11-15  Mike Stump  <>

	Radar 4344359
	* c-common.c (cw_extra_clobbers): Add.
	(struct cw_op_clobber): 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  <>

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

	* cfghooks.c (split_block):  Copy loop_father.
	* cfgloopmanip.c (create_loops_notes):  Create preheaders.

2005-11-14  Dale Johannesen  <>

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

	Radar 4299173
	* loop-invariant.c (find_invariant_insn): Find more loop
	invariant insns.

2005-11-10  Mike Stump  <>

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

	Radar 4321079
	* local-alloc.c (block_alloc):  Disable local RA for vectors.
	* global.c (pseudo_preferences):  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
	(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  <>

	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.
	* (cfgloopmanip.o):  Add options.h dependency.

2005-11-08  Fariborz Jahanian <>

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

	* 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/ (vector_move_operand) Use
	(nonimmediate_or_0_operand) Return true if operand is a nonimmediate
	or a constant zero.
        * config/i386/ (*mov<mode>_internal) Use
        (*movv4sf_internal) Use standard_sse_constant_opcode.
        (*movv2df_internal) Use standard_sse_constant_opcode.
	(sse_movlhps) Replace vector_move_operand with
	(*sse_concatv2sf) Replace vector_move_operand with
        (*vec_setv4sf_0) Replace vector_move_operand with
        (sse2_loadlpd) Replace vector_move_operand with
        (*vec_concatv2df) Replace vector_move_operand with
	(sse2_loadld) Replace vector_move_operand with
        (*vec_concatv2di) Replace vector_move_operand with
	* testsuite/ New.

2005-11-01  Fariborz Jahanian <>

        objc new meta-data definitions - part 1

	* common.opt: Add new -fobjc-abi-version=n option.

2005-11-01  Evan Cheng  <>

	Radar 4317709
	* stor-layout.c (place_field) A bitfield field cannot straddle
	multiple units.

2005-11-01  Stuart Hastings  <>

	* config/darwin.h (fix-and-continue): Added APPLE LOCAL for comma.

2005-11-01  Stuart Hastings  <>

	* config/i386/i386.h (Unused): Fix gratuitous APPLE LOCAL change.

2005-10-31  Devang Patel  <>

	Radar 4053179
	Backport from Mainline.
	2005-04-14  Richard Henderson  <>
        * 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/ (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/ (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
        (ix86_expand_fp_movcc): Update to match.
        (ix86_expand_fp_vcond, ix86_expand_int_vcond): New.
        * config/i386/i386-protos.h: Update.
        * config/i386/ (vcondv4sf, vcondv2df): New.
        (vcond<SSEMODE124>, vcondu<SSEMODE12>): New.

2005-10-31  Devang Patel  <>

	Radar 4310696
	* dbxout.c (stabstr_I): Truncate anonymous aggregate names
	in C++ and Objective-c++.

2005-10-25  Evan Cheng  <>

	Radar 4209085
	* config/i386/ (fix_trunc<mode>_i387_fisttp peephole2): Emit
	fisttp for double signed integer conversion if source operand is in
	* testsuite/ New.

2005-10-25  Eric Christopher  <>

	Import from mainline:
	2005-09-28  Mark Mitchell  <>

	PR 17886
	* expmed.c (expand_shift): Move logic to reverse rotation
	direction when rotating by constants ...
	* optabs.c (expand_binop):  ... here.
	* config/i386/ (rotrdi3): Handle 32-bit mode.
	(ix86_rotrdi3): New pattern.
	(rotldi3): Handle 32-bit mode.
	(ix86_rotldi3): New pattern.

2005-10-19  Eric Christopher  <>

	Radar 3907496
	Import from mainline:
	2005-08-10  Eric Christopher  <>

	* config/rs6000/rs6000.c (mems_ok_for_quad_peep): Rewrite.
	* config/rs6000/ (*lfq_power2, *stfq_power2): Use

2005-10-10  Fariborz Jahanian <>

	Radar 4301047

	* (objc_quals): Build objc qualifier list same way
	as gcc-3.3

2005-10-11  Geoffrey Keating  <>

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

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

	Radar 4204796
	* (typespec_nonreserved_nonattr): Remove volatile from
	'volatalized' type used in a typeof operator.

2005-10-04  Fariborz Jahanian <>

	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.
	* (after_type_declarator): Recognize CLASSNAME.

2005-10-17  Geoffrey Keating  <>

	Radar 4122763
	* libgcc2.c [LIBCC_KEXT] (panic): Declare properly.
	[LIBCC_KEXT] (abort): Don't abort with no string.

2005-10-28  Stuart Hastings  <>

	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): 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  <>

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

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

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

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

	Radar 4307420
	* cfgloopmanip.c (create_loop_notes):  Handle fallthru to EXIT_BLOCK.

2005-10-19  Dale Johannesen  <>

	Radar 4307392
	* cfgloopmanip.c (create_loop_notes):  Handle jump tables.

2005-10-17  Dale Johannesen  <>

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

	Radar 4302779
	* config/darwin-driver.c (do_nasm): Include -o in
	explicit args.

2005-10-14  Eric Christopher  <>

	Radar 4302595
	* config/darwin-driver.c (do_nasm): Specify all
	arguments to nasm explicitly.

2005-10-14  Devang Patel  <>

        Radar 4300871
        * dbxout.c (dbxout_start_source_file): Flush type queue.

2005-10-13  Stuart Hastings  <>

	Radar 4278461
	* config/darwin.c (machopic_legitimize_pic_address): Set

2005-10-13  Devang Patel  <>

	* dbxout.c (dbxout_partial_type): Partially describe method types.

2005-10-11  Evan Cheng  <>

	Radar 4228294
	Radar 4296479
	* varasm.c (output_constructor):  Reverse initializer list for
	types with reversed_flag set (revision).

2005-10-12  Devang Patel  <>

	Radar 4278903
	* gcc.c (invoke_as): Process ASM_SPEC when -fsave-repository
	is seen.

2005-10-11  Dale Johannesen  <>

	Radar 4134111
	* config/i386/ (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  <>

	Radar 4276161
	* config/darwin.h (REAL_LIBGCC_SPEC): Link in shared libgcc depending
	on -mmacosx-version-min setting.

2005-10-11  Devang Patel  <>

	Radar 4117876
	* config/rs6000.c (expand_block_clear, expand_block_move): Remove
	vectorized memset/memcpy warning.

2005-10-10  Stuart Hastings  <>

	Radar 4271187
	* config/rs6000/rs6000.c (macho_branch_islands): Avoid fixed-size buffers.

2005-10-07  Evan Cheng  <>

        Radar 4109832
	* config/i386/xmmintrin.h (_MM_TRANSPOSE4_PS): Rewrite using high/low
	moves and unpack to speed up.

2005-10-07  Stuart Hastings  <>

	Radar 4205103
	* config/i386/i386.c (ix86_value_regno): Moved APPLE LOCAL marker.

2005-10-06  Devang Patel  <>

	Radar 4257091
	* c-common.c (vector_types_compatible_p): Check REAL_TYPE's precision.

2005-10-06  Dale Johannesen  <>

	Radar 4284121
	* function.c (assign_parms):  Fix RETURN_POPS_ARGS call.

2005-10-04  Devang Patel  <>

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

	Radar 4278903
	* gcc.c (invoke_as): Supply -arch when -fsave-repository is seen.

2005-01-03  Devang Patel  <>

	Radar 4135682
	* invoke.texi: Avoid using specific version number.

2005-10-01  Dale Johannesen  <>

	Radar 4279065
	* config/i386/ (sse_storeqv4si):  Remove subreg.

2005-09-30  Devang Patel  <>

	Radar 4274611
	* config/darwin-driver.c (do_nasm): New.
	(fasm_seen): New variable.
	(main): Check -fnasm.

2005-09-28  Devang Patel  <>

	Radar 4263352
        * config/darwin-driver.c (GTY): Define empty macro.

2005-09-29  Ziemowit Laski  <>

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

	Radar 4263352
        * config/darwin.h (darwin_reverse_bitfields): Add GTY marker.

2005-09-28  Devang Patel  <>

	Radar 4258406
	* (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  <>

	Radar 4228294 (revision)
	* stor-layout.c (layout_type):  Move setting of TREE_FIELDS_REVERSED...
	(place_field): here.

2005-09-26  Ziemowit Laski  <>

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

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

	* config/i386/i386.c (ix86_comp_type_attributes): Moved APPLE LOCAL marker.

2005-09-26  Mike Stump  <>

	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_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 ;.
	* 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  <>

	Radar 4248159
	* config/i386/i386.c (x86_canonicalize_operands): Add (a+b) and
	(a-b) support for memory references.

2005-09-23    Fariborz Jahanian <>

	* Radar 4266982
	* combine.c (make_extraction): Check for valid use of subreg.

2005-09-23  Mike Stump  <>

	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
	(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.
	* (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
	(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.
	(CW_HIDE_REG): 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  <>

	Radar 4231761
	* doc/invoke.texi: Tweak documentation for -Oz.

2005-09-22  Stuart Hastings  <>

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

        Radar 4043818 (pr19653)
        * /config/i386/ (mov<mode>_internal): Make cost of 'y' (mmx_regs)

2005-08-31  Richard Henderson  <>

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

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

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

	Radar 4252541
	* config/rs6000/rs6000.c (rs6000_expand_binop_builtin,
	rs6000_expand_ternop_builtin, rs6000_expand_unop_builtin): Check expr

2005-09-16  Fariborz Jahanian <>

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

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

        Radar 4241538
        * config/rs600.c (altivec_cov_rt_2p): Check NULL_TREE.

2005-09-08  Dale Johannesen  <>

	Radar 4220129
	* config/i386/emmintrin.h (_mm_set1_epi8):  Redefine.

2005-09-08  Dale Johannesen  <>

	Radar 4229407
	* passes.c (rest_of_compilation): Reduce stack alignment
	to 8 bytes, not 4, for leaves containing doubles.

2005-09-08  Fariborz Jahanian <>

	Radar 4168635
	* config/i386/i386.c (ix86_delegitimize_address): Recognize
	pattern for darwin-style PIC address of a constant.

2005-09-07  Dale Johannesen  <>

	Radar 4228294
	* tree.h (struct tree_common):  Add reversed_flag.
	* 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 <>

	Radar 4233894
	pr 22348 (fsf mainline)
	* tree-ssa-loop-niter.c (number_of_iterations_cond):
	constant fold the delta.

2005-08-31  Mike Stump  <>

        Radar 4239455
        * i386/i386.h (TARGET_CW_OP_CONSTRAINT): Sort.

2005-08-31  Dale Johannesen  <>

	Radar 4212458
	* loop-iv.c (iv_number_of_iterations):  Fix overflow check for
	loops that count down.

2005-08-31  Stuart Hastings  <>

	Radar 4231773
	* opts.c (decode_options): Add -Oz.

2005-08-30  Eric Christopher  <>

	Radar 4223128
	* config/i386/i386.h (TARGET_CW_OP_CONSTRAINT): Add remaining opcodes.

2005-08-30  Fariborz Jahanian <>

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

	Radar 4223128
	* config/i386/i386.h (TARGET_CW_OP_CONSTRAINT): Finish through m.
	Add constraints to all existing opcodes.

2005-08-27  Dale Johannesen  <>

	Radar 4217585
	* config/i386/i386.c (nocona_cost):  Increase MOVE_RATIO.

2005-08-26  Ian Lance Taylor  <>

	Radar 4229621
	* combine.c (make_extraction): Avoid reference outside object.

2005-08-26  Ziemowit Laski  <>

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

	Radar 4216496 4229407
	* passes.c (MaxAlignForThisBlock):  Rewrite to descend
	into nested blocks.
	(LargestAlignmentOfVariables):  Ditto.

2005-08-23  Stuart Hastings  <>

	Radar 4224227
	* opts.c (decode_options): Disable optimize_size after cmdline processing.

2005-08-24  Fariborz Jahanian <>

	Radar 4211430
	* stmt.c (expand_asm_operands): Make static entry symbol
	local and not extern.

2005-08-23  Eric Christopher  <>

	Radar 4223128
	* config/i386/i386.h (TARGET_CW_OP_CONSTRAINT): Add through "l".

2005-08-23  Dale Johannesen  <>

	Radar 4221664
	* convert.c (convert_to_real):  Don't convert
	(float)floor(double d) to floorf((float)d).

2005-08-23  Mike Stump  <>

	Radar 4211971
	* c-common.c (cw_is_offset): Add support for complex memory
	(cw_build_bracket): Likewise.
	(print_cw_asm_operand): Likewise.
	* c-common.def (BRACKET_EXPR): Likewise.
	* c-common.h (cw_build_bracket): Likewise.
	* (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

2005-08-22  Mike Stump  <>

	Radar 4211954
	* c-opts.c (c_common_init): Add support for the h suffix to
	identify hex integers.

2005-08-19  Mike Stump  <>

	Radar 4211947
	* c-lex.c (c_lex_with_flags): Add support for ; comments.
	(cw_skip_to_eol): Likewise.
	* (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  <>

	Radar 4225116
	* calls.c (store_one_arg):  Disable sibcalls when incoming args
	are clobbered before being used.

2005-08-18  Eric Christopher  <>

	Radar 4223128
	* config/i386/i386.h (TARGET_CW_OP_CONSTRAINT): Add a-c instructions.

2005-08-18  Mike Stump  <>

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

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

	Radar 4218231
	* c-common (print_cw_asm_operand): Add support for variable
	component reference.

2005-08-16  Dale Johannesen  <>

	Radar 4216812
	* tree-sra.c (scalarize_init):  Add integer_copy handling.

2005-08-16  Eric Christopher  <>

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

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

	Radar 4214718
	* c.opt:  Add -Wnested-functions.
	*  Warn on nested functions if this is set.
	* doc/invoke.texi:  Document new flag.

2005-08-15 Fariborz Jahanian <>

	Radar 4204303
	* config/rs6000/rs6000.h (INITIAL_FRAME_ADDRESS_RTX): Define.

2005-08-12  Devang Patel  <>

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

	Radar 3893112
	* config/rs6000/rs6000.c (params.h):  Include.
	(optimization_options):  Set sra-max-structure-size.

2005-08-09  Stuart Hastings  <>

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

	Radar 4200243
	* config/i386/i386.c (override_options): Do not check RC_FORCE_SSE3 env.
	(optimization_options): Check RC_FORCE_SSE3 env. variable.

2005-08-08  Devang Patel  <>

	Radar 4200243
	* config/i386/i386.c (override_options): Check RC_FORCE_SSE3 env. variable.

2005-08-08  Dale Johannesen  <>

	Radar 4206991
	* config/i386/i386.c (ix86_preferred_reload_class):
	Disallow int constants in SSE registers.

2005-08-08  Devang Patel  <>

	Radar 4208760
	* config/rs6000.darwin.h (CC1_SPEC): Ignore -msse3.

2005-08-05  Devang Patel  <>

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

	Radar 4200438
	* invoke.texi: Added documentation noting differing
	inliner behavior between C++ and C.

2005-08-05  Stuart Hastings  <>

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

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

	* cfgexpand.c (construct_init_block):  Roll in fix
	for PR 21562 from mainline.

2005-08-05  Stuart Hastings  <>

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

	Radar 4196953
	* dbxout.c (dbxout_type): Emit type defs in new LSYM stab.

2005-08-04  Ziemowit Laski  <>

	Radar 4174833
	* dbxout.c (dbxout_type): For Objective-C classes, do not
	output superclass metadata before outputting the fields.

2005-08-03  Dale Johannesen  <>

	* reload.c (push_reload): Better handling for
	(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.
	* (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  <>

	Radar 4174833
	* dbxout.c (dbxout_type_fields): For Objective-C classes,
	recursively output fields for superclasses first.

2005-08-03 Fariborz Jahanian <>

	Radar 4188876
	* c-typeck.c (pop_init_level): Issue diagnostic on non-constant
	vector initializers.

2005-08-03 Dale Johannesen  <>

	* loop.c (scan_loop):  Disable optimizations of loops that
	start with a jump into their middle.

2005-08-01  Devang Patel  <>

	Radar 4168568
	* c-incpatch.c (hmap_construct_pathname): Remove case mismatch warning.

2005-07-30  Fariborz Jahanian <>

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

	Radar 4134283
	* c-decl.c (ext_block): New static variable.
	(c_write_global_declarations): Optimize before wrapping up globals.

2005-07-28  Stuart Hastings  <>

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

	* postreload-gcse.c (alloc_mem):  Start CUID numbering at 1.

2005-07-22  Devang Patel  <>

	Radar 4167759
	* common.opt (flimit-debug-info): New.
	* doc/invoke.texi: Document -flimit-debug-info.

2005-07-21  Fariborz Jahanian <>

        Radar 4187164
	* c-common.c (print_cw_asm_operand): Recognize and handle a PIC address
	* c-typeck.c (parser_build_binary_op): Generate PIC address tree.
	* function.c (init_function_start): Move fralloc info to asm function
	* print-tree.c (print_node): Print extra info for asm function.
	* reload1.c (init_elim_table): asm function does not need frame
	* tree-cfg.c (set_bb_for_stmt): Make PIC label unique inside PIC
	* config/rs6000/rs6000.c (rs6000_stack_info): Set stack size according to
	setting of fralloc directive.
	* (return, return_internal_si): Don't generaate 'blr' with

2005-07-19  Devang Patel  <>

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

	Radar 4182529
	* tree-vect-analyze.c (vect_analyze_data_ref_dependence): Use absolute
	value of distance vector.

2005-07-14 Fariborz Jahanian <>

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

	Radar 4174405
	* calls.c (expand_call):  Don't let sibcalls clobber caller's
	stack space on x86.

2005-07-14  Stuart Hastings  <>

	Radar 4150746
	* config/i386/i386.c (ix86_file_end): Move get_pc_thunks to
	* config/darwin.h: Remove darwin_textcoal_nt_section.
	* config/darwin-proto.h: Likewise.

2005-07-14  Dale Johannesen  <>

	Radar 4095526
	* rs6000.c:  Fix local comment.

2005-07-14  Stuart Hastings  <>

	Radar 4177798
	* build_gcc: Default to -msse2 -march=pentium-m -mtune=prescott.

2005-07-13  Dale Johannesen  <>

	Radar 4175845
	* tree-ssa-loop-im.c (for_each_index):  Permit
	VIEW_CONVERT_EXPR with int constant operand.

2005-07-12  Dale Johannesen  <>

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

	Radar 4172062 : Take 2
	* final.c (final_start_function): Supress debug hooks while making symbol
	(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  <>

	Radar 4172150
	* dbxout.c (dbxout_type): Check Objective-C++ lang also.

2005-07-08  Dale Johannesen  <>

	Radar 4173477, 4173754, 4173757, 4173774, 4174030
	* tree-sra.c (decide_block_copy):  Disallow integer
	copies bigger than DImode.

2005-07-07  Devang Patel  <>

	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
	(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  <>
            Andrew Pinski  <>

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

	* doc/invoke.texi: Document -fsave-repository.

2005-06-30 Devang Patel  <>

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

	* opts.c (decode_options): Don't set -fforce-mem with -O2 and more.

2005-06-30  Stuart Hastings  <>

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

	Radar 4163069
	* config/darwin-c.c (darwin_pragma_options):
	Add handling for second parameter.

2005-06-22  Ziemowit Laski  <>

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

	Radar 4149909
	* config/darwin.c (machopic_select_section): constant ObjC string
	objects now always have type "__builtin_ObjCString".

2005-06-20  Dale Johannesen  <>

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

	Radar 4146993
	* config/i386/i386.c (machopic_output_stub): Use only %ecx.

2005-06-20  Dale Johannesen  <>

	Radar 4151537
	* config/rs6000/ (UNSPEC_LD_MPIC_L):  New.
	* config/rs6000/ (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  <>

	2005-06-04  Devang Patel  <>
        * 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  <>

	* varasm.c (replace_weak): Make 'static'.

2005-06-10  Dale Johannesen  <>

	Fixes from mainline.
	Radar 4137102, 4141805, 4104248
	* config/i386/ (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  <>

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

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

	* gcc.c (macosx_vers_tbl): Handle '10.5'.

2005-06-02  Stuart Hastings  <>

	* simplify-rtx.c(simplify_binary_operation, simplify_immed_subreg):
	Back out these extra checks (Chablis branch).

2005-05-31  Stuart Hastings  <>

	Copy 2004-05-19 patch from Karma mainline onto Chablis branch:
	Radar 4124883, 4122515
	* config/i386/ (UNSPEC_LDQ, UNSPEC_MOVQ, UNSPEC_STOQ): New.
	* config/i386/ (sse_loadqv4si, sse_storeqv4si, sse_movqv4si):
	Move UNSPECs inside patterns, incorporate new UNSPEC_ constants.

2005-05-27  Stuart Hastings  <>

	Radar 41216124
	* config.gcc: Darwin/x86 sets need_64bit_hwint=yes.
	* Darwin/x86 sets use_long_long_for_widest_fast_int=yes.
	* libcpp/ Darwin/x86 sets need_64bit_hwint=yes.
	* libcpp/configure: Regenerated with autoconf.

2005-05-25  Ziemowit Laski  <>

	* stub-objc.c (objc_comptypes): Remove for real.

2005-05-19  Ziemowit Laski  <>

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

	Radar 4119059
	* config/ 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  <>

	Radar 4133801
	* (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,
	* 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  <>

	Radar 4123684
	* config/rs6000/ (insvsi_internal1): Remove.

2005-05-19  Stuart Hastings  <>

	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/, UNSPEC_MOVQ, UNSPEC_STOQ): New.
	* config/i386/, sse_storeqv4si, sse_movqv4si):
	Move UNSPECs inside patterns, incorporate new UNSPEC_ constants.

2005-05-12  Dale Johannesen <>
	    Stuart Hastings <>

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

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

	Radar 4110735
	* config/rs6000/ (insvsi_internal1): Fix operand[1].

2005-05-10  Dale Johannesen  <>

	Radar 4111151
	* toplev.c (backend_init): Call init_caller_save unconditionally.

2005-05-10  Stuart Hastings  <>

	Radar 4099020
	Reinstall patch, omitting simplify-rtx change.
	* config/i386/ (sse_loadqv4s, sse_storeqv4si, sse_movqv4si): New.
	* config/i386/i386.c (IX86_BUILTIN_MOVQ,
	(__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/ Exempt SSE subregs from multiword split.

2005-05-10  Stuart Hastings  <>

	Radar 4078600
	* stor-layout.c(compute_record_mode): Delete the "8-byte struct hack".

2005-05-10  Fariborz Jahanian <>

	Radar 4095567
	* passes.c (rest_of_compilation): Readjust default stack boundaries for
	leaf functions with no vector code.

2005-05-09  Jon Ziegler  <>

	Radar 4099020
	Revert Stuart's patch for 4099020.

2005-05-09  Dale Johannesen  <>

	Radar 4113078
	* tree-inline.c (expand_call_inline):  Propagate uses_vector bit correctly.

2005-05-07  Stuart Hastings  <>

        Radar 4099020
        * config/i386/ (sse_loadqv4s, sse_storeqv4si, sse_movqv4si): New.
        * config/i386/i386.c (IX86_BUILTIN_MOVQ,
        (__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/ Exempt SSE subregs from multiword split.
        * simplify-rtx.c(simplify_immed_subreg): Exit cleanly if outermode too wide.

2005-05-06  Dale Johannesen  <>

	Radar 4090661
	* config/i386/i386.c (ix86_constant_alignment):  Max out
	alignment of string constants at 4 bytes.

2005-05-05  Stuart Hastings  <>

	* Radar 4078600
	* stor-layout.c(compute_record_mode): Revert previous patch.

2005-04-04  Devang Patel  <>

	* Radar 4095052
	* varasm.c (replace_weak): New.
	(merge_weak): Use replace_weak.

2005-05-04  Stuart Hastings  <>

	* Radar 4078600
	* stor-layout.c(compute_record_mode): Remove flag_pic from "8-byte struct hack" test.

2005-05-03  Dale Johannesen  <>

	Radar 4104248
	* objc/objc-act.c:  Include opts.h.
	* objc/ (objc-act.o):  Ditto.
	* config/darwin-protos.h (machopic_picsymbol_stub2_section):  New.
	* config/i386/i386.c:  Include params.h.
	* config/i386/ (movqi_1):  Handle ESI/EDI destination.

2005-05-02  Mike Stump  <>

	* Radar 4099000
	* config/i386/lib1funcs.asm: Add ___i686.get_pc_thunk.<reg> to
	* config/i386/t-darwin: Add.
	* config.gcc: Add i386/t-darwin.

2005-05-02  Dale Johannesen  <>

	Radar 4102133  (PR 21293, Zdenek's patch)
	* tree-cfg.c (find_taken_edge_cond_expr): Use zero_p instead of
        * 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  <>

	Radar 4086969
	* c-typeck.c (convert_for_assignment): Fix warn_discard_qual.

2005-04-28  Devang Patel  <>

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

	Radar 4101687
	* i386.c (legitimize_address):  Canonicalize shifts correctly.

2005-04-28  Dale Johannesen  <>

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

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

	Radar 4099768
	* config/i386/i386.c (ix86_split_long_mode):  Adjust
	stack offsets for 128-bit long doubles correctly.

2005-04-26  Dale Johannesen  <>

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

	Radar 4010496
	* config/i386/x-darwin: Add -mdynamic-no-pic.

2005-04-25  Devang Patel  <>

	Radar 4095956
	* config/rs6000/darwin.h (REAL_LIBGCC_GCC): Use -lgcc_static.

2005-04-26  Stuart Hastings  <>

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

	Radar 4095956
	* config/darwin.h (REAL_LIBGCC_GCC): Use -lgcc_static.

2005-04-25  Devang Patel  <>

	Radar 3954848
	* dbxout.c (dbxout_type): Emit attribute vector.

2005-04-23  Dale Johannesen  <>

	Radar 4097111
	* opts.c (decode_options):  Move cl_pf_opts_cooked setup...
	* toplev.c (process_options): here.

2005-04-22  Dale Johannesen   <>

	* common.opt (falign-functions=):  Fix it.

2005-04-22  Devang Patel  <>

	* config/rs6000/darwin.h: Update APPLE LOCAL markers to reflect
	FSF mainline check-in.

2005-04-21  Dale Johannesen  <>

	Radar 3124235
	* (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,
	* 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
	(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.
	* 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.
	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/ (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):
	* objc/objc-act.c (objc_start_function):  Record perfunc opts.

2005-04-21  Dale Johannesen  <>

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

	Radar 4080840
	* config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.

2005-04-20  Mike Stump  <>

	Radar 4077104
	* c-common.c (print_cw_asm_operand): Handle -40(sp) in C++ CW asms better.

2005-04-20  Stuart Hastings  <>

	* Radar 4067496
	* config/i386/i386.c (optimization_options): Raise inlining limits under -Os.

2005-04-20 Fariborz Jahanian <>

	* expr.c (emit_single_push_insn): Radar 4087332.

2005-04-18  Devang Patel  <>

	* config/rs6000/ (mulv4si3): Update APPLE LOCAL markers to
	reflect check-in on mainline.

2005-04-15  Devang Patel  <>

	Radar 3972875
	* config/rs6000/ (mulv4si3): New pattern.

2005-04-15  Stuart Hastings  <>

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

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

	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
	* toplev.c (align_jumps_max_skip, align_loops_max_skip): Remove.

2005-04-14  Devang Patel  <>

	Radar 3972515
        * config/rs600/ (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

2005-04-12  Geoffrey Keating  <>

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

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

	Radar 4044861
	* config/darwin-drver.c (save_temps_seen): New.
	(main): Reject -save-temps with multiple -arch options.

2005-04-07  Fariborz Jahanian <>

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

	Radar 4069922
        * tree-sra.c (decide_block_copy): Disable scalarization of sub-elements.

2005-04-05  Fariborz Jahanian <>

	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
	* tree.def (ASM_EXPR): Tree now takes an extra argument.
	* tree.h (ASM_USES): New macro defined.

2005-04-02  Ziemowit Laski  <>

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

	Radar 4075524
	* ginclude/tgmath.h (scalbn) Change to use __TGMATH_REAL_1_2 macro.
	(scalbln) Likewise.

2005-03-31  Dale Johannesen  <>

	* print-tree.c (print_node):  Handle STATEMENT_LIST (mainline).

2005-03-29  Dale Johannesen  <>

	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.
	(rs6000_override_options):  Set darwin_reverse_bitfields to 0.

2005-03-24  Dale Johannesen  <>

	Radar 3982365
	* cp/tree.c (cp_tree_equal):  Fix from mainline.

2005-03-22  Devang Patel  <>

        Radar 4023104
        * config/darwin-driver.c (dash_capital_m_seen): Remove.
        (main) : Do not handle -M options.

2005-03-21  Stuart Hastings  <>

	Radars 3805723 4010664 3965893 4010496 4015764
	* config/mh-x86-darwin: New; now bootstraps with -mdynamic-no-pic on Darwin/x86.
	* 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.
	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  <>

	* doc/include/sourcecode.texi: Update branch name.

2005-03-17  Geoffrey Keating  <>

	* Change number of expected conflicts to 15.

2005-03-14  Dale Johannesen  <>

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

        * target.h: Reinsert one line comment.

2005-03-11  Ziemowit Laski  <>

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

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

	* tree-vectorizer.c (vect_analyze_loop): Reorder data refs alignment analysis.

2005-03-08  Dale Johannesen  <>

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

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

	* 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.
	* c-incpath.c (errors.h): Include.

2005-03-06  Devang Patel  <>

	* config/darwin.h (LINK_COMMAND_SPEC): Remove foutput-dbg.

2005-03-06  Devang Patel  <>

	redundant macros.

2005-03-06  Devang Patel  <>

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

	* c-opts.c (c_common_handle_option): Remove QA_DISABLE_WERROR.

2005-03-06  Devang Patel  <>

	* tree-ssa-operands.h (add_vdef): Remove.
	* tree.h (get_array_base): Remove.
	(swap_tree_comparison): Remove redundant decl.

2005-03-06  Devang Patel  <>

	* varray.h (VARRAY_DG_INIT, VARRAY_DG): Remove.

2005-03-04  Dale Johannesen  <>

	Radar 4025985 (partial)
	* config/rs6000/rs6000.c:  Restore 64-bit ABI from mainline.
	* config/rs6000/rs6000.h:  Ditto.

2005-03-03  Dale Johannesen  <>

	Radar 3897244
	* config/i386/darwin.h:  Define REGISTER_TARGET_PRAGMAS
	* config/i386/i386.c (x86_field_alignment):  Support Mac68K alignment.

2005-03-02  Devang Patel  <>

	Undo Radar 4023104
	* config/darwin-driver.c (dash_capital_m_seen): Remove.
	(main) : Do not handle -M options.

2005-02-28  Ziemowit Laski  <>

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

	Radar 4015911
	* config/i386/i386.c (ix86_binds_local_p):  New.

2005-02-26  Dale Johanensen  <>

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

	Radar 4023104
	* config/darwin-driver.c (dash_capital_m_seen): New.
	(main) : Handle -M options.

2005-02-24  Dale Johannesen  <>

	* doc/extend.texi (nested function description):  Improvement
	from mainline.

2005-02-23  Dale Johannesen  <>

	Radar 4011924
	PR 19241 (patch from mainline)
	* tree-inline.c (copy_body_r):  Don't recurse when
	remapping variables.

2005-02-23  Devang Patel  <>

	Radar 4021019
	* config/rs6000/darwin.h (CC1_SPEC): Ignore -march=pentium4 and
	* config/i386/darwin.h (CC1_SPEC): Ignore -mno-fused-madd.

2005-02-23  Devang Patel  <>

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

	Radar 3844827
	Backport from Mainline.

	2005-01-18  Andi Kleen <>

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

	Radar 4015820 (missing piece)
	* objcp/objcp-lang.c:  Use objc_gimplify_expr.

2005-02-21  Dale Johannesen  <>

	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/  Add required tree-gimple.h's.
	* objcp/  Ditto.

2005-02-21  Stan Shebs  <>

	* config/darwin-c.c (darwin_pragma_options): Warn about uses
	of mac68k alignment pragma when 64-bit.

2005-02-21  Devang Patel  <>

	Radar 3964387
	* config/rs6000/darwin.h (CC1_SPEC): Ignore -msse and -msse2.

2005-02-19  Ziemowit Laski  <>

	Radar 4014879
	* config/rs6000/ (call_nonlocal_sysv,
	sibcall_symbolic): Add handling of ABSCALL annotations.

2005-02-17  Devang Patel  <>

	Radar 4008460
	* tree-vectorizer.c (vect_analyze_data_ref_dependence): Check for NULL
	distance vector.

2005-02-17  Devang Patel  <>

        Undo Radar 3964387 fix.

2005-02-17  Fariborz Jahanian <>

	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.
	* Accurately pass line no information to
	cw_asm_stmt routine.

2005-02-17  Ziemowit Laski  <>

	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/ (call_value_nonlocal_sysv,
	sibcall_value_symbolic): Add handling of ABSCALL annotations.

2005-02-16  Dale Johannesen  <>

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

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

	Radar 3876378
	Radar 3838108
	PR 18109 (fix from mainline)
	* config/i386/ (movhi_1):  Remove previous attempt at a fix.
	(movqi_1):  Ditto.  Don't use 4-byte load when unsafe.

2004-02-16  Devang Patel  <>

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

	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.
	* (cw_identifier): New CW identifier syntax.

2005-02-15  Fariborz Jahanian <>

	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

2005-02-14  Devang Patel  <>

	Radar 4002184
	* config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove

2005-02-14  Fariborz Jahanian <>

	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
	* (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  <>

	Radar 3962013 (Part 2)
	* doc/invoke.texi: Document '-Wstrict-selector-match'.

2005-02-11  Devang Patel  <>

	Radar 3996800
        * gcc.c (cpp_uniq_options): Emit '-mconstant-cfstrings' option,
        if needed.

2005-02-09  Dale Johannesen  <>

	Radar 3985162
	Radar 3990505
	* cselib.c (cselib_process_insn):  Clear out regs where
	* reload.c (find_equiv_reg): Ditto.

2005-02-06  Dale Johannesen  <>

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

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

	Radar 3981486
	* objcp/lang-specs.h ("@objc++-cpp-output"): Add support for 3.3
	language name for distributed builds.

2005-02-02  Geoffrey Keating  <>

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

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

	Radar 3978168
	* c-typeck.c (lvalue_or_else): Allow certain non-lvalues
	as arguments to '&', and print appropriate warning.

2004-01-31  Devang Patel  <>

	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  <>
	    Dale Johannesen  <>

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

	Radar 3962013
	* c.opt (Wstrict-selector-match): New option.

2005-01-28 Fariborz Jahanian <>

	Radar 3979484

	* cp/typeck2.c (digest_init): Convert AltiVec-style
	vector constant to its internal tree representation.

2005-01-28  Fariborz Jahanian <>

	Radar 3967653
	* config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
	Diagnose 'long long' and 64bit 'long' vector declarations.

2005-01-26  Dale Johannesen  <>

	Back out preceding change, which is wrong.

2005-01-26  Dale Johannesen  <>

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

	Radar 3978098
	* config/darwin.h (SUBTARGET_OS_CPP_BUILTINS): Move setting
	pascal_string for cpp from here...
	* config/darwin.h (SUBSUBTARGET_OVERRIDE_OPTIONS): 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  <>

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

	Radar 3970884
	* tree.c (reconstruct_complex_type): Reconstruct
	REFERENCE_TYPEs correctly, instead of turning them
	* config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
	Propagate all qualifiers from element type onto vector type.

2005-01-25  Dale Johannesen  <>

	Radar 3941199
	* config/rs6000/darwin-tramp.asm (__trampoline_setup):
	Make work for 64 bit.

2005-01-25  Dale Johannesen  <>

	Radar 3944688
	PR 19147
	* config/rs6000/ (andsi3_internal7, andsi3_internal8):  Delete.

2005-01-25  Dale Johannesen  <>

	Radar 3970057
	* config/rs6000/rs6000.c (rs6000_return_in_memory):
	Implement Darwin 64-bit convention correctly.
	Compute correct reg for int field following doubles.

2005-01-24  Stuart Hastings  <>

	Radar 3939078
	* cgraphunit.c (cgraph_build_static_cdtor) Don't set DECL_IGNORED_P.

2005-01-24  Ziemowit Laski  <>

	Radar 3961973 (Part 2)
	* c-typeck.c (lvalue_or_else): Acccept NON_LVALUE_EXPRs
	as cast expressions.

2005-01-23  Ziemowit Laski  <>

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

	Radar 3951887
	* gimplify.c (gimplify_expr): Adjust the type of
	INDIRECT_REFs after their argument is gimplified.

2005-01-19 Robert Bowdidge <>

	* config/darwin.h (SUBSUBTARGET_OVERRIDE_OPTIONS) Turn off
	  -fweak whenever we're building kexts.
	* 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  <>

	Radar 3966230
	* config/rs6000/ (movsf_low_di):  Make work.

2005-01-19  Dale Johannesen  <>

	Radar 3961638
	* config/rs6000/ (movdf_low_di):  Make work.

2005-01-19  Mike Stump  <>

	Radar 3962625
	* c-incpath.c (hmap_construct_pathname): Warn when headermaps find
	files with mismatched case.

2005-01-13  Dale Johannesen  <>

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

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

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

	* gcc.c (macosx_version_min_required): Make static.

2005-01-14  Dale Johannesen  <>

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

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

	Radar 3943021
	* config/rs6000/ (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 <>

	Radar 3903960
	* fold-const.c (fold_widened_comparison) Replace it with the
	one from FSF mainline.
	(fold_sign_changed_comparison): Ditto.
	(fold): Remove APPLE LOCAL lno marker.

2005-01-10  Ziemowit Laski  <>

	Radar 3943452
	* config/rs6000/rs6000.c (altivec_convert_args): Clear any oveflows
	caused by integer literal conversions.

2005-01-09  Mike Stump  <>

	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
	(rs6000_override_options): Likewise.
	* config/rs6000/rs6000.h (TARGET_SWITCHES): Likewise.
	(TARGET_OPTIONS): Likewise.
	(rs6000_altivec_switch): Likewise.

2005-01-10  Stuart Hastings  <>

	Radar 3236762
	* config/i386/darwin.h (SUBTARGET_EXTRA_SPECS): Revert Mach-O arch back to i386.

2005-01-09  Dale Johannesen  <>

	Radar 3941146
	Following patches from mainline:
	2004-10-27  Daniel Berlin <>

	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

	* 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
	(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

	* tree-ssa-operands.h (v_may_def_operand_type): Renamed to
	(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
	Rename existing must_i and num_v_must members to mustd_i and
	(SSA_OP_ALL_KILLS): New flag.

	* tree-ssa.c (verify_ssa): Verify virtual kills as well.

	* tree-vectorizer.c (vect_create_data_ref_ptr): V_MUST_DEF_OP
	(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  <>

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

	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,
	* 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
	(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  <>

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

	Radar 3943502
	* stub-objc.c (objc_get_class_ivars): New.

2005-01-06  Ziemowit Laski  <>

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

       * 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  <>
	    Stuart Hastings  <>

	Radar 3830232
	* testsuite/ New testcase.

2005-01-06  Stuart Hastings  <>

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

	Radar 3929334
	* c-pch.c (c_common_pch_pragma): Add indirection for pch files for distcc.

2005-01-04  Devang Patel  <>

	Radar 3886137 Part 2.
	* cppdefault.c (INCLUDE_DEFAULTS): Enable isysroot override by default
	for all include paths.

2005-01-03  Fariborz Jahanian <>

	Radar 3936917
	* config/rs6000/ (altivec_vandc): Correct RTL
	pattern and use its canonical form.

2005-01-03  Stuart Hastings <>

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

	* 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/  Add -ftrapping-math.
	* testsuite/  New.

2004-12-23  Dale Johannesen  <>

	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

2004-12-22  Fariborz Jahanian <>

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

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

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

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

	Backport vectorizatin patches from Mainline.
	Radar 3907012 3917979 3917991 3917994 3917999

	PR tree-optimization/18009
	2004-11-03  Dorit Naishlos  <>

	* tree-vectorizer.h (enum dr_alignment_support): New type.
	(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_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_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  <>

	* 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  <>
	Andrew Pinski  <>

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

	PR tree-opt/18400
	* gcc.dg/vect/pr18400.c: New test.

	2004-11-14  Dorit Naishlos  <>
	Andrew Pinski  <>

	PR tree-opt/18425
	* gcc.dg/vect/pr18425.c: New test.

	2004-11-14  Dorit Naishlos  <>

	* gcc.dg/vect/vect-78.c: Now vectorized on powerpc*.

	2004-11-19  Dorit Naishlos  <>

	* 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

	2004-11-19  Dorit Naishlos  <>

	* 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_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
	(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
	(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  <>

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

	* tree-vectorizer.c (slpeel_verify_cfg_after_peeling): Define only
	if checking is enabled.

	2004-11-22  Dorit Naishlos  <>

	PR tree-opt/18544
	* tree-vectorizer.c (vect_analyze_data_refs): Fail if memtag not found.

	2004-11-22  Dorit Naishlos  <>

	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
	(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
	(vect_transform_loop): Unify handling of known and unknown loop bound
	cases. Call make_loop_iterate_ntimes instead of

	2004-11-23  Dorit Naishlos  <>

	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  <>
	* 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): 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  <>
	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  <>
	* tree-vectorizer.c (vect_gen_niters_for_prolog_loop): Use
	tree_low_cst instead of TREE_INT_CST_LOW.

	2004-11-30  Ira Rosen  <>

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

	PR tree-opt/18716
	* tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Properly set
	then and else labels.

2004-12-17  Mike Stump  <>

	Radar 3549855
	* c-lex.c (c_lex_with_flags): Always do BOL processing for CW

2004-12-17  Dale Johannesen  <>

	Radar 3851659
	* c-decl.c (disagnose_mismatched_decls):  Fix from mainline.

2004-12-17  Fariborz Jahanian <>

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

	Radar 3910248, 3915171
	* config/rs6000/rs6000.c (output_call): correctly skip
	non-line-number notes.

2004-12-16  Ziemowit Laski  <>

	Radar 3921172
	* dbxout.c (dbxout_finish): Switch to .text section before
	emitting final SO STABS record.

2004-12-15  Dale Johannesen  <>

	Radar 3619824
	* config/rs6000/rs6000.c (optimization_options): Clear
	* doc/invoke.texi:  Document that -fno-math-errno is the default.

2004-12-15  Ziemowit Laski  <>

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

	Radar 3913672
	* config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): For
	'-faltivec', pass in '-pim-altivec' instead of '-maltivec
	* 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 <>

	Radar 3910248
	* config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): ignore
	-mlongcall when -m64 in use.

2004-12-14  Fariborz Jahanian <>

	Radar 3889727
	brought in fix for PR target/18641 from FSF

2004-12-11  David Edelsohn  <>
	    Ulrich Weigand  <>

	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/ (movdi_internal32): Ignore FPRs when
	choosing register preferences.
	(movdi_internal64): Same.

2004-12-13  Mike Stump  <>

	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.
	* (c-common.o): Added dependancy for options.h.

2004-12-10 Devang Patel  <>

	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

2004-12-10 Devang Patel  <>

	Radar 3572046 (last patch)
	* config/rs6000/rs6000.c (rs6000_emit_vector_select): Adjust
	vector select insn parameters.

2004-12-10  Devang Patel  <>

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

	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
	* 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
	(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  <>

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

	Radar 3903799
	* config/darwin.h (ASM_SPEC): Supply -force_cpusubtype_ALL.

2004-12-07  Dale Johannesen  <>

	Radar 3888787
	* doc/invoke.texi (-msoft-float):  Rewrite to reflect reality.

2004-12-07  Mike Stump  <>

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

	Radar 3893215
	Following FSF mainline patch fixes it.

2004-11-11  Zdenek Dvorak  <>

	PR tree-optimization/17742
	* tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Handle
	MINUS_EXPR correctly.

2004-12-03  Dale Johannesen  <>

	Radar 3905019
	* opts.c (common_handle_option):  Fix from mainline.

2004-12-03  Stuart Hastings <>

	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  <>
	    Andrew Pinski  <>

	Radar 3469752 (Adding loops-to-memset optimization)
	* (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
	* tree-pass.h (pass_memset):  Add extern declaration for loops-to-memset
	* tree-ssa-loop.c  (tree_ssa_loop_memset, gate_tree_ssa_loop_memset): New
	(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
	(vect_get_loop_niters): Likewise.
	(vect_analyze_pointer_ref_access): Likewise.

2004-12-02  Devang Patel  <>

	Radar 3855723 and 3886718

	Backport from Mainline
	2004-12-02  Devang Patel  <>
	* 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 <>

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

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

	* gcc.h: APPLE LOCAL marker cleanup.

2004-11-24  Devang Patel  <>

	Radar 3876218
	* gcc.c (process_command): Supply -v to linker.

2004-11-23  Stan Shebs  <>

	* config.gcc (powerpc-*-darwin*): Remove bringup conditional.
	* Don't try to make dylibs from static/kext
	* config/t-slibgcc-darwin: Don't use SHLIB_MULTILIB.

2004-11-23  Devang Patel  <>

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

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

	* config/darwin.h (JUMP_TABLES_IN_TEXT_SECTION):  Conditionalize
	properly and comment.

2004-11-21  Dale Johannesen  <>

	* config/darwin.h (JUMP_TABLES_IN_TEXT_SECTION):  Define.
	(TARGET_TERMINATE_DW2_EH_FRAME_INFO):  Remove dup definition.

2004-11-18  Dale Johannese  <>

	* lambda-code.c:  cosmetic changes to match mainline.

2004-11-17  Stuart Hastings <>

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

	Merge stuff from autovect-branch.

	2004-11-12  Devang Patel  <>

	* optabs.c (vector_compare_rtx): Use COMPARISON_CLASS_P.

	2004-11-12  Devang Patel  <>

	Backport from Mainline.

	2004-11-12  Sebastian Pop  <>

	* tree-data-ref.c (analyze_subscript_affine_affine): Correctly
	compute the first overlapping iterations.

	2004-11-12  Devang Patel  <>

	* 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
	(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  <>

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

	* tree-ssa.c (flush_pending_stmts):  New.

2004-11-16  Dale Johannesen  <>

	* config/rs6000/rs6000.c (rs6000_override_options):
	Put -ftree-loop-linear into -fast.

2004-11-16  Dale Johannesen  <>

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

	* fold-const.c (try_move_mult_to_index):  New.
	(fold):  Use it (2 places).

2004-11-16  Dale Johannesen  <>

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

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

	* varasm.c (assemble_start_function):  Don't print out section label
	when aligning cold section.

2004-11-16  Dale Johannesen  <>

	* dbxout.c (dbxout_source_file):  Restore local patch
	for hot/cold partitioning.

2004-11-16  Dale Johannesen  <>

	* calls.c (expand_call):  Fix ICE building crafty.

2004-11-15  Dale Johannesen  <>

	* profile.c (compute_branch_probabilities):  Roll in fix from mainline.

2004-11-15  Dale Johannesen  <>

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

	* 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/  Remove.

2004-11-15  Matt Austern  <>

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

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

	* (*movqi_1): Short-term fix for 3838108.

2004-11-11  Stuart Hastings <>

	* tree.c (build_vector): Proper initialization for 'list'

2004-11-10  Fariborz Jahanian <>

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

	* gcc.c: Improve local markers.

2004-11-08  Devang Patel  <>

	Radar 3846514
	* tree-if-conv.c (clean_predicate_lists): Use loop header and latch

2004-11-08  Ziemowit Laski  <>

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

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

	Radar 3848818
	* cfgcleanup.c(merge_memattrs): copied from FSF mainline.

2004-11-04  Dale Johannesen  <>

	* config/darwin.h (EXTRA_SECTION_FUNCTIONS):
	Fix text_unlikely_section.

2004-11-04  Dale Johannesen  <>

	Radar 3759876
	* config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall):  Enable
	indirect sibcalls.
	* config/rs6000/ (*sibcall_symbolic):  Make them work.
	(*sibcall_value_symbolic):  Ditto.

2004-11-04  Dale Johannesen  <>

	* opts.c (decode_options):  Use mainline-style loop opts.

2004-11-04  Dale Johannesen  <>

	* config/rs6000/ (*save_fpregs_with_label_si):
	Use any_parallel_operand to remove a warning.
	* config/rs6000/ (*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  <>

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

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

	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):
	* c-objc-common.h (LANG_HOOKS_TYPES_COMPATIBLE_P): Moved here from

2004-11-02  Fariborz Jahanian <>

	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

2004-11-02  Fariborz Jahanian <>

	Radar 3846637
	* config/rs6000/ Remove condition for
	HONOR_SIGNED_ZEROS from fnmsub generation.

2004-11-01  Ziemowit Laski  <>

	Radar 2810013 (fix from mainline)
	* c-common.h (objc_lookup_ivar): Add second parameter to
	* 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 <>

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

	* 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.
	* tree.h (DECL_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  <>

	Radar 3840704
	* c-opts.c (c_common_handle_option): Rename flag_altivec to
	* c.opt (faltivec): Likewise.
	* toplev.c (process_options): Likewise, and update comment.
	* config/rs6000/rs6000.c (expand_block_clear): Handle
	(expand_block_move): Likewise.

2004-10-26  Devang Patel  <>

	Radar 3233789
	* dbxout.c (dbxout_init): Remove APPLE LOCAL patch that suppresses
	SO stab address.

2004-10-26  Devang Patel  <>

	Radar 3760592

	Backport from mainline.
	2004-10-21  Dndrew Pinksi  <>
	* c-opts.c (push_command_line_include): Use the current file
	name instead of the main one.

2004-10-26  Matt Austern  <>

	* ginclude/tgmath.h (fabs): Fix typo (complex abs is cabs, not cfabs)

2004-10-22  Fariborz Jahanian <>

	* config/rs6000/ Remove vecstore/vecload patterns
	specific to 64-bit Darwin.

2004-10-21  Andrew Pinski  <>
	    Ziemowit Laski  <>

	Radar 3845826 (includes PR objc/17923)
	* tree.c (staticp): A CONST_DECL has static storage if either
	* 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 <>

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

	* function.c (assign_parms): Iterate over all non-vector args first,
	then over vector args.

2004-10-21  Ziemowit Laski  <>

	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'
	* c.opt (fobjc-call-cxx-cdtors): New option.
	* doc/invoke.texi (fobjc-call-cxx-cdtors): Document.

2004-10-19  Devang Patel  <>

	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):

2004-10-19  Devang Patel  <>

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

	* c-common.c (cw_asm_stmt): Set correct constraint for
	vector arguments.

2004-10-18  Ziemowit Laski  <>

	Radar 3832999 (fix from mainline)
	* (reservedwords): Add OBJC_TYPE_QUAL as alternative.

2004-10-18  Devang Patel  <>

	Radar 3753408
	* (GTFILES): Remove APPLE LOCAL comments.
	(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
	(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.

2004-10-16  Dale Johannesen  <>

	* c-common.c (c_common_get_alias_set):  Use GGC for type_hash_table.

2004-10-15  Dale Johannesen  <>

	* objcp/objcp-lang.c (tree_code_type):  Fix merge omission.

2004-10-15  Mike Stump  FIXME


2004-10-15  Stuart Hastings <>

	* simplify-rtx.c(simplify_relational_operation): copied from FSF mainline.

2004-10-15  Stuart Hastings <>

	* c-common.c(print_cw_asm_operand): proper casting.
	* expr.c(expand_expr_addr_expr): delete problematic assertions.

2004-10-14  Robert Bowdidge <>

	* config/darwin-driver.c: Remove off-by-one error in QA_OVERIDE...

2004-10-15  Fariborz Jahanian <>

	Radar 3719208
	* stor-layout.c (update_alignment_for_field): Don't use
	first-field alignment adjustment for union.

2004-10-13  Ziemowit Laski  <>

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

	* passes.c (rest_of_compilation):  Move hot/cold partitioning to
	occur after scheduling (and SMS), but still before register

2004-10-10  Dale Johannesen  <>

	* alias.c (write_dependence_p):  Refs to same FE object interfere.

2004-09-29  Stan Shebs  <>

	* config/darwin.h (REAL_LIBGCC_SPEC): Add non-shared libgcc case for
	use during 64-bit bringup.

2004-09-27  Robert Bowdidge  <>

	* opts.c: Remove QA_OVERRIDE_GCC3_OPTIONS machinery.
	* config/darwin-driver.c: Reimplement QA_OVERRIDE_GCC3_OPTIONS in

2004-09-27  Dale Johannesen  <>

	* tree-ssa-copyrename.c (copy_rename_partition_coalesce):
	Roll in fix from mainline.

2004-09-26  Caroline Tice  <>
	    Dale Johannesen  <>

	* value-prof.c (insn_prefetch_values_to_profile):
	Don't instrument clobbers.

2004-09-26  Dale Johannesen  <>

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

	Radar 3811274
	PR 17625
	* loop-doloop.c (doloop-modify): roll in fix from FSF.

2004-09-23  Stan Shebs  <>

	* Use --print-multi-lib to collect
	compiled-in multilibs.
	* config.gcc: Add in a Darwin 8.x makefile fragment.
	* Bandaid for a missing __ppc64__ in limits.h
	* config/rs6000/t-darwin8: New file, adds -m64 multilib.

2004-09-23  Devang Patel  <>

	Radar 3765210.
	* gcc.c (main): Handle -E when combine_flag is set.

2004-09-22  Stan Shebs  <>

	* config/darwin.h (STARTFILE_SPEC): Don't link in crt2.o if -m64.

2003-09-21  Matt Austern  <>

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

	* gcc.c: Use .gch extension instead of .pch.

2004-09-13  Dale Johannesen  <>

	Radar 3793575
	* c-decl.c (start_decl):  Fix from mainline (PR 17408).

2004-09-13  Andrew Pinski  <>

	Part of radar 3753405 and all of 3767339
	* (c-parse.y): Remove ifcwasm as it is no longer used.
	* objc/ (objc/objc-parse.y): Likewise.
	* 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
	(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  <>

	* config/rs6000/ Increase store latency (mainline).

2004-09-08  Stan Shebs  <>

	* config/rs6000/darwin-worldsave.asm: Remove, no longer used.

2004-09-07  Caroline Tice  <>

	* cfgrtl.c (rtl_verify_flow_info_1):  Add new edge flag,
	EDGE_CROSSING, to flags test case.

2004-08-31  Devang Patel  <>

	* config/darwin-driver.c (get_arch_name): Replace abort() with
	(get_driver_name): Same.

2004-08-30  Fariborz Jahanian <>

	* c-common.c (vector_constructor_from_expr): Adapt to new representation
	of comma-expression in c.

2004-08-29  Andrew Pinski  <>

	* 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
	* 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
	(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  <>

	* Regenerate.

2004-08-23  Richard Henderson  <>
	    Andrew Pinski  <>

	* gimplify.c (gimplify_array_ref_to_plus): Delete.
	(gimplify_addr_expr): Do not call gimplify_array_ref_to_plus

	* config/rs6000/rs6000.c (altivec_expand_builtin): Go passed
	ARRAY_REF also to get to the STRING_CST.

2004-08-24  Stan Shebs  <>

	* ( 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  <>

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

	* config/darwin-driver.c (arch_config): Add ppc64.
	(add_arch_options): Similarly.

2004-08-22  Andrew Pinski  <>

	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

2004-08-20  Stan Shebs  <>

	* config/rs6000/darwin.h (DARWIN_ARCH_LD_SPEC): Pass -arch ppc64
	to linker if -m64.

2004-08-20  Dale Johannesen  <>

	* config/rs6000/rs6000.c (rs6000_rtx_costs):  Fix from mainline.

2004-08-19  Dale Johannesen  <>

	* c-decl.c (implicitly_declare): Reduce error to warning when
	disable_typechecking_for_spec_flag is on.

2004-08-18  Ziemowit Laski  <>

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

	* config/darwin-driver.c (verbose_flag): New.
	(do_lipo): Interpret -v.
	(main): Set verbose_flag.

2004-08-18  Dale Johannesen  <>

	* tree-cfg.c (tree_block_ends_with_call_p):  Fix comments.
	(tree_block_ends_with_condjump_p):  Ditto.

2004-08-18  Matthew Sachs  <>

	* Merge from mainline.

2004-08-17  Devang Patel  <>

	* config/darwin-driver.c (main): Do not handle -x separately.

2004-08-16  Robert Bowdidge  <>

	* Add -mdynamic-no-pic to Darwin-specific options

2004-08-16  Caroline Tice  <>

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

	Merge from mainlne.
	2004-08-16  Devang Patel  <>

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

	Radar 2872232
	* ginclude/tgmath.h: New file.
	* Add tgmath.h to list of installed headers.

2004-08-13  Devang Patel  <>

	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,

2004-08-13  Devang Patel  <>

	Merge from mainline. Radar 3739309.
	2004-08-11  Devang Patel  <>

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

	Merge from mainline. Radar 3739302.
	2004-08-10  Devang Patel  <>

	* 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

2004-08-12  Stan Shebs  <>

	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.
	* config/rs6000/ New file, patterns specific to 64-bit
	* config/rs6000/ Include
	(builtin_setjmp_receiver): Add DImode case.
	* config/rs6000/rs6000.c (TARGET_ASM_UNALIGNED_DI_OP): Define for
	(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  <>

	* c-decl.c (diagnose_mismatched_decls): Improve

2004-08-12  Dale Johannesen <>

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

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

	* ginclude/stdarg.h: Remove APPLE LOCAL change.
	* ginclude/varargs.h: Likewise.

2004-08-08  Dale Johannesen  <>

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

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

	* c-typeck.c (tagged_types_tu_compatible_p): Fix from mainline.

2004-08-06  Andrew Pinski  <>

	* config/darwin.h: Fix misplaced #endif which came in via the merge.

2004-08-04  Fariborz Jahanian <>

	* c-common.c (vector_constructor_from_expr): Treat all constant
	vector expression tree as a constant tree.

2004-08-03  Stan Shebs  <>

	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.
	* Add rules for parsing CW asm blocks.
	(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.
	(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  <>

	* config/rs6000/rs6000.c (rs6000_split_multireg_move): Just abort
	if trying to *store* to a non-offsettable address.
	* config/rs6000/ (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  <>

	 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
	* opts.c (common_handle_option) <OPT_fwritable_strings>:
	* toplev.c (flag_writable_strings): Add.
	(f_options): Add an entry for writable-strings.
	* varasm.c (const_hash_1) <STRING_CST>: Check
	(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  <>

	* 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  <>
	    Fariborz Jahanian <>

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

	* config/darwin-c.c (darwin_pragma_call_on_load): Deprecate.
	(darwin_pragma_call_on_unload): Likewise.

2004-07-15  Devang Patel  <>

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

	* target.h (gcc_target): Additional parameter for
	* 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
	(exist_non_indexing_operands_for_use_p): Handle conditional modify
	* config/rs6000/rs6000.c (rs6000_vector_compare_for_p): New parameter.
	(get_vector_compare_for): New parameter. Use it to find appropriate

2004-06-26  Fariborz Jahanian <>

	* gcc.c: Don't use -fpredictive-compilation when
	-fpreprocessed appears on command line.

2004-07-01  Devang Patel  <>

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

	Radar 3236762
	* config/darwin-driver.c (do_lipo): Do not supply -arch <arch_name>
	to lipo.

2004-06-29  Andrew Pinski  <>

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

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

	* (tree-ssa-loop-manip.o): Depend on tree-scalar-evolution.h
	* tree-if-conv.c (collapse_blocks): Use release_phi_node instead of
	* tree-ssaname.c (make_ssa_name): Re-enable free_ssanames.
	(release_ssa_name): Same.
	* tree-scalar-evolution.c (scev_reset): Check current_loops and
	* tree-ssa-loop-manip.c (tree-scalar-evolution.h): Include.
	(tree_duplicate_loop_to_header_edge): Call scev_reset().

2004-06-28  Devang Patel  <>

	* tree-if-conv.c (make_ifcvt_temp_variable): Fix formatting.

2004-06-28  Devang Patel  <>

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

	* objcp/ (objcp/objcp-parse.y): Update to use
	move-if-change from top directory.

2004-06-25  Stuart Hastings <>

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

	* objc/ use $(srcdir)/../move-if-change.

2004-06-25  Dale Johannesen  <>

	* replace $(SHELL) ${srcdir}/mkinstalldirs
	with $(mkinstalldirs) throughout.

2004-06-25  Stuart Hastings <

	Radar 3690727
	* config/rs6000/  Add missing APPLE LOCAL markers.
	* config/t-darwin.h: Ditto.
	* Minor formatting cleanup.

2004-06-24  Dale Johannesen  <>

	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/ (*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  <>

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

	* 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):
	(get_vector_init_fns_for_type): Initialize lve_fn, splt_fn vars.

2004-06-22  Andrew Pinski  <>

	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

	* c-decl.c (perform_loop_transpose): Fix formatting and cleanup.

2004-06-22  Andrew Pinski  <>

	Radar #: 3701874
	* c-decl.c (push_file_scope): Return early if we already
	have a file scope.

2004-06-22  Devang Patel  <>

	PR 16105
	* tree-vectorizer.c (vect_analyze_operations): Type of MODIFY_EXPR is
	not reliable. Use LHS's type.

2004-06-21  Dorit Naishlos  <>

	* 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_VEC_HOOK): 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
	(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.
	* 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  <>

	Radar 3691917
	* Revert version string in version.c to as of apple-gcc-1762.

2004-06-16  Jon Ziegler  <>
	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  <>
	Radar 3661015/PR 15993
	* tree-ssa-dom.c (thread_across_edge): fix from FSF.

2004-06-15  Dorit Naishlos  <>

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

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

	Radar 3661661
	* tree-ssa.c (tree_ssa_useless_type_conversion_1): fix from FSF.

2004-06-14  Dale Johannesen  <>

	Radar 3690727 (partial)
	* gimplify.c (copy_if_shared_r): Add missing APPLE LOCAL.
	* config/rs6000/t-darwin: Ditto.

2004-06-14  Fariborz Jahanian <>

	* version.c: Remove word tree-ssa from version string.

2004-06-12  Devang Patel  <>

	* (OBJS-common): Add tree-if-conv.o.
	(tree-if-conv.o): New rule.
	* 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
	(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
	(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.
	(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  <>

	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  <>
	    Olga Golovanevsky  <>
	    Ayal Zaks  <>

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

	* tree-ssa-loop-niter.c (number-of_iterations_cond): Apply Zdenek's
	patch from 5/28 lno-branch.

2004-06-10  Dale Johannesen  <>
	* tree-scalar-evolution.c (scev_finalize): Remove wild load.

2004-06-10  Fariborz Jahanian <>

	* version.c: Change version date to 20040529 (date of
	last merge).

2004-06-09  Dale Johannesen  <>

	* df.c (df_def_record_1): Handle DImode parallel.

2004-06-09  Fariborz Jahanian <>

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

	* config/rs6000/t-darwin:  Remove duplicate fpsave.

2004-06-08  Andrew Pinski  <>

	approved Dale Johannesen <>
	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 <>

	* config/darwin.c (machopic_indirect_call_target): Added patch from
	PR/15720 (function marked inline which is called directly isn't

2004-06-08  Fariborz Jahanian <>

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

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

	* gcc.c: Removed setting of -combine option with -fast.

2004-06-07  Fariborz Jahanian <>

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

	* cse.c (cse_insn):  Make sure there's a ZERO_EXTEND before looking
	under it.  (176.gcc spec regression)

2004-06-07  Ayal Zaks <>

	Radar 3619935 - Part 1
	* 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_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,
	(rs6000_support_misaligned_vloads, rs6000_permute_misaligned_vloads,
	rs6000_build_builtin_lvsl, rs6000_build_builtin_vperm): New.

2004-06-07  Olga Golovanevsky  <>

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

	Radar 3673334
	* config/darwin-driver.c (add_arch): New.
	(strip_path_and_suffix): Use strcpy.
	(main): Use add_arch().

2004-06-07  Devang Patel  <>

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

	* doc/invoke.texi (-fast): Add documentation for "-fast" option.

2004-05-29  Dale Johannesen  <>

	* config/rs6000/rs6000.c (rs6000_override_options):  Enable
	hot/cold partitioning with -fast -profile-use.

2004-05-28  Ziemowit Laski  <>

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

2004-05-28  Fariborz Jahanian <>

	* explow.c (copy_to_mode_reg): For PARALLEL patterns, copy
	to reg via a temprary.

2004-05-27  Dale Johannesen  <>

	* loop-invariant.c (check_maybe_invariant):  Disallow CALL hoists.
	* varasm.c (assemble_start_function): Construct unlikely_section_label

2004-05-26  Caroline Tice <>

	* 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
	(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  <>

	* tree-ssa-loop-niter.c: Add.  New in lno branch.  Oops.

2004-05-25  Mike Stump  <>

	Radar 3665096
	* config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Change default
	for long double type size to be 128.

2004-05-25  Dale Johannesen  <>

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

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

	Radar 3665390
	* config/darwin-driver.h (main): While reinserting output filename
	do not forget -o.

2004-05-24  Mike Stump  <>

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

	Radar 3644687
	* config/darwin-driver.c (main): Reinsert output filename
	only if user supplied one.

2004-05-22  Dale Johannesen  <>

	* simplify-rtx.c (simplify_unary_operation):  Don't create NOT(SYM)
	* config/rs6000/rs6000.h (machine_function):  Make substitute_pic_base_reg
	* config/rs6000/  Compare it to INVALID_REGNUM not -1.
	* config/rs6000/rs6000.c (throughout):  Ditto.

2004-05-21  Ziemowit Laski  <>

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

	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
	* cpplex.c (_cpp_peek_token): New function.
	(_cpp_temp_token): Account for existence of lookaheads when allocating
	* 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
	(_cpp_backup_tokens_direct): New function, broken off from
	(_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  <>

	* config/darwin-driver.c (main): Prepand "-Wl," before
	-final_output to make it linker option.

2004-05-20  Fariborz Jahanian <>

	* 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
	* toplev.c: Definition of predictive_compilation added.

2004-05-14  Dale Johannesen  <>

	*  Remove local -Wno-error dependencies.

2004-05-13  Caroline Tice  <>

	* c-common.c (builtin_function_disabled_p):  Remove "static" from
	function declaration and definition.
	* c-common.h (builtin_function_disabled_p):  Add extern function
	* 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  <>

	* opts.c (common_handle_option): Handle OPT_arch.

2004-05-12  Devang Patel  <>

	* config/darwin.h (darwin_builtins): Move to ...
	* config/darwin.c (darwin_builtins); here.

2004-05-12  Dale Johannesen  <>

	Radar 3509006

	* config/rs6000/rs6000.c (rs6000_override_options):
	Don't enable string insns with -Os.
	* doc/invoke.texi:  Document this behavior.
	* testsuite/  New.

2004-05-12  Dale Johannesen  <>

	* config/rs6000/rs6000.c (rs6000_stack_info):  Restore an
	optimization lost in merge.

2004-05-11  Ziemowit Laski  <>

	* gcc.c (process_command): Do not define __CONSTANT_CFSTRINGS__,
	since config/darwin.h already does this.
	(do_spec_1): Emit "-mconstant-cfstrings" instead of

2004-05-11  Devang Patel  <>

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

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

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

	* config/rs6000/rs6000.c (rs6000_override_options):  Modify to
	not turn on hot/cold partitioning in the presence of exception

2004-05-06  Dale Johannesen  <>

	* Merge from lno branch as of 04-24.  Files changed:

2004-05-04  Caroline Tice <>

	* config/rs6000/darwin.h (FP_SAVE_INLINE):  Modify this to
	always be 1 ("on") if the optimization level is -O3 or

2004-04-30  Dale Johannesen  <>

	* cse.c (cse_insn):  Don't add REG_EQUAL note for

2004-04-30  Caroline Tice  <>

	* 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):  Add code to generate *correct* value for
	'unlikely_section_label'.  Now makes use of value from 'fnname'

2004-04-29  Devang Patel  <>

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

	Merge lno-branch as of 2004:04:18 00:00 into

2004-04-28  Fariborz Jahanian <>

	* 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
	* targhooks.h (default_skip_vec_args): Declaration.
	* config/rs6000/rs6000.c (skip_vec_args): New definition.

2004-04-28  Stuart Hastings  <>

	* config/rs6000/rs6000.c (macho_branch_islands): Fix sprintf arguments.
	* config/rs6000/ (output_call): Fix arguments.

2004-04-27  Devang Patel  <>

	* 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...
	* config/i386/darwin.h (DARWIN_ARCH_ASM_SPEC): New.
	(DARWIN_ARCH_SPEC): Rename as...

2004-04-26  Andrew Pinski  <>

	* Add test for -Wno-long-double.
	* (STRICT2_WARN): Add -Wno-long-double.
	(alloc-pool.o-warn): Delete.
	(ggc-page.o-warn): Delete.
	* configure: Regenerate.

2004-04-23  Dale Johannesen  <>

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

	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.
	(-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).
	* confiig/rs6000/darwin.h (ASM_SPEC): Add %(darwin_arch_spec).
	* config/rs6000/rs6000.h (SUBTARGET_EXTRA_SPECS): Surround it with #ifndef.
	* config/darwin-driver.c: New file.

2004-04-20  Geoffrey Keating  <>

	* c-cppbuiltin.c (define__GNUC__): Better precision and more
	error checking for code defining __APPLE_CC__.
	* testsuite/ New.

2004-04-15  Devang Patel  <>

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

	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
	do so if architecture supports named sections.
	* cfgrtl.c (target.h): Add new include statement.
	(force_nonfallthru_and_redirect):  Modify code that adds
	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  <>
	    Richard Henderson  <>

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

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

	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/ (floatsidf2): Use
	(floatunssidf2): Ditto.
	(fix_truncdfsi2): Ditto.

2004-04-07  Fariborz Jahanian <>

	Roll in Ziem Laski's Altivec front-end fixes to
	support MOTOROLA's Altivec syntax.
	* 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 <>

	Roll in Zdenek Dvorak's rewrite of doloop optimization.
	* 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  <>

	Remove APPLE LOCAL AltiVec code whenever possible; merge in
	AltiVec/VECTOR_TYPE-handling code from mainline.

2004-04-01  Fariborz Jahanian <>

	* 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,

2004-04-01  Caroline Tice  <>

	* basic-block.h (struct edge_def):  Add new field, crossing_edge.
	(struct basic_block_def):  Add new field, partition.
	(partition_hot_cold_basic_blocks): Add extern function
	* 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
	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
	* 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)
	(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,
	* 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
	(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,
	* 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
	* 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
	(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".
	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
	these new macros.