Andreas Tobler [Wed, 7 Jul 2004 18:24:00 +0000 (20:24 +0200)]
configure.host: Enable hash synchronization on Darwin.
2004-07-07 Andreas Tobler <a.tobler@schweiz.ch>
* configure.host: Enable hash synchronization on Darwin.
* sysdep/powerpc/locks.h (compare_and_swap): Use '\n' instead of
';', since this is a comment on Darwin.
(compare_and_swap_release): Likewise.
PR target/1679.
* config/m32r/m32r.c (m32r_function_symbol): New function: Generate a symbol
name RTX with the correct m32r specific flags set.
(block_move_call): Use new function to generate correct symbol.
* config/m32r/m32r-protos.h: Add prototype for new funcion.
* config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Use the new function.
Roger Sayle [Tue, 6 Jul 2004 21:50:47 +0000 (21:50 +0000)]
ifcvt.c (struct noce_if_info): Add a Boolean b_unconditional field.
* ifcvt.c (struct noce_if_info): Add a Boolean b_unconditional field.
(noce_try_sign_mask): Tweak rtx_cost check if t is evaluated anyway.
(noce_process_if_block): Initialize if_info.b_unconditional if insn_b
is currently executed unconditionally, i.e. not in "else_bb".
* jartool.c
Updated copyright year.
(progname): new variable.
(end_of_entries): new variable.
(main): open and read file when updating.
(find_entry): new function.
(looks_like_dir): new function.
(read_entries): new function.
(make_manifest): added parameter `updating'.
Call `add_file_to_jar' with `updating'.
(add_to_jar_with_dir): added parameter `updating'.
Call `add_to_jar' with `updating'.
(add_to_jar): added parameter `updating'.
Call `add_file_to_jar' with `updating'.
Don't add directories if they already exist.
(add_file_to_jar): added parameter `updating'.
Update entries if they already exist.
Daniel Berlin [Tue, 6 Jul 2004 19:55:06 +0000 (19:55 +0000)]
tree-ssa-pre.c (reference_node_pool): New pool.
2004-07-06 Daniel Berlin <dberlin@dberlin.org>
* tree-ssa-pre.c (reference_node_pool): New pool.
(find_or_generate_expression): Class 'r' is okay too.
(create_value_expr_from): Ditto.
(add_to_sets): LHS should not include vuses.
(eliminate): Ditto.
(compute_avail): Reverse ordering of tests.
Valuize INDIRECT_REF as well.
* vms_conv.ads: Minor reformatting.
Alphabetical order for enumerated values of type Command_Type, to have
the command in alphabetical order for the usage.
* vms_conv.adb (Process_Argument): Set Keep_Temporary_Files to True for
the special qualifier /KEEP_TEMPORARY_FILES (minimum 6 characters).
* gnat_ugn.texi: Document new switch -dn for the GNAT driver.
* makegpr.adb (Global_Archive_Exists): New global Boolean variable
(Add_Archive_Path): Only add the global archive if there is one.
(Build_Global_Archive): Set Global_Archive_Exists depending if there is
or not any object file to put in the global archive, and don't build
a global archive if there is none.
(X_Switches): New table
(Compile_Link_With_Gnatmake): Pass to gnatmake the -X switches stored
in the X_Switches table, if any.
(Initialize): Make sure the X_Switches table is empty
(Scan_Arg): Record -X switches in table X_Switches
* opt.ads (Keep_Temporary_Files): New Boolean flag, defaulted to False.
* make.adb: Minor comment fix
* gnatname.adb (Gnatname): When not on VMS, and gnatname has been
invoked with directory information, add the directory in front of the
path.
* gnatchop.adb (Gnatchop): When not on VMS, and gnatchop has been
invoked with directory information, add the directory in front of the
path.
* gnatcmd.adb (Delete_Temp_Config_Files): Only delete temporary files
when Keep_Temporary_Files is False.
(GNATCmd): When not on VMS, and the GNAT driver has been invoked with
directory information, add the directory in front of the path.
When not on VMS, handle new switch -dn before the command to set
Keep_Temporary_Files to True.
(Non_VMS_Usage): Use lower case for the non VMS usage: this is valid
everywhere.
* gnatlink.adb (Gnatlink): When not on VMS, and gnatlink has been
invoked with directory information, add the directory in front of the
path.
2004-07-06 Thomas Quinot <quinot@act-europe.fr>
* snames.ads, snames.adb (Name_Stub): New name for the distributed
systems annex.
* rtsfind.ads: New RTE TC_Object, for DSA/PolyORB.
New RTEs RAS_Proxy_Type and RAS_Proxy_Type_Access, for DSA.
* g-socket.adb (To_Timeval): Fix incorrect conversion of
Selector_Duration to Timeval for the case of 0.0.
* exp_util.ads (Evolve_Or_Else): Fix overenthusiastic copy/paste of
documentation from Evolve_And_Then.
* sem_attr.adb, exp_attr.adb: New attribute Has_Access_Values
* sem_util.ads, sem_util.adb (Requires_Transient_Scope): Allow many
more cases of discriminated records to be recognized as not needing a
secondary stack.
(Has_Access_Values): New function.
* snames.h, snames.adb, snames.ads: New attribute Has_Access_Values
* cstand.adb, layout.ads, layout.adb, sem_ch13.ads: Change name
Set_Prim_Alignment to Set_Elem_Alignment (more accurate correspondence
with LRM terminology).
Change terminology in comments primitive type => elementary type.
2004-07-06 Ed Schonberg <schonberg@gnat.com>
PR ada/15602
* sem_ch7.adb (Unit_Requires_Body): For a generic package, the formal
parameters do not impose any requirements on the presence of a body.
2004-07-06 Ed Schonberg <schonberg@gnat.com>
PR ada/15593
* sem_ch12.adb (Analyze_Package_Instantiation): If the generic is not a
compilation unit and is in an open scope at the point of instantiation,
assume that a body may be present later.
2004-07-06 Ed Schonberg <schonberg@gnat.com>
* sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 'Size):
Improve error message when specified size is not supported.
* sem_ch6.adb (Maybe_Primitive_Operation): A library-level subprogram
is never a primitive operation.
Eric Botcazou [Tue, 6 Jul 2004 12:51:03 +0000 (14:51 +0200)]
sparc.c (get_pc_symbol): Rename into add_pc_to_pic_symbol.
* config/sparc/sparc.c (get_pc_symbol): Rename into
add_pc_to_pic_symbol.
(get_pc_symbol_name): Rename into add_pc_to_pic_symbol_name.
(load_pic_register): Account for previous changes.
Use reg_names. Don't create the label twice.
* config/sparc/sparc.md (UNSPEC_GET_PC): Rename into
UNSPEC_LOAD_PCREL_SYM.
(get_pc): Rename into load_pcrel_sym. Add predicate to
operands. Remove condition.
Mark Mitchell [Tue, 6 Jul 2004 07:16:32 +0000 (07:16 +0000)]
revert: re PR tree-optimization/16115 (double-destruction problem with argument passing via temporary (breaks auto_ptr))
Revert:
2004-06-24 Jason Merrill <jason@redhat.com>
PR c++/16115
* decl.c (grokparms): Give the PARM_DECL reference type if the
parameter is passed by invisible reference.
* config/mcore/mcore.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
Define.
* config/mcore/mcore.md: Model memory latency with a simple DFA
pipeline description instead of a define_function_unit.
Richard Kenner [Tue, 6 Jul 2004 02:20:16 +0000 (02:20 +0000)]
langhooks-def.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Extra arg.
* langhooks-def.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Extra arg.
* langhooks.h (var_mod_type_p): Likewise.
* c-decl.c (finish_decl): Add extra arg to variably_modified_type_p.
* expr.c (count_type_elements): Properly handle return from
array_type_nelts and properly test for overflow.
* gimplify.c (gimplify_init_constructor): Properly handle return
from array_type_nelts.
(gimplify_addr_expr): Remove redundant clear of TREE_SIDE_EFFECTS.
* integrate.c (copy_decl_for_inlining): Correct comments.
* tree-inline.c (remap_decl): Update comments, remove dead code,
and copy DECL_FIELD_OFFSET and DECL_QUALIFIER, if they exist.
(remap_type): Only remap if variably modified by vars in function
being inlined.
(copy_body_r): Use compatible_type langhooks to see when can fold.
(setup_one_parameter): Don't remap type.
(inline_forbidden_p_1): Add arg to variably_modified_type_p.
* tree.c (recompute_tree_invarant_for_addr_expr): Properly
compute TREE_INVARIANT for decl case.
(find_var_from_fn): New function.
(variably_modified_type_p): Add arg and call new function.
* tree.h (variably_modified_type_p): Add extra arg.
* cp/cp-lang.c (cp_var_mod_type_p): Add extra arg.
* cp/decl.c (grokdeclarator): Extra arg to variably_modified_type_p.
* cp/pt.c (check_instantiated_args, unify): Likewise.
VMClassLoader.java (init): Check classpath entry before passing to URL constructor.
2004-07-05 Bryce McKinlay <mckinlay@redhat.com>
* gnu/gcj/runtime/VMClassLoader.java (init): Check classpath entry
before passing to URL constructor. Rethrow any MalformedURLException
as a RuntimeException. Catch MalformedURLException specifically, not
all exceptions.
Jakub Jelinek [Mon, 5 Jul 2004 21:37:40 +0000 (23:37 +0200)]
expr.c (expand_assignment): Disable the bitfield += optimizations.
* expr.c (expand_assignment): Disable the bitfield += optimizations.
* gcc.c-torture/execute/20040629-1.c (FIELDS1, FIELDS2): Define to
nothing if not yet defined. Use it in b, c and d type definitions.
* gcc.c-torture/execute/20040705-1.c: New test.
* gcc.c-torture/execute/20040705-2.c: New test.
gcc:
* tree-mudflap.c: Include cgraph.h.
(mf_init_extern_trees): Rename to mudflap_init. Export.
Rewrite to create synthetic declarations instead of looking
up declarations from mf-runtime.h.
(mf_make_builtin, mf_make_cache_struct_type): New functions.
(mf_cache_shift_decl, mf_cache_mask_decl, mf_unregister_fndecl):
Correct commentary.
(execute_mudflap_function_decls, mudflap_register_call):
Don't call mf_init_extern_trees.
(mudflap_finish_file): Use cgraph_build_static_cdtor.
* tree-mudflap.h: Update prototypes.
* c-mudflap.c: Delete file.
* c-common.c: Include tree-mudflap.h.
(c_common_nodes_and_builtins): Call mudflap_init if appropriate.
* Makefile.in: Remove all references to c-mudflap.o.
Update dependencies.
gcc/cp:
* cp-mudflap.c: Delete file.
* Makefile.in: Remove all references to cp-mudflap.o.
libmudflap:
* mf-runtime.h.in: Wrap declarations of struct __mf_cache,
__mf_lookup_cache, __mf_lc_mask, or __mf_lc_shift in
#ifndef _MUDFLAP.
* langhooks.c: Don't include gt-langhooks.h.
(var_labelno): Delete.
(lhd_set_decl_assembler_name): Do not append a distinguishing
number to file-scope internal-linkage declarations for the first
input file, even if they have DECL_CONTEXT set. Use DECL_UID of
the declaration itself (if at block scope), or its containing
TRANSLATION_UNIT_DECL (if at file scope) for the distinguishing
number.
* opts.c (cur_in_fname): New global.
* opts.h: Declare it.
* tree.c: Include opts.h.
(make_node_stat): If creating a TRANSLATION_UNIT_DECL, give it
DECL_UID equal to cur_in_fname.
(copy_node_stat): Do not change DECL_UID when copying a
TRANSLATION_UNIT_DECL.
(build_common_tree_nodes): Adjust next_decl_uid to reserve the
range 0 .. num_in_fnames-1 for TRANSLATION_UNIT_DECLs.
Roger Sayle [Mon, 5 Jul 2004 16:44:17 +0000 (16:44 +0000)]
fold-const.c (fold): Optimize unsigned modulus by a power of two into a bit-wise AND, i.e.
* fold-const.c (fold) <TRUNC_MOD_EXPR>: Optimize unsigned modulus
by a power of two into a bit-wise AND, i.e. "X % C" as "X & (C-1)".
Normalize "X % C" as "X % -C" for signed modulus and negative C.
Optimize "X % -Y" as "X % Y" for signed modulus.
<EQ_EXPR>: Recursively call "fold" when transforming "(X % Y) == 0"
into "((unsigned) X % Y) == 0".
Richard Kenner [Mon, 5 Jul 2004 16:39:15 +0000 (16:39 +0000)]
tree.h (DECL_SEEN_IN_BIND_EXPR_P): New macro.
* tree.h (DECL_SEEN_IN_BIND_EXPR_P): New macro.
* gimplify.c (gimple_add_tmp_var, gimplify_bind_expr): Use it.
(gimplify_target_expr, gimplify_expr): Likewise.
(copy_if_shared_r): No longer need special case for BIND_EXPR.
(unshare_body, unvisit_body): Only look at nested if BODY_P is
whole function.
(gimplify_compound_lval): See if we can strip any useless conversion.
(gimplify_modify_expr, gimplify_modify_expr_to_memcpy): Take size
from RHS, not LHS.
(gimplify_modify_expr_to_memset): Likewise.
(gimplify_expr, case CONSTRUCTOR): Handle use as statement.
* tree-inline.c (setup_one_parameter): Use DECL_SEEN_IN_BIND_EXPR_P.
(declare_inline_vars): Likewise.
(walk_type_fields): New function.
(walk_tree): Use it.
* tree-nested.c (create_tmp_var_for): Show seen in BIND_EXPR.
Richard Kenner [Mon, 5 Jul 2004 16:14:51 +0000 (16:14 +0000)]
tree-sra.c (struct sra_walk_fns): Init function now returns bool.
* tree-sra.c (struct sra_walk_fns): Init function now returns bool.
(sra_walk_modify_expr): Allow init function to fail.
(scan_init): Now returns bool.
(generate_element_init): If can't understand INIT, return false.
(scalarize_init): Return false if generate_element_init does.
Josef Zlomek [Mon, 5 Jul 2004 04:50:22 +0000 (06:50 +0200)]
var-tracking.c: Fix some comments.
* var-tracking.c: Fix some comments.
(frame_stack_adjust): New.
(vt_stack_adjustments): Init stack_adjust of entry block to
minus stack adjustment of function prologue.
(adjust_stack_reference): Do not adjust if adjustment == 0.
(compute_bb_dataflow): Use plus_constant instead of gen_rtx_PLUS.
(emit_notes_in_bb): Likewise.
(vt_add_function_parameters): Do not adjust locations of
function arguments.
(vt_initialize): Compute the stack adjustment of function
prologue and offset the initial "location" of frame_base_decl
from the stack pointer after prologue.
Bud Davis [Mon, 5 Jul 2004 01:19:08 +0000 (01:19 +0000)]
re PR libfortran/15472 (implicit open for unformatted file causes run-time error)
2004-07-04 Bud Davis <bdavis9659@comcast.net>
Paul Brook <paul@codesourcery.com>
PR fortran/15472
* io/transfer.c(us_write): set recl for seq unform writes to max size.
* io/transfer.c(data_transfer_init): handle un-opened seq unform unit.
* io/unix.c(fd_alloc_w_at): handle requests at start, fd_flush at
right time.
* io/unix.c(is_seekable): set based upon the file/device, not the
method being used to access it (fd or mmap).
* io/unix.c(fd_flush): don't set file_size if !seekable.
* io/unix.c(fd_truncate: ditto.
* gfortran.fortran-torture/execute/seq_io.f90: New test.
Co-Authored-By: Paul Brook <paul@codesourcery.com>
From-SVN: r84104
Daniel Berlin [Sun, 4 Jul 2004 22:51:36 +0000 (22:51 +0000)]
tree-ssa-pre.c (bb_value_sets): phi_gen, tmp_gen, new_sets now are bitmap_set_t's.
2004-07-04 Daniel Berlin <dberlin@dberlin.org>
* tree-ssa-pre.c (bb_value_sets): phi_gen, tmp_gen, new_sets
now are bitmap_set_t's.
(bitmap_insert_into_set): No point in inserting the value if
it's invariant.
(bitmap_set_contains): New function.
(bitmap_set_replace_value): Add comment on why we do it
this way.
(set_contains): Removed.
(bitmap_set_subtract_from_value_set): New name of
set_subtract now that it's arguments are two different
types of sets.
Update callers.
(bitmap_find_leader): Change algorithm used.
(find_or_generate_expression): Update use of functions for new
bitmap sets.
(create_expression_by_pieces): Ditto.
(insert_aux): Ditto.
(insert): Ditto.
(add_to_sets): Ditto.
(init_pre): Ditto.
(execute_pre): Ditto.
(compute_avail): Ditto.
Also ignore virtual phis.
Eric Botcazou [Sun, 4 Jul 2004 21:42:28 +0000 (23:42 +0200)]
sparc.c (SIBCALL_SLOT_EMPTY_P): Rename into LEAF_SIBCALL_SLOT_RESERVED_P after negation.
* config/sparc/sparc.c (SIBCALL_SLOT_EMPTY_P): Rename
into LEAF_SIBCALL_SLOT_RESERVED_P after negation.
(eligible_for_sibcall_delay): Adjust use of SIBCALL_SLOT_EMPTY_P.
(output_restore): Change parameter from 'insn' to 'pat'.
(output_return): Adjust call to output_restore.
(output_sibcall): Adjust use of SIBCALL_SLOT_EMPTY_P.
Adjust call to output_restore.
* config/iq2000/iq2000.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
Define.
* config/iq2000/iq2000.md: Translate old pipeline description to an
equivalent new one.
Make-lang.in (doc/gnat_ugn_unw.texi): Eliminate explicit dependency on xgnatugn, instead build it via a submake.
* Make-lang.in (doc/gnat_ugn_unw.texi): Eliminate explicit
dependency on xgnatugn, instead build it via a submake.
(ADA_INFOFILES): Add doc/gnat_ugn_unw.texi.
Roger Sayle [Sun, 4 Jul 2004 18:41:05 +0000 (18:41 +0000)]
tree-ssa-ccp.c (set_rhs): Change function to return a bool.
* tree-ssa-ccp.c (set_rhs): Change function to return a bool.
Ensure the replacement rhs is valid gimple before performing
the substitution. Return false if these sanity checks fail.
(fold_stmt): Only set changed to true, if set_rhs returns true.
(execute_fold_all_builtins): Only call modify_stmt if set_rhs
succeeds.
verify.c: Insert a short blurb at the start referring to the JVMS.
* verify.c: Insert a short blurb at the start referring to the JVMS.
Minor formatting fixes all over the place.
(merge_type_state): Remove redundant nested if statement.
(verify_jvm_instructions): Ensure current_subr is initialised to
NULL_TREE.
Cii: Enter Log. Lines beginning with `CVS:' are removed automaticalli
Paolo Carlini [Sun, 4 Jul 2004 11:05:14 +0000 (11:05 +0000)]
1.cc: Add instantiations for systems with no COMDAT or weak support.
2004-07-04 Paolo Carlini <pcarlini@suse.de>
* testsuite/25_algorithms/copy/1.cc: Add instantiations for
systems with no COMDAT or weak support.
* testsuite/25_algorithms/copy/2.cc: Likewise.
* testsuite/25_algorithms/copy/3.cc: Likewise.
* testsuite/25_algorithms/copy/4.cc: Likewise.
ia64.c (spill_xfmode_operand): Use assign_stack_temp instead of gen_mem_addressof.
* config/ia64/ia64.c (spill_xfmode_operand): Use assign_stack_temp
instead of gen_mem_addressof.
* config/ia64/ia64.md (movxf): Use assign_stack_temp to handle
TImode output register.
re PR tree-optimization/16341 (BOOT_CFLAGS='-O2 -fno-inline' causes a comparision failure)
PR tree-optimization/16341
* tree-sra.c (sra_walk_function): Increment to next stmt before
processing the current stmt.
(sra_insert_after): Always use BSI_SAME_STMT.