Commit Graph

52410 Commits

Author SHA1 Message Date
Jan Hubicka
a710247903 re PR debug/13974 (bad line marker in debug info)
PR debug/13974
	* cfgrtl.c (try_redirect_by_replacing_jump,
	force_nonfallthru_and_redirect, commit_one_edge_insertion,
	cfg_layout_merge_blocks):  Do not attach any line number information
	to newly inserted instructions.
	* emit-rtl.c (emit_insn*_before, emit_insn*_after): Rename to
	emit_insn_*_noloc.
	(emit_*insn_before, emit_insn*_after): New.
	(emit_*insn_before_setloc, emit_*insn_after_setloc): Do not overwrite
	existing locators.
	* rtl.h (emit_*insn_before_noloc, emit_*insn_after_noloc): Declare.
	(emit_*insn_before_sameloc, emit_*insn_after_sameloc): Kill.

From-SVN: r88358
2004-09-30 21:25:52 +00:00
Ulrich Weigand
9108699053 s390-protos.h (s390_arg_frame_offset): Remove.
* config/s390/s390-protos.h (s390_arg_frame_offset): Remove.
	(s390_return_address_offset): Remove.
	(s390_can_eliminate): Add prototype.
	(s390_initial_elimination_offset): Add prototype.
	* config/s390/s390.h (CAN_ELIMINATE): Call s390_can_eliminate.
	(INITIAL_ELIMINATION_OFFSET): Call s390_initial_elimination_offset.
	* config/s390/s390.c (s390_arg_frame_offset): Remove.
	(s390_return_address_offset): Remove.
	(s390_can_eliminate, s390_initial_elimination_offset): New functions.
	(struct machine_function): New member split_branches_pending_p.
	(s390_mainpool_start): Allow nonexistant pool insn for empty pool.
	(s390_mainpool_finish): Likewise.  Clear base_reg if pool empty.
	(s390_optimize_prologue): Remove base_used argument.  Call
	s390_update_frame_layout instead of s390_register_info.  Handle
	prologue/epilogue insns that touch only RETURN_REGNUM.
	(s390_reorg): Remove base_used.  Clear split_branches_pending_p.
	(s390_register_info): Remove base_used and return_addr_used
	arguments, compute special register usage inline.  Return live
	register data to caller.
	(s390_frame_info): Remove arguments, do not call s390_register_info.
	(s390_init_frame_layout): New function.
	(s390_update_frame_layout): Likewise.
	(s390_emit_prologue): Call s390_update_frame_layout; some code
	move to there.  Do not emit pool placeholder insn if unnecessary.

From-SVN: r88357
2004-09-30 21:23:29 +00:00
Ulrich Weigand
13c025c186 s390.c (legitimate_reload_constant_p): Remove floating point constant workaround.
* config/s390/s390.c (legitimate_reload_constant_p): Remove
	floating point constant workaround.
	(s390_secondary_input_reload_class): Handle PLUS reloads
	with too-large constant.
	(s390_expand_plus_operand): Likewise.
	* config/s390/s390.md ("movdi"): Do not call force_const_mem.
	("movsi"): Likewise.  Also, remove workaround for non-general
	operands.
	("movdf"): Do not call force_const_mem.
	("movsf"): Likewise.  Merge expander with *movsf insn.
	("*movsf"): Remove, merge with movsf expander.

From-SVN: r88356
2004-09-30 21:21:57 +00:00
Paul Brook
99b2692a09 symbian.h (STARTFILE_SPEC): Remove crt*.o.
* config/arm/symbian.h (STARTFILE_SPEC): Remove crt*.o.
	(ENDFILE_SPEC): Define.
	* config/arm/t-symbian.h (EXTRA_MULTILIB_PARTS): Set.

From-SVN: r88355
2004-09-30 20:24:33 +00:00
Richard Henderson
3ac7c0f21f * config/alpha/qrnnd.asm: Mark for noexecstack.
From-SVN: r88349
2004-09-30 12:32:07 -07:00
Kazu Hirata
75b8070489 * protoize.c, tree-cfg.c: Fix comment typos.
From-SVN: r88345
2004-09-30 18:27:25 +00:00
Joseph Myers
254ac10c31 re PR c/17730 (Regression in diagnost message "invalid lvalue in unary %<&%>")
PR c/17730
	* c-typeck.c (lvalue_or_else): Pass msgid directly to error.

testsuite:
	* gcc.dg/pr17730-1.c: New test

From-SVN: r88343
2004-09-30 19:17:54 +01:00
Nathan Sidwell
84eeda0c97 cp-tree.h (struct lang_decl): Shrink by reordering fields and turning operator_code and fixed_offset into...
* cp-tree.h (struct lang_decl): Shrink by reordering fields and
	turning operator_code and fixed_offset into bitfields.

From-SVN: r88337
2004-09-30 15:25:18 +00:00
Diego Novillo
20c16b361d tree-ssa-alias.c (collect_points_to_info_r): Move analysis of expressions...
* tree-ssa-alias.c (collect_points_to_info_r): Move analysis of
	expressions...
	(add_pointed_to_expr): ... here.
	Call add_pointed_to_expr for variables with DECL_INITIAL set.
	* tree-dfa.c (add_referenced_var): Scan DECL_INITIAL of any
	pointer variable, if set.

From-SVN: r88334
2004-09-30 10:09:45 -04:00
Kazu Hirata
8b0add272f * config/sh/sh.c: Follow spelling conventions.
From-SVN: r88333
2004-09-30 12:25:34 +00:00
Richard Henderson
282efe1c41 unwind-dw2.c (_Unwind_GetGR): Honor DWARF_ZERO_REG.
* unwind-dw2.c (_Unwind_GetGR): Honor DWARF_ZERO_REG.
        * doc/tm.texi (DWARF_ZERO_REG): New.
        * config/alpha/alpha.c (alpha_sa_mask, alpha_expand_prologue,
        alpha_expand_epilogue): Revert 2003-09-30 change to store zero.
        * config/alpha/alpha.h (DWARF_ZERO_REG): New.

From-SVN: r88331
2004-09-30 01:21:27 -07:00
Per Bothner
de39930392 check-init.c (check_init): Handle USE_MAPPED_LOCATION case.
* check-init.c (check_init): Handle USE_MAPPED_LOCATION case.
	* decl.c (finish_method, java_add_stmt): Likewise.
	* java-gimplify.c (java-gimplify.c):  Likewise.
	* jcf-write.c (generate_bytecode_insns):  Likewise.
	* lang.c (java_post_options): Likewise - call linemap_add.

From-SVN: r88324
2004-09-29 19:16:46 -07:00
Per Bothner
d68acc044e java-tree.h: Redefine some macros and add soem declaration to handle the USE_MAPPED_LOCATION...
* java-tree.h:  Redefine some macros and add soem declaration
	to handle the USE_MAPPED_LOCATION case.
	* parse.h (EXPR_WFL_QUALIFICATION):  Use operand 1, not 2.
	* java-tree.h (EXPR_WFL_FILENAME_NODE):  Use operand 2, not 1.
	* java-tree.def (EXPR_WITH_FILE_LOCATION): Only need two operands in
	USE_MAPPED_LOCATION case, since EXPR_WFL_FILENAME_NODE is gone.

From-SVN: r88323
2004-09-29 19:16:00 -07:00
Ulrich Weigand
7ce3fc8ffe builtins.c (expand_builtin_strlen): Do not call emit_move_insn with a PLUS as source operand.
* builtins.c (expand_builtin_strlen): Do not call emit_move_insn
	with a PLUS as source operand.
	(expand_movstr): Likewise.
	(expand_builtin_stpcpy): Likewise.

From-SVN: r88322
2004-09-30 01:39:35 +00:00
Richard Henderson
e670d9e4ce re PR tree-optimization/17739 (tree-optimizers extend the lifetime of a hard register variable)
PR 17739
        * tree-gimple.c (is_gimple_reg): Reject hard registers.
        (is_gimple_asm_val): New.
        * tree-gimple.h (is_gimple_asm_val): Declare.
        * gimplify.c (gimplify_asm_expr): Use it.
        * tree-pretty-print.c (print_declaration): Dump hard regs.
        * tree-outof-ssa.c (check_replaceable): Don't check for hard regs.
        * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
        * tree-ssa-pre.c (is_undefined_value): Likewise.
        * tree-ssa-copy.c (may_propagate_copy): Likewise.
        (may_propagate_copy_into_asm): Protect DECL_HARD_REGISTER.
        * tree-ssa.c (warn_uninit): Likewise.
        * tree.h (DECL_HARD_REGISTER): Check for VAR_DECL.

