Age | Commit message (Collapse) | Author | Files | Lines |
|
basic blocks and the...
* gcse.c (gcse_main): Avoid global optimizations if we have a
large number of basic blocks and the ratio of edges to blocks
is high.
(delete_null_pointer_checks): Likewise.
From-SVN: r29882
|
|
* c-common.c (check_format_info): Warn if format string isn't a
string literal.
From-SVN: r29881
|
|
* configure.in (arm*-*-*): Don't let autoconf remove brackets
* configure: regenerate
From-SVN: r29880
|
|
* cp-tree.h (make_rtl_for_local_static): New function.
* decl.c (make_rtl_for_nonlocal_decl): Move code to create RTL for
local statics ...
(make_rtl_for_local_static): Here.
* semantics.c (expand_stmt): Use make_rtl_for_local_static.
From-SVN: r29879
|
|
* alpha.md (extendsidi2): Turn into a splitter. Allow f/f.
If TARGET_FIX, allow r/f. Remove cvtlq unspec pattern.
(peepholes): Re-enable.
From-SVN: r29878
|
|
* Makefile.in (flow.o): Depend on TREE_H.
* basic-block.h (REG_SET_EQUAL_P): New.
(XOR_REG_SET): New.
(n_edges): Declare.
(free_regset_vector): Remove declaration.
(flow_delete_insn_chain): Declare.
(enum update_life_extent): New.
(update_life_info, count_or_remove_death_notes): Declare.
* combine.c (distribute_notes) [REG_DEAD]: Stop search at bb->head.
Verify register live at bb->global_live_at_start before adding USE.
* flow.c (HAVE_epilogue, HAVE_prologue): Provide default.
(CLEAN_ALLOCA): New.
(n_edges): New.
(PROP_*): New flags.
(find_basic_blocks_1): Use alloc_EXPR_LIST.
(clear_edges): Zero n_edges.
(make_edge): Increment n_edges.
(split_edge): Don't allocate bb->local_set. Increment n_edges.
(flow_delete_insn_chain): Export.
(delete_block): Decrement n_edges.
(merge_blocks_nomove): Likewise.
(life_analysis): Give life_analysis_1 PROP flags.
(verify_wide_reg_1, verify_wide_reg): New.
(verify_local_live_at_start): New.
(update_life_info): Rewrite to call into propogate_block.
(mark_reg): New.
(mark_regs_live_at_end): After reload, if epilogue as rtl,
always mark stack pointer. Conditionally mark PIC register.
After reload, mark call-saved registers, return regsiters.
(life_analysis_1): Accept PROP flags not remove_dead_code.
Call mark_regs_live_at_end before zeroing regs_ever_live.
Use calculate_global_regs_live. Copy global_live_at_end before
calling final propagate_block. Zero reg_next_use on exit.
(calculate_global_regs_live): New.
(allocate_bb_life_data): Don't allocate bb->local_set.
(init_regset_vector, free_regset_vector): Remove.
(propagate_block): Accept FLAGS not FINAL or REMOVE_DEAD_CODE.
Test flags before every operation. Warn if prologue/epilogue insn
would have been deleted.
(mark_set_regs, mark_set_1): Accept and use FLAGS.
Use alloc_EXPR_LIST.
(mark_used_regs): Accept and use FLAGS, not FINAL.
Remove special handling for RETURN.
(try_pre_increment): Use alloc_EXPR_LIST.
(dump_flow_info): Dump n_edges.
(unlink_insn_chain, split_hard_reg_notes): Remove.
(maybe_add_dead_note, maybe_add_dead_note_use): Remove.
(find_insn_with_note, new_insn_dead_notes): Remove.
(update_n_sets, sets_reg_or_subreg_1, sets_reg_or_subreg): Remove.
(maybe_remove_dead_notes, prepend_reg_notes): Remove.
(replace_insns): Remove.
(count_or_remove_death_notes): New.
(verify_flow_info): Abort on error after all checks.
(remove_edge): Decrement n_edges.
(remove_fake_edges): Tweek format.
* haifa-sched.c (schedule_insns): Use split_all_insns.
* output.h (update_life_info): Remove declaration.
* recog.c (split_all_insns): From the corpse of split_block_insns,
do the whole function block by block. Use update_life_info.
(recog_last_allowed_insn): New.
(recog_next_insn): Mind it.
(peephole2_optimize): Set it. Walk backwards through blocks.
Use update_life_info.
* rtl.h (update_flow_info, replace_insns): Remove declarations.
(split_all_insns): Declare.
* toplev.c (rest_of_compilation): Thread prologue before flow2.
Use split_all_insns.
* i386.md (or -1 peep2s): Disable.
From-SVN: r29877
|
|
From-SVN: r29876
|
|
From-SVN: r29875
|
|
* config/mips/mips.md (movstrsi+[123]) : Combine these into
a single pattern. Scrap the 'd' versions as unnecessary.
* config/mips/mips.md (tablejump_internal3,tablejump_mips161,
tablejump_mips162,tablejump_internal4): The operands to a
label_ref must be VOIDmode.
From-SVN: r29874
|
|
From-SVN: r29873
|
|
function if ggc_p.
* lists.c (init_EXPR_INSN_LIST_cache): Don't need to zap the
cache every function if ggc_p.
From-SVN: r29872
|
|
From-SVN: r29871
|
|
From-SVN: r29870
|
|
* Makefile.in (insn-recog.o): Depend on hard-reg-set.h and resource.h.
* alpha.h (ASM_OUTPUT_MI_THUNK): Pass the correct number of
arguments to `current_file_function_operand'.
* genrecog.c: Include hard-reg-set.h and resource.h in the
generated output file.
* real.c: Include tm_p.h.
cp:
* method.c: Include tm_p.h.
From-SVN: r29869
|
|
From-SVN: r29868
|
|
From-SVN: r29867
|
|
* rs6000.md (fix_truncdfsi2_internal+1): Emit a clobber
before the fctiwz insn.
From-SVN: r29866
|
|
* cp-tree.h (cp_make_lake_type): Renamed from make_lang_type.
* lex.c (cp_make_lake_type): Likewise.
* tree.c (init_tree): Init make_lang_type_fn.
From-SVN: r29865
|
|
* tree.c (make_lang_type_fn): New funtion pointer.
(make_lang_type): Call it.
* tree.h (make_lang_type): Declare.
(make_lang_type_fn): Likewise.
* rs6000.c (rs6000_build_va_list): Use make_lang_type.
Co-Authored-By: Mark Mitchell <mark@codesourcery.com>
From-SVN: r29864
|
|
* pt.c (tsubst_expr): Set DECL_TEMPLATE_INSTANTIATED for a catch
paramter.
* semantics.c (expand_stmt): Don't pretend to have asmspecs for
local statics if we don't really have them.
* ir.texi: Improve documentation for STMT_EXPR. Describe
CLEANUP_POINT_EXPR.
From-SVN: r29863
|
|
From-SVN: r29862
|
|
its proper place in gcc/ChangeLog.
From-SVN: r29861
|
|
* expr.c (expand_expr, TARGET_EXPR): Set TREE_USED sooner.
* c-decl.c (finish_struct): Use simpler method of
removing elements of a singly-linked list.
From-SVN: r29860
|
|
* class.c (build_vtable_entry_ref): Use finish_asm_stmt.
* class.c (finish_struct_1): Use simpler method of
removing elements of a singly-linked list which doesn't
lose for classes without data members.
From-SVN: r29859
|
|
From-SVN: r29858
|
|
* genrecog.c (add_to_sequence): Disable mode check for
wildcard matches.
From-SVN: r29857
|
|
From-SVN: r29856
|
|
* friend.c (make_friend_class): Robustify.
* semantics.c (finish_object_call_expr): Reject calls to template
types.
From-SVN: r29855
|
|
During class file generation, generate_classfile occasionally writes
out a bunch of data and then skips backwards to fill in blanks. When
configured with --enable-checking, this patching up will often trip
the checking code. This change introduces UNSAFE_PUTx macros which
never use CHECK_PUT. These should only be used in cases we know
CHECK_PUT will fail.
From-SVN: r29854
|
|
* configure.in: Detect mmap. Add --with-gc=foo to select
garbage collector; default to page if mmap available.
* Makefile.in (GGC): Substitute.
From-SVN: r29853
|
|
From-SVN: r29852
|
|
From-SVN: r29851
|
|
instructions are copied into BASE_REGS.
* config/rs6000/rs6000.c (secondary_reload_class): For
TARGET_ELF make sure that HIGH instructions are copied
into BASE_REGS.
From-SVN: r29850
|
|
From-SVN: r29849
|
|
Canadian cross.
* configure.in (GCJ): Define as "target-gcj", not "target/gcj"
when building Canadian cross.
(NATIVE): Don't define when cross-compiling.
From-SVN: r29848
|
|
From-SVN: r29847
|
|
* sparc/sp86x-elf.h (SUBTARGET_SWITCHES): Add missing doc
string for little-endian-data.
From-SVN: r29846
|
|
From-SVN: r29845
|
|
* genrecog.c (add_to_sequence): Verify operand to label_ref is
VOIDmode.
From-SVN: r29844
|
|
* cp-tree.h (CLASSTYPE_VFIELD): Remove.
* call.c (build_vfield_ref): Use TYPE_VFIELD, not
CLASSTYPE_VFIELD.
* class.c (get_vfield_offset): Likewise.
(finish_base_struct): Likewise.
(modify_one_vtable): Likewise.
(fixup_vtable_deltas): Likewise.
(finish_struct_1): Likewise.
* init.c (expand_virtual_init): Likewise.
* search.c (lookup_field_1): Likewise.
(expand_upcast_fixups): Likewise.
* typeck.c (build_component_ref): Likewise.
(build_binary_op_nodefault): Likewise.
* dump.c (dqueue_and_dump): Dump TYPE_VFIELD.
* ir.texi: Document TYPE_VFIELD.
From-SVN: r29843
|
|
!in_system_header (linux socketbits.h can...
* decl.c (grokdeclarator): Only warn about non-zero arrays if
!in_system_header (linux socketbits.h can give this for
__cmsg_data, which is using a GNU extension).
From-SVN: r29842
|
|
* genconfig.c (main): Disable HAVE_conditional_arithmetic.
* jump.c (jump_optimize_1): Document why.
From-SVN: r29841
|
|
for `int_handler' and `quit_handler'.
* collect2.c (scan_prog_file, scan_libraries): Prototype function
pointers and casts for `int_handler' and `quit_handler'.
* flow.c (verify_flow_info, split_hard_reg_notes,
find_insn_with_note, sets_reg_or_subreg_1, prepend_reg_notes,
remove_edge, remove_fake_successors): Add static prototypes.
(verify_flow_info): Wrap with macro ENABLE_CHECKING.
(mark_set_1): Initialize variable `regno'.
(unlink_insn_chain): Likewise for variable `curr'.
(remove_fake_edges): Remove unused variables `e', `tmp' and `last'.
* loop.c (strength_reduce): Initialize variable
`unrolled_insn_copies'.
(cmp_combine_givs_stats, cmp_recombine_givs_stats): Add static
prototypes. Change these functions to take const PTR parameters
to avoid prototype conflict when used as the comparson argument
for qsort.
(check_dbra_loop): Initialize variable `comparison_val'.
* reload.c (debug_reload_to_stream, debug_reload): Add prototypes.
(get_secondary_mem): Mark parameter `x' with ATTRIBUTE_UNUSED.
(find_valid_class): Initialize variable `best_class'.
(find_reloads): Call memcpy, not bcopy.
* reload1.c (gen_mode_int, dump_needs): Add prototypes.
(hard_reg_use_compare): Don't needlessly cast away const.
(reload_reg_class_lower): Likewise.
(choose_reload_regs): Initialize variable `regno'.
From-SVN: r29840
|
|
From-SVN: r29839
|
|
declaration so it ends up in namespace scope.
* decl2.c (start_static_storage_duration_function): Push the
function declaration so it ends up in namespace scope.
From-SVN: r29838
|
|
* dump.c (DUMP_CHILDREN): Remove.
(DUMP_BINFO): Adjust.
(struct dump_node_info): Remove dump_children_p.
(queue_and_dump_type): Remove dump_children_p parameter.
(queue): Don't set dump_children_p.
(dump_child): Pass DUMP_NONE, instead of DUMP_CHILDREN, to
queue_and_dump_index.
(dequeue_and_dump): Unconditionally print children. Adjust calls
to functions mentioned above.
(dump_node): Pass DUMP_NONE, instead of DUMP_CHILDREN to queue.
From-SVN: r29837
|
|
From-SVN: r29836
|
|
* ir.texi: Document BIND_EXPR, LOOP_EXPR, and EXIT_EXPR.
* dump.c (dequeue_and_dump): Dump them.
From-SVN: r29835
|
|
From-SVN: r29834
|
|
From-SVN: r29833
|