regrename.c (kill_value_one_regno): Renamed from kill_value_regno.
* regrename.c (kill_value_one_regno): Renamed from kill_value_regno.
(kill_value_regno): New function, derived from kill_value.
(kill_value): Update.
(copyprop_hardreg_forward_1): Update call to kill_value_regno.
Daniel Berlin [Fri, 20 Aug 2004 16:48:00 +0000 (16:48 +0000)]
re PR tree-optimization/17111 (tree check ICE in value_insert_into_set_bitmap on inlining a memcmp-like function)
2004-08-20 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/17111
* tree-ssa-pre.c (create_value_expr_from): Don't change the types
of non-value_handles.
(bitmap_set_contains): All constants are in every set.
Danny Smith [Fri, 20 Aug 2004 11:14:11 +0000 (11:14 +0000)]
re PR other/5620 (GCC -save-temps foo.c fails to build foo.o)
PR 5620
* gcc.c (struct stat input_stat): Don't define if
HOST_LACKS_INODE_NUMBERS
(do_spec_1): If HOST_LACKS_INODE_NUMBERS, use lrealpath rather
than stat to determine if temp file is same as input file.
* doc/hostconfig.texi: Document HOST_LACKS_INODE_NUMBERS.
* config/i386/xm-mingw32.h: Define HOST_LACKS_INODE_NUMBERS
Tobias Schlüter [Thu, 19 Aug 2004 22:35:47 +0000 (00:35 +0200)]
re PR fortran/17074 (Unclassifiable statement in IF-clause / Simple IF followed by WHERE)
fortran/
PR fortran/17074
* match.c (match_simple_forall, match_simple_where): Forward-declare.
(gfc_match_if): Order statement list alphabetically, add WHERE and
ew functions.
(gfc_match_forall): Use match_forall_header.
testsuite/
PR fortran/17074
* gfortran.dg/simpleif_1.f90: New test.
Andreas Krebbel [Thu, 19 Aug 2004 22:10:52 +0000 (22:10 +0000)]
2004-08-18 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/s390.md (s390_warn_framesize_string)
(s390_warn_dynamic_string, s390_stack_size_string)
(s390_stack_guard_string): New global string variables.
(s390_warn_framesize, s390_warn_dynamicstack_p, s390_stack_size)
(s390_stack_guard): New global variables.
(override_options): Added checks for the new options.
(s390_emit_prologue): Emit stack check and trap code and perform
compile time stack size checking.
* config/s390/s390.h (TARGET_OPTIONS): Added new options
"warn-framesize", "warn-dynamicstack", "stack-size" and
"stack-guard".
* doc/invoke.texi: Added documentation for the new options.
Ulrich Weigand [Thu, 19 Aug 2004 21:41:32 +0000 (21:41 +0000)]
unwind-dw2-fde.c (get_cie_encoding): Cast argument to strlen to eliminate warning.
* unwind-dw2-fde.c (get_cie_encoding): Cast argument to strlen
to eliminate warning.
(linear_search_fdes): Declare p as unsigned.
(binary_search_mixed_encoding_fdes): Likewise.
* unwind-dw2.c (get_cie_encoding): Cast argument to strlen
to eliminate warning.
* config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Add missing
type cast.
* config/s390/s390-protos.h (preferred_la_operand_p): Adapt prototype.
* config/s390/s390.c (preferred_la_operand_p): Accept two operands
instead of one. Check for strictly legitimate address.
* config/s390/s390.md ("*la_31"/"*la_64" peepholes): Adapt call
to preferred_la_operand_p, do not call gen_rtx_PLUS in predicate.
Paolo Carlini [Thu, 19 Aug 2004 20:22:45 +0000 (20:22 +0000)]
insert.cc: For std::map instantiate the allocator for a correct pair type.
2004-08-19 Paolo Carlini <pcarlini@suse.de>
* testsuite/performance/20_util/allocator/insert.cc: For std::map
instantiate the allocator for a correct pair type.
* testsuite/performance/20_util/allocator/insert_insert.cc: Likewise.
* testsuite/performance/20_util/allocator/map_thread.cc: Likewise.
* testsuite/performance/20_util/allocator/producer_consumer.cc:
Likewise.
* testsuite/performance/20_util/allocator/list_sort_search.cc: Very
minor formatting fixes.
* testsuite/performance/20_util/allocator/map_mt_find.cc: Likewise.
Paul Brook [Thu, 19 Aug 2004 16:45:21 +0000 (16:45 +0000)]
re PR fortran/14976 (.space is wrong)
PR fortran/14976
PR fortran/16228
* data.c (assign_substring_data_value): Remove.
(create_character_intializer): New function.
(gfc_assign_data_value): Track the typespec for the current
subobject. Use create_character_intializer.
testsuite/
* gfortran.dg/data_char_1.f90: New test.
Zack Weinberg [Wed, 18 Aug 2004 22:31:03 +0000 (22:31 +0000)]
insn-notes.def, [...]: New files.
* insn-notes.def, reg-notes.def: New files.
* rtl.h: Use them to define enum insn_note and enum reg_note.
* rtl.c: Use them to define note_insn_name and reg_note_name.
* modulo-sched.c, sched-rgn.c, final.c: NOTE_DISABLE_SCHED_OF_BLOCK
renamed to NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
Andrew Pinski [Wed, 18 Aug 2004 18:51:37 +0000 (18:51 +0000)]
darwin.md: Delete the altivec patterns which are handled differently now.
2004-08-18 Andrew Pinski <apinski@apple.com>
* config/rs6000/darwin.md: Delete the altivec patterns which are
handled differently now.
(load_macho_picbase_di): Make sure that is only happens for TARGET_64BIT
(macho_correct_pic_di): Likewise.
(call_indirect_nonlocal_darwin64): Likewise.
Delete the save world/saveFP/saveVec patterns.
Revert the reversion of: 2004-08-16 Stan Shebs <shebs@apple.com>
* config/darwin.c (macho_indirect_data_reference): Add DImode case.
* config/rs6000/rs6000.md: Include darwin.md.
(builtin_setjmp_receiver): Add DImode case.
* config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
Darwin bits.
Matt Austern [Wed, 18 Aug 2004 18:41:01 +0000 (18:41 +0000)]
Dead code stripping
Dead code stripping
* darwin.h (EH_FRAME_SECTION_ATTR): Mark so it doesn't get stripped.
* darwin.c (darwin_file_end): Mark file as potentially strippable.
Diego Novillo [Wed, 18 Aug 2004 18:21:23 +0000 (18:21 +0000)]
tree-dfa.c (add_referenced_var): Only global variables are call-clobbered.
* tree-dfa.c (add_referenced_var): Only global variables are
call-clobbered.
* tree-flow.h (struct ptr_info_def): Add field pt_global_mem.
* tree-ssa-alias.c (compute_points_to_and_addr_escape): Mark
all pointers dereferenced if the statement dereferences them.
(create_name_tags): Do not create memory tags for pointers
that have PT_ANYTHING set.
Also check if PT_VARS is not empty before creating a name tag.
(compute_flow_sensitive_aliasing): Don't mark call-clobbered
variables that share the same alias set with a pointer that
may point anywhere.
(add_may_alias): Add FIXME comment to remove clobbering
aliased variables and tags.
(replace_may_alias): Likewise.
(set_pt_anything): Do not clear PT_VARS nor IS_DEREFERENCED.
(merge_pointed_to_info): If the original variable has not
points-to information, call set_pt_anything.
(add_pointed_to_var): Do not prevent adding a pointed-to
variable if the pointers is PT_ANYTHING.
If the variable is a global, set PT_GLOBAL_MEM.
(collect_points_to_info_r): Don't assume that PLUS_EXPRs of
pointer type only come in PTR+OFFSET flavours.
Always call merge_pointed_to_info on PHI arguments that are
SSA_NAMEs.
(get_nmt_for): Mark call-clobbered tags whose pointer points
to global memory.
* tree-ssa-operands.c (opf_kill_def, opf_no_vops): Switch
values.
(get_indirect_ref_operands): Always clear OPF_KILL_DEF from
FLAGS.
(add_stmt_operand): Abort if the caller tried to add a killing
definition for a memory tag.
* tree-ssa.c (verify_flow_sensitive_alias_info): Remove
unnecessary checks.
Bryce McKinlay [Wed, 18 Aug 2004 18:05:39 +0000 (18:05 +0000)]
re PR libgcj/17081 (Deserializing java.net.URI fails)
2004-08-18 Bryce McKinlay <mckinlay@redhat.com>
PR libgcj/17081
* java/net/URI.java (string): New field. Make all other fields
transient.
(readObject): Implemented.
(writeObject): Implemented.
(URI): Set 'string'.
Bryce McKinlay [Wed, 18 Aug 2004 17:57:03 +0000 (17:57 +0000)]
class.c (make_local_function_alias): New function.
2004-08-18 Bryce McKinlay <mckinlay@redhat.com>
* class.c (make_local_function_alias): New function. Create local
alias for public method DECL.
(make_method_value): Use make_local_function_alias.
* parse.y (craft_constructor): Don't special-case anonymous classes.
Always set ctor_name to init_identifier_node.
(lookup_method_invoke): Call layout_class_method when creating
anonymous class constructor.
Zack Weinberg [Wed, 18 Aug 2004 16:39:40 +0000 (16:39 +0000)]
dojump.c (do_jump <unordered_bcc>): Do not recursively call self with a TRUTH_ORIF_EXPR...
* dojump.c (do_jump <unordered_bcc>): Do not recursively call
self with a TRUTH_ORIF_EXPR; generate the appropriate jump
sequence inline. Move drop_through_label code into this
block, being the only place it is used. Adjust comments.
Caroline Tice [Wed, 18 Aug 2004 16:22:08 +0000 (09:22 -0700)]
Hot/cold partitioning update patch.
Hot/cold partitioning update patch. The problems that this patch
attemptd to address/fix are:
- Fix places where adding in_unlikely_executed_text to the enum data
type "in_section" threw off switch case statements.
- Make it work correctly (by turning it off) for functions where user
specifies "__attribute__ section"
- Make it work correctly (by turning it off) for linkonce sections
- Make it work correctly with -ffunction-sections flag
- Make it output correct cold section labels
- Undo some changes to original assembly code generation
- Turn off hot/cold partitioning in the presence of DWARF debugging (for
the moment)
- Turn off hot/cold partitioning for architectures that do not support
named sections
- Use variables rather than constants for cold section labels and names (to
work correctly with -ffunction-sections, among other things)
2004-08-18 Caroline Tice <ctice@apple.com>
* Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS) Add
"-freorder-blocks-and-partition" to the flags used in second
stage of profiledbootstrap.
* bb-reorder.c (push_to_next_round_p): Add new variable,
next_round_is_last; set and use variable to make sure, when
partitioning, that the last trace construction round consists
of all (and only) cold basic blocks.
(rotate_loop): Don't copy blocks that end in a section
crossing jump.
(copy_bb): Correctly initialize "partition" of duplicated bb.
(add_unlikely_executed_notes): Add a comment.
(find_rarely_executed_basic_blocks_and_crossing_edges): Modify
to make sure, if function contains hot blocks, that the
successors of ENTRY_BLOCK_PTR are hot; also, only look for
crossing edges if the architecture supports named sections.
(mark_bb_for_unlikely_executed_section): Modify to always
insert the NOTE_INSN_UNLIKELY_EXECUTED_CODE immediately after
the basic block note insn.
(fix_crossing_unconditional_branches): Remove extra space.
(fix_edges_for_rarely_executed_code): Modify to only do
partitioning work if the architecture supports named sections.
(reorder_basic_blocks): Modify to only add
NOTE_INSN_UNLIKELY_EXECUTED_CODE notes if the architecture
supports named sections.
* c-common.c (handle_section_attribute): Initialize new global
variable, user_defined_section_attribute, to true if user has
specified one.
* cfgcleanup.c (try_forward_edges): Modify to not attempt to
forward edges that cross section boundaries.
* cfglayout.c (fixup_reorder_chain): Modify to only fix up
partitioning information if the architecture supports named
sections.
* cfgrtl.c (target.h): Add statement to include this.
(rtl_split_block): Make sure newly created bb gets correct
partition.
(try_redirect_by_replacing_jump): Make sure redirection isn't
attempting to cross section boundaries.
(force_nonfallthru_and_redirect): Only do partition fix up if
architecture supports named sections.
(rtl_split_edge): Make sure newly created bb ends up in
correct partition.
(commit_one_edge_insertion): Remove code that incorrectly
updated basic block partition; Make sure partition fix up only
happens if architecture supports named sections and it's not
already done.
(rtl_verify_flow_info_1): Fix if-condition on test/error
condition that fallthru edges are not allowed to cross section
boundaries.
* defaults.h (NORMAL_TEXT_SECTION_NAME): Remove this.
* final.c (final_scan_insn): Remove redundant test from if-statement;
change calls to text_section into calls to function_section; add code
to only to partitioning fix up if architecture supports named
sections.
* ifcvt.c (find_if_case_1): Make sure newly created bb has correct
partition.
(if_convert): Add targetm.have_named_sections to test.
* output.h (unlikely_section_label): Extern declaration for new global
variable.
(unlikely_text_section_name): Likewise.
* opts.c (decode_options): If both partitioning and DWARF debugging
are turned on, issue a warning that this doesn't work, and change
partitiong to basic block reordering (without hot/cold partitions).
* passes.c (rest_of_handle_final): Re-set new global variable,
user_defined_section_attribute, to false.
(rest_of_compilation): Change options for calling partitioning
function: Don't call if the user defined the section attribute, and
don't call if DECL_ONE_ONLY is true for the current function.
* predict.c (choose_function_section): Return immediately if we
are doing hot/cold partitioning (i.e. let the basic block partitioning
determine where the function belongs).
* reg-stack.c (emit_swap_insn): Add condition to step over
NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
* toplev.c (user_defined_section_attribute): New global variable.
* toplev.h (user_defined_section_attribute): Extern declaration for new
global variable.
* varasm.c (unlikely_section_label): New global variable.
(unlikely_text_section_name): New global variable.
(unlikely_text_section): Add code to initialize unlikely_text_section_name
if necessary; modify to use unlikely_text_section_name and
unlikely_section_label; also to use named_section properly.
(in_unlikely_text_section): Modify to work correctly with named_section
and to use unlikely_text_section_name.
(named_section): Add code to work properly with cold section.
(function_section): Clean up if-statement.
* config/darwin.c (darwin_asm_named_section): Return to original code,
removing use of SECTION_FORMAT_STRING.
* config/arm/pe.h (switch_to_section): Add case for
in_unlikely_executed_text to switch statement.
* config/i386/cygming.h (switch_to_section): Likewise.
* config/i386/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
(SECTION_FORMAT_STRING): Likewise.
* config/mcore/mcore.h (switch_to_section): Likewise.
* config/rs6000/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.