aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2001-07-31loop.c (check_dbra_loop): Use single_set to compute jump_label.Geoffrey Keating2-2/+9
* loop.c (check_dbra_loop): Use single_set to compute jump_label. From-SVN: r44517
2001-07-31PowerPC reorg and support for powerpc64-*-linux*.Daniel Berlin12-873/+1434
2001-07-31 Daniel Berlin <dan@cgsoftware.com> PowerPC reorg and support for powerpc64-*-linux*. Also fixes emitting of constants on 32 bit and 64 bit platforms. * config.gcc: powerpc64-*-linux* is a new target. Things that needed aix.h now also include xcoff.h * config/rs6000/rs6000.h: Split XCOFF specific stuff into xcoff.h. Move AIX specific stuff into aix.h. (ASM_LONG): Use DOUBLE_INT_ASM_OP if we are on a 64 bit target. (ASM_OUTPUT_DOUBLE_INT): Ditto. (TARGET_AIX): Renamed to TARGET_XCOFF, since the AIX ABI is used with more than just XCOFF now. (SET_ASM_OP): Remove, now defined where needed. (FUNCTION_PROLOGUE): New macro definition. (FUNCTION_EPILOGUE): New macro definition. (CONST_OK_FOR_LETTER_P): Change N to require that value is positive, too. (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): New macro definition. (PREDICATE_CODES): Added exact_log2_cint_operand, reg_or_add_cint64_operand, reg_or_sub_cint64_operand. * config/rs6000/rs6000.c: #ifdef XCOFF debugging info stuff on XCOFF_DEBUGGING_INFO. Use DOUBLE_INT_ASM_OP where approriate. (rs6000_emit_set_long_const): New function. (rs6000_emit_set_const): New function. (reg_or_sub_cint64_operand): New function. (reg_or_add_cint64_operand): New function. (exact_log2_cint_operand): New function. * config/rs6000/rs6000.md: Fix emitting of constants. Fix patterns that were AIX ABI specific, but depended on !TARGET_ELF (instead of DEFAULT_ABI == ABI_AIX). * config/rs6000/xcoff.h: New file. * config/rs6000/linux64.h: New file. * config/rs6000/darwin.h: Copy needed AIX alignment definitions. From-SVN: r44516
2001-07-31The 3.0 ABI no longer has vbase pointer fields.Nathan Sidwell6-78/+23
cp: The 3.0 ABI no longer has vbase pointer fields. * cp-tree.h (VBASE_NAME, VBASE_NAME_FORMAT, VBASE_NAME_P, FORMAT_VBASE_NAME): Remove. * method.c (do_build_copy_constructor): Adjust. (do_build_assign_ref): Adjust. * search.c (lookup_field_r): Adjust. * typeck.c (build_component_ref): Adjust. The 3.0 ABI always has a vtable pointer at the start of every polymorphic class. * rtti.c (build_headof_sub): Remove. (build_headof): Adjust. (get_tinfo_decl_dynamic): No need to check flag_rtti here. Adjust. (create_real_tinfo_var): Explain why we need a hidden name. From-SVN: r44515
2001-07-31* function.c (pad_below): Revert 2001-07-26 patch.Graham Stott2-4/+5
From-SVN: r44514
2001-07-31Tue Jul 31 15:37:35 CEST 2001 Jan Hubicka <jh@suse.cz>Jan Hubicka2-0/+6
* reg-stack (convert_regs_1): Fix best edge condition. From-SVN: r44513
2001-07-31jump.c (duplicate_loop_exit_test): Better test for jumps entering the loop; ↵Jan Hubicka2-3/+17
create loop pre_header. * jump.c (duplicate_loop_exit_test): Better test for jumps entering the loop; create loop pre_header. From-SVN: r44512
2001-07-31re PR c++/3631 (another linking problem with virtual derivation)Nathan Sidwell4-4/+59
cp: PR c++/3631 * class.c (update_vtable_entry_for_fn): The fixed adjustment of a virtual thunk should be from declaring base. testsuite: * g++.dg/abi/vthunk1.C: New test. From-SVN: r44509
2001-07-31class.c (dfs_ctor_vtable_bases_queue_p): Always walk into the shared virtual ↵Nathan Sidwell4-11/+95
base, so preserving inheritance graph order. cp: * class.c (dfs_ctor_vtable_bases_queue_p): Always walk into the shared virtual base, so preserving inheritance graph order. testsuite: * g++.dg/abi/vbase8-22.C: New test. From-SVN: r44506
2001-07-31Daily bump.GCC Administrator2-2/+2
From-SVN: r44505
2001-07-31* gcc.dg/cpp/macro8.c: New tests.Neil Booth2-0/+33
From-SVN: r44502
2001-07-31install.texi: Add s390 s390x as new targets.Hartmut Penner4-0/+129
*doc/install.texi: Add s390 s390x as new targets. *doc/invoke.texi: Add documantation of S/390 and zSeries target options. * doc/md.texi: Add documantation of S/390 and zSeries constraints. From-SVN: r44501
2001-07-30m68k.md: Replace all general_operand with nonimmediate_operand for all ↵Roman Zippel3-303/+309
destinations. * config/m68k/m68k.md: Replace all general_operand with nonimmediate_operand for all destinations. * config/m68k/m68k.c (not_sp_operand): Likewise. From-SVN: r44499
2001-07-31* flow.c (merge_blocks): Return 1 if an extra jump is inserted.John Wehle2-0/+6
From-SVN: r44498
2001-07-30ia64.h (DEBUG_RANGES_SECTION): New.Richard Henderson3-0/+7
* config/ia64/ia64.h (DEBUG_RANGES_SECTION): New. * config/mips/iris6.h (DEBUG_RANGES_SECTION): New. From-SVN: r44496
2001-07-30m68k.h (TARGET_SWITCHES/TARGET_OPTIONS): Add missing doc stringsRoman Zippel4-52/+97
* config/m68k/m68k.h (TARGET_SWITCHES/TARGET_OPTIONS): Add missing doc strings * config/m68k/linux-aout.h (SUBTARGET_SWITCHES): Likewise * config/m68k/linux.h (SUBTARGET_SWITCHES): Likewise From-SVN: r44489
2001-07-30i386.c (ix86_output_main_function_alignment_hack): New function.Jan Hubicka8-230/+382
* i386.c (ix86_output_main_function_alignment_hack): New function. (TARGET_ASM_FUNCTION_PROLOGUE): Default to it. * flow.c (mark_dfs_back_edges): Move from loop_p ; mark back edges by EDGE_DFS_BACK flag. (dump_edge_info): Add dfs_back flag. * basic-block.h (EDGE_DFS_BACK): New constant. (mark_dfs_back_edges): Declare. * alias.c (loop_p): Remove. (mark_constant_function): Use mark_dfs_back_edges. * reg-stack.c (block_info_def): Add predecesors counter and stack_out. (reg_to_stack): Call mark_dfs_back_edges; count the predecesors. (compensate_edge): Break out from ... (convert_regs_1): ... here; do smart choosing of stack_out to copy. (convert_regs_2): Set block_done once block is really done; Do updating of the predecesors counts. * toplev.c (rest_of_compilation): Recompute block_for_insn before post-reload cfg_cleanup. * function.c (thread_prologue_epilogue_insns): Call set_block_for_new_insns when emitting prologue directly. From-SVN: r44486
2001-07-30Add forgotten ChangeLog entry.Andreas Jaeger1-12/+29
From-SVN: r44485
2001-07-30flow.c (mark_set_1): Use REG_FREQ_FROM_BB.Jan Hubicka6-20/+45
* flow.c (mark_set_1): Use REG_FREQ_FROM_BB. (attempt_auto_inc): LIkewise. (mark_used_reg): Likewise. (try_pre_increment_1): Likewise. * regclass.c (regclass): Likewise. * global.c (allocno_compare): Update comment; change scaling factor. * local-alloc.c (QTY_CMP_PRI): Likewise. * regs.h (REG_FREQ_FROM_BB): New. (REG_FREQ_MAX): Likewise. From-SVN: r44483
2001-07-30linux.h (CPLUSPLUS_CPP_SPEC): Add -D_GNU_SOURCE.H.J. Lu2-0/+12
2001-07-30 H.J. Lu <hjl@gnu.org> * config/mips/linux.h (CPLUSPLUS_CPP_SPEC): Add -D_GNU_SOURCE. From-SVN: r44480
2001-07-30jump.c: Add prototype for mark_modified_reg.Andreas Jaeger7-64/+77
* jump.c: Add prototype for mark_modified_reg. * cse.c (set_live_p): Add unused attribute. * gcov.c (calculate_branch_probs): Use gcov_type to avoid overflow. (scan_for_source_files): Use long for count to avoid overflow. (output_data): Likewise. (output_data): Don't use string concatatenation to silence gcc -traditional. * predict.c: Fix typos and grammar. * gcse.c (insert_insn_end_bb): Remove unused variables. For cp: * decl2.c: Remove unused var global_temp_name_counter. From-SVN: r44479
2001-07-30linux.h (ASM_DECLARE_FUNCTION_NAME): Defined.H.J. Lu2-0/+39
2001-07-30 H.J. Lu (hjl@gnu.org) * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Defined. (ASM_DECLARE_FUNCTION_SIZE): Likewise. (FUNCTION_NAME_ALREADY_DECLARED): Likewise. From-SVN: r44476
2001-07-30Skip -mthumb as well as -mthumb-interwork when -mcpu=arm7 is specified.Nick Clifton2-1/+9
From-SVN: r44475
2001-07-30predict.def (noreturn, [...]): Mark as first match heuristics.Jan Hubicka2-3/+11
* predict.def (noreturn, loop branch, loop exit): Mark as first match heuristics. From-SVN: r44473
2001-07-30* combine.c (try_combine): Avoid barrier after noop jumpsJan Hubicka2-4/+11
From-SVN: r44470
2001-07-30Daily bump.GCC Administrator2-2/+2
From-SVN: r44468
2001-07-29cpphash.h (struct cpp_reader): Remove import_warning.Neil Booth5-39/+32
* cpphash.h (struct cpp_reader): Remove import_warning. * cpplib.c (skip_rest_of_line): Don't bother turning off macro expansion. (parse_include): Move include handling to... (do_include_common): ... here. Move import warning from... (do_import): ... here. (do_pragma_poison): Don't do a callback for poison identifiers. * cpplib.h (struct cpp_callbacks): Don't do poison callbacks. * cppmain.c (setup_callbacks): Similarly. From-SVN: r44466
2001-07-29rtlanal.c (parms_set, [...]): Break out from...; handle multiple sets.Jan Hubicka5-76/+84
* rtlanal.c (parms_set, find_first_parameter_load): Break out from...; handle multiple sets. * except.c (sjlj_mark_call_sites): .... here. * gcse.c (insert_insn_end_bb): Use find_first_parameter_load. From-SVN: r44465
2001-07-29Suggested by Richard Henderson and Richard Kenner:Jan Hubicka4-12/+27
* combine.c (recog_for_combine): Use the fake recog only if instruction does not match. * rtl.h (NOOP_MOVE_INSN_CODE): New. * rtlanal.c (noop_move_p): Always return 1 for NOOP_MOVE_INSN_CODE. * combine.c (try_combine): Discover noop jump as direct jump. From-SVN: r44464
2001-07-29df.c (df_rd_global_compute): Add successors to worklist, not current item.Daniel Berlin2-2/+8
2001-07-29 Daniel Berlin <dan@cgsoftware.com> * df.c (df_rd_global_compute): Add successors to worklist, not current item. (df_ru_global_compute): Ditto for preds. From-SVN: r44461
2001-07-29[multiple changes]Daniel Berlin4-1/+52
2001-07-27 Daniel Berlin <dan@cgsoftware.com> * regclass.c (reg_scan_mark_refs): Increment REG_N_REFS when we increment REG_N_SETS. 2001-07-26 Daniel Berlin <dan@cgsoftware.com> * sbitmap.h: New prototype for sbitmap_a_xor_b. * sbitmap.c (sbitmap_a_xor_b): New function. #ifdef the basic block stuff on the define IN_GCC. From-SVN: r44460
2001-07-29cppexp.c (parse_defined): Always record the macro name.Neil Booth8-57/+68
* cppexp.c (parse_defined): Always record the macro name. (lex): Don't worry about identifiers, or special-case CPP_NOT here. (_cpp_parse_expr): Figure out at the end of the routine whether we saw a valid !defined() expression. * cppfiles.c (stack_include_file): Update for mi_valid. (_cpp_pop_file_buffer): Similarly. * cpplex.c (_cpp_lex_token): Similarly. * cpphash.h (enum mi_state, enum mi_ind, mi_state, mi_if_not_defined, mi_lexed): Remove. (mi_valid): New. * cpplib.c (do_if): Simplify. (do_endif, push_conditional, _cpp_handle_directive): Update for renaming of mi_state to mi_valid. * cpp.texi: Add index entries for digraphs, and add comment that C++ refers to them as alternative tokens. From-SVN: r44459
2001-07-29basic-block.h (CLEANUP_PRE_LOOP): New.Jan Hubicka7-16/+58
* basic-block.h (CLEANUP_PRE_LOOP): New. * except.c (finish_eh_generation): Update call of cleanup_cfg. * sibcall.c (optimize_sibling_calls): Likewise. * toplev.c (rest_of_compilation): Likewise. * flow.c (try_forward_edges): Take argument MODE; do not forward over loop pre-headers if CLEANUP_PRE_LOOP. (try_optimize_cfg): Update call of try_forward_edges. * (validate_replace_rtx_1): Fix simplification of MINUS. From-SVN: r44458
2001-07-29re PR preprocessor/3669 (-M -g3 outputs macros as well as dependency info)Neil Booth2-4/+12
PR preprocessor/3669 * cppinit.c (init_dependency_output): Turn off dump requests if sending dependencies to stdout. From-SVN: r44457
2001-07-29Daily bump.GCC Administrator2-2/+2
From-SVN: r44452
2001-07-28flow.c (life_analysis): Elide PROP_ALLOW_CFG_CHANGES if not optimizing.Richard Henderson2-1/+6
* flow.c (life_analysis): Elide PROP_ALLOW_CFG_CHANGES if not optimizing. From-SVN: r44451
2001-07-28* config/i386/sco5.h (DWARF2_DEBUGGING_INFO): Define.Golubev I. N.2-0/+6
From-SVN: r44447
2001-07-29h8300.h (ENCODE_SECTION_INFO): Check to see if DECL is VAR_DECL first to ↵Kazu Hirata2-4/+9
prevent an ICE. * config/h8300/h8300.h (ENCODE_SECTION_INFO): Check to see if DECL is VAR_DECL first to prevent an ICE. From-SVN: r44446
2001-07-28varasm.c (immed_real_const_1): Don't elide special cases for nested functions.Richard Henderson2-7/+20
* varasm.c (immed_real_const_1): Don't elide special cases for nested functions. (clear_const_double_mem): Clear const_tiny_rtx too. From-SVN: r44445
2001-07-28dwarf2out.c (dw_val_class_offset): New.Richard Henderson5-54/+383
* dwarf2out.c (dw_val_class_offset): New. (struct dw_ranges_struct, dw_ranges_ref): New. (ranges_table, ranges_table_allocated): New. (ranges_table_in_use, RANGES_TABLE_INCREMENT): New. (add_AT_offset, add_ranges, output_ranges): New. (print_die, output_die): Handle dw_val_class_offset. (attr_checksum, size_of_die, value_format): Likewise. (gen_lexical_block_die): Handle non-contiguous blocks. (gen_block_die): Likewise. (dwarf2out_finish): Add a DW_AT_entry_pc to the compilation unit if needed. Dump the ranges table. * final.c (final_start_function): Remove unnecessary notes and rebuild the block tree before numbering the blocks. * function.c (reorder_blocks_0): Walk the existing block tree to unmark all blocks. (reorder_blocks_1): Create block fragments when duplicate block notes are seen. (reorder_fix_fragments): New. (reorder_blocks): Call it. * tree.h (BLOCK_FRAGMENT_ORIGIN, BLOCK_FRAGMENT_CHAIN): New. From-SVN: r44444
2001-07-28* method.c (pending_inlines): Remove.Richard Henderson2-4/+4
From-SVN: r44443
2001-07-28* emit-rtl.c (adjust_address): Make a copy of the memory address.Richard Henderson2-0/+7
From-SVN: r44442
2001-07-28flow.c (add_to_mem_set_list): New function.Richard Henderson2-70/+76
* flow.c (add_to_mem_set_list): New function. (init_propagate_block_info): Use it. (mark_set_1): Likewise. (insn_dead_p): Canonicalize memory address for dead store comparison. Allow wider mode stores to kill narrower mode stores. (invalidate_mems_from_autoinc): Use invalidate_mems_from_set. (invalidate_mems_from_set): Don't handle MEMs. From-SVN: r44441
2001-07-29* config/h8300/h8300.h: Fix formatting.Kazu Hirata2-6/+10
From-SVN: r44440
2001-07-28basic-block.h (EDGE_FREQUENCY): New macro.Jan Hubicka8-102/+190
* basic-block.h (EDGE_FREQUENCY): New macro. * bb-reorder (fixup_reorder_chain): Set counts and frequencies for new BB/edges. * flow.c (find_sub_basic_blocks): Likewise. (try_crossjump_to_edge): Likewise; use EDGE_FREQUENCY (redirect_edge_and_branch): Use EDGE_FREQUENCY. * predict.c (DEF_PREDICTOR): New argument FLAGS. (HITRATE): New macro. (PRED_FLAG_FIRST_MATCH): New constant. (predictor_info): New field flgags. (combine_predictions_for_insn): Use DS theory to combine probabilities; set the edge probabilities when finished. (estimate_probability): Avoid duplicated matches of LOOP_BRANCH heuristics for nested loops; update comment. * predict.def: Add flags for each prediction, set probabilities according to B&L paper. * predict.h (DEF_PREDICTOR): New argument FLAGS. * profile.c (compute_branch_probabilities): Cleanup way the edge probabilities are computed and REG_BR_PROB notes are dropped; if values does not match, emit error. (init_branch_prob): Do error instead of warning when profile driven feedback is missing or corrupt. From-SVN: r44439
2001-07-28Daily bump.GCC Administrator2-2/+2
From-SVN: r44436
2001-07-27ifcvt.c (noce_get_alt_condition): If the condition is a compare against a ↵DJ Delorie2-1/+115
constant... * ifcvt.c (noce_get_alt_condition): If the condition is a compare against a constant, try to adjust the compare to have the desired constant in it so that min/max optimizations happen more often. From-SVN: r44435
2001-07-27flow.c (last_loop_beg_note): New function.Jan Hubicka3-25/+72
* flow.c (last_loop_beg_note): New function. (redirect_edge_and_branch): Use it. (split_edge): Likewise. * alias.c (loop_p): Avoid uninitialized memory access. * flow.c (try_forward_edges): Avoid accessing freed memory. * flow.c (backward_edge_of_syntactic_loop_p): Avoid uninitialized variable access. From-SVN: r44429
2001-07-27linux.h (CPP_DEFAULT_CPU_SPEC): New.Andrew Haley2-11/+41
2001-07-26 Andrew Haley <aph@redhat.com> Joern Rennecke <amylaar@redhat.com> * config/sh/linux.h (CPP_DEFAULT_CPU_SPEC): New. (SUBTARGET_CPP_ENDIAN_SPEC): New. (SUBTARGET_CPP_SPEC): New. (CPP_SPEC): Remove. * config/sh/sh.h (SUBTARGET_CPP_ENDIAN_SPEC): New. (SUBTARGET_CPP_PTR_SPEC): New. (CPP_DEFAULT_CPU_SPEC): New. (EXTRA_SPECS): Add SUBTARGET_CPP_ENDIAN_SPEC, SUBTARGET_CPP_PTR_SPEC, and CPP_DEFAULT_CPU_SPEC. (CPP_SPEC): Break out parts into SUBTARGET_CPP_ENDIAN_SPEC, SUBTARGET_CPP_PTR_SPEC, and CPP_DEFAULT_CPU_SPEC. (SUBTARGET_CPP_SPEC): Define as an empty string. From-SVN: r44428
2001-07-27class.c (mark_primary_virtual_base): Don't adjust base offsets here.Nathan Sidwell4-11/+106
cp: * class.c (mark_primary_virtual_base): Don't adjust base offsets here. (dfs_unshared_virtual_bases): Adjust them here. (mark_primary_bases): Explain why we adjust at the end. testsuite: * g++.dg/abi/vbase8-21.C: New test. From-SVN: r44425
2001-07-27class.c (finish_struct_1): When copying the primary base's VFIELD, make sure ↵Nathan Sidwell4-10/+100
we find it is at offset zero. cp: * class.c (finish_struct_1): When copying the primary base's VFIELD, make sure we find it is at offset zero. testsuite: * g++.dg/abi/vbase8-10.C: New test. From-SVN: r44421