Age | Commit message (Collapse) | Author | Files | Lines |
|
From-SVN: r45209
|
|
From-SVN: r45205
|
|
* reload.c (find_reloads_toplev): Back out this change:
Wed Jul 26 19:44:05 2000 Hans-Peter Nilsson <hp@axis.com>
* reload.c (find_reloads_toplev): Reload a paradoxical subreg of a
mem if the address is a mode_dependent_address_p.
From-SVN: r45203
|
|
2001-08-27 Vladimir Makarov <vmakarov@touchme.toronto.redhat.com>
* rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
RTL constructions.
* genattr.c (main): New variable num_insn_reservations. Increase
it if there is DEFINE_INSN_RESERVATION. Output automaton based
pipeline hazard recognizer interface.
* genattrtab.h: New file.
* genattrtab.c: Include genattrtab.h.
(attr_printf, check_attr_test, make_internal_attr,
make_numeric_value): Move protypes into genattrtab.h. Define them
as external.
(num_dfa_decls): New global variable.
(main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
DEFINE_INSN_RESERVATION. Call expand_automata and write_automata.
* genautomata.c: New file.
* rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
* sched-int.h: (curr_state): Add the external definition for
automaton pipeline interface.
(haifa_insn_data): Add comments for members blockage and units.
* target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
TARGET_SCHED_DFA_PRE_CYCLE_INSN,
TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
TARGET_SCHED_DFA_POST_CYCLE_INSN,
TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
macros.
(TARGET_SCHED): Use the new macros.
* target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
dfa_bubble): New members in gcc_target.sched.
* haifa-sched.c (insert_schedule_bubbles_p): New variable.
(MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
(insn_queue): Redefine it as pointer to array.
(NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
INSN_QUEUE_SIZE.
(max_insn_queue_index_macro_value): New variable.
(curr_state, dfa_state_size, ready_try): New varaibles for
automaton interface.
(ready_element, ready_remove, max_issue): New function prototypes
for automaton interface.
(choose_ready): New function prototype.
(insn_unit, blockage_range): Add comments.
(unit_last_insn, unit_tick, unit_n_insns): Define them for case
FUNCTION_UNITS_SIZE == 0.
(insn_issue_delay, actual_hazard_this_instance, schedule_unit,
actual_hazard, potential_hazard): Add comments.
(insn_cost): Use cost -1 as undefined value. Remove
LINK_COST_ZERO and LINK_COST_FREE. Add new code for automaton
pipeline interface.
(ready_element, ready_remove): New functions for automaton
interface.
(schedule_insn): Add new code for automaton pipeline interface.
(queue_to_ready): Add new code for automaton pipeline interface.
Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
(debug_ready_list): Print newline when the queue is empty.
(max_issue): New function for automaton pipeline interface.
(choose_ready): New function.
(schedule_block): Add new code for automaton pipeline interface.
Print ready list before scheduling each insn.
(sched_init): Add new code for automaton pipeline interface.
Initiate insn cost by -1.
(sched_finish): Free the current automaton state and finalize
automaton pipeline interface.
* sched-rgn.c: Include target.h.
(init_ready_list, new_ready, debug_dependencies): Add new code for
automaton pipeline interface.
* sched-vis.c: Include target.h.
(get_visual_tbl_length): Add code for automaton interface.
(target_units, print_block_visualization): Add comments.
* Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
(sched-rgn.o, sched-vis.o): Add new dependency file target.h.
(getruntime.o, genautomata.o): New entries.
(genattrtab.o): Add new dependency file genattrtab.h.
(genattrtab): Add new dependencies. Link it with `libm.a'.
(getruntime.o, hashtab.o): New entries for canadian cross.
* doc/md.texi: Description of automaton based model.
* doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
Add comments.
(TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
TARGET_SCHED_DFA_PRE_CYCLE_INSN,
TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
TARGET_SCHED_DFA_POST_CYCLE_INSN,
TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
hook descriptions.
(TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
MAX_DFA_ISSUE_RATE): New macro descriptions.
* doc/contrib.texi: Add dfa based scheduler contribution.
* doc/gcc.texi: Add more information about genattrtab.
From-SVN: r45202
|
|
basic block.
* flow.c (flow_loop_dump): Do not display insn UIDs if this is not
an RTL basic block.
From-SVN: r45201
|
|
* function.c (expand_function_end): Don't init arg_pointer_save_area.
(get_arg_pointer_save_area): New. Create an init it here.
(fix_lexical_addr): Use it.
* function.h: Declare it.
* builtins.c (expand_builtin_setjmp_receiver): Use it.
* stmt.c (expand_nl_goto_receiver): Use it.
From-SVN: r45200
|
|
* final.c (final_scan_insn): Don't enter APP_ON mode for
empty asm strings.
From-SVN: r45199
|
|
assemble_integer for DW_EH_PE_aligned.
* dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Use proper
alignment for assemble_integer for DW_EH_PE_aligned.
* except.c (output_function_exception_table): Likewise.
From-SVN: r45198
|
|
assemble_integer for DW_EH_PE_aligned.
* dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Use proper
alignment for assemble_integer for DW_EH_PE_aligned.
From-SVN: r45197
|
|
From-SVN: r45196
|
|
From-SVN: r45194
|
|
* config/rs6000/rs6000.c (mask_operand): Rewrite without
bit-shifting loop.
(mask64_operand): Likewise.
(rldic_operand): Delete.
(includes_lshift64_p): Delete.
(includes_rldic_lshift_p): New function.
(includes_rldicr_lshift_p): New function.
(print_operand): Don't call rldic_operand in case 'W'.
* config/rs6000/rs6000-protos.h (rldic_operand): Remove.
(includes_lshift64_p): Remove.
(includes_rldic_lshift_p): Declare.
(includes_rldicr_lshift_p): Declare.
* config/rs6000/rs6000.h (PREDICATE_CODES): Remove rldic_operand.
* config/rs6000/rs6000.md <ashldi3_internal 64 bit patterns>:
Replace match_operand rldic_operand predicate with
const_int_operand. Replace includes_lshift64_p condition with
includes_rldic_lshift_p.
<ashldi3_internal 64 bit rldicr patterns>: New.
From-SVN: r45192
|
|
From-SVN: r45188
|
|
2001-08-24 Alexandre Petit-Bianco <apbianco@redhat.com>
* parse.y (check_deprecation): Handle TYPE_DECL in a special case,
don't report anything but deprecated class when marked so. Handle
VAR_DECL.
(patch_method_invocation): Check deprecation on methods and types.
(patch_binop): code becomes an enum tree_code, added default: to
switch to handle that. Detect division by zero, try to fold and
return before using a subroutine.
(http://gcc.gnu.org/ml/gcc-patches/2001-08/msg01495.html)
From-SVN: r45187
|
|
* emit-rtl.c: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
* errors.c: Likewise.
* final.c: Likewise.
* dwarf2asm.c: Likewise.
* doprint.c (checkit): Likewise.
* diagnostic.c: Likewise.
* collect2.c: Likewise.
* calls.c: Likewise.
* c-semantics.c (build_stmt): Likewise.
* c-format.c (status_warning): Likewise.
* c-errors.c (pedwarn_c99): Likewise.
* builtins.c (validate_arglist): Likewise.
* config/pj/pj.c (pj_printf): Likewise.
* fix-header.c: Likewise.
* gcc.c: Likewise.
* gcov.c (fnotice): Likewise.
* gensupport.c (message_with_line): Likewise.
* mips-tfile.c: Likewise.
* protoize.c (notice): Likewise.
* read-rtl.c (fatal_with_file_and_line): Likewise.
* rtl-error.c: Likewise.
* tradcpp.c: Likewise.
* tree.c: Likewise.
* cp/tree.c (build_min_nt): Likewise.
(build_min): Likewise.
* cp/lex.c: Likewise.
* cp/errfn.c: Likewise.
* cp/rtti.c (create_pseudo_type_info): Likewise.
From-SVN: r45185
|
|
* df.c (df_uses_record): Return after recording all uses
in ASM_OPERANDS.
From-SVN: r45184
|
|
2001-08-26 Daniel Berlin <dan@cgsoftware.com>
* df.c (df_insn_modify): Realloc the INSN table here, if
necessary, here, too.
From-SVN: r45183
|
|
From-SVN: r45179
|
|
* config/mips/mips.c (mips_function_value): Handle complex return
values.
From-SVN: r45178
|
|
* reload1.c (reload): Make all entries in reg_equiv_memory_loc
unshared.
* reload.c (make_memloc): Copy result if it is still
reg_equiv_memory_loc[regno] on return.
(subst_reloads) [ENABLE_CHECKING]: Check that none of
reg_equiv_constant, reg_equiv_memory_loc, reg_equiv_address and
reg_equiv_mem are modified by the substitutions.
From-SVN: r45177
|
|
* predict.c (expensive_function_p): New.
* rtl.h (expensive_function_p): Declare.
* i386.c (FAST_PROLOGUE_INSN_COUNT): New constant.
(use_fast_prologue_epilogue): New static variable.
(expand_prologue): Set it; emit short prologues if unset.
(expand_epilogue): Likewise.
From-SVN: r45176
|
|
* gcc.c-torture/compile/961203-1.x: Mark unsupported by stormy16.
* gcc.c-torture/compile/980506-1.x: Mark unsupported by stormy16.
* gcc.c-torture/compile/990617-1.x: Mark unsupported by stormy16.
From-SVN: r45175
|
|
* config.gcc: Add stormy16-*-elf case.
* config/stormy16/stormy-abi: New file.
* config/stormy16/stormy16-lib2.c: New file.
* config/stormy16/stormy16-protos.h: New file.
* config/stormy16/stormy16.c: New file.
* config/stormy16/stormy16.h: New file.
* config/stormy16/stormy16.md: New file.
* config/stormy16/t-stormy16: New file.
From-SVN: r45173
|
|
From-SVN: r45171
|
|
From-SVN: r45170
|
|
pointer size, not constant 4.
* config/rs6000/rs6000.c (rs6000_initialize_trampoline): Function
descriptor members are pointer size, not constant 4.
* config/rs6000/rs6000.md (define_splits): Remove more unused
constraints.
From-SVN: r45168
|
|
From-SVN: r45166
|
|
than 4 bytes.
2001-08-23 Alexandre Petit-Bianco <apbianco@redhat.com>
* jcf-parse.c (yyparse): Set magic to 0, don't issue error for a
file smaller than 4 bytes.
* parse.y (check_inner_circular_reference): New function.
(check_circular_reference): Likewise.
(array_initializer:): Accept {,}.
(java_check_circular_reference): Rewritten using
check_circular_reference and check_inner_circular_reference.
(java_complete_expand_method): Unconditionally save and restore
the unpurged exception list.
(build_dot_class_method_invocation): Unmangle signature parameter.
(http://gcc.gnu.org/ml/gcc-patches/2001-08/msg01417.html)
From-SVN: r45156
|
|
* decl.c (init_decl_processing): Add `throws' field to method
descriptor.
* class.c (make_method_value): Compute `throws' field for method.
From-SVN: r45152
|
|
From-SVN: r45151
|
|
* expmed.c: Default-#define HAVE_insv, HAVE_extv, and HAVE_extzv
to zero.
(mode_for_extraction): No need for #ifdefs. Add default-case abort
to switch.
(store_bit_field): Eliminate insv_bitsize variable. Put HAVE_insv
in if controlling use of insv.
(extract_bit_field): Likewise, for extv and extzv.
From-SVN: r45150
|
|
From-SVN: r45149
|
|
SAVE_EXPR and NON_LVALUE_EXPR.
* fold-const.c (tree_expr_nonnegative_p): Handle *_DIV_EXPR,
*_MOD_EXPR, SAVE_EXPR and NON_LVALUE_EXPR.
testsuite:
* gcc.dg/compare5.c: New testcase.
From-SVN: r45148
|
|
* tree.c (cp_build_qualified_type_real): Use get_qualified_type.
(build_cplus_array_type): Use cp_build_qualified_type, not
TYPE_MAIN_VARIANT, to get an unqualified version.
From-SVN: r45147
|
|
* c-pragma.h: Move weak_syms and weak_decls...
* varasm.c: ...here. Now static.
(declare_weak, weak_finish, remove_from_pending_weak_list): Don't
depend on HANDLE_PRAGMA_WEAK.
From-SVN: r45146
|
|
* c-common.c (c_alignof, c_alignof_expr): Move here...
* c-typeck.c: ...from here.
* c-tree.h, c-common.h: Adjust.
* tree.c (cp_build_qualified_type_real): Use get_qualified_type.
(build_cplus_array_type): Use cp_build_qualified_type, not
TYPE_MAIN_VARIANT, to get an unqualified version.
* decl2.c (grok_alignof): Lose.
(build_expr_from_tree): Use expr_sizeof and c_alignof_expr.
* typeck.c (c_alignof): Lose.
* semantics.c (finish_sizeof, finish_alignof): New.
* parse.y: Use them.
* cp-tree.h: Declare them.
From-SVN: r45145
|
|
From-SVN: r45143
|
|
From-SVN: r45138
|
|
From-SVN: r45137
|
|
to exit.
* function.c (thread_prologue_and_epilogue_insns): Avoid
fallthru flag on edge to exit.
* i386.md (trunc?fsi splitter): Conditionionize for non-sse.
* flow.c (delete_noop_moves, propagate_block_delete_insn): Purge
dead edges.
From-SVN: r45135
|
|
From-SVN: r45131
|
|
From-SVN: r45128
|
|
instantiation".
* lib/prune.exp (prune_gcc_output): Also ignore "In constructor"
and "In instantiation".
From-SVN: r45127
|
|
* genconstants.c, genpreds.c, libfuncs.h, optabs.h, rtl-error.h:
replace "GNU CC" with "GCC".
From-SVN: r45126
|
|
* config/ia64/ia64.c (ia64_register_move_cost): Add mode arguemnt.
Reorganize. Handle ADDL like GR, add GR_AND_BR. Handle TFmode.
(ia64_secondary_reload_class): Need GR between AR/BR and anything.
Need GR between FR and not GR_AND_FR.
* config/ia64/ia64-protos.h (ia64_register_move_cost): Update.
* config/ia64/ia64.h (reg_class): Add GR_AND_BR_REGS, move
AR regs before GR regs.
(REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update.
(PREFERRED_RELOAD_CLASS): Tweak for reordered classes.
(REGISTER_MOVE_COST): Update.
(MEMORY_MOVE_COST): Add GR_AND_FR_REGS.
From-SVN: r45125
|
|
* regclass.c (init_reg_sets_1): Don't assume cost 2 within
a register class.
From-SVN: r45124
|
|
From-SVN: r45123
|
|
[[Split portion of a mixed commit.]]
From-SVN: r45122.2
|
|
* reload1.c (emit_reload_insns): Don't look for notes
on a NULL store_insn.
From-SVN: r45120
|
|
* sparc.c (uns_small_int): Don't reference a constant >32-bit.
(addrs_ok_for_ldd_peep): Fix signed/unsigned warning.
(sparc_flat_function_prologue, sparc_flat_function_epilogue): Fix
format specifier warnings.
(sparc_sched_reorder): Mark parameter with ATTRIBUTE_UNUSED.
From-SVN: r45117
|