aboutsummaryrefslogtreecommitdiff
path: root/gcc/stmt.c
AgeCommit message (Collapse)AuthorFilesLines
2003-08-31re PR middle-end/11823 (Optimizing large jump tables for switch statements)Steven Bosscher1-1/+2
PR middle-end/11823 * stmt.c (expand_end_case_type): Only use jump tables for dense switch statements when optimizing for size. Co-Authored-By: Roger Sayle <roger@eyesopen.com> From-SVN: r70959
2003-08-29function.c (allocate_struct_function): New, split out of ...Richard Henderson1-19/+1
* function.c (allocate_struct_function): New, split out of ... (prepare_function_start, init_function_start): ... here. * expr.c (init_expr): Use ggc_alloc_cleared. * stmt.c (init_stmt_for_function): Likewise. * tree.h (allocate_struct_function): Declare. From-SVN: r70929
2003-08-16re PR c++/11512 (Spurious warning for comma-operator in templates)Nathan Sidwell1-9/+5
PR c++/11512 * stmt.c (expand_expr_stmt_value): Don't warn about any void typed expression. cp: PR c++/11512 * cvt.c (convert_to_void): Indicate which side of conditional has no effects, and rhs of comma operator. Test for no sideeffect expressions here and always build a convert expr. * init.c (expand_default_init): Convert the init to void. * typeck.c (build_x_compound_expr): Do not check for side effects here. (build_compound_expr): Do not convert lhs when building a template. testsuite: PR C++/11512 * g++.dg/template/warn1.C: New. From-SVN: r70505
2003-07-31Makefile.in (bubblestrap): Don't require a previous full bootstrap.Jason Merrill1-19/+37
* Makefile.in (bubblestrap): Don't require a previous full bootstrap. * expr.c (mostly_zeros_p): No longer static. * tree.h: Declare it. * stmt.c (resolve_asm_operand_names): Don't copy the pattern unless we need to do substitutions. From-SVN: r70031
2003-07-25Remove pedwarn_with_decl, warning_with_decl and error_with_decl from GCC.Gabriel Dos Reis1-5/+5
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-18/+15
* 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-17c-common.c (c_estimate_num_insns_1): Don't handle METHOD_CALL_EXPR.Steven Bosscher1-1/+0
2003-07-17 Steven Bosscher <steven@gcc.gnu.org> * c-common.c (c_estimate_num_insns_1): Don't handle METHOD_CALL_EXPR. * expr.c (safe_from_p): Likewise. * gengtype.c (adjust_field_tree_exp): Likewise. * stmt.c (warn_if_unused_value): Likewise * tree.c (first_rtl_op): Likewise. * tree.def: Don't define METHOD_CALL_EXPR. * java/lang.c (java_estimate_num_insns_1): Don't handle METHOD_CALL_EXPR. From-SVN: r69511
2003-07-15expr.c (expand_assignment): Remove an unused argument SUGGEST_REG.Kazu Hirata1-2/+2
* 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-1/+1
* 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-07rtl.h (emit_line_note): Take a location_t.Nathan Sidwell1-6/+4
* 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-06stmt.c: Convert remaining prototypes to ISO C90.Andreas Jaeger1-4/+4
* stmt.c: Convert remaining prototypes to ISO C90. * cfglayout.c: Likewise. * dbxout.c: Likewise. * gcc.c: Likewise. * genemit.c: Likewise. From-SVN: r69015
2003-07-06sbitmap.c: Convert prototypes to ISO C90.Andreas Jaeger1-282/+148
* sbitmap.c: Convert prototypes to ISO C90. * sbitmap.h: Likewise. * scan-decls.c: Likewise. * scan.c: Likewise. * sched-deps.c: Likewise. * sched-ebb.c: Likewise. * sched-int.h: Likewise. * sched-rgn.c: Likewise. * sched-vis.c: Likewise. * sibcall.c: Likewise. * simplify-rtx.c: Likewise. * sreal.c: Likewise. * sreal.h: Likewise. * ssa-ccp.c: Likewise. * ssa-dce.c: Likewise. * ssa.c: Likewise. * ssa.h: Likewise. * stack.h: Likewise. * stmt.c: Likewise. * stor-layout.c: Likewise. * stringpool.c: Likewise. * target.h: Likewise. * timevar.c: Likewise. * timevar.h: Likewise. * tlink.c: Likewise. * tracer.c: Likewise. * tree-inline.c: Likewise. * tree-inline.h: Likewise. * tree.c: Likewise. * tree.h: Likewise. From-SVN: r69002
2003-07-01* stmt.c (any_pending_cleanups): Further simplification.Jeff Law1-2/+2
From-SVN: r68789
2003-06-30stmt.c (any_pending_cleanups): Lose argument THIS_CONTOUR, it was always ↵Jeff Law1-5/+4
passed in the value '1'. * stmt.c (any_pending_cleanups): Lose argument THIS_CONTOUR, it was always passed in the value '1'. Simplify body appropriately. * tree.h (any_pending_cleanups): Corresponding changes. * calls.c: (expand_call): Corresponding changes. From-SVN: r68754
2003-06-29alloc-pool.c: Fix comment formatting.Kazu Hirata1-1/+1
* alloc-pool.c: Fix comment formatting. * bitmap.c: Likewise. * bitmap.h: Likewise. * bt-load.c: Likewise. * builtins.c: Likewise. * caller-save.c: Likewise. * cfganal.c: Likewise. * cfgrtl.c: Likewise. * collect2.c: Likewise. * cse.c: Likewise. * df.c: Likewise. * diagnostic.c: Likewise. * dwarf2out.c: Likewise. * dwarfout.c: Likewise. * expmed.c: Likewise. * final.c: Likewise. * flags.h: Likewise. * fold-const.c: Likewise. * gcc.c: Likewise. * gcov-io.h: Likewise. * gcov.c: Likewise. * genattrtab.c: Likewise. * genautomata.c: Likewise. * libgcov.c: Likewise. * mips-tfile.c: Likewise. * optabs.c: Likewise. * prefix.c: Likewise. * rtlanal.c: Likewise. * stmt.c: Likewise. * stor-layout.c: Likewise. * toplev.c: Likewise. * varasm.c: Likewise. * vmsdbgout.c: Likewise. From-SVN: r68672
2003-06-29dwarf2out.c (add_AT_string): Replace ggc_alloc_string (X, -1) with ggc_strdup.Kazu Hirata1-1/+1
* dwarf2out.c (add_AT_string): Replace ggc_alloc_string (X, -1) with ggc_strdup. * stmt.c (expand_asm_operands): Likewise. * config/rs6000/rs6000.md (builtin_setjmp_receiver): Likewise. From-SVN: r68659
2003-06-27rtl.h (emit_note): Remove FILE parameter.Nathan Sidwell1-16/+16
* 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-27stmt.c (do_jump_if_equal): Return 0 earlier if OP1 and OP2 are known to be ↵Kazu Hirata1-1/+1
not equivalent. * stmt.c (do_jump_if_equal): Return 0 earlier if OP1 and OP2 are known to be not equivalent. From-SVN: r68557
2003-06-25re PR c/10178 (ICE in tree_low_cst)Zack Weinberg1-0/+3
PR 10178 * langhooks.h (struct lang_hooks): Add no_body_blocks bool. * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): New; default false. * c-lang.c, objc/objc-lang.c: Override LANG_HOOKS_NO_BODY_BLOCKS to true. * stmt.c (is_body_block): If lang_hooks.no_body_blocks, always return 0. From-SVN: r68483
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-12ChangeLog: Follow spelling conventions.Kazu Hirata1-1/+1
* ChangeLog: Follow spelling conventions. * ChangeLog.2: Likewise. * c-decl.c: Likewise. * cfgloop.h: Likewise. * cgraph.c: Likewise. * coverage.c: Likewise. * cppcharset.c: Likewise. * cpphash.h: Likewise. * cpplex.c: Likewise. * cpplib.c: Likewise. * dbxout.c: Likewise. * df.c: Likewise. * dwarf2out.c: Likewise. * dwarfout.c: Likewise. * emit-rtl.c: Likewise. * explow.c: Likewise. * gcov-io.c: Likewise. * gcov-io.h: Likewise. * gcov.c: Likewise. * gengtype.c: Likewise. * ggc.h: Likewise. * opts.c: Likewise. * real.c: Likewise. * reload.c: Likewise. * stmt.c: Likewise. From-SVN: r67849
2003-06-11stmt.c (expand_asm_operands): Don't warn for memories with queued addresses.Richard Henderson1-3/+4
* stmt.c (expand_asm_operands): Don't warn for memories with queued addresses. From-SVN: r67808
2003-06-09* stmt.c (expand_asm_operands): Re-word warning.Richard Henderson1-2/+2
From-SVN: r67678
2003-06-08expr.h (EXPAND_MEMORY): New.Richard Henderson1-27/+26
* expr.h (EXPAND_MEMORY): New. * expr.c (expand_expr): Check it. * stmt.c (expand_asm_operands): Provide it when the constraint requires a memory. Warn for memory input constraints without a memory operand. * gcc.dg/20011029-2.c: Fix the array reference. * gcc.dg/asm-7.c: New. From-SVN: r67645
2003-06-06stmt.c (resolve_asm_operand_names): Rename from resolve_operand_names.Jason Merrill1-35/+35
* stmt.c (resolve_asm_operand_names): Rename from resolve_operand_names. No longer static. Avoid needless copying. Don't build array of constraints. (expand_asm_operands): Build it here. * tree.h: Declare resolve_asm_operand_names. * stmt.c (expand_decl): Put artificial vars into registers even when not optimizing, and don't mark the regs as user vars. From-SVN: r67556
2003-05-08stmt.c (emit_locus): New macro.Gabriel Dos Reis1-16/+15
* stmt.c (emit_locus): New macro. (emit_filename): Remove. (emit_lineno): Likewise. (struct stmt_status): Replace members x_emit_filename and x_emit_lineno with x_emit_locus. (set_file_and_line_for_stmt): Adjust. (expand_expr_stmt_value): Don't use warning_with_file_and_file. (warn_if_unused_value): Likewise. (check_seenlabel): Likewise. From-SVN: r66603
2003-05-07stmt.c (force_label_rtx): New function, based on logic formerly found in ↵Zack Weinberg1-0/+23
expand_expr. * stmt.c (force_label_rtx): New function, based on logic formerly found in expand_expr. * expr.h: Prototype it. * expr.c (expand_expr <LABEL_DECL>): Use force_label_rtx if appropriate. * varasm.c (decode_addr_const <LABEL_DECL>): Use force_label_rtx. * print-tree.c (debug_tree): Free the table after we're done with it. Use putc. treelang: * Make-lang.in: Set -Wno-error for treelang/lex.o. From-SVN: r66579
2003-05-03re PR c/10604 (-Wall includes sign conversion warning [3.3 regression])Zack Weinberg1-1/+1
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-04-20c-common.h, [...]: Rename genrtl_decl_cleanup to genrtl_cleanup_stmt.Chris Lattner1-45/+32
* c-common.h, c-semantics.c: Rename genrtl_decl_cleanup to genrtl_cleanup_stmt. Correct comment at head of genrtl_cleanup_stmt (no such thing as a DECL_CLEANUP). * stmt.c (struct nesting): Kill n_function_calls. (expand_start_bindings): Don't set thisblock->data.block.n_function_calls. (expand_end_bindings): Compare function_call_count against 0. (expand_cleanups): Kill DONT_DO argument; all callers passed NULL_TREE. All callers updated to match. Co-Authored-By: Zack Weinberg <zack@codesourcery.com> From-SVN: r65869
2003-04-18re PR rtl-optimization/7675 (ICE in fixup_var_refs_1)Eric Botcazou1-0/+1
PR optimization/7675 * c-typeck.c (build_external_ref): Set the DECL_NONLOCAL flag on VAR_DECL, PARM_DECL and FUNCTION_DECL from within nested functions if they refer to declarations from parent functions. * stmt.c (expand_decl): Don't put automatic variables in registers if the DECL_NONLOCAL flag is set. From-SVN: r65774
2003-03-24re PR c++/7086 (compile time regression)Mark Mitchell1-1/+1
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-23re PR c/10178 (ICE in tree_low_cst)Roger Sayle1-0/+1
PR c/10178 * stmt.c (expand_end_case_type): Check for overflow in range when determining whether to use a bit-test implementation. * gcc.c-torture/compile/20030323-1.c: New test case. From-SVN: r64757
2003-03-17stmt.c (tail_recursion_args): Call promote_mode to set unsignedp flag ↵Steve Ellcey1-5/+5
correctly before calling convert_move. * stmt.c (tail_recursion_args): Call promote_mode to set unsignedp flag correctly before calling convert_move. From-SVN: r64501
2003-03-14stmt.c (expand_start_case): Call emit_queue ().Jakub Jelinek1-0/+1
* stmt.c (expand_start_case): Call emit_queue (). * gcc.c-torture/execute/20030313-1.c: New test. From-SVN: r64366
2003-03-12Fix PR target/9797 and PR c/9853.Daniel Jacobowitz1-0/+3
* stmt.c (expand_decl_init): Call push_temp_slots () and pop_temp_slots (). From-SVN: r64250
2003-03-05stmt.c (fixup_gotos): Change meaning of DONT_JUMP_IN.Richard Kenner1-8/+11
* stmt.c (fixup_gotos): Change meaning of DONT_JUMP_IN. (expand_end_bindings): Likewise. From-SVN: r63874
2003-02-22i386.c (builtin_description): Add __builtin_ia32_paddq and __builtin_ia32_psubq.Jan Hubicka1-3/+7
* i386.c (builtin_description): Add __builtin_ia32_paddq and __builtin_ia32_psubq. Fix __builtin_ia32_paddq128 and __builtin_ia32_psubq128. * i386.h (IX86_BUILTIN_PADDQ, IX86_BUILTIN_PSUBQ): New. * i386.md (addv*, mmx_ior*, mmx_xoe*, mmx_and*): Add missing '%'. (mmx_adddi3, mmx_subdi3): New. * mmintrin.h (_mm_add_si64, _mm_sub_si64): New. * xmmintrin.h (_mm_movepi64_pi64): New. (_mm_add_epi64, _mm_sub_epi64): fix. (_mm_mul_pu16): Rename to... (_mm_mul_su32): ... this one. * builtins.c (expand_builtin_expect): Do not predict flag_guess_branch_prob is not set. * c-semantics.c (expand_stmt): Likewise. * predict.c (predict_insn): Likewise. * stmt.c (expand_continue_loop): Likewise. * toplev.c (rest_of_compilation): Do not call note_prediction_to_br_prob and note_prediction_to_br_prob when not optimizing. From-SVN: r63263
2003-02-15bb-reorder.c (find_traces_1_round): Don't connect easy to copy successors ↵Richard Henderson1-3/+16
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
2003-01-25stmt.c (emit_case_bit_tests): New routine to implement suitable switch ↵Roger Sayle1-3/+192
statements using the equivalent of "if... * stmt.c (emit_case_bit_tests): New routine to implement suitable switch statements using the equivalent of "if ((1<<x) & cst) ... ". (case_bit_test_cmp): New comparison function for "qsort" to order case_bit_tests by decreasing number of destination nodes. (lshift_cheap_p): New function to determine if "1 << x" is cheap. (expand_end_case_type): Use emit_case_bit_tests to implement suitable switch statments. (CASE_USE_BIT_TESTS): New target macro to disable the above. * Makefile.in (stmt.o): Add dependency on optab.h. * doc/tm.texi (CASE_USE_BIT_TESTS): Document new target macro. * gcc.c-torture/execute/switch-1.c: New test case. From-SVN: r61784
2003-01-24emit-rtl.c (reg_attrs_htab): New static variable.Jan Hubicka1-8/+0
* emit-rtl.c (reg_attrs_htab): New static variable. (reg_attrs_htab_hash, reg_attrs_htab_eq, get_reg_attrs): New static functions. (reg_rtx): Do not maintain regno_decl. (gen_rtx_REG_offset, set_reg_attrs_from_mem, set_delc_rtx, set_mem_attrs_from_reg): New global function. (init_emit): Do not initialize regno_decl. (init_emit_once): initialize reg_attrs_htab. * final.c (alter_subreg): Do not replace REG by SUBREG. (gen_mem_expr_from_op): Improve output. (output_asm_operands): Likewise. * function.c (assign_params): Do not set REGNO_DECL. * function.h (struct function): Kill regno_decl. (REGNO_DECL): Kill. * gengtype.c (adjust_field_rtx_def): Handle new field of reg. * print_rtl.c (print_rtx): Output REG information. * regclass.c (reg_scan_mark_refs): Update attrs. * reload1.c (alter_reg): Likewise. * simplify_rtx.c (simplify_subreg): Likewise. * stmt.c (expand_decl): Likewise. * rtl.def (REG): Add new field. * rtl.h (struct reg_attrs): New. (rtunion_def): At rtreg. (X0MEMATTR): Add checking. (X0REGATTR, REG_ATTRS, REG_EXPR, REG_OFFSET): New macro. (set_reg_attrs_from_mem, set_mem_attrs_from_reg, gen_rtx_REG_offset): Declare. * tree.h (SET_DECL_RTL): Call set_decl_rtl. From-SVN: r61741
2003-01-24Rename -W to -Wextra.Phil Edwards1-1/+1
2003-01-24 Phil Edwards <pme@gcc.gnu.org> Rename -W to -Wextra. * c-decl.c: Update comments. * c-typeck.c: Likewise. * flags.h: Likewise. * function.c: Likewise. * stmt.c: Likewise. * toplev.c: Update comments. (W_options): Add 'extra'. (display_help): Remove '-W'. (decode_W_option): Special warn_uninitialized treatment in the case of -Wextra. * doc/invoke.texi: Update with new entries. From-SVN: r61696
2003-01-21stmt.c (same_case_target_p): New function to determine whether two case ↵Roger Sayle1-13/+65
labels branch to the same target. * stmt.c (same_case_target_p): New function to determine whether two case labels branch to the same target. Split out from... (group_case_nodes): ... here. Use same_case_target_p instead. (strip_default_case_nodes): Remove explicit case nodes that branch to the default destination. (expand_end_case_type): Call strip_default_case_nodes after group_case_nodes, to simplify the case-list before we count it. Only generate table_label RTX when actually needed. Try to share thiscase->exit_label and thiscase->data.case_stmt.default_label when a switch has no explicit default case. Simplify test for constant index. From-SVN: r61570
2003-01-20re PR rtl-optimization/7507 (ICE (segfault) with -O2)Richard Henderson1-11/+21
PR opt/7507 * stmt.c (expand_asm_operands): Validize memory operands. * gcc.dg/20030120-1.c: New. From-SVN: r61535
2003-01-16arm.h (CONDITIONAL_REGISTER_USAGE): Avoid signed/unsigned warning.Kaveh R. Ghazi1-1/+1
* arm.h (CONDITIONAL_REGISTER_USAGE): Avoid signed/unsigned warning. * emit-rtl.c (gen_rtx_REG, set_mem_attributes_minus_bitpos, init_emit_once): Likewise. * flow.c (mark_regs_live_at_end, calculate_global_regs_live): Likewise. * function.c (assign_stack_temp_for_type): Likewise. * loop.c (loop_invariant_p): Likewise. * recog.c (push_operand): Likewise. * regclass.c (init_reg_sets_1): Likewise. * reload.c (update_auto_inc_notes): Likewise. * reload1.c (reload_as_needed, emit_input_reload_insns): Likewise. * stmt.c (expand_asm_operands): Likewise. * stor-layout.c (start_record_layout): Likewise. cp: * class.c (layout_virtual_bases): Avoid signed/unsigned warning. java: * jcf-write.c (generate_bytecode_insns): Avoid signed/unsigned warning. From-SVN: r61389
2003-01-13Add 2003 copyright notices for constraints string patch, also 2002 noticeJoern Rennecke1-1/+1
for genoutput.c . From-SVN: r61258
2003-01-09defaults.h (EXTRA_MEMORY_CONSTRAINT): Add STR argument.J"orn Rennecke1-10/+17
* defaults.h (EXTRA_MEMORY_CONSTRAINT): Add STR argument. (EXTRA_ADDRESS_CONSTRAINT): Likewise. (CONSTRAINT_LEN): Provide default definition. (CONST_OK_FOR_CONSTRAINT_P): Likewise. (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Likewise. (EXTRA_CONSTRAINT_STR): Likewise. (REG_CLASS_FROM_CONSTRAINT): Define. * genoutput.c (check_constraint_len, constraint_len): New functions. (validate_insn_alternatives): Check CONSTRAINT_LEN for each constraint / modifier. (gen_insn): Call check_constraint_len. * local-alloc.c (block_alloc): Update to use new macros / pass second argument to EXTRA_{MEMORY,ADDRESS}_CONSTRAINT. * ra-build.c (handle_asm_insn): Likewise. * recog.c (asm_operand_ok, preprocess_constraints): Likewise. (constrain_operands, peep2_find_free_register): Likewise. * regclass.c (record_operand_costs, record_reg_classes): Likewise. * regmove.c (find_matches): Likewise. * reload.c (push_secondary_reload, find_reloads): Likewise. (alternative_allows_memconst): Likewise. * reload1.c (maybe_fix_stack_asms): Likewise. (reload_cse_simplify_operands): Likewise. * stmt.c (parse_output_constraint, parse_input_constraint): Likewise. * doc/tm.texi (CONSTRAINT_LEN, REG_CLASS_FROM_CONSTRAINT): Document. (CONST_OK_FOR_CONSTRAINT_P): Likewise. (CONST_DOUBLE_OK_FOR_CONSTRAINT_P, EXTRA_CONSTRAINT_STR): Likewise. (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Add STR argument. * config/s390/s390.h (EXTRA_MEMORY_CONSTRAINT): Likewise. From-SVN: r61119
2003-01-09re PR inline-asm/8832 (traditional "asm volatile" code is illegally optimized)Eric Botcazou1-8/+16
PR inline-asm/8832 * tree.h (expand_asm): New prototype. * stmt.c (expand_asm): Set the MEM_VOLATILE_P flag if instructed to do so. * c-semantics (genrtl_asm_stmt): Pass the RID_VOLATILE qualifier down to expand_asm. * c-typeck.c (simple_asm_stmt): Set the RID_VOLATILE qualifier. * rtlanal.c (volatile_insn_p) [ASM_INPUT]: Test the MEM_VOLATILE_P flag. (volatile_refs_p) [ASM_INPUT]: Likewise. (side_effects_p) [ASM_INPUT]: Likewise. From-SVN: r61099
2002-12-24regmove.c: Fix comment typos.Kazu Hirata1-2/+2
* regmove.c: Fix comment typos. * reload.c: Likewise. * reload1.c: Likewise. * resource.c: Likewise. * rtl.def: Likewise. * rtl.h: Likewise. * rtlanal.c: Likewise. * sched-deps.c: Likewise. * sched-rgn.c: Likewise. * sibcall.c: Likewise. * simplify-rtx.c: Likewise. * ssa-ccp.c: Likewise. * ssa.c: Likewise. * stmt.c: Likewise. * stor-layout.c: Likewise. * system.h: Likewise. * tlink.c: Likewise. * toplev.c: Likewise. * tracer.c: Likewise. * tree-inline.c: Likewise. * tree.c: Likewise. * tree.h: Likewise. * unroll.c: Likewise. * varasm.c: Likewise. From-SVN: r60473
2002-12-19re PR target/8340 (ICE on x86 inline asm w/ -fPIC)Eric Botcazou1-1/+10
PR target/8340 * stmt.c (expand_asm_operands): Produce an error when the PIC register is clobbered. From-SVN: r60313
2002-12-19ChangeLog: Follow spelling conventions.Kazu Hirata1-1/+1
* ChangeLog: Follow spelling conventions. * ChangeLog.2: Likewise. * ChangeLog.4: Likewise. * ChangeLog.5: Likewise. * cppexp.c: Likewise. * df.c: Likewise. * gcov.c: Likewise. * gengtype.c: Likewise. * reload1.c: Likewise. * sched-rgn.c: Likewise. * stmt.c: Likewise. * stor-layout.c: Likewise. * timevar.c: Likewise. * toplev.c: Likewise. * tree.h: Likewise. * varasm.c: Likewise. * config/fr30/fr30.md: Likewise. * config/i386/i386.c: Likewise. * config/ia64/ia64.c: Likewise. * config/pa/pa.c: Likewise. From-SVN: r60281