aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2000-08-02Makefile.in (OBJS): Added dce.o.Jeffrey Oldham11-65/+990
* Makefile.in (OBJS): Added dce.o. (ssa.o): Updated target to include ssa.h. (flow.o): Likewise. (toplev.o): Likewise. (dce.o): Created target. * basic-block.h: Added comments. (INVALID_BLOCK): Added definition. (connect_infinite_loops_to_exit): Added declaration. Moved SSA declarations to ssa.h. * flow.c: Added inclusion of ssa.h. (struct depth_first_search_dsS, depth_first_search_ds): Added definitions. (compute_immediate_postdominators): Added definition. (connect_infinite_loops_to_exit): Likewise. (flow_dfs_compute_reverse_init): Likewise. (flow_dfs_compute_reverse_add_bb): Likewise. (flow_dfs_compute_reverse_execute): Likewise. (flow_dfs_compute_reverse_finish): Likewise. * rtl.h (rtx/in_struct): Added use to determine insn necessity. (LABEL_P): Added definition. (JUMP_P): Likewise. (NOTE_P): Likewise. (BARRIER_P): Likewise. (JUMP_TABLE_DATA_P): Likewise. (INSN_DEAD_CODE_P): Likewise. * ssa.c: Replaced inclusions with ssa.h inclusion. (CONVERT_HARD_REGISTER_TO_SSA_P): Moved to ssa.h. (rename_registers): Removed unnecessary variables. * ssa.h: Created by moving declarations from ssa.c and basic-block.h. * timevar.def: Defined TV_DEAD_CODE_ELIM. * toplev.c: Added ssa.h inclusion. (dump_file_index): Added DFI_dce. (dump_file): Added "dce" entry. Defined flag_ssa. (f_options): Added dce entry. * invoke.texi: Document -fdce. Emphasize experimental status of -fssa. Co-Authored-By: Mark Mitchell <mark@codesourcery.com> From-SVN: r35419
2000-08-02Resurrect - accidentally deleted in previous commitZack Weinberg1-0/+3
From-SVN: r35417
2000-08-02argh, forgot to save fileZack Weinberg1-0/+61
From-SVN: r35416
2000-08-02cpperror.c (v_message): Split into _cpp_begin_message and v_message macro.Zack Weinberg10-642/+754
* cpperror.c (v_message): Split into _cpp_begin_message and v_message macro. All callers updated. (_cpp_begin_message): Do inhibit_errors/inhibit_warnings checks here. * cppfiles.c (cpp_syshdr_flags): New function. (read_include_file): Don't call cpp_output_tokens. Call enter_file hook. * cppinit.c (dump_macros_helper): Moved to cppmain.c. (cpp_reader_init): Don't initialize token_buffer. Call _cpp_init_internal_pragmas. (cpp_cleanup): Don't clear token_buffer. (cpp_start_read): Don't worry about output from -D processing. Don't call cpp_output_tokens. (cpp_finish): Don't dump macros here. Don't call cpp_output_tokens. * cppmacro.c (_cpp_dump_definition): Rename cpp_dump_definition. Write directly to a FILE *. (dump_funlike_macro): Delete. (dump_macro_args): New. * cpplex.c (TOKEN_LEN): Convert to inline function. (_cpp_grow_token_buffer, safe_fwrite, cpp_output_tokens, cpp_scan_line, _cpp_dump_list): Delete. (cpp_printf, cpp_output_list): New. (output_line_command): Don't worry about entering or leaving files. (cpp_scan_buffer): Just output each token as we hit it. (process_directive): Don't call cpp_output_tokens. (_cpp_glue_header_name): Don't use token_buffer. (output_token, dump_param_spelling): Write directly to a FILE *. * cpplib.c (pass_thru_directive, dump_macro_name, pragma_dispatch, do_pragma_gcc): Delete. (do_define, do_undef, parse_include, do_line, do_ident, do_pragma, do_pragma_poison, cpp_pop_buffer): Call the appropriate hook functions. (do_error, do_warning, pragma_dependency): Call _cpp_begin_message, then cpp_output_list. (cpp_register_pragma, cpp_register_pragma_space, _cpp_init_internal_pragmas): New. (do_pragma): Walk the pragmas table here. (do_pragma_once, do_pragma_poison, do_pragma_system_header, do_pragma_dependency): Return void. (do_pragma_implementation): Moved to cppmain.c. * cpplib.h: Update prototypes. (struct cpp_reader): Remove printer, token_buffer, token_buffer_size, and limit. Add struct cb, and pragmas. (struct cpp_printer): Remove last_id and written. (CPP_WRITTEN, CPP_PWRITTEN, CPP_SET_WRITTEN, CPP_ADJUST_WRITTEN): Delete. * cpphash.h: Update prototypes. (ufputs): New wrapper. * cppmain.c (cb_define, cb_undef, cb_include, cb_ident, cb_enter_file, cb_leave_file, cb_def_pragma): New functions. (main): Set up callbacks. Register #pragma implementation. Dump macros from here. From-SVN: r35415
2000-08-02rtl.h (enum reg_note): Add REG_MAYBE_DEAD.Geoff Keating5-18/+50
* rtl.h (enum reg_note): Add REG_MAYBE_DEAD. * rtl.c (reg_note_name): Add REG_MAYBE_DEAD. * flow.c (propagate_one_insn): Allow deletion of prologue/epilogue insns if they have a REG_MAYBE_DEAD note attached. * config/rs6000/rs6000.c (rs6000_maybe_dead): New function. (rs6000_emit_load_toc_table): TOC loads may go dead. From-SVN: r35414
2000-08-01Finish ABI change started by last patch, this time I tested it.Jim Wilson2-9/+26
* config/ia64/ia64.c (ia64_function_arg): Fix last change. Verify type exists before using it. Use number of words as alignment otherwise. (ia64_function_arg_partial_nregs, ia64_function_arg_advance, ia64_va_arg): Propagate ia64_function_args changes here. From-SVN: r35413
2000-08-01elfos.h (ASM_DECLARE_OBJECT_NAME): Care for null DECL.Richard Henderson3-2/+9
* config/elfos.h (ASM_DECLARE_OBJECT_NAME): Care for null DECL. * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise. From-SVN: r35412
2000-08-01From Joern Rennecke:Bernd Schmidt5-24/+48
* sh.h (CPP_SPEC, TARGET_SWITCHES): Add m4-nofpu. * sh.md (udivsi3, divsi3): Don't use libcalls that use the FPU unless TARGET_SH3E is set. * t-sh (MULTILIB_MATCHES): Add m2=m4-nofpu. * sh.md (ashlsi3_d, ashlsi3_k): Remove, replace with (ashlsi3_std): New pattern. (ashlsi3 expander): Use it for TARGET_SH3. * sh.c (gen_ashift): Use it instead of ashlsi3_k. From-SVN: r35411
2000-08-01loop.c (canonicalize_condition): use destination, not source to determine ↵Jan Hubicka2-1/+6
set's mode. * loop.c (canonicalize_condition): use destination, not source to determine set's mode. From-SVN: r35409
2000-08-01Daily bump.Jeff Law2-2/+2
From-SVN: r35408
2000-08-01* flow.c (clear_log_links): Fix typo.Mark Mitchell2-1/+5
From-SVN: r35406
2000-07-31loop.c (check_dbra_loop): Make change from July 17...Jeffrey A Law2-2/+11
* loop.c (check_dbra_loop): Make change from July 17, 2000 work on targets which need more than one insn for a compare/cbranch operation. From-SVN: r35404
2000-07-3120000731-2.c: New test.Jeffrey A Law2-0/+18
* gcc-c-torture/execute/20000731-2.c: New test. Fix will be applied shortly... From-SVN: r35403
2000-07-31Adjust structure parameter passing to match ABI change.Jim Wilson2-2/+13
* config/ia64/ia64.c (ia64_function_arg): Use alignment not size when computing offset. From-SVN: r35401
2000-07-31* genpeep.c (main): Handle DEFINE_PEEPHOLE2.Denis Chertykov2-1/+6
From-SVN: r35400
2000-07-3120000731-1.c: New test.Jeffrey A Law3-0/+32
* gcc.c-torture/execute/20000731-1.c: New test. * gcc.c-torture/execute/20000731-1.x: Expected to fail for i?86-*-*. From-SVN: r35399
2000-07-31* combine.c: Fix formatting.Kazu Hirata2-324/+323
From-SVN: r35398
2000-07-31* h8300.md: Fix formatting.Kazu Hirata2-95/+91
From-SVN: r35397
2000-08-01flow.c (clear_log_links): Nuke global_live_at_start and global_live_at_end ↵Geoff Keating2-1/+22
data... * flow.c (clear_log_links): Nuke global_live_at_start and global_live_at_end data, since if the log_links stuff is invalid so is global_live_at_*. From-SVN: r35396
2000-07-31* tm.texi (Addressing Modes): Clarify PRE/POST_MODIFY descriptions.Richard Henderson1-0/+4
From-SVN: r35395
2000-07-31[multiple changes]Zack Weinberg5-6/+56
2000-07-31 Jakub Jelinek <jakub@redhat.com> * cpplex.c (_cpp_get_line): If index is 0, return line 0 col 0. (_cpp_get_token): Don't macro expand a just pasted token if it was pasted at no_expand_level. * testsuite/gcc.dg/cpp/paste7.c: New test. 2000-07-31 Zack Weinberg <zack@wolery.cumb.org> * cppmacro.c (find_param, count_params, save_expansion): Permit 'defined' as a macro parameter name. From-SVN: r35394
2000-07-31Oops - this went with the previous change setZack Weinberg1-0/+11
From-SVN: r35393
2000-07-31* lang-specs.h: Use %i in rule for .ii files.Jason Merrill2-1/+5
From-SVN: r35392
2000-07-31* gcc.dg/cpp/20000725-1.c: New test.Jakub Jelinek2-0/+7
From-SVN: r35391
2000-07-31Makefile.in: Rename cpp to cpp0, tradcpp to tradcpp0, and xcpp to cpp ↵Zack Weinberg9-34/+44
throughout. * Makefile.in: Rename cpp to cpp0, tradcpp to tradcpp0, and xcpp to cpp throughout. (native): Remove unnecessary dependency on cpp. * gcc.c (trad_capable_cpp, C specs): Rename cpp to cpp, tradcpp to tradcpp0. (.i spec): Add missing output-file spec to cc1 command line. * ch/lang-specs.h, cp/lang-specs.h, f/lang-specs.h, objc/lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0. From-SVN: r35389
2000-07-31c90-digraph-1.c: Restore { dg-do run } marker.Zack Weinberg3-1/+6
* gcc.dg/c90-digraph-1.c: Restore { dg-do run } marker. * gcc.dg/noncompile/990416-1.c: Do not expect an implicit- declaration warning for __builtin_dwarf_reg_size. From-SVN: r35387
2000-07-31c-decl.c (mesg_implicit_function_declaration): Init to -1.Zack Weinberg7-14/+49
* c-decl.c (mesg_implicit_function_declaration): Init to -1. (implicit_decl_warning): New function. (implicitly_declare): Use it. * c-typeck.c (build_external_ref): Use implicit_decl_warning to complain about implicit decls of builtins. * c-lang.c (lang_init): Set mesg_implicit_function_declaration based on pedantic && flag_isoc99, if not already set. * c-tree.h: Declare mesg_implicit_function_declaration. Prototype implicit_decl_warning. * gcc.dg/c99-impl-decl-1.c: No longer XFAIL. From-SVN: r35385
2000-07-31Makefile.in (ssa.o): Updated header files in dependences.Jeffrey D. Oldham8-169/+604
* Makefile.in (ssa.o): Updated header files in dependences. * basic-block.h: Added compute_immediate_postdominators declaration. * config/i386/i386.h (CONVERT_HARD_REGISTER_TO_SSA_P): Added definition. * flow.c (compute_immediate_dominators): Updated comment. (compute_immediate_postdominators): Added definition. * rtl.h (HARD_REGISTER_P): Added definition. * ssa.c: Include additional header files. (assert): Added definition. (ssa_rename_to_lookup): Added to reimplement ssa_rename_to to include select hard registers. (ssa_rename_to_insert): Likewise. (ssa_rename_from_initialize): Likewise. (ssa_rename_from_lookup): Likewise. (original_register): Likewise. (ssa_rename_from_insert): Added to reimplement ssa_rename_from to include select hard reigsters. (ssa_rename_from_traverse): Likewise. (ssa_rename_from_free): Likewise. (ssa_rename_from_print): Likewise. (ssa_rename_from_print_1): Likewise. (ssa_rename_from_hash_function): Likewise. (ssa_rename_from_equal): Likewise. (ssa_rename_from_delete): Likewise. (simplify_to_immediate_dominators): Removed in favor of flow.c:compute_immediate_dominators. (find_evaluations_1): Modified to work with hard registers. (insert_phi_node): Likewise. (insert_phi_nodes): Likewise. (struct rename_set_data): Updated prev_reg comment. (create_delayed_rename): Modified to work with hard registers. (RENAME_NO_RTX): Updated comment. (apply_delayed_renames): Modified to work with hard registers. (rename_insn_1): Likewise and added handling of CLOBBER rtls. (rename_block): Updated to use revised ssa_rename_to interface. (rename_registers): Updated to use revised ssa_rename_to and ssa_rename_from interface. (convert_to_ssa): Revised to use compute_immediate_dominators and deal with hard registers. (make_regs_equivalent_over_bad_edges): Modified to work with hard registers. Added check for illegal unification of hard register. (make_equivalent_phi_alternatives_equivalent): Modified to work with hard registers. (compute_conservative_reg_partition): Likewise. (coalesce_if_unconflicting): Modified to work with hard registers and check for conflicting hard registers. (mark_phi_and_copy_regs): Revised loop to work only on pseudo registers. (rename_equivalent_regs_in_insn): Modified to work with hard registers. (record_canonical_element_1): Added definition. (check_hard_regs_in_partition): Added definition. (convert_from_ssa): Added data structure deallocation and check for illegal hard register unification. (conflict_hard_regs_p): Added definition. * toplev.c (rest_of_compilation): Added comment. From-SVN: r35384
2000-07-31crtbegin.asm (__EH_FRAME_BEGIN__): Align correctly.Anthony Green2-0/+5
2000-07-30 Anthony Green <green@redhat.com> * config/ia64/crtbegin.asm (__EH_FRAME_BEGIN__): Align correctly. From-SVN: r35383
2000-07-31builtins.c (expand_builtin_apply): Don't defer pop during argument setup.Jason McMullan2-1/+11
* builtins.c (expand_builtin_apply): Don't defer pop during argument setup. From-SVN: r35382
2000-07-31calls.c (combine_pending_stack_adjustment_and_call): Only use ↵Herman A.J. ten Brugge2-4/+12
preferred_unit_stack_boundary when it is > 1. * calls.c (combine_pending_stack_adjustment_and_call): Only use preferred_unit_stack_boundary when it is > 1. From-SVN: r35381
2000-07-31c-common.c (init_function_format_info): Add C99 format functions in C99 mode.Joseph Myers2-0/+18
* c-common.c (init_function_format_info): Add C99 format functions in C99 mode. From-SVN: r35380
2000-07-31* Makefile.in: Remove naked "^L".Casper Dik2-1/+5
From-SVN: r35379
2000-07-31* local-alloc.c: Fix formatting.Kazu Hirata2-38/+38
From-SVN: r35378
2000-07-31c-decl.c (get_parm_info): Don't treat 'const void'...Joseph Myers2-1/+13
* c-decl.c (get_parm_info): Don't treat 'const void', 'volatile void' or 'register void' as being the special case of 'void' alone in a parameter list. From-SVN: r35377
2000-07-31* gcc.dg/noncompile/voidparam-1.c: New test.Joseph Myers2-0/+21
From-SVN: r35376
2000-07-31h8300.c (get_shift_alg): Remove the variable alg.Kazu Hirata3-62/+75
* h8300.c (get_shift_alg): Remove the variable alg. (emit_a_shift): Rearrange code to improve readability. * h8300.md (movsi_h8300hs): Rearrange code to improve readability. From-SVN: r35375
2000-07-31c-typeck.c (build_c_cast): Change -Wcast-qual pedwarn for discarding ↵Joseph Myers2-1/+6
qualifiers into a plain warning. * c-typeck.c (build_c_cast): Change -Wcast-qual pedwarn for discarding qualifiers into a plain warning. From-SVN: r35374
2000-07-31Rotate out 6 more months of ChangeLog entries.Jeff Law2-16859/+16861
From-SVN: r35373
2000-07-31h8300.h (MODES_TIEABLE_P): Accept a combination of QImode and HImode on all ↵Kazu Hirata2-1/+11
architectures and a... * h8300.h (MODES_TIEABLE_P): Accept a combination of QImode and HImode on all architectures and a combination of HImode and SImode on H8/300H and H8/S. From-SVN: r35372
2000-07-31* h8300.c (split_adds_subs): Rearrange code for conciseness.Kazu Hirata2-47/+21
From-SVN: r35371
2000-07-31i386.md (addsi to lea splitter, [...]): Fix bugs in my last checkin.Jan Hubicka2-2/+7
* i386.md (addsi to lea splitter, ashlqi3_1_lea): Fix bugs in my last checkin. From-SVN: r35370
2000-07-31recog.c (extract_insn): Set operand_mode according to operand if ↵Jan Hubicka2-1/+9
match_operand is VOIDmode. * recog.c (extract_insn): Set operand_mode according to operand if match_operand is VOIDmode. From-SVN: r35369
2000-07-31* recog.c (validate_replace_rtx_1): Do not abort for (nil) expression.Jan Hubicka2-1/+8
From-SVN: r35368
2000-07-31c-parse.in (extdefs): Call ggc_collect between external definitions.Geoff Keating2-2/+8
* c-parse.in (extdefs): Call ggc_collect between external definitions. From-SVN: r35367
2000-07-31Daily bump.Jeff Law2-2/+2
From-SVN: r35366
2000-07-31Allow indirect primary bases.Mark Mitchell6-277/+376
* cp-tree.h (struct lang_type): Remove vfield_parent. Add primary_base. (CLASSTYPE_VFIELD_PARENT): Remove. (CLASSTYPE_PRIMARY_BINFO): Reimplement. (BINFO_PRIMARY_BINFO): Remove. (CLASSTYPE_HAS_PRIMARY_BASE_P): Reimplement. (BINFO_VBASE_PRIMARY_P): Likewise. (BINFO_PRIMARY_BASE_OF): New macro. (BINFO_INDIRECT_PRIMARY_P): Likewise. (get_primary_binfo): New function. * decl.c (lang_mark_tree): Make lang_type::primary_base. * class.c (vcall_offset_data_s): Rename to ... (vtbl_init_data_s): ... this. Rename primary_p to primary_vtbl_p, and add ctor_vtbl_p. (get_derived_offset): Use get_primary_binfo. (dfs_mark_primary_bases): Adjust handling of virtual primary bases. (mark_primary_bases): Likewise. (set_primary_base): Take a binfo, not an integer, as a representation of the primary base. (indirect_primary_base_p): Remove. (determine_primary_base): Adjust for indirect primary bases. (dfs_find_final_overrider): Fix typo in coment. (update_vtable_entry_for_fn): Use get_primary_binfo. (layout_nonempty_base_or_field): Tweak. (build_base_fields): Adjust for new primary base semantics. (dfs_propagate_binfo_offsets): Remove. (propagate_binfo_offsets): Rewrite. (dfs_set_offset_for_shared_vbases): Remove. (layout_virtual_bases): Don't use it. (layout_class_type): Set CLASSTYPE_SIZE correctly under the new ABI. (finish_struct_1): Set CLASSTYPE_PRIMARY_BINFO, not CLASSTYPE_VFIELD_PARENT. (dfs_get_primary_binfo): New function. (get_primary_binfo): Likewise. (dump_class_hierarchy_r): Tweak printing of primary bases. (build_vtbl_initializer): Fix typo in comments. Use vtbl_init_data. (build_vcall_and_vbase_vtbl_entries): Likewise. (build_vbaes_offset_vtbl_entries): Likewise. (dfs_build_vcall_offset_vtbl_entries): Adjust setting of BV_VCALL_INDEX to handle indirect primary bases. (build_vcall_offset_vtbl_entries): Use vtbl_init_data. (build_rtti_vtbl_entries): Likewise. * search.c (get_shared_vbase_if_not_primary): Tweak. (find_vbase_instance): Likewise. (binfo_for_vtable): Simplify. * tree.c (unshare_base_binfos): Clear BINFO_PRIMARY_BASE_OF. (make_binfo): Make it have 11 entries. From-SVN: r35360
2000-07-31Fix bug in my last checkin.Jan Hubicka1-3/+5
From-SVN: r35359
2000-07-30Makefile.in (OBJS): Add doloop.o.Richard Henderson19-512/+1246
* Makefile.in (OBJS): Add doloop.o. * doloop.c: New file. * final.c (insn_current_reference_address): Return 0 before final. * flags.h (flag_branch_on_count_reg): Fix typos in commentary. * jump.c (any_uncondjump_p): Likewise. * loop.c (indirect_jump_in_function): Make static. (strength_reduce): Call doloop_optimize. (insert_bct, instrument_loop_bct): Remove. * loop.h (doloop_optimize): Prototype. * recog.c (split_all_insns): Split all INSN_P. * toplev.c (flag_branch_on_count_reg): Default on. * config/c4x/c4x.c (c4x_optimization_options): Don't set flag_branch_on_count_reg. * config/i386/i386.c (override_options): Likewise. * config/rs6000/rs6000.c (optimization_options): Likewise. * config/i386/i386.md (decrement_and_branch_on_count): Remove. (doloop_end): New. (dbra_ge): Remove, as well as all it's splitters. * config/rs6000/rs6000.md (decrement_and_branch_on_count): Remove. (doloop_end): New. * config/ia64/ia64-protos.h (ar_lc_reg_operand): Declare. (ia64_register_move_cost): Declare. * config/ia64/ia64.c (ar_lc_reg_operand): New. (struct ia64_frame_info): Add ar_size. (ia64_compute_frame_size): Set it. (save_restore_insns): Save and restore ar.lc. (ia64_register_move_cost): New, moved from header file. Handle application registers. (REG_AR_PFS, REG_AR_EC): Remove. Replace with AR_*_REGNUM numbers. (emit_insn_group_barriers): Special case doloop_end_internal. (ia64_epilogue_uses): Mark ar.lc live at end. * config/ia64/ia64.h (AR_CCV_REGNUM, AR_LC_REGNUM): New registers. (AR_EC_REGNUM, AR_PFS_REGNUM): New registers. (FIRST_PSEUDO_REGISTER): Make room. (AR_M_REGNO_P, AR_I_REGNO_P, AR_REGNO_P): New. (FIXED_REGISTERS, CALL_USED_REGISTERS): Update. (REG_ALLOC_ORDER): Update. (HARD_REGNO_MODE_OK): Update. (REGISTER_NAMES): Update. (enum reg_class): Add AR_M_REGS and AR_I_REGS. (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update. (REGNO_REG_CLASS): Update. (LEGITIMATE_ADDRESS_DISP): Displacement range is 9 bits, not 10. (REGISTER_MOVE_COST): Move out of line. (PREDICATE_CODES): Update. * config/ia64/ia64.md (movdi patterns): Handle ar register classes. (addsi3_plus1_alt, adddi3_plus1_alt): New. (shladd_elim splitter): Allow constants in the predicate. (doloop_end, doloop_end_internal): New. From-SVN: r35358
2000-07-30c90-digraph-1.c: Don't xfail.Richard Henderson4-3/+8
* gcc.dg/c90-digraph-1.c: Don't xfail. * gcc.dg/compare2.c (case 10): Xfail. * gcc.dg/noncompile/redecl-1.c: Fix expected error message. From-SVN: r35357