From-SVN: r88321
2004-09-29 18:22:07 -07:00
GCC Administrator
fa74d329ec Daily bump.
From-SVN: r88316
2004-09-30 00:16:12 +00:00
Fariborz Jahanian
2587f86519 FIxed an IMA bug showed up in parse and gzip.
OKed by Richard Henderson.

From-SVN: r88312
2004-09-30 00:09:42 +00:00
Daniel Berlin
1b096a0a0a tree.h (INDIRECT_REF_P): New macro.
2004-09-29  Daniel Berlin  <dberlin@dberlin.org>

	* tree.h (INDIRECT_REF_P): New macro.
	* alias.c (get_alias_set): Use it
	(nonoverlapping_memrefs_p): Ditto.
	* emit-rtl.c (mem_expr_equal_p): Ditto.
	(set_mem_attributes_minus_bitpos): Ditto.
	(is_gimple_addressable): Ditto.
	(get_base_address): Ditto.
	* tree-ssa-alias.c (find_ptr_derefernece): Ditto.
	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Ditto.
	* tree-ssa-dom.c (record_equivalences_from_stmt): Ditto.
	* tree-ssa-loop-im.c (is_call_clobbered_ref): Ditto.
	* tree-ssa-loop-ivopts.c (find_interesting_uses_address): Ditto.
	(add_address_candidates): Ditto.
	(rewrite_address_base): Ditto.

From-SVN: r88309
2004-09-29 23:08:32 +00:00
Ben Elliston
2a7cd6864b tree-flow.h (struct bb_ann_d): Remove num_preds member.
* tree-flow.h (struct bb_ann_d): Remove num_preds member.
	* tree-into-ssa.c (rewrite_into_ssa): Don't set it.
	(rewrite_ssa_into_ssa): Likewise.
	* tree-phinodes.c (create_phi_node): Access the number of
	predecessor edges using EDGE_COUNT() and not num_preds.

Co-Authored-By: Andrew Pinski <pinskia@physics.uc.edu>
Co-Authored-By: Steven Bosscher <stevenb@suse.de>

