diff options
Diffstat (limited to 'gcc/ChangeLog.apple-ppc')
-rw-r--r-- | gcc/ChangeLog.apple-ppc | 488 |
1 files changed, 488 insertions, 0 deletions
diff --git a/gcc/ChangeLog.apple-ppc b/gcc/ChangeLog.apple-ppc new file mode 100644 index 00000000000..6edd416854d --- /dev/null +++ b/gcc/ChangeLog.apple-ppc @@ -0,0 +1,488 @@ +2004-05-11 Devang Patel <dpatel@apple.com> + + * gcc.c (optiom_map): Remove -precomp-trustfile support. + * c-opts.c (c_common_handle_option): Remove -precomp-trustfile and + -header-mapfile support. + * common.opt: Same. + * c.opt: Remove -header-mapfile support. + +2004-05-11 Caroline Tice <ctice@apple.com> + + * rtl.c (NOTE_INSN_UNLIKELY_EXECUTED_CODE): Add this note back + in; it seems to have vanished during a merge. + +2004-05-10 Ziemowit Laski <zlaski@apple.com> + + * config/rs6000/altivec.h: Bring over from mainline. + * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define + __APPLE_ALTIVEC__ to indicate Apple syntax support. + +2004-05-10 Dale Johannesen <dalej@apple.com> + * config/darwin.c: ANSIfy syntax (eliminate warnings). + config/darwin-c.c: Ditto. + rs6000.c: Small cosmetic change in local code. + +2004-05-06 Caroline Tice <ctice@apple.com> + + * config/rs6000/rs6000.c (rs6000_override_options): Modify to + not turn on hot/cold partitioning in the presence of exception + handling. + +2004-05-06 Dale Johannesen <dalej@apple.com> + + * Merge from lno branch as of 04-24. Files changed: + lambda-code.c + lambda.h + tree-chrec.c + tree-chrec.h + tree-data-ref.c + tree-elim-check.c + tree-flow.h + tree-loop-linear.c + tree-scalar-evolution.c + tree-ssa-loop-im.c + tree-ssa-loop-ivopts.c + tree-ssa-loop-manip.c + tree-ssa-loop.c + tree-vectorizer.c + tree-vectorizer.h + +2004-05-04 Caroline Tice <ctice@apple.com> + + * config/rs6000/darwin.h (FP_SAVE_INLINE): Modify this to + always be 1 ("on") if the optimization level is -O3 or + higher. + +2004-04-30 Dale Johannesen <dalej@apple.com> + + * cse.c (cse_insn): Don't add REG_EQUAL note for + (CONST (MINUS (LABEL_REF) (0))). + +2004-04-30 Caroline Tice <ctice@apple.com> + + * varasm.c (unlikely_section_label): New global variable. + (unlikely_text_section): Change variable name from + 'unlikely_section_name' to 'unlikely_section_label', make it a global + variable, and move the code to generate its value to + assemble_start_function. + (assemble_start_function): Add code to generate *correct* value for + 'unlikely_section_label'. Now makes use of value from 'fnname' + parameter. + +2004-04-29 Devang Patel <dpatel@apple.com> + + gcc/loop-iv.c : Merge from lno-branch as of 2004:04:19 00:00. + gcc/tree-pass.h : Merge from lno-branch as of 2004:04:19 00:00. + gcc/tree-ssa-alias.c : Merge from lno-branch as of 2004:04:19 00:00. + gcc/tree-ssa-phiopt.c : Merge from lno-branch as of 2004:04:19 00:00. + +2004-04-29 Devang Patel <dpatel@apple.com> + + Merge lno-branch as of 2004:04:18 00:00 into + apple-ppc-branch. + + +2004-04-28 Fariborz Jahanian <fjahanian@apple.com> + + * function.c (assign_parms): Add 2nd iteration over vector args + if needed. + * calls.c (initialize_argument_information): Add new argument, + add 2nd iteration over vector arguments if needed. + * target-def.h (default_skip_vec_args, TARGET_SKIP_VEC_ARGS): New. + * target.h (skip_vec_args): Added to calls structure. + * targhooks.c (default_skip_vec_args): Default + definition. + * targhooks.h (default_skip_vec_args): Declaration. + * config/rs6000/rs6000.c (skip_vec_args): New definition. + +2004-04-27 Devang Patel <dpatel@apple.com> + + * config/darwin.h (LINK_COMMAND_SPEC): Use darwin_arch_ld_spec. + * config/rs6000/darwin.h (DARWIN_ARCH_ASM_SPEC): New. + (DARWIN_ARCH_SPEC): Rename as... + (DARWIN_ARCH_LD_SPEC): New name. + * config/i386/darwin.h (DARWIN_ARCH_ASM_SPEC): New. + (DARWIN_ARCH_SPEC): Rename as... + (DARWIN_ARCH_LD_SPEC): New name. + +2004-04-26 Andrew Pinski <pinskia@physics.uc.edu> + + * configure.ac: Add test for -Wno-long-double. + * Makefile.in (STRICT2_WARN): Add -Wno-long-double. + (alloc-pool.o-warn): Delete. + (ggc-page.o-warn): Delete. + * configure: Regenerate. + +2004-04-23 Dale Johannesen <dalej@apple.com> + + Radars 3480058, 3178986 + + * c-decl.c (merge_decls): Preserve duplicate_decl bit. + (merge_translation_unit_decls): Rewritten so -fno-common works. + * opts.c (decode_options): Turn on flag_no_common with -fast or -fastcp. + * tree.h (struct tree_decl): Add duplicate_decl bit and DECL_DUPLICATE_DECL. + * varasm.c (assemble_variable): Use it. + * config/rs6000/rs6000.c (rs6000_override_options): Remove + reorder-blocks-and-partition from -fast*. Enable align-natural with -fastcp. + * ../libstdc++-v3/include/std/std_fstream.h (basic_ifstream): Make + _M_filebuf 8-byte aligned. + (basic_ofstream): Ditto. + +2004-04-22 Devang Patel <dpatel@apple.com> + + Radar 3401402 and 3511029 + + Remove FAT Build support from gcc.c + + * gcc.c (struct arch_config_out): Remove. + (struct arch_out): Remove. + (num_arches, curent_arch, final_output): Remove. + (set_new_arch): Remove. + (%T support): Remove. + (%f support): Remove. + (%F support): Remove. + ('@' support in specs): Remove. + (ofile_merge_spec): Remove. + (exec_merge_spec): Remove. + (build_search_list): Remove fat builds readibility change. + (SWITCH_IGNORE_RESTORE): Remove. + (-arch support): Remove. + * config/darwin.h (LINK_COMMAND_SPEC): Remove -arch*. Add %(darwin_arch_spec). + * confiig/i386/darwin.h (ASM_SPEC): Add %(darwin_arch_spec). + (DARWIN_ARCH_SPEC): New. + * confiig/rs6000/darwin.h (ASM_SPEC): Add %(darwin_arch_spec). + (DARWIN_ARCH_SPEC): New. + * config/rs6000/rs6000.h (SUBTARGET_EXTRA_SPECS): Surround it with #ifndef. + * config/darwin-driver.c: New file. + +2004-04-20 Geoffrey Keating <geoffk@apple.com> + + * c-cppbuiltin.c (define__GNUC__): Better precision and more + error checking for code defining __APPLE_CC__. + * testsuite/gcc.apple/applecc.c: New. + +2004-04-15 Devang Patel <dpatel@apple.com> + + * config/i386.h: Add static tree nodes for vector types to + accomodate tree.h changes due to local Altivec patch. + +2004-04-15 Caroline Tice <ctice@apple.com> + + Fix various problems related to hot/cold partitioning (but not all of + them yet). + * bb-reorder.c (tm_p.h): Add new include statement. + (HAVE_return): Define HAVE_return appropriately if not already defined. + (find_rarely_executed_basic_blocks_and_crossing_edges): Modify to + only mark crossing edges if architecture supports named sections. + (fix_crossing_conditional_branches): Add test for HAVE_return before + calling gen_return. + (fix_crossing_unconditional_branches): Change VOIDmode to Pmode in call + to gen_rtl_LABEL_REF. + (fix_edges_for_rarely_executed_code): Only "fix" branches and add + REG_CROSSING_JUMP notes if the architecture supports named sections. + (reorder_basic_blocks): Change (* targetm.cannot_modify_jumps_p ()) + into (targetm.cannot_modify_jumps_p ()). Modify to only add + NOTE_INSN_UNLIKELY_EXECUTED_CODE notes if the architecture supports + named sections. + * cfglayout.c (fixup_reorder_chain): Modify code that adds + NOTE_INSN_UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes, to only + do so if architecture supports named sections. + * cfgrtl.c (target.h): Add new include statement. + (force_nonfallthru_and_redirect): Modify code that adds + NOTE_INSN_UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes, to only + do so if architecture supports named sections. + (commit_one_edge_insertion): Likewise. + * dbxout.c (dbxout_source_file): Fix bug, when writing out source + location debug information, to not change to the wrong section. + * defaults.h (NORMAL_TEXT_SECTION_NAME): Remove this definition. + (SECTION_FORMAT_STRING): Remove this definition. + * final.c (final_scan_insn): Remove unnecessary in_unlikely_text_section + test from if statement. Modify code that switches sections to not + do so if architecture does not support named sections. Cleaned up + if statement. + * ifcvt.c (if_convert): Modified test that disables optimization when + partitioning, to not disable it if the architecture does not support + named sections. + * passes.c (rest_of_compilation): Removed flag_exceptions test from + code that calls partitioning, as this is already taken care of + in decode_options. + * predict.c (choose_function_section): Modify to NOT choose hot or + cold sections for the function decl if we are doing partitioning + optimization (want to leave it up to the hot/cold partitioning + optimization, which is more fine-grained). + * varasm.c (text_section): Restore code that outputs assembly for + the text section to its original code. + (unlikely_text_section): Modify to always use named_section for + writing out section directive, remove unnecessary ifdef, and + use ASM_OUTPUT_LABEL for labelling the start of the + cold section. + (in_unlikely_text_section): Modify to deal correctly with being in + a named section. + (function_section): Restore code for generating section directives + to its original order. + * config/darwin.c (darwin_asm_named_section): Restore code that + generates section directive to its original state. + * config/i386/darwin.h (ASM_OUTPUT_ALIGN): Add in_unlikely_text_section () + to an if test that tests for in_text_section (). + * config/rs6000/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove definition. + (SECTION_FORMAT_STRING): Remove definition. + +2004-04-10 Paolo Bonzini <bonzini@gnu.org> + Richard Henderson <rth@redhat.com> + + PR target/14899 + + * c-common.c (vector_types_compatible_p): New function. + * c-typeck.c (comptypes): Recurse on vector types, + treat a non-opaque type as equivalent to an opaque type. + (convert_for_assignment): Use vector_types_compatible_p. + (digest_init): Use vector_types_compatible_p to check + validness of constant vector initializers; otherwise treat + them as scalars + * tree.c (make_or_reuse_type): New. + (build_common_tree_nodes): Use it. + * cp/call.c (standard_conversion): Likewise. + * cp/typeck.c (comptypes): Recurse on vector types, do not + treat a non-opaque type as equivalent to an opaque type. + (convert_for_assignment): Use vector_types_compatible_p. + +2004-04-13 Fariborz Jahanian <fjahanian@apple.com> + + * combine.c (combine_instructions): + Try insn with each REG_EQUAL note it links back to. + (unmentioned_reg_p_1, unmentioned_reg_p): New functions. + Brought from tree-ssa branch. + +2004-04-09 Dale Johannesen <dalej@apple.com> + + Roll in gcc-1552 enhancement for separate stack temps. + Turn on -fstrict-aliasing with -fast. + * function.c (assign_stack_local_with_alias): New function. + * rtl.h (assign_stack_local_with_alias): Declare it. + * config/rs6000/rs6000.c (rs6000_override_options): Turn on strict + aliasing with -fast. + * config/rs6000/rs6000.md (floatsidf2): Use + assign_stack_local_with_alias. + (floatunssidf2): Ditto. + (fix_truncdfsi2): Ditto. + +2004-04-07 Fariborz Jahanian <fjahanian@apple.com> + + Roll in Ziem Laski's Altivec front-end fixes to + support MOTOROLA's Altivec syntax. + * Makefile.in: Add c-lex.o dependencies. + * c-common.c (vector_constructor_from_expr): New function. + * c-common.h (vector_constructor_from_expr): Add declaration. + * c-lex.c: include target.h, cpphash.h. Add lexer support + for new syntax. + (c_lex_prepend): new function. (c_lex_peek): new function. + * c-pragma.h: add (c_lex_peek, c_lex_prepend) declarations. + +2004-04-06 Dale Johannesen <dalej@apple.com> + + Roll in Zdenek Dvorak's rewrite of doloop optimization. + * Makefile.in: add loop-doloop.*, remove doloop.* + * loop-doloop.c: New. + * doloop.c: Remove. + * cfgloop.h: Add new function declarations. + * cfgloopanal.c: Add get_loop_level. + * loop-iv.c: Recognize unexecuted loops. + * loop.c: Remove call to old doloop optimization. + * loop.h: Remove LOOP_BCT. + * passes.c: Ditto. Call new doloop optimization. + * config/rs6000/rs6000-protos.h: Remove duplicate declarations. + * config/rs6000/rs6000.c: Cosmetic cleanups. Add -freorder-blocks + to -fast. + +2004-04-02 Ziemowit Laski <zlaski@apple.com> + + Remove APPLE LOCAL AltiVec code whenever possible; merge in + AltiVec/VECTOR_TYPE-handling code from mainline. + +2004-04-01 Fariborz Jahanian <fjahanian@apple.com> + + * Makefile.in: add $(PARAMS_H) $(TM_P_H) dependencies + for sched-rgn.o. + * params.def: add definitions for + max-sched-region-blocks and max-sched-region-insns. + * sched-rgn.c (too_large): change return type to bool. + Use the parametrized values of max-sched-region-blocks, + max-sched-region-insns for computing upper limits for + interblock scheduling. + * doc/invoke.texi: Document max-sched-region-blocks, + max-sched-region-insns. + +2004-04-01 Caroline Tice <ctice@apple.com> + + * basic-block.h (struct edge_def): Add new field, crossing_edge. + (struct basic_block_def): Add new field, partition. + (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION): New constant macro + definitions. + (partition_hot_cold_basic_blocks): Add extern function + declaration. + * bb-reorder.c (function.h, obstack.h, expr.h, regs.h): Add four new + include statements. + (N_ROUNDS): Increase the maximum number of rounds by 1. + (branch_threshold): Add array value for new round. + (exec_threshold): Add array value for new round. + (push_to_next_round_p): New function. + (add_unlikely_executed_notes): New function. + (find_rarely_executed_basic_blocks_and_crossing_edges): New function. + (mark_bb_for_unlikely_executed_section): New function. + (add_labels_and_missing_jumps): New function. + (add_reg_crossing_jump_notes): New function. + (fix_up_fall_thru_edges): New function. + (find_jump_block): New function. + (fix_crossing_conditional_branches): New function. + (fix_crossing_unconditional_branches): New function. + (fix_edges_for_rarely_executed_code): New function. + (partition_hot_cold_basic_blocks): New function. + (find_traces): Add an extra round for partitioning hot/cold + basic blocks. + (find_traces_1_round): Add a parameter. Modify to push all cold blocks, + and only cold blocks, into the last (extra) round of collecting traces. + (better_edge_p): Add a parameter. Modify to favor non-crossing edges + over crossing edges. + (bb_to_key): Add code to correctly identify cold blocks when + doing partitioning. + (connect_traces): Modify to connect all the non-cold traces first, then + go back and connect up all the cold traces. + (reorder_basic_blocks): Add call to add_unlikely_executed_notes. + * cfg.c (entry_exit_blocks): Add initialization for partition field in + entry and exit blocks. + * cfgbuild.c (make_edges): Update current_function_has_computed_jump + if we are doing hot/cold partitioning. + * cfgcleanup.c (cfglayout.h): Add new include statement. + (try_simplify_condjump): Modify to not attempt on blocks with jumps + that cross section boundaries. + (try_forward_edges): Likewise. + (merge_blocks_move_predecessor_nojumps): Likewise. + (merge_blocks_move_successor_nojumps): Likewise. + (merge_blocks_move): Likewise. + (try_crossjump_to_edge): Modify to not attempt after we have done + the block partitioning. + (try_crossjump_bb): Modify to not attempt on blocks with jumps that + cross section boundaries. + (try_optimize_cfg): Likewise. + * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect + jumps that cross section boundaries. + * cfglayout.c (flags.h): Add new include statement. + (update_unlikely_executed_notes): New function. + (fixup_reorder_chain): Add code so when a new jumping basic block is + added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are + updated appropriately. + (duplicate_insn_chain): Add code to duplicate the new NOTE insn + introduced by this optimization. + * cfglayout.h (scan_ahead_for_unlikely_executed_note): Add new + extern function declaration. + * cfgrtl.c (can_delete_note_p): Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to + list of notes that can be deleted. + (create_basic_block_structure): Add initialization for partition field. + (rtl_can_merge_blocks): Modify to test blocks for jumps that cross + section boundaries. + (try_redirect_by_replacing_jump): Modify to not attempt on jumps that + cross section boundaries. + (commit_one_edge_insertion): Add code so newly created basic block + ends up in correct (hot or cold) section. Modify to disallow + insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes. + (rtl_verify_flow_info_1): Add code to verify that no fall_thru edge + crosses section boundaries. + (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that + cross section boundaries. + (force_nonfallthru_and_redirect): Modify to make sure new basic block + ends up in correct section, with correct notes attached. + * common.opt (freorder-blocks-and-partition): Add new flag for this + optimization. + * dbxout.c (dbx_function_end): Add code to make sure scope labels at + the end of functions are written into the correct (hot or cold) + section. + (dbx_source_file): Add code so writing debug file information + doesn't incorrectly change sections. + * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use + in partitioning hot/cold basic blocks into separate sections. + (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold + section partitioning. + (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not + conditional branches can span all of memory. + (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not + unconditional branches can span all of memory. + * final.c (scan_ahead_for_unlikely_executed_note): New function. + (final_scan_insn): Add code to check for NOTE instruction indicating + whether basic block belongs in hot or cold section, and to make sure + the current basic block is being written to the appropriate section. + Also added code to ensure that jump table basic blocks end up in the + correct section. + * flags.h (flag_reorder_blocks_and_partition): New flag. + * ifcvt.c (find_if_case_1): Modify to not attempt if conversion if + one of the branches has a jump that crosses between sections. + (find_if_case_2): Likewise. + (ifcvt): Modify to not attempt to mark loop exit edges after + hot/cold partitioning has occurred. + * opts.c (decode_options): Code to handle new flag, + flag_reorder_blocks_and_partition; also to turn it off if + flag_exceptions is on. + (common_handle_option): Code to handle new flag, + flag_reorder_blocks_and_partition. + * output.h (unlikely_text_section): New extern function declaration. + (in_unlikely_text_section): New extern function declaration. + * passes.c (rest_of_handle_stack_regs): Add + flag_reorder_blocks_and_partition as an 'or' condition for calling + reorder_basic_blocks. + (rest_of_handle_reorder_blocks): Add flag_reorder_blocks_and_partition + as an 'or' condition for calling reorder_basic_blocks. + (rest_of_compilation): Add call to partition_hot_cold_basic_blocks. + * print-rtl.c (print_rtx): Add code for handling new note, + NOTE_INSN_UNLIKELY_EXECUTED_CODE + * rtl.c (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below). + (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that + cross between section boundaries. + * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note instruction, + indicating the basic block containing it belongs in the cold section. + (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross + between hot and cold sections. + * toplev.c (flag_reorder_blocks_and_partition): Add code to + initialize this flag, and to tie it to the command-line option + freorder-blocks-and-partition. + * varasm.c (cfglayout.h): Add new include statement. + (unlikely_section_label_printed): New global variable, used for + determining when to output section name labels for cold sections. + (in_section): Add in_unlikely_executed_text to enum data structure. + (text_section): Modify code to use SECTION_FORMAT_STRING and + NORMAL_TEXT_SECTION_NAME macros. + (unlikely_text_section): New function. + (in_unlikely_text_section): New function. + (function_section): Add code to make sure beginning of function is + written into correct section (hot or cold). + (assemble_start_function): Add code to make sure stuff is written to + the correct section. + (assemble_zeros): Add in_unlikely_text_section as an 'or' condition + to an if statement that was checking 'in_text_section'. + (assemble_variable): Add 'in_unlikely_text_section' as an 'or' + condition to an if statement that was checking 'in_text_section'. + (default_section_type_flags_1): Add check: if in cold section + flags = SECTION_CODE. + * config/darwin.c (darwin_asm_named_section): Modify to use + SECTION_FORMAT_STRING if we are partitioning hot/cold blocks. + * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro + specifically for the i386. + (HAS_LONG_UNCOND_BRANCH): Defined this macro specifically for the i386. + * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change + text string to something more informative. + (NORMAL_TEXT_SECTION_NAME): Add new definition. + (SECTION_FORMAT_STRING): Add new definition. + * config/rs6000/rs6000.c (rs6000_assemble_integer): Add + '!in_unlikely_text_section' as an 'and' condition to an if statement + that was already checking '!in_text_section'. + (rs6000_override_options): Turn on flag_reorder_blocks_and_partition + with "-fast". + * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME, + UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make + sure these are properly defined for linux on ppc. + * doc/invoke.texi (freorder-blocks-and-partition): Add documentation + for this new flag. + * doc/rtl.texi (REG_CROSSING_JUMP): Add documentation for new + reg_note. + * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING, + HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for + these new macros. + |