Paolo Bonzini [Mon, 9 Aug 2004 07:14:17 +0000 (07:14 +0000)]
Makefile.in (GTFILES): Remove stmt.c
2004-08-09 Paolo Bonzini <bonzini@gnu.org>
* Makefile.in (GTFILES): Remove stmt.c
(stmt.o): Do not depend on gt-stmt.h.
* emit-rtl.c (emit_line_note): Do not call
set_file_and_line_for_stmt.
* expr.c (expand_expr_real_1) <SWITCH_EXPR>: Let expand_case
do everything.
* function.c (free_after_parsing): Do not free STMT field.
(allocate_struct_function): Do not call init_stmt_for_function.
(assign_stack_temp_for_type): Do not accept values of keep
other than 0 or 1.
(init_temp_slots): Do not initialize removed variables.
* function.h (struct function): Remove STMT, X_TARGET_TEMP_SLOT_LEVEL
and X_VAR_TEMP_SLOT_LEVEL fields.
* rtl.h (set_file_and_line_for_stmt): Remove.
* stmt.c (struct nesting, ALLOC_NESTING, POPSTACK,
struct stmt_status, cond_stack, case_stack, nesting_stack,
nesting_depth, emit_locus, set_file_and_line_for_stmt,
same_case_target_p, init_stmt_for_function, emit_nop,
expand_start_cond, expand_start_elseif, expand_start_else,
expand_elseif, expand_end_cond): Remove.
(preserve_subexpressions_p): Remove references to CFUN->STMT.
(expand_start_case, expand_end_case_type): Remove, merge into...
(expand_case): ... this one, including other bits from
expand_expr_real_1. Inline same_case_target_p. Turn members
of CASE_STACK into local variables.
(emit_case_bit_tests): Inline same_case_target_p.
(add_case_node): Add HEAD argument, return new head of the list,
do not handle default label here.
* tree.h (expand_start_cond, expand_end_cond, expand_start_else,
expand_start_elseif, current_nesting_level, expand_start_case,
expand_end_case_type, expand_end_case, add_case_node,
init_stmt_for_function, expand_elseif): Remove prototypes.
(expand_case): Add prototype.
* common.opt (freschedule-modulo-scheduled-loops): New flag.
* final.c (final_scan_insn): Handle NOTE_DISABLE_SCHED_OF_BLOCK.
* modulo-sched.c (sms_schedule): Emit a note to disable scheduling
when -freschedule-modulo-scheduled-loops flag is not specified.
(sms_schedule_by_order, ps_insn_advance_column, add_node_to_ps,
add_node_to_ps, ps_has_conflicts, ps_add_node_check_conflicts):
More accurate placing of insn in row of partial schedule.
(ps_insn_find_column): New function.
* rtl.h (NOTE_DISABLE_SCHED_OF_BLOCK): New note.
* sched-rgn.c (sched_is_disabled_for_current_region_p): New.
(schedule_region): Use sched_is_disabled_for_current_region_p.
* docs/invoke.texi: Document -freschedule-modulo-scheduled-loops.
treelang:
2004-08-01 James A. Morrison <phython@gcc.gnu.org>
* Make-lang.in (TREE_BE_LIBS): Remove.
(tree1): Depend on BACKEND and LIBDEPS. Use BACKEND and LIBS instead
of TREE_BE_LIBS.
* parse.y: Add variable_defs_opt before statements_opt.
Use tree_code_get_type instead of get_type_for_numeric_type.
Reformat long lines.
(parameters_opt): New rule.
(function_prototype): Use parameters_opt.
(return): Remove calls to print_token in error cases. Use VOID_TYPE.
(check_type_match): Use VOID_TYPE.
* lex.l (update_lineno_charno): Ensure INPUT_LINE starts at 1.
* tree1.c: Include version.h and cgraph.h
(treelang_parse_file): Call cgraph_finalize_compilation_unit and
cgraph_optimize.
* treelang.h (item): Remove extraneous GTY.
* treetree.h (get_type_for_numeric_type): Remove.
* treetree.c: Include tree-dump.h, tree-iterator.h, tree-gimple.h,
function.h, and cgraph.h. Don't include rtl.h
(keep_level_p): Remove.
(tree_push_atomic_type_decl): Remove.
(get_type_for_numeric_type): Remove.
(tree_code_get_numeric_type): Remove.
(global_bindings_p): Make static.
(getdecls): Likewise.
(insert_block): Likewise.
(tree_code_if_start): Create a COND_EXPR and add it to the tree
instead of creating rtl.
(tree_code_if_else): Create a BIND_EXPR if any variables were created
in the if statement.
(tree_code_end_if): Likewise.
(tree_code_create_function_prototype): Use tree_code_get_type.
Don't use SET_DECL_ASSEMBLER_NAME.
(tree_code_create_function_initial): Set DECL_ARTIFICIAL and
DECL_IGNORING_P on RESULT_DECL. Use tree_code_get_type. Don't call
layout_decl on RESULT_DECL. Don't call rtl expand functions.
(tree_code_create_function_wrapup): Don't call rtl expand functions.
Create a BIND_EXPR for each function. Dump original and gimplified
copies of the function tree. Gimplify function.
(tree_code_create_variable): Use tree_code_get_type. Don't call
layout_decl or expand_decl. Fold CONVERT_EXPRs.
(tree_code_generate_return): Fold CONVERT_EXPRs and MODIFY_EXPRs.
Add RETURN_EXPR to the current statement list. Don't call rtl expand
functions.
(tree_code_output_expression_statement): Append CODE to current
statement list.
(tree_code_get_expression): Fold expressions. Build a pointer to
a FUNCTION_TYPE intead of the called functions return type.
(struct binding_level): Add statement list STMTS.
(getstmtlist): New Function.
(pushlevel): Make static. Allocate an empty statement list.
(poplevel): Make static. Don't clear BLOCK_NODE's BLOCK_VARS.
Don't use DECL_ASSEMBLER_NAME.
(tree_push_type_decl): Set TYPE_NAME of TYPE_NODE to ID.
(treelang_init_decl_processing): Define basic types after unused types.
Don't call tree_push_atomic_type_decl.
(builtin_function): Don't call make_decl_rtl.
(treelang_expand_function). New Function.
testsuite/treelang:
* compile/vars_def.tree: New File.
* compile/badreturn.tree: New File.
Jason Merrill [Sat, 7 Aug 2004 17:40:10 +0000 (13:40 -0400)]
Make return in memory explicit.
* function.c (aggregate_value_p): Check DECL_BY_REFERENCE.
(assign_parm_find_data_types): Remove code for old front end
invisible reference handling.
(assign_parms): Handle DECL_BY_REFERENCE on the RESULT_DECL.
(expand_function_end): Likewise.
* gimplify.c (gimplify_return_expr): Handle a dereferenced
RESULT_DECL.
* tree-inline.c (copy_body_r): Don't bother looking for &* anymore.
(declare_return_variable): Handle DECL_BY_REFERENCE.
* cp/cp-gimplify.c (is_invisiref_parm): Also handle RESULT_DECL.
(cp_genericize_r): Use convert_from_reference.
Don't dereference a RESULT_DECL directly inside a RETURN_EXPR.
(cp_genericize): Handle the RESULT_DECL. Unset TREE_ADDRESSABLE.
Jason Merrill [Sat, 7 Aug 2004 16:11:10 +0000 (12:11 -0400)]
gimplify.c (gimplify_call_expr): Make return in memory explicit.
* gimplify.c (gimplify_call_expr): Make return in memory explicit.
(gimplify_modify_expr_rhs): Likewise.
* c-common.c (c_warn_unused_result): Check TREE_USED before
warning about a CALL_EXPR with an unused value.
Jonathan Wakely [Sat, 7 Aug 2004 15:31:50 +0000 (16:31 +0100)]
debug.cc (_Error_formatter::_M_print_string): In order to print individual words from __string...
2004-08-07 Jonathan Wakely <redi@gcc.gnu.org>
Paolo Carlini <pcarlini@suse.de>
* src/debug.cc (_Error_formatter::_M_print_string): In order
to print individual words from __string, _M_format_word can't
be called since may be just sprintf, thus ignoring completely
__n: instead, use memmove and append '\0' by hand.
Co-Authored-By: Paolo Carlini <pcarlini@suse.de>
From-SVN: r85670
Paul Brook [Fri, 6 Aug 2004 15:01:10 +0000 (15:01 +0000)]
trans-array.c (gfc_trans_allocate_array_storage, [...]): For functions...
* trans-array.c (gfc_trans_allocate_array_storage,
gfc_trans_allocate_temp_array, gfc_add_loop_ss_code,
gfc_conv_loop_setup):
For functions, if the shape of the result is not known
in compile-time, generate an empty array descriptor for
the result and let the callee to allocate the memory.
(gfc_trans_dummy_array_bias): Do nothing for pointers.
(gfc_conv_expr_descriptor): Use function return values directly.
* trans-expr.c (gfc_conv_function_call): Always add byref call
insn to pre chain.
(gfc_trans_pointer_assignment): Add comments.
(gfc_trans_arrayfunc_assign): Don't chain on expression.
testsuite/
* gfortran.dg/ret_array_1.f90: New test.
* gfortran.dg/ret_pointer_1.f90: New test.
re PR c/13282 (A "-Wno..." switch to turn off "missing initializer" warnings)
PR c/13282
* c.opt (Wmissing-field-initializers): New option.
* c-opts.c (c_common_post_options): Make -Wextra turn it on by default.
* c-typeck.c (pop_init_level): Guard the missing field warning with
warn_missing_field_initializers rather than extra_warnings.
* doc/invoke.texi (-Wmissing-field-initializers): Document, moving
some of the explanation from...
(-Wextra): ...here. Say that the missing field warning can be
seperately controlled by -Wmissing-field-initializers.
cp/
* typeck2.c (process_init_constructor): Guard the missing field warning
with warn_missing_field_initializers rather than extra_warnings.
testsuite/
* gcc.dg/missing-field-init-[12].c: New tests.
* g++.dg/warn/missing-field-init-[12].C: New tests.
Jakub Jelinek [Fri, 6 Aug 2004 10:17:14 +0000 (12:17 +0200)]
i386.c (ix86_expand_clrmem): Move gen_cld down to the places where it is actually needed.
* config/i386/i386.c (ix86_expand_clrmem): Move gen_cld down to
the places where it is actually needed. Don't use repz; stosb
for -Os with sufficiently small constant sizes.
For sufficiently small repz; stos{l,q} repeat counts use a sequence
of stos{l,q} instructions instead.
Zdenek Dvorak [Fri, 6 Aug 2004 09:40:39 +0000 (11:40 +0200)]
re PR tree-optimization/16807 ([lno] Weird loop unrolling)
PR tree-optimization/16807
* loop-iv.c (dump_iv_info): Dump invariants correctly.
(iv_subreg, iv_extend): Express value of invariant purely in
base field.
Roman Zippel [Fri, 6 Aug 2004 07:14:56 +0000 (07:14 +0000)]
m68k.c (post_inc_operand,pre_dec_operand): New.
* config/m68k/m68k.c (post_inc_operand,pre_dec_operand): New.
* config/m68k/m68k.h (PREDICATE_CODES): add post_inc_operand,
pre_dec_operand.
* config/m68k/m68k.md (zero_extend*2): delay the splitting of the
pattern until reload is finished to allow better code generation
and split them completely into separate instrunctions.
(*andsi3_split): New pattern.
Paolo Bonzini [Fri, 6 Aug 2004 06:45:23 +0000 (06:45 +0000)]
Makefile.def (bfd, [...]): Mark as bootstrap module.
2004-08-06 Paolo Bonzini <bonzini@gnu.org>
* Makefile.def (bfd, opcodes, gcc, zlib): Mark as bootstrap module.
(bison, byacc, flex, texinfo): Do not mark as bootstrap module.
(Dependencies): New section.
* Makefile.tpl (Dependencies): Generate from Makefile.def.
(configure-target-[+module+]): Depend on maybe-all-gcc
(all-prebootstrap): New name of all-bootstrap. Changed throughout.
(toplevel profiledbootstrap): Fix dependencies.
* Makefile.in: Regenerate.
Mark Mitchell [Fri, 6 Aug 2004 02:03:29 +0000 (02:03 +0000)]
tree.c (handle_dll_attribute): Move here from i383/winnt.c.
* tree.c (handle_dll_attribute): Move here from i383/winnt.c.
Replace use of DECL_INLINE with DECL_DECLARED_INLINE_P. Set
DECL_VISIBLITY. Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
* tree.h (handle_dll_attribute): Declare. Test
TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
* c-common.h (c_determine_visibility): Declare.
* c-common.c (c_determine_visibility): New function.
* c-decl.c (finish_decl): Use it.
(finish_function): Likewise.
* defaults.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define it to
zero, by default. Use #if, not #ifdef, to test it.
* config/arm/arm.c (arm_attribute_table): Use
handle_dll_attribute. Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with
#if.
* config/arm/pe.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define to 1.
* config/i386/cygming.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
to 1.
* config/i386/i386-protos.h (ix86_handle_dll_attribute): Remove.
* config/i386/i386.c (ix86_attribute_table): Use
handle_dll_attribute for dllimport/dllexport. Test
TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
* config/i386/winnt.c (ix86_handle_dll_attribute): Remove.
* config/mcore/mcore.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
it to 1.
* config/mcore/mcore.c (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Test it
with #if.
* config/sh/symbian-pre.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
it to 1.
* doc/extend.texi (dllexport): Clarify and correct documentation.
(dllimport): Likewise.
* doc/tm.texi (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Mention
handle_dll_attribute.
pa.c (pa_asm_output_aligned_bss, [...]): New functions.
* pa.c (pa_asm_output_aligned_bss, pa_asm_output_aligned_common,
pa_asm_output_aligned_local): New functions.
* pa-protos.h: Add prototypes for pa_asm_output_aligned_bss,
pa_asm_output_aligned_common and pa_asm_output_aligned_local.
* pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Use
pa_asm_output_aligned_common.
(ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
* pa.h (ASM_OUTPUT_ALIGNED_BSS): New macro.
(ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
(ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
* pa64-hpux.h (MAX_OFILE_ALIGNMENT): New macro.
(ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
(ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
* som.h (MAX_OFILE_ALIGNMENT): Provide maximum alignment of global
common data.
* decl.c (make_rtl_for_nonlocal_decl): Set DECL_ASSEMBLER_NAME rather
than passing it as a parameter to rest_of_decl_compilation.
* decl2.c (grokfield): Use set_user_assembler_name.
Adam Nemet [Thu, 5 Aug 2004 04:55:37 +0000 (04:55 +0000)]
config.gcc (case i[34567]86-*-lynxos*): Update to LynxOS 4.0.
* config.gcc (case i[34567]86-*-lynxos*): Update to LynxOS 4.0.
(case rs6000-*-lynxos*): Rename it to powerpc-*-lynxos*. Update
to LynxOS 4.0.
* gthr-lynx.h: New file.
* config/lynx-ng.h: Remove file.
* config/lynx.h: Update to LynxOS 4.0.
* config/t-lynx: New file.
* config/i386/lynx-ng.h: Remove file.
* config/i386/lynx.h: Update to LynxOS 4.0.
* config/rs6000/lynxbase.h: Remove file.
* config/rs6000/lynx.h: Update to LynxOS 4.0.
* config/rs6000/t-lynx: New file.
* doc/install.texi (Options specification): Remove reference to
LynxOS from systems where --with-gnu-as makes a difference.
Joseph Myers [Thu, 5 Aug 2004 00:38:31 +0000 (01:38 +0100)]
c-common.c (c_stddef_cpp_builtins): Define __INTMAX_TYPE__ and __UINTMAX_TYPE__.
* c-common.c (c_stddef_cpp_builtins): Define __INTMAX_TYPE__ and
__UINTMAX_TYPE__.
* c-cppbuiltin.c (builtin_define_stdint_macros): New. Define
__INTMAX_MAX__.
(c_cpp_builtins): Call it.
* doc/cpp.texi: Update.
testsuite:
* gcc.c-torture/execute/builtins/abs-2.c,
gcc.c-torture/execute/builtins/abs-3.c,
gcc.c-torture/execute/builtins/lib/abs.c, gcc.dg/format/format.h,
gcc.dg/torture/builtin-attr-1.c: Use predefined macros for
intmax_t, uintmax_t and their limits.
* gcc.dg/intmax_t-1.c: New test.
* errors.c: Include bconfig.h not config.h. Correct comment.
* gengtype.c, genpreds.c: Don't define NO_GENRTL_H.
* ggc-none.c: Include bconfig.h; not config.h or tm.h.
* print-rtl.c: Don't include tm_p.h.
* rtl.h: Move forward-decl of struct function down where it's
needed. Include genrtl.h #ifndef GENERATOR_FILE, not
#ifndef NO_GENRTL_H. Remove unnecessary #ifdef BUFSIZ statements.
Zdenek Dvorak [Wed, 4 Aug 2004 20:37:38 +0000 (22:37 +0200)]
tree-cfg.c (tree_duplicate_bb): Mark duplicated definitions.
* tree-cfg.c (tree_duplicate_bb): Mark duplicated definitions.
* tree-flow.h (rewrite_ssa_into_ssa): Declaration changed.
* tree-into-ssa.c (rewrite_ssa_into_ssa): Use new interface to
manipulate the duplicated ssa names.
* tree-ssanames.c (ssa_names_to_rewrite): New variable.
(marked_for_rewrite_p, any_marked_for_rewrite_p, mark_for_rewrite,
unmark_all_for_rewrite, marked_ssa_names, release_ssa_name_force):
New functions.
(release_ssa_name): Do not release ssa names that may have multiple
definitions.
* tree.h (release_ssa_name_force, mark_for_rewrite,
unmark_all_for_rewrite, marked_for_rewrite_p, any_marked_for_rewrite_p,
marked_ssa_names): Declare.
* tree-ssa-loop-ch.c (mark_defs_for_rewrite): Remove.
(duplicate_blocks): Remove call to mark_defs_for_rewrite.
Update call to rewrite_ssa_into_ssa.
Co-Authored-By: Jeff Law <law@redhat.com>
From-SVN: r85572
gcc/
* target-def.h (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
(TARGET_CXX): Use it.
* target.h (struct gcc_target): Add cdtor_returns_this.
* config/arm/arm.c (arm_cxx_cdtor_returns_this): New function.
(TARGET_CXX_CDTOR_RETURNS_THIS): Define.
* doc/tm.texi: Document TARGET_CXX_CDTOR_RETURNS_THIS.
gcc/cp/
* Make-lang.in (cp/semantics.o, cp/optimize.o): Depend on TARGET_H.
* cp-tree.h (struct language_function): Rename x_dtor_label to
x_cdtor_label.
(dtor_label): Rename ...
(cdtor_label): ... to this.
* decl.c (begin_constructor_body): Remove.
(check_special_function_return_type): Maybe change the return type.
(grokdeclarator): Pass the class type.
(start_preparsed_function): Constructors may need a return label.
(finish_constructor_body, finish_destructor_body): Set the return
value.
(begin_function_body): Don't call begin_constructor_body.
(finish_function): Don't warn for constructors or destructors.
(implicitly_declare_fn): Maybe change the return type.
* optimize.c: Include target.h.
(maybe_clone_body): Remap the function result.
* semantics.c: Include target.h.
(finish_return_stmt): Maybe jump to return label for constructors.
* libgfortran.h (array_t, size0) New declarations.
* m4/ifunction.m4, m4/transpose.m4, intrinsics/cshift0.c: Allocate
space if return value descriptor has NULL in its data field,
and initialize bounds and stride.
* intrinsics/size.c (array_t, size0): Declarations moved to
libgfortran.h.
* generated/*.c: Regenerate.
Roger Sayle [Wed, 4 Aug 2004 11:13:07 +0000 (11:13 +0000)]
typeck.c (convert_ieee_real_to_integer): Call fold on the range checking trees as they're being built.
2004-08-04 Roger Sayle <roger@eyesopen.com>
Andrew Haley <aph@redhat.com>
* typeck.c (convert_ieee_real_to_integer): Call fold on the range
checking trees as they're being built.
(convert): Call convert_ieee_real_to_integer if we're
converting a constant, even if we're writing a class file.
Co-Authored-By: Andrew Haley <aph@redhat.com>
From-SVN: r85553
* dbxout.c (dbxout_function_decl): Always call dbxout_function_end.
(dbxout_function_end): Return after emitting the "Lscope" symbol
under the same conditions that this function formerly wasn't called.
Add explanatory comments.
Zack Weinberg [Wed, 4 Aug 2004 06:32:01 +0000 (06:32 +0000)]
re PR c++/13596 (value of __cplusplus)
PR 13596
* dbxout.c (dbx_output_lbrac, dbx_output_rbrac): New
functions, broken out of dbxout_block.
(dbxout_block): The block at depth 0 should get LBRAC/RBRAC
stabs too, if it contains symbols. Use the begin_label and
the Lscope label (emitted by dbxout_function_end) for the
range of this block.
configure.in: Eliminate uses of changequote (mostly by quoting []).
* configure.in: Eliminate uses of changequote (mostly by quoting []).
Replace most top level 'dnl' comments with '#' comments, conforming
to new autoconf style. Use AS_HELP_STRING throughout; improve a few
help strings.
* configure: Rebuilt.
Zack Weinberg [Tue, 3 Aug 2004 23:30:45 +0000 (23:30 +0000)]
gensupport.c (init_md_reader_args_cb): Renamed from init_md_reader_args.
* gensupport.c (init_md_reader_args_cb): Renamed from
init_md_reader_args. Add third option, callback function for
parsing program-specific options. Add diagnosis of incorrect
number of input files.
(init_md_reader): Fold into init_md_reader_args_cb.
(init_md_reader_args): Now a thin wrapper around
init_md_reader_args_cb.
* gensupport.h: Update prototypes.
* genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
* genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
* genrecog.c: No need to diagnose lack of an input file;
init_md_reader_args will handle it.
* genconditions.c: Likewise, and use init_md_reader_args.
* genconstants.c: Likewise, and no need to call read_md_rtx.
Kelley Cook [Tue, 3 Aug 2004 21:42:18 +0000 (21:42 +0000)]
maintainer-scripts (snapshot_print): New function.
2004-08-03 Kelley Cook <kcook@gcc.gnu.org>
* maintainer-scripts (snapshot_print): New function.
(announce_snapshot): Generate announcment on the fly.
Use a directory link for LATEST.
* snapshot-README: Delete.
* snapshot-index.html: Delete.