blob: d4976fbdf55a5885cd1691f1f9a4ed728dc68d53 [file] [log] [blame]
2007-04-24 Mike Stump <>
Radar 5083137
(main): Add add_sysrooted_prefix should use SYSROOT_PRIORITY
* config/darwin.h (GCC_DRIVER_HOST_INITIALIZATION1): Add.
2007-04-24 Hui-May Chang <>
Radar 5122634
Backport from mainline:
2007-04-24 Hui-May Chang <>
* reload1.c (merge_assigned_reloads) : Do not merge a RELOAD_OTHER
instruction with a RELOAD_FOR_OPERAND_ADDRESS instruction.
2007-04-13 Fariborz Jahanian <>
Radar 4899595
* c.opt (-fobjc-new-property) on by default.
* config/darwin-c.c (darwin_cpp_builtins): Define OBJC_NEW_PROPERTIES
when new property flag is on.
2007-03-12 Fariborz Jahanian <>
Radar 5023725
* c-opts.c: Remove flag_objc_zerocost_exceptions check.
* config/darwin.h
(OBJC_FLAG_ZEROCOST_EXCEPTIONS): New macro to issue diagnostic.
(OBJC_FLAG_OBJC_ABI): Set -fobjc-zerocost-exceptions as
default for objc2 abi.
* config/darwin-c.c (darwin_cpp_builtins): Define OBJC_ZEROCOST_EXCEPTIONS
when zero-cost exception flag is on.
2007-04-18 Stuart Hastings <>
Radar 5131847
* gcc/config/i386/ (movstrictqi_and): Add 64-bit support.
2007-04-17 Mike Stump <>
Radar 5119788
* gimplify.c (gimplify_init_ctor_eval): Handle VECTOR_TYPEs
2007-04-10 Fariborz Jahanian <>
Fix bootstrap problem caused by radar 5096648.
* c-format.c (tm_p.h): Include it.
* config/darwin-protos.h: (objc_check_format_cfstring): Add decl.
2007-04-09 Eric Christopher <>
* config/darwin.h: Remove prototypes from last checkin.
2007-04-09 Fariborz Jahanian <>
Radar 5096648
* c-format.c (tm_p.h): header file include.
(format_type): cfstring_format_type enum added.
(format_kind_info): New entry for CFString format added.
(objc_check_nsformat_arg): Renamed to objc_check_cfformat_arg
and modified.
(check_format_info): Added support for CFString format.
(handle_format_attribute): Ditto.
* c-common.h (objc_NSString_format): decl removed.
* stub-objc.c (objc_NSString_format): def removed.
* config/darwin.h (TARGET_CFSTRING_P): Removed.
* (tmp.h): c-format.o now depends on.
* config/darwin-c.c (objc_check_format_cfstring): New
2007-04-09 Mike Stump <>
Radar 4401222
* gsyslimits.h: Don't include_next <limits.h> here...
* limitx.h: instead, include_next <limits.h> here.
* limity.h: Simplify.
2006-12-19 Fariborz Jahanian <>
Radar 4792158
* config/darwin-protos.h: Removed/added extern decls.
* config/darwin.c (machopic_select_section): New __objc_stringobj
section for objc2 ObjCString strings.
(machopic_select_section): Clean up and separation of objc2 and objc1
* config/darwin.h: Renaming of OBJC2 segment names to __DATA
and some cleanup.
2007-03-26 Jon Ziegler <>
Revert Radar 4964506
* function.c: revert
* defaults.h: revert
* var-tracking.c: revert
* dwarf2out.c: revert
2007-03-19 Fariborz Jahanian <>
Radar 4947014 - objc atomic property
* c-common.h (RID_NONATOMIC): Add
* Recognize 'nonatomic' as new property.
2006-12-13 Geoffrey Keating <>
Radar 4697325
* gcc.c (process_command): Move handling of
MACOSX_DEPLOYMENT_TARGET environment variable from here.
* config/darwin-driver.c: Remove.
2007-03-13 Fariborz Jahanian <>
Radar 4564694
* Add @package support to syntax.
* c-common.h (RID_AT_PACKAGE): Add
2007-03-06 Mike Stump <>
Radar 5033355
* c-incpath.c (merge_include_chains): Note framework include
2007-03-02 Eric Christopher <>
* cfgexpand.c (tree_expand_cfg): Fix typo.
2007-02-28 Fariborz Jahanian <>
Radar 5028937
* config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Modified to handle
objc/objc++ prefixes.
* config/rs6000/darwin.h: Ditto
2007-02-16 Caroline Tice <>
Radar 4964506
Backport from mainline (some pieces missed previously):
2006-02-21 Alexandre Oliva <>
* defaults.h (CFA_FRAME_BASE_OFFSET): Define.
2005-11-17 Richard Henderson <>
* var-tracking.c (adjust_stack_reference): Use
2005-09-07 Richard Henderson <>
* function.c (ARG_POINTER_CFA_OFFSET): Move ...
* defaults.h (ARG_POINTER_CFA_OFFSET): ... here.
(INCOMING_FRAME_SP_OFFSET): Move from dwarf2out.c.
* dwarf2out.c (INCOMING_FRAME_SP_OFFSET): Move to defaults.h.
* var-tracking.c (frame_stack_adjust): Remove.
(prologue_stack_adjust): Remove.
(vt_stack_adjustments): Use INCOMING_FRAME_SP_OFFSET.
(adjust_stack_reference): Re-base memories to arg_pointer_rtx.
(set_frame_base_location): Remove.
(compute_bb_dataflow, emit_notes_in_bb): Don't call it.
(vt_add_function_parameters): Don't eliminate_regs.
(vt_initialize): Don't create frame_base_decl.
2007-02-16 Fariborz Jahanian <>
Radar 4985544
* c-format.c (enum format_type): New entry for NSString format.
(format_typ): Has a new entry for NSString format.
(decode_format_attr): Error on use of NSString format on a
non-objective-c program.
(objc_check_nsformat_arg): New.
(check_format_info): Call back for NSString is objc_check_nsformat_arg
(handle_format_attribute): Use objc_check_format_nsstring for
NSString format.
* c-common.h (objc_NSString_format): New decl.
(objc_check_format_nsstring): New decl.
* stub-objc.c (objc_NSString_format, objc_check_format_nsstring): New
* config/darwin-protos.h (darwin_cfstring_type_node): New decl.
* config/darwin.c (darwin_cfstring_type_node): New
* config/darwin.h (TARGET_CFSTRING_P): New macro
2007-02-15 Geoffrey Keating <>
Radar 4992792
* dwarf2.h: Modify DW_AT_APPLE_flags value.
2007-02-13 Caroline Tice <>
Radar 4964506
Backport from mainline:
2006-09-11 Alexandre Oliva <>
* var-tracking.c (dump_dataflow_set): Start dumping at
register zero.
(clobber_variable_part): Kill only the variable part in
registers holding it, leaving other variables alone.
2006-08-09 Alexandre Oliva <>
* var-tracking.c (enum micro_operation_type): Add MO_COPY.
(var_debug_decl): New function.
(var_reg_set): Follow debug decl link. Add location even if
reg is already known to hold some other variable.
(var_mem_set): Follow debug decl link.
(var_reg_delete_and_set, var_mem_delete_and_set): Follow debug
decl link. Delete other known locations of the variable part
if requested.
(var_reg_delete, var_mem_delete): Delete other known locations
of the variable part if requested.
(same_variable_part_p): New function.
(add_stores): Select MO_COPY when appropriate.
(vt_initialize): Handle it.
(compute_bb_dataflow, emit_notes_in_bb): Likewise. Delete
known locations for MO_SET and MO_CLOBBER.
(find_variable_location_part): New function.
(set_variable_part, delete_variable_part): Use it.
(clobber_variable_part): New function.
2006-05-23 Alexandre Oliva <>
* var-tracking.c (struct micro_operation_def): Document that,
for modify micro operations, insn is the subsequent instruction.
(var_reg_delete_and_set, var_mem_delete_and_set): Split into...
(var_reg_set, var_mem_set): ... new functions.
(add_stores): Record subsequent insn.
(compute_bb_dataflow): Use new functions for MO_USE.
(emit_notes_in_bb): Use new functions for MO_USE. Emit use
notes after the insn, and modify notes before the insn known
to be the subsequent one.
(vt_initialize): Invert sorting of MO_CLOBBERs and MO_SETs.
2006-01-31 Marcin Dalecki <>
* var-tracking.c: Use XNEW/XCNEW allocation wrappers.
2005-10-21 Janis Johnson <>
* var-tracking.c (vt_initialize): Initialize post.
2005-06-07 Jakub Jelinek <>
* var-tracking.c: Include regs.h and expr.h.
(emit_note_insn_var_location): Skip over pieces where offset
is smaller than previous offset plus previous piece mode size.
Optimize adjacent hard registers or memory locations.
2005-03-10 Nathan Sidwell <>
* var-tracking.c (stack_adjust_offset_pre_post,
variable_htab_free, variable_union, dataflow_set_different_2,
count_uses, variable_was_changed, set_frame_base_location,
set_variable_part, emit_note_insn_var_location, vt_emit_notes,
vt_add_function_parameters): Use gcc_assert and gcc_unreachable.
2007-02-12 Fariborz Jahanian <>
Radar 4965989
* Add supprt for anonymous category syntax.
2007-02-12 Eric Christopher <>
Radar 4940834
Backport from mainline:
2005-06-30 Andrew Pinski <>
* config/rs6000/darwin.h (STARTING_FRAME_OFFSET):
2005-06-30 Andrew Pinski <>
* config/rs6000/darwin.h (FRAME_POINTER_REGNUM): Rename to ...
2005-06-26 Jakub Jelinek <>
* defaults.h (FRAME_GROWS_DOWNWARD): Define to 0 if not defined.
* function.c (get_func_frame_size): Use if (FRAME_GROWS_DOWNWARD)
instead of preprocessor conditionals.
(assign_stack_local_1, assign_stack_temp_for_type): Likewise.
* cfgexpand.c (FRAME_GROWS_DOWNWARD): Don't redefine to 1 or 0
depending on if it was or was not defined previously.
* config/i386/i386.h (FRAME_GROWS_DOWNWARD): Define to 1.
2005-07-28 Kaz Kojima <>
* df.c (df_uses_record): Handle SCRATCH.
2005-06-27 Richard Henderson <>
* c-cppbuiltin.c (c_cpp_builtins): Add __SSP_ALL__ and __SSP__.
* cfgexpand.c: Include params.h.
(has_protected_decls, has_short_buffer): New.
(expand_stack_vars): Take a predicate to determine what to expand.
(defer_stack_allocation): True when flag_stack_protect on.
(stack_protect_classify_type, stack_protect_decl_phase): New.
(stack_protect_decl_phase_1, stack_protect_decl_phase_2): New.
(add_stack_protection_conflicts, create_stack_guard): New.
(expand_used_vars): Add stack protection logic.
(tree_expand_cfg): Likewise.
* common.opt (Wstack-protector): New.
(fstack-protector, fstack-protector-all): New.
* function.c: Include predict.h.
(assign_parm_adjust_stack_rtl): Zap stack_parm when stack protect
wants to copy the parameter into the stack frame.
(stack_protect_prologue, stack_protect_epilogue): New.
(expand_function_end): Call stack_protect_epilogue. Do
sjlj_emit_function_exit_after after naked_return_label.
* function.h (struct function): Add stack_protect_guard.
* params.def (PARAM_SSP_BUFFER_SIZE): New.
* toplev.c (process_options): Disable flag_stack_protect and/or
warn_stack_protect based on FRAME_GROWS_DOWNWARD.
* tree.h (stack_protect_prologue): Declare.
* target-def.h (TARGET_STACK_PROTECT_GUARD): New.
* target.h (struct gcc_target): Add stack_protect_guard and
* targhooks.c: Include ggc.h, gty header.
(stack_chk_guard_decl, default_stack_protect_guard): New.
(stack_chk_fail_decl, default_external_stack_protect_fail): New.
(default_hidden_stack_protect_fail): New.
* targhooks.h (default_stack_protect_guard): Declare.
(default_external_stack_protect_fail): Declare.
(default_hidden_stack_protect_fail): Declare.
* config/i386/ (UNSPEC_SP_SET, UNSPEC_SP_TEST): New.
(trap): Use ud2.
(conditional_trap, conditional_trap_1): Remove.
(stack_protect_set, stack_protect_set_si, stack_protect_set_di): New.
(stack_protect_test, stack_protect_test_si, stack_protect_test_di): New.
2004-04-14 Richard Henderson <>
* config/i386/i386.c (x86_cmpxchg, x86_xadd): New.
(ix86_compare_emitted): New.
(ix86_expand_compare): Use ix86_compare_emitted if set.
(ix86_expand_setcc): Only emit REG_EQUAL if both ix86_compare_op0
and ix86_compare_op0 are set.
* config/i386/i386.h (ix86_compare_emitted): Declare.
2005-06-30 Jakub Jelinek <>
* function.c (stack_protect_epilogue): Pass label to
stack_protect_test, assume it emitted also the conditional
* doc/md.texi (stack_protect_test): Adjust documentation.
* config/i386/ (stack_protect_test): Add third argument,
emit beq with operands[2].
* config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Define to
flag_stack_protect != 0.
* config/rs6000/ (UNSPEC_SP_SET, UNSPEC_SP_TEST): New
(stack_protect_set, stack_protect_test): New expanders.
(stack_protect_setsi, stack_protect_setdi, stack_protect_testsi,
stack_protect_testdi): New insns.
* config/rs6000/rs6000.c (rs6000_stack_protect_fail): New function.
(rs6000_generate_compare): Handle UNSPEC_SP_TEST.
(rs6000_stack_info): Handle FRAME_GROWS_DOWNWARD.
* config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Increment.
that addition of sfp doesn't change these.
(FRAME_POINTER_REGNUM): Define to 113.
(ELIMINABLE_REGS): Never eliminate to
instead. Add eliminations from FRAME_POINTER_REGNUM.
* config/rs6000/rs6000.c (rs6000_reg_names): Add sfp.
(alt_reg_names): Likewise.
(rs6000_stack_info): Handle FRAME_GROWS_DOWNWARD.
(rs6000_emit_prologue): Use HARD_FRAME_POINTER_REGNUM
(rs6000_initial_elimination_offset): Never eliminate to
instead. Add elimination offsets from FRAME_POINTER_REGNUM.
2007-02-08 Fariborz Jahanian <>
Removed objc2 hybrid abi
* removed flag_objc_abi == 3.
* config/darwin-c.c: Removed checking for
hybrid abi.
* config/darwin.c: Ditto.
* config/darwin.h: Issue error if use of hybrid abi is
attempted. Removed checking for hybrid abi.
2007-02-07 Dale Johannesen <>
Radar 4981913
* config/i386/i386.c (override_options): Make
-fomit-frame-pointer setting work for -fast.
2007-02-05 Paolo Bonzini <>
Stuart Hastings <>
Radar 4134510
Partial backport from FSF 4.2 (revision 109961):
2006-01-19 Paolo Bonzini <>
* combine.c (try_combine): Do not worry about MEMs wrapped by USEs.
(expand_compound_operation, expand_field_assignment): Fail if the
bit lengths of an extract operation are out of range.
(make_extraction): Compute wanted_inner_mode based on the position
and length of the extraction. Make it extraction_mode for non-constant
positions, and do not modify offset in that case. When generating a
new MEM, use a mode that can hold the extraction while keeping correct
alignment. Remove code that supported MEMs wrapped by USEs.
(simplify_shift_const_1, force_to_mode) <case USE>: Remove.
* gcc/combine.c (make_extraction): Compute wanted_inner_mode based on the position
and length of the extraction.
2007-02-05 Geoffrey Keating <>
Radar 4957887
* dwarf2out.c (dwarf2out_finish): Optionally add DW_AT_APPLE_flags
attribute to compilation unit.
* dwarf2.h (enum dwarf_attribute): Add DW_AT_APPLE_flags.
* toplev.c (get_arguments): New.
* toplev.h (get_arguments): New.
2007-02-02 Jason Merrill <>
Stuart Hastings <>
Radar 4950109
Backport from mainline: 2006-02-12
PR c++/24996
* except.c (build_throw): Add a CLEANUP_POINT_EXPR inside the
2007-01-25 Stuart Hastings <>
Radar 4134510
* gcc/config/i386/ (cmpstrsi): Prefer libcall for
indefinite or length > 30.
2007-01-25 Eric Christopher <>
Radar 4940862
Backport from mainline:
2005-06-27 Jakub Jelinek <>
* builtin-attrs.def (DEF_ATTR_FOR_INT): Add for 5 and 6.
(DEF_LIST_INT_INT): Add for 4,0, 4,5, 5,0, 5,6.
* builtins.c: Include tree-flow.h.
(expand_builtin_mempcpy, expand_builtin_memmove): Comment fixes.
(expand_builtin_object_size, expand_builtin_memory_chk,
maybe_emit_chk_warning, maybe_emit_sprintf_chk_warning,
compute_object_offset, compute_builtin_object_size,
fold_builtin_object_size): New functions.
(expand_builtin): Handle BUILT_IN_OBJECT_SIZE and BUILT_IN_*_CHK.
(fold_builtin_1): Likewise. Handle BUILT_IN_{,V}{,F}PRINTF
(fold_builtin_memory_chk, fold_builtin_stxcpy_chk,
fold_builtin_strncpy_chk, fold_builtin_strcat_chk,
fold_builtin_strncat_chk, fold_builtin_sprintf_chk,
fold_builtin_snprintf_chk, fold_builtin_printf, fold_builtin_fprintf):
New functions.
BUILT_IN_VPRINTF_CHK): New builtins.
* builtin-types.def (DEF_FUNCTION_TYPE_5, DEF_FUNCTION_TYPE_VAR_4):
* (OBJS-common): Add tree-object-size.o.
(tree-object-size.o): Add dependencies.
* tree-pass.h (pass_object_sizes): Add.
* tree-optimize.c (init_tree_optimization_passes): Add
* tree-object-size.c: New file.
* tree.h (fold_builtin_memory_chk, fold_builtin_stxcpy_chk,
fold_builtin_strncpy_chk, fold_builtin_snprintf_chk,
compute_builtin_object_size, init_object_sizes, fini_object_sizes):
New prototypes.
* tree-ssa-ccp.c (get_strlen): Rename to ...
(get_maxval_strlen): ...this function. Handle also computing of maximum
string length and maximum integral value.
(ccp_fold_builtin): Handle BUILT_IN_*_CHK. Use get_maxval_strlen
instead of get_strlen. Pass CALLEE and ARGLIST variables to the
folding functions instead of computing them again.
(execute_fold_all_builtins): Retry ccp_fold_builtin if a builtin changed
into some other builtin.
* doc/extend.texi (Object Size Checking): Document.
2007-01-24 Eric Christopher <>
Radar 4156101
Backport from mainline:
2006-01-10 Stuart Hastings <>
* config/i386/ (set_got): Update.
(set_got_labelled): New.
(builtin_setjmp_receiver): Mach-O support.
* config/i386/darwin.h (TARGET_ASM_FILE_END) Define.
* config/i386/i386.c (override_options): Revise for Darwin.
(USE_HIDDEN_LINKONCE): Enable for Mach-O.
(ix86_file_end): Mach-O support.
(darwin_x86_file_end): New.
(output_set_got): Add label parameter, revise for Mach-O.
(x86_output_mi_thunk): Likewise.
* config/i386/i386-protos.h (output_set_got): Likewise.
* config/darwin.c (machopic_legitimize_pic_address): Update regs_ever_live[].
2007-01-24 Fariborz Jahanian <>
Radar 4949034
* c.opt: Update -fobjc-call-cxx-cdtors settings.
* c-opts.c: Remove flag_objc_call_cxx_cdtors setting.
* c-common.c: Removed flag_objc_call_cxx_cdtors decl.
2007-01-22 Fariborz Jahanian <>
Radar 2848255
* Add grammar for @catch(...)
* c.opt: Add -fobjc-zerocost-exceptions option.
* c-opts.c (c_common_post_options): Set the flags for
* c-common.h: Add some declarations.
* stub-objc.c (objc2_valid_objc_catch_type, objc2_build_throw_call):
New stubs.
* config/darwin.h (OBJC_FLAG_OBJC_ABI): Check for proper
use of -fobjc-zerocost-exceptions option.
2007-01-15 Eric Christopher <>
Radar 4924023
Backport from mainline:
2007-01-15 Eric Christopher <>
* config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add umbrella.
(LINK_SPEC): Fix umbrella for above.
2007-01-15 Hui-May Chang <>
Radar 4905666
Backport from mainline:
2005-11-07 Ian Lance Taylor <>
* config/i386/i386.c (legitimize_pic_address): If constant operand
to PLUS is too large, put it in a register.
2007-01-05 Josh Conner <>
Radar 4908494
Backport from mainline:
2007-01-03 Josh Conner <>
PR middle-end/29683
* calls.c (compute_argument_addresses): Set stack and stack_slot
for partial args, too.
(store_one_arg): Use locate.size.constant for the size when
generating a save_area.
2006-12-23 Mike Stump <>
Radar 4527353
* libgcc2.c (__eprintf): Ensure backwards compatibility to 10.3.9.
2006-12-22 Stuart Hastings <>
Radar 4639472
* gcc/config/i386/i386.c (ix86_expand_convert_uns_SI2SF_sse): New.
(x86_emit_floatuns): Use it.
* gcc/config/i386/i386-protos.h (ix86_expand_convert_uns_SI2SF_sse):
2006-12-18 Stuart Hastings <>
Radar 4840357
* gcc/opts.h, gcc/opts.c (no_unit_at_a_time_default): New.
* gcc/java/lang.c (no_unit_at_a_time_default): Set it.
(flag_unit_at_a_time): Enable at -O1 and above.
2006-12-13 Geoffrey Keating <>
Radar 4697325
* gcc.c (process_command): Move handling of
MACOSX_DEPLOYMENT_TARGET environment variable from here.
* config/darwin-driver.c: Remove.
2006-12-13 Hui-May Chang <>
Radar 4874204
Backport from mainline:
2006-01-19 Paolo Bonzini <>
* combine.c (make_extraction): Compute wanted_inner_mode
based on the position and length of the extraction.
2006-12-08 Fariborz Jahanian <>
Radar 4531086
* config/darwin.h (OBJC_WARN_OBJC2_FEATURES): New macro.
2006-12-08 Hui-May Chang <>
Radar 4861528
* config/i386/i386.c (ix86_function_regparm): The number of
register parameters should be 2 instead of 3 when a function
realigns its stack pointer through %ecx.
2006-12-08 Dale Johannesen <>
radar 4228828
* gimplify.c (gimplify_modify_expr): Evaluate RHS before
pointee when LHS is a store through a pointer.
2006-12-07 Eric Christopher <>
Radar 4869218
* doc/extend.texi: Replace mni with ssse3.
* doc/invoke.texi: Ditto.
2006-12-05 Fariborz Jahanian <>
Radar 4862848
* common.opt (flag_objc_abi): Defaulted to -1
* config/darwin.h (OBJC_FLAG_OBJC_ABI): New macro.
2006-12-01 Stuart Hastings <>
Radar 4700932
* gcc/config/i386/i386.c (optimization_options): Insist that
2006-11-30 Hui-May Chang <>
Radar 4850442
Backport from mainline:
2005-09-18 Jan Hubicka <>
* calls.c (flags_from_decl_or_type): Do not set ECF_LIBCALL_BLOCK.
2006-11-16 Fariborz Jahanian <>
Radar 4841447
* c.opt (-fobjc-new-property): Modified its language description
2006-11-15 Eric Christopher <>
Radar 4839411
* config/i386/tmmintrin.h: Depend on SSSE3.
2006-11-15 Dale Johannesen <>
Radar 4827197
* doc/extend.texi (align=power): Document actual
behavior and workaround for existing code.
2006-11-15 Eric Christopher <>
* config/darwin.h (LINK_COMMAND_SPEC): Remove {u*} from
options passed through.
2006-11-14 Dale Johannesen <>
Radar 4812082
* doc/invoke.texi (-fast): Describe Intel options, fix typos.
* config/i386/i386.c (override_options): Change -fast options.
2006-11-09 Fariborz Jahanian <>
Radar 4810609
* c.opt (-fobjc-gc-only): New option
* doc/invoke.texi (Objective-C GC Options): Add -fobjc-gc-only.
2006-11-09 Eric Christopher <>
Radar 4574849
* t-slibgcc-darwin: Pass -install_name directly.
* config/darwin.h (LINK_COMMAND_SPEC): Use ld, not libtool.
Fix up argument passthrough accordingly.
2006-11-07 Stuart Hastings <>
Radar 4611086
* gcc/config/rs6000/rs6000.c (rs6000_stack_info): Include
vrsave_size in stack size computation.
2006-11-06 Fariborz Jahanian <>
Radar 4781080 (part 2)
* targhooks.c (default_objc_fpreturn_msgcall): Takes 2nd argument.
* targhooks.h (default_objc_fpreturn_msgcall): Changed Decl.
* target.h (objc_fpreturn_msgcall): Changed Decl.
* config/i386/i386.h (OBJC_FPRETURN_MSGCALL): Changed Decl.
* config/i386/i386-protos.h (ix86_objc_fpreturn_msgcall): Changed Decl.
* config/i386/i386.c (ix86_objc_fpreturn_msgcall): Changed definition.
2006-11-06 Fariborz Jahanian <>
Radar 4781080
* targhooks.c (default_objc_fpreturn_msgcall): New
* targhooks.h (default_objc_fpreturn_msgcall): Declare
* target.h (objc_fpreturn_msgcall): New field declaration.
* target-def.h (TARGET_OBJC_FPRETURN_MSGCALL): New macro
* config/i386/i386.h (OBJC_FPRETURN_MSGCALL): New macro
* config/i386/i386-protos.h (ix86_objc_fpreturn_msgcall):
New declaration.
* config/i386/i386.c (ix86_objc_fpreturn_msgcall): New definition
2006-11-06 Stuart Hastings <>
* gcc/global.c (expand_preferences): Move another APPLE LOCAL.
2006-11-06 Hui-May Chang <>
Radar 4805365
* gcc/config/rs6000/rs6000.c (lwa_operand): Check the alignment of
a memory operand is 32 bits aligned or not.
2006-11-03 Stuart Hastings <>
* gcc/global.c (expand_preferences): Move APPLE LOCAL.
2006-11-03 Josh Conner <>
Radar 4815483
Backport from mainline:
2005-08-02 Diego Novillo <>
PR 23192
* tree-ssa-alias.c (add_pointed_to_var): If VALUE is of the
form &(*PTR), take points-to information from PTR.
Give up if VALUE by marking PTR as pointing anywhere if VALUE
is not recognized.
2006-11-02 Stuart Hastings <>
Radar 4253848
* gcc/convert.c (convert_to_vector): Generate
* gcc/c-typechk.c (digest_init): Treat VIEW_CONVERT_EXPR like
* gcc/c-common.c (vector_types_convertible_p, lvalue_or_else):
* gcc/global.c (expand_preferences): Pseudo regs that die in
the current instruction are tied to the destination psuedo on
two-address opcodes (e.g. x86).
(pseudo_preference_transitivity): New.
Radar 4517311
* gcc/config/i386/i386.c (ix86_expand_convert_uns_DF2SI_sse,
ix86_expand_convert_uns_SF2SI_sse): Use gen_sse2_stored() to
avoid useless MOVs.
2006-11-01 Fariborz Jahanian <>
Radar 4805321 (new property).
* stub-objc.c: (objc_declare_property_impl): New stub.
* c.opt (fobjc-new-property): New command-line option.
* New grammar added for recognition of new property
2006-10-31 Caroline Tice <>
* dwarf2out.c (size_of_pubnames): Only add DWARF_OFFSET_SIZE for entries
in table that will actually be written out.
* testsuite/ Fix size in "Length of Public Type
Names Info" line.
* testsuite/ Likewise.
* testsuite/ Likewise.
2006-10-27 Eric Christopher <>
Radar 4806229
* config/darwin-driver.c (main): Don't set ima_is_used if we're
only compiling.
2006-10-26 Hui-May Chang <>
Radar 4603883
Backport from mainline:
2005-08-17 James E Wilson <>
* c-decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE in
array size check.
2006-10-25 Eric Christopher <>
Temporarily revert:
2006-09-25 Eric Christopher <>
Radar 4574849
* config/t-slibgcc-darwin (SHLIB_LINK): Use
* config/darwin.h (LINK_COMMAND_SPEC): Remove use
of libtool.
(LINK_SPEC): Adjust options for above.
2006-10-19 Caroline Tice <>
* dwarf2out.c (pubname_entry): Add DEF_VEC_GC_O statement for this
(pubname_table): Redefine as a vector.
(pubtype_table): New static global variable, defined as a vector.
(pubname_table_allocated): Remove static global variable.
(pubname_table_in_use): Remove static global variable.
(size_of_pubnames): Add parameter to deal with either pubnames or
pubtypes, and change code to deal with table being a vector.
(add_pubname): Change to deal with table being a vector.
(add_pubtype): New function.
(output_pubnames): Add parameter to deal with either pubnames or
pubtypes, and change code to deal with table being a vector.
(gen_array_type_die): Add call to add_pubtype.
(gen_enumeration_type_die): Add call to add_pubtype.
(gen_struct_or_union_type_die): Add call to add_pubtype.
(gen_subroutine_type_die): Add call to add_pubtype.
(gen_typedef_die): Add call to add_pubtype.
(dwarf2out_init): Add code to initialize pubname_table and
pubtype_table vectors.
(prune_unused_types): Change to deal with pubnames being a vector.
(dwarf2out_finish): Change to deal with pubnames being a vector; add
pubnames table to call to output_pubnames; Add code to output pubtypes
table if DEBUG_PUBTYPES_SECTION is defined.
* config/darwin.c (darwin_file_start): Add DEBUG_PUBTYPES_SECTION to
* config/darwin.h (DEBUG_PUBTYPES_SECTION): Define new global variable.
* testsuite/gcc.dg/pubtypes-1.c: New file/testcase.
* testsuite/gcc.dg/pubtypes-2.c: New file/testcase.
* testsuite/gcc.dg/pubtypes-3.c: New file/testcase.
* testsuite/gcc.dg/pubtypes-4.c: New file/testcase.
* testsuite/g++.dg/pubtypes.C: New file/testcase.
2006-10-18 Mike Stump <>
Radar 4094959
* c-opts.c (c_common_handle_option): Handle language specific
target options.
* opts.c (handle_option): Verify language for target options, if
any are given.
* opth-gen.awk: Add CL_LANG_ALL.
* config/darwin.opt (iframework): Add.
* config/darwin.h (TARGET_HANDLE_C_OPTION): Add.
* config/darwin-c.c (add_system_framework_path): Export.
(darwin_handle_c_option): Add.
* config/darwin-protos.h (darwin_handle_c_option): Add.
* doc/invoke.texi (Darwin Options): Add -iframework.
2006-10-17 Mike Stump <>
Radar 4197305
* c-lex.c (c_lex_with_flags): Arrange for tokens to not be
over-written while peeking forward for Objective-C languages.
2006-10-13 Stuart Hastings <>
* Radar 4740805, 4741439
* gcc/loop.c (LOOP_REG_LIFETIME, LOOP_REG_GLOBAL_P): Remove commentary.
2006-10-11 Mike Stump <>
Radar 4197305
* c-lex.c (c_lex_with_flags): Prefer _cpp_backup_tokens over iasm_saved_token.
Avoid fetching extra characters.
2006-10-10 Mike Stump <>
Radar 4739936
* (_yylex): Restore error for invalid integer suffixes.
2006-10-06 Stuart Hastings <>
* Radar 4740805, 4741439
2006-10-09 Caroline Tice <
Radar 4771255
* dwarf2out.c (struct inlined_calls, inlined_calls_list,
file_table_last_lookup): Move to a point in the file outside
the #ifdef DWARF2_DEBUGGING_INFO clause.
2006-10-06 Eric Christopher <>
Radar 4755586
* config/i386/i386.h: Rename mni to ssse3.
* config/i386/ Ditto.
* config/i386/tmmintrin.h: Ditto.
* config/i386/i386.c: Ditto.
* config/i386/ Ditto.
2006-10-05 Dale Johannesen <>
* opts.c (restore_func_cl_pf_opts_mapping): Reset
align_loops_log, align_jumps_log, align_labels_log,
align_labels_max_skip in code.
* flags.h (align_loops_max_skip, align_jumps_max_skip):
Remove declarations.
* common.opt (align_loops_max_skip, align_jumps_max_skip):
Make PerFunc and VarUint.
* config/darwin-c.c (darwin_set_flags_from_pragma): New.
(darwin_pragma_opt_level): Call it.
(darwin_opt_size): Ditto.
* config/rs6000/rs6000.c (reset_optimization_options):
Reset align_jumps, align_loops, align_jumps_max_skip,
* config/i386/i386.c (reset_optimization_options):
Reset ix86_cost, align_loops, align_jumps,
align_jumps_max_skip, align_loops_max_skip.
(override_options): Move processor_table_target to
file scope.
2006-10-03 Dale Johannesen <>
* doc/extend.texi (x86 Vector Extensions): Change
di to v1di throughout. Add builtins psllwi, pslldi,
psrlwi, psrldi, psrawi, psradi. Remove builtin pmulhuq.
* config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
* config/i386/i386-modes.def: Add V1DImode, V1SImode.
* config/i386/ (MMXMODEI): Add V1DImode.
(MMXMODE): Add V1DImode.
(MMXMODE124): New (same as former MMXMODE).
(MMXMODE248): New.
(mmxvecsize): Change DI to V1DI.
(mmx_adddi3, mmx_subdi3, mmx_ashldi3, mmx_ashldi2si, mmx_lshrdi3,
mmx_lshrdi2si): Remove.
(mmx_psadbw, sse_movntdi, mmx_ashr<mode>3): Change DI to V1DI.
(sse2_umulsidi3): Change DI to V1DI, SI to V1SI.
(mmx_lshr<mode>3, mmx_ashl<mode>3): Change DI to V1DI.
Change MMXMODE24 to MMXMODE248.
(mmx_lshr<mode>2si, mmx_ashl<mode>2si, mmx_ashr<mode>2si): New.
(mmx_eq<mode>3, mmx_gt<mode>3): Change MMXMODEI to MMXMODE124.
(*mov<mode>_internal_rex64): Remove * constraint in ym->y case.
* config/i386/xmmintrin.h (_mm_stream_pi): Remove casts in
movntq call.
* config/i386/mmintrin.h (_mm_add_si64, _mm_sub_si64, _mm_sll_pi16,
_mm_sll_pi32, _mm_sll_si64, _mm_slli_si64, _mm_sra_pi16, _mm_sra_pi32,
_mm_srl_pi16, _mm_srl_pi32, _mm_srl_si64, _mm_srli_si64):
Remove casts in calls.
(_mm_slli_pi16, _mm_slli_pi32, _mm_srai_pi16, _mm_srai_pi32,
_mm_srli_pi16, _mm_srli_pi32): Call -i form of builtin.
* config/i386/ (mni_psign<mode>3, mni_pabs<mode>2):
(mni_palignrdi): Change to mni_palignrv1di. Change DI to V1DI.
* config/i386/i386.c (type_natural_mode): Treat V1DI as DI in
32-bit calling sequence.
(builtin_description bdesc_2arg): Change PADDQ to use mmx_addv1di3.
Change PSUBQ to use mmx_subv1di3. Change PSLLWI to use ashlv4hi2si.
Change PSLLDI to use ashlv2si2si. Change PSLLQ to use ashlv1di3.
Change PSLLQI to use mmx_ashlv1di2si. Change PSRLWI to use
mmx_lshrv4hi2si. Change PSRLDI to use lshrv2si2si. Change
PSRLQ to use lshrv1di3. Change PSRLQI to use mmx_lshrv1di2si.
Change PSRAWI to use mmx_ashrv4hi3. Change PSRADI to use
(ix86_init_mmx_sse_builtins): Add V1DI_type_node.
Rename pdi_type_node to pv1di_type_node, adjust arguments.
Rename v4hi_ftype_v4hi_di to v4hi_ftype_v4hi_v1di, adjust.
Rename v2si_ftype_v2si_di to v2si_ftype_v2si_v1di, adjust.
v2si_ftype_v2si_int: New.
Rename void_ftype_pdi_di to void_ftype_pv1di_v1di, adjust.
Rename di_ftype_di_di to v1di_ftype_v1di_v1di, adjust.
Rename di_ftype_di_int to v1di_ftype_v1di_int, adjust.
Rename di_ftype_di_di_int to v1di_ftype_v1di_v1di_int, adjust.
Rename di_ftype_v8qi_v8qi to v1di_ftype_v8qi_v8qi, adjust.
Use v4hi_ftype_v4hi_v1di for builtin psllw. Add builtin psllwi.
Use v2si_ftype_v2si_v1di for builtin pslld. Add builtin pslldi.
Use v1di_ftype_v1di_v1di for builtin psllq.
Use v1d1_ftype_v1di_int for builtin psllqi.
Use v4hi_ftype_v4hi_v1di for psrlw builtin. Add psrlwi builtin.
Use v2si_ftype_v2si_v1di for psrld builtin. Add psrldi builtin.
Use v1di_ftype_v1di_v1di for psrlq builtin.
Use v1di_ftype_v1di_int for psrlqi builtin.
Use v4hi_ftype_v4hi_v1di for psraw builtin. Add psrawi builtin.
Use v2si_ftype_v2si_v1di for psrad builtin. Add psradi builtin.
Use void_ftype_pv1di_v1di for movntq builtin.
Use v1di_ftype_v8qi_v8qi for psadbw builtin.
Use v1di_ftype_v2si_v2si for pmuludq builtin.
Use v1di_ftype_v1di_v1di_int for palignr builtin.
Use CODE_FOR_sse_movntv1di for movntq builtin.
Use CODE_FOR_mni_palignrv1di for palignr builtin.
2006-09-29 Hui-May Chang <>
Radar 4736174
Backport from mainline:
2005-08-27 Richard Guenther <>
PR target/23575
* config/i386/ (sse2_movsd): Add missing closing
2006-09-27 Hui-May Chang <>
Radar 4412214, 4172200
* config/ (sse2_stored): Add 'r' constraint to the
destination operand.
2006-09-26 Eric Christopher <>
Radar 4106877
* config/darwin-driver.c (main): Remove dependence on -o
option. Fix comment spelling.
2006-09-26 Fariborz Jahanian <>
Radar 4733555
*config/darwin.c (darwin_handle_weak_import_attribute): Ignore 'weak_import'
on objc methods.
2006-09-26 Dale Johannesen <>
* config/i386/ (mmx_lshrdi2si): New.
(mmx_ashldi2si): New.
(*vec_extractv2si_0): Allow mmx->int reg moves.
* config/i386/i386.c (bdesc_2arg): Use mmx_ashldi2si
for IX86_BUILTIN_PSLLQI. Use mmx_lshrdi2si for
(ix86_init_mmx_sse_builtins): Add di_ftype_di_int.
Add __builtin_ia32_psllqi, __builtin_ia32_psrlqi.
* config/i386/mmintrin.h (_mm_slli_si64): Use
(_mm_srli_si64): Use __builtin_ia32_psrlqi.
* doc/extend.texi: Document new builtins.
2006-09-25 Eric Christopher <>
Radar 4740850
* config.gcc: Add apple as i386 cpu variant.
* config/i386/i386.h (TARGET_CPU_DEFAULT_apple): New.
(processor_type): Add PROCESSOR_APPLE.
* config/i386/i386.c (apple_cost): New.
(override_options): Use. Add apple cpu. Move default
SSE options to 64-bit default init section.
2006-09-25 Eric Christopher <>
Radar 4574849
* config/t-slibgcc-darwin (SHLIB_LINK): Use
* config/darwin.h (LINK_COMMAND_SPEC): Remove use
of libtool.
(LINK_SPEC): Adjust options for above.
2006-09-25 Bill Wendling <>
PR c/23576
* c-decl.c (grokdeclarator): Don't write to fields
of error_mark_node.
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-19 Josh Conner <>
Radar 4727273
* flow.c (initialize_uninitialized_subregs): Only do something
2006-09-18 Fariborz Jahanian <>
Radar 4667060
* c-gimplify.c (gimplify_c_loop): Add support for
setting of foreach loop controlling variable to 'nil' on
normal loop exit.
2006-09-15 Fariborz Jahanian <>
Radar 4727659
* c-common.c (handle_noreturn_attribute): Handle method_decl
nodes as well.
2006-09-14 Bill Wendling <>
Radar 4731660
* config/darwin.h (REDO_SECTION_INFO_P): Removed
2006-09-11 Josh Conner <>
Radar 4658012
* calls.c (expand_call): Don't set keep bit on temps for holding
structure return values.
* integrate.c (copy_decl_for_inlining): Add is_result
parameter, add handling for DECL_BY_REFERENCE.
* integrate.h (copy_decl_for_inlining): Add is_result parameter.
* tree-inline.c (remap_decl): Adjust call for above.
(setup_one_parameter): Likewise.
(mark_local_for_remap_r): Likewise.
(declare_return_variable): Likewise. Add bind_expr parameter.
Add handling for DECL_BY_REFERENCE.
(expand_call_inline): Adjust call to declare_return_variable
for additional parameter.
2006-09-08 Stuart Hastings <>
Radar 4664847
* gcc/config/i386/ (fixuns_trunc_<mode>si2): Check for
* gcc/config/i386/i386.c (ix86_expand_convert_uns_DF2SI_sse,
ix86_expand_convert_uns_SF2SI_sse, ix86_expand_convert_uns_DI2DF_sse):
Add to commentary.
2006-09-07 Hui-May Chang <>
Radar 4577796
* config/i386/i386.c : Redefine global constant x86_use_incdec.
2006-09-07 Stuart Hastings <>
* gcc/config/i386/i386.c (processor_alias_table): Delete APPLE
LOCAL comment.
2006-09-06 Caroline Tice <>
Radar 4707854
* dwarf2out.c (dwar2out_abstract_function): Remove call_site test
from condition determining if an abstract origin die needs to be
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.
006-09-01 Fariborz Jahanian <>
Radar 4712269
* c-common.h (objc_build_incr_decr_setter_call): New decl.
* stub-objc.c (objc_build_incr_decr_setter_call): New stub.
* c-typeck.c (build_unary_op): Call objc_build_incr_decr_setter_call
for potential ince/decr pre/post expressions involving properties.
2006-08-31 Fariborz Jahanian <>
Radar 4697411
* c-common.h (objc_volatilize_component_ref): New decl.
* c-typeck.c (build_component_ref): Call objc_volatilize_component_ref.
* stub-objc.c (objc_volatilize_component_ref): New stub.
2006-08-29 Mike Stump <>
Radar 4699524
* config/i386/i386.c (iasm_x86_canonicalize_operands): Add
2006-08-29 Fariborz Jahanian <>
Radar 4705250
* c.opt (fobjc-atdefs): Add
* No error on use of @defs with -fobjc-atdefs
2006-08-28 Bill Wendling <>
Radar 4679943
* doc/extend.texi (Structure-Packing Pragmas): Changed #pragma pack
documentation to reflect Apple's implementation.
* config/darwin-c.c (push_field_alignment, darwin_pragma_pack):
If #pragma pack([N]), don't clear out the natural alignment flag
on PPC64.
2006-08-25 Fariborz Jahanian <>
PR c/28418
* c-gimplify.c (gimplify_compound_literal_expr): Don't add
variable again if DECL_SEEN_IN_BIND_EXPR_P.
2006-08-24 Mike Stump <>
Radar 4682427
* c-common.c (iasm_stmt): Fix jmp/call.
* config/i386/i386.c (iasm_x86_canonicalize_operands): Likewise.
2006-08-24 Bill Wendling <>
Radar 4699019
* doc/invoke.texi (C Language Options, Linker Options,
Warning Options): Removed -Wpragma-once, -no-c++filt,
and -Wpragma-once options' documentation.
* gcc/common.opt (fppc): Removed fppc flag.
* gcc/toplev.c (flag_fppc): Removed flag_fppc variable.
2006-08-22 Hui-May Chang <>
Radar 4287182
* i386.h : Redefine SLOW_BYTE_ACCESS.
2006-08-18 Fariborz Jahanian
Reverted patch for radar 4674757
* config/i386/darwin.h (SUBTARGET_OVERRIDE_OPTIONS):
Remove darwin_constant_cfstrings setting.
2006-08-18 Fariborz Jahanian
Radar 4674757
* config/i386/darwin.h (SUBTARGET_OVERRIDE_OPTIONS):
Set darwin_constant_cfstrings.
2006-08-17 Fariborz Jahanian
Radar 4590221
* c.opt (flag_objc_direct_dispatch): default to -1.
* config/rs6000/darwin.h (OFFS_MSGSEND_FAST, OFFS_ASSIGNIVAR_FAST,
HAVE_OFFS_MSGSEND_FAST): objective-c macro definitions.
2006-08-15 Stuart Hastings <>
Radar 4106131
* gcc/config/i386/darwin.h (TARGET_DEEP_BRANCH_PREDICTION):
Remove NOCONA.
* gcc/testsuite/ (xsqrt): Replace
references to __builtin functions with their portable
2006-08-15 Stuart Hastings <>
Radar 4424891
* gcc/config/i386/i386.c: APPLE LOCAL fixups.
2006-08-14 Stuart Hastings <>
Radar 4424891
* gcc/config/i386/ (fixuns_trunc<mode>si2) Call
(floatdidf2): Call ix86_expand_convert_sign_DI2DF_sse.
(floatunssidf2): New.
* gcc/config/i386/i386-protos.h (ix86_expand_convert_DF2SI_sse,
ix86_expand_convert_SF2SI_sse, ix86_expand_convert_DI2DF_sse):
Update names to ix86_expand_convert_uns_DF2SI_sse,
ix86_expand_convert_uns_SF2SI_sse, ix86_expand_convert_uns_DI2DF_sse.
ix86_expand_convert_sign_DI2DF_sse): New.
* gcc/config/i386/i386.c (x86_expand_convert_DF2SI_sse,
ix86_expand_convert_SF2SI_sse, ix86_expand_convert_DI2DF_sse):
Update names to ix86_expand_convert_uns_DF2SI_sse,
ix86_expand_convert_uns_SF2SI_sse, ix86_expand_convert_uns_DI2DF_sse.
ix86_expand_convert_sign_DI2DF_sse): New.
(x86_emit_floatuns): Use new functions, tolerate SFmode target.
2006-08-14 Hui-May Chang <>
Radar 4645709
* config/i386/ (movstrictqi_and): Update the whole register
for a byte operand.
2006-08-11 Caroline Tice <>'
Radar 4591706
* dwarf2out.c (dwarf2out_abstract_function): Make sure the abstract
die, with DW_AT_inline, exists before adding the inlined call site
(gen_inlined_subroutine_die): Change code so it no longer relies on
matching function names to find correct call site information. Also,
generate an internal error if it can't find the call site information
for an inlined subroutine.
2006-08-11 Josh Conner <>
Radar 4674871
* gcc.c (process_command): Increment n_infiles for the
weak-l command-line option.
2006-08-04 Jon Ziegler <>
Radar 4674934
Revert patch for 4424891 due to it breaking the build.
2006-08-04 Mike Stump <>
Radar 4669052
* (LIBGCC_DEPS): Don't depend on LANGUAGES.
(c-parse.y): Ensure that we don't rebuild.
2006-08-04 Stuart Hastings <>
Radar 4106131
* config/i386/darwin.h (TARGET_DEEP_BRANCH_PREDICTION): Override default.
2006-07-31 Mike Stump <>
Radar 4660333
* toplev.c (general_init): Don't try and catch SIGKILL.
2006-07-28 Stuart Hastings <>
Radar 4424891
* gcc/config/i386/ (fixuns_trunc<mode>si2): Update.
(floatdidf2): Call ix86_expand_convert_sign_DI2DF_sse.
(floatunssidf2): New.
* config/i386/i386-protos.h (ix86_expand_convert_uns_DF2SI_sse,
ix86_expand_convert_uns_SF2SI_sse, ix86_expand_convert_uns_DI2DF_sse): New names.
(ix86_expand_convert_uns_SI2DF_sse, ix86_expand_convert_sign_DI2DF_sse): New.
* config/i386/i386.c (ix86_expand_convert_uns_DF2SI_sse,
ix86_expand_convert_uns_SF2SI_sse, ix86_expand_convert_uns_DI2DF_sse): New names.
(ix86_expand_convert_uns_SI2DF_sse, ix86_expand_convert_sign_DI2DF_sse): New.
2006-07-28 Mike Stump <>
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-25 Stuart Hastings <>
Radar 4643646
* gcc/config/i386/i386.c (ix86_expand_vector_init_duplicate):
Omit TARGET_SSE check.
2006-07-26 Hui-May Chang <>
Radar 4629695
* builtins.c (fold_builtin_1): Fix APPLE LOCAL markers.
2006-07-25 Hui-May Chang <>
Radar 4629695
* builtins.c (fold_builtin_1): Check if the callee declaration is
2006-07-18 Fariborz Jahanian <>
Radar 4592503
* c-decl.c (finish_struct): Check on illegal use of __weak
on struct fields.
* decl.c (start_decl): Check on illegal use of __weak on
variable declarations.
* stub-objc.c (objc_checkon_weak_attribute): New stub.
* c-common.h (objc_checkon_weak_attribute): New decl.
2006-07-18 Mike Stump <>
Radar 4636974
* Remove extraneous commas on tokens.
2006-07-18 Hui-May Chang <>
Radar 4430340
Backport from mainline:
2006-06-09 Mike Stump <>
* c-typeck.c (c_begin_vm_scope): Fix file_scope processing.
2006-07-18 Stuart Hastings <>
Radar 4538899
* gcc/tree-ssa-threadupdate.c
(rediscover_loops_after_threading): Tweak another APPLE LOCAL comment.
2006-07-17 Eric Christopher <>
Radar 4633168
Radar 4630878
* config/t-slibgcc-darwin (stmp-lipo): Remove.
Rewrite libgcc_s.1.dylib dependencies.
2006-07-17 Stuart Hastings <>
Radar 4538899
* gcc/tree-ssa-threadupdate.c
(rediscover_loops_after_threading): Tweak APPLE LOCAL comment.
2006-07-14 Mike Stump <>
Radar 4630911
* config/darwin-driver.c (is_x_file): Add.
(resolve_path_to_executable): Use is_x_file instead.
2006-07-14 Fariborz Jahanian <>
Radar 4621020
* Added 'weak' attribute keyword for @property.
* c-common.h: 'weak' related declarations.
2006-07-13 Stuart Hastings <>
Radar 4538899
* config/rs6000/rs6000.c (SMALL_INT): Fix cast.
* testsuite/gcc.dg/20060713-1.c: New.
2006-07-13 Jeff Law <>
Stuart Hastings <>
Radar 4538899
original FSF patch dated 2005-03-04
* basic-block.h (rediscover_loops_after_threading): Declare.
* tree-ssa-dom.c: Include cfgloop.h.
(tree_ssa_dominator_optimize): Discover loops and some basic
properties. Remove forwarder blocks recreated by loop header
canonicalization. Also mark backedges in the CFG.
* tree-ssa-threadupdate.c: Include cfgloop.h
(rediscover_loops_after_threading): Define.
(struct local_info): New field, JUMP_THREADED.
(prune_undesirable_thread_requests): New function.
(redirect_edges): Clear EDGE_ABNORMAL. If edges were threaded
then record that fact for the callers of redirct_edges.
(thread_block): If BB has incoming backedges, then call
prune_undesirable_thraed_requests. Note when we are
going to have to rediscover loop information. Return a
boolean indicating if any jumps were threaded.
(thread_through_all_blocks): Bubble up boolean indicating
if any jumps were threaded.
* (tree-ssa-dom.o): Depend on cfgloop.h
(tree-ssa-threadupdate.o): Similarly.
2006-07-14 Hui-May Chang <>
Radar 4614623
* config/i386/i386.c (ix86_expand_vector_move): Set cfun->uses_vector to 1
to honor the alignment requirement of vector instructions.
2006-07-13 Mike Stump <>
Radar 4515069
* c-common.c (iasm_print_operand): Arrange for local variables to
not be promoted to static duration.
* gimplify.c (gimplify_init_constructor): Likewise.
(struct tree_decl): Add iasm_dont_promote_to_static.
2006-07-12 Eric Christopher <>
Radar 4624477
* config/t-slibgcc-darwin: Import from mainline. Add x86_64 libgcc_s.1.dylib
2006-07-11 Eric Christopher <>
Radar 4522154
* config/t-slibgcc-darwin: Add extra dependency to stmp-lipo.
2006-07-07 Fariborz Jahanian <>
Radar 4585769
* config/darwin-protos.h: New declarations.
* config/darwin.c (machopic_select_section): New sections
for objc1 extensions.
* config/darwin.h: Declaration of __class_ext, __property
and __protocol_ext sections.
2006-06-29 Mike Stump <>
Radar 4560301
* c-common.c (iasm_stmt): Fix argument numbers for repeated arguments.
* config/asm.h: Likewise.
2006-06-26 Fariborz Jahanian <>
Radar 4591909
* New/modified grammar for new attributes in
(yylexname): Change to recognize new attribute terminals.
* c-common.h (RID_DYNAMIC): New enum declaration.
2006-06-27 Fariborz Jahanian <>
Radar 4600999
* config/darwin.c (darwin_handle_objc_gc_attribute): Fix main variant
after attribute insertion.
2006-06-23 Mike Stump <>
* config/i386/mmintrin.h: Simplifiy use of __nodebug__.
* config/i386/xmmintrin.h: Likewise.
* config/i386/emmintrin.h: Likewise.
* config/i386/pmmintrin.h: Likewise.
2006-06-22 Geoffrey Keating <>
Radar 4597080
* dwarf2out.c (dwarf2out_finish): Move output_line_info call
after debug_info output.
2006-06-22 Mike Stump <>
Radar 4336222
* c-decl.c (merge_decls): block-scope extern doesn't mean extern
at file-scope.
2006-06-21 Geoffrey Keating <>
Radar 4594955
* dwarf2out.c (struct source_loc_list): Use location_s directly,
rather than source_locus.
(dwarf2out_abstract_function): Use GC to allocate struct
(gen_inlined_subroutine_die): Update for changes to
struct source_loc_list.
2006-06-20 Geoffrey Keating <>
Radar 4594280
* dwarf2out.c (struct inlined_calls): Mark for GC; change field
'file_index' to be a 'struct dwarf_file_data *'.
(inlined_calls_list): Mark for GC.
(add_to_global_inlined_calls_list): Take a
'struct dwarf_file_data *' as the call_file parameter. Allocate
struct inlined_calls using GC. Update for file data structure
(gen_inlined_subroutine_die): Update for file data structure
2006-06-19 Mike Stump <>
Radar 4336222
* tree.c (variably_modified_type_p): VM arguments don't make the
type a VM type.
2006-06-18 Hui-May Chang <>
Radar 4286110
* config/i386/emmintrin.h (_mm_set1_epi16): Redefine.
2006-06-18 Hui-May Chang <>
Radar 4534621
* reload.c (find_reload_address) : Indexed ([reg+reg]) memory
address for TImode is not supported on powerpc. Need to load
[reg+reg] to a register first before addressing the memory.
2006-06-14 Mike Stump <>
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-12 Devang Patel <>
Radar 4580289
* config/darwin-driver.c (resolve_symlink, resolve_path_to_executable,
get_prog_name_len): New.
(main): Find appropriate program.
2006-06-12 Devang Patel <>
Radar 4208510
* doc/invoke.texi (fopt-diary): Document.
* tree-vectorizer.c (debug.h): Include.
(vectorize_loops): Add opt diary entry to note vectorized loops.
* sdbout.c (sdb_debug_hooks): Add debug_nothing_od_msg_loc.
* vmsdbgout.c (vmsdbg_debug_hooks): Same.
* dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Same.
* debug.c (do_nothing_hooks): Same.
(debug_nothing_od_msg_loc): New.
* common.opt (fopt-diary): Add.
* debug.h (debug_od_msg, debug_od_category): New.
(gcc_debug_hooks): Add opt_diary_entry hook.
(debug_nothing_od_msg_loc): New.
* (tree-vectorizer.o): Depend on debug.h
* dwarf2out.c (dwarf2out_od_entry, dwarf2out_od_category,
dwarf2out_od_version, gen_new_od_entry_die): New.
(dwarf_tag_name): Handle DW_TAG_GNU_OD_entry.
(dwarf_attr_name): Handle DW_AT_GNU_OD_msg, DW_AT_GNU_OD_category
and DW_AT_GNU_OD_version.
(add_src_coords_attributes_locus): New.
(add_src_coords_attributes): Use add_src_coords_attributes_locus.
(dwarf2out_init): Record opt diary version.
* dwarf2.h (dwarf_tag): Add DW_TAG_GNU_OD_entry.
(dwarf_attributes): Add DW_AT_GNU_OD_msg, DW_AT_GNU_OD_category,
2006-06-09 Fariborz Jahanian <>
Radar 4084991
* fold-const.c (fold_cond_expr_with_comparison): Check for
Objective-C++ same as C++.
2006-06-07 Hui-May Chang <>
Radar 4571747
* rs6000.c (const struct bdesc_altivec_preds)
Rename CODE_FOR_altivec_predicate_* to work with new descriptions in
Expand nine altivec predicate vcmp* instructions.
2006-06-06 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.
2005-08-11 Richard Guenther <>
PR target/23289
* config/i386/i386.c (ix86_function_ok_for_sibcall): Handle
cases where we call to/from functions returning void.
2006-06-01 Fariborz Jahanian <>
Radar 4570979
* config/darwin.h: Change certain 'type' of objc2 sections
to 'regular' from 'literal_pointers' (reversing radar
2006-06-01 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-05-30 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-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-26 Fariborz Jahanian <>
radar 4563012
* config/darwin.c (darwin_construct_objc_string): Clear out the
ggc'able cfstring_descriptor node.
2006-05-25 Fariborz Jahanian <>
Radar 4561264
* config/darwin.h: Change certain 'type' of objc2 sections
to 'literal_pointers' from 'regular'.
2006-05-18 Geoffrey Keating <>
Radar 3334812
* config/darwin.h (NO_IMPLICIT_EXTERN_C): Define.
2006-05-23 Caroline Tice <>
* passes.c (rest_of_compilation): Add apple local markers.
2006-05-18 Fariborz Jahanian <>
Radar 4548636 (objc attributes on class)
* Add attribute non-terminal before
* c-common.h (objc_start_class_interface): New argument added.
* stub-objc.c (objc_start_class_interface): Ditto.
2006-05-19 Caroline Tice <
* dwarf2out.c (gen_inlined_subroutine_die): Added type-cast to
assignment and removed declaration of unused variable.
2006-05-18 Devang Patel <>
Radar 4509291
* Undo Radar 4509280
2006-05-18 Caroline Tice <>
Radar 4548482
* sdbout.c (sdb_debug_hooks): Change do_nothing function for
outlining_inline_function to have a second parameter, a source locus.
* vmsdbgout.c (vmsdbgout_abstract_function): Add secord (NULL)
argument to outlining_inline_function call.
* debug.c (do_nothing_debug_hooks): Change do_nothing function for
outlining_inline_function to have a second parameter, a source locus.
(debug_nothing_tree_loc): New function.
* debug.h (struct gcc_debug_hooks): Add a second parameter, a
source_locus, to outlining_inling_function.
(debug_nothing_tree_loc): New extern declaration.
* tree-inline.c (expand_call_inline): Add second argument,
input_location, to outlining_inline_function call.
* dbxout.c (dbx_debug_hooks): Change do_nothing function for
outlining_inline_function to have a second paramenter, a source_locus.
(xcoff_debug_hooks): Likewise.
* passes.c (rest_of_compilation): Add a second argument, NULL, to
the call to outlining_inline_function.
* dwarf2out.c (dwarf2out_abstract_function): Add second parameter, a
source locus. Add code to check to see if a call site location was
passed in, and if so to append the call site location to the list of
inlined call sites attached to the abstract origin die.
(struct source_loc_list): New struct.
(struct die_struct): Add new field, inlined_call_sites.
(struct inlined_calls): New struct.
(inlined_calls_list): New global variable.
(add_to_global_inlined_calls_list): New function.
(gen_inlined_subroutine_die): Add second argument, NULL, to call to
dwarf2out_abstract_function. Add code to look for appropriate call
site record, either in list attached to abstract origin, or in
global list, and if found, to add DW_AT_call_file and DW_AT_call_line
to inlined subroutine die.
(gen_decl_die): Add second argument, NULL, to calls to
(add_abstract_origin_attribute): Likewise.
* c-decl.c (merge_decls): Likewise.
* testsuite/ New file (test).
2006-05-17 Fariborz Jahanian <>
Radar 4550582
* Reset objc_foreach_context to 0.
2006-05-16 Devang Patel <>
Radar 4547137
* dbxout.c (dbxout_end_source_file): Check current_file.
2006-05-16 Fariborz Jahanian <>
Radar 4547045
* c-gimplify.c (obj_reuse_bc_block): Removed.
(objc_pop_label, objc_push_label): New.
(gimplify_c_loop): Fix up foreach's innerloop break label.
2006-05-15 Fariborz Jahanian <>
radar 4529765
* c-format.c (format_type_warning): Compensate for two hidden
arguments in objc messaging when warning.
2006-05-11 Stuart Hastings <>
Radar 4506977
* gcc/tree-cfg.c (fold_cond_expr_cond): Un-static it.
* gcc/tree-flow.h (fold_cond_expr_cond) Extern it.
* gcc/tree-optimize.c (execute_cleanup_cfg_post_optimizing): Call it.
* gcc/config/rs6000/ (movdf_low_si): Rewrite to avoid pic-base reference.
* gcc/config/rs6000/ (zero_reg_mem_operand): New predicate.
(extenddftf2_internal): Use it.
2006-05-09 Fariborz Jahanian <>
radar 4529200
* (yylexname): Add '[' as another token
that can follow 'in'.
2006-05-08 Fariborz Jahanian <>
radar 4535676
* config/darwin-protos.h: New declarations.
* config/darwin.c (machopic_select_section): Code to generate
new section __super_refs.
* config/darwin.h: Macros for new section declarations.
2006-05-05 Fariborz Jahanian <>
radar 4533974 - ObjC new protocol
* New grammar production.
* c-common.h: New declarations.
* stub-objc.c (objc_protocol_implementation): New stub.
* config/darwin-protos.h: New declarations.
* config/darwin.c (machopic_select_section): Code to generate
new sections __protocol_list and __protocol_refs.
* config/darwin.h: Macros for new section declarations.
2006-05-01 Fariborz Jahanian <>
Radar 4512786
* doc/invoke.texi (fobjc-sjlj-exceptions): Replaces
2006-04-28 Fariborz Jahanian <>
Radar 4512786
* doc/invoke.texi (fobjc-exceptions): Say it is
on by default.
2006-04-26 Fariborz Jahanian <>
Radar 3803157 (method attributes)
* Add grammar support for declaring
attribute for objc methods.
* c-common.c (handle_deprecated_attribute): Recognize
objc methods as valid declarations.
(handle_unavailable_attribute): Ditto.
* c-common.h: Bunch of new extern declarations.
* stub-objc.c (objc_add_method_declaration, objc_start_method_definition):
Added new argument.
(objc_method_decl): New stub.
2006-04-13 Devang Patel <>
Radar 4503682
* c-lex.c (c_lex_with_flags): CPP_BINCL and CPP_EINCL tokens do not block PCH.
2006-04-12 Devang Patel <>
Radar 4509280
* tree-vectorizer.c (vectorize_loops): Print vectorized loop count in opt
diary only if count is more then zero.
* flags.h (opt_diary_filename): New.
* tree-pass.h (TODO_proposal_1): New.
* tree-sra.c (pass_sra): Add TODO_proposal_1 in todo_flags_finish.
* tree-ssa-forwprop.c (pass_forwprop): Same.
* tree-ssa-dce.c (pass_dce, pass_cd_dce): Same.
* tree-ssa-ccp.c (pass_ccp): Same.
* tree-ssa-loop.c (pass_lim, pass_unswitch, pass_vectorize, pass_linear_transform,
pass_loop_prefetch, pass_iv_canon, pass_complete_unroll, pass_iv_optimize): Same.
* common.opt (fopt-diary-proposal-1): New.
* toplev.c (opt-diary.h): Include.
(opt_diary_filename): new.
(do_compile): Open and close opt diary.
* tree-optimize.c (opt-diary.h): Include.
(execute_one_pass): Redir dump_file to opt diary and restore it back.
Insert annotation header tag in opt diary.
* (opt-diary.o): New rule.
(tree-cfg.o, tree-optimize.o, toplev.o): Depend on opt-diary.h
* tree-cfg.c (opt-diary.h): Include.
(dump_function_to_file): Do not dump function into opt diary.
* opts.c (common_handle_option): Handle OPT_fopt_diary_proposal_1_.
* tree-ssa-opearnds. (get_indirect_ref_operands): Suppress flow sensitive alias
info dump in optimization diary.
* opt-diary.c: New file.
* opt-diary.h: New file.
2006-04-13 Fariborz Jahanian <>
Radar 4502236
* (c99_block_lineno_labeled_stmt): Pass same flags to
c_end_compound_stmt to match c_begin_compound_stmt.
2006-04-12 Fariborz Jahanian <>
Radar 4507230
* c-common.h (objc_type_valid_for_messaging): Declare.
* stub-objc.c (objc_type_valid_for_messaging): New stub.
2006-04-06 Fariborz Jahanian <>
Radar 4436866
(Missing copies attribute)
* Add grammer for 'copies' attribute.
* c-common.h (RID_COPIES): New enumerator.
2006-04-04 Fariborz Jahanian <>
Radar 4498373
(Metadata for objective-c properties)
* config/darwin.c (machopic_select_section): Put metadata
name/attribute strings in .data section.
2006-03-29 Fariborz Jahanian <>
Radar 4493912
* config/darwin.c (darwin_init_cfstring_builtins): Make type of
CFString.length 'long'.
(darwin_init_cfstring_builtins): Initialize CFString.length to
a 'long' value.
2006-03-27 Fariborz Jahanian <>
Radar 4133425
* c-common.h (objc_diagnose_private_ivar): New decl.
* stub-objc.c (objc_diagnose_private_ivar): New stub.
* c-decl.c (undeclared_variable): Issue disnostic on
private 'ivar' access.
2006-03-27 Fariborz Jahanian <>
Radar 4491608
* c-typeck.c (convert_arguments): function name must come from 'selector'
when diagnosing 'too many arguments'.
2006-03-24 Devang Patel <>
Radar 4485223
* opts.c (decode_options): Issue warning if -ftree-vectorize
overrides -fno-strict-aliasing.
2006-03-23 Fariborz Jahanian <>
Radar 4193359
* c-typeck.c (convert_for_assignment): Remove Objective-C EH machinery
'volatile' qualifier before doing type comparison.
2006-03-22 Geoffrey Keating <>
Radar 4255172
* config/rs6000/darwin.h (PEG_ALIGN_FOR_MAC68K): Move to here from
config/darwin.h. Don't test TARGET_ALTIVEC.
* config/darwin.h [RS6000_VECTOR_ALIGNMENT] (PEG_ALIGN_FOR_MAC68K):
Move this definition to config/rs6000/darwin.h.
* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Don't define
Altivec PIM macros unless -faltivec.
* config/rs6000/rs6000.c (rs6000_override_options): Don't allow
special Altivec vector initialisation unless -faltivec.
2006-03-22 Fariborz Jahanian <>
Radar 4436866
* Add all the needed grammar and lexical support for
objective-c @property.
* c-typeck.c (build_component_ref): Call objc_build_getter_call.
(build_modify_expr): Call objc_build_setter_call.
* c-common.h: Several new declarations in support of
objective-c's @property.
* stub-objc.c (objc_set_property_attr, objc_add_property_variable,
objc_build_getter_call, objc_build_setter_call): New stubs.
2006-03-16 Fariborz Jahanian <>
Radar 4293709
* c-typeck.c (digest_init): Check for protocol match in
initialization of two otherwise matching pointers.
2006-03-13 Fariborz Jahanian <>
Radar 4472881
* Change grammar code as needed to allow
declaration in objective-c's foreach for-loop loop header.
2006-03-08 Fariborz Jahanian <>
Radar 4468456
* c-gimplify.c (gimplify_c_loop): 'continue' label is generated
as in normal case and belongs to current loop.
2006-03-07 Fariborz Jahanian <>
Radar 4468498
* (for_objc_collection): Add grammar for non-declarative
form of foreach-statement.
2006-02-28 Fariborz Jahanian <>
Radar 4441049
* c-common.h (objc_v2_bitfield_ivar_bitpos): New decl.
* expr.h (objc_v2_bitfield_ivar_bitpos): New decl.
* stub-objc.c (objc_v2_bitfield_ivar_bitpos): New stub.
* expr.c (get_inner_reference): Compute ivar's bitfield bit offset.
2006-02-28 Devang Patel <>
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
* langhooks-def.h: Revert Radar 4133801 changes.
* langhooks.c: Likewise.
* langhooks.h: Likewise.
2006-02-15 Fariborz Jahanian <>
Radar 4445586
* c-common.def (DO_STMT): Takes an extra argument.
2006-02-15 Fariborz Jahanian <>
Radar 4441551
* (component_decl_list2): Issue warning for @defs as needed.
* c-typeck.c (build_c_cast): Call diagnose_selector_cast.
* common.opt: New -Wobjc2 option.
* c-common.h (diagnose_selector_cast): New decl.
* stub-objc.c (diagnose_selector_cast): New stub.
* config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
objc's new abi.
2006-02-14 Fariborz Jahanian <>
Radar 4441049
* c-common.h (objc_v2_component_ref_field_offset): New decl.
* stub-objc.c (objc_v2_component_ref_field_offset): New stub.
* expr.c (component_ref_field_offset): May get the bitfield
byte-offset from a variable for the new objc abi.
* expr.h (objc_v2_component_ref_field_offset): New decl.
* config/darwin.c (machopic_select_section): Explicitly use .data
section for global class/metaclass metadata.
2006-02-08 Fariborz Jahanian <>
Radar 4437670 (new abi stuff)
* common.opt: New -fobjc-nilcheck option.
* config/darwin-protos.h: Stuff for new __OBJC2, __protocol section.
* config/darwin.c: Ditto.
* config/darwin.h: Ditto.
2006-02-07 Fariborz Jahanian <>
Radar 4426814
* (cast_expr): Minor fix.
2006-02-02 Fariborz Jahanian <>
Radar 4426814
* (cast_expr): generate objc_read_weak call on
each __weak object in the expession.
* c-typeck.c (build_modify_expr): Undo the call to objc_read_weak
on LHS expression.
* c-objc-common.c (c_objc_common_truthvalue_conversion): Generate
objc_read_weak call before generating tree for !exp, etc.
* c-common.h (objc_generate_weak_read, objc_remove_weak_read): New decl.
* stub-objc.c (objc_generate_weak_read, objc_remove_weak_read): New stubs.
2006-01-30 Fariborz Jahanian <>
Radar 4386773
* c-common.h (RID_AT_OPTIONAL, RID_AT_REQUIRED): Two new
objective-c keywords.
(objc_set_method_opt): New declaration.
* stub-objc.c (objc_set_method_opt): New stub.
2006-01-26 Devang Patel <>
Radar 4388369
* dbxout.c (dbxout_complete_type): Handle internally volatized
types for Objective-C EH mechanism.
2006-01-23 Fariborz Jahanian <>
Radar 4391705
* config/darwin-protos.h
(objc_v2_selector_refs_section): New declaration.
* config/darwin.c: use section __OBJC2,__selector_refs for
@selector expressions in new-ABI and hybrid-ABI.
* config/darwin.h: Initialization of __OBJC2,__selector_refs
section and inclusion of hybrid abi for __OBJC2 sections
2006-01-18 Fariborz Jahanian <>
Radar 4294910
* Add grammar supprt for the foreach initialization
* c-gimplify.c (obj_reuse_bc_block): New function.
(gimplify_c_loop): Has a new argument to recgognize nested
do-while statement part of foreach-statement synthesis. Use
existing continue/break labels for this loop.
* c-common.h (DO_FOREACH): New field for a do-while statement.
(objc_finish_foreach_loop, objc_build_component_ref,
objc_build_foreach_components): New declarations.
* stub-objc.c: New stubs.
2006-01-18 Fariborz Jahanian <>
Radar 4391705
* config/darwin-protos.h: New declarations for new sections.
* config/darwin.c: Generate new symbols in OBJC2 segment in
new sections __category_list, __class_refs, __nonlazy_class
and __nonlazy_catgry.
* config/darwin.h: Define and initialize the above new sections.
2006-01-02 Fariborz Jahanian <>
Radar 4391705
* config/darwin.h: Change segment and section name of class meta
(objc_section_init): Initialize OBJC2 sections for new abi only.
2005-12-15 Fariborz Jahanian <>
Radar 4229905
* c-typeck.c (build_conditional_expr): Call objc_have_common_type when
looking for objective-c common pointer types.
* c-common.h objc_have_common_type): New declaration.
* stub-objc.c (objc_have_common_type): New stub.
2005-12-06 Fariborz Jahanian <>
Radar 4360146
* c-common.h (objc_v2_build_ivar_ref): New declaration.
* stub-objc.c (objc_v2_build_ivar_ref): New stub.
* c-typeck.c (build_component_ref): Generate the new ivar reference
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.
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-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.
* 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.
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.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_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
* 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.
* 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.
* 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,