Changelog of the TIGCC-local changes to GCC (4.0 branch): 2005-09-29 Kevin Kofler * Rebase GCC to 4.0.2 release (identical to the 20050924 snapshot except for the missing PR 23043 fix). * version.c: Update version number. * Reapply PR 23043 fix from 20050924 snapshot: 2005-09-21 Andreas Schwab PR rtl-optimization/23043 * postreload-gcse.c (eliminate_partially_redundant_load): Fix typo when allocating a struct unoccr. * Merge PR 24109 fix (gcc4-pr24109.patch) from Fedora GCC: 2005-09-29 Jakub Jelinek * c-decl.c (c_write_global_declarations_1): If any wrapup_global_declaration_2 call returned true, restart the loop. 2005-09-24 Kevin Kofler * Update GCC to 4.0 20050924 (post-4.0.2 snapshot). * version.c: Update version number. * Drop patch for PR 21828 (fixed upstream): 2005-06-27 Kevin Kofler * toplev.c (check_global_declarations): Don't ignore BSS variables for debugging info. * Merge DWARF 2 patches/backports from Fedora GCC: - gcc4-dwarf2-pr20268.patch 2005-03-30 James E. Wilson PR debug/20268 * dwarf2out.c (add_high_low_attributes): New function, extracted from gen_lexical_block_die. (gen_lexical_block_die, gen_inlined_subroutine_die): Call it. - gcc4-dwarf2-inline-details.patch 2005-07-25 James E Wilson * dwarf2out.c (add_call_src_coords_attributes): New. (gen_inlined_subroutine_die): Call it. (maybe_emit_file, init_file_table): Add comments. (prune_unused_types_walk_attribs): Pass DW_AT_call_file through maybe_emit_file. * tree-inline.c (remap_block): Copy BLOCK_SOURCE_LOCATION. (expand_call_inline): Set BLOCK_SOURCE_LOCATION. * tree.h (BLOCK_SOURCE_LOCATION): New. (struct tree_block): New field locus. - gcc4-dwarf2-usefbreg.patch 2005-08-10 Jakub Jelinek * dwarf2out.c (concat_loc_descriptor): Add can_use_fbreg argument, pass it down to loc_descriptor. (loc_descriptor): Pass can_use_fbreg to concat_loc_descriptor. (containing_function_has_frame_base): Move earlier in the file. (loc_descriptor_from_tree_1): Use containing_function_has_frame_base instead of always assuming fbreg can't be used. - gcc4-dwarf2-prefer-1elt-vartracking.patch 2005-08-10 Jakub Jelinek * dwarf2out.c (add_location_or_const_value_attribute): Prefer locations gathered by var-tracking in single entry loc_list over loc_descriptor_from_tree. - gcc4-dwarf2-frame_base.patch 2005-08-22 Richard Henderson * function.c (ARG_POINTER_CFA_OFFSET): Move ... * defaults.h (ARG_POINTER_CFA_OFFSET): ... here. (INCOMING_FRAME_SP_OFFSET): Moved from ... * dwarf2out.c (INCOMING_FRAME_SP_OFFSET): ... here. (struct cfa_loc): Change reg to unsigned int, rearrange for better packing. (lookup_cfa_1): Remove inline marker. (cfa_equal_p): Split out of ... (def_cfa_1): ... here. Use INVALID_REGNUM. (build_cfa_loc): Handle !cfa->indirect. (frame_pointer_cfa_offset): New. (dbx_reg_number): Assert register elimination performed; do leaf register remapping. (reg_loc_descriptor): Avoid calling dbx_reg_number when unused. (eliminate_reg_to_offset): New. (based_loc_descr): Remove can_use_fbreg argument. Use fbreg only for verifiably local stack frame addresses; re-base to CFA. (mem_loc_descriptor): Remove can_use_fbreg argument. (concat_loc_descriptor, loc_descriptor): Likewise. (containing_function_has_frame_base): Remove. (rtl_for_decl_location): Don't do register elimination or leaf register remapping here. (secname_for_decl): Split out from .. (add_location_or_const_value_attribute): ... here. (convert_cfa_to_loc_list): New. (compute_frame_pointer_to_cfa_displacement): New. (gen_subprogram_die): Use them. * tree.h (frame_base_decl): Remove. * var-tracking.c (frame_base_decl, 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. (dump_attrs_list, dump_dataflow_set): Use string concatenation. (vt_add_function_parameters): Don't eliminate_regs. (vt_initialize): Don't create frame_base_decl. * m68k.c (m68k_regno_mode_ok): Don't reject bytes in address registers if !TARGET_COLDFIRE. 2005-07-01 Kevin Kofler * Update GCC to 4.0 20050630 (4.0.1-pre snapshot). * version.c: Update version number. 2005-06-27 Kevin Kofler * toplev.c (check_global_declarations): Don't ignore BSS variables for debugging info. 2005-06-03 Kevin Kofler * config/m68k/m68k-ti.h (CPP_SPEC): Define to CPP_SUBTARGET_SPEC. 2005-05-17 Kevin Kofler * varasm.c (default_section_type_flags_1): Make sure DECL_INITIAL (decl) is non-null before using it. (asm_emit_uninitialised): Add one more check for flag_data_sections && TARGET_NO_BSS. * config/m68k/m68k-ti.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Call data_section before emitting variables. 2005-05-07 Kevin Kofler * dwarf2out.c (output_call_frame_info): Don't output .eh_frame section. 2005-05-05 Kevin Kofler * dwarf2out.c (dwarf2out_start_source_file): Use the correct file number. 2005-04-30 Kevin Kofler * Update GCC to 4.0.0. * version.c: Update version number to 4.0.0-tigcc-1. 2005-04-24 Kevin Kofler * gcc/config/m68k/m68k.c (m68k_cannot_force_const_mem): New static function. (TARGET_CANNOT_FORCE_CONST_MEM): Define to m68k_cannot_force_const_mem. 2005-04-24 Kevin Kofler * gcc/varasm.c (assemble_asm): Emit .loc directive. Switch to the text section before the asm and reset the stored section afterwards. * gcc/dwarf2out.c (dwarf2out_source_line): Don't crash if no current_function_decl. 2005-04-20 Kevin Kofler * gcc/toplev.c (set_src_pwd): Eliminate duplicate backslashes from Win32 path names. 2005-04-09 Kevin Kofler * gcc/dwarf2.h (enum dwarf_attribute): Add DW_AT_regparm_location. * gcc/dwarf2out.c (dwarf_attr_name): Likewise. (gen_formal_types_die, gen_subprogram_die): Emit DW_AT_regparm_location entries for register parameters. 2005-04-07 Kevin Kofler * gcc/config/m68k/m68k.c (m68k_output_function_prologue): Fix off-by-4 in the unwinding information for the !frame_pointer_needed case. 2005-04-03 Kevin Kofler * gcc/config/m68k/m68k-ti.h (DWARF2_ASM_LINE_DEBUG_INFO): Define. 2005-04-03 Kevin Kofler * gcc/config/m68k/m68k-ti.h (DWARF2_DEBUGGING_INFO, DWARF2_UNWIND_INFO): Define. * gcc/dwarf2out.c (add_const_value_attribute): Don't assume sizeof(float) is divisible by 4. 2005-03-24 Kevin Kofler * gcc/rtlanal.c (subreg_regno_offset, subreg_offset_representable_p): Special-case GET_MODE_SIZE (xmode) == 10. 2005-03-23 Kevin Kofler * Update GCC to 4.0-20050319. * Revert pessimization: 2005-03-11 David Edelsohn PR rtl-optimization/20306 * expr.c (emit_move_complex): Set try_int false if mode is MODE_COMPLEX_FLOAT and mov_optab exists for inner mode. Only try emit_block_move if try_int is true. 2005-03-06 Kevin Kofler * Update GCC to 4.0-20050305. * gcc/c-opts.c (c_common_post_options): Don't use libcall method for complex multiplication/division, as we currently have no such libcalls. 2005-02-17 Kevin Kofler * gcc/c-opts.c (c_common_init_options): Enable -fms-extensions by default. (c_common_handle_option): Disable it for -pedantic and -pedantic-errors. 2005-02-17 Kevin Kofler * gcc/opts.c (decode_options): Change default max-inline-insn-auto for -O3 (but not -O4 or higher) from 120 to 60. Enable -finline-functions by default at -O2 and set max-inline-insn-auto to 5 (as for -Os). 2005-02-16 Kevin Kofler * Update GCC to 4.0-20050213. * gcc/optabs.c (expand_absneg_bit, expand_copysign_bit): Disable. * gcc/real.c (REAL_MODE_FORMAT_COMPOSITE_P): Disable. * gcc/config/smapbcd.h (REAL_MODE_FORMAT_COMPOSITE_P): Define to 0. * gcc/machmode.def (BF, XF): Move... * gcc/config/m68k/m68k-modes.def (BF, XF): ... here. 2005-02-16 Kevin Kofler * gcc/tree-ssa-pre.c (eliminate): Honor -fno-function-cse. * gcc/tree-ssa-dom.c (optimize_stmt): Fix overconservative -fno-function-cse call sequence test. 2005-02-16 Kevin Kofler * gcc/config/m68k/m68k.md (unnamed argument passing peepholes): AND the least significant word with 0xFFFF to make sure the most significant word isn't off by one if it is <0. 2005-02-16 Kevin Kofler * gcc/real.c (real_from_integer): Cast 10 to HOST_WIDE_INT before shifting. 2005-02-13 Kevin Kofler * gcc/opts.c (decode_options): Don't enable flag_delete_null_pointer_checks by default. 2005-02-13 Kevin Kofler * gcc/config/m68k/m68k.md (unnamed peephole2s): Check REG_P before checking REGNO. (5 new unnamed peephole2s): Optimize redundant code generated by the zero_extend splitters. 2005-02-13 Kevin Kofler * gcc/config/m68k/m68k.c (const_method): Don't declare static. * gcc/postreload.c (reload_cse_move2add): Prototype and use it. Don't do the strict_low_part optimization for QImode, nor for long moves which can be done using moveq. 2005-02-12 Kevin Kofler * gcc/c.opt (-Wpointer-sign): Disable by default. 2005-02-12 Kevin Kofler * libcpp/internal.h (struct cpp_reader): Remove boolean lexing_mls member. * libcpp/lex.c (parse_string): Don't set it. (_cpp_clean_string): Don't check it. Always change "\r\n" into "\n\r", not "\n\n". (create_literal): Delete \r characters based on the given string length, not on the C string length. Don't use strchr. 2005-02-12 Kevin Kofler * gcc/c-parse.in (stmts_and_decls): Don't error about labels at end of compound statements, only pedwarn if pedantic. * libcpp/lex.c (lex_string): Pedwarn about multi-line string literals if pedantic. * libcpp/expr.c (cpp_classify_number): Pedwarn about binary (0b...) constants if pedantic. 2005-02-11 Kevin Kofler * gcc/config/m68k.md (unnamed peephole2s): Fix "constraints not supported in define_peephole2" warnings. Don't optimize a push into a move for operands in the range for a moveq. Use a pea or moveq instead depending on whether a stack adjust is needed anyway or not. New unnamed peephole2 for the moveq case. (unnamed peephole for stack adjust + stack push): Don't misoptimize a push into a move for operands in the range for a pea if a stack adjustment is needed anyway. 2005-02-10 Kevin Kofler * gcc/real.c: Don't include math.h and setjmp.h. (bcdpadd1ulp): Take parameter by reference, don't return it. (bcdppadd, real_value_dtof, real_from_integer): Update calls to bcdpadd1ulp. (real_value_dtof): Handle overflow and underflow. (struct arbprec_decimal): New structure (arbitrary precision decimal float). (arbprec_pack, arbprec_mul2, arbprec_div2, arbprec_mul16, arbprec_div16, arbprec_add, arbprec_add_n_times, arbprec_to_bcd): New static functions to handle arbprec_decimal objects. (real_value_htof): Use them. Don't use finite, sprintf, real_value_dtof. Remove unnecessary lvalue cast. 2005-02-10 Kevin Kofler * gcc/config/m68k.md (pushqi1_imm, pushqi1_reg, pushqi1_mem): New expanders for byte pushes. (pushqi1): Use them. Original code moved to pushqi1_mem. * gcc/config/m68k.md (unnamed define_peephole): New peephole to optimize constant argument passing after a stack adjustment (bundle 2 immediate word pushes to the stack into 1 immediate longword push). Recognizes the pattern generated by my define_peephole2. 2005-02-10 Kevin Kofler * gcc/config/m68k.md (unnamed peephole2): Fix copy&paste error. * gcc/fold-const.c (real_uzerop): Fix another copy&paste error. 2005-02-10 Kevin Kofler * gcc/simplify-rtx.c (simplify_immed_subreg): Fix use of undefined behavior (vp incremented twice without a sequence point in-between). 2005-02-10 Kevin Kofler Implement correct handling of 3-sign zeros (POSITIVE_ZERO, NEGATIVE_ZERO and UNSIGNED_ZERO): * gcc/combine.c (combine_simplify_rtx): Don't optimize x-0 to x if HONOR_SIGNED_ZEROS, even if !HONOR_SIGN_DEPENDENT_ROUNDING. * gcc/fold-const.c (fold_real_zero_addition_p): Likewise. * gcc/simplify-rtx.c (simplify_binary_operation): Likewise. * gcc/fold-const.c (real_uzerop): New static function. Tests tree for UNSIGNED_ZERO. (fold): Allow folding UNSIGNED_ZERO*x to UNSIGNED_ZERO if -ffinite-math-only. (fold_binary_to_constant): Likewise. * gcc/simplify-rtx.c (simplify_binary_operation): Likewise. * gcc/simplify-rtx.c (simplify_unary_operation): Always allow simplifying -(X-Y) into Y-X, -(A+C) into -C-A and -(A+B) into -A-B, independently of HONOR_SIGNED_ZEROS. 2005-02-10 Kevin Kofler * gcc/config/m68k.md (4 new unnamed peephole2s): Optimize lea (1,%an),%am; move.w foo,-(%am), m!=7 into move.l %an,%am; move.b foo,(%an). Optimize lea (x,%an),%am; move.l foo,-(%am), x!=4, x>=-0x7ffc into lea (x-4,%an),%am; move.l foo,(%am). Optimize lea (x,%an),%am; move.w foo,-(%am), x!=2, x>=-0x7ffe into lea (x-2,%an),%am; move.w foo,(%am). Optimize lea (x,%an),%am; move.b foo,-(%am), m!=7, x!=1, x>=-0x7fff into lea (x-1,%an),%am; move.b foo,(%am). 2005-02-10 Kevin Kofler * gcc/tree.c (initializer_zerop): Don't return 1 for UNSIGNED_ZERO. 2005-02-10 Kevin Kofler * gcc/config/m68k.md (2 new unnamed peephole2s): Optimize lea (4,%an),%am; move.l foo,-(%am) into move.l %an,%am; move.l foo,(%an). Optimize lea (2,%an),%am; move.w foo,-(%am) into move.l %an,%am; move.w foo,(%an). 2005-02-10 Kevin Kofler * gcc/real.c (bcdadd): Return NAN instead of UNSIGNED_INF if adding 2 infinities with different sign, or UNSIGNED_INF+UNSIGNED_INF. 2005-02-10 Kevin Kofler * gcc/c-pretty-print.c (pp_c_expression): Add support for statement expressions (BIND_EXPR, STATEMENT_LIST). 2005-02-10 Kevin Kofler * gcc/config/m68k.md (zero_extendhisi2, zero_extendqisi2): Mark data register earlyclobber for memory operands in order to avoid inefficient andi.l code. 2005-02-10 Kevin Kofler * gcc/config/m68k.c (m68k_rtx_costs): Decrease cost of longword shifts for speed optimization. 2005-02-09 Kevin Kofler * gcc/config/smapbcd.h (REAL_VALUE_TO_STRING): Don't output trailing \n. Handle special cases properly. Output leading digit before the decimal point. 2005-02-09 Kevin Kofler * gcc/config/m68k/m68k.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM unconditionally. * gcc/config/m68k/m68k.c (m68k_output_pic_call): Use jbsr instead of bsr for _ROM_CALL_... and _RAM_CALL_... 2005-02-08 Kevin Kofler * gcc/config/smapbcd.h (REAL_VALUES_EQUAL): Use !REAL_VALUE_ISNANUINF, not REAL_VALUE_ISFINITE. 2005-02-08 Kevin Kofler * gcc/optabs.c (expand_float): Reenable erroneously #if 0'ed libcall code. (init_optabs): Add missing ufloat initialization. 2005-02-08 Kevin Kofler * gcc/real.h (real_value_dtof): Round correctly. 2005-02-08 Kevin Kofler * gcc/real.h (real_from_string, real_from_string2): Enable prototypes. * gcc/config/smapbcd.h (REAL_VALUE_ATOF): Use real_from_string2, not REAL_VALUE_DTOF and REAL_VALUE_HTOF. (REAL_VALUE_DTOF, REAL_VALUE_HTOF): Delete. Move code to... Don't include math.h. * gcc/real.c (real_value_dtof, real_value_htof): ... here. New static functions. Remove unnecessary lvalue cast from the REAL_VALUE_DTOF code. (real_from_string): Enable. Implement using real_value_dtof and real_value_htof. (real_from_string2): Enable. Include math.h. * Revert: 2002-12-26 Kevin Kofler * c-lex.c (interpret_float): Don't use real_from_string, real_convert. Use REAL_VALUE_ATOF instead. 2005-02-08 Kevin Kofler * gcc/real.c (ereal_from_int, ereal_from_uint, REAL_DEBUG_INFO, REAL_DEBUG_SPRINTF): Delete. (real_from_integer): Implement from scratch. * gcc/real.h (ereal_from_int, ereal_from_uint): Delete prototypes. (real_from_integer): Enable prototype. * gcc/config/smapbcd.h (REAL_FROM_INT, REAL_FROM_UINT): Use real_from_integer, not ereal_from_int and ereal_from_uint. (real_from_integer): Don't define as a macro. * gcc/fold-const.c (fold_convert_const_int_from_real): Reenable overflow checks. 2005-02-08 Kevin Kofler * gcc/real.c (ereal_to_int): Delete. (real_to_integer2): Implement from scratch. * gcc/real.h (ereal_to_int): Delete prototype. (real_to_integer2): Enable prototype. * gcc/config/smapbcd.h (REAL_TO_INT): Use real_to_integer2, not ereal_to_int. 2005-02-08 Kevin Kofler * gcc/fold-const.c (fold_convert_const_int_from_real): Enable support for FIX_TRUNC_EXPR, don't call real_trunc (let REAL_VALUE_TO_INT handle it), use REAL_VALUE_ISNANUINF, not REAL_VALUE_ISNAN. Disable overflow checks for now. (fold): Use REAL_VALUE_ISNANUINF, not REAL_VALUE_ISNAN. * gcc/simplify-rtx.c (simplify_unary_operation): Likewise. (simplify_const_relational_operation): Likewise. 2005-02-08 Kevin Kofler * gcc/m68k/m68k.c (m68k_init_cumulative_args): Use register calling convention for local functions when possible. Partially copied from i386.c. Add fndecl parameter. (amigaos_init_cumulative_args): Add fndecl parameter. Pass it to m68k_init_cumulative_args. * gcc/m68k/m68k.h (INIT_CUMULATIVE_ARGS): Pass FNDECL to amigaos_init_cumulative_args. * gcc/m68k/m68k-protos.h (amigaos_init_cumulative_args): Add fndecl parameter to prototype. 2005-02-08 Kevin Kofler * gcc/m68k/m68k.c (m68k_save_reg, m68k_output_function_prologue): Handle OPTIMIZE_ROM_CALLS (save/restore %a5, load jump table). 2005-02-07 Kevin Kofler * gcc/m68k/m68k.md (unnamed define_peephole): New peephole to optimize constant argument passing (bundle 2 immediate word pushes to the stack into 1 immediate longword push). 2005-02-06 Kevin Kofler * gcc/m68k/m68k-ti.c (m68k_output_function_epilogue): Don't output junk nops for barriers. * gcc/m68k/m68k-ti.h (CAN_DEBUG_WITHOUT_FP): Define. 2005-02-06 Kevin Kofler * gcc/c-decl.c (build_compound_literal): New method for -fglobal-compound-literals. * gcc/c-typeck.c (default_function_array_conversion, build_unary_op): Revert flag_global_compound_literals hacks. * gcc/varasm.c (default_selection_section): Disable compound literal handling. (assemble_variable): Always emit mergeable compound literals into their own sections. (default_section_type_flags1): Add compound literal handling. 2005-02-06 Kevin Kofler * gcc/gimplify.c (gimplify_call_expr): Switch order of gimplification if -fno-function-cse. * gcc/cfgexpand.c (expand_gimple_basic_block): Restore function calls if -fno-function-cse. * gcc/tree-ssa-dom.c (optimize_stmt): Honor -fno-function-cse. 2005-02-06 Kevin Kofler * gcc/builtins.def (BUILT_IN_ER_THROW): New. * gcc/builtins.c (expand_builtin_er_throw): New. (expand_builtin): Call it. 2005-02-06 Kevin Kofler * Revert (parts of larger patches, changelog entries pruned accordingly): 2004-11-09 Kazu Hirata * fold-const.c (pedantic_non_lvalue): Make it static. * tree.h: Remove the corresponding prototype. 2004-01-17 Joseph S. Myers * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to true unconditionally. * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning): Remove. (build_unary_op, build_modify_expr): Don't handle extended lvalues. (build_conditional_expr): Call non_lvalue instead of pedantic_non_lvalue. (build_c_cast): Don't conditional use of non_lvalue on pedantic. * fold-const.c (fold): Don't check pedantic directly for COMPOUND_EXPR. Ensure that results for COMPOUND_EXPR are passed to pedantic_non_lvalue. 2003-11-06 Joseph S. Myers * c-typeck.c (pedantic_lvalue_warning): Deprecate compound expressions as lvalues. 2003-11-04 Joseph S. Myers * c-typeck.c (pedantic_lvalue_warning): Deprecate use of conditional expressions as lvalues. 2003-10-22 Joseph S. Myers * c-typeck.c (pedantic_lvalue_warning): Unconditionally warn of deprecation of casts as lvalues. 2005-02-06 Kevin Kofler * libcpp/lex.c (lex_string): Fix infinite loop with multi-line strings (use code from _cpp_skip_block_comment). (create_literal): Delete \r characters. * libcpp/internal.h (struct cpp_reader): Add boolean lexing_mls member. * libcpp/lex.c (lex_string): Set it. (_cpp_clean_line): Check it. Switch \r and \n instead of converting \r to \n if true. 2005-02-06 Kevin Kofler * gcc/builtins.def: Disable builtin_calloc, which conflicts with TIGCCLIB. * gcc/c-opts.c (c_common_handle_option): Don't warn about -I-. * gcc/config/i386/xm-mingw32.h (HAVE_DOS_BASED_FILE_SYSTEM): Define. * gcc/c-incpath.c (add_path): Convert / to \ if HAVE_DOS_BASED_FILE_SYSTEM, not the other way round. Strip trailing \. * gcc/loop.c (scan_loop): Fix hard register variables as asm inputs. Patch by Ian Lance Taylor, 2004-05-13, taken from the GCC mailing list: http://gcc.gnu.org/ml/gcc/2004-05/msg00678.html * Revert: 2003-12-17 Eric Botcazou PR c/12085 * c-typeck.c (build_function_call): Issue an error if a function is called through an incompatible prototype. 2005-02-02 - 2005-02-06 Kevin Kofler * Import GCC 4.0 20050130 snapshot. * Merge changes from GCC 3.3.3 (see ChangeLog-gcc-3.3.txt). * Preprocessor patches have moved to files with new names: gcc/cppexp.c -> libcpp/expr.c gcc/cpphash.h -> libcpp/internal.h gcc/cppinit.c -> libcpp/init.c, gcc/c-incpath.c gcc/cpplex.c -> libcpp/lex.c, libcpp/include/cpplib.h (prototype), gcc/c-lex.c gcc/cpplib.c -> libcpp/directives.c gcc/cpplib.h -> libcpp/include/cpplib.h gcc/cppmacro.c -> libcpp/macro.c gcc/cppmain.c -> gcc/c-ppoutput.c * Some more patches have moved to other files: gcc/c-common.c -> gcc/c-cppbuiltin.c, gcc/builtins.c gcc/c-opts.c -> gcc/c-opts.c, gcc/c.opt gcc/c-typeck.c -> gcc/c-typeck.c, gcc/c-decl.c gcc/emit-rtl.c (gen_lowpart_common, constant_subword) -> gcc/simplify-rtx.c (simplify_immed_subreg) (rewritten) gcc/toplev.c -> gcc/toplev.c, gcc/common.opt, gcc/opts.c gcc/config/m68k/m68k-coff.h -> gcc/config.gcc, gcc/config/m68k/m68k-none.h gcc/config/m68k/m68k.h (mul/div/shift costs) -> gcc/config/m68k/m68k.c gcc/config/m68k/m68k.md (PIC call patch) -> gcc/config/m68k/m68k.c (m68k_output_pic_call) gcc/config/m68k/m68k-ti.h (PROMOTE_PROTOTYPES, ASM_FILE_START) -> gcc/config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES, TARGET_ASM_FILE_START, m68k_asm_file_start), gcc/config/m68k/m68k-protos.h (m68k_asm_file_start prototype) * Patches have been updated to follow the GCC 4.0 conventions where appropriate (ISO C90, renamed identifiers, ...). * Dropped attrib.c patch, as this looks already fixed (see PR 14587). * Dropped reversion of PR 2001 patch (bb-reorder.c, function.c, function.h, stmt.c) which was only applied to the 3.3 branch. * Dropped combine.c backport which is already in 4.0. * Dropped expr.c (is_zeros_p) patch, as this function is no more. * Dropped final.c (alter_subreg) paradoxical subreg patch, as this is already fixed. * Dropped PR 7871 patch to flow.c, as this bug is already fixed in 4.0. * Dropped flow.c (regno_uninitialized) patch, as this function is no more. * Dropped the libfuncs.h, optabs.c and expr.c patches which added *bf* libfuncs, as they are not needed any more thanks to genopinit.c and the new init_optab. * Dropped backport of PR 11823 patch (stmt.c) which is already in 4.0. * Dropped toplev.c patch to disable copy_loop_headers for -Os, as this is already done in 4.0 for the equivalent tree-ssa pass (and the old one is no more). * Dropped varasm.c (decode_rtx_const) patch, as this function is no more. * Dropped varasm.c (categorize_decl_for_section) flag_zero_initialized_in_bss patch, as this is already fixed in 4.0. * Dropped varasm.c (const_hash_1) patch which added an unneeded sanity check. * Dropped unroll.c patches, as the old unroller is no longer. * Dropped config/m68k/m68k.c patch to disable XFmode flavor setting (not needed anymore). * Dropped config/m68k/m68k.c backports (output_move_const_into_data_reg NOTB/NOTW/NEGW patch, output_andsi3 64-bit cross patch) which are already in 4.0. * Dropped obsolete config/m68k/m68k.h attribute support patch (already #if 0ed and moved to target macros a few GCC releases ago). * Dropped config/m68k/m68k-protos.h patch because the prototype for extended_address_operand is auto-generated anyway. * gcc/c-decl.c (struct c_parm, build_c_parm): Add asmspec. * gcc/config/m68k/m68k-protos.h (amigaos_init_cumulative_args, amigaos_function_arg_advance, amigaos_function_arg): Prototype here. * Dropped REAL_VALUE_TRUNCATE->real_value_truncate patches in gcc/fold-const.c and gcc/simplify-rtx.c, which use real_convert now. * gcc/config/smapbcd.h (real_convert, real_from_integer, real_isneg): Define. * gcc/real.c (real_compare): Implement. * gcc/real.h (real_compare): Declare. * config-guess: Always use i386 for mingw32. * gcc/builtins.c (expand_builtin, expand_builtin_*, fold_builtin_*, integer_valued_real_p, fold_trunc_transparent_mathfn, mathfn_built_in, expand_errno_check, builtin_mathfn_code): Disable math builtins. Disable mem and string builtins except the ones needed internally: memcpy, memset. Also disable ctype builtins and builtin_fork_or_exec. * gcc/builtins.def: Disable ctype builtins. * gcc/c-incpath.c (register_include_chains): Don't use environment variables. * gcc/convert.c (strip_float_extension): Don't use exact_real_truncate and real_value_truncate. * gcc/emit-rtl.c (init_emit_once): Use real_arithmetic instead of REAL_EXP and SET_REAL_EXP to compute 1/2 (dconsthalf). Don't initialize dconstpi and dconste. (dconstpi, dconste): Don't declare. * gcc/real.h (dconstpi, dconste): Likewise. * gcc/expr.c (emit_block_move_via_libcall, emit_block_move_libcall_fn, expand_assignment, clear_storage_via_libcall, clear_storage_libcall_fn): Use mem* instead of b*. Drop patches changing the sizes for b* functions to ushort, it's all size_t now. * gcc/fold-const.c (const_binop): Use REAL_VALUES_IDENTICAL instead of real_identical. * gcc/simplify-rtx.c (simplify_binary_operation): Likewise. * gcc/fold-const.c (fold_inf_compare): Don't use real_maxval. (fold_relational_const): Use REAL_VALUE_ISNANUINF instead of real_isnan. * gcc/function.h (function_arg_regno_p): Prototype here. * gcc/genmodes.c (emit_real_format_for_mode): Don't emit struct real_format. (emit_mode_adjustments): Don't emit code using REAL_MODE_FORMAT. * gcc/optabs.c (expand_unop): Don't try negating floating point values by flipping the sign bit. (expand_abs_nojump): Don't try computing abs by clearing the sign bit. (copysign): Disable. * gcc/output.h (assemble_real): Conditionalize prototype on REAL_WIDTH instead of REAL_VALUE_TYPE_SIZE. * gcc/simplify-rtx.c (simplify_unary_operation): Don't simplify SQRT, we don't have real_sqrt nor builtin_sqrt. * gcc/simplify-rtx.c (simplify_unary_operation, simplify_binary_operation, simplify_immed_subreg): Use SMAP BCD representation directly instead of real_to_target and real_from_target. * gcc/tree-ssa-ccp.c (ccp_fold_builtin): Do nothing. * gcc/tree-pretty-print.c (dump_generic_note): Use REAL_VALUE_TO_STRING instead of real_to_decimal. * gcc/varasm.c (output_constant_pool): Pass fnname to output_constant_pool1. (output_constant_pool1): Add fnname parameter. * gcc/config/m68k/m68k.c (m68k_output_pic_call): Use plain bsr now. Guaranteed to be PC-relative, and now (latest GNU as) optimized to a byte where possible. (m68k_output_mi_thunk): Use plain bra for labels under -mpcrel now. See above. * gcc/config/m68k/m68k.md (indirect_jump): Likewise. * gcc/config/m68k/m68k-ti.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Cast ROUNDED to unsigned to avoid format mismatches. * Revert (parts of larger patches, changelog entries pruned accordingly): 2003-08-04 Roger Sayle * c-common.c (built_in_attribute): Don't define/undefine DEF_FN_ATTR. (c_attrs_initialized): Delete. (c_common_nodes_and_builtins): Don't test c_attrs_initialized, always call c_init_attributes. (c_init_attributes): Don't define/undefine DEF_FN_ATTR. Don't set c_attrs_initialized when done. (c_common_insert_default_attributes): Delete. * c-common.h (c_common_insert_default_attributes): Delete prototype. * c-decl.c (c_insert_default_attributes): Delete. * c-tree.h (c_insert_default_attributes): Delete prototype. * attribs.c (decl_attributes): Don't call insert_default_attributes langhook. Update function description comment. * langhooks.h (lang_hooks): Remove insert_default_attributes field. * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Delete. * c-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Don't define. * system.h: Poison LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES macro. 2003-08-02 Roger Sayle * builtin-attrs.def: Remove DEF_FN_ATTR construct and the last few functions that define default attributes using it. * c-common.c (c_common_insert_default_attributes): Do nothing. * libcpp/files.c (ssize_t): Define for Win32.