From-SVN: r88308
2004-09-30 07:23:35 +10:00
Joseph Myers
302a2cc5c6 re PR c/7425 (deprecated attribute doesn't merge with multiple declarations)
PR c/7425
	* c-decl.c (merge_decls): Merge TREE_DEPRECATED.

cp:
	* decl.c (duplicate_decls): Merge TREE_DEPRECATED.

testsuite:
	* gcc.dg/deprecated-3.c, g++.dg/warn/deprecated-2.C: New tests.

From-SVN: r88303
2004-09-29 21:27:26 +01:00
Jason Merrill
08272b8528 revert accidental checkin
From-SVN: r88302
2004-09-29 16:18:49 -04:00
Eric Christopher
3e6688a77f fold-const.c (tree_swap_operands_p): Remove duplicated code.
2004-09-29  Eric Christopher  <echristo@redhat.com>

	* fold-const.c (tree_swap_operands_p): Remove duplicated code.

From-SVN: r88299
2004-09-29 19:47:32 +00:00
Hans-Peter Nilsson
8820e4bed8 cris.md (moverside, movemside): With MEM, make sure the address is (plus reg mem).
* config/cris/cris.md (moverside, movemside): With MEM, make sure
	the address is (plus reg mem).

From-SVN: r88298
2004-09-29 19:46:18 +00:00
Jason Merrill
5cefa0d95b re PR tree-optimization/17697 (ICE: Statement marked for throw, but doesn't - verify_stmts failed)
PR tree-optimization/17697
        * decl.c (duplicate_decls): Copy TREE_NOTHROW from newdecl to olddecl.

From-SVN: r88293
2004-09-29 14:16:34 -04:00
David Edelsohn
d962e7adc0 * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Define.
From-SVN: r88290
2004-09-29 11:19:56 -04:00
Andrew Haley
eab3f38f80 re PR java/17007 (Inconsistent builtin attributes set by Java front end)
2004-09-29  Andrew Haley  <aph@redhat.com>

        PR java/17007
        * parse.y (patch_binop): Don't mess with the TREE_SIDE_EFFECTS of the
        result of TRUNC_MOD_EXPR.
        (patch_unaryop): Likewise for CONVERT_EXPR, which may throw.
        * decl.c (java_init_decl_processing): Mark
        soft_lookupinterfacemethod_node and soft_instanceof_node pure.

From-SVN: r88289
2004-09-29 14:13:17 +00:00
Nathan Sidwell
c4b3f0eb21 tree.c (make_node_stat): Fix uninitialized warning.
* tree.c (make_node_stat): Fix uninitialized warning.  Replace
	cascaded if ... else if with a switch.

From-SVN: r88288
2004-09-29 13:07:50 +00:00
Aaron W. LaFramboise
b4f6904019 * read-rtl.c (apply_macro_to_string): Replace index with strchr.
From-SVN: r88283
2004-09-29 11:23:11 +00:00
Jakub Jelinek
58c8adc127 tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD and TI_VA_LIST_FPR_COUNTER_FIELD.
* tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
	and TI_VA_LIST_FPR_COUNTER_FIELD.
	(va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
	* tree-pass.h (pass_stdarg): Add.
	* tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
	* tree-stdarg.c: New file.
	* Makefile.in (OBJS-common): Add tree-stdarg.o.
	(tree-stdarg.o): Add dependencies.
	* function.h (struct function): Add va_list_gpr_size and
	va_list_fpr_size fields.
	* function.c (allocate_struct_function): Initialize them.

	* config/i386/i386.c (ix86_build_builtin_va_list): Initialize
	va_list_{g,f}pr_counter_field.
	(ix86_setup_incoming_varargs): Don't do anything if reg_save
	area will not be used.  Only save registers that tree-stdarg.c
	detected they need saving.
	(ix86_va_start): Don't set up fields that won't be used.

	* config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
	va_list_{g,f}pr_counter_field.
	(setup_incoming_varargs): Don't do anything if reg_save
	area will not be used.  Only save registers that tree-stdarg.c
	detected they need saving.
	(rs6000_va_start): Don't set up fields that won't be used.

	* gcc.c-torture/execute/stdarg-1.c: New test.
	* gcc.c-torture/execute/stdarg-2.c: New test.
	* gcc.c-torture/execute/stdarg-3.c: New test.
	* gcc.dg/tree-ssa/stdarg-1.c: New test.
	* gcc.dg/tree-ssa/stdarg-2.c: New test.
	* gcc.dg/tree-ssa/stdarg-3.c: New test.
	* gcc.dg/tree-ssa/stdarg-4.c: New test.
	* gcc.dg/tree-ssa/stdarg-5.c: New test.

From-SVN: r88279
2004-09-29 11:47:56 +02:00
Jakub Jelinek
0d5b215ca1 builtins.def (BUILT_IN_FPUTC, [...]): Remove nothrow attribute.
* builtins.def (BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED,
	BUILT_IN_FPUTS, BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FWRITE,
	BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_PUTCHAR, BUILT_IN_PUTCHAR_UNLOCKED,
	BUILT_IN_PUTS, BUILT_IN_PUTS_UNLOCKED): Remove nothrow attribute.
	* builtin-attrs.def (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_1_2,
	ATTR_NONNULL_1_4): New.

From-SVN: r88278
2004-09-29 11:06:49 +02:00
Jakub Jelinek
a7d6ba2411 re PR tree-optimization/17697 (ICE: Statement marked for throw, but doesn't - verify_stmts failed)
PR tree-optimization/17697
	* tree-ssa-ccp.c (execute_fold_all_builtins): Update eh and cleanup
	cfg if needed.

	* g++.dg/opt/pr17697-1.C: New test.
	* g++.dg/opt/pr17697-2.C: New test.
	* g++.dg/opt/pr17697-3.C: New test.

From-SVN: r88277
2004-09-29 11:04:21 +02:00
Per Bothner
ac973acecf Oops - fix typo in ChangeLog.
From-SVN: r88272
2004-09-28 23:44:51 -07:00
Per Bothner
50fd1c970f profile.c (brnahc_prob): Pass correct value to output_location, even when USE_MAPPED_LOCATION.
* profile.c (brnahc_prob):  Pass correct value to output_location,
	even when USE_MAPPED_LOCATION.  Fixes bug from 09-11.

From-SVN: r88271
2004-09-28 23:42:31 -07:00
Jason Merrill
550f100c57 re PR middle-end/17525 (ICE in emit_move_insn (non-BLKmode arg))
PR middle-end/17525
        * class.c (build_base_field): Set TYPE_MODE.

From-SVN: r88270
2004-09-29 02:23:49 -04:00
Richard Henderson
aa24864c23 re PR tree-optimization/15089 (local register variable with a specified register is bad)
PR 15089
        * tree-ssa-copy.c (may_propagate_copy_into_asm): New.
        * tree-flow.h (may_propagate_copy_into_asm): Declare.
        * tree-ssa-ccp.c (replace_uses_in): Use it.
        * tree-ssa-dom.c (cprop_operand): Likewise.

From-SVN: r88269
2004-09-28 19:50:47 -07:00
Jeff Law
e376fe5842 tree-ssa-threadupdate.c (create_block_for_threading): Request that no outgoing edges be left in the duplicate block.
* tree-ssa-threadupdate.c (create_block_for_threading):  Request
	that no outgoing edges be left in the duplicate block.  Do no
	update information on outgoing edges or PHI nodes in target
	blocks here.
	(remove_ctrl_stmt_and_useless_edges): Renamed from
	remove_last_stmt_and_useless_edges.  Handle case where the
	block is empty or has no control statements.  Do not update edge
	flags here.
	(thread_block): Create a template block rather than copying the
	original block every time.  Create outgoing edges from the
	duplicate blocks and update PHIs at the target of the outgoing
	edges here.  Fix edge flags for the original block if necessary.
	* cfghooks (duplicate_block): No longer assert that the original
	block has incoming edges.

From-SVN: r88267
2004-09-28 20:15:00 -06:00
Hans-Peter Nilsson
805c33df13 extend.texi (Extended Asm): Add blurb about using Explicit Reg Vars to enforce register allocation with...
* doc/extend.texi (Extended Asm): Add blurb about using Explicit
	Reg Vars to enforce register allocation with general constraints.
	(Explicit Reg Vars): Clarify relation to asm statements.
	(Local Reg Vars): Similar.

From-SVN: r88265
2004-09-29 01:42:09 +00:00
Ulrich Weigand
dcda848050 sched-rgn.c (haifa_edge, [...]): Remove.
* sched-rgn.c (haifa_edge, edge_table, NEXT_IN, NEXT_OUT, FROM_BLOCK,
	TO_BLOCK, nr_edges, in_edges, out_edges, IN_EDGES, OUT_EDGES,
	build_control_flow, new_edge): Remove.
	(schedule_insns): Remove edge_table/in_edges/out_edges cleanup.
	(bitlst, bitlst_table_last, bitlst_table): Remove.
	(bblst): Store basic_block pointer instead of block index.
	(bblst_table): Likewise.
	(edgelst): Store edge pointer instead of edge index.
	(edgelst_table, edgelst_last): New variables.
	(extract_bitlst): Rename to ...
	(extract_edgelst): ... this.  Return edge pointers, not indices.
	(split_edges): Update call.
	(rgn_edges): Store edge pointers instead of indices.
	(edge_to_bit): Remove.
	(EDGE_TO_BIT): Store per-region edge index in edge->aux.
	(SET_EDGE_TO_BIT): New macro.
	(is_cfg_nonregular): Check for simple cases of unreachable blocks.
	(find_rgns): Remove edge_list parameter.  Traverse standard CFG
	data structures instead of haifa_edge et al.  Use edge pointers
	instead of edge indices everywhere.
	(compute_dom_prob_ps): Use standard CFG data structures.  Account
	for exit edges.
	(compute_trg_info): Likewise.
	(propagate_deps): Likewise.
	(debug_candidate): Account for bblst data structure change.
	(check_live_1, update_live_1, is_pfree): Likewise.
	(IS_REACHABLE): Use standard CFG data structures.
	(init_ready_list): Update bblst_table/edgelst_table allocation.
	(schedule_region): Update alloc/cleanup code to data structure
	changes.  Use edge->aux to store per-region edge index.
	(init_regions): No longer call build_control_flow.  Do not
	create edge list any more.

From-SVN: r88264
2004-09-29 01:28:22 +00:00
GCC Administrator
f7deb4e9f6 Daily bump.
From-SVN: r88262
2004-09-29 00:16:16 +00:00
Ulrich Weigand
2f39b6caf6 cse.c (cse_insn): Avoid creating direct non-local jumps.
* cse.c (cse_insn): Avoid creating direct non-local jumps.
	* combine.c (can_combine_p): Likewise.
	* local-alloc. (update_equiv_regs): Likewise.

From-SVN: r88258
2004-09-28 23:29:02 +00:00
Richard Henderson
b0b324b07f re PR tree-optimization/17531 ([ivopts] ICE compiling gzip deflate.c)
PR 17531
        * expr.c (expand_expr_addr_expr_1): Only assemble_external for decls.
        Don't check VOIDmode here.  Force PLUS operands to common type.
        (expand_expr_addr_expr): Do VOIDmode check earlier.  Force use of
        Pmode if given a non pointer type.

        PR 17531
        * optabs.c (expand_binop): Force constants to the correct mode.

From-SVN: r88257
2004-09-28 15:55:04 -07:00
Roger Sayle
078208ebef re PR driver/17537 (g++ not passing -lstdc++ to linker when -l is only supplied)
PR driver/17537
	* g++spec.c (lang_specific_driver): Unrecognized libraries, other
	than -lc and -lm, may require linking against libstc++.

From-SVN: r88256
2004-09-28 22:43:11 +00:00
Ulrich Weigand
ea77e73803 s390.c (s390_adjust_cost): Remove.
* config/s390/s390.c (s390_adjust_cost): Remove.
	(TARGET_SCHED_ADJUST_COST): Do not redefine.
	(s390_adjust_priority): Handle TYPE_STM like TYPE_STORE.
	* config/s390/s390.md ("main_pool"): Use "larl" type
	attribute if TARGET_CPU_ZARCH.

From-SVN: r88254
2004-09-28 21:39:28 +00:00
Jakub Jelinek
9924d7d8d8 ia64.c (ia64_expand_prologue): Declare ei variable.
* config/ia64/ia64.c (ia64_expand_prologue): Declare ei
	variable.

From-SVN: r88253
2004-09-28 23:17:53 +02:00
Diego Novillo
81842e1b15 tree-ssa-loop.c (pass_record_bounds): Do not assign a name to the pass.
* tree-ssa-loop.c (pass_record_bounds): Do not assign a
	name to the pass.

From-SVN: r88252
2004-09-28 16:39:46 -04:00
Steven Bosscher
21ef99b8ca common.opt (flag_gcse_sm): Disable by default.
* common.opt (flag_gcse_sm): Disable by default.
	(flag_gcse_las): Likewise.
	(flag_web): Likewise.  Create from this file.
	* flags.h: Remove flag_web declaration.
	* toplev.c (flag_web): Likewise.
	(process_options): Never set flag_web.

From-SVN: r88250
2004-09-28 20:34:17 +00:00
Steven Bosscher
78492bf5ac Makefile.in (tree-ssa-propagate.o): Depend on vec.h.
* Makefile.in (tree-ssa-propagate.o): Depend on vec.h.
	* tree-ssa-propagate.c: Include vec.h.
	(interesting_ssa_edges, varying_ssa_edges): Make these VECs
	instead of varrays.
	(cfg_blocks_add): Assert the block is not already in the worklist.
	Update uses of interesting_ssa_edges and varying_ssa_edges.
	(process_ssa_edge_worklist, ssa_prop_init, ssa_prop_fini,
	ssa_propagate): Likewise.

From-SVN: r88249
2004-09-28 20:31:16 +00:00
Joseph Myers
ef7878226a re PR c/16409 (ICE in size_binop, at fold-const.c)
PR c/16409
	* c-decl.c (start_decl): Check for initializing incomplete array
	of VLAs.
	(build_compound_literal): Check for TYPE being error_mark_node.
	* c-parse.in (primary): Check for VLA compound literals.

testsuite:
	* gcc.dg/vla-init-2.c, gcc.dg/vla-init-3.c, gcc.dg/vla-init-4.c,
	gcc.dg/vla-init-5.c: New tests.

From-SVN: r88248
2004-09-28 20:35:26 +01:00
Tom Tromey
346c5b01de re PR java/15710 (ICE: tree check: expected class 'E', have 'c' (integer_cst) in make_class_data)
PR java/15710:
	* class.c (add_miranda_methods): Load superinterface if not
	already loaded.

From-SVN: r88243
2004-09-28 18:27:25 +00:00
Diego Novillo
c3b8e9aa7f tree-ssa-live.c (calculate_live_on_entry): Fix warnings with --disable-checking.
* tree-ssa-live.c (calculate_live_on_entry): Fix warnings
	with --disable-checking.

From-SVN: r88241
2004-09-28 14:14:33 -04:00
Devang Patel
56bac5af0f * tree-pretty-print.c (dump_generic_node): Print vector types.
From-SVN: r88240
2004-09-28 10:52:59 -07:00
Andrew Haley
1679340f35 re PR java/17586 (kawa build fails with ICE)
2004-09-28  Andrew Haley  <aph@redhat.com>

	PR java/17586
	* jcf-parse.c (load_class): Don't try to read a class that we've
	already read.

From-SVN: r88239
2004-09-28 17:40:56 +00:00
Nick Clifton
cc15e98f65 sh.h (INIT_CUMULATIVE_ARGS): Replace with an invocation of the function sh_init_cumulative_args.
sh.h (INIT_CUMULATIVE_ARGS): Replace with an invocation of the function
  sh_init_cumulative_args.
  (INIT_CUMULATIVE_LIBCALL_ARGS): Likewise.
  (INIT_CUMULATIVE_INCOMING_ARGS): Delete.
sh-protos.h: Prototype sh_init_cumulative_args.
sh.c (sh_init_cumulative_args): New function based on the contents of the old
  INIT_CUMULATIVE_ARGS macro but with a heuristic added to determine the setting
  of force_mem when a library function is being called.

From-SVN: r88238
2004-09-28 17:37:35 +00:00
Diego Novillo
ee1f0fb06c tree-ssa-loop-im.c (single_reachable_address): Skip constant arguments.
* tree-ssa-loop-im.c (single_reachable_address) <PHI_NODE>:
	Skip constant arguments.

From-SVN: r88237
2004-09-28 13:29:32 -04:00
Andrew Haley
46d82a27ee jcf-parse.c (load_class): Back out previous broken patch.
2004-09-28  Andrew Haley  <aph@redhat.com>

	* jcf-parse.c (load_class): Back out previous broken patch.

From-SVN: r88234
2004-09-28 14:58:31 +00:00
Andrew Haley
03ec093d04 re PR java/17586 (kawa build fails with ICE)
2004-09-28  Andrew Haley  <aph@redhat.com>

	PR java/17586
	* jcf-parse.c (load_class): Don't try to read a class that we've
	already read.
	Check that we really did read the right class.

From-SVN: r88233
2004-09-28 13:57:05 +00:00
Diego Novillo
38e05395ac tree-ssa-alias.c (create_name_tags): If PTR points to a volatile type, mark the tag volatile.
* tree-ssa-alias.c (create_name_tags): If PTR points to a
	volatile type, mark the tag volatile.
	(get_tmt_for): If TAG_TYPE is a volatile type, mark the tag
	volatile.

From-SVN: r88232
2004-09-28 09:45:05 -04:00
Andrew Pinski
45fbb18639 tree.def (vec_cond_expr): Fix.
2004-09-28  Andrew Pinski  <pinskia@physics.uc.edu>

        * tree.def (vec_cond_expr): Fix. Change 'e'
        to tcc_expression.

From-SVN: r88231
2004-09-28 06:14:28 -07:00
Kazu Hirata
c2b7c2d85f * basic-block.h: Fix a comment typo.
From-SVN: r88230
2004-09-28 12:15:48 +00:00
Kazu Hirata
f9f1c24eb8 * tree.c: Fix a comment typo.
From-SVN: r88229
2004-09-28 11:55:45 +00:00
Kazu Hirata
6dbd43badd * optabs.c, optabs.h: Fix comment typos.
From-SVN: r88228
2004-09-28 11:49:07 +00:00
Eric Botcazou
ecaa611b36 sparc.md (call_address_struct_value_sp32): Properly mask the immediate field of the 'unimp' instruction.
* config/sparc/sparc.md (call_address_struct_value_sp32):
	Properly mask the immediate field of the 'unimp' instruction.
	(call_symbolic_struct_value_sp32): Likewise.

From-SVN: r88227
2004-09-28 11:40:27 +00:00
Nathan Sidwell
a3a0fc7f89 class.c (VTT_TOP_LEVEL_P, [...]): Remove.
* class.c (VTT_TOP_LEVEL_P, VTT_MARKED_BINFO_P): Remove.
	(struct secondary_vptr_vtt_init_data_s): New.
	(build_vtt_inits): Adjust dfs_walkers.
	(dfs_build_secondary_vptr_vtt_inits): Caller data is a
	secondary_vptr_vtt_init_data_s structure. Adjust.
	(dfs_ctor_vtable_bases_queue_p): Remove.
	(dfs_fixup_binfo_vtbls): No need to clear BINFO_MARKED. Simplify.

	* pt.c (struct get_template_base_data_s): Remove.
	(get_template_base_r): Fold into get_template_base.
	(get_template_base): Walk base binfos directly in inheritance
	graph order.
Remove duplicated changelog entries

From-SVN: r88224
2004-09-28 08:50:56 +00:00
Ben Elliston
628f6a4e7c backport: basic-block.h: Include vec.h, errors.h.
2004-09-24  Ben Elliston  <bje@au.ibm.com>
	    Steven Bosscher  <stevenb@suse.de>
	    Andrew Pinski  <pinskia@physics.uc.edu>

	Merge from edge-vector-branch:
	* basic-block.h: Include vec.h, errors.h. Instantiate a VEC(edge).
	(struct edge_def): Remove pred_next, succ_next members.
	(struct basic_block_def): Remove pred, succ members.  Add preds
	and succs members of type VEC(edge).
	(FALLTHRU_EDGE): Redefine using EDGE_SUCC.
	(BRANCH_EDGE): Likewise.
	(EDGE_CRITICAL_P): Redefine using EDGE_COUNT.
	(EDGE_COUNT, EDGE_I, EDGE_PRED, EDGE_SUCC): New.
	(edge_iterator): New.
	(ei_start, ei_last, ei_end_p, ei_one_before_end_p): New.
	(ei_next, ei_prev, ei_edge, ei_safe_edge): Likewise.
	(FOR_EACH_EDGE): New.
	* bb-reorder.c (find_traces): Use FOR_EACH_EDGE and EDGE_* macros
	where applicable.
	(rotate_loop): Likewise.
	(find_traces_1_route): Likewise.
	(bb_to_key): Likewise.
	(connect_traces): Likewise.
	(copy_bb_p): Likewise.
	(find_rarely_executed_basic_blocks_and_crossing_edges): Likewise.
	(add_labels_and_missing_jumps): Likewise.
	(fix_up_fall_thru_edges): Likewise.
	(find_jump_block): Likewise.
	(fix_crossing_conditional_branches): Likewise.
	(fix_crossing_unconditional_branches): Likewise.
	(add_reg_crossing_jump_notes): Likewise.
	* bt-load.c (augment_live_range): Likewise.
	* cfg.c (clear_edges): Likewise.
	(unchecked_make_edge): Likewise.
	(cached_make_edge): Likewise.
	(make_single_succ_edge): Likewise.
	(remove_edge): Likewise.
	(redirect_edge_succ_nodup): Likewise.
	(check_bb_profile): Likewise.
	(dump_flow_info): Likewise.
	(alloc_aux_for_edges): Likewise.
	(clear_aux_for_edges): Likewise.
	(dump_cfg_bb_info): Likewise.
	* cfganal.c (forwarder_block_p): Likewise.
	(can_fallthru): Likewise.
	(could_fall_through): Likewise.
	(mark_dfs_back_edges): Likewise.
	(set_edge_can_fallthru_flag): Likewise.
	(find_unreachable_blocks): Likewise.
	(create_edge_list): Likewise.
	(verify_edge_list): Likewise.
	(add_noreturn_fake_exit_edges): Likewise.
	(connect_infinite_loops_to_exit): Likewise.
	(flow_reverse_top_sort_order_compute): Likewise.
	(flow_depth_first_order_compute): Likewise.
	(flow_preorder_transversal_compute): Likewise.
	(flow_dfs_compute_reverse_execute): Likewise.
	(dfs_enumerate_from): Likewise.
	(compute_dominance_frontiers_1): Likewise.
	* cfgbuild.c (make_edges): Likewise.
	(compute_outgoing_frequencies): Likewise.
	(find_many_sub_basic_blocks): Likewise.
	(find_sub_basic_blocks): Likewise.
	* cfgcleanup.c (try_simplify_condjump): Likewise.
	(thread_jump): Likewise.
	(try_forward_edges): Likewise.
	(merge_blocks_move): Likewise.
	(outgoing_edges_match): Likewise.
	(try_crossjump_to_edge): Likewise.
	(try_crossjump_bb): Likewise.
	(try_optimize_cfg): Likewise.
	(merge_seq_blocks): Likewise.
	* cfgexpand.c (expand_gimple_tailcall): Likewise.
	(expand_gimple_basic_block): Likewise.
	(construct_init_block): Likewise.
	(construct_exit_block): Likewise.
	* cfghooks.c (verify_flow_info): Likewise.
	(dump_bb): Likewise.
	(delete_basic_block): Likewise.
	(split_edge): Likewise.
	(merge_blocks): Likewise.
	(make_forwarder_block): Likewise.
	(tidy_fallthru_edges): Likewise.
	(can_duplicate_block_p): Likewise.
	(duplicate_block): Likewise.
	* cfglayout.c (fixup_reorder_chain): Likewise.
	(fixup_fallthru_exit_predecessor): Likewise.
	(can_copy_bbs_p): Likewise.
	(copy_bbs): Likewise.
	* cfgloop.c (flow_loops_cfg_dump): Likewise.
	(flow_loop_entry_edges_find): Likewise.
	(flow_loop_exit_edges_find): Likewise.
	(flow_loop_nodes_find): Likewise.
	(mark_single_exit_loops): Likewise.
	(flow_loop_pre_header_scan): Likewise.
	(flow_loop_pre_header_find): Likewise.
	(update_latch_info): Likewise.
	(canonicalize_loop_headers): Likewise.
	(flow_loops_find): Likewise.
	(get_loop_body_in_bfs_order): Likewise.
	(get_loop_exit_edges): Likewise.
	(num_loop_branches): Likewise.
	(verify_loop_structure): Likewise.
	(loop_latch_edge): Likewise.
	(loop_preheader_edge): Likewise.
	* cfgloopanal.c (mark_irreducible_loops): Likewise.
	(expected_loop_iterations): Likewise.
	* cfgloopmanip.c (remove_bbs): Likewise.
	(fix_bb_placement): Likewise.
	(fix_irreducible_loops): Likewise.
	(remove_path): Likewise.
	(scale_bbs_frequencies): Likewise.
	(loopify): Likewise.
	(unloop): Likewise.
	(fix_loop_placement): Likewise.
	(loop_delete_branch_edge): Likewise.
	(duplicate_loop_to_header_edge): Likewise.
	(mfb_keep_just): Likewise.
	(create_preheader): Likewise.
	(force_single_succ_latches): Likewise.
	(loop_split_edge_with): Likewise.
	(create_loop_notes): Likewise.
	* cfgrtl.c (rtl_split_block): Likewise.
	(rtl_merge_blocks): Likewise.
	(rtl_can_merge_blocks): Likewise.
	(try_redirect_by_replacing_jump): Likewise.
	(force_nonfallthru_and_redirect): Likewise.
	(rtl_tidy_fallthru_edge): Likewise.
	(commit_one_edge_insertion): Likewise.
	(commit_edge_insertions): Likewise.
	(commit_edge_insertions_watch_calls): Likewise.
	(rtl_verify_flow_info_1): Likewise.
	(rtl_verify_flow_info): Likewise.
	(purge_dead_edges): Likewise.
	(cfg_layout_redirect_edge_and_branch): Likewise.
	(cfg_layout_can_merge_blocks_p): Likewise.
	(rtl_flow_call_edges_add): Likewise.
	* cse.c (cse_cc_succs): Likewise.
	* df.c (hybrid_search): Likewise.
	* dominance.c (calc_dfs_tree_nonrec): Likewise.
	(calc_dfs_tree): Likewise.
	(calc_idoms): Likewise.
	(recount_dominator): Likewise.
	* domwalk.c (walk_dominator_tree): Likewise.
	* except.c (emit_to_new_bb_before): Likewise.
	(connect_post_landing_pads): Likewise.
	(sjlj_emit_function_enter): Likewise.
	(sjlj_emit_function_exit): Likewise.
	(finish_eh_generation): Likewise.
	* final.c (compute_alignments): Likewise.
	* flow.c (calculate_global_regs_live): Likewise.
	(initialize_uninitialized_subregs): Likewise.
	(init_propagate_block_info): Likewise.
	* function.c (thread_prologue_and_epilogue_insns): Likewise.
	* gcse.c (find_implicit_sets): Likewise.
	(bypass_block): Likewise.
	(bypass_conditional_jumps): Likewise.
	(compute_pre_data): Likewise.
	(insert_insn_end_bb): Likewise.
	(insert_store): Likewise.
	(remove_reachable_equiv_notes): Likewise.
	* global.c (global_conflicts): Likewise.
	(calculate_reg_pav): Likewise.
	* graph.c (print_rtl_graph_with_bb): Likewise.
	* ifcvt.c (mark_loop_exit_edges): Likewise.
	(merge_if_block): Likewise.
	(find_if_header): Likewise.
	(block_jumps_and_fallthru_p): Likewise.
	(find_if_block): Likewise.
	(find_cond_trap): Likewise.
	(block_has_only_trap): Likewise.
	(find_if_case1): Likewise.
	(find_if_case_2): Likewise.
	* lambda-code.c (lambda_loopnest_to_gcc_loopnest): Likewise.
	(perfect_nestify): Likewise.
	* lcm.c (compute_antinout_edge): Likewise.
	(compute_laterin): Likewise.
	(compute_available): Likewise.
	(compute_nearerout): Likewise.
	* loop-doloop.c (doloop_modify): Likewise.
	* loop-init.c (loop_optimizer_init): Likewise.
	* loop-invariant.c (find_exits): Likewise.
	* loop-iv.c (simplify_using_initial_values): Likewise.
	(check_simple_exit): Likewise.
	(find_simple_exit): Likewise.
	* loop-unroll.c (peel_loop_completely): Likewise.
	(unroll_loop_constant_iterations): Likewise.
	(unroll_loop_runtime_iterations): Likewise.
	* loop-unswitch.c (may_unswitch_on): Likewise.
	(unswitch_loop): Likewise.
	* modulo-sched.c (generate_prolog_epilog): Likewise.
	(sms_schedule): Likewise.
	* postreload-gcse.c (eliminate_partially_redundant_load):
	Likewise.
	* predict.c (can_predict_insn_p): Likewise.
	(set_even_probabilities): Likewise.
	(combine_predictions_for_bb): Likewise.
	(predict_loops): Likewise.
	(estimate_probability): Likewise.
	(tree_predict_by_opcode): Likewise.
	(tree_estimate_probability): Likewise.
	(last_basic_block_p): Likewise.
	(propagate_freq): Likewise.
	(estimate_loops_at_level): Likewise.
	(estimate_bb_frequencies): Likewise.
	* profile.c (instrument_edges): Likewise.
	(get_exec_counts): Likewise.
	(compute_branch_probabilities): Likewise.
	(branch_prob): Likewise.
	* ra-build.c (live_in): Likewise.
	* ra-rewrite.c (rewrite_program2): Likewise.
	* ra.c (reg_alloc): Likewise.
	* reg-stack.c (reg_to_stack): Likewise.
	(convert_regs_entry): Likewise.
	(compensate_edge): Likewise.
	(convert_regs_1): Likewise,
	(convert_regs_2): Likewise.
	(convert_regs): Likewise.
	* regrename.c (copyprop_hardreg_forward): Likewise.
	* reload1.c (fixup_abnormal_edges): Likewise.
	* sbitmap.c (sbitmap_intersection_of_succs): Likewise.
	(sbitmap_insersection_of_preds): Likewise.
	(sbitmap_union_of_succs): Likewise.
	(sbitmap_union_of_preds): Likewise.
	* sched-ebb.c (compute_jump_reg_dependencies): Likewise.
	(fix_basic_block_boundaries): Likewise.
	(sched_ebbs): Likewise.
	* sched-rgn.c (build_control_flow): Likewise.
	(find_rgns): Likewise.
	* tracer.c (find_best_successor): Likewise.
	(find_best_predecessor): Likewise.
	(tail_duplicate): Likewise.
	* tree-cfg.c (make_edges): Likewise.
	(make_ctrl_stmt_edges): Likewise.
	(make_goto_expr_edges): Likewise.
	(tree_can_merge_blocks_p): Likewise.
	(tree_merge_blocks): Likewise.
	(cfg_remove_useless_stmts_bb): Likewise.
	(remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
	(tree_block_forwards_to): Likewise.
	(cleanup_control_expr_graph): Likewise.
	(find_taken_edge): Likewise.
	(dump_cfg_stats): Likewise.
	(tree_cfg2vcg): Likewise.
	(disband_implicit_edges): Likewise.
	(tree_find_edge_insert_loc): Likewise.
	(bsi_commit_edge_inserts): Likewise.
	(tree_split_edge): Likewise.
	(tree_verify_flow_info): Likewise.
	(tree_make_forwarder_block): Likewise.
	(tree_forwarder_block_p): Likewise.
	(thread_jumps): Likewise.
	(tree_try_redirect_by_replacing_jump): Likewise.
	(tree_split_block): Likewise.
	(add_phi_args_after_copy_bb): Likewise.
	(rewrite_to_new_ssa_names_bb): Likewise.
	(dump_function_to_file): Likewise.
	(print_pred_bbs): Likewise.
	(print_loop): Likewise.
	(tree_flow_call_edges_add): Likewise.
	(split_critical_edges): Likewise.
	(execute_warn_function_return): Likewise.
	(extract_true_false_edges_from_block): Likewise.
	* tree-if-conv.c (tree_if_conversion): Likewise.
	(if_convertable_bb_p): Likewise.
	(find_phi_replacement_condition): Likewise.
	(combine_blocks): Likewise.
	* tree-into-ssa.c (compute_global_livein): Likewise.
	(ssa_mark_phi_uses): Likewise.
	(ssa_rewrite_initialize_block): Likewise.
	(rewrite_add_phi_arguments): Likewise.
	(ssa_rewrite_phi_arguments): Likewise.
	(insert_phi_nodes_for): Likewise.
	(rewrite_into_ssa): Likewise.
	(rewrite_ssa_into_ssa): Likewise.
	* tree-mudflap.c (mf_build_check_statement_for): Likewise.
	* tree-outof-ssa.c (coalesce_abnormal_edges): Likewise.
	(rewrite_trees): Likewise.
	* tree-pretty-print.c (dump_bb_header): Likewise.
	(dump_implicit_edges): Likewise.
	* tree-sra.c (insert_edge_copies): Likewise.
	(find_obviously_necessary_stmts): Likewise.
	(remove_data_stmt): Likewise.
	* tree-ssa-dom.c (thread_across_edge): Likewise.
	(dom_opt_finalize_block): Likewise.
	(single_incoming_edge_ignoring_loop_edges): Likewise.
	(record_equivalences_from_incoming_edges): Likewise.
	(cprop_into_successor_phis): Likewise.
	* tree-ssa-live.c (live_worklist): Likewise.
	(calculate_live_on_entry): Likewise.
	(calculate_live_on_exit): Likewise.
	* tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise.
	(copy_loop_headers): Likewise.
	* tree-ssa-loop-im.c (loop_commit_inserts): Likewise.
	(fill_always_executed_in): Likewise.
	* tree-ssa-loop-ivcanon.c (create_canonical_iv): Likewise.
	* tree-ssa-loop-ivopts.c (find_interesting_uses): Likewise.
	(compute_phi_arg_on_exit): Likewise.
	* tree-ssa-loop-manip.c (add_exit_phis_edge): Likewise.
	(get_loops_exit): Likewise.
	(split_loop_exit_edge): Likewise.
	(ip_normal_pos): Likewise.
	* tree-ssa-loop-niter.c (simplify_using_initial_conditions):
	Likewise.
	* tree-ssa-phiopt.c (candidate_bb_for_phi_optimization): Likewise.
	(replace_phi_with_stmt): Likewise.
	(value_replacement): Likewise.
	* tree-ssa-pre.c (compute_antic_aux): Likewise.
	(insert_aux): Likewise.
	(init_pre): Likewise.
	* tree-ssa-propagate.c (simulate_stmt): Likewise.
	(simulate_block): Likewise.
	(ssa_prop_init): Likewise.
	* tree-ssa-threadupdate.c (thread_block): Likewise.
	(create_block_for_threading): Likewise.
	(remove_last_stmt_and_useless_edges): Likewise.
	* tree-ssa.c (verify_phi_args): Likewise.
	(verify_ssa): Likewise.
	* tree_tailcall.c (independent_of_stmt_p): Likewise.
	(find_tail_calls): Likewise.
	(eliminate_tail_call): Likewise.
	(tree_optimize_tail_calls_1): Likewise.
	* tree-vectorizer.c (vect_transform_loop): Likewise.
	* var-tracking.c (prologue_stack_adjust): Likewise.
	(vt_stack_adjustments): Likewise.
	(vt_find_locations): Likewise.
	* config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
	* config/i386/i386.c (ix86_pad_returns): Likewise.
	* config/ia64/ia64.c (ia64_expand_prologue): Likewise.
	* config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.

Co-Authored-By: Andrew Pinski <pinskia@physics.uc.edu>
Co-Authored-By: Steven Bosscher <stevenb@suse.de>

From-SVN: r88222
2004-09-28 17:59:54 +10:00
Eric Botcazou
5be9b7a175 re PR target/16532 (Inefficient jump to epilogue)
PR target/16532
	* config/sparc/sparc.c (struct machine_function): New field
	'leaf_function_p' and 'prologue_data_valid_p'.
	(sparc_leaf_function_p, sparc_prologue_data_valid_p): New macro
	to conveniently access the above fields.
	(TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Delete.
	(eligible_for_return_delay): Use 'sparc_leaf_function_p' instead
	of the generic flavor 'current_function_uses_only_leaf_regs'.
	(eligible_for_sibcall_delay): Likewise.
	(sparc_expand_prologue): Compute 'sparc_leaf_function_p' and set
	'sparc_prologue_data_valid_p'.  Use 'sparc_leaf_function_p'.
	(sparc_asm_function_prologue): Add sanity check for the assumption
	made in 'sparc_expand_prologue'.  Use 'sparc_leaf_function_p'.
	(sparc_can_use_return_insn_p): New function.
	(sparc_expand_epilogue): Use 'sparc_leaf_function_p'.
	(output_restore): Likewise.
	(output_sibcall): Likewise.
	(sparc_output_mi_thunk): Likewise.
	* config/sparc/sparc-protos.h (sparc_can_use_return_insn_p): Declare.
	* config/sparc/sparc.md (return): New expander.

	* config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Minor tweak.

From-SVN: r88220
2004-09-28 06:26:08 +00:00
David Edelsohn
4badaa417d Fix formatting.
From-SVN: r88218
2004-09-28 00:42:52 -04:00
Mark Mitchell
455f19cb1c re PR c++/17642 (internal compiler error: in invert_truthvalue, at fold-const.c:2997)
PR c++/17642
	* stor-layout.c (layout_decl): Use fold_convert, not convert.
	(bit_from_pos): Likewise.
	(byte_from_pos): Likewise.
	(pos_from_bit): Likewise.
	(normalize_offset): Likewise.
	(place_field): Likewise.
	(finalize_type_size): Likewise.
	(layout_type): Likewise.
	* tree.c (build_index_type): Likewise.

	PR c++/17642
	* cp-tree.h (fold_if_not_in_template): New function.
	* call.c (build_conditional_expr): Use fold_if_not_in_template.
	(build_cxx_call): Likewise.
	* cvt.c (convert_to_complex): Likewise.
	(ocp_convert): Likewise.
	(convert): Likewise.
	(convert_force): Likewise.
	* decl.c (compute_array_index_type): Clear
	processing_template_decl while folding array bounds.
	* pt.c (convert_nontype_argument): Clear
	processing_template_decl while processing non-type argument
	initialization.
	* tree.c (fold_if_not_in_template): New function.
	* typeck.c (build_class_member_access_expr): Use
	fold_if_not_in_template.
	(build_array_ref): Likewise.
	(build_binary_op): Likewise.  Do not try to optimize computations
	when processing templates.
	(cp_pointer_int_sum): Use fold_if_not_in_template.
	(pointer_diff): Likewise.
	(build_unary_op): Likewise.
	(build_reinterpret_cast): Likewise.
	(get_delta_difference): Likewise.
	(expand_ptrmemfunc_cst): Likewise.
	(dubious_conversion_warnings): Likewise.

	* g++.dg/template/crash23.C: New test.

From-SVN: r88217
2004-09-28 02:56:11 +00:00
GCC Administrator
081077002d Daily bump.
From-SVN: r88212
2004-09-28 00:16:13 +00:00
Devang Patel
7ce67fbe42 expr.c (expand_expr_real_1): Handle VEC_COND_EXPR.
* expr.c (expand_expr_real_1): Handle VEC_COND_EXPR.
        * genopinit.c (optabs): New entry for vcond_gen_code and
        vcondu_gen_code.
        * optabs.c (vcond_gen_code, vcondu_gen_code): New optabs.
        (get_rtx_code): New function.
        (vector_compare_rtx): New function.
        (init_optabs): Initialize vcond_gen_code and vcondu_gen_code.
        (expand_vec_cond_expr_p): New function.
        (expand_vec_cond_expr): New function.
        (get_vcond_icode): New function.
        * optabs.h (expand_vec_cond_expr, expand_vec_cond_expr_p): New externs.
        (vcond_gen_code, vcondu_gen_code): Same.

From-SVN: r88209
2004-09-27 17:13:12 -07:00
Kelley Cook
55040e7a24 Makefile.in (STAGESTUFF): Split into ...
2004-09-27  Kelley Cook  <kcook@gcc.gnu.org>

	* Makefile.in (STAGESTUFF): Split into ...
	(STAGECOPYSTUFF, STAGEMOVESTUFF): ... these.
	(mostlyclean): Update.
	(stage1-start, stage2-start, stage3-start, stage4-start,
	stageprofile-start, stagefeedback-start): Copy the STAGECOPYSTUFF.
	Move the STAGEMOVESTUFF.

From-SVN: r88207
2004-09-27 23:16:29 +00:00
R. Kelley Cook
b2cace2966 aclocal.m4: Quote m4_includes.
2004-09-27  Kelley Cook  <kcook@gcc.gnu.org>

	* aclocal.m4: Quote m4_includes. Include ../config/gcc-lib-path.m4.
	* configure.ac: Don't sinclude it here.
	* configure: Regenerate.

From-SVN: r88205
2004-09-27 22:51:37 +00:00
Eric Botcazou
f6260033c9 * system.h (getpagesize): Return 'int' instead of 'long'.
From-SVN: r88204
2004-09-27 22:38:08 +00:00
Matt Austern
7d381002de Fix implicit extern "C" breakage introduced by tokenization patch.
* cp/parser.c (struct cp_token): new one-bit field , implicit_extern_c
	(cp_lexer_get_preprocessor_token): Set implicit_extern_c for
	tokens that come from headers that are implicitly extern "C".
	(struct cp_parser): new one-bit field, implicit_extern_c.
	(cp_parser_new): Set parser's implicit_extern_c to false.
	(cp_parser_translation_unit): Pop lang context if we were in a
	header that was implicitly extern "C".
	(cp_parser_declaration_seq_opt): Push/pop lang context as
	required by the token's and parser's implicit_extern_c.

From-SVN: r88203
2004-09-27 22:24:35 +00:00
Michael Matz
49f41d0643 re PR rtl-optimization/17698 (Mainline failed to bootstrap on ia64)
2004-09-27  Michael Matz <matz@suse.de>

        PR bootstrap/17698
        PR bootstrap/17702
        * bitmap.h (bmp_iter_single_init, bmp_iter_and_not_init,
        bmp_iter_and_init): Shift by bit_in_word.

From-SVN: r88201
2004-09-27 14:41:33 -07:00
R. Kelley Cook
a62322c4dc aclocal.m4: Quote m4_includes.
2004-09-27  Kelley Cook  <kcook@gcc.gnu.org>

	* aclocal.m4: Quote m4_includes. Include ../config/gcc-lib-path.m4.
	* configure.ac: Don't sinclude it here.
	* configure: Regenerate.

From-SVN: r88200
2004-09-27 21:32:13 +00:00
Dorit Naishlos
850e8d3d56 rs6000.c (rs6000_legitimate_address, [...]): Handle AND pattern
* config/rs6000/rs6000.c (rs6000_legitimate_address, print_operand):
        Handle AND pattern

From-SVN: r88196
2004-09-27 20:23:38 +00:00
Joseph Myers
5e9bda655c re PR c/13804 (Error message enhancement Request)
PR c/13804
	* c-typeck.c (build_component_ref): Name type involved in
	diagnostic for structure or union without a member of the given
	name.

testsuite:
	* gcc.dg/pr13804-1.c: New test.

From-SVN: r88195
2004-09-27 20:33:55 +01:00
DJ Delorie
43f51151e2 stormy16.c (xstormy16_asm_output_aligned_common): ..comm alignment is bytes, not bits.
* config/stormy16/stormy16.c (xstormy16_asm_output_aligned_common):
.comm alignment is bytes, not bits.

From-SVN: r88194
2004-09-27 15:28:51 -04:00
Devang Patel
6337c1a2e8 tree-pretty-print.c (dump_generic_node): Print VEC_COND_EXPR.
* tree-pretty-print.c (dump_generic_node): Print VEC_COND_EXPR.
        (print_call_name): Do not print VEC_COND_EXPR.

From-SVN: r88192
2004-09-27 12:23:55 -07:00
Mark Mitchell
821eaf2a80 re PR c++/17585 (usage of unqualified name of static member from within class not allowed)
PR c++/17585
	* cp-tree.h (shared_member_p): Declare.
	* search.c (shared_member_p): Give it external linkage.
	* semantics.c (finish_qualified_id_expr): Use it.
	(finish_id_expression): Likewise.

From-SVN: r88188
2004-09-27 18:47:29 +00:00
Devang Patel
7e200b5010 * tree-pretty-print.c (dump_generic_node): Print VEC_COND_EXPR.
From-SVN: r88187
2004-09-27 11:22:14 -07:00
Jan Hubicka
8c1e80e992 * i386.c (athlon_cost, k8_cost): Set BRANCH_COST to 5.
From-SVN: r88181
2004-09-27 16:19:18 +00:00
Tobias Schlüter
a487f59fd9 re PR fortran/16938 (Internal compiler error using constructor of derived type that is component of derived type)
PR fortran/16938
* gfortran.dg/pr16938.f90: New test.

From-SVN: r88180
2004-09-27 18:01:58 +02:00
Mark Mitchell
d19e85e886 re PR c++/17585 (usage of unqualified name of static member from within class not allowed)
PR c++/17585
	* semantics.c (finish_id_expression): Do not add "this->" to
	static member functions.

	PR c++/17585
	* g++.dg/template/static8.C: New test.

From-SVN: r88174
2004-09-27 14:46:55 +00:00
Nathan Sidwell
c81f61b250 re PR c++/17681 (Bad message about constructor ordering (-Wall))
cp:
	PR c++/17681
	* error.c (dump_type): Change TREE_VEC case into TREE_BINFO.
testsuite:
	PR c++/17681
	* g++.dg/other/error9.C: New test.

From-SVN: r88170
2004-09-27 12:10:16 +00:00
Nathan Sidwell
8d83768f78 class.c (struct count_depth_data): Remove.
* class.c (struct count_depth_data): Remove.
	(dfs_depth_post, dfs_depth_q): Remove.
	(find_final_overrider): Use number of vbase classes as depth
	bound.

	* cp-tree.h (types_overlap_p): Remove.
	* search.c (struct overlap_info): Remove.
	(dfs_check_overlap, dfs_no_overlap_yet, types_overlap_p): Remove.

	* pt.c (GTB_VIA_VIRTUAL, GTB_IGNORE_TYPE): Remove.
	(get_template_base_recursive): Remove. Replace with ...
	(get_template_base_r): ... this.
	(struct get_template_base_data_s): New.
	(get_template_base): Use get_template_base_r via dfs_walk.  Always
	return NULL on failure.
	(unify): Remove error_mark_node check from get_template_base result.

From-SVN: r88169
2004-09-27 12:00:08 +00:00
Kazu Hirata
75e50bd288 * bitmap.h: Fix a comment typo.
From-SVN: r88168
2004-09-27 11:18:10 +00:00
Aaron W. LaFramboise
94c1e7acf0 libgcc2.c (getpagesize): Change type of return value to int.
2004-09-27  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>

	* libgcc2.c (getpagesize): Change type of return value to int.

From-SVN: r88165
2004-09-27 08:01:57 +00:00
Matt Austern
772299b3b4 ggc-page.c (GGC_QUIRE_SIZE): Bump up from 16 to 256 if we're using mmap.
* ggc-page.c (GGC_QUIRE_SIZE): Bump up from 16 to 256 if we're
	using mmap.

From-SVN: r88161
2004-09-27 04:09:15 +00:00
GCC Administrator
84ca2ba728 Daily bump.
From-SVN: r88156
2004-09-27 00:16:14 +00:00
Ulrich Weigand
f4dbad2364 * gcc.dg/tree-ssa/loop-1.c: Use -msmall-exec on s390-*-* targets.
From-SVN: r88151
2004-09-26 22:31:26 +00:00
Zdenek Dvorak
87c476a22c bitmap.h (EXECUTE_IF_SET_IN_BITMAP, [...]): Changed to iterator style.
* bitmap.h (EXECUTE_IF_SET_IN_BITMAP, EXECUTE_IF_AND_COMPL_IN_BITMAP,
	EXECUTE_IF_AND_IN_BITMAP): Changed to iterator style.
	(bitmap_iterator): New type.
	(bmp_iter_common_next_1, bmp_iter_single_next_1, bmp_iter_single_init,
	bmp_iter_end_p, bmp_iter_single_next, bmp_iter_and_not_next_1,
	bmp_iter_and_not_init, bmp_iter_and_not_next, bmp_iter_and_next_1,
	bmp_iter_and_init, bmp_iter_and_next): New functions.
	* basic-block.h (EXECUTE_IF_SET_IN_REG_SET,
	EXECUTE_IF_AND_COMPL_IN_REG_SET, EXECUTE_IF_AND_IN_REG_SET): Changed to
	use iterator-style EXECUTE_IF_IN_BITMAP macros.
	* bitmap.c (bitmap_print): Ditto.
	* bt-load.c (clear_btr_from_live_range, add_btr_to_live_range,
	btr_def_live_range): Ditto.
	* cfganal.c (compute_dominance_frontiers_1) Ditto.
	* cgraphunit.c (convert_UIDs_in_bitmap, cgraph_characterize_statics):
	Ditto.
	* ddg.c (build_inter_loop_deps): Ditto.
	* df.c (FOR_EACH_BB_IN_BITMAP, df_bb_reg_info_compute, df_refs_update):
	Ditto.
	* except.c (remove_eh_handler): Ditto.
	* flow.c (reg_set_to_hard_reg_set): Ditto.
	* gcse.c (clear_modify_mem_tables): Ditto.
	* global.c (build_insn_chain): Ditto.
	* ifcvt.c (dead_or_predicable): Ditto.
	* loop-invariant.c (get_inv_cost, set_move_mark, move_invariant_reg):
	Ditto.
	* ra-build.c (livethrough_conflicts_bb, conflicts_between_webs): Ditto.
	* ra-rewrite.c (reloads_to_loads, rewrite_program2,
	detect_web_parts_to_rebuild, delete_useless_defs, actual_spill): Ditto.
	* tree-cfg.c (allocate_ssa_names, tree_duplicate_sese_region,
	tree_purge_all_dead_eh_edges): Ditto.
	* tree-into-ssa.c (compute_global_livein, insert_phi_nodes,
	insert_phi_nodes_for, debug_def_blocks_r, invalidate_name_tags,
	rewrite_ssa_into_ssa): Ditto.
	* tree-outof-ssa.c (find_replaceable_exprs): Ditto.
	* tree-sra.c (scan_function, decide_instantiations, scalarize_parms):
	Ditto.
	* tree-ssa-alias.c (init_alias_info, compute_points_to_and_addr_escape,
	compute_flow_sensitive_aliasing, maybe_create_global_var,
	dump_points_to_info_for): Ditto.
	* tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Ditto.
	* tree-ssa-dse.c (dse_finalize_block): Ditto.
	* tree-ssa-live.c (live_worklist, calculate_live_on_entry,
	calculate_live_on_exit, build_tree_conflict_graph, dump_live_info):
	Ditto.
	* tree-ssa-loop-ivopts.c (find_induction_variables,
	find_interesting_uses, add_old_ivs_candidates, alloc_use_cost_map,
	determine_use_iv_costs, determine_set_costs, find_best_candidate,
	set_cost_up_to, create_new_ivs, remove_unused_ivs, free_loop_data):
	Ditto.
	* tree-ssa-loop-manip.c (add_exit_phis_var, add_exit_phis): Ditto.
	* tree-ssa-operands.c (get_asm_expr_operands, add_call_clobber_ops,
	add_call_read_ops): Ditto.
	* tree-ssa-pre.c (bitmap_print_value_set, insert_aux): Ditto.

From-SVN: r88145
2004-09-26 19:53:13 +00:00
John David Anglin
69049ba07a pa.c (print_operand): Use non-trapping completers for UNLE...
* pa.c (print_operand): Use non-trapping completers for UNLE, UNLT,
	UNGE, UNGT, UNEQ, UNORDERED and ORDERED comparisons.

From-SVN: r88144
2004-09-26 19:37:56 +00:00
Ulrich Weigand
6cbaec9e89 builtins.c (expand_builtin_memcmp): Adjust MEM_SIZE to reflect size of memory regions being compared.
* builtins.c (expand_builtin_memcmp): Adjust MEM_SIZE to
	reflect size of memory regions being compared.

From-SVN: r88142
2004-09-26 19:15:00 +00:00
Ulrich Weigand
931e6c29a7 builtins.c (get_memory_rtx): Set mem attributes for non-ADDR_EXPR expressions.
* builtins.c (get_memory_rtx): Set mem attributes for non-ADDR_EXPR
	expressions.  Always clear MEM_SIZE and alias set.

From-SVN: r88141
2004-09-26 19:13:38 +00:00
Tobias Schlüter
54df0e3ead re PR fortran/15164 (trans-decl.c:411: gfc_finish_var_decl: Assertion failed)
PR fortran/15164
* gfortran.dg/pr15164.f90: New test. Fixed in followup commit.

From-SVN: r88132
2004-09-26 17:44:19 +02:00
Tobias Schlüter
fafdb00c15 re PR fortran/15164 (trans-decl.c:411: gfc_finish_var_decl: Assertion failed)
PR fortran/15164
* gfortran.dg/pr15164.f90: New test.

From-SVN: r88131
2004-09-26 17:24:57 +02:00
Roger Sayle
897f610ba4 re PR middle-end/17112 (Copying of packed bitfields is wrong)
PR middle-end/17112
	* stor-layout.c (compute_record_mode): For records with a single
	field, only use the field's mode if its size matches what we'd
	have choosen for the record ourselves.  This forces the use of
	BLKmode for packed records that don't completely fill a mode.

	* gcc.dg/pr17112-1.c: New test case.

Co-Authored-By: Giovanni Bajo <giovannibajo@gcc.gnu.org>

From-SVN: r88130
2004-09-26 14:58:34 +00:00
Roger Sayle
5c8c573a86 re PR rtl-optimization/17151 (x >> (y % WORDSIZE) not optimized)
PR middle-end/17151
	* combine.c (force_to_mode): Remove dubious early return test that
	inhibits further optimization.

From-SVN: r88129
2004-09-26 14:55:37 +00:00
Tobias Schlüter
68629d160e * trans-intrinsic.c: Comment fixes.
From-SVN: r88126
2004-09-26 16:24:07 +02:00