aboutsummaryrefslogtreecommitdiff
path: root/gcc/function.c
AgeCommit message (Collapse)AuthorFilesLines
2003-07-25Remove pedwarn_with_decl, warning_with_decl and error_with_decl from GCC.Gabriel Dos Reis1-8/+10
Remove pedwarn_with_decl, warning_with_decl and error_with_decl from GCC. * calls.c (try_to_integrate): Don't use xxx_with_decl. (expand_call): Likewise. * dwarfout.c (output_reg_number): Likewise. * expr.c (expand_expr): Likewise. * function.c (assign_temp): Likewise. (uninitialized_vars_warning): Likewise. (setjmp_args_warning): Likewise. (expand_function_end): Likewise. * stmt.c (fixup_gotos): Likewise. (warn_about_unused_variables): Likewise. (expand_end_bindings): Likewise. * stor-layout.c (layout_decl): Likewise. (place_field): Likewise. * toplev.c (check_global_declarations): Likewise. (rest_of_handle_inlining): Likewise. (default_tree_printer): New function. (general_init): Initialize diagnostic machinery before routing signals to the ICE machinery. Set default tree printer. * toplev.h (pedwarn_with_decl): Remove declaration. (warning_with_decl): Likewise. (error_with_decl): Likewise. (pedwarn): Remove attribute for the time being. * tree-inline.c (expand_call_inline): Don't use xxx_with_decl. * varasm.c (named_section): Likewise. (make_decl_rtl): Likewise. (assemble_variable): Likewise. (merge_weak): Likewise. (declare_weak): Likewise. * diagnostic.h: Move non-diagnostic stuff into pretty-print.h. * diagnostic.c: Move non-diagnostic stuff into pretty-print.c. (format_with_decl): Remove. (diagnostic_for_decl): Likewise. (pedwarn_with_decl): Likewise. (warning_with_decl): Likewise. (error_with_decl): Likewise. (diagnostic_initialize): Adjust. (diagnostic_count_diagnostic): Likewise. (announce_function): Likewise. (lhd_print_error_function): Likewise. (diagnostic_report_current_module): Likewise. (default_diagnostic_starter): Likewise. (diagnostic_report_diagnostic): Likewise. (default_diagnostic_finalizer): Likewise. (verbatim): Likewise. (error): Likewise. (warning): Likewise. * opts.c (common_handle_option): Likewise. * pretty-print.c: New file. * c-pretty-print.h (pp_base): Override. * c-pretty-print.c: Adjust use of macros throughout. (pp_buffer): New macro. (pp_newline): Likewise. * c-objc-common.c (c_tree_printer): Adjust prototype. Tidy. * Makefile.in (DIAGNOSTIC_H): New variable. (c-errors.o): Use it. (c-objc-common.o): Likewise. (c-common.o): Likewise. (c-opts.o): Likewise. (c-format.o): Likewise. (diagnostic.o): Likewise. (opts.o): Likewise. (toplev.o): Likewise. (rtl-error.o): Likewise. (dwarf2out.o): Likewise. (jump.o): Likewise. (pretty-print.o): New rule. cp/ * Make-lang.in (cp/error.o): Depend on DIAGNOSTIC_H. * error.c: Use the new pretty-printer fraamework. From-SVN: r69773
2003-07-19alias.c [...]: Remove unnecessary casts.Kaveh R. Ghazi1-15/+14
* alias.c alloc-pool.c bitmap.c bitmap.h bt-load.c builtins.c c-common.c c-decl.c c-incpath.c c-lex.c c-opts.c c-parse.in c-pragma.c c-typeck.c calls.c cfg.c cfganal.c cfgloop.c cfgrtl.c collect2.c combine.c conflict.c coverage.c cppexp.c cppfiles.c cpphash.c cppinit.c cpplex.c cpplib.c cppmacro.c cppspec.c cpptrad.c cse.c cselib.c dbxout.c defaults.h df.c dominance.c dwarf2out.c dwarfout.c emit-rtl.c except.c expmed.c expr.c final.c fix-header.c flow.c fold-const.c function.c gcc.c gccspec.c gcov.c gcse.c genattr.c genattrtab.c genautomata.c genconditions.c genemit.c genextract.c genoutput.c genrecog.c gensupport.c ggc-page.c ggc-simple.c global.c graph.c haifa-sched.c hashtable.c integrate.c jump.c langhooks.c lcm.c line-map.c local-alloc.c loop.c mips-tdump.c mips-tfile.c mkdeps.c optabs.c params.c postreload.c prefix.c print-tree.c protoize.c ra-build.c ra-colorize.c ra-rewrite.c ra.c recog.c reg-stack.c regclass.c regmove.c regrename.c reload.c reload1.c reorg.c resource.c sbitmap.c sched-deps.c sched-rgn.c sched-vis.c sdbout.c simplify-rtx.c ssa-ccp.c ssa.c stmt.c stor-layout.c timevar.c tlink.c toplev.c tree-dump.c tree.c unroll.c unwind-dw2-fde.c varasm.c varray.c vmsdbgout.c xcoffout.c: Remove unnecessary casts. From-SVN: r69587
2003-07-15expr.c (expand_assignment): Remove an unused argument SUGGEST_REG.Kazu Hirata1-1/+1
* expr.c (expand_assignment): Remove an unused argument SUGGEST_REG. * expr.h: Update the prototype. * function.c: Update the callers. * stmt.c: Likewise. From-SVN: r69379
2003-07-14tm.texi (BLOCK_REG_PADDING): Describe.Alan Modra1-4/+26
* doc/tm.texi (BLOCK_REG_PADDING): Describe. * expr.h (struct locate_and_pad_arg_data): Add where_pad. (emit_group_load, emit_group_store): Adjust declarations. Remove most occurrences of #ifdef TREE_CODE. * expr.c (emit_group_load): Add "type" param, and use BLOCK_REG_PADDING to determine need for a shift. Optimize non- aligned accesses if !SLOW_UNALIGNED_ACCESS. (emit_group_store): Likewise. (emit_push_insn, expand_assignment, store_expr, expand_expr): Adjust emit_group_load and emit_group_store calls. * calls.c (store_unaligned_arguments_into_pseudos): Tidy. Use BLOCK_REG_PADDING to determine whether we need endian_correction. (load_register_parameters): Localize vars. Handle shifting of small values to the correct end of regs. Adjust emit_group_load call. (expand_call, emit_library_call_value_1): Adjust emit_group_load and emit_group_store calls. * function.c (assign_parms): Set mem alignment for stack slots. Adjust emit_group_store call. Store values at the "wrong" end of regs to the stack. Use BLOCK_REG_PADDING. (locate_and_pad_parm): Save where_pad. (expand_function_end): Adjust emit_group_load call. * stmt.c (expand_value_return): Adjust emit_group_load call. * Makefile.in (calls.o): Depend on $(OPTABS_H). * config/rs6000/linux64.h (TARGET_LITTLE_ENDIAN): Redefine as 0. (AGGREGATE_PADDING_FIXED, AGGREGATES_PAD_UPWARD_ALWAYS): Define. (MUST_PASS_IN_STACK): Define. (BLOCK_REG_PADDING): Define. * config/rs6000/rs6000.h (struct rs6000_args): Remove orig_nargs. (PAD_VARARGS_DOWN): Define in terms of FUNCTION_ARG_PADDING. * config/rs6000/rs6000.c (init_cumulative_args): Don't set orig_nargs. (function_arg_padding): !AGGREGATE_PADDING_FIXED compatibility code. Act on AGGREGATES_PAD_UPWARD_ALWAYS. From-SVN: r69318
2003-07-11function.c (assign_parms): Don't recombine complex args if fnargs is ↵Richard Henderson1-11/+26
unchanged from orig_fnargs. * function.c (assign_parms): Don't recombine complex args if fnargs is unchanged from orig_fnargs. (split_complex_args): Return args without complex before copying. Re-layout the modified parameters. From-SVN: r69236
2003-07-07rtl.h (emit_line_note): Take a location_t.Nathan Sidwell1-3/+3
* rtl.h (emit_line_note): Take a location_t. (emit_line_note_force): Remove. (set_file_and_line_for_statement): Take a location_t. * tree.g (emit_line_note): Take a location_t. * emit-rtl.c (emit_line_note): Take a location_t. (emit_line_note_force): Remove. * function.c (init_function_start): Adjust emit_line_note call. (expand_function_end): Use force_next_line_note, not emit_line_note_force. * c-parse.in (maybe_type_qual): Adjust emit_line_note calls. * c-semantics.c (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt, genrtl_while_stmt, genrtl_do_stmt_1, genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt, genrtl_continue_stmt, genrtl_switch_stmt, genrtl_asm_stmt): Likewise. * expr.c (expand_expr): Likewise. * integrate.c (expand_inline_function): Likewise. * stmt.c (set_file_and_line_for_stmt): Take a location_t. (expand_decl_init): Adjust emit_line_note call. * ada/trans.c (build_unit_elab, set_lineno): Adjust emit_line_note calls. * cp/semantics.c: (genrtl_try_block) Adjust emit_line_note calls. * f/com.c (bison_rule_pushlevel_, bison_rule_compstmt_): Adjust emit_line_note calls. * f/ste.c (ffeste_emit_line_note_): Likewise. * java/expr.c (expand_byte_code): * treelang/treetree.c (tree_code_if_start, tree_code_if_else, tree_code_if_end, tree_code_create_function_initial, tree_code_create_function_wrapup, tree_code_generate_return, tree_code_output_expression_statement): Adjust emit_line_note calls. From-SVN: r69047
2003-07-01fold-const.c: Convert prototypes to ISO C90.Andreas Jaeger1-384/+193
* fold-const.c: Convert prototypes to ISO C90. * function.c: Likewise. * function.h: Likewise. From-SVN: r68778
2003-07-01rtl.h (emit_line_note_after): Remove.Nathan Sidwell1-5/+2
* rtl.h (emit_line_note_after): Remove. (emit_note_copy_after, emit_note_copy): New. * emit-rtl.c (reorder_insns_with_line_notes): Replace emit_line_note_after with emit_note_copy_after. (emit_insn_after_with_line_notes): Likewise. (emit_line_note_after): Kill. (emit_note_copy_after): New. (emit_note_copy): New. * function.c (emit_return_into_block): Use emit_note_copy_after. (thread_prologue_and_epilogue_insns): Likewise. * integrate.c (expand_inline_function): Use emit_note_copy. (copy_insn_list): Likewise. * unroll.c (copy_loop_body): Likewise. * cfglayout.c (duplicate_insn_chain): Likewise. From-SVN: r68767
2003-06-27rtl.h (emit_note): Remove FILE parameter.Nathan Sidwell1-8/+9
* rtl.h (emit_note): Remove FILE parameter. * emit-rtl.c (emit_line_note): Adjust emit_note call. (emit_note): Remove FILE parameter. Adjust. * builtins.c (expand_builtin_expect): Adjust emit_note call. * c-semantics.c (genrtl_scope_stmt): Likewise. (expand_stmt): Likewise. * cfglayout.c (reemit_insn_block_notes): Likewise. (duplicate_insn_chain): Likewise. * except.c (expand_eh_region_start, expand_eh_region_end, sjlj_emit_function_enter): Likewise. * explow.c (probe_stack_range): Likewise. * expr.c (emit_block_move_via_loop): Likewise. * function.c (init_function_start, expand_function_start, expand_function_end, thread_prologue_and_epilogue_insns): Likewise. * integrate.c (expand_inline_function, copy_insn_list): Likewise. * reg-stack.c (compensate_edge): Likewise. * reload1.c (reload): Likewise. * rtlanal.c (hoist_insn_to_edge): Likewise. * stmt.c (expand_fixup, expand_start_loop, expand_start_null_loop, expand_loop_continue_here, expand_end_loop, expand_continue_loop, expand_exit_loop_top_cond, expand_value_return, expand_start_bindings_and_block, expand_end_bindings, expand_decl_cleanup, expand_start_case): Likewise. * unroll.c (copy_loop_body * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Likewise. * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise. * config/rs6000/rs6000.c (rs6000_emit_eh_toc_restore, rs6000_emit_allocate_stack, rs6000_output_function_prologue, rs6000_output_function_epilogue, rs6000_output_mi_thunk): Likewise. * config/sh/sh.c (sh_output_mi_thunk): Likewise. * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise. * ada/misc.c (record_code_position): Likewise. From-SVN: r68561
2003-06-23basic-block.h: Fix comment formatting.Kazu Hirata1-1/+1
* basic-block.h: Fix comment formatting. * bt-load.c: Likewise. * builtins.c: Likewise. * c-common.c: Likewise. * c-common.h: Likewise. * c-format.c: Likewise. * coverage.c: Likewise. * cpplib.h: Likewise. * cpppch.c: Likewise. * dbxout.c: Likewise. * diagnostic.c: Likewise. * dwarf2out.c: Likewise. * expr.c: Likewise. * fold-const.c: Likewise. * function.c: Likewise. * gcc.c: Likewise. * gcov-io.c: Likewise. * gcov-io.h: Likewise. * gcov.c: Likewise. * profile.c: Likewise. * real.h: Likewise. * sched-deps.c: Likewise. From-SVN: r68369
2003-06-22* function.c (set_insn_locators): Mark as unused.Andreas Schwab1-1/+1
From-SVN: r68350
2003-06-20tree.h (expand_function_end): Remove all parameters.Nathan Sidwell1-14/+3
* tree.h (expand_function_end): Remove all parameters. * function.c (expand_function_end): Remove all parameters. Use input_location. Never expand_end_bindings. * c-decl.c (c_expand_body_1): Adjust expand_function_end call. * coverage.c (create_coverage): Likewise. * ada/utils.c (end_subprog_body): Adjust expand_function_end call. * cp/semantics.c (genrtl_finish_function): Adjust expand_function_end call. * f/com.c (finish_function): Adjust expand_function_end call. * java/class.c (push_class): Use a location_t to save place. (emit_register_classes): Set input_location. Adjust expand_function_end call. * java/resource.c (write_resource_constructor): Likewise. * java/decl.c (end_java_method): Adjust expand_function_end call. * java/parse.y (source_end_java_method): Likewise. * treelang/treetree.c (tree_code_create_function_wrapup): Adjust expand_function_end call. From-SVN: r68255
2003-06-16decl.c, [...]: Don't use the PTR macro.Kaveh R. Ghazi1-1/+1
cp: * cp/decl.c, cp/pt.c, cp/search.c, cp/tree.c: Don't use the PTR macro. gcc: * bitmap.c, builtins.c, c-incpath.c, cgraph.c, config/frv/frv.c, config/mips/mips.c, cppfiles.c, cpphash.c, cppinit.c, cpplib.c, dwarf2out.c, dwarfout.c, except.c, expr.c, expr.h, fold-const.c, function.c, gcc.c, genoutput.c, gensupport.c, global.c, haifa-sched.c, hashtable.c, ifcvt.c, integrate.c, local-alloc.c, loop.c, mips-tdump.c, mips-tfile.c, mkdeps.c, protoize.c, read-rtl.c, recog.h, reload1.c, sbitmap.c, ssa-dce.c, stringpool.c, tlink.c, tree.c, varasm.c, varray.c: Don't use the PTR macro. From-SVN: r68043
2003-06-16convert.c, [...]: Replace overly specific references to "GNU C" and "GNU C ↵Nathanael Nerode1-1/+1
Compiler" with... * convert.c, dwarf2out.c, dwarfout.c, emit-rtl.c, function.c, lists.c, print-rtl.c, print-tree.c, read-rtl.c, rtl-error.c, stmt.c, toplev.c, integrate.h, loop.h, machmode.h, rtl.h, ssa.h, tree.def: Replace overly specific references to "GNU C" and "GNU C Compiler" with references to "GCC". From-SVN: r68004
2003-06-14tree.h (init_function_start): Remove filename and line paramters.Nathan Sidwell1-8/+7
* tree.h (init_function_start): Remove filename and line paramters. * function.c (init_function_start): Remove filename and line parameters. Use DECL_SOURCE_LOCATION. * c-decl.c (store_parm_decls): Adjust init_function_start call. (c_expand_body_1): Likewise. * coverage.c (create_coverage): Likewise. * ada/utils.c (begin_subprog_body): Adjust init_function_start call. * cp/decl.c (start_function): Adjust init_function_start call. * cp/method.c (use_thunk): Likewise. * cp/semantics.c (genrtl_start_function): Likewise. * f/com.c (stor_parm_decls): Adjust init_function_start call. * java/class.c (emit_register_classes): Adjust init_function_start call. * java/decl.c (complete_start_java_method): Likewise. * java/resource.c (write_resource_constructor): Likewise. * objc/objc-act.c (build_tmp_function_decl): Set line number to zero. (hack_method_prototype): Adjust init_function_start call. * treelang/treetree.c (tree_code_create_function_initial): Adjust init_function_start call. From-SVN: r67953
2003-06-08cfglayout.c (insn_scope): New static functionJan Hubicka1-0/+18
* cfglayout.c (insn_scope): New static function (block_locators_*, line_locators*, file_locators*): New static varrays. (scope_to_insns_initialize): Use them. (insn_line, insn_file): New functions. (scope_to_insns_finalize): Use insn_scope. (prologue_locator, epilogue_locator): New global variables. * emit-rt.c (try_split, make_insn_raw, make_jump_insn_raw, make_call_insn_raw, emit_copy_of_insn_after): Use locators. (emit_insn_after_scope, emit_insn_before_scope emit_jump_insn_after_scope, emit_jump_insn_before_scope emit_call_insn_after_scope, emit_call_insn_before_scope): Rename to... (emit_insn_after_setloc, emit_insn_before_setloc emit_jump_insn_after_setloc, emit_jump_insn_before_setloc emit_call_insn_after_setloc, emit_call_insn_before_setloc): ... these; use locators. * final.c (notice_source_line): Use locators. (final_start_function): Set initial source file and line. (final_scan_insn): Use locators. * ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants, noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove, noce_try_cmove_arith, noce_try_minmax, noce_try_abs, noce_process_if_block, find_cond_trap): Likewise. * integrate.c (copy_insn_list): Likewise. * jump.c (duplicate_loop_exit_test): LIkewise. * print-rtl.c (print_rtx): Print locators. * recog.c (peephole2_optimize): Likewise. * rtl.h (INSN_SCOPE): Remove. (emit_insn_after_scope, emit_insn_before_scope emit_jump_insn_after_scope, emit_jump_insn_before_scope emit_call_insn_after_scope, emit_call_insn_before_scope): Rename to... (emit_insn_after_setloc, emit_insn_before_setloc emit_jump_insn_after_setloc, emit_jump_insn_before_setloc emit_call_insn_after_setloc, emit_call_insn_before_setloc): ... these; (insn_file, insn_line, prologue_locator, epilogue_locator): Declare. * unroll.c (copy_loop_body): Use locators. * function.c (set_insn_locators): New function. (thread_prologue_and_epilogue_insns): Set the locators accordingly. From-SVN: r67637
2003-06-04function.c (trampolines_created): New variable.Jakub Jelinek1-0/+4
* function.c (trampolines_created): New variable. (expand_function_end): Set it when doing INITIALIZE_TRAMPOLINE. * function.h (trampolines_created): Add. * config/s390/linux.h (ASM_FILE_END): Define. * config/alpha/linux-elf.h (ASM_FILE_END): Define. * config/m68k/linux.h (ASM_FILE_END): Define. * config/rs6000/linux.h (ASM_FILE_END): Define. * config/rs6000/linux64.h (ASM_FILE_END): Define. * config/rs6000/ppc-asm.h: Add .note.GNU-stack on powerpc-linux. * config/sparc/linux.h (ASM_FILE_END): Define. * config/sparc/linux64.h (ASM_FILE_END): Define. * config/i386/i386.c (ix86_asm_file_end): Use SUBTARGET_FILE_END. * config/i386/linux.h (SUBTARGET_FILE_END): Define. * config/i386/linux64.h (SUBTARGET_FILE_END): Define. From-SVN: r67447
2003-06-03function.c (assign_parms): Split complex arguments.Aldy Hernandez1-1/+66
2003-06-03 Aldy Hernandez <aldyh@redhat.com> * function.c (assign_parms): Split complex arguments. * doc/tm.texi (SPLIT_COMPLEX_ARGS): Document. * expr.h (SPLIT_COMPLEX_ARGS): Define. (split_complex_types): Protoize. (split_complex_values): Protoize. * calls.c (expand_call): Split complex arguments on architectures that require it. (split_complex_values): New. (split_complex_types): New. * config/rs6000/rs6000.c (rs6000_libcall_value): New. (rs6000_function_value): Handle complex values on AIX. (rs6000_complex_function_value): New. * config/rs6000/rs6000-protos.h (rs6000_libcall_value): Protoize. * config/rs6000/rs6000.h (LIBCALL_VALUE): Call function. (SPLIT_COMPLEX_ARGS): New. From-SVN: r67367
2003-05-31Add missed chunk in last commit.Andreas Jaeger1-2/+1
From-SVN: r67275
2003-05-31function.c (trampoline_address): Remove ALLOCATE_TRAMPOLINE usage.Andreas Jaeger1-5/+0
* function.c (trampoline_address): Remove ALLOCATE_TRAMPOLINE usage. * doc/tm.texi (Trampolines): Remove ALLOCATE_TRAMPOLINE. * config/d30v/d30v.h: Remove traces of ALLOCATE_TRAMPOLINE. * system.h: Poison ALLOCATE_TRAMPOLINE. * doc/tm.texi (Misc): Remove HANDLE_PRAGMA. * system.h: Poison HANDLE_PRAGMA. In f/ * lex.c (ffelex_hash_): Remove HANDLE_PRAGMA and HANDLE_GENERIC_PRAGMA dependend code, remove #if 0 code. (pragma_getc): Removed. (pragma_ungetc): Removed. From-SVN: r67274
2003-05-27tree.h (contains_placeholder_p): Now returns bool.Richard Kenner1-2/+1
* tree.h (contains_placeholder_p): Now returns bool. (CONTAINS_PLACEHOLDER_P): New macro. (type_contains_placeholder_p): New function. * tree.c (save_expr): Remove code avoiding folding COMPONENT_REF. (contains_placeholder_p): Now returns bool. Rework to use CONTAINS_PLACEHOLDER_P macro. (type_contains_placeholder_p): New function. * fold-const.c (fold, case COMPONENT_REF): Don't fold if type_contains_placeholder_p. (fold_range_test, fold_mathfn_compare, fold_inf_compare, fold): Use CONTAINS_PLACEHOLDER_P macro. * builtins.c (fold_builtin): Likewise. * calls.c (initialize_argument_information): Likewise. * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise. * explow.c (expr_size): Likewise. * expr.c (store_constructor, get_inner_reference): Likewise. * function.c (assign_parms): Likewise. * stor-layout.c (variable_size): Likewise. From-SVN: r67189
2003-05-17* function.c (assign_parms): Check for zero size args.Alan Modra1-0/+3
From-SVN: r66901
2003-05-11coverage.h (coverage_counter_alloc): New function.Nathan Sidwell1-2/+0
* coverage.h (coverage_counter_alloc): New function. * function.h (struct function): Remove arc_profile flag. * coverage.c (fn_ident): Remove. (fn_b_ctrs, no_coverage): New. (get_coverage_counts): Use current_function_funcdef_no. (coverage_counter_alloc): New. (coverage_counter_ref): Adjust. (coverage_begin_output): Check no_coverage. Use current_function_funcdef_no. (coverage_end_function): Likewise. (create_coverage): Set no_coverage. Set DECL_UNINLINEABLE rather than clearing flag_inline_functions. Do not clear arc_profile flag. * function.c (prepare_function_start): Do not set arc_profile flag. * profile.c (instrument_edges): Return number of instrumented edges. Use a for loop. (branch_prob): Call coverage_counter_alloc. Make BB_TO_GCOV_INDEX local to here and simplify. Use profile_arc_flag not arc_profile flag. (find_spanning_tree): Reformat. * toplev.c (rest_of_compilation): Use profile_arc_flags and flag_test_coverage rather than arc_profile flag. From-SVN: r66695
2003-05-09expr.c (move_block_from_reg): Remove "size" parm.Alan Modra1-10/+44
* expr.c (move_block_from_reg): Remove "size" parm. Localize vars. Move code handling pieces not larger than a word to.. * function.c (assign_parms): ..here, but use change_address instead of adjust_address and operand_subword, and expand_binop instead of expand_shift. Adjust calls to move_block_from_reg. * expr.h (move_block_from_reg): Update declaration. (copy_blkmode_from_reg): Formatting. * Makefile.in (function.o): Add $(OPTABS_H) to deps. * config/alpha/alpha.c (alpha_setup_incoming_varargs): Adjust move_block_from_reg calls. * config/arc/arc.c (arc_setup_incoming_varargs): Likewise. * config/i960/i960.c (i960_setup_incoming_varargs): Likewise. * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise. * config/m88k/m88k.c (m88k_builtin_saveregsk): Likewise. * config/mips/mips.c (mips_setup_incoming_varargs): Likewise. * config/pa/pa.c (hppa_builtin_saveregs): Likewise. * config/romp/romp.h (SETUP_INCOMING_VARARGS): Likewise. * config/rs6000/rs6000.c (setup_incoming_varargs): Likewise. * config/sh/sh.c (sh_builtin_saveregs): Likewise. From-SVN: r66623
2003-05-07function.c (assign_parms): Correct reversed reg_parm_stack_space test.Alan Modra1-1/+4
* function.c (assign_parms): Correct reversed reg_parm_stack_space test. Add partial in-regs size to stack_args_size. From-SVN: r66560
2003-05-03re PR c/10604 (-Wall includes sign conversion warning [3.3 regression])Zack Weinberg1-7/+2
PR c/10604 * c-common.c (warn_sign_compare): Initialize to -1. * c-opts.c (c_common_init_options): Don't set warn_sign_compare here. (c_common_decode_option <OPT_Wall>): Set warn_sign_compare for C++ only. (c_common_post_options): Set warn_sign_compare from extra_warnings if it's still -1 at this point. * toplev.c (maybe_warn_unused_parameter): New static variable. (set_Wextra): New static function. (W_options): Remove "extra". (decode_W_option): Call set_Wextra. (independent_decode_option): Likewise. (set_Wunused): Cooperate with set_Wextra in setting warn_unused_parameter. (rest_of_compilation): No need to check extra_warnings as well as warn_uninitialized. * c-typeck.c (build_binary_op, build_conditional_expr): No need to check extra_warnings as well as warn_sign_compare. (internal_build_compound_expr): No need to check extra_warnings as well as warn_unused_value. * function.c (expand_function_end): No need to check extra_warnings as well as warn_unused_parameter. * stmt.c (expand_expr_stmt_value): No need to check extra_warnings as well as warn_unused_value. * cp/typeck.c (build_x_compound_expr): No need to check extra_warnings as well as warn_unused_value. * doc/invoke.texi: Clarify documentation of -Wsign-compare. * gcc.dg/compare7.c, g++.dg/warn/compare1.C: New testcases. * Makefile.in: Disable -Werror for gengtype-lex.o. From-SVN: r66436
2003-05-02calls.c (struct arg_data): Move offset, slot_offset, size and alignment_pad ↵Alan Modra1-135/+156
to struct locate_and_pad_arg_data. * calls.c (struct arg_data): Move offset, slot_offset, size and alignment_pad to struct locate_and_pad_arg_data. Update all refs. (initialize_argument_information): Adjust call to locate_and_pad_parm. Delete alignment_pad var. Don't calculate slot_offset here. (emit_library_call_value_1): Delete alignment_pad, offset and size vars. Use struct locate_and_pad_arg_data instead. Adjust refs. Adjust call to locate_and_pad_parm. Don't tweak arg size for partial in-regs here. Formatting fixes. * expr.h (struct locate_and_pad_arg_data): New struct. (locate_and_pad_parm): Adjust declaration. * function.c (assign_parms): Localize vars. Use "locate" instead of other arg location vars. Don't invoke FUNCTION_ARG or FUNCTION_INCOMING_ARG unless pretend_named is different from named_arg. Heed MUST_PASS_IN_STACK and set up "partial" before calling locate_and_pad_parm. Adjust locate_and_pad_parm call. Use slot_offset for stack home of reg parms. Correct test for parm passed in memory. Formatting fixes. (locate_and_pad_parm): Add "partial" to params. Replace offset_ptr arg_size_ptr and alignment pad with "locate". Set slot_offset here. Correct initial_offset_ptr handling. Localize vars. Always pad locate->offset even when in_regs. From-SVN: r66383
2003-04-30* function.c (purge_addressof_1): Postpone insn in fewer cases.Zdenek Dvorak1-7/+9
From-SVN: r66286
2003-04-22Fix typo in comment.Richard Kenner1-1/+1
From-SVN: r65935
2003-04-22function.c (purge_addressof_1): In (mem (addressof (reg))) case for reg notes...J"orn Rennecke1-0/+30
* function.c (purge_addressof_1): In (mem (addressof (reg))) case for reg notes, if there are no substitutions, just use a SUBREG. From-SVN: r65934
2003-04-18function.c (purge_addressof_1): For ADDRESSOF...Richard Kenner1-1/+9
* function.c (purge_addressof_1): For ADDRESSOF, see if SUB is a hard or virtual register and copy into pseudo if replacement fails. From-SVN: r65798
2003-04-11libfuncs.h (LTI_setbits, [...]): New.Richard Henderson1-2/+1
* libfuncs.h (LTI_setbits, LTI_gcov_flush, LTI_gcov_init): New. (setbits_libfunc, gcov_flush_libfunc, gcov_init_libfunc): New. * optabs.c (init_optabs): Initialize them. (init_libfuncs): Use init_one_libfunc. * calls.c (expand_call): Use gcov_flush_libfunc. * expr.c (store_constructor): Use setbits_libfunc. * function.c (expand_main_function): Use init_one_libfunc. * profile.c (create_profiler): Use gcov_init_libfunc and DECL_RTL. From-SVN: r65478
2003-04-11c-decl.c (struct binding_level): Add shadowed_tags and function_body...Zack Weinberg1-4/+10
2003-04-10 Zack Weinberg <zack@codesourcery.com> * c-decl.c (struct binding_level): Add shadowed_tags and function_body; remove this_block, tag_transparent, and subblocks_tag_transparent; update comments. (clear_binding_level, lookup_tag_reverse): Kill. (make_binding_level): Use ggc_alloc_cleared or memset. (lookup_tag): Remove struct binding_level* parameter. All callers changed. Just look at IDENTIFIER_TAG_VALUE, and current_binding_level->tags if asked for thislevel_only or if we might have to diagnose "struct foo; union foo;" (pushlevel): Ignore argument. Do not push another binding level on the transition from the parameters to the top level of the function body; just tweak the flags and proceed. (poplevel): Overhaul. Clear IDENTIFIER_TAG_VALUEs; on exiting a function body, separate the parameter list from the top-level local variables. (set_block): Do nothing. (pushtag): Set IDENTIFIER_TAG_VALUE and add an entry to shadowed_tags if necessary. (warn_if_shadowing): Nuke the special case for local shadowing parameter. (pushdecl): Do not create a shadow entry if we are replacing an older decl in the same binding level. (pushdecl_function_level): Tweak for new way of indicating function scope. (shadow_tag_warned): Use TYPE_NAME, not lookup_tag_reverse. (start_function): Don't set subblocks_tag_transparent. (finish_function): Fix up the binding_level stack for totally empty functions. Otherwise, don't call poplevel. * c-common.c (shadow_warning): MANDATORY argument is no longer necessary. Always use plain warning. * c-common.h: Update to match. * cfglayout.c (scope_to_insns_initialize): Clear block when we hit the FUNCTION_DECL. * function.c: Do not create cyclic tree structure. 2003-04-10 Zack Weinberg <zack@codesourcery.com> * c-tree.h (struct lang_identifier): Replace global_value, local_value members with symbol_value, tag_value. Kill implicit_decl and limbo_value. (IDENTIFIER_GLOBAL_VALUE, IDENTIFIER_LOCAL_VALUE, IDENTIFIER_LIMBO_VALUE, IDENTIFIER_IMPLICIT_DECL, C_MISSING_PROTOTYPE_WARNED): Kill. (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE, C_DECL_IMPLICIT, C_DECL_ISNT_PROTOTYPE): New. (C_DECL_ANTICIPATED): Rename to C_DECL_INVISIBLE. (implicit_decl_warning, lookup_name_current_level, record_function_scope_shadow): Don't prototype. (pushdecl_function_level): Prototype. * c-decl.c (truly_local_externals): New variable. (struct binding_level): Adjust commentary. (get_function_binding_level, clear_limbo_values, record_function_scope_shadow): Kill. (lookup_name_current_level, implicit_decl_warning): Are now static. (any_external_decl, record_external_decl): New static functions. (clone_underlying type): Split out of pushdecl. (c_print_identifier): Update to match changes to struct lang_identifier. (poplevel): Delete #if 0 block. Make externals invisible instead of clearing their IDENTIFIER_SYMBOL_VALUEs. Don't call clear_limbo_values. Refer to IDENTIFIER_SYMBOL_VALUE not IDENTIFIER_GLOBAL_VALUE or IDENTIFIER_LOCAL_VALUE. (duplicate-decls): For real parm decl after a forward decl, set TREE_ASM_WRITTEN here. Allow void foo(...) followed by foo(...) { } with only a warning. Say whether a previous declaration was implicit. (warn_if_shadowing): Now handles all shadowing, not just local-over-local. Clarify comments. (pushdecl): Rewritten. There is no longer a distinction between global and local symbol values; they're all IDENTIFIER_SYMBOL_VALUE. Call record_external_decl on all DECL_EXTERNAL decls, and use any_external_decl to check against previous externals. Kill #if 0 blocks. Don't tolerate error_mark_node being NULL. (pushdecl_top_level): Handle only those cases which Objective C (the only user) needs. (pushdecl_function_level): New function. (implicitly_declare): Create ordinary decls with C_DECL_IMPLICIT set. Recycle old decls, however they got created. (lookup_name): It's always IDENTIFIER_SYMBOL_VALUE. Return 0 for C_DECL_INVISIBLE symbols. (lookup_name_current_level): Likewise. Use chain_member. (c_make_fname_decl): Don't muck with DECL_CONTEXT. Use pushdecl_function_level. (builtin_function): Use C_DECL_INVISIBLE. (start_function): Don't muck with IDENTIFIER_IMPLICIT_DECL. Use C_DECL_ISNT_PROTOTYPE and C_DECL_IMPLICIT. (store_parm_decls): It's IDENTIFIER_SYMBOL_VALUE now. (identifier_global_value): Same. Must scan global_binding_level in extremis. * c-typeck.c (undeclared_variable): New static function, split from build_external_ref. (build_external_ref): Use DECL_CONTEXT, not IDENTIFIER_LOCAL_VALUE, to decide whether a local hides an instance variable. Restructure for clarity. * objc/objc-act.c: Use identifier_global_value, not IDENTIFIER_GLOBAL_VALUE. cp: * decl.c: Update all calls to shadow_warning. testsuite: * gcc.c-torture/execute/builtin-noret-2.c: New. * gcc.c-torture/execute/builtin-noret-2.x: New. XFAIL builtin-noret-2.c at -O1 and above. * gcc.dg/redecl.c: New. * gcc.dg/Wshadow-1.c: Update error regexps. From-SVN: r65460
2003-04-10re PR inline-asm/8803 (Internal compiler error in ↵Jan Hubicka1-0/+6
instantiate_virtual_regs_1, at function.c:3974) PR inline-asm/8803 * function.c (instantate_virtual_regs): Verify that all ASM statements match after the virutal regs instantiation. From-SVN: r65438
2003-04-09function.c (purge_addressof): Use free_INSN_LIST_node instead of ↵Zdenek Dvorak1-1/+1
free_EXPR_LIST_node. * function.c (purge_addressof): Use free_INSN_LIST_node instead of free_EXPR_LIST_node. From-SVN: r65396
2003-04-08function.c (postponed_insns): New.Zdenek Dvorak1-12/+41
* function.c (postponed_insns): New. (purge_addressof_1): Postpone processing of insns if addressofs are not put into stack. (purge_addressof): Process postponed insns. From-SVN: r65380
2003-04-07re PR rtl-optimization/8634 (incorrect code for inlining of memcpy under -O2)Richard Henderson1-2/+8
PR opt/8634 * function.c (purge_addressof_1): Don't try arithmetics for unchanging memories. From-SVN: r65351
2003-03-24function.c (put_var_into_stack): Change bool parameter to int.Mark Mitchell1-2/+2
* function.c (put_var_into_stack): Change bool parameter to int. (gen_mem_addressof): Likewise. * rtl.h (gen_mem_addressof): Likewise. * tree.h (put_var_into_stack): Likewise. * config/alpha/alpha.c (alpha_gp_save_rtx): Adjust call to gen_mem_addressof or put_var_into_stack. * config/c4x/c4x.c (c4x_expand_builtin): Likewise. * config/ia64/ia64.c (spill_tfmode_operand): Likewise. From-SVN: r64807
2003-03-24re PR c++/7086 (compile time regression)Mark Mitchell1-15/+24
PR c++/7086 * c-typeck.c (c_mark_addressable): Adjust calls to put_var_into_stack. * expr.c (expand_expr): Likewise. * function.c (put_var_into_stack): Add rescan parameter. Do not call fixup_var_refs when rescan is false. (gen_mem_addressof): Likewise. (assign_parms): Adjust calls to put_var_into_stack. (setjmp_protect): Likewise. (setjmp_protect_args): Likewise. * rtl.h (gen_mem_addressof): Change prototype. * stmt.c (expand_decl): Adjust calls to put_var_into_stack. * tree.h (put_var_into_stack): Change prototype. PR c++/7086 * utils2.c: Adjust calls to put_var_into_stack. PR c++/7086 * semantics.c (genrtl_named_return_value): Adjust calls to put_var_into_stack. * typeck.c (cxx_mark_addressable): Likewise. PR c++/7086 * com.c (ffecom_sym_transform_): Adjust calls to put_var_into_stack. (ffe_mark_addressable): Likewise. From-SVN: r64781
2003-03-21re PR inline-asm/7916 (ICE in instantiate_virtual_register_1)Jan Hubicka1-4/+33
PR inline-asm/7916 * function.c (instantiate_virtual_regs_lossage): New function. (instantiate_virtual_regs_1): Use it. (instantiate_virtual_regs): Do not continue in substition when insn has been deleted. From-SVN: r64681
2003-03-18* function.c (next_block_index): Mark with GTY.Geoffrey Keating1-1/+1
From-SVN: r64551
2003-03-17function.c (assign_parms): For a struct value address passed as first ↵Olivier Hainque1-18/+20
argument... * function.c (assign_parms): For a struct value address passed as first argument, delay the function's result RTL setup code until after the emission of parameter conversions. From-SVN: r64493
2003-03-17function.c (thread_prologue_and_epilogue_insns): Set delete_unused argument ↵Michael Hayes1-1/+1
to 0 for redirect_jump. * function.c (thread_prologue_and_epilogue_insns): Set delete_unused argument to 0 for redirect_jump. From-SVN: r64468
2003-03-15re PR rtl-optimization/9387 (jump threading bug)Michael Hayes1-12/+1
PR optimization/9387 * function.c (thread_prologue_and_epilogue_insns): Use redirect_jump for conditional returns. From-SVN: r64390
2003-03-04function.c (STACK_ALIGNMENT_NEEDED): New macro.John David Anglin1-7/+22
* function.c (STACK_ALIGNMENT_NEEDED): New macro. Default to 1. (assign_stack_local_1): Perform overall stack alignment only when STACK_ALIGNMENT_NEEDED is non-zero. * doc/tm.texi (STACK_ALIGNMENT_NEEDED): Document. * pa.c (compute_frame_size): Rename fsize to size. Account for alignment to a word boundary before general register save block. Only account for double-word alignment before floating point register save block if one or more are saved. Don't allocate space for %r3 when frame pointer is needed. (hppa_expand_prologue): Include alignment to word boundary in local frame size. * pa.h (STARTING_FRAME_OFFSET): Define to 8 on both 32 and 64-bit ports. (STACK_ALIGNMENT_NEEDED): Define. From-SVN: r63771
2003-02-28emit-rtl.c (set_reg_attrs_for_parm): New function.Josef Zlomek1-1/+1
* emit-rtl.c (set_reg_attrs_for_parm): New function. * rtl.h (set_reg_attrs_for_parm): New exported function. * function.c (assign_parms): Use set_reg_attrs_for_parm instead of set_reg_attrs_from_mem. From-SVN: r63548
2003-02-26function.c (assign_stack_local_1): Truncate constant added to ↵Alexandre Oliva1-3/+6
frame_pointer_rtx or virtual_stack_vars_rtx for Pmode. * function.c (assign_stack_local_1): Truncate constant added to frame_pointer_rtx or virtual_stack_vars_rtx for Pmode. From-SVN: r63488
2003-02-26function.c (assign_parms): Set reg_attrs for parameters passed in registers.Josef Zlomek1-0/+4
* function.c (assign_parms): Set reg_attrs for parameters passed in registers. From-SVN: r63458
2003-02-19calls.c (expand_call): Update call of INIT_CUMULATIVE_ARGSJan Hubicka1-1/+1
* calls.c (expand_call): Update call of INIT_CUMULATIVE_ARGS * function.c (assign_params): Likewise. * arm-protos.h (arm_init_cumulative_args): Update prototype. * arm.c (arm_init_cumulative_args): Update function. * arm.h (INIT_CUMULATIVE_ARGS): Update. * avr-protos.h (init_cumulative_args): Update prototype. * avr.c (init_cumulative_args): Update function. * avr.h (INIT_CUMULATIVE_ARGS): Update. * d30v-protos.h (d30v_init_cumulative_args): Update prototype. * d30v.c (d30v_init_cumulative_args): Update function. * d30v.h (INIT_CUMULATIVE_ARGS): Update. * frv-protos.h (frv_init_cumulative_args): Update prototype. * frv.c (frv_init_cumulative_args): Update function. * frv.h (INIT_CUMULATIVE_ARGS): Update. * mips.c (mips_expand_prolgue): Update call of INIT_CUMULATIVE_ARGS. * pa.h (INIT_CUMULATIVE_ARGS): Update. * sparc-protos.h (init_cumulative_args): Update prototype. * sparc.c (init_cumulative_args): Update function. * sparc.h (INIT_CUMULATIVE_ARGS): Update. * tm.texi (INIT_CUMULATIVE_ARGS): Update documentation. From-SVN: r63126
2003-02-15bb-reorder.c (find_traces_1_round): Don't connect easy to copy successors ↵Richard Henderson1-0/+2
with multiple predecessors. * bb-reorder.c (find_traces_1_round): Don't connect easy to copy successors with multiple predecessors. (connect_traces): Try harder to copy traces of length 1. * function.h (struct function): Add computed_goto_common_label, computed_goto_common_reg. * function.c (free_after_compilation): Zap them. * stmt.c (expand_computed_goto): Use them to produce one indirect branch per function. From-SVN: r62944