aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2001-09-11Fix 2 bugs in last patch.Jim Wilson2-2/+8
* alias.c (clear_reg_alias_info): Only handle pseudo registers. From-SVN: r45553
2001-09-11* parse.h (ctxp_for_generation): Mark extern.Richard Henderson2-1/+5
From-SVN: r45552
2001-09-11* parse.c (finput): Mark extern.Richard Henderson2-1/+5
From-SVN: r45551
2001-09-11builtins.c (c_strlen): Treat an offset too large for a HOST_WIDE_INT as out ↵Matt Kraai2-1/+8
of range. * builtins.c (c_strlen): Treat an offset too large for a HOST_WIDE_INT as out of range. From-SVN: r45550
2001-09-11basic-block.h (EDGE_CRITICAL): Remove; renumber other flags.Jan Hubicka10-431/+292
* basic-block.h (EDGE_CRITICAL): Remove; renumber other flags. (EDGE_CRITICAL_P): New predicate. * cfg.c (force_nonfallthru_and_redirect, split_edge): Kill EDGE_CRITICAL handling. (insert_insn_on_edge): Use EDGE_CRITICAL_P. (dump_edge_info): Remove "crit". * cfganal.c (mark_critical_edges): Kill. * cfgbuild.c (find_basic_blocks): Remove mark_critical_edges call. * cfgcleanup.c (cleanup_cfg): Likewise. * profile.c (instrument_edges): Use EDGE_CRITICAL_P. (find_spanning_tree): Likewise. * reg-stack.c (convert_regs_1): Likewise. * ssa.c (mark_regs_equivalent_over_bad_edges): Likewise. * basic-block.h (create_basic_block_structure): New. (create_basic_block): Update prototype. (force_nonfallthru): New. * bb-reorder.c (fixup_reorder_chain): Fixup use force_nonfallthru. * cfg.c (create_basic_block_structure): Rename from create_basic_block; handle updating of block_for_insn, creating of empty BBs and BBs at the end of INSN chain. (create_basic_block): New function. (split_block): Use create_basic_block. (force_nonfallthru_and_redirect): Break out from ...; cleanup (redirect_edge_and_branch_force): ... here. (force_nonfallthru): New. (split_edge): Rewrite to use force_nonfallthru and create_block. * cfgbuild.c (find_basic_blocks_1): Use create_basic_block_structure. (find_basic_blocks): Free basic_block_for_insn. * cfgcleanup.c (merge_blocks): Use force_nonfallthru. * cfg.c: Fix formating. * cfgcleanup.c: Fix formating. (merge_blocks, tail_recursion_label_p): Return bool. (merge_blocks_move_predecessor_nojumps, merge_blocks_move_successor_nojumps): Return void. From-SVN: r45549
2001-09-11configure.in: Check whether assembler supports section merging.Jakub Jelinek47-118/+489
* configure.in: Check whether assembler supports section merging. * config.in: Rebuilt. * configure: Rebuilt. * varasm.c (variable_section, output_constant_pool): Pass alignment to SELECT_SECTION and SELECT_RTX_SECTION. (mergeable_string_section): New. (mergeable_constant_section): New. (default_elf_asm_named_section): Output SECTION_MERGE and SECTION_STRINGS flags plus SECTION_ENTSIZE entity size. * output.h (mergeable_string_section): New. (mergeable_constant_section): New. (SECTION_MERGE, SECTION_STRINGS, SECTION_ENTSIZE): Define. * toplev.c (flag_merge_constants): New. (f_options): Add -fmerge-constants and -fmerge-all-constants options. (toplev_main): Default to -fno-merge-constants if not optimizing. * flags.h (flag_merge_constants): Add extern. * invoke.texi (-fmerge-constants, -fmerge-all-constants): Document. * tm.texi (SELECT_SECTION, SELECT_RTX_SECTION): Document added third argument. * config/elfos.h (ASM_SECTION_START_OP, ASM_OUTPUT_SECTION_START): Define if assembler has working .subsection -1 support. (SELECT_RTX_SECTION, SELECT_SECTION): Add third macro argument. Put constant into special SHF_MERGE sections if the linker should attempt to merge duplicates. * config/ia64/sysv4.h (SELECT_RTX_SECTION, SELECT_SECTION): Add third macro argument. Put constant into special SHF_MERGE sections if the linker should attempt to merge duplicates. * config/alpha/elf.h: Likewise. (ASM_SECTION_START_OP, ASM_OUTPUT_SECTION_START): Define if assembler has working .subsection -1 support. * config/nextstep.h: Add third argument to SELECT_RTX_SECTION and SELECT_SECTION. * config/svr3.h: Likewise. * config/darwin.h: Likewise. * config/arm/aof.h: Likewise. * config/arm/linux-elf.h: Likewise. * config/avr/avr.h: Likewise. * config/c4x/c4x.h: Likewise. * config/d30v/d30v.h: Likewise. * config/i386/dgux.h: Likewise. * config/i386/osfrose.h: Likewise. * config/i386/sco5.h: Likewise. * config/i386/svr3gas.h: Likewise. * config/ia64/aix.h: Likewise. * config/m32r/m32r.h: Likewise. * config/m68k/m68k.h: Likewise. * config/m88k/dgux.h: Likewise. * config/m88k/m88k.h: Likewise. * config/mcore/mcore-pe.h: Likewise. * config/mips/mips.h: Likewise. * config/pa/pa.h: Likewise. * config/pa/pa-linux.h: Likewise. * config/romp/romp.h: Likewise. * config/rs6000/sysv4.h: Likewise. * config/rs6000/xcoff.h: Likewise. * config/s390/linux.h: Likewise. * config/sparc/sparc.h: Likewise. * config/sparc/sysv4.h: Likewise. * config/stormy16/stormy16.h: Likewise. * config/v850/v850.h: Likewise. * config/vax/vms.h: Likewise. * config/arm/arm.c (arm_elf_asm_named_section): Output SECTION_MERGE and SECTION_STRINGS flags plus SECTION_ENTSIZE entity size. * config/sparc/sparc.c (sparc_elf_asm_named_section): Use default_elf_asm_named_section for SHF_MERGE sections. * com.c (ffe_init_options): Default to -fmerge-all-constants if optimizing. From-SVN: r45548
2001-09-11Prune doubled ChangeLog entryHans-Peter Nilsson1-1/+0
From-SVN: r45547
2001-09-11gcov.exp: Move almost everything to a new, language-independent file in lib.Janis Johnson1-317/+1
* gcc.misc-tests/gcov.exp: Move almost everything to a new, language-independent file in lib. * lib/gcov.exp: New file. From-SVN: r45546
2001-09-11Verify gcov output...Janis Johnson1-0/+360
Verify gcov output; most of this file was previously in gcc.misc-tests/ gcov.exp but was moved so it can be used for other languages. From-SVN: r45545
2001-09-11gcov.exp: Move almost everything to a new, language-independent file in lib.Janis Johnson1-0/+6
* gcc.misc-tests/gcov.exp: Move almost everything to a new, language-independent file in lib. * lib/gcov.exp: New file. From-SVN: r45544
2001-09-11bb-reorder.c (fixup_reorder_chain): Fallthru edge to exit block is OK.Jan Hubicka2-0/+9
* bb-reorder.c (fixup_reorder_chain): Fallthru edge to exit block is OK. From-SVN: r45542
2001-09-11re PR c/4294 (ICE for bad empty attribute)Joseph Myers4-1/+16
* c-common.c (split_specs_attrs): Allow for empty attributes with empty TREE_PURPOSE. Fixes PR c/4294. testsuite: * gcc.c-torture/compile/20010911-1.c: New test. From-SVN: r45541
2001-09-11basic-block.h (cached_make_edge, [...]): New.Jan Hubicka9-102/+122
* basic-block.h (cached_make_edge, make_single_succ): New. (make_edge): Remove first parameter. * bb-reroder.c (fixup_reorder_chain): Use make_single_succ_edge. * cfg.c (cached_make_edge): Rename from make_edge; return newly created edge; use obstack allocation. (make_edge, make_single_succ_edge): New. (first_removed_edge): New static variable. (init_flow): Initialize first_removed_edge and n_edges. (clear_edges): Use remove_edge. (flow_delete_block): Likewise. (remove_edge): Add removed edges to the removed edges list. (split_block, redirect_edge_and_branch_force, split_edge): Use make_edge. * cfganal.c (flow_call_edges_add): Updaet make_edge call. (add_noreturn_fake_exit_edges): Likewise. (connect_infinite_loops_to_exit): Liekwise. * cfgbuild.c (make_label_edge, make_edges, find_sub_basic_blocks): Use cached_make_edge. * cfgcleanup.c (try_crossjump_to_edge): Use make_single_succ_edge. * profile.c (branch_prob): Update make_edge call. * ssa-dce.c (ssa_eliminate_dead_code): Likewise. From-SVN: r45540
2001-09-11Cray T3E port.Richard Henderson11-339/+3228
From-SVN: r45539
2001-09-11combine.c (simplify_shift_const): Treat shifts by the mode size as undefined.Richard Sandiford2-1/+6
* combine.c (simplify_shift_const): Treat shifts by the mode size as undefined. From-SVN: r45538
2001-09-11Daily bump.GCC Administrator2-2/+2
From-SVN: r45535
2001-09-11cpphash.h (struct tokenrun): New.Neil Booth6-116/+211
* cpphash.h (struct tokenrun): New. (struct cpp_context): New member bol. (struct cpp_reader): New members. (_cpp_init_tokenrun): New. * cppinit.c (cpp_create_reader): Set up the token runs. * cpplex.c (lex_directive, lex_token, next_tokenrun): New. (lex_token): New internalised version of _cpp_lex_token. Don't handle directives or the multiple include opimisation here any more. Simply lex a token. * cpplib.c (run_directive): Clear bol. (_cpp_pop_buffer): Set bol. * cppmacro.c (funlike_invocation_p): Keep tokens whilst parsing arguments. From-SVN: r45534
2001-09-11Do not allow -mgp32 -mfp64; Fix int/long printf warningMichael Meissner5-3/+43
From-SVN: r45533
2001-09-11dbxout.c (dbxout_parms): Fix typo in comment.Hans-Peter Nilsson6-6/+15
* dbxout.c (dbxout_parms): Fix typo in comment. * unroll.c (loop_find_equiv_value): Ditto. * toplev.c (rest_of_compilation): Ditto. * loop.c (scan_loop): Ditto. (scan_loop): Ditto. * dwarf2out.c (struct dw_fde_struct): Ditto. From-SVN: r45531
2001-09-10cpplex.c (parse_identifier): Fast-path optimize.Zack Weinberg4-44/+111
* cpplex.c (parse_identifier): Fast-path optimize. Avoid copying identifier when we're just going to throw it away. (parse_identifier_slow): New routine to handle abnormal cases. (_cpp_lex_token): Update call site. * hashtable.c (ht_lookup): Don't assume that the string we've been given is NUL-terminated. * system.h: #define __builtin_expect(a, b) to (a) if not GCC >=3.0. From-SVN: r45529
2001-09-10Test -fbranch-probabilities with computed gotos.Janis Johnson1-0/+42
From-SVN: r45528
2001-09-10Test various C constructs with -fbranch-probabilities.Janis Johnson1-0/+269
From-SVN: r45527
2001-09-10Support for tests of -fbranch-probability.Janis Johnson1-0/+55
From-SVN: r45526
2001-09-10Support procedures for testing profile-directed optimizations.Janis Johnson1-0/+284
From-SVN: r45525
2001-09-10profopt.exp: New, to support profile-directed optimizations.Janis Johnson1-0/+8
* lib/profopt.exp: New, to support profile-directed optimizations. * gcc.misc-tests/bprob.exp: New, to support branch profiling in C. * gcc.misc-tests/bprob-1.c: New test. * gcc.misc-tests/bprob-2.c: New test. From-SVN: r45524
2001-09-10add sparc64-*-solaris2 support just like sparcv9-*-solaris2Michael Meissner2-1/+6
From-SVN: r45523
2001-09-10* config/rs6000/t-aix43 (SHLIB_INSTALL): Use mode 751 (a+x,r-o).David Edelsohn3-2/+8
From-SVN: r45522
2001-09-10builtins.c (c_getstr): Correct thinko in last change and further cleanup.Richard Kenner2-14/+12
* builtins.c (c_getstr): Correct thinko in last change and further cleanup. From-SVN: r45519
2001-09-10dwarf2out.c (incomplete_types, [...]): Make them into varray's and register ↵Tim Freeman2-60/+26
them as roots with the garbage collector... * dwarf2out.c (incomplete_types, decl_scope_table): Make them into varray's and register them as roots with the garbage collector so they are not collected too soon. From-SVN: r45513
2001-09-10New test case (2.95.2 miscompilation)Zack Weinberg1-0/+59
From-SVN: r45505
2001-09-10Makefile.in (cfg.o, [...]): New.Jan Hubicka11-6344/+6669
* Makefile.in (cfg.o, cfganal.o, cfgloop.o, cfgbuild.o, cfgcleanup.o): New. * basic-block.h (flow_obstack, label_value_list, tail_recursion_label_list): Declare (tidy_fallthru_edges): Declare. (expunge_block, last_loop_beg_note): Delete. (can_fallthru, flow_nodes_print, flow_edge_list_print): Declare. * cfg.c: New file (basic_block_for_insn, label_value_list): Move from flow.c; make global. (n_basic_blocks, n_edges, basic_block_info, entry_exit_blocks, init_flow, clear_edges, can_delete_note_p, can_delete_label_p, flow_delete_insn, flow_delete_insn_chain, create_basic_block, expunge_block, flow_delete_block, compute_bb_for_insn, update_bb_for_insn, set_block_for_insn, set_block_for_new_insns, make_edge, remove_edge, redirect_edge_succ, redirect_edge_succ_nodup, redirect_edge_pred, split_block, marge_blocks_nomove, block_label, try_redirect_by_replacing_jump, last_loop_beg_note, redirect_edge_and_branch, redirect_edge_and_branch_force, tidy_fallthru_edge, tidy_fallthru_edges, back_edge_of_syntactic_loop_p, split_edge, insert_insn_on_edge, commit_one_edge_insertion, commit_edge_insertions, dump_flow_info, debug_flow_info, dump_edge_info, dump_bb, debug_bb, debug_bb_n, print_rtl_with_bb, verify_flow_info, purge_dead_edges, purge_all_dead_edges): Move here from flow.c * cfganal.c: New file. (forwarder_block_p, can_fallthru, mark_critical_edges, mark_dfs_back_edges, need_fake_edge_p, flow_call_edges_add, find_unreachable_blocks, create_edge_list, free_edge_list, print_edge_list, verify_edge_list, find_edge_index, flow_nodes_print, flow_edge_list_print, remove_fake_successors, remove_fake_edges, add_noreturn_fake_exit_edges, connect_infinite_loops_to_exit, flow_reverse_top_sort_order_compute, flow_depth_first_order_compute, flow_dfs_compute_reverse_init, flow_dfs-compute_reverse_add_bb, flow_dfs-compute_reverse_execute, flow_dfs_compute_reverse_finish); Move here from flow.c * cfgbuild.c: New file (count_basic_blocks, find_label_refs, make_label_edge, make_eh_edge, make_edges, find_basic_blocks_1, find_basic_blocks, find_sub_basic_blocks): Move here from flow.c * cfgcleanup.c: New file. (try_simplify_condjump, try_forward_edges, tail_recursion_label_p, merge_blocks_move_predecessor_nojumps, merge_blocks_move_successor_nojumps, merge_blocks, flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge, try_crossjump_bb, try_optimize_cfg): Move here from flow.c (delete_unreachable_blocks, cleanup_cfg): Likewise; return true if succeeded. * cfgloop.c: New file (flow_loops_cfg_dump, flow_loop_nested_p, flow_loop_dump, flow_loops_dump, flow_loops_free, flow_loop_entry_edges_find, flow_loop_exit_edges_find, flow_loop_nodes_find, flow_loop_pre_header_scan, flow_loop_pre_header_find, flow_loop_tree_node_add, flow_loops_tree_build, flow_loop_level_compute, flow_loops_level_compute, flow_loop_scan, flow_loops_find, flow_loops_update, flow_loop_outside_edge_p): Move here from flow.c * flow.c: Remove everything moved elsewhere * output.h (cleanup_cfg): Return bool. * bb-reorder.c (reorder_block_def): Remove 'index'. (insert_intra_1): Add argument BB, set block for new note. (make_reorder_chain): Do not depdent on BB indexes. (make_reorder_chain_1): Do not use BB indexes. (label_for_bb): Likewise; set BB for new insn. (emit_jump_to_block_after): Likewise. (fixup_reoder_chain): Sanity check that all basic blocks are chained; verify newly created insn chain; remove undocnitional jump simplifying; Do not use BB indexes; properly initialize count and frequency information; dump reordered sequence. (insert_intra_bb_scope_notes): update call of insert_intra_1. (insert_inter_bb_scope_notes): Set block for new insn. (reorder_basic_blocks): Dump flow info before reoredering. From-SVN: r45504
2001-09-10alias.c (clear_reg_alias_info): Use K&R format definition.Richard Kenner7-80/+112
* alias.c (clear_reg_alias_info): Use K&R format definition. Avoid unsigned warning. * builtins.c: Use "unsigned int", not "unsigned". (target_char_cast): Use host_integerp and tree_low_cst. (expand_builtin_args_info, expand_builtin_frame_address): Likewise. (c_strlen): Likewise; OFFSET now HOST_WIDE_INT. (c_getstr): Likewise. (std_expand_builtin_va_arg): Use int_size_in_bytes. (builtin_memcpy_read_str): Avoid unsigned warning. (expand_builtin_memcpy): Alignments are unsigned. (expand_builtin_strncpy, expand_builtin_memset): Likewise. (expand_builtin_expect_jump): Use integer_zerop and integer_onep. * predict.c (expensive_function_p): LIMIT now unsigned. * resource.c (mark_target_live_regs): Make some vars unsigned. * sdbout.c: Use "unsigned int", not "unsigned". (MAKE_LINE_SAFE): Add cast to avoid unsigned warning. (sdbout_source_line): Likewise. (sdbout_record_type_name): Remove "const" for NAME declaration. * config/alpha/alpha.c (alpha_expand_block_move): Whitespace fixes. From-SVN: r45503
2001-09-10* calls.c (store_one_arg): Expand comment.Richard Sandiford2-2/+12
From-SVN: r45502
2001-09-10calls.c (store_one_arg): Make sure that the entire argument is pushed if...Roman Lechtchinsky2-2/+9
* calls.c (store_one_arg): Make sure that the entire argument is pushed if STACK_PARMS_IN_REG_PARM_AREA is defined. From-SVN: r45501
2001-09-10* class.c (build_class_ref): Set DECL_EXTERNAL before make_decl_rtl.Richard Henderson2-2/+6
From-SVN: r45500
2001-09-10Daily bump.GCC Administrator2-2/+2
From-SVN: r45499
2001-09-09* emit-rtl.c (adjust_address): Fix mode for LO_SUM.Richard Henderson2-1/+5
From-SVN: r45495
2001-09-09* loop.c (combine_givs): Fix computing of benefit once giv is combined.Jan Hubicka2-0/+11
From-SVN: r45494
2001-09-09alpha.c (alpha_next_sequence_number): New.Richard Henderson6-77/+581
* config/alpha/alpha.c (alpha_next_sequence_number): New. (alpha_this_literal_sequence_number): New. (alpha_this_gpdisp_sequence_number): New. (some_operand, input_operand): Add HIGH. (local_symbolic_operand): New. (alpha_encode_section_info): New. (alpha_legitimate_address_p): Allow LO_SUM. (alpha_legitimize_address): Generate HIGH+LO_SUM. (alpha_expand_mov): Likewise. (secondary_reload_class): Check memory_operand not general_operand for FP_REGS test. (alpha_expand_unaligned_load): Force LO_SUM addresses into a register. (alpha_expand_unaligned_store): Likewise. (alpha_expand_unaligned_load_words): Likewise. (alpha_expand_unaligned_store_words): Likewise. (alpha_expand_block_clear): Likewise. (print_operand): Handle %#, %*, %H. (print_operand_address): Handle LO_SUM. (find_lo_sum): New. (alpha_does_function_need_gp): Use it. (alpha_expand_block_move): Fix signed compare warnings. (alpha_sa_mask, alpha_align_insns): Likewise. * config/alpha/alpha-protos.h: Update. * config/alpha/alpha.h (TARGET_EXPLICIT_RELOCS): New. (MASK_EXPLICIT_RELOCS): New. (TARGET_SWITCHES): Add -mexplicit-relocs. (EXTRA_CONSTRAINT): Add 'T'. (PREFERRED_RELOAD_CLASS): HIGH goes in GENERAL_REGS. (ASM_APP_ON, ASM_APP_OFF): Turn on and off asm macro expansion. (ENCODE_SECTION_INFO): Out line. (REDO_SECTION_INFO_P): New. (STRIP_NAME_ENCODING): New. (ASM_OUTPUT_LABELREF): New. (PRINT_OPERAND_PUNCT_VALID_P): Add #, *. (PREDICATE_CODES): Update. * config/alpha/alpha.md (divmodsi_internal_er, divmoddi_internal_er, call_osf_1_er_noreturn, call_osf_1_er, movdi_er_low, movdi_er_nofix, movdi_er_fix, prologue_ldgp_1_er, builtin_setjmp_receiver_sub_label_er, builtin_setjmp_receiver_er, exception_receiver_1_er, call_value_osf_1_er): New patterns. (sibcall_osf_1, sibcall_value_osf_1): Remove register alternative. (movqi, movhi, movsi): Add explicit $31 base register to lda. * config/alpha/elf.h (ASM_FILE_START): Set nomacro if explicit relocs. (FINAL_PRESCAN_INSN): New. From-SVN: r45493
2001-09-09Daily bump.GCC Administrator2-2/+2
From-SVN: r45491
2001-09-08* reg-stack.c (subst_stack_regs_pat): Fix fcmov reversal code.Jan Hubicka2-19/+19
From-SVN: r45490
2001-09-08Daily bump.GCC Administrator2-2/+2
From-SVN: r45488
2001-09-08* i386.h (TARGET_SWITCHES): Fix spelling of option.Andreas Jaeger2-1/+5
From-SVN: r45487
2001-09-08install.texi: Explain AIX exception handling work-around.David Edelsohn2-6/+20
* doc/install.texi: Explain AIX exception handling work-around. Update URL for AIX fixes. From-SVN: r45486
2001-09-07rs6000.c (num_insns_constant): Compute number of instructions more accurately.David Edelsohn2-1/+7
* rs6000.c (num_insns_constant): Compute number of instructions more accurately. From-SVN: r45484
2001-09-07re PR rtl-optimization/3783 (gcc3.0/ia64 ICE on linux kernel file ↵Jim Wilson4-0/+24
fs/ufs/super.c) Fix for PR 3783. * alias.c (clear_reg_alias_info): New. * flow.c (attempt_auto_inc): Call clear_reg_alias_info. * rtl.h (clear_reg_alias_info): Declare. From-SVN: r45482
2001-09-07real.c (EMUSHORT,EMUSHORT_SIZE): Use HImode if no 16-bit type is available.Roman Lechtchinsky2-454/+475
* real.c (EMUSHORT,EMUSHORT_SIZE): Use HImode if no 16-bit type is available. (UEMUSHORT): New. Use instead of unsigned EMUSHORT. (m16m,edivm,emulm): Change declaration to match definition. From-SVN: r45481
2001-09-07reload.c (push_reload): Check for subreg_lowpart_p instead of SUBREG_BYTE ↵Roman Lechtchinsky2-4/+10
being 0 when... * reload.c (push_reload): Check for subreg_lowpart_p instead of SUBREG_BYTE being 0 when determining if the inner part of a subreg can be reloaded. From-SVN: r45480
2001-09-07c-common.c (signed_or_unsigned_type): Handle machine mode types which have ↵Richard Henderson3-10/+31
no corresponding C type. * c-common.c (signed_or_unsigned_type): Handle machine mode types which have no corresponding C type. * fold_const.c (target_isinf,target_isnan,target_negative): Update the representation of 64-bit doubles to work with 64-bit ints. From-SVN: r45479
2001-09-07mips.c (override_options): Do not override ISA when ABI specified if ↵Aldy Hernandez2-0/+7
MIPS_CPU_STRING_DEFAULT was specified. * config/mips/mips.c (override_options): Do not override ISA when ABI specified if MIPS_CPU_STRING_DEFAULT was specified. From-SVN: r45476