2006-03-15 17:49:20 +01:00
|
|
|
|
2006-03-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
|
|
|
|
|
|
|
|
|
|
* config/vax/vax.c (split_quadword_operands): Use MEM_P()
|
|
|
|
|
instead of GET_CODE() == MEM and REG_P() instead of
|
|
|
|
|
GET_CODE() == REG.
|
|
|
|
|
(print_operand_address): Likewise.
|
|
|
|
|
(vax_address_cost): Likewise.
|
|
|
|
|
(vax_rtx_costs): Likewise.
|
|
|
|
|
(vax_notice_update_cc): Likewise.
|
|
|
|
|
(vax_output_int_add): Likewise.
|
|
|
|
|
(INDEX_REGISTER_P): Likewise.
|
|
|
|
|
(BASE_REGISTER_P): Likewise.
|
|
|
|
|
(nonindexed_address_p): Likewise.
|
|
|
|
|
(vax_mode_dependent_address_p): Likewise.
|
|
|
|
|
* config/vax/vax.h (EXTRA_CONSTRAINT): Likewise.
|
|
|
|
|
(PRINT_OPERAND): Likewise.
|
|
|
|
|
* config/vax/vax.md (ashlsi3): Likewise.
|
|
|
|
|
(ashlsi3): Likewise.
|
|
|
|
|
(some more unnamed insns): Likewise.
|
|
|
|
|
|
2006-03-15 17:14:55 +01:00
|
|
|
|
2006-03-15 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Make it an
|
|
|
|
|
iterator-style macro.
|
|
|
|
|
(mark_control_dependent_edges_necessary): Update the use of
|
|
|
|
|
EXECUTE_IF_CONTROL_DEPENDENT.
|
|
|
|
|
|
2006-03-15 16:52:34 +01:00
|
|
|
|
2006-03-15 J"orn Rennecke <joern.rennecke@st.com>
|
|
|
|
|
|
|
|
|
|
* config/sh/predicates.md (cache_address_operand): Special.
|
|
|
|
|
(ua_address_operand): Likewise.
|
|
|
|
|
|
2006-03-15 11:50:46 +01:00
|
|
|
|
2006-03-15 Zdenek Dvorak <dvorakz@suse.cz>
|
|
|
|
|
|
|
|
|
|
* haifa-sched.c (unlink_other_notes, reemit_notes): Do not handle
|
|
|
|
|
loop notes.
|
|
|
|
|
* sched-deps.c (sched_analyze_insn, sched_analyze): Ditto.
|
|
|
|
|
|
2006-03-15 11:14:51 +01:00
|
|
|
|
2006-03-15 Andreas Schwab <schwab@suse.de>
|
|
|
|
|
|
|
|
|
|
* gensupport.c (identify_predicable_attribute): Don't free p_false
|
|
|
|
|
when it is still in use.
|
|
|
|
|
|
2006-03-15 08:49:33 +01:00
|
|
|
|
2006-03-15 Eric Botcazou <ebotcazou@libertysurf.fr>
|
|
|
|
|
|
|
|
|
|
* config.gcc (default with_cpu setting) <sparc*-*-*>: Do not modify
|
|
|
|
|
the default setting here.
|
|
|
|
|
|
2006-03-14 22:04:56 +01:00
|
|
|
|
2006-03-14 Steven Bosscher <stevenb.gcc@gmail.com>
|
|
|
|
|
|
|
|
|
|
* tree-pass.h (pass_cfg): Remove.
|
|
|
|
|
* alias.c (rest_of_handle_cfg, pass_cfg): Remove.
|
|
|
|
|
* passes.c (pass_cfg): Don't run it.
|
|
|
|
|
|
2006-03-14 19:11:11 +01:00
|
|
|
|
2006-03-14 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* Makefile.in (reg-stack.o): Don't depend on gt-reg-stack.h.
|
|
|
|
|
* reg-stack.c (stack_regs_mentioned_data): Change the type to
|
|
|
|
|
VEC(char,heap) *.
|
|
|
|
|
(stack_regs_mentioned): Update the uses of
|
|
|
|
|
stack_regs_mentioned_data. Don't access the array beyond its
|
|
|
|
|
end.
|
|
|
|
|
(reg_to_stack): Update the uses of stack_regs_mentioned_data.
|
|
|
|
|
Don't include gt-reg-stack.h.
|
|
|
|
|
|
2006-03-14 19:14:52 +01:00
|
|
|
|
* config/bfin/bfin.h (UNALIGNED_WORD_ASM_OP): Remove.
|
|
|
|
|
* system.h (UNALIGNED_WORD_ASM_OP): Poison.
|
|
|
|
|
|
2006-03-14 19:16:21 +01:00
|
|
|
|
* combine.c (UWIDE_SHIFT_LEFT_BY_BITS_PER_WORD): Remove.
|
|
|
|
|
|
2006-03-14 21:47:17 +01:00
|
|
|
|
PR middle-end/26684
|
|
|
|
|
* reg-stack.c (stack_regs_mentioned_data): Put it undef #ifdef
|
|
|
|
|
STACK_REGS.
|
|
|
|
|
|
2006-03-14 16:06:32 +01:00
|
|
|
|
2006-03-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
|
|
|
|
|
|
|
|
|
* pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Fix typo.
|
|
|
|
|
|
2006-03-14 13:50:10 +01:00
|
|
|
|
2006-03-14 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/26672
|
|
|
|
|
* tree-ssa-propagate.c (set_rhs): Don't walk DEFs if not in
|
|
|
|
|
SSA form.
|
|
|
|
|
|
2006-03-14 10:57:43 +01:00
|
|
|
|
2006-03-14 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/26667
|
|
|
|
|
* ipa-inline.c (cgraph_check_inline_limits): Walk the correct
|
|
|
|
|
node for the callees. Always allow inlining if it will shrink
|
|
|
|
|
the function size.
|
|
|
|
|
|
2006-03-14 10:53:36 +01:00
|
|
|
|
2006-03-14 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR middle-end/26659
|
|
|
|
|
* builtins.c (get_pointer_alignment): Prefer alignment
|
|
|
|
|
information from decls over that from types.
|
|
|
|
|
|
2006-03-14 02:19:16 +01:00
|
|
|
|
2006-03-14 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
|
|
PR target/26657
|
|
|
|
|
* config/darwin.h (LINK_COMMAND_SPEC): Handle -fopenmp.
|
|
|
|
|
|
2006-03-14 01:29:07 +01:00
|
|
|
|
2006-03-14 Joseph S. Myers <joseph@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* config/rs6000/rs6000.opt (mdlmzb): New option.
|
|
|
|
|
(msched-prolog, msched-epilog): Use Var not Mask.
|
|
|
|
|
* doc/invoke.texi (-mdlmzb): Document.
|
|
|
|
|
* config/rs6000/rs6000.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
|
|
|
|
|
MASK_SCHED_PROLOG.
|
|
|
|
|
(rs6000_override_options): Enable -mdlmzb for 405 and 440.
|
|
|
|
|
* config/rs6000/rs6000.md: Add dlmzb support for 405 and 440.
|
|
|
|
|
|
2006-03-14 01:24:54 +01:00
|
|
|
|
2006-03-13 Uttam Pawar <uttamp@us.ibm.com>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/25739
|
|
|
|
|
* bt-load.c (augment_live_range): Free tos pointer.
|
|
|
|
|
|
|
|
|
|
* gensupport.c (identify_predicable_attribute): Free
|
|
|
|
|
p_false pointer.
|
|
|
|
|
* gcov.c (create_file_names): Free name pointer.
|
|
|
|
|
|
2006-03-14 00:47:47 +01:00
|
|
|
|
2006-03-13 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/26557
|
|
|
|
|
* stmt.c (emit_case_nodes): Handle the case where the index is a
|
|
|
|
|
CONST_INT, where the comparison mode is specified by the index type.
|
|
|
|
|
|
2006-03-14 00:22:57 +01:00
|
|
|
|
2006-03-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
|
|
|
|
|
|
|
|
|
* pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Define when CRTSTUFFS_O
|
|
|
|
|
is defined.
|
|
|
|
|
|
2006-03-13 23:48:56 +01:00
|
|
|
|
2006-03-13 Richard Sandiford <richard@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* config/mips/mips.md (*branch_fp): Use %Z2 for the condition.
|
|
|
|
|
(*branch_fp_inverted): Likewise.
|
|
|
|
|
|
2006-03-13 20:36:19 +01:00
|
|
|
|
2006-03-13 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/25989
|
|
|
|
|
* omp-low.c (expand_omp_for_generic): Mark istart0
|
|
|
|
|
and iend0 as addressable.
|
|
|
|
|
|
2006-03-13 19:04:01 +01:00
|
|
|
|
2006-03-13 Jie Zhang <jie.zhang@analog.com>
|
|
|
|
|
|
|
|
|
|
* config/bfin/uclinux.h: Define _GNU_SOURCE in CPLUSPLUS_CPP_SPEC.
|
|
|
|
|
|
2006-03-13 17:32:34 +01:00
|
|
|
|
2006-03-13 Jeff Law <law@redhat.com>
|
|
|
|
|
|
|
|
|
|
* tree-vrp.c (stmt_interesting_for_vrp): Some statements with
|
|
|
|
|
virtual operands are interesting.
|
|
|
|
|
(vrp_visit_stmt): Corresponding changes.
|
|
|
|
|
|
2006-03-13 15:54:41 +01:00
|
|
|
|
2006-03-13 Bernd Schmidt <bernd.schmidt@analog.com>
|
|
|
|
|
|
|
|
|
|
* config/bfin/lib1funcs.asm (___umodsi3): Use stack to save contents
|
|
|
|
|
of RETS.
|
2006-03-13 17:08:47 +01:00
|
|
|
|
* config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If
|
|
|
|
|
TARGET_ID_SHARED_LIBRARY, define __ID_SHARED_LIB__.
|
|
|
|
|
* config/bfin/crti.S: Use it instead of __PIC__.
|
|
|
|
|
* config/bfin/crtn.S: Likewise.
|
2006-03-13 15:54:41 +01:00
|
|
|
|
|
2006-03-13 17:30:40 +01:00
|
|
|
|
* config/bfin/bfin.md (call_value_symbol, sibcall_value_symbol,
|
|
|
|
|
call_symbol, sibcall_symbol): Disallow if TARGET_ID_SHARED_LIBRARY,
|
|
|
|
|
not if flag_pic.
|
|
|
|
|
Lose 'G' modifier for call operand.
|
|
|
|
|
* config/bfin/bfin.c (print_operand) <case SYMBOL_REF>: Don't
|
|
|
|
|
recognize 'G' modifier.
|
|
|
|
|
|
2006-03-13 15:18:24 +01:00
|
|
|
|
2006-03-13 Eric Botcazou <ebotcazou@adacore.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/18859
|
|
|
|
|
* gimplify.c (gimplify_switch_expr): Discard empty ranges.
|
|
|
|
|
* stmt.c (expand_case): Likewise.
|
|
|
|
|
|
2006-03-13 13:28:09 +01:00
|
|
|
|
2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/26254
|
|
|
|
|
* loop-invariant.c (seq_insns_valid_p): New function.
|
|
|
|
|
(move_invariant_reg): Only emit new code if it is valid.
|
|
|
|
|
|
2006-03-13 13:20:26 +01:00
|
|
|
|
2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
|
|
|
|
|
|
|
|
|
|
* cfgrtl.c (last_loop_beg_note, back_edge_of_syntactic_loop_p):
|
|
|
|
|
Removed.
|
|
|
|
|
(force_nonfallthru_and_redirect): Do not use last_loop_beg_note.
|
|
|
|
|
(rtl_split_edge): Do not use back_edge_of_syntactic_loop_p.
|
|
|
|
|
(commit_one_edge_insertion): Do not look for loop notes.
|
|
|
|
|
|
2006-03-13 13:16:40 +01:00
|
|
|
|
2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
|
|
|
|
|
|
|
|
|
|
* jump.c (follow_jumps): Do not check for loop notes. Move check for
|
|
|
|
|
flag_test_coverage out of loop.
|
|
|
|
|
|
2006-03-13 13:08:38 +01:00
|
|
|
|
2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
|
|
|
|
|
|
|
|
|
|
* final.c (shorten_branches): Remove outdated comment, and turn
|
|
|
|
|
the if branch that guards it to continue.
|
|
|
|
|
|
2006-03-13 13:05:03 +01:00
|
|
|
|
2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
|
|
|
|
|
|
|
|
|
|
* cfgloop.c (flow_loop_dump): Do not dump loop->invalid field.
|
|
|
|
|
* cfgloop.h (struct loop): Remove unused fields.
|
|
|
|
|
|
2006-03-13 10:03:03 +01:00
|
|
|
|
2006-03-13 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* doc/invoke.texi (-fdump-rtl-loop): Remove.
|
|
|
|
|
(-dL, -fdump-rtl-loop2): Update the dump file names
|
|
|
|
|
|
2006-03-13 10:22:13 +01:00
|
|
|
|
* doc/invoke.texi: Update dump file names.
|
|
|
|
|
|
2006-03-12 23:58:22 +01:00
|
|
|
|
2006-03-12 Steven Bosscher <stevenb.gcc@gmail.com>
|
|
|
|
|
|
|
|
|
|
* predict.c (estimate_probability): Remove.
|
|
|
|
|
* profile.c (rest_of_handle_branch_prob, pass_branch_prob): Remove.
|
|
|
|
|
* basic-block.h (estimate_probability): Remove prototype.
|
|
|
|
|
* passes.c (finish_optimization_passes): Dump branch prediction or
|
|
|
|
|
profiling heuristics to the .profile tree dump.
|
|
|
|
|
(init_optimization_passes): Unqueue pass_branch_prob.
|
|
|
|
|
|
|
|
|
|
* doc/invoke.texi (-fdump-rtl-bp): Remove.
|
|
|
|
|
|
2006-03-11 23:14:35 +01:00
|
|
|
|
2006-03-11 Steven Bosscher <stevenb.gcc@gmail.com>
|
|
|
|
|
|
|
|
|
|
* rtl.def (LABEL_REF): Remove the field for LABEL_NEXTREF.
|
|
|
|
|
* rtl.h (LABEL_NEXTREF): Remove field accessor.
|
|
|
|
|
|
2006-03-11 15:52:57 +01:00
|
|
|
|
2006-03-11 Eric Botcazou <ebotcazou@adacore.com>
|
|
|
|
|
|
|
|
|
|
* function.h (frame_offset_overflow): Declare.
|
|
|
|
|
* function.c (frame_offset_overflow): New function.
|
|
|
|
|
(assign_stack_local_1): Call it to detect that the offset overflows.
|
|
|
|
|
* cfgexpand.c (alloc_stack_frame_space): Likewise.
|
|
|
|
|
|
2006-03-11 13:52:56 +01:00
|
|
|
|
2006-03-11 Steven Bosscher <stevenb.gcc@gmail.com>
|
|
|
|
|
|
|
|
|
|
* config/sh/sh.c: Include alloc-pool.h.
|
|
|
|
|
(label_ref_list_pool): New alloc pool.
|
|
|
|
|
(label_ref_list_t): New type for lists of labels.
|
|
|
|
|
(struct pool_node): Make wend a label_ref_list_t.
|
|
|
|
|
(add_constant): Use the new type, eradicate LABEL_NEXTREF
|
|
|
|
|
references.
|
|
|
|
|
(dump_table): Likewise.
|
|
|
|
|
(sh_reorg): Set up the alloc pool before using add_constant and
|
|
|
|
|
dump_table, and destroy it when finishing.
|
|
|
|
|
|
2006-03-11 08:11:45 +01:00
|
|
|
|
2006-03-11 Richard Sandiford <richard@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* config/mips/mips.c: Remove redundant comment.
|
|
|
|
|
|
2006-03-10 23:47:08 +01:00
|
|
|
|
2006-03-10 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c/26004
|
|
|
|
|
* gimplify.c (gimplify_modify_expr_rhs): Don't do return slot opt if
|
|
|
|
|
the target was declared 'register'.
|
|
|
|
|
|
2006-03-10 21:22:05 +01:00
|
|
|
|
2006-03-10 Adam Nemet <anemet@caviumnetworks.com>
|
|
|
|
|
|
|
|
|
|
* genpreds.c (write_insn_constraint_len): Change definition of
|
|
|
|
|
insn_constraint_len to return size_t to match the declaration.
|
|
|
|
|
|
2006-03-10 18:49:02 +01:00
|
|
|
|
2006-03-10 DJ Delorie <dj@redhat.com>
|
|
|
|
|
|
|
|
|
|
* config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Bit numbers
|
|
|
|
|
start at zero.
|
|
|
|
|
(m32c_expand_insv): Fix test for an AND mask.
|
|
|
|
|
|
2006-03-10 17:44:01 +01:00
|
|
|
|
2006-03-10 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR middle-end/26565
|
|
|
|
|
* builtins.c (get_pointer_alignment): Handle component
|
|
|
|
|
references for field alignment.
|
|
|
|
|
|
2006-03-10 17:07:29 +01:00
|
|
|
|
2006-03-10 J"orn Rennecke <joern.rennecke@st.com>
|
|
|
|
|
|
|
|
|
|
* config.gcc (sh*-superh-elf, sh*elf (newlib)): Use newlib.h
|
|
|
|
|
when building with libgloss.
|
|
|
|
|
(sh*elf): Implement --without-fp option.
|
|
|
|
|
(sh64-superh-linux*): Don't multilib.
|
|
|
|
|
|
2006-03-10 11:58:22 +01:00
|
|
|
|
2006-03-10 J"orn Rennecke <joern.rennecke@st.com>
|
|
|
|
|
|
|
|
|
|
* struct-equiv.c (rtx_equiv_p): Fix POST_MODIFY case.
|
|
|
|
|
|
2006-03-10 02:22:54 +01:00
|
|
|
|
2006-03-09 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
|
|
* tree-ssa-phiopt.c (tree_ssa_phiopt): Add cfgchanged variable.
|
|
|
|
|
Set it when one of the replacement functions returned true.
|
|
|
|
|
Return TODO_cleanup_cfg if cfgchanged is true.
|
|
|
|
|
(pass_phiopt) <todo_flags_finish>: Remove TODO_cleanup_cfg.
|
|
|
|
|
|
2006-03-10 00:05:50 +01:00
|
|
|
|
2006-03-09 Adam Nemet <anemet@caviumnetworks.com>
|
|
|
|
|
|
|
|
|
|
* combine.c (simplify_shift_const_1): Use gen_lowpart_or_truncate
|
|
|
|
|
instead of gen_lowpart.
|
|
|
|
|
|
2006-03-09 22:03:17 +01:00
|
|
|
|
2006-03-09 Richard Sandiford <richard@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* config/mips/mips-protos.h (mips_output_conditional_branch): Change
|
|
|
|
|
interface.
|
|
|
|
|
(mips_output_order_conditional_branch): Declare.
|
|
|
|
|
* config/mips/mips.h (MIPS_BRANCH): New macro.
|
|
|
|
|
* config/mips/mips.c (gen_conditional_branch): Use VOIDmode
|
|
|
|
|
for the comparison. Use gen_condjump.
|
|
|
|
|
(mips_output_conditional_branch): Rework interface to take the
|
|
|
|
|
asm templates for a direct branch and the inverse of a direct branch.
|
|
|
|
|
(mips_output_order_conditional_branch): New function.
|
|
|
|
|
(mips_builtin_branch_and_move): New function.
|
|
|
|
|
(mips_expand_builtin_compare): Use it. Use VOIDmode for the
|
|
|
|
|
branch condition. Use gen_single_cc as the condition for
|
|
|
|
|
__builtin_mips_upper_* or __builtin_mips_lower_*.
|
|
|
|
|
(mips_expand_builtin_bposge): Use mips_builtin_branch_and_move.
|
|
|
|
|
Use VOIDmode for the branch condition.
|
|
|
|
|
* config/mips/predicates.md (order_operator): New predicate.
|
|
|
|
|
* config/mips/mips.md (UNSPEC_SINGLE_CC): New constant.
|
|
|
|
|
(branch_fp): Rename to...
|
|
|
|
|
(*branch_fp): ...this. Remove mode from comparison operator.
|
|
|
|
|
Use new mips_output_conditional_branch interface.
|
|
|
|
|
(branch_fp_inverted): Rename to...
|
|
|
|
|
(*branch_fp_inverted): ...this and update as for *branch_fp.
|
|
|
|
|
(*branch_zero<mode>): Rename to...
|
|
|
|
|
(*branch_order<mode>): ...this. Remove mode from comparison operator.
|
|
|
|
|
Use mips_output_order_conditional_branch. Only accept ordered
|
|
|
|
|
comparisons.
|
|
|
|
|
(*branch_zero<mode>_inverted): Rename to...
|
|
|
|
|
(*branch_order<mode>_inverted): ...this and update as for
|
|
|
|
|
*branch_order<mode>.
|
|
|
|
|
(*branch_equality<mode>): Accept zero as the second operand to
|
|
|
|
|
the equality operator. Use the new mips_output_conditional_branch
|
|
|
|
|
interface.
|
|
|
|
|
(*branch_equality<mode>_inverted): Likewise.
|
|
|
|
|
(condjump): New expander.
|
|
|
|
|
* config/mips/mips-dsp.md (mips_bposge): Remove mode from comparison
|
|
|
|
|
operator.
|
|
|
|
|
* config/mips/mips-ps-3d.md (bc1any4t, bc1any4f): Likewise.
|
|
|
|
|
(bc1any2t, bc1any2f): Likewise.
|
|
|
|
|
(single_cc): New expander.
|
|
|
|
|
(*branch_upper_lower, *branch_upper_lower_inverted): New patterns.
|
|
|
|
|
|
2006-03-09 19:31:08 +01:00
|
|
|
|
2006-03-09 Richard Sandiford <richard@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* doc/md.texi: Update documentation of MIPS constraints.
|
|
|
|
|
* config/mips/constraints.md: New file.
|
|
|
|
|
* config/mips/mips.md: Include it.
|
|
|
|
|
* config/mips/mips.c (mips_char_to_class): Delete.
|
|
|
|
|
(override_options): Don't initialize mips_char_to_class.
|
|
|
|
|
* config/mips/mips.h (mips_char_to_class): Delete.
|
|
|
|
|
(REG_CLASS_FROM_LETTER): Delete.
|
|
|
|
|
(CONST_OK_FOR_LETTER_P): Delete.
|
|
|
|
|
(CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
|
|
|
|
|
(EXTRA_CONSTRAINT_Y): Delete.
|
|
|
|
|
(EXTRA_CONSTRAINT_STR): Delete.
|
|
|
|
|
(CONSTRAINT_LEN): Delete.
|
|
|
|
|
(EXTRA_MEMORY_CONSTRAINT): Delete.
|
|
|
|
|
|
2006-03-09 19:14:39 +01:00
|
|
|
|
2006-03-09 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
* tree-cfg.c (move_block_to_fn): Remove the statements from the
|
|
|
|
|
original fn's eh regions.
|
|
|
|
|
|
2006-03-09 17:11:00 +01:00
|
|
|
|
2006-03-09 Eric Botcazou <ebotcazou@adacore.com>
|
|
|
|
|
|
|
|
|
|
* fold-const.c (build_range_check): Make sure to use a valid type to
|
|
|
|
|
apply the "(c>=low) && (c<=high) into (c-low>=0) && (c-low<=high-low)"
|
|
|
|
|
transformation.
|
|
|
|
|
|
|
|
|
|
(range_predecessor): New static function.
|
|
|
|
|
(range_successor): Likewise.
|
|
|
|
|
(merge_ranges): Use them to compute predecessors and successors of
|
|
|
|
|
range bounds.
|
|
|
|
|
|
2006-03-09 15:54:11 +01:00
|
|
|
|
2006-03-09 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/26561
|
|
|
|
|
* fold-const.c (fold_div_compare): When optimizing X/C1 op C2 as
|
|
|
|
|
X op C3, consider whether C3 overflows towards +Inf or -Inf.
|
|
|
|
|
|
addsub.md (addqi3): Disparage a0/a1.
* config/m32c/addsub.md (addqi3): Disparage a0/a1.
(addpsi3): Expand to include memory operands. Remove
reload-specific splits.
* config/m32c/bitops.md (bset_qi, bset_hi, bclr_qi): New.
(andqi3_16, andhi3_16, iorqi3_16, iorhi3_16): New.
(andqi3_24, andhi3_24, iorqi3_24, iorhi3_24): New.
(andqi3, andhi3, iorqi3, iorhi3): Convert to expanders.
(shift1_qi, shift1_hi, insv): New.
* config/m32c/cond.md (cbranchqi4, cbranchhi4): Remove.
(cbranch<mode>4, stzx_16, stzx_24_<mode>, stzx_reversed,
cmp<mode>, b<code>, s<code>, s<code>_24, movqicc, movhicc,
cond_to_int): New.
* config/m32c/m32c-protos.h: Update as needed.
* config/m32c/m32c.c (m32c_reg_class_from_constraint): Don't
default the Rcr, Rcl, Raw, and Ral constraints. Add Ra0 and Ra1.
Fail for unrecognized R* constraints.
(m32c_cannot_change_mode_class): Be more picky about pseudos.
(m32c_const_ok_for_constraint_p): Add Imb, Imw, and I00.
(m32c_extra_constraint_p2): Allow (mem (plus (plus fb int) int)).
Add Sp constraint.
(m32c_init_libfuncs): New.
(m32c_legitimate_address_p): Add debug wrapper.
(m32c_rtx_costs): New.
(m32c_address_cost): New.
(conversions): Add 'B' prefix.
(m32c_print_operand): 'h' and 'H' pick lower and upper halves of
operands, or word regnames for QI operands. 'B' prints bit
position.
(m32c_expand_setmemhi): New.
(m32c_expand_movmemhi): New.
(m32c_expand_movstr): New.
(m32c_expand_cmpstr): New.
(m32c_prepare_shift): Shift counts are limited to 16 bits at a time.
(m32c_expand_neg_mulpsi3): Handle non-ints.
(m32c_cmp_flg_0): New.
(m32c_expand_movcc): New.
(m32c_expand_insv): New.
(m32c_scc_pattern): New.
* config/m32c/m32c.h (reg classes): Add AO_REGS and A1_REGS. Take
a0/a1 out of SIregs.
(STORE_FLAG_VALUE): New.
* config/m32c/m32c.md: Add unspecs for string moves. Define various mode and
code macros.
(no_insn): New.
* config/m32c/mov.md: Make constraints more liberal.
(zero_extendqihi2): Optimize r0/r1 case.
* config/m32c/muldiv.md (mulpsi3): Check for intvals.
* config/m32c/predicates.md (m32c_any_operand): New.
(m32c_nonimmediate_operand): New.
(m32c_hl_operand): New.
(m32c_r3_operand): New.
(ap_operand): New.
(ma_operand): New.
(memsym_operand): New.
(memimmed_operand): New.
(a_qi_operand): New.
(m32c_eqne_operator): New.
(m32c_1bit8_operand): New.
(m32c_1bit16_operand): New.
(m32c_1mask8_operand): New.
(m32c_1mask16_operand): New.
* config/m32c/blkmov.md: New file.
* config/m32c/t-m32c (MD_FILES): Add blkmov.
From-SVN: r111859
2006-03-09 04:09:37 +01:00
|
|
|
|
2006-03-08 DJ Delorie <dj@redhat.com>
|
|
|
|
|
|
|
|
|
|
* config/m32c/addsub.md (addqi3): Disparage a0/a1.
|
|
|
|
|
(addpsi3): Expand to include memory operands. Remove
|
|
|
|
|
reload-specific splits.
|
|
|
|
|
* config/m32c/bitops.md (bset_qi, bset_hi, bclr_qi): New.
|
|
|
|
|
(andqi3_16, andhi3_16, iorqi3_16, iorhi3_16): New.
|
|
|
|
|
(andqi3_24, andhi3_24, iorqi3_24, iorhi3_24): New.
|
|
|
|
|
(andqi3, andhi3, iorqi3, iorhi3): Convert to expanders.
|
|
|
|
|
(shift1_qi, shift1_hi, insv): New.
|
|
|
|
|
* config/m32c/cond.md (cbranchqi4, cbranchhi4): Remove.
|
|
|
|
|
(cbranch<mode>4, stzx_16, stzx_24_<mode>, stzx_reversed,
|
|
|
|
|
cmp<mode>, b<code>, s<code>, s<code>_24, movqicc, movhicc,
|
|
|
|
|
cond_to_int): New.
|
|
|
|
|
* config/m32c/m32c-protos.h: Update as needed.
|
|
|
|
|
* config/m32c/m32c.c (m32c_reg_class_from_constraint): Don't
|
|
|
|
|
default the Rcr, Rcl, Raw, and Ral constraints. Add Ra0 and Ra1.
|
|
|
|
|
Fail for unrecognized R* constraints.
|
|
|
|
|
(m32c_cannot_change_mode_class): Be more picky about pseudos.
|
|
|
|
|
(m32c_const_ok_for_constraint_p): Add Imb, Imw, and I00.
|
|
|
|
|
(m32c_extra_constraint_p2): Allow (mem (plus (plus fb int) int)).
|
|
|
|
|
Add Sp constraint.
|
|
|
|
|
(m32c_init_libfuncs): New.
|
|
|
|
|
(m32c_legitimate_address_p): Add debug wrapper.
|
|
|
|
|
(m32c_rtx_costs): New.
|
|
|
|
|
(m32c_address_cost): New.
|
|
|
|
|
(conversions): Add 'B' prefix.
|
|
|
|
|
(m32c_print_operand): 'h' and 'H' pick lower and upper halves of
|
|
|
|
|
operands, or word regnames for QI operands. 'B' prints bit
|
|
|
|
|
position.
|
|
|
|
|
(m32c_expand_setmemhi): New.
|
|
|
|
|
(m32c_expand_movmemhi): New.
|
|
|
|
|
(m32c_expand_movstr): New.
|
|
|
|
|
(m32c_expand_cmpstr): New.
|
|
|
|
|
(m32c_prepare_shift): Shift counts are limited to 16 bits at a time.
|
|
|
|
|
(m32c_expand_neg_mulpsi3): Handle non-ints.
|
|
|
|
|
(m32c_cmp_flg_0): New.
|
|
|
|
|
(m32c_expand_movcc): New.
|
|
|
|
|
(m32c_expand_insv): New.
|
|
|
|
|
(m32c_scc_pattern): New.
|
|
|
|
|
* config/m32c/m32c.h (reg classes): Add AO_REGS and A1_REGS. Take
|
|
|
|
|
a0/a1 out of SIregs.
|
|
|
|
|
(STORE_FLAG_VALUE): New.
|
|
|
|
|
* config/m32c/m32c.md: Add unspecs for string moves. Define various mode and
|
|
|
|
|
code macros.
|
|
|
|
|
(no_insn): New.
|
|
|
|
|
* config/m32c/mov.md: Make constraints more liberal.
|
|
|
|
|
(zero_extendqihi2): Optimize r0/r1 case.
|
|
|
|
|
* config/m32c/muldiv.md (mulpsi3): Check for intvals.
|
|
|
|
|
* config/m32c/predicates.md (m32c_any_operand): New.
|
|
|
|
|
(m32c_nonimmediate_operand): New.
|
|
|
|
|
(m32c_hl_operand): New.
|
|
|
|
|
(m32c_r3_operand): New.
|
|
|
|
|
(ap_operand): New.
|
|
|
|
|
(ma_operand): New.
|
|
|
|
|
(memsym_operand): New.
|
|
|
|
|
(memimmed_operand): New.
|
|
|
|
|
(a_qi_operand): New.
|
|
|
|
|
(m32c_eqne_operator): New.
|
|
|
|
|
(m32c_1bit8_operand): New.
|
|
|
|
|
(m32c_1bit16_operand): New.
|
|
|
|
|
(m32c_1mask8_operand): New.
|
|
|
|
|
(m32c_1mask16_operand): New.
|
|
|
|
|
* config/m32c/blkmov.md: New file.
|
|
|
|
|
* config/m32c/t-m32c (MD_FILES): Add blkmov.
|
|
|
|
|
|
2006-03-08 23:58:50 +01:00
|
|
|
|
2006-03-08 Andreas Tobler <a.tobler@schweiz.ch>
|
|
|
|
|
|
2006-03-09 00:00:12 +01:00
|
|
|
|
* dwarf2out.c (expand_builtin_dwarf_sp_column): Make dwarf_regnum
|
|
|
|
|
unsigned to fix signed/unsigned comparison issue in
|
|
|
|
|
DWARF2_FRAME_REG_OUT.
|
|
|
|
|
(expand_builtin_init_dwarf_reg_sizes): Make i unsigned to fix signed/
|
|
|
|
|
unsigned comparison issue in DWARF2_FRAME_REG_OUT.
|
|
|
|
|
|
2006-03-08 23:58:50 +01:00
|
|
|
|
* tree-ssa-operands.c (finalize_ssa_def_ops): Move the declaration
|
|
|
|
|
of ptr into the ENABLE_CHECKING section.
|
|
|
|
|
|
2006-03-08 23:07:37 +01:00
|
|
|
|
2006-03-08 Jeff Law <law@redhat.com>
|
|
|
|
|
|
|
|
|
|
* tree-vrp.c (infer_value_range): Only count pointer uses
|
|
|
|
|
and dereferences if -fdelete-null-pointer-checks is enabled.
|
|
|
|
|
|
|
|
|
|
* tree-vrp.c (find_assert_locations): Infer value ranges for
|
|
|
|
|
single use pointers, but do not create ASSERT_EXPRs for them.
|
|
|
|
|
When a non-null range is inferred for a pointer, backwards
|
|
|
|
|
propagate that range to other equivalent pointers through the
|
|
|
|
|
use-def chain.
|
|
|
|
|
|
2006-03-08 17:10:44 +01:00
|
|
|
|
2006-03-08 Paolo Bonzini <bonzini@gnu.org>
|
|
|
|
|
|
|
|
|
|
PR bootstrap/26500
|
|
|
|
|
* Makefile.in (dvi, html, install-info): Invoke the corresponding
|
|
|
|
|
language hook targets.
|
|
|
|
|
* ada/Make-lang.in, cp/Make-lang.in, objc/Make-lang.in,
|
|
|
|
|
objcp/Make-lang.in: Create stub rules for dvi, html, install-info
|
|
|
|
|
if language hook targets were missing.
|
|
|
|
|
|
tree-ssa-opfinalize.h: Removed.
* tree-ssa-opfinalize.h: Removed.
* Makefile.in (tree-ssa-operands.o): Remove tree-ssa-opfinalize.h
dependency.
* tree-ssa-operands.c: Do not include tree-ssa-opfinalize.h.
(ALLOC_OPTYPE, APPEND_OP_AFTER, MOVE_HEAD_AFTER, MOVE_HEAD_TO_FREELIST,
INITIALIZE_USE, add_def_op, add_use_op, add_vuse_op, add_maydef_op,
add_mustdef_op, finalize_ssa_def_ops, finalize_ssa_use_ops,
finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
finalize_ssa_v_must_def_ops): New.
From-SVN: r111843
2006-03-08 14:09:15 +01:00
|
|
|
|
2006-03-07 Zdenek Dvorak <dvorakz@suse.cz>
|
|
|
|
|
|
|
|
|
|
* tree-ssa-opfinalize.h: Removed.
|
|
|
|
|
* Makefile.in (tree-ssa-operands.o): Remove tree-ssa-opfinalize.h
|
|
|
|
|
dependency.
|
|
|
|
|
* tree-ssa-operands.c: Do not include tree-ssa-opfinalize.h.
|
|
|
|
|
(ALLOC_OPTYPE, APPEND_OP_AFTER, MOVE_HEAD_AFTER, MOVE_HEAD_TO_FREELIST,
|
|
|
|
|
INITIALIZE_USE, add_def_op, add_use_op, add_vuse_op, add_maydef_op,
|
|
|
|
|
add_mustdef_op, finalize_ssa_def_ops, finalize_ssa_use_ops,
|
|
|
|
|
finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
|
|
|
|
|
finalize_ssa_v_must_def_ops): New.
|
|
|
|
|
|
2006-03-08 03:29:18 +01:00
|
|
|
|
2006-03-07 Kenneth Zadeck <zadeck@naturalbridge.com>
|
|
|
|
|
|
|
|
|
|
* df-scan.c: (df_bb_refs_record): Fix obvious typo with wrong
|
|
|
|
|
block as parameter.
|
|
|
|
|
|
2006-03-08 01:03:32 +01:00
|
|
|
|
2006-03-07 Geoffrey Keating <geoffk@apple.com>
|
|
|
|
|
|
2006-03-08 02:26:21 +01:00
|
|
|
|
* varasm.c (assemble_end_function): Say that 'fnname' is unused.
|
|
|
|
|
|
2006-03-08 01:14:54 +01:00
|
|
|
|
* config/i386/i386.c (ix86_delegitimize_address): Handle Darwin
|
|
|
|
|
addresses with offsets; reorganize.
|
|
|
|
|
|
2006-03-08 01:03:32 +01:00
|
|
|
|
* dwarf2out.c (DWARF2_FRAME_REG_OUT): Move up in file.
|
|
|
|
|
(expand_builtin_dwarf_sp_column): Call DWARF2_FRAME_REG_OUT.
|
|
|
|
|
(expand_builtin_init_dwarf_reg_sizes): Likewise.
|
|
|
|
|
|
2006-03-08 00:51:34 +01:00
|
|
|
|
2006-03-08 David Billinghurst <David.Billinghurst@riotinto.com>
|
|
|
|
|
|
|
|
|
|
PR target/26588
|
|
|
|
|
* config/i386/cygwin.h (GOMP_SELF_SPECS): Define.
|
|
|
|
|
|
2006-03-08 00:41:00 +01:00
|
|
|
|
2006-03-08 Ben Elliston <bje@au.ibm.com>
|
|
|
|
|
|
|
|
|
|
* config/fp-bit.h (CMPtype): Typedef to a word mode integer.
|
|
|
|
|
|
2006-03-07 20:20:32 +01:00
|
|
|
|
2006-03-07 Aldy Hernandez <aldyh@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR gomp/26238
|
|
|
|
|
* doc/passes.texi (Tree-SSA passes): Document omp lowering and
|
|
|
|
|
expansion.
|
|
|
|
|
|
2006-03-07 17:23:38 +01:00
|
|
|
|
2006-03-07 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/26587
|
|
|
|
|
* tree-ssa-structalias.c (handle_ptr_arith): Handle MINUS_EXPR.
|
|
|
|
|
|
2006-03-07 14:56:31 +01:00
|
|
|
|
2006-03-07 Richard Sandiford <richard@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* varasm.c (assemble_variable): Fix setting of DECL_IN_TEXT_SECTION.
|
|
|
|
|
|
2006-03-07 08:41:39 +01:00
|
|
|
|
2006-03-07 Richard Sandiford <richard@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* hooks.c (hook_bool_mode_rtx_true): New function.
|
|
|
|
|
* hooks.h (hook_bool_mode_rtx_true): Declare.
|
|
|
|
|
* toplev.c (compile_file): Call output_shared_constant_pool.
|
|
|
|
|
* varasm.c (shared_constant_pool): New variable.
|
|
|
|
|
(assemble_start_function, assemble_end_function): Remove arguments
|
|
|
|
|
from call to output_constant_pool.
|
|
|
|
|
(create_constant_pool): New function, split out from...
|
|
|
|
|
(init_varasm_status): ...here.
|
|
|
|
|
(force_const_mem): Choose between the shared and per-function constant
|
|
|
|
|
pools. Set current_function_uses_const_pool when reusing old entries
|
|
|
|
|
as well as when creating new ones.
|
|
|
|
|
(mark_constant): Ignore data argument.
|
|
|
|
|
(mark_constants): Remove pool argument.
|
|
|
|
|
(mark_constant_pool): Likewise. Use current_function_uses_const_pool
|
|
|
|
|
to decide whether the function uses a constant pool.
|
|
|
|
|
(output_constant_pool_contents): New function, split out from...
|
|
|
|
|
(output_constant_pool): ...here.
|
|
|
|
|
(output_shared_constant_pool): New function.
|
|
|
|
|
(init_varasm_once): Initialize shared_constant_pool.
|
|
|
|
|
* output.h (output_constant_pool): Delete.
|
|
|
|
|
(output_shared_constant_pool): Declare.
|
|
|
|
|
* config/s390/s390-protos.h (s390_output_constant_pool): Delete.
|
|
|
|
|
* config/i386/i386.c (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Override.
|
|
|
|
|
|
2006-03-06 12:13:25 +01:00
|
|
|
|
2006-03-06 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove reference to
|
|
|
|
|
flag_strength_reduce.
|
|
|
|
|
|
2006-03-06 01:49:58 +01:00
|
|
|
|
2006-03-06 Ben Elliston <bje@au.ibm.com>
|
|
|
|
|
|
2006-03-06 02:23:17 +01:00
|
|
|
|
* config.gcc: Add t-dfprules to $tmake_file for i*86-*-linux* and
|
|
|
|
|
x86_64-*-linux* configurations.
|
|
|
|
|
|
2006-03-06 01:49:58 +01:00
|
|
|
|
* config/dfp-bit.h (CMPtype): Typedef to a word mode integer.
|
2006-03-06 02:34:05 +01:00
|
|
|
|
(LIBGCC2_WORDS_BIG_ENDIAN): Define.
|
2006-03-06 01:49:58 +01:00
|
|
|
|
|
2006-03-05 18:31:20 +01:00
|
|
|
|
2006-03-05 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* tree-ssa-threadupdate.c (rediscover_loops_after_threading):
|
|
|
|
|
Remove.
|
|
|
|
|
* basic-block.h: Remove the extern for
|
|
|
|
|
rediscover_loops_after_threading.
|
|
|
|
|
|
2006-03-05 18:40:40 +01:00
|
|
|
|
* cfgloop.c (cancel_loop): Make it static.
|
|
|
|
|
* cfgloop.h: Remove the prototype for cancel_loop.
|
|
|
|
|
|
2006-03-05 18:41:48 +01:00
|
|
|
|
* flow.c (recompute_reg_usage): Make it static.
|
|
|
|
|
* rtl.h: Remove the prototype for recompute_reg_usage.
|
|
|
|
|
|
2006-03-05 18:42:47 +01:00
|
|
|
|
* function.c (use_return_register): Make it static.
|
|
|
|
|
* function.h: Remove the prototype.
|
|
|
|
|
|
2006-03-05 07:01:33 +01:00
|
|
|
|
2006-03-05 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* recog.c (volatile_mem_p, validate_change_maybe_volatile):
|
|
|
|
|
Remove.
|
|
|
|
|
* recog.h: Remove the prototype for
|
|
|
|
|
validate_change_maybe_volatile.
|
|
|
|
|
|
2006-03-05 06:59:55 +01:00
|
|
|
|
2006-03-05 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* rtlanal.c (replace_reg): Remove.
|
|
|
|
|
* rtl.h: Remove the prototype for replace_reg.
|
|
|
|
|
|
2006-03-05 06:58:50 +01:00
|
|
|
|
2006-03-05 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* regclass.c (reg_scan_update): Remove.
|
|
|
|
|
(reg_scan_mark_refs): Remove the last argument.
|
|
|
|
|
* rtl.h: Remove the prototype for reg_scan_update.
|
|
|
|
|
|
builtins.c, [...]: Fix comment typos.
* builtins.c, c-pragma.h, c-typeck.c, cgraph.c, cgraphunit.c,
combine.c, common.opt, config/dfp-bit.c, config/i386/i386.c,
config/m68k/m68k.c, config/m68k/m68k.md, config/mt/mt.c,
config/mt/mt.h, config/s390/s390.md, df-core.c, df-problems.c,
df-scan.c, df.h, diagnostic.c, expr.c, function.h, gimplify.c,
loop-invariant.c, omp-low.c, opts.c, passes.c,
rtl-factoring.c, rtlanal.c, struct-equiv.c, tree-cfgcleanup.c,
tree-ssa-loop-niter.c, tree-ssa-loop-prefetch.c,
tree-ssa-structalias.c, tree-ssa-threadedge.c,
tree-ssa-threadupdate.c, tree-vect-patterns.c,
tree-vect-transform.c, tree-vectorizer.h, tree-vrp.c,
unwind-dw2.c: Fix comment typos. Follow spelling conventions.
From-SVN: r111721
2006-03-05 00:05:24 +01:00
|
|
|
|
2006-03-04 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* builtins.c, c-pragma.h, c-typeck.c, cgraph.c, cgraphunit.c,
|
|
|
|
|
combine.c, common.opt, config/dfp-bit.c, config/i386/i386.c,
|
|
|
|
|
config/m68k/m68k.c, config/m68k/m68k.md, config/mt/mt.c,
|
|
|
|
|
config/mt/mt.h, config/s390/s390.md, df-core.c, df-problems.c,
|
|
|
|
|
df-scan.c, df.h, diagnostic.c, expr.c, function.h, gimplify.c,
|
|
|
|
|
loop-invariant.c, omp-low.c, opts.c, passes.c,
|
|
|
|
|
rtl-factoring.c, rtlanal.c, struct-equiv.c, tree-cfgcleanup.c,
|
|
|
|
|
tree-ssa-loop-niter.c, tree-ssa-loop-prefetch.c,
|
|
|
|
|
tree-ssa-structalias.c, tree-ssa-threadedge.c,
|
|
|
|
|
tree-ssa-threadupdate.c, tree-vect-patterns.c,
|
|
|
|
|
tree-vect-transform.c, tree-vectorizer.h, tree-vrp.c,
|
|
|
|
|
unwind-dw2.c: Fix comment typos. Follow spelling conventions.
|
|
|
|
|
|
2006-03-04 21:07:18 +01:00
|
|
|
|
2006-03-04 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* dwarf2out.c (dwarf2out_add_library_unit_info): Remove.
|
|
|
|
|
* dwarf2out.h: Remove the prototype for
|
|
|
|
|
dwarf2out_add_library_unit_info.
|
|
|
|
|
|
2006-03-04 21:05:47 +01:00
|
|
|
|
2006-03-04 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* tree.c (add_var_to_bind_expr): Remove.
|
|
|
|
|
* tree.h: Remove the prototype for add_var_to_bind_expr.
|
|
|
|
|
|
2006-03-04 21:04:23 +01:00
|
|
|
|
2006-03-04 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* regclass.c (n_non_fixed_regs): Remove.
|
|
|
|
|
(init_reg_sets_1, globalize_reg): Remove all uses of
|
|
|
|
|
n_non_fixed_regs.
|
|
|
|
|
* hard-reg-set.h: Remove the extern for n_non_fixed_regs.
|
|
|
|
|
|
2006-03-04 20:45:26 +01:00
|
|
|
|
2006-03-04 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* rtlanal.c (insns_safe_to_move_p): Remove.
|
|
|
|
|
* rtl.h: Remove the prototype for insns_safe_to_move_p.
|
|
|
|
|
|
2006-03-04 20:44:17 +01:00
|
|
|
|
2006-03-04 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* expmed.c (expand_mult_add): Remove.
|
|
|
|
|
* expr.h: Remove the prototype for expand_mult_add.
|
|
|
|
|
|
2006-03-04 08:07:12 +01:00
|
|
|
|
2006-03-04 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* unwind-dw2.h (_Unwind_FrameState): Add REG_SAVED_VAL_OFFSET
|
|
|
|
|
and REG_SAVED_VAL_EXP constants.
|
|
|
|
|
* unwind-dw2.c (struct _Unwind_Context): Add by_value array.
|
|
|
|
|
(_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
|
|
|
|
|
Handle regs stored by value.
|
|
|
|
|
(_Unwind_SetGRValue, _Unwind_GRByValue): New functions.
|
|
|
|
|
(execute_cfa_program): Handle DW_CFA_val_offset,
|
|
|
|
|
DW_CFA_val_offset_sf and DW_CFA_val_expression.
|
|
|
|
|
(uw_update_context_1): Handle REG_SAVED_REG with regs stored by
|
|
|
|
|
value specially. Handle REG_SAVED_VAL_OFFSET and REG_SAVED_VAL_EXP.
|
|
|
|
|
(uw_install_context_1): Handle target regs stored by value.
|
|
|
|
|
|
2006-03-04 01:04:11 +01:00
|
|
|
|
2006-03-03 Daniel Berlin <dberlin@dberlin.org>
|
|
|
|
|
|
|
|
|
|
* tree-sra.c (tree_sra): Return todoflags;
|
|
|
|
|
(generate_one_element): Set TODO_update_smt_usage if needed.
|
|
|
|
|
(pass_sra): Remove TODO_update_smt_usage.
|
|
|
|
|
* tree-ssa-forwprop.c (forward_propagate_addr_expr): Add some
|
|
|
|
|
parameter.
|
|
|
|
|
(tree_ssa_forward_propagate_single_use_vars): Return
|
|
|
|
|
TODO_update_smt_usage if we need to update SMT usage.
|
|
|
|
|
(pass_forwprop): Remove TODO_update_smt_usage.
|
|
|
|
|
|
2006-03-03 19:15:58 +01:00
|
|
|
|
2006-03-03 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
* tree-ssa-operands.c: Tidy whitespace. Fix spelling.
|
|
|
|
|
(correct_use_link): Remove reference to get_stmt_operands.
|
|
|
|
|
(update_stmt_operands): Likewise.
|
|
|
|
|
(get_modify_expr_operands): New function factored out of
|
|
|
|
|
parse_ssa_operands and get_expr_operands.
|
|
|
|
|
Try to create V_MUST_DEFs for LHS by default.
|
|
|
|
|
(get_expr_operands) <case MODIFY_EXPR>: Call
|
|
|
|
|
get_modify_expr_operands.
|
|
|
|
|
<case ARRAY_RANGE_REF>: Handle together with ARRAY_REF.
|
|
|
|
|
<case BIT_FIELD_REF>: Clear opf_kill_def from FLAGS.
|
|
|
|
|
(parse_ssa_operands) <case MODIFY_EXPR>: Call
|
|
|
|
|
get_modify_expr_operands.
|
|
|
|
|
|
2006-03-03 18:29:15 +01:00
|
|
|
|
2006-03-03 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* tree-dfa.c (referenced_var_lookup_if_exists): Remove.
|
|
|
|
|
* tree-flow.h: Remove the prototype for
|
|
|
|
|
referenced_var_lookup_if_exists.
|
|
|
|
|
|
2006-03-03 17:43:43 +01:00
|
|
|
|
2006-03-03 Steve Ellcey <sje@cup.hp.com>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/26345
|
|
|
|
|
PR target/19061
|
|
|
|
|
* config/ia64/predicates.md (basereg_operand): Don't look in subregs.
|
|
|
|
|
|
2006-03-03 15:35:23 +01:00
|
|
|
|
2006-03-03 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/26524
|
|
|
|
|
* tree-scalar-evolution.c (interpret_rhs_modify_expr): Use
|
|
|
|
|
fold_convert to create a constant of the appropriate type.
|
|
|
|
|
|
2006-03-03 10:11:58 +01:00
|
|
|
|
2006-03-03 Richard Sandiford <richard@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* doc/tm.texi: Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
|
|
|
|
|
SYMBOL_REF_IN_BLOCK_P.
|
|
|
|
|
* doc/rtl.texi: Likewise. Refer to SYMBOL_FLAG_HAS_BLOCK_INFO instead
|
|
|
|
|
of SYMBOL_FLAG_IN_BLOCK.
|
|
|
|
|
* gengtype.c (adjust_field_rtx_def): Use SYMBOL_REF_HAS_BLOCK_INFO_P
|
|
|
|
|
instead of SYMBOL_REF_IN_BLOCK_P.
|
|
|
|
|
* explow.c (use_anchored_address): Likewise.
|
|
|
|
|
* rtl.c (rtx_size): Likewise.
|
|
|
|
|
* varasm.c (create_block_symbol): Set SYMBOL_FLAG_HAS_BLOCK_INFO
|
|
|
|
|
instead of SYMBOL_FLAG_IN_BLOCK.
|
|
|
|
|
(make_decl_rtl): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
|
|
|
|
|
SYMBOL_REF_IN_BLOCK_P.
|
|
|
|
|
(assemble_variable): Likewise.
|
|
|
|
|
(output_constant_def_contents): Likewise.
|
|
|
|
|
(output_constant_pool): Likewise.
|
|
|
|
|
(default_encode_section_info): Preserve SYMBOL_FLAG_HAS_BLOCK_INFO
|
|
|
|
|
instead of SYMBOL_FLAG_IN_BLOCK.
|
|
|
|
|
* rtl.h (block_symbol): Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
|
|
|
|
|
SYMBOL_REF_IN_BLOCK_P.
|
|
|
|
|
(SYMBOL_REF_BLOCK): Likewise.
|
|
|
|
|
(SYMBOL_REF_OFFSET): Likewise.
|
|
|
|
|
(BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
|
|
|
|
|
SYMBOL_REF_IN_BLOCK_P.
|
|
|
|
|
(SYMBOL_FLAG_IN_BLOCK): Replace with...
|
|
|
|
|
(SYMBOL_FLAG_HAS_BLOCK_INFO): ...this.
|
|
|
|
|
(SYMBOL_REF_IN_BLOCK_P): Replace with...
|
|
|
|
|
(SYMBOL_REF_HAS_BLOCK_INFO_P): ...this.
|
|
|
|
|
|
2006-03-03 08:52:04 +01:00
|
|
|
|
2006-03-03 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* config/arm/unwind-arm.h (_Unwind_GetIPInfo): Fix pasto.
|
|
|
|
|
|
2006-03-03 06:55:02 +01:00
|
|
|
|
2006-03-02 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
|
|
* simplify-rtx.c (simplify_unary_operation): When simplifying
|
|
|
|
|
(neg (lt X 0)) into (ashiftrt X C) or (lshiftrt X C), make sure
|
|
|
|
|
that we perform the right shift in the appropriate mode, and
|
|
|
|
|
then extend or truncate the result to requested mode.
|
|
|
|
|
|
2006-03-03 01:38:20 +01:00
|
|
|
|
2006-03-03 Zdenek Dvorak <dvorakz@suse.cz>
|
|
|
|
|
|
|
|
|
|
* gengtype.c (main): Handle double_int type.
|
|
|
|
|
* tree.h (struct tree_int_cst): Make type of int_cst double_int.
|
|
|
|
|
* double-int.c: New file.
|
|
|
|
|
* double-int.h: New file.
|
|
|
|
|
* system.h: Include doubleint.h.
|
|
|
|
|
* Makefile.in (SYSTEM_H): Include double-int.h.
|
|
|
|
|
(double-int.o): Add.
|
|
|
|
|
|
2006-03-03 01:31:38 +01:00
|
|
|
|
2006-03-03 Joseph S. Myers <joseph@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR bootstrap/26478
|
|
|
|
|
* Makefile.in (stmp-int-hdrs): Remove include/unwind.h before
|
|
|
|
|
copying over it.
|
|
|
|
|
|
2006-03-03 01:07:54 +01:00
|
|
|
|
2006-03-02 Zdenek Dvorak <dvorakz@suse.cz>
|
|
|
|
|
|
2006-03-03 06:55:02 +01:00
|
|
|
|
* tree-vrp.c (remove_range_assertions): Do not update statements
|
|
|
|
|
unnecessarily.
|
2006-03-03 01:07:54 +01:00
|
|
|
|
|
2006-03-03 01:04:22 +01:00
|
|
|
|
2006-03-02 Zdenek Dvorak <dvorakz@suse.cz>
|
|
|
|
|
|
|
|
|
|
* cse.c (rest_of_handle_cse): Do not pass CLEANUP_PRE_LOOP to cfg
|
|
|
|
|
cleanup.
|
|
|
|
|
* gcse.c (rest_of_handle_gcse): Ditto.
|
|
|
|
|
* except.c (gate_handle_eh): Ditto.
|
|
|
|
|
* cfgcleanup.c (rest_of_handle_jump2): Ditto.
|
|
|
|
|
* basic-block.h (CLEANUP_PRE_LOOP): Remove.
|
|
|
|
|
|
2006-03-03 01:02:49 +01:00
|
|
|
|
2006-03-02 Eric Christopher <echristo@apple.com>
|
|
|
|
|
|
|
|
|
|
* config/i386/i386.c (machopic_output_stub): Add indirection to
|
|
|
|
|
jump.
|
|
|
|
|
|
2006-03-03 00:50:55 +01:00
|
|
|
|
2006-03-02 Zdenek Dvorak <dvorakz@suse.cz>
|
|
|
|
|
|
|
|
|
|
* loop.c: Removed.
|
|
|
|
|
|
2006-03-02 23:47:02 +01:00
|
|
|
|
2006-03-02 David S. Miller <davem@sunset.davemloft.net>
|
|
|
|
|
|
|
|
|
|
Sun Niagara specific optimizations.
|
|
|
|
|
* config.gcc: Recognize niagara as target.
|
|
|
|
|
* config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Mention Niagara.
|
|
|
|
|
(TARGET_CPU_niagara): Define.
|
|
|
|
|
(CPP_CPU64_DEFAULT_SPEC): Define __sparc_v9__ for Niagara.
|
|
|
|
|
(ASM_CPU64_DEFAULT_SPEC): Pass -Av9b for Niagara.
|
|
|
|
|
(CPP_CPU_SPEC): Handle -mcpu=niagara.
|
|
|
|
|
(ASM_CPU_SPEC): Likewise.
|
|
|
|
|
(PROCESSOR_NIAGARA): New enum entry.
|
|
|
|
|
(REGISTER_MOVE_COST): Handle Niagara.
|
|
|
|
|
(BRANCH_COST, PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES): Likewise.
|
|
|
|
|
* config/sparc/sparc.c (niagara_costs): New processor_costs entry.
|
|
|
|
|
(sparc_override_options): Recognize "niagara", set appropriate
|
|
|
|
|
default MASK_* values for it, and align functions to 32-bytes
|
|
|
|
|
by default just like ULTRASPARC/ULTRASPARC3.
|
|
|
|
|
(sparc_initialize_trampoline): Handle niagara like ultrasparc.
|
|
|
|
|
(sparc64_initialize_trampoline): Likewise.
|
|
|
|
|
(sparc_use_sched_lookahead): Use zero for niagara.
|
|
|
|
|
(sparc_issue_rate): Use one for niagara.
|
|
|
|
|
* config/sparc/niagara.md: New file.
|
|
|
|
|
* config/sparc/sparc.md: Include it.
|
|
|
|
|
* config/sparc/sol2-bi.h (CPP_CPU64_DEFAULT_SPEC,
|
|
|
|
|
ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Set appropriately
|
|
|
|
|
when default cpu is niagara.
|
|
|
|
|
(CPP_CPU_SPEC): Handle -mcpu=niagara.
|
|
|
|
|
(ASM_CPU_SPEC): Likewise.
|
|
|
|
|
* config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Set appropriately
|
|
|
|
|
when default cpu is niagara.
|
|
|
|
|
(ASM_CPU_SPEC): Handle -mcpu=niagara.
|
|
|
|
|
* config/sparc/linux64.h: Handle a default of TARGET_CPU_niagara
|
|
|
|
|
just like v9/ultrasparc/ultrasparc3.
|
|
|
|
|
* doc/invoke.texi: Add documentation for "niagara" and improve
|
|
|
|
|
existing documentation for ultrasparc variants.
|
2006-03-03 01:02:49 +01:00
|
|
|
|
|
2006-03-02 22:55:45 +01:00
|
|
|
|
2006-03-02 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
* tree-ssa-operands.c (update_stmt_operands): Update documentation.
|
|
|
|
|
|
tm.texi (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Document.
* doc/tm.texi (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Document.
(ASM_OUTPUT_BSS): Describe the two ways of handling global BSS,
and say that only one is needed.
* doc/rtl.texi (SYMBOL_REF_BLOCK): Say that the block can be null.
* target.h (have_switchable_bss_sections): New hook.
* explow.c (use_anchored_address): Check that the symbol is in a block.
* varasm.c (tls_comm_section, comm_section, lcomm_section)
(bss_noswitch_section): New variables.
(get_unnamed_section): Add SECTION_UNNAMED to the flags.
(get_noswitch_section): New function.
(get_block_for_section): Allow SECT to be null.
(unlikely_text_section_p): Use SECTION_STYLE.
(bss_initializer_p): New function.
(get_variable_section): Move earlier in file. Take a new argument,
prefer_noswitch_p. Move bss checks from assemble_variable to here.
Return one of the new *_sections in such cases.
(get_block_for_decl): New function, extracting some logic from
use_blocks_for_decl_p.
(change_symbol_section): Remove in favor of...
(change_symbol_block): ...this new function.
(use_blocks_for_decl_p): Remove checks now performed by
get_block_for_decl.
(make_decl_rtl): Use change_symbol_block and get_block_for_decl.
(ASM_EMIT_LOCAL, ASM_EMIT_BSS, ASM_EMIT_COMMON): Delete in favor of...
(emit_local, emit_bss, emit_common): ...these new functions.
Return true if the alignment was honored.
(emit_tls_common): New function.
(asm_emit_uninitialised): Delete.
(assemble_variable_noswitch): New function, split out from...
(assemble_variable): ...here. Don't make decisions about common
variables here. Globalize all public decls that go into non-common
sections. Check whether SYMBOL_REF_BLOCK is null.
(output_constant_def_contents): Check whether SYMBOL_REF_BLOCK is null.
(output_constant_pool): Likewise.
(init_varasm_once): Initialize the new section variables.
(have_global_bss_p): New function.
(categorize_decl_for_section): Use bss_initializer_p.
(switch_to_section): Use SECTION_STYLE. Abort for SECTION_NOSWITCH.
(place_block_symbol): Assert that the symbol must be in a block.
* target-def.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): New macro.
(TARGET_INITIALIZER): Include it.
* rtl.h (SYMBOL_REF_BLOCK): Document the null alternative.
* output.h (SECTION_STYLE_MASK, SECTION_COMMON): New macros.
(SECTION_MACH_DEP): Bump by two.
(SECTION_UNNAMED, SECTION_NOSWITCH): New macros.
(unnamed_section): Mention SECTION_UNNAMED in comment.
(named_section): Likewise SECTION_NAMED.
(noswitch_section_callback): New type.
(noswitch_section): New structure.
(section): Add a noswitch_section alternative.
(SECTION_STYLE): New macro.
(tls_comm_section, comm_section, lcomm_section): Declare.
(bss_noswitch_section, have_global_bss_p): Declare.
* config/elfos.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
* config/iq2000/iq2000.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
Override.
* config/v850/v850.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
* config/stormy16/stormy16.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
Override.
cp/
* decl.c (start_decl): Use have_global_bss_p when deciding
whether to make the decl common.
ada/
* utils.c (create_var_decl): Use have_global_bss_p when deciding
whether to make the decl common.
From-SVN: r111644
2006-03-02 20:32:52 +01:00
|
|
|
|
2006-03-02 Richard Sandiford <richard@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* doc/tm.texi (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Document.
|
|
|
|
|
(ASM_OUTPUT_BSS): Describe the two ways of handling global BSS,
|
|
|
|
|
and say that only one is needed.
|
|
|
|
|
* doc/rtl.texi (SYMBOL_REF_BLOCK): Say that the block can be null.
|
|
|
|
|
* target.h (have_switchable_bss_sections): New hook.
|
|
|
|
|
* explow.c (use_anchored_address): Check that the symbol is in a block.
|
|
|
|
|
* varasm.c (tls_comm_section, comm_section, lcomm_section)
|
|
|
|
|
(bss_noswitch_section): New variables.
|
|
|
|
|
(get_unnamed_section): Add SECTION_UNNAMED to the flags.
|
|
|
|
|
(get_noswitch_section): New function.
|
|
|
|
|
(get_block_for_section): Allow SECT to be null.
|
|
|
|
|
(unlikely_text_section_p): Use SECTION_STYLE.
|
|
|
|
|
(bss_initializer_p): New function.
|
|
|
|
|
(get_variable_section): Move earlier in file. Take a new argument,
|
|
|
|
|
prefer_noswitch_p. Move bss checks from assemble_variable to here.
|
|
|
|
|
Return one of the new *_sections in such cases.
|
|
|
|
|
(get_block_for_decl): New function, extracting some logic from
|
|
|
|
|
use_blocks_for_decl_p.
|
|
|
|
|
(change_symbol_section): Remove in favor of...
|
|
|
|
|
(change_symbol_block): ...this new function.
|
|
|
|
|
(use_blocks_for_decl_p): Remove checks now performed by
|
|
|
|
|
get_block_for_decl.
|
|
|
|
|
(make_decl_rtl): Use change_symbol_block and get_block_for_decl.
|
|
|
|
|
(ASM_EMIT_LOCAL, ASM_EMIT_BSS, ASM_EMIT_COMMON): Delete in favor of...
|
|
|
|
|
(emit_local, emit_bss, emit_common): ...these new functions.
|
|
|
|
|
Return true if the alignment was honored.
|
|
|
|
|
(emit_tls_common): New function.
|
|
|
|
|
(asm_emit_uninitialised): Delete.
|
|
|
|
|
(assemble_variable_noswitch): New function, split out from...
|
|
|
|
|
(assemble_variable): ...here. Don't make decisions about common
|
|
|
|
|
variables here. Globalize all public decls that go into non-common
|
|
|
|
|
sections. Check whether SYMBOL_REF_BLOCK is null.
|
|
|
|
|
(output_constant_def_contents): Check whether SYMBOL_REF_BLOCK is null.
|
|
|
|
|
(output_constant_pool): Likewise.
|
|
|
|
|
(init_varasm_once): Initialize the new section variables.
|
|
|
|
|
(have_global_bss_p): New function.
|
|
|
|
|
(categorize_decl_for_section): Use bss_initializer_p.
|
|
|
|
|
(switch_to_section): Use SECTION_STYLE. Abort for SECTION_NOSWITCH.
|
|
|
|
|
(place_block_symbol): Assert that the symbol must be in a block.
|
|
|
|
|
* target-def.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): New macro.
|
|
|
|
|
(TARGET_INITIALIZER): Include it.
|
|
|
|
|
* rtl.h (SYMBOL_REF_BLOCK): Document the null alternative.
|
|
|
|
|
* output.h (SECTION_STYLE_MASK, SECTION_COMMON): New macros.
|
|
|
|
|
(SECTION_MACH_DEP): Bump by two.
|
|
|
|
|
(SECTION_UNNAMED, SECTION_NOSWITCH): New macros.
|
|
|
|
|
(unnamed_section): Mention SECTION_UNNAMED in comment.
|
|
|
|
|
(named_section): Likewise SECTION_NAMED.
|
|
|
|
|
(noswitch_section_callback): New type.
|
|
|
|
|
(noswitch_section): New structure.
|
|
|
|
|
(section): Add a noswitch_section alternative.
|
|
|
|
|
(SECTION_STYLE): New macro.
|
|
|
|
|
(tls_comm_section, comm_section, lcomm_section): Declare.
|
|
|
|
|
(bss_noswitch_section, have_global_bss_p): Declare.
|
|
|
|
|
* config/elfos.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
|
|
|
|
|
* config/iq2000/iq2000.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
|
|
|
|
|
Override.
|
|
|
|
|
* config/v850/v850.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
|
|
|
|
|
* config/stormy16/stormy16.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
|
|
|
|
|
Override.
|
|
|
|
|
|
2006-03-02 20:00:11 +01:00
|
|
|
|
2006-03-02 Daniel Berlin <dberlin@dberlin.org>
|
|
|
|
|
|
|
|
|
|
* gcc/tree-vrp.c (execute_vrp): Return value.
|
|
|
|
|
* gcc/regrename.c (rest_of_handle_regrename): Ditto.
|
|
|
|
|
* gcc/tree-into-ssa.c (rewrite_into_ssa): Ditto.
|
|
|
|
|
* gcc/tree-complex.c (tree_lower_complex): Ditto.
|
|
|
|
|
(tree_lower_complex_O0): Ditto.
|
|
|
|
|
* gcc/tracer.c (rest_of_handle_tracer): Ditto.
|
|
|
|
|
* gcc/postreload-gcse.c (rest_of_handle_gcse2): Ditto.
|
|
|
|
|
* gcc/postreload.c (rest_of_handle_postreload): Ditto.
|
|
|
|
|
* gcc/tree-tailcall.c (execute_tail_recursion): Ditto.
|
|
|
|
|
(execute_tail_calls): Ditto.
|
|
|
|
|
* gcc/tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
|
|
|
|
|
* gcc/tree.h (init_function_for_compilation): Ditto.
|
|
|
|
|
* gcc/ipa-cp.c (ipcp_driver): Ditto.
|
|
|
|
|
* gcc/tree-scalar-evolution.c (scev_const_prop): Ditto.
|
|
|
|
|
* gcc/tree-scalar-evolution.h (scev_const_prop): Ditto.
|
|
|
|
|
* gcc/final.c (compute_alignments): Ditto.
|
|
|
|
|
(rest_of_handle_final): Ditto.
|
|
|
|
|
(rest_of_handle_shorten_branches): Ditto.
|
|
|
|
|
(rest_of_clean_state): Ditto.
|
|
|
|
|
* gcc/omp-low.c (execute_expand_omp): Ditto.
|
|
|
|
|
(execute_lower_omp): Ditto.
|
|
|
|
|
* gcc/tree-ssa-dse.c (tree_ssa_dse): Ditto.
|
|
|
|
|
* gcc/ipa-reference.c (static_execute): Ditto.
|
|
|
|
|
* gcc/tree-ssa-uncprop.c (tree_ssa_uncprop): Ditto.
|
|
|
|
|
* gcc/reorg.c (rest_of_handle_delay_slots): Ditto.
|
|
|
|
|
(rest_of_handle_machine_reorg): Ditto.
|
|
|
|
|
* gcc/cgraphunit.c (rebuild_cgraph_edges): Ditto.
|
|
|
|
|
* gcc/flow.c (recompute_reg_usage): Ditto.
|
|
|
|
|
(rest_of_handle_remove_death_notes): Ditto.
|
|
|
|
|
(rest_of_handle_life): Ditto.
|
|
|
|
|
(rest_of_handle_flow2): Ditto.
|
|
|
|
|
* gcc/tree-ssa-copyrename.c (rename_ssa_copies): Ditto.
|
|
|
|
|
* gcc/tree-ssa-ccp.c (do_ssa_ccp): Ditto.
|
|
|
|
|
(do_ssa_store_ccp): Ditto.
|
|
|
|
|
(execute_fold_all_builtins): Ditto.
|
|
|
|
|
* gcc/mode-switching.c (rest_of_handle_mode_switching): Ditto.
|
|
|
|
|
* gcc/modulo-sched.c (rest_of_handle_sms): Ditto.
|
|
|
|
|
* gcc/ipa-pure-const.c (static_execute): Ditto.
|
|
|
|
|
* gcc/cse.c (rest_of_handle_cse): Ditto.
|
|
|
|
|
(rest_of_handle_cse2): Ditto.
|
|
|
|
|
* gcc/web.c (rest_of_handle_web): Ditto.
|
|
|
|
|
* gcc/tree-stdarg.c (execute_optimize_stdarg): Ditto.
|
|
|
|
|
* gcc/tree-ssa-math-opts.c (execute_cse_reciprocals): Ditto.
|
|
|
|
|
* gcc/tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto.
|
|
|
|
|
* gcc/tree-nrv.c (tree_nrv): Ditto.
|
|
|
|
|
(execute_return_slot_opt): Ditto.
|
|
|
|
|
* gcc/tree-ssa-alias.c (compute_may_aliases): Ditto.
|
|
|
|
|
(create_structure_vars): Ditto.
|
|
|
|
|
* gcc/loop-init.c (rtl_loop_init): Ditto.
|
|
|
|
|
(rtl_loop_done): Ditto.
|
|
|
|
|
(rtl_move_loop_invariants): Ditto.
|
|
|
|
|
(rtl_unswitch): Ditto.
|
|
|
|
|
(rtl_unroll_and_peel_loops): Ditto.
|
|
|
|
|
(rtl_doloop): Ditto.
|
|
|
|
|
* gcc/gimple-low.c (lower_function_body): Ditto.
|
|
|
|
|
(mark_used_blocks): Ditto.
|
|
|
|
|
* gcc/tree-ssa-sink.c (execute_sink_code): Ditto.
|
|
|
|
|
* gcc/ipa-inline.c (cgraph_decide_inlining): Ditto.
|
|
|
|
|
(cgraph_early_inlining): Ditto.
|
|
|
|
|
* gcc/global.c (rest_of_handle_global_alloc): Ditto.
|
|
|
|
|
* gcc/jump.c (cleanup_barriers): Ditto.
|
|
|
|
|
(purge_line_number_notes): Ditto.
|
|
|
|
|
* gcc/ifcvt.c (rest_of_handle_if_conversion): Ditto.
|
|
|
|
|
(rest_of_handle_if_after_reload): Ditto.
|
|
|
|
|
* gcc/tree-ssa-loop.c (tree_ssa_loop_init): Ditto.
|
|
|
|
|
(tree_ssa_loop_im): Ditto.
|
|
|
|
|
(tree_ssa_loop_unswitch): Ditto.
|
|
|
|
|
(tree_vectorize): Ditto.
|
|
|
|
|
(tree_linear_transform): Ditto.
|
|
|
|
|
(tree_ssa_loop_ivcanon): Ditto.
|
|
|
|
|
(tree_ssa_empty_loop): Ditto.
|
|
|
|
|
(tree_ssa_loop_bounds): Ditto.
|
|
|
|
|
(tree_complete_unroll): Ditto.
|
|
|
|
|
(tree_ssa_loop_prefetch): Ditto.
|
|
|
|
|
(tree_ssa_loop_ivopts): Ditto.
|
|
|
|
|
(tree_ssa_loop_done): Ditto.
|
|
|
|
|
* gcc/predict.c (tree_estimate_probability): Ditto.
|
|
|
|
|
* gcc/recog.c (split_all_insns_noflow): Ditto.
|
|
|
|
|
(rest_of_handle_peephole2): Ditto.
|
|
|
|
|
(rest_of_handle_split_all_insns): Ditto.
|
|
|
|
|
* gcc/tree-eh.c (lower_eh_constructs): Ditto.
|
|
|
|
|
* gcc/regmove.c (rest_of_handle_regmove): Ditto.
|
|
|
|
|
(rest_of_handle_stack_adjustments): Ditto.
|
|
|
|
|
* gcc/local-alloc.c (rest_of_handle_local_alloc): Ditto.
|
|
|
|
|
* gcc/function.c (instantiate_virtual_regs): Ditto.
|
|
|
|
|
(init_function_for_compilation): Ditto.
|
|
|
|
|
(rest_of_handle_check_leaf_regs): Ditto.
|
|
|
|
|
* gcc/gcse.c (rest_of_handle_jump_bypass): Ditto.
|
|
|
|
|
(rest_of_handle_gcse): Ditto.
|
|
|
|
|
* gcc/ipa-type-escape.c (type_escape_execute): Ditto.
|
|
|
|
|
* gcc/alias.c (rest_of_handle_cfg): Ditto.
|
|
|
|
|
* gcc/tree-if-conv.c (main_tree_if_conversion): Ditto.
|
|
|
|
|
* gcc/profile.c (rest_of_handle_branch_prob): Ditto.
|
|
|
|
|
* gcc/tree-ssa-phiopt.c (tree_ssa_phiopt): Ditto.
|
|
|
|
|
* gcc/rtl-factoring.c (rest_of_rtl_seqabstr): Ditto.
|
|
|
|
|
* gcc/bt-load.c (rest_of_handle_branch_target_load_optimize): Ditto
|
|
|
|
|
* gcc/tree-dfa.c (find_referenced_vars): Ditto.
|
|
|
|
|
* gcc/except.c (set_nothrow_function_flags): Ditto.
|
|
|
|
|
(convert_to_eh_region_ranges): Ditto.
|
|
|
|
|
(rest_of_handle_eh): Ditto.
|
|
|
|
|
* gcc/emit-rtl.c (unshare_all_rtl): Ditto.
|
|
|
|
|
(remove_unnecessary_notes): Ditto.
|
|
|
|
|
* gcc/except.h (set_nothrow_function_flags): Ditto.
|
|
|
|
|
(convert_to_eh_region_ranges): Ditto.
|
|
|
|
|
* gcc/cfgexpand.c (tree_expand_cfg): Ditto.
|
|
|
|
|
* gcc/tree-cfgcleanup.c (merge_phi_nodes): Ditto.
|
|
|
|
|
* gcc/tree-ssa-pre.c (do_pre): Ditto.
|
|
|
|
|
(execute_fre): Ditto.
|
|
|
|
|
* gcc/cfgcleanup.c (rest_of_handle_jump): Ditto.
|
|
|
|
|
(rest_of_handle_jump2): Ditto.
|
|
|
|
|
* gcc/tree-sra.c (tree_sra): Ditto.
|
|
|
|
|
* gcc/tree-mudflap.c (execute_mudflap_function_ops): Ditto.
|
|
|
|
|
(execute_mudflap_function_decls): Ditto.
|
|
|
|
|
* gcc/tree-ssa-copy.c (do_copy_prop): Ditto.
|
|
|
|
|
(do_store_copy_prop): Ditto.
|
|
|
|
|
* gcc/ipa-prop.h (ipcp_driver): Ditto.
|
|
|
|
|
* gcc/cfglayout.c (insn_locators_initialize): Ditto.
|
|
|
|
|
* gcc/tree-ssa-forwprop.c
|
|
|
|
|
(tree_ssa_forward_propagate_single_use_vars): Ditto.
|
|
|
|
|
* gcc/cfglayout.h (insn_locators_initialize): Ditto.
|
|
|
|
|
* gcc/tree-ssa-dce.c (tree_ssa_dce): Ditto.
|
|
|
|
|
* gcc/tree-ssa.c (execute_early_warn_uninitialized): Ditto.
|
|
|
|
|
(execute_late_warn_uninitialized): Ditto.
|
|
|
|
|
* gcc/rtl.h (cleanup_barriers): Ditto.
|
|
|
|
|
(split_all_insns_noflow): Ditto.
|
|
|
|
|
(purge_line_number_notes): Ditto.
|
|
|
|
|
(unshare_all_rtl): Ditto.
|
|
|
|
|
(remove_unnecessary_notes): Ditto.
|
|
|
|
|
(recompute_reg_usage): Ditto.
|
|
|
|
|
(variable_tracking_main): Ditto.
|
|
|
|
|
* gcc/integrate.c (emit_initial_value_sets): Ditto.
|
|
|
|
|
* gcc/integrate.h (emit_initial_value_sets): Ditto.
|
|
|
|
|
* gcc/tree-optimize.c (execute_free_datastructures): Ditto
|
|
|
|
|
(execute_free_cfg_annotations): Ditto.
|
|
|
|
|
(execute_fixup_cfg): Ditto.
|
|
|
|
|
(execute_cleanup_cfg_pre_ipa): Ditto.
|
|
|
|
|
(execute_cleanup_cfg_post_optimizing): Ditto.
|
|
|
|
|
(execute_init_datastructures): Ditto.
|
|
|
|
|
* gcc/tree-object-size.c (compute_object_sizes): Ditto.
|
|
|
|
|
* gcc/combine.c (rest_of_handle_combine): Ditto.
|
|
|
|
|
* gcc/tree-outof-ssa.c (rewrite_out_of_ssa): Ditto.
|
|
|
|
|
* gcc/bb-reorder.c (duplicate_computed_gotos): Ditto.
|
|
|
|
|
(rest_of_handle_reorder_blocks): Ditto.
|
|
|
|
|
(rest_of_handle_partition_blocks): Ditto.
|
|
|
|
|
* gcc/var-tracking.c (variable_tracking_main): Ditto.
|
|
|
|
|
* gcc/tree-profile.c (tree_profiling): Ditto.
|
|
|
|
|
* gcc/tree-vect-generic.c (expand_vector_operations): Ditto.
|
|
|
|
|
* gcc/reg-stack.c (rest_of_handle_stack_regs): Ditto.
|
|
|
|
|
* gcc/sched-rgn.c (rest_of_handle_sched): Ditto.
|
|
|
|
|
(rest_of_handle_sched2): Ditto.
|
|
|
|
|
* gcc/basic-block.h (free_bb_insn): Ditto.
|
|
|
|
|
* gcc/tree-ssa-structalias.c (ipa_pta_execute): Ditto.
|
|
|
|
|
* gcc/tree-cfg.c (execute_build_cfg): Ditto.
|
|
|
|
|
(remove_useless_stmts): Ditto.
|
|
|
|
|
(split_critical_edges): Ditto.
|
|
|
|
|
(execute_warn_function_return): Ditto.
|
|
|
|
|
(execute_warn_function_noreturn): Ditto.
|
|
|
|
|
* gcc/tree-ssa-reassoc.c (execute_reassoc): Ditto.
|
|
|
|
|
* gcc/cfgrtl.c (free_bb_for_insn): Ditto.
|
|
|
|
|
* gcc/passes.c (execute_one_pass): Run additional
|
|
|
|
|
todos returned by execute function.
|
|
|
|
|
* gcc/tree-pass.h (struct tree_opt_pass): Make execute
|
|
|
|
|
return a value.
|
|
|
|
|
|
2006-03-02 16:47:03 +01:00
|
|
|
|
2006-03-02 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
* tree-ssa-alias.c (find_used_portions): Consider taking
|
|
|
|
|
the address as making the variable not write-only.
|
|
|
|
|
|
2006-03-02 11:01:21 +01:00
|
|
|
|
2006-03-02 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* config.gcc (default_use_cxa_atexit): Extend the description of
|
|
|
|
|
this configure variable. Set its default value to "yes" for
|
|
|
|
|
Linux, NetBSD and ELF targets on the assumption that they will
|
|
|
|
|
use C libraries with the __cxa_atexit function.
|
|
|
|
|
|
2006-03-02 05:43:44 +01:00
|
|
|
|
2006-03-02 Ben Elliston <bje@au.ibm.com>
|
|
|
|
|
|
|
|
|
|
* config/rs6000/linux-unwind.h (frob_update_context): Mark `fs'
|
|
|
|
|
parameter as unused to suppress a build warning.
|
|
|
|
|
|
2006-03-02 05:23:22 +01:00
|
|
|
|
2006-03-02 Ben Elliston <bje@au.ibm.com>
|
|
|
|
|
|
|
|
|
|
* mklibgcc.in: Depend on config/dfp-bit.h in rules that compile
|
|
|
|
|
config/dfp-bit.c.
|
|
|
|
|
|
2006-03-02 03:47:40 +01:00
|
|
|
|
2006-03-01 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
|
|
PR other/26489
|
|
|
|
|
* gthr-posix.h (__gthrw2): Define to take three parameters, the
|
|
|
|
|
declared name, the weak reference name, and the typeof name.
|
|
|
|
|
(__gthrw): Avoid expanding the declared name suffix.
|
|
|
|
|
(__gthrw3): New Tru64 specific macro to simplify the OSF/1 decls.
|
|
|
|
|
|
dwarf2.h (DW_TAG_condition, [...]): New constants from DWARF 3.
* dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants
from DWARF 3.
(DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale,
DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count,
DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled,
DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity,
DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New.
(DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New.
(DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited,
DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New.
(DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch,
DW_DS_leading_separate, DW_DS_trailing_separate): New.
(DW_END_default, DW_END_big, DW_END_little): New.
(DW_END_lo_user, DW_END_hi_user): Define.
(DW_LNE_lo_user, DW_LNE_hi_user): Define.
(DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New.
(DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC,
DW_LANG_D): New.
From-SVN: r111620
2006-03-02 00:26:13 +01:00
|
|
|
|
2006-03-01 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants
|
|
|
|
|
from DWARF 3.
|
|
|
|
|
(DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale,
|
|
|
|
|
DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count,
|
|
|
|
|
DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled,
|
|
|
|
|
DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity,
|
|
|
|
|
DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New.
|
|
|
|
|
(DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New.
|
|
|
|
|
(DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited,
|
|
|
|
|
DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New.
|
|
|
|
|
(DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch,
|
|
|
|
|
DW_DS_leading_separate, DW_DS_trailing_separate): New.
|
|
|
|
|
(DW_END_default, DW_END_big, DW_END_little): New.
|
|
|
|
|
(DW_END_lo_user, DW_END_hi_user): Define.
|
|
|
|
|
(DW_LNE_lo_user, DW_LNE_hi_user): Define.
|
|
|
|
|
(DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New.
|
|
|
|
|
(DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC,
|
|
|
|
|
DW_LANG_D): New.
|
|
|
|
|
|
2006-03-01 23:35:42 +01:00
|
|
|
|
2006-03-01 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
* tree.def (SYMBOL_MEMORY_TAG): Rename from TYPE_MEMORY_TAG.
|
|
|
|
|
Update all users.
|
|
|
|
|
* tree-pass.h (PROP_smt_usage): Rename from PROP_tmt_usage.
|
|
|
|
|
Update all users.
|
|
|
|
|
(TODO_update_smt_usage): Rename from TODO_update_tmt_usage.
|
|
|
|
|
Update all users.
|
|
|
|
|
* tree.h (SMT_USED_ALONE): Rename from TMT_USED_ALONE.
|
|
|
|
|
Update all users.
|
|
|
|
|
* tree-flow.h (struct var_ann_d): Rename field 'type_mem_tag'
|
|
|
|
|
to 'symbol_mem_tag'.
|
|
|
|
|
Update all users.
|
|
|
|
|
* doc/tree-ssa.texi: Update documentation to reflect TMT->SMT
|
|
|
|
|
rename.
|
|
|
|
|
|
2006-03-01 22:39:28 +01:00
|
|
|
|
2006-03-01 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
|
|
* builtins.c (fold_builtin_copysign): Delete unreachable code.
|
|
|
|
|
|
2006-03-01 20:28:22 +01:00
|
|
|
|
2006-03-01 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
|
|
PR target/25761
|
|
|
|
|
* config/darwin.h (MACHOPIC_JUST_INDIRECT): Check just
|
|
|
|
|
MACHO_DYNAMIC_NO_PIC_P.
|
|
|
|
|
(MACHOPIC_PURE): Check flag_pic and not MACHO_DYNAMIC_NO_PIC_P.
|
|
|
|
|
|
2006-03-01 20:12:22 +01:00
|
|
|
|
2006-03-01 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
|
|
PR target/26389
|
|
|
|
|
* config/darwin-protos.h (darwin_asm_output_anchor):
|
|
|
|
|
Declare.
|
|
|
|
|
* config/darwin-sections.def (cstring_section):
|
|
|
|
|
Add SECTION_MERGE to the flags.
|
|
|
|
|
(literal4_section): Likewise.
|
|
|
|
|
(literal8_section): Likewise.
|
|
|
|
|
(objc_selector_refs_section): Likewise.
|
|
|
|
|
(objc_cls_refs_section): Likewise.
|
|
|
|
|
* config/darwin.c (darwin_asm_output_anchor): New
|
|
|
|
|
function.
|
|
|
|
|
* config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
|
|
|
|
|
|
2006-03-01 18:46:56 +01:00
|
|
|
|
2006-03-01 Daniel Berlin <dberlin@dberlin.org>
|
2006-03-01 23:35:42 +01:00
|
|
|
|
|
2006-03-01 18:46:56 +01:00
|
|
|
|
Fix PR tree-optimization/26443
|
|
|
|
|
* tree-vrp.c (pass_vrp): Add TODO_update_tmt_usage
|
|
|
|
|
to todo and PROP_tmt_usage to properties_destroyed.
|
|
|
|
|
* tree-ssa-ccp.c (pass_ccp): Ditto.
|
|
|
|
|
(pass_store_ccp): Ditto.
|
|
|
|
|
* tree-ssa-dom.c (pass_dominator): Ditto.
|
|
|
|
|
|
2006-03-01 17:07:47 +01:00
|
|
|
|
2006-03-01 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
* tree-ssa-operands.c: Cleanup whitespace.
|
|
|
|
|
(get_asm_expr_operands): Move before first invocation.
|
|
|
|
|
(get_indirect_ref_operands): Likewise.
|
|
|
|
|
(get_tmr_operands): Likewise.
|
|
|
|
|
(get_call_expr_operands): Likewise.
|
|
|
|
|
(append_def): Likewise.
|
|
|
|
|
(append_use): Likewise.
|
|
|
|
|
(append_v_may_def): Likewise.
|
|
|
|
|
(append_v_must_def): Likewise.
|
|
|
|
|
(add_call_clobber_ops): Likewise.
|
|
|
|
|
(add_call_read_ops): Likewise.
|
|
|
|
|
(add_stmt_operand): Likewise.
|
|
|
|
|
(add_virtual_operand): Likewise.
|
|
|
|
|
(build_ssa_operands): Likewise.
|
|
|
|
|
|
|
|
|
|
2006-03-01 Andrew Pinski <pinskia@physics.uc.edu>
|
2006-03-01 16:15:38 +01:00
|
|
|
|
|
|
|
|
|
PR middle-end/26022
|
|
|
|
|
Revert:
|
|
|
|
|
PR middle-end/24437
|
|
|
|
|
* tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
|
|
|
|
|
with a call expr to ...
|
|
|
|
|
* fold-const.c (fold_ternary) <case CALL_EXPR>: Here.
|
|
|
|
|
|
2006-03-01 13:44:57 +01:00
|
|
|
|
2006-03-01 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
* tree-vrp.c (extract_range_from_assert): Remove special
|
|
|
|
|
handling for types with super-types.
|
|
|
|
|
|
2006-03-01 06:14:24 +01:00
|
|
|
|
2006-03-01 Ben Elliston <bje@au.ibm.com>
|
|
|
|
|
|
2006-03-01 06:18:57 +01:00
|
|
|
|
* config.gcc: Add t-dfprules to $tmake_file for powerpc-*-linux*
|
|
|
|
|
and powerpc64-*-linux* configurations.
|
|
|
|
|
* config/t-dfprules: New file.
|
|
|
|
|
|
2006-03-01 06:14:24 +01:00
|
|
|
|
* mklibgcc.in: Add logic to handle $DFP_ENABLE and $DFP_CFLAGS.
|
|
|
|
|
Compile dfp-bit.c from the source directory using -DWIDTH and
|
|
|
|
|
$DFP_CFLAGS to control the compilation of that file, rather than
|
|
|
|
|
generating width-specific versions in the build directory.
|
|
|
|
|
* Makefile.in (libgcc.mk): Pass down DFP_ENABLE and DFP_CFLAGS.
|
|
|
|
|
(LIBGCC_DEPS): Replace $(D32PBIT) et al with config/dfp-bit.[hc].
|
|
|
|
|
|
2006-03-01 05:43:47 +01:00
|
|
|
|
2006-02-28 Zack Weinberg <zackw@panix.com>
|
|
|
|
|
|
|
|
|
|
* doc/md.texi: Avoid use of @headitem so that makeinfo <4.7
|
|
|
|
|
continues to work.
|
|
|
|
|
|
2006-03-01 01:02:14 +01:00
|
|
|
|
2006-02-28 Eric Christopher <echristo@apple.com>
|
|
|
|
|
|
|
|
|
|
* config/rs6000/darwin.h (ENABLE_STACK_EXECUTE): Define.
|
|
|
|
|
Set up IN_LIBGCC definition of TARGET_64BIT.
|
|
|
|
|
* config/i386/darwin.h (ENABLE_STACK_EXECUTE): Define.
|
|
|
|
|
|
2006-02-28 22:31:29 +01:00
|
|
|
|
2006-02-28 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/14752
|
|
|
|
|
* c-common.c (c_common_truthvalue_conversion) <MINUS_EXPR,
|
|
|
|
|
BIT_XOR_EXPR, BIT_AND_EXPR>: Delete. Let fold optimize these
|
|
|
|
|
cases via the construction of "expr != 0".
|
|
|
|
|
|
2006-02-28 22:01:20 +01:00
|
|
|
|
2006-02-28 Steven Bosscher <stevenb.gcc@gmail.com>
|
|
|
|
|
|
|
|
|
|
* alias.c (alias_invariant, alias_invariant_size): Remove.
|
|
|
|
|
(record_base_value): Remove.
|
|
|
|
|
(memrefs_conflict_p): Don't look at alias_invariant.
|
|
|
|
|
(end_alias_analysis): Don't free it.
|
|
|
|
|
* alias.h (record_base_value): Remove prototype.
|
|
|
|
|
|
2006-02-28 21:32:20 +01:00
|
|
|
|
2006-02-28 Paolo Bonzini <bonzini@gnu.org>
|
|
|
|
|
Adam Nemet <anemet@caviumnetworks.com>
|
|
|
|
|
|
|
|
|
|
* rtl.h (truncated_to_mode): Declare it.
|
|
|
|
|
(struct rtl_hooks): Add reg_truncated_to_mode hook.
|
|
|
|
|
* rtlhooks-def.h (RTL_HOOKS_REG_TRUNCATED_TO_MODE): New macro.
|
|
|
|
|
(RTL_HOOKS_INITIALIZER): Include it.
|
|
|
|
|
* rtlhooks.c (reg_truncated_to_mode_general): New function.
|
|
|
|
|
* combine.c (RTL_HOOKS_REG_TRUNCATED_TO_MODE): Override to
|
|
|
|
|
reg_truncated_to_mode.
|
|
|
|
|
* rtlanal.c (truncated_to_mode): Define it.
|
|
|
|
|
* simplify-rtx.c (simplify_unary_operation_1): Use it.
|
|
|
|
|
|
2006-02-28 17:44:33 +01:00
|
|
|
|
2006-02-28 Jeff Law <law@redhat.com>
|
|
|
|
|
|
2006-02-28 17:49:12 +01:00
|
|
|
|
* tree-chrec.c (chrec_convert_aggressive): Do not eliminate
|
|
|
|
|
conversions where TYPE_MIN_VALUE/TYPE_MAX_VALUE do not cover
|
|
|
|
|
the range allowed by TYPE_PRECISION.
|
|
|
|
|
|
2006-02-28 17:44:33 +01:00
|
|
|
|
* tree.h (strct phi_arg_d): Remove unused NONZERO field.
|
|
|
|
|
|
2006-02-28 08:41:47 +01:00
|
|
|
|
2006-02-28 Dorit Nuzman <dorit@il.ibm.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/26419
|
|
|
|
|
* doc/invoke.texi (ftree-vectorizer-verbose): Add information on
|
|
|
|
|
values of n.
|
|
|
|
|
|
2006-02-28 07:04:09 +01:00
|
|
|
|
2006-02-27 Zack Weinberg <zackw@panix.com>
|
|
|
|
|
|
|
|
|
|
* doc/md.texi: Fix typo in previous change.
|
|
|
|
|
|
2006-02-28 04:54:01 +01:00
|
|
|
|
2006-02-27 Kenneth Zadeck <zadeck@naturalbridge.com>
|
|
|
|
|
|
|
|
|
|
* df.c: Remove.
|
|
|
|
|
|
* rtl.def (define_constraint, define_register_constraint)
(define_memory_constraint, define_address_constraint): New MD forms.
* gensupport.c (process_rtx): Put define_constraint etc on the
predicate queue.
* genpreds.c (process_define_predicate): Adjust comment. Validate
the name, and call validate_exp to validate the expression.
(mark_mode_tests, write_extract_subexp): Can assume correct input.
(write_predicate_expr): Likewise. NAME argument no longer necessary;
all callers changed.
(validate_exp, needs_variable, struct constraint_data)
(constraints_by_letter_table, first_constraint, last_constraint_ptr)
(FOR_ALL_CONSTRAINTS, generic_constraint_letters, const_int_constraints)
(const_dbl_constraints, constraint_max_namelen)
(have_register_constraints, have_memory_constraints)
(have_address_constraints, have_address_constraints)
(have_extra_constraints, have_const_int_constraints)
(have_const_dbl_constraints, mangle, add_constraint)
(process_define_constraint, process_define_register_constraint)
(write_enum_constraint_num, write_lookup_constraint)
(write_insn_constraint_len, write_regclass_for_constraint)
(write_constraint_satisfied_p, write_insn_const_int_ok_for_constraint)
(write_insn_extra_memory_constraint)
(write_insn_extra_address_constraint)
(write_satisfies_constraint_fns): New.
(write_tm_preds_h): If we have new-style constraint definitions,
prototype the functions generated from them, and define the
old constraint interface (still used by generic code) in terms of
those functions.
(write_insn_preds_c): If we have new-style constraint definitions,
generate all relevant functions from those definitions.
(main): Handle define_constraint etc.
* genoutput.c (struct constraint_data, indep_constraints)
(mdep_constraint_letters, constraints_by_letter_table, note_constraint)
(mdep_constraint_len): New data structures and functions, defined
#ifdef USE_MD_CONSTRAINTS.
(check_constraint_len): Don't define #ifdef USE_MD_CONSTRAINTS.
(validate_insn_alternatives): If USE_MD_CONSTRAINTS is defined,
use new logic to validate operand constraints against constraint
definitions.
(main): Process define_constraint etc. if USE_MD_CONSTRAINTS is
defined.
* defaults.h: If none of the old-style constraint macros are
defined, define USE_MD_CONSTRAINTS; do not provide defaults for any
old-style macros; and poison REG_CLASS_FROM_LETTER,
CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P, and
EXTRA_CONSTRAINT.
* recog.c (reg_fits_class_p): If cl is NO_REGS, return 0 immediately.
* doc/md.texi: Document new constraint-definition mechanism and the
C interface it provides. Remove references to old mechanism
elsewhere in the document.
(Machine Constraints): Use pathnames relative to gcc directory,
i.e. config/ARCH/FILE. Change i386 section to refer to
config/i386/predicates.md; update that section to match docstrings.
* doc/tm.texi: Move all documentation of the old constraint-
definition macros to their own section, clearly mark as obsolete.
* config/i386/predicates.md (R, q, Q, l, a, b, c, d, S, D, A, f, t)
(u, y, x, Y, I, J, K, L, M, N, O, G, C, e, Z): New constraint
definitions.
* config/i386/i386.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
(CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
* config/i386/i386.md (*movdf_nointeger): Remove stray 'H' from
constraint strings.
(splits and peepholes): Use satisfies_constraint_*.
* config/i386/i386.c (memory_address_length)
(ix86_attr_length_immediate_default): Use satisfies_constraint_*.
From-SVN: r111508
2006-02-28 04:28:18 +01:00
|
|
|
|
2006-02-27 Zack Weinberg <zackw@panix.com>
|
|
|
|
|
|
|
|
|
|
* rtl.def (define_constraint, define_register_constraint)
|
|
|
|
|
(define_memory_constraint, define_address_constraint): New MD forms.
|
|
|
|
|
* gensupport.c (process_rtx): Put define_constraint etc on the
|
|
|
|
|
predicate queue.
|
|
|
|
|
* genpreds.c (process_define_predicate): Adjust comment. Validate
|
|
|
|
|
the name, and call validate_exp to validate the expression.
|
|
|
|
|
(mark_mode_tests, write_extract_subexp): Can assume correct input.
|
|
|
|
|
(write_predicate_expr): Likewise. NAME argument no longer necessary;
|
|
|
|
|
all callers changed.
|
|
|
|
|
(validate_exp, needs_variable, struct constraint_data)
|
|
|
|
|
(constraints_by_letter_table, first_constraint, last_constraint_ptr)
|
|
|
|
|
(FOR_ALL_CONSTRAINTS, generic_constraint_letters, const_int_constraints)
|
|
|
|
|
(const_dbl_constraints, constraint_max_namelen)
|
|
|
|
|
(have_register_constraints, have_memory_constraints)
|
|
|
|
|
(have_address_constraints, have_address_constraints)
|
|
|
|
|
(have_extra_constraints, have_const_int_constraints)
|
|
|
|
|
(have_const_dbl_constraints, mangle, add_constraint)
|
|
|
|
|
(process_define_constraint, process_define_register_constraint)
|
|
|
|
|
(write_enum_constraint_num, write_lookup_constraint)
|
|
|
|
|
(write_insn_constraint_len, write_regclass_for_constraint)
|
|
|
|
|
(write_constraint_satisfied_p, write_insn_const_int_ok_for_constraint)
|
|
|
|
|
(write_insn_extra_memory_constraint)
|
|
|
|
|
(write_insn_extra_address_constraint)
|
|
|
|
|
(write_satisfies_constraint_fns): New.
|
|
|
|
|
(write_tm_preds_h): If we have new-style constraint definitions,
|
|
|
|
|
prototype the functions generated from them, and define the
|
|
|
|
|
old constraint interface (still used by generic code) in terms of
|
|
|
|
|
those functions.
|
|
|
|
|
(write_insn_preds_c): If we have new-style constraint definitions,
|
|
|
|
|
generate all relevant functions from those definitions.
|
|
|
|
|
(main): Handle define_constraint etc.
|
|
|
|
|
* genoutput.c (struct constraint_data, indep_constraints)
|
|
|
|
|
(mdep_constraint_letters, constraints_by_letter_table, note_constraint)
|
|
|
|
|
(mdep_constraint_len): New data structures and functions, defined
|
|
|
|
|
#ifdef USE_MD_CONSTRAINTS.
|
|
|
|
|
(check_constraint_len): Don't define #ifdef USE_MD_CONSTRAINTS.
|
|
|
|
|
(validate_insn_alternatives): If USE_MD_CONSTRAINTS is defined,
|
|
|
|
|
use new logic to validate operand constraints against constraint
|
|
|
|
|
definitions.
|
|
|
|
|
(main): Process define_constraint etc. if USE_MD_CONSTRAINTS is
|
|
|
|
|
defined.
|
|
|
|
|
* defaults.h: If none of the old-style constraint macros are
|
|
|
|
|
defined, define USE_MD_CONSTRAINTS; do not provide defaults for any
|
|
|
|
|
old-style macros; and poison REG_CLASS_FROM_LETTER,
|
|
|
|
|
CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P, and
|
|
|
|
|
EXTRA_CONSTRAINT.
|
|
|
|
|
* recog.c (reg_fits_class_p): If cl is NO_REGS, return 0 immediately.
|
|
|
|
|
* doc/md.texi: Document new constraint-definition mechanism and the
|
|
|
|
|
C interface it provides. Remove references to old mechanism
|
|
|
|
|
elsewhere in the document.
|
|
|
|
|
(Machine Constraints): Use pathnames relative to gcc directory,
|
|
|
|
|
i.e. config/ARCH/FILE. Change i386 section to refer to
|
|
|
|
|
config/i386/predicates.md; update that section to match docstrings.
|
|
|
|
|
* doc/tm.texi: Move all documentation of the old constraint-
|
|
|
|
|
definition macros to their own section, clearly mark as obsolete.
|
|
|
|
|
|
|
|
|
|
* config/i386/predicates.md (R, q, Q, l, a, b, c, d, S, D, A, f, t)
|
|
|
|
|
(u, y, x, Y, I, J, K, L, M, N, O, G, C, e, Z): New constraint
|
|
|
|
|
definitions.
|
|
|
|
|
* config/i386/i386.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
|
|
|
|
|
(CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
|
|
|
|
|
* config/i386/i386.md (*movdf_nointeger): Remove stray 'H' from
|
|
|
|
|
constraint strings.
|
|
|
|
|
(splits and peepholes): Use satisfies_constraint_*.
|
|
|
|
|
* config/i386/i386.c (memory_address_length)
|
|
|
|
|
(ix86_attr_length_immediate_default): Use satisfies_constraint_*.
|
|
|
|
|
|
2006-02-27 18:38:14 +01:00
|
|
|
|
2006-02-27 Daniel Berlin <dberlin@dberlin.org>
|
|
|
|
|
|
|
|
|
|
* lambda-code.c (can_convert_to_perfect_nest): Allow any type of
|
|
|
|
|
scalar operation to be put back into the loop.
|
|
|
|
|
|
2006-02-27 18:26:26 +01:00
|
|
|
|
2006-02-27 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR other/26208
|
|
|
|
|
* unwind-dw2.c (struct _Unwind_Context): Add signal_frame field.
|
|
|
|
|
(extract_cie_info): Handle S flag in augmentation string.
|
|
|
|
|
(execute_cfa_program): If context->signal_frame, execute also
|
|
|
|
|
fs->pc == context->ra instructions.
|
|
|
|
|
(uw_frame_state_for): If context->signal_frame, don't subtract one
|
|
|
|
|
from context->ra to find FDE.
|
|
|
|
|
(uw_update_context_1): Set context->signal_frame to
|
|
|
|
|
fs->signal_frame.
|
|
|
|
|
(_Unwind_GetIPInfo): New function.
|
|
|
|
|
* unwind-dw2.h (_Unwind_FrameState): Add signal_frame field.
|
|
|
|
|
* unwind-c.c (PERSONALITY_FUNCTION): Use _Unwind_GetIPInfo instead
|
|
|
|
|
of _Unwind_GetIP.
|
|
|
|
|
* unwind-sjlj.c (_Unwind_GetIPInfo): New function.
|
|
|
|
|
* unwind-generic.h (_Unwind_GetIPInfo): New prototype.
|
|
|
|
|
* unwind-compat.c (_Unwind_GetIPInfo): New function.
|
|
|
|
|
* libgcc-std.ver (_Unwind_GetIPInfo): Export @@GCC_4.2.0.
|
|
|
|
|
* config/ia64/unwind-ia64.c (_Unwind_GetIPInfo): New function.
|
|
|
|
|
* config/arm/unwind-arm.h (_Unwind_GetIPInfo): Define.
|
|
|
|
|
* config/i386/linux-unwind.h (x86_fallback_frame_state,
|
|
|
|
|
x86_64_fallback_frame_state): Set fs->signal_frame.
|
|
|
|
|
* config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Likewise.
|
|
|
|
|
(MD_FROB_UPDATE_CONTEXT): Define unconditionally.
|
|
|
|
|
(frob_update_context): Likewise. Workaround missing S flag in
|
|
|
|
|
Linux 2.6.12 - 2.6.16 kernel vDSOs.
|
|
|
|
|
* config/s390/linux-unwind.h (s390_fallback_frame_state): Likewise.
|
|
|
|
|
Remove the psw_addr + 1 hack.
|
|
|
|
|
|
2006-02-27 18:25:17 +01:00
|
|
|
|
2006-02-27 Daniel Berlin <dberlin@dberlin.org>
|
|
|
|
|
|
|
|
|
|
* tree-ssa-structalias.c (get_constraint_for): Move code to deal
|
|
|
|
|
with aggregates here.
|
|
|
|
|
(find_func_aliases): Remove code for &<aggregate> from here.
|
|
|
|
|
|
2006-02-27 04:22:18 +01:00
|
|
|
|
2006-02-26 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
|
|
* fold-const.c (fold_binary) <EQ_EXPR>: Fold (~X & C) eq/ne 0 as
|
|
|
|
|
(X & C) ne/eq 0, where C is a single bit, i.e. a power of two.
|
|
|
|
|
Fold both "((X & C) ^ C) eq/ne 0" and "((X ^ C) & C) eq/ne 0"
|
|
|
|
|
as (X & C) ne/eq 0.
|
|
|
|
|
|
2006-02-27 03:25:57 +01:00
|
|
|
|
2006-02-26 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/19983
|
|
|
|
|
* real.c (real_nan): Allow both 0x and 0X as hexadecimal prefixes.
|
|
|
|
|
|
2006-02-27 02:32:56 +01:00
|
|
|
|
2006-02-26 Zdenek Dvorak <dvorakz@suse.cz>
|
|
|
|
|
|
|
|
|
|
* opts.c (decode_options): Do not handle flag_strength_reduce.
|
|
|
|
|
(common_handle_option): Handle OPT_floop_optimize, OPT_frerun_loop_opt
|
|
|
|
|
and OPT_fstrength_reduce.
|
|
|
|
|
* tree-ssa-loop.c (tree_ssa_loop_prefetch): Only test
|
|
|
|
|
flag_prefetch_loop_arrays for being nonzero.
|
|
|
|
|
* common.opt (floop-optimize, frerun-loop-opt): Resurrected as
|
|
|
|
|
no-ops.
|
|
|
|
|
(fprefetch-loop-arrays-rtl): Removed.
|
|
|
|
|
(flag_prefetch_loop_arrays): Do not specify the value.
|
|
|
|
|
|
|
|
|
|
* doc/passes.texi: Update documentation of loop optimizer
|
|
|
|
|
passes.
|
|
|
|
|
* doc/invoke.texi (-fstrength-reduce, -fprefetch-loop-arrays-rtl,
|
|
|
|
|
-frerun-loop-opt): Remove.
|
|
|
|
|
|
2006-02-26 22:02:43 +01:00
|
|
|
|
2006-02-26 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/26421
|
|
|
|
|
* tree-ssa-alias.c (find_used_portions): Don't treat parameters
|
|
|
|
|
in function calls that are ADDR_EXPRs as using the whole structure.
|
|
|
|
|
|
2006-02-26 21:23:40 +01:00
|
|
|
|
2006-02-26 Steven Bosscher <stevenb.gcc@gmail.com>
|
|
|
|
|
|
|
|
|
|
* common.opt (-floop-optimize, -frerun-loop-opt): Remove.
|
|
|
|
|
* tree-pass.h (pass_loop_optimize): Remove.
|
|
|
|
|
* passes.c (pass_loop_optimize): Never run it.
|
|
|
|
|
* toplev.c (backend_init): Don't call init_loop.
|
|
|
|
|
* opts.c (flag_loop_optimize_set): Remove.
|
|
|
|
|
(decode_options): Never set flag_loop_optimize or flag_rerun_loop_opt.
|
|
|
|
|
(common_handle_option) <OPT_floop_optimize>: Remove. Don't disable
|
|
|
|
|
the old RTL loop optimizer when profiling enabled.
|
|
|
|
|
* predict.c (tree_estimate_probability): Always strip builtin_expect.
|
|
|
|
|
* cfgcleanup.c (try_forward_edges): Don't avoid killing loop
|
|
|
|
|
pre-headers for the sake of the old RTL loop optimizer.
|
|
|
|
|
* Makefile.in: Remove all references to loop.o.
|
|
|
|
|
|
|
|
|
|
* doc/invoke.texi: Remove all references to -floop-optimize
|
|
|
|
|
and -frerun-loop-opt.
|
|
|
|
|
|
2006-02-26 20:32:37 +01:00
|
|
|
|
2006-02-26 Zack Weinberg <zackw@panix.com>
|
|
|
|
|
|
|
|
|
|
* doc/md.texi (Machine Constraints): Refer to all files with paths
|
|
|
|
|
relative to gcc directory (i.e. config/CPU/file). Add missing
|
|
|
|
|
@table @code ... @end table to M32C subsection.
|
|
|
|
|
|
2006-02-26 17:10:30 +01:00
|
|
|
|
2006-02-26 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
|
|
* fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & 1) ^ 1 as
|
|
|
|
|
(X & 1) == 0.
|
|
|
|
|
<BIT_AND_EXPR>: Fold (X ^ 1) & 1 and ~X & 1 as (X & 1) == 0.
|
|
|
|
|
|
2006-02-26 16:36:52 +01:00
|
|
|
|
2006-02-26 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
James A. Morrison <phython@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR middle-end/21137
|
|
|
|
|
* fold-const.c (fold_binary) <EQ_EXPR>: Fold ((X>>C1)&C2) eq/ne 0,
|
|
|
|
|
when C2 is a power of two, as either (X&(C2<<C1)) eq/ne 0 if the
|
|
|
|
|
new constant C2<<C1, or as (X<0) or (X,false) depending upon the
|
|
|
|
|
signedness of the shift operation.
|
|
|
|
|
|
2006-02-26 10:27:35 +01:00
|
|
|
|
2006-02-26 Dorit Nuzman <dorit@il.ibm.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/26359
|
|
|
|
|
* tree-ssa-alias.c (new_type_alias): Set fields for new tag.
|
|
|
|
|
|
2006-02-25 23:29:48 +01:00
|
|
|
|
2006-02-25 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
|
|
* simplify-rtx.c (simplify_relational_operation_1): Simplify
|
|
|
|
|
(X^Y) == 0 as X == Y and (X^Y) != 0 as X != Y. Simplify (X^Y) == Y
|
|
|
|
|
as X == 0, and some symmetry related transformations.
|
|
|
|
|
Simplify (X^C1) == C2 as X == (C1^C2). Split long comment line.
|
|
|
|
|
|
2006-02-25 23:27:54 +01:00
|
|
|
|
2006-02-25 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/23673
|
|
|
|
|
* fold-const.c (fold_binary) <EQ_EXPR>: Fold (X^Y) == 0 as X == Y
|
|
|
|
|
and (X^Y) != 0 as X != Y. Fold (X^Y) == Y as X == 0, and some
|
|
|
|
|
symmetry related transformations. Fold (X^C1) == C2 as
|
|
|
|
|
X == (C1^C2).
|
|
|
|
|
|
2006-02-25 22:01:55 +01:00
|
|
|
|
2006-02-25 Juergen Weigert <jw@suse.de>
|
|
|
|
|
Richard Guenther <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
* scan-decls.c (scan_decls): Don't fetch new statement after CPP_EOF.
|
|
|
|
|
|
2006-02-25 02:35:08 +01:00
|
|
|
|
2006-02-24 Adam Nemet <anemet@caviumnetworks.com>
|
|
|
|
|
|
|
|
|
|
* combine.c (gen_lowpart_or_truncate): Call
|
|
|
|
|
simplify_gen_unary(TRUNCATE, ...) instead of gen_rtx_TRUNCATE.
|
|
|
|
|
|
2006-02-24 23:56:57 +01:00
|
|
|
|
2006-02-24 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
* doc/invoke.texi: Move -fopenmp description to "Options for
|
|
|
|
|
Code Generation".
|
|
|
|
|
Remove reference to -lgomp.
|
|
|
|
|
|
2006-02-24 22:52:14 +01:00
|
|
|
|
2006-02-24 David Edelsohn <edelsohn@gnu.org>
|
|
|
|
|
|
|
|
|
|
* doc/install.texi: Require GNU tar version 1.14.
|
|
|
|
|
|
2006-02-24 22:43:01 +01:00
|
|
|
|
2006-02-24 Geoffrey Keating <geoffk@apple.com>
|
|
|
|
|
|
|
|
|
|
* doc/tm.texi (Run-time Target): Document C_COMMON_OVERRIDE_OPTIONS.
|
2006-02-26 20:32:37 +01:00
|
|
|
|
* doc/invoke.texi (C++ Dialect Options): Document
|
2006-02-24 22:43:01 +01:00
|
|
|
|
-fno-use-cxa-get-exception-ptr.
|
|
|
|
|
* configure.ac: Define DEFAULT_USE_CXA_ATEXIT to 2 not 1.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* c.opt (fuse-cxa-get-exception-ptr): New.
|
|
|
|
|
* c-opts.c (c_common_handle_option): Handle
|
|
|
|
|
OPT_fuse_cxa_get_exception_ptr.
|
|
|
|
|
* c-common.c (flag_use_cxa_atexit): Update documentation.
|
|
|
|
|
(flag_use_cxa_get_exception_ptr): New.
|
|
|
|
|
* c-common.h (flag_use_cxa_get_exception_ptr): New.
|
|
|
|
|
* config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Improve
|
|
|
|
|
documentation.
|
|
|
|
|
(C_COMMON_OVERRIDE_OPTIONS): New.
|
|
|
|
|
|
2006-02-24 20:29:34 +01:00
|
|
|
|
2006-02-24 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/24952
|
|
|
|
|
* combine.c (try_combine): Explicitly check whether GET_CODE is
|
|
|
|
|
a SET or a CLOBBER, instead on checking that it isn't a USE.
|
|
|
|
|
|
2006-02-24 19:56:31 +01:00
|
|
|
|
2006-02-24 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
|
|
* fold-const.c (fold_comparison): New subroutine of fold_binary
|
|
|
|
|
containing transformations common to both the equality and
|
|
|
|
|
ordering relational operators, factored out of fold_binary.
|
|
|
|
|
(fold_binary): Separate out the equality operators (EQ_EXPR
|
|
|
|
|
and NE_EXPR) from the ordering operators (LT_EXPR, GT_EXPR,
|
|
|
|
|
LE_EXPR and GE_EXPR), calling fold_comparison to perform the
|
|
|
|
|
transformations common to both.
|
2006-02-26 20:32:37 +01:00
|
|
|
|
(fold_div_compare): Fix latent bugs in the previously unreachable
|
2006-02-24 19:56:31 +01:00
|
|
|
|
LT_EXPR and GE_EXPR cases.
|
|
|
|
|
|
2006-02-24 16:50:10 +01:00
|
|
|
|
2006-02-24 David Edelsohn <edelsohn@gnu.org>
|
|
|
|
|
|
|
|
|
|
* config/rs6000/rs6000.c (rs6000_init_builtins): Change
|
|
|
|
|
decl libname for clog to __clog on AIX.
|
|
|
|
|
|
|
|
|
|
* config/rs6000/xcoff.h (MAX_OFILE_ALIGNMENT): Define.
|
|
|
|
|
|
2006-02-24 07:30:51 +01:00
|
|
|
|
2006-02-24 Alan Modra <amodra@bigpond.net.au>
|
|
|
|
|
|
|
|
|
|
PR target/26453
|
|
|
|
|
* config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't
|
|
|
|
|
output traceback table for thunks. Localise rs6000_stack_info call.
|
|
|
|
|
|
2006-02-24 05:00:07 +01:00
|
|
|
|
2006-02-23 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
|
|
* gthr-posix.h (__gthrw): Fix typo in comment.
|
|
|
|
|
|
|
|
|
|
2006-02-23 Geoffrey Keating <geoffk@apple.com>
|
2006-02-24 01:00:51 +01:00
|
|
|
|
|
|
|
|
|
* doc/cpp.texi (Character sets): Document that we do support
|
|
|
|
|
input files to be in any character set.
|
|
|
|
|
|
2006-02-23 23:47:58 +01:00
|
|
|
|
2006-02-23 Jeff Law <law@redhat.com>
|
|
|
|
|
|
2006-02-23 23:58:23 +01:00
|
|
|
|
* tree.h (PHI_ARG_NONZERO): Remove.
|
|
|
|
|
* tree-phinodes.c (add_phi_arg): No longer initialize PHI_ARG_NONZERO.
|
|
|
|
|
(remove_phi_arg_num): No longer copy PHI_ARG_NONZERO from the old
|
|
|
|
|
node to the new node.
|
|
|
|
|
|
2006-02-23 23:47:58 +01:00
|
|
|
|
PR tree-optimization/26425
|
|
|
|
|
* tree-vrp.c (vrp_visit_assignment): If the LHS's type has a NULL
|
|
|
|
|
min/max, then assume its varying.
|
|
|
|
|
|
2006-02-23 22:03:05 +01:00
|
|
|
|
2006-02-23 Zdenek Dvorak <dvorakz@suse.cz>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/26316
|
|
|
|
|
* rtlanal.c (enum may_trap_p_flags): New.
|
|
|
|
|
(may_trap_p_1): Take flags instead of unaligned_mems argument. Ignore
|
|
|
|
|
MEM_NOTRAP_P if flags & MTP_AFTER_MOVE.
|
|
|
|
|
(may_trap_p, may_trap_or_fault_p): Pass flags to may_trap_p_1.
|
|
|
|
|
(may_trap_after_code_motion_p): New function.
|
|
|
|
|
* loop-invariant.c (find_identical_invariants): Fix dump formating.
|
|
|
|
|
(find_invariant_insn): Use may_trap_after_code_motion_p.
|
|
|
|
|
* rtl.h (may_trap_after_code_motion_p): Declare.
|
|
|
|
|
|
2006-02-23 21:55:21 +01:00
|
|
|
|
2006-02-23 Zdenek Dvorak <dvorakz@suse.cz>
|
|
|
|
|
|
|
|
|
|
* emit-rtl.c (immed_double_const): Cleanup.
|
|
|
|
|
|
2006-02-23 19:16:12 +01:00
|
|
|
|
2006-02-23 Daniel Berlin <dberlin@dberlin.org>
|
2006-02-26 20:32:37 +01:00
|
|
|
|
|
2006-02-23 19:16:12 +01:00
|
|
|
|
Fix PR tree-optimization/26376
|
|
|
|
|
* tree-ssa-structalias.c (find_func_aliases): Use get_id_for_tree,
|
|
|
|
|
remove assert.
|
|
|
|
|
|
2006-02-23 19:06:21 +01:00
|
|
|
|
2006-02-23 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/26412
|
|
|
|
|
* gimplify.c (omp_add_variable): Guard variable size decl test with
|
|
|
|
|
DECL_SIZE (decl) check.
|
|
|
|
|
|
2006-02-23 17:03:47 +01:00
|
|
|
|
2006-02-23 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR middle-end/26439
|
|
|
|
|
* tree-ssa-structalias.c (find_func_aliases): Handle complex types
|
|
|
|
|
like aggregate types.
|
|
|
|
|
|
2006-02-23 09:58:22 +01:00
|
|
|
|
2006-02-23 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* configure.ac: Add --with{,out}-long-double-128 configure option.
|
|
|
|
|
(TARGET_DEFAULT_LONG_DOUBLE_128): New test.
|
|
|
|
|
* configure: Rebuilt.
|
|
|
|
|
* config.in: Rebuilt.
|
|
|
|
|
* doc/install.texi (Options specification): Document
|
|
|
|
|
--with-long-double-128.
|
|
|
|
|
|
|
|
|
|
* config/rs6000/linux.h [TARGET_DEFAULT_LONG_DOUBLE_128]
|
|
|
|
|
(RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
|
|
|
|
|
* config/rs6000/linux64.h [TARGET_DEFAULT_LONG_DOUBLE_128]
|
|
|
|
|
(RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
|
|
|
|
|
|
|
|
|
|
2006-02-23 Aldy Hernandez <aldyh@redhat.com>
|
|
|
|
|
|
|
|
|
|
* config/s390/s390.c (override_options): Handle
|
|
|
|
|
TARGET_DEFAULT_LONG_DOUBLE_128.
|
|
|
|
|
|
|
|
|
|
* config/alpha/alpha.c (override_options): Handle
|
|
|
|
|
TARGET_DEFAULT_LONG_DOUBLE_128.
|
|
|
|
|
|
|
|
|
|
* config/sparc/sparc.c (sparc_override_options): Handle
|
|
|
|
|
TARGET_DEFAULT_LONG_DOUBLE_128.
|
|
|
|
|
|
2006-02-22 21:21:14 +01:00
|
|
|
|
2006-02-22 Daniel Jacobowitz <dan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* Makefile.in (stmp-fixinc): Use real-$(INSTALL_HEADERS_DIR).
|
|
|
|
|
(real-install-headers-tar, real-install-headers-cpio)
|
|
|
|
|
(real-install-headers-cp): New targets.
|
|
|
|
|
|
2006-02-22 20:58:37 +01:00
|
|
|
|
2006-02-22 Richard Sandiford <richard@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* tree.h (variable_section): Delete.
|
|
|
|
|
* varasm.c (variable_section): Delete.
|
|
|
|
|
|
2006-02-22 14:36:31 +01:00
|
|
|
|
2006-02-22 Paolo Bonzini <bonzini@gnu.org>
|
|
|
|
|
|
|
|
|
|
* install.texi: Add notes on install.texi2html.
|
|
|
|
|
(Building in parallel): Do not use footnotes.
|
|
|
|
|
|
2006-02-21 22:53:21 +01:00
|
|
|
|
2006-02-21 Aldy Hernandez <aldyh@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/26234
|
|
|
|
|
* doc/install.texi (Configuration): Document --disable-libgomp.
|
|
|
|
|
|
2006-02-21 21:36:35 +01:00
|
|
|
|
2006-02-21 Geoffrey Keating <geoffk@apple.com>
|
|
|
|
|
|
|
|
|
|
* config/i386/darwin.h (DWARF2_FRAME_REG_OUT): New.
|
|
|
|
|
|
2006-02-21 20:24:48 +01:00
|
|
|
|
2006-02-21 Alexandre Oliva <aoliva@redhat.com>
|
|
|
|
|
|
|
|
|
|
* config/i386/sse.md (vec_extractv2df_1_sse): New.
|
|
|
|
|
(vec_extractv2df_0_sse): New.
|
|
|
|
|
|
2006-02-21 20:21:21 +01:00
|
|
|
|
2006-02-21 Alexandre Oliva <aoliva@redhat.com>
|
|
|
|
|
|
|
|
|
|
* defaults.h (CFA_FRAME_BASE_OFFSET): Define.
|
|
|
|
|
* config/ia64/ia64.h (CFA_FRAME_BASE_OFFSET): Override.
|
|
|
|
|
* doc/tm.texi (CFA_FRAME_BASE_OFFSET): Document.
|
|
|
|
|
* dwarf2out.c (build_cfa_loc): New offset parameter. Add it
|
|
|
|
|
to the result of the expression.
|
|
|
|
|
(def_cfa_1): Adjust.
|
|
|
|
|
(frame_pointer_cfa_offset): Rename to...
|
|
|
|
|
(frame_pointer_fb_offset): ... this. Adjust all uses.
|
|
|
|
|
(convert_cfa_to_loc_list): Rename to...
|
|
|
|
|
(convert_cfa_to_fb_loc_list): ... this. New offset parameter.
|
|
|
|
|
Pass it on to build_cfa_loc.
|
|
|
|
|
(compute_frame_pointer_to_cfa_displacement): Rename to...
|
|
|
|
|
(compute_frame_pointer_to_fb_displacement): ... this. New
|
|
|
|
|
offset parameter. Use it in computation.
|
|
|
|
|
(gen_subprogram_die): Compute cfa_fb_offset with the new
|
|
|
|
|
macro, and use it to compute the fb loc list and the
|
|
|
|
|
displacement.
|
|
|
|
|
|
2006-02-21 16:32:21 +01:00
|
|
|
|
2006-02-21 Bernd Schmidt <bernd.schmidt@analog.com>
|
|
|
|
|
|
|
|
|
|
* config/bfin/predicates.md (cc_operand): Delete predicate. All uses
|
|
|
|
|
replaced with register_operand.
|
|
|
|
|
* config/bfin/bfin.c (bfin_register_move_cost): Moving CC to any
|
|
|
|
|
non-DREG is expensive.
|
|
|
|
|
* config/bfin/bfin.h (FIXED_REGISTERS): CC isn't fixed.
|
|
|
|
|
* config/bfin/bfin.md (movbi): Fix constraints and template for moves
|
|
|
|
|
involving memory.
|
|
|
|
|
|
2006-02-21 13:06:31 +01:00
|
|
|
|
2006-02-21 Joseph S. Myers <joseph@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* doc/install.texi2html: Use set -e.
|
|
|
|
|
|
2006-02-21 09:51:26 +01:00
|
|
|
|
2006-02-21 Richard Sandiford <richard@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* doc/tm.texi (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
|
|
|
|
|
(ASM_OUTPUT_SHARED_LOCAL): Delete.
|
|
|
|
|
* doc/invoke.texi (-fshared-data): Delete.
|
|
|
|
|
* common.opt (fshared-data): Delete.
|
|
|
|
|
* varasm.c (asm_emit_uninitialised): Remove flag_shared_data handling.
|
|
|
|
|
(assemble_static_space): Remove #if 0 code.
|
|
|
|
|
* system.h (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
|
|
|
|
|
(ASM_OUTPUT_SHARED_LOCAL): Poison.
|
|
|
|
|
* config/cris/cris.h: Remove FIXME.
|
|
|
|
|
|
2006-02-21 09:45:09 +01:00
|
|
|
|
2006-02-21 Paolo Bonzini <bonzini@gnu.org>
|
|
|
|
|
|
|
|
|
|
* doc/sourcebuild.texi (Front End Directory): No more double-colon
|
|
|
|
|
hooks.
|
|
|
|
|
|
2006-02-21 09:09:08 +01:00
|
|
|
|
2006-02-21 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/26379
|
|
|
|
|
* combine.c (simplify_shift_const_1): Disable nested shifts
|
|
|
|
|
optimization for vector shifts.
|
|
|
|
|
|
2006-02-21 03:28:03 +01:00
|
|
|
|
2006-02-20 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/26361
|
|
|
|
|
* tree-vrp.c (extract_range_from_unary_expr): Handle NEGATE_EXPR
|
|
|
|
|
of unsigned integer types.
|
|
|
|
|
|
tree-chrec.c (eq_evolutions_p): New.
* tree-chrec.c (eq_evolutions_p): New.
* tree-chrec.h (eq_evolutions_p): Declared.
* tree-data-ref.c: Fix formatting.
(datadep_stats, dependence_stats): New.
(gcd): Moved...
(print_direction_vector): New.
(dump_data_dependence_relation): Use print_direction_vector.
(object_analysis, create_data_ref): Handle COMPONENT_REF.
(compute_subscript_distance): Static.
(initialize_data_dependence_relation): Static. Get the number
of loops surrounding the references from the callers, and initialize
DDR_SIZE_VECT to nb_loops. Use both base_addr_differ_p and
base_object_differ_p analyzers.
(analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
compute_overlap_steps_for_affine_1_2,
analyze_subscript_affine_affine): Count the classified dependences.
Print a message when a test failed.
(can_use_analyze_subscript_affine_affine): New.
(analyze_siv_subscript): Compute the data dependences on symbolic
scevs that verify can_use_analyze_subscript_affine_affine.
(chrec_steps_divide_constant_p): Returns true, false, or unknown.
(analyze_miv_subscript): Update use of chrec_steps_divide_constant_p.
Handle symbolic scevs.
(analyze_overlapping_iterations): Let symbolic affine scevs to be
analyzed.
(subscript_dependence_tester): Moved...
(build_classic_dist_vector, build_classic_dir_vector): Don't use
lambda_vector_clear on newly allocated vectors. Get nb_loops from
DDR_SIZE_VECT instead of getting it in parameter.
(subscript_dependence_tester): ... here. Take as a parameter
loop_nest_depth. Call build_classic_dist_vector and
build_classic_dir_vector.
(compute_affine_dependence): Update subscript_dependence_tester
parameters. Update datadep_stats counters. Call
compute_subscript_distance.
(compute_self_dependence): Save the dist and dir vectors. Call
compute_subscript_distance.
(ddr_p, DEF_VEC_P(ddr_p), DEF_VEC_ALLOC_P(ddr_p,heap)): Moved...
(compute_all_dependences): Reorder parameters as they were before
conversion to VEC. Pass nb_loops and loop_nest_depth. Don't call
compute_subscript_distance. Update the use of
compute_affine_dependence and initialize_data_dependence_relation.
(find_data_references_in_loop): Handle COMPONENT_REF.
(compute_data_dependences_for_loop): Initialize dependence_stats.
Don't call build_classic_dist_vector and build_classic_dir_vector.
Update the parameters of initialize_data_dependence_relation and
compute_all_dependences. Print the statistics from datadep_stats.
(analyze_all_data_dependences): Static. Not used until the pass for
checking the data dependences is contributed.
* tree-data-ref.h (ddr_p, DEF_VEC_P(ddr_p),
DEF_VEC_ALLOC_P(ddr_p,heap)): ... here.
(initialize_data_dependence_relation, compute_affine_dependence,
analyze_all_data_dependences, compute_subscript_distance): Removed.
(print_direction_vector): New.
* lambda.h (gcd): ... here.
(lambda_vector_gcd): Moved here from gcd_vector.
* lambda-code.c (gcd, gcd_vector): Removed.
(lambda_compute_target_space): Use lambda_vector_gcd. Fix formatting.
* Makefile.in (tree-vect-patterns.o): Depends on TREE_DATA_REF_H.
From-SVN: r111312
2006-02-20 21:25:54 +01:00
|
|
|
|
2006-02-20 Sebastian Pop <pop@cri.ensmp.fr>
|
|
|
|
|
|
|
|
|
|
* tree-chrec.c (eq_evolutions_p): New.
|
|
|
|
|
* tree-chrec.h (eq_evolutions_p): Declared.
|
|
|
|
|
* tree-data-ref.c: Fix formatting.
|
|
|
|
|
(datadep_stats, dependence_stats): New.
|
|
|
|
|
(gcd): Moved...
|
|
|
|
|
(print_direction_vector): New.
|
|
|
|
|
(dump_data_dependence_relation): Use print_direction_vector.
|
|
|
|
|
(object_analysis, create_data_ref): Handle COMPONENT_REF.
|
|
|
|
|
(compute_subscript_distance): Static.
|
|
|
|
|
(initialize_data_dependence_relation): Static. Get the number
|
|
|
|
|
of loops surrounding the references from the callers, and initialize
|
|
|
|
|
DDR_SIZE_VECT to nb_loops. Use both base_addr_differ_p and
|
|
|
|
|
base_object_differ_p analyzers.
|
2006-02-26 20:32:37 +01:00
|
|
|
|
(analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
|
tree-chrec.c (eq_evolutions_p): New.
* tree-chrec.c (eq_evolutions_p): New.
* tree-chrec.h (eq_evolutions_p): Declared.
* tree-data-ref.c: Fix formatting.
(datadep_stats, dependence_stats): New.
(gcd): Moved...
(print_direction_vector): New.
(dump_data_dependence_relation): Use print_direction_vector.
(object_analysis, create_data_ref): Handle COMPONENT_REF.
(compute_subscript_distance): Static.
(initialize_data_dependence_relation): Static. Get the number
of loops surrounding the references from the callers, and initialize
DDR_SIZE_VECT to nb_loops. Use both base_addr_differ_p and
base_object_differ_p analyzers.
(analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
compute_overlap_steps_for_affine_1_2,
analyze_subscript_affine_affine): Count the classified dependences.
Print a message when a test failed.
(can_use_analyze_subscript_affine_affine): New.
(analyze_siv_subscript): Compute the data dependences on symbolic
scevs that verify can_use_analyze_subscript_affine_affine.
(chrec_steps_divide_constant_p): Returns true, false, or unknown.
(analyze_miv_subscript): Update use of chrec_steps_divide_constant_p.
Handle symbolic scevs.
(analyze_overlapping_iterations): Let symbolic affine scevs to be
analyzed.
(subscript_dependence_tester): Moved...
(build_classic_dist_vector, build_classic_dir_vector): Don't use
lambda_vector_clear on newly allocated vectors. Get nb_loops from
DDR_SIZE_VECT instead of getting it in parameter.
(subscript_dependence_tester): ... here. Take as a parameter
loop_nest_depth. Call build_classic_dist_vector and
build_classic_dir_vector.
(compute_affine_dependence): Update subscript_dependence_tester
parameters. Update datadep_stats counters. Call
compute_subscript_distance.
(compute_self_dependence): Save the dist and dir vectors. Call
compute_subscript_distance.
(ddr_p, DEF_VEC_P(ddr_p), DEF_VEC_ALLOC_P(ddr_p,heap)): Moved...
(compute_all_dependences): Reorder parameters as they were before
conversion to VEC. Pass nb_loops and loop_nest_depth. Don't call
compute_subscript_distance. Update the use of
compute_affine_dependence and initialize_data_dependence_relation.
(find_data_references_in_loop): Handle COMPONENT_REF.
(compute_data_dependences_for_loop): Initialize dependence_stats.
Don't call build_classic_dist_vector and build_classic_dir_vector.
Update the parameters of initialize_data_dependence_relation and
compute_all_dependences. Print the statistics from datadep_stats.
(analyze_all_data_dependences): Static. Not used until the pass for
checking the data dependences is contributed.
* tree-data-ref.h (ddr_p, DEF_VEC_P(ddr_p),
DEF_VEC_ALLOC_P(ddr_p,heap)): ... here.
(initialize_data_dependence_relation, compute_affine_dependence,
analyze_all_data_dependences, compute_subscript_distance): Removed.
(print_direction_vector): New.
* lambda.h (gcd): ... here.
(lambda_vector_gcd): Moved here from gcd_vector.
* lambda-code.c (gcd, gcd_vector): Removed.
(lambda_compute_target_space): Use lambda_vector_gcd. Fix formatting.
* Makefile.in (tree-vect-patterns.o): Depends on TREE_DATA_REF_H.
From-SVN: r111312
2006-02-20 21:25:54 +01:00
|
|
|
|
compute_overlap_steps_for_affine_1_2,
|
|
|
|
|
analyze_subscript_affine_affine): Count the classified dependences.
|
|
|
|
|
Print a message when a test failed.
|
2006-02-26 20:32:37 +01:00
|
|
|
|
(can_use_analyze_subscript_affine_affine): New.
|
tree-chrec.c (eq_evolutions_p): New.
* tree-chrec.c (eq_evolutions_p): New.
* tree-chrec.h (eq_evolutions_p): Declared.
* tree-data-ref.c: Fix formatting.
(datadep_stats, dependence_stats): New.
(gcd): Moved...
(print_direction_vector): New.
(dump_data_dependence_relation): Use print_direction_vector.
(object_analysis, create_data_ref): Handle COMPONENT_REF.
(compute_subscript_distance): Static.
(initialize_data_dependence_relation): Static. Get the number
of loops surrounding the references from the callers, and initialize
DDR_SIZE_VECT to nb_loops. Use both base_addr_differ_p and
base_object_differ_p analyzers.
(analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
compute_overlap_steps_for_affine_1_2,
analyze_subscript_affine_affine): Count the classified dependences.
Print a message when a test failed.
(can_use_analyze_subscript_affine_affine): New.
(analyze_siv_subscript): Compute the data dependences on symbolic
scevs that verify can_use_analyze_subscript_affine_affine.
(chrec_steps_divide_constant_p): Returns true, false, or unknown.
(analyze_miv_subscript): Update use of chrec_steps_divide_constant_p.
Handle symbolic scevs.
(analyze_overlapping_iterations): Let symbolic affine scevs to be
analyzed.
(subscript_dependence_tester): Moved...
(build_classic_dist_vector, build_classic_dir_vector): Don't use
lambda_vector_clear on newly allocated vectors. Get nb_loops from
DDR_SIZE_VECT instead of getting it in parameter.
(subscript_dependence_tester): ... here. Take as a parameter
loop_nest_depth. Call build_classic_dist_vector and
build_classic_dir_vector.
(compute_affine_dependence): Update subscript_dependence_tester
parameters. Update datadep_stats counters. Call
compute_subscript_distance.
(compute_self_dependence): Save the dist and dir vectors. Call
compute_subscript_distance.
(ddr_p, DEF_VEC_P(ddr_p), DEF_VEC_ALLOC_P(ddr_p,heap)): Moved...
(compute_all_dependences): Reorder parameters as they were before
conversion to VEC. Pass nb_loops and loop_nest_depth. Don't call
compute_subscript_distance. Update the use of
compute_affine_dependence and initialize_data_dependence_relation.
(find_data_references_in_loop): Handle COMPONENT_REF.
(compute_data_dependences_for_loop): Initialize dependence_stats.
Don't call build_classic_dist_vector and build_classic_dir_vector.
Update the parameters of initialize_data_dependence_relation and
compute_all_dependences. Print the statistics from datadep_stats.
(analyze_all_data_dependences): Static. Not used until the pass for
checking the data dependences is contributed.
* tree-data-ref.h (ddr_p, DEF_VEC_P(ddr_p),
DEF_VEC_ALLOC_P(ddr_p,heap)): ... here.
(initialize_data_dependence_relation, compute_affine_dependence,
analyze_all_data_dependences, compute_subscript_distance): Removed.
(print_direction_vector): New.
* lambda.h (gcd): ... here.
(lambda_vector_gcd): Moved here from gcd_vector.
* lambda-code.c (gcd, gcd_vector): Removed.
(lambda_compute_target_space): Use lambda_vector_gcd. Fix formatting.
* Makefile.in (tree-vect-patterns.o): Depends on TREE_DATA_REF_H.
From-SVN: r111312
2006-02-20 21:25:54 +01:00
|
|
|
|
(analyze_siv_subscript): Compute the data dependences on symbolic
|
|
|
|
|
scevs that verify can_use_analyze_subscript_affine_affine.
|
|
|
|
|
(chrec_steps_divide_constant_p): Returns true, false, or unknown.
|
|
|
|
|
(analyze_miv_subscript): Update use of chrec_steps_divide_constant_p.
|
|
|
|
|
Handle symbolic scevs.
|
|
|
|
|
(analyze_overlapping_iterations): Let symbolic affine scevs to be
|
|
|
|
|
analyzed.
|
|
|
|
|
(subscript_dependence_tester): Moved...
|
2006-02-26 20:32:37 +01:00
|
|
|
|
(build_classic_dist_vector, build_classic_dir_vector): Don't use
|
tree-chrec.c (eq_evolutions_p): New.
* tree-chrec.c (eq_evolutions_p): New.
* tree-chrec.h (eq_evolutions_p): Declared.
* tree-data-ref.c: Fix formatting.
(datadep_stats, dependence_stats): New.
(gcd): Moved...
(print_direction_vector): New.
(dump_data_dependence_relation): Use print_direction_vector.
(object_analysis, create_data_ref): Handle COMPONENT_REF.
(compute_subscript_distance): Static.
(initialize_data_dependence_relation): Static. Get the number
of loops surrounding the references from the callers, and initialize
DDR_SIZE_VECT to nb_loops. Use both base_addr_differ_p and
base_object_differ_p analyzers.
(analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
compute_overlap_steps_for_affine_1_2,
analyze_subscript_affine_affine): Count the classified dependences.
Print a message when a test failed.
(can_use_analyze_subscript_affine_affine): New.
(analyze_siv_subscript): Compute the data dependences on symbolic
scevs that verify can_use_analyze_subscript_affine_affine.
(chrec_steps_divide_constant_p): Returns true, false, or unknown.
(analyze_miv_subscript): Update use of chrec_steps_divide_constant_p.
Handle symbolic scevs.
(analyze_overlapping_iterations): Let symbolic affine scevs to be
analyzed.
(subscript_dependence_tester): Moved...
(build_classic_dist_vector, build_classic_dir_vector): Don't use
lambda_vector_clear on newly allocated vectors. Get nb_loops from
DDR_SIZE_VECT instead of getting it in parameter.
(subscript_dependence_tester): ... here. Take as a parameter
loop_nest_depth. Call build_classic_dist_vector and
build_classic_dir_vector.
(compute_affine_dependence): Update subscript_dependence_tester
parameters. Update datadep_stats counters. Call
compute_subscript_distance.
(compute_self_dependence): Save the dist and dir vectors. Call
compute_subscript_distance.
(ddr_p, DEF_VEC_P(ddr_p), DEF_VEC_ALLOC_P(ddr_p,heap)): Moved...
(compute_all_dependences): Reorder parameters as they were before
conversion to VEC. Pass nb_loops and loop_nest_depth. Don't call
compute_subscript_distance. Update the use of
compute_affine_dependence and initialize_data_dependence_relation.
(find_data_references_in_loop): Handle COMPONENT_REF.
(compute_data_dependences_for_loop): Initialize dependence_stats.
Don't call build_classic_dist_vector and build_classic_dir_vector.
Update the parameters of initialize_data_dependence_relation and
compute_all_dependences. Print the statistics from datadep_stats.
(analyze_all_data_dependences): Static. Not used until the pass for
checking the data dependences is contributed.
* tree-data-ref.h (ddr_p, DEF_VEC_P(ddr_p),
DEF_VEC_ALLOC_P(ddr_p,heap)): ... here.
(initialize_data_dependence_relation, compute_affine_dependence,
analyze_all_data_dependences, compute_subscript_distance): Removed.
(print_direction_vector): New.
* lambda.h (gcd): ... here.
(lambda_vector_gcd): Moved here from gcd_vector.
* lambda-code.c (gcd, gcd_vector): Removed.
(lambda_compute_target_space): Use lambda_vector_gcd. Fix formatting.
* Makefile.in (tree-vect-patterns.o): Depends on TREE_DATA_REF_H.
From-SVN: r111312
2006-02-20 21:25:54 +01:00
|
|
|
|
lambda_vector_clear on newly allocated vectors. Get nb_loops from
|
|
|
|
|
DDR_SIZE_VECT instead of getting it in parameter.
|
2006-02-26 20:32:37 +01:00
|
|
|
|
(subscript_dependence_tester): ... here. Take as a parameter
|
tree-chrec.c (eq_evolutions_p): New.
* tree-chrec.c (eq_evolutions_p): New.
* tree-chrec.h (eq_evolutions_p): Declared.
* tree-data-ref.c: Fix formatting.
(datadep_stats, dependence_stats): New.
(gcd): Moved...
(print_direction_vector): New.
(dump_data_dependence_relation): Use print_direction_vector.
(object_analysis, create_data_ref): Handle COMPONENT_REF.
(compute_subscript_distance): Static.
(initialize_data_dependence_relation): Static. Get the number
of loops surrounding the references from the callers, and initialize
DDR_SIZE_VECT to nb_loops. Use both base_addr_differ_p and
base_object_differ_p analyzers.
(analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
compute_overlap_steps_for_affine_1_2,
analyze_subscript_affine_affine): Count the classified dependences.
Print a message when a test failed.
(can_use_analyze_subscript_affine_affine): New.
(analyze_siv_subscript): Compute the data dependences on symbolic
scevs that verify can_use_analyze_subscript_affine_affine.
(chrec_steps_divide_constant_p): Returns true, false, or unknown.
(analyze_miv_subscript): Update use of chrec_steps_divide_constant_p.
Handle symbolic scevs.
(analyze_overlapping_iterations): Let symbolic affine scevs to be
analyzed.
(subscript_dependence_tester): Moved...
(build_classic_dist_vector, build_classic_dir_vector): Don't use
lambda_vector_clear on newly allocated vectors. Get nb_loops from
DDR_SIZE_VECT instead of getting it in parameter.
(subscript_dependence_tester): ... here. Take as a parameter
loop_nest_depth. Call build_classic_dist_vector and
build_classic_dir_vector.
(compute_affine_dependence): Update subscript_dependence_tester
parameters. Update datadep_stats counters. Call
compute_subscript_distance.
(compute_self_dependence): Save the dist and dir vectors. Call
compute_subscript_distance.
(ddr_p, DEF_VEC_P(ddr_p), DEF_VEC_ALLOC_P(ddr_p,heap)): Moved...
(compute_all_dependences): Reorder parameters as they were before
conversion to VEC. Pass nb_loops and loop_nest_depth. Don't call
compute_subscript_distance. Update the use of
compute_affine_dependence and initialize_data_dependence_relation.
(find_data_references_in_loop): Handle COMPONENT_REF.
(compute_data_dependences_for_loop): Initialize dependence_stats.
Don't call build_classic_dist_vector and build_classic_dir_vector.
Update the parameters of initialize_data_dependence_relation and
compute_all_dependences. Print the statistics from datadep_stats.
(analyze_all_data_dependences): Static. Not used until the pass for
checking the data dependences is contributed.
* tree-data-ref.h (ddr_p, DEF_VEC_P(ddr_p),
DEF_VEC_ALLOC_P(ddr_p,heap)): ... here.
(initialize_data_dependence_relation, compute_affine_dependence,
analyze_all_data_dependences, compute_subscript_distance): Removed.
(print_direction_vector): New.
* lambda.h (gcd): ... here.
(lambda_vector_gcd): Moved here from gcd_vector.
* lambda-code.c (gcd, gcd_vector): Removed.
(lambda_compute_target_space): Use lambda_vector_gcd. Fix formatting.
* Makefile.in (tree-vect-patterns.o): Depends on TREE_DATA_REF_H.
From-SVN: r111312
2006-02-20 21:25:54 +01:00
|
|
|
|
loop_nest_depth. Call build_classic_dist_vector and
|
|
|
|
|
build_classic_dir_vector.
|
2006-02-26 20:32:37 +01:00
|
|
|
|
(compute_affine_dependence): Update subscript_dependence_tester
|
|
|
|
|
parameters. Update datadep_stats counters. Call
|
tree-chrec.c (eq_evolutions_p): New.
* tree-chrec.c (eq_evolutions_p): New.
* tree-chrec.h (eq_evolutions_p): Declared.
* tree-data-ref.c: Fix formatting.
(datadep_stats, dependence_stats): New.
(gcd): Moved...
(print_direction_vector): New.
(dump_data_dependence_relation): Use print_direction_vector.
(object_analysis, create_data_ref): Handle COMPONENT_REF.
(compute_subscript_distance): Static.
(initialize_data_dependence_relation): Static. Get the number
of loops surrounding the references from the callers, and initialize
DDR_SIZE_VECT to nb_loops. Use both base_addr_differ_p and
base_object_differ_p analyzers.
(analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
compute_overlap_steps_for_affine_1_2,
analyze_subscript_affine_affine): Count the classified dependences.
Print a message when a test failed.
(can_use_analyze_subscript_affine_affine): New.
(analyze_siv_subscript): Compute the data dependences on symbolic
scevs that verify can_use_analyze_subscript_affine_affine.
(chrec_steps_divide_constant_p): Returns true, false, or unknown.
(analyze_miv_subscript): Update use of chrec_steps_divide_constant_p.
Handle symbolic scevs.
(analyze_overlapping_iterations): Let symbolic affine scevs to be
analyzed.
(subscript_dependence_tester): Moved...
(build_classic_dist_vector, build_classic_dir_vector): Don't use
lambda_vector_clear on newly allocated vectors. Get nb_loops from
DDR_SIZE_VECT instead of getting it in parameter.
(subscript_dependence_tester): ... here. Take as a parameter
loop_nest_depth. Call build_classic_dist_vector and
build_classic_dir_vector.
(compute_affine_dependence): Update subscript_dependence_tester
parameters. Update datadep_stats counters. Call
compute_subscript_distance.
(compute_self_dependence): Save the dist and dir vectors. Call
compute_subscript_distance.
(ddr_p, DEF_VEC_P(ddr_p), DEF_VEC_ALLOC_P(ddr_p,heap)): Moved...
(compute_all_dependences): Reorder parameters as they were before
conversion to VEC. Pass nb_loops and loop_nest_depth. Don't call
compute_subscript_distance. Update the use of
compute_affine_dependence and initialize_data_dependence_relation.
(find_data_references_in_loop): Handle COMPONENT_REF.
(compute_data_dependences_for_loop): Initialize dependence_stats.
Don't call build_classic_dist_vector and build_classic_dir_vector.
Update the parameters of initialize_data_dependence_relation and
compute_all_dependences. Print the statistics from datadep_stats.
(analyze_all_data_dependences): Static. Not used until the pass for
checking the data dependences is contributed.
* tree-data-ref.h (ddr_p, DEF_VEC_P(ddr_p),
DEF_VEC_ALLOC_P(ddr_p,heap)): ... here.
(initialize_data_dependence_relation, compute_affine_dependence,
analyze_all_data_dependences, compute_subscript_distance): Removed.
(print_direction_vector): New.
* lambda.h (gcd): ... here.
(lambda_vector_gcd): Moved here from gcd_vector.
* lambda-code.c (gcd, gcd_vector): Removed.
(lambda_compute_target_space): Use lambda_vector_gcd. Fix formatting.
* Makefile.in (tree-vect-patterns.o): Depends on TREE_DATA_REF_H.
From-SVN: r111312
2006-02-20 21:25:54 +01:00
|
|
|
|
compute_subscript_distance.
|
2006-02-26 20:32:37 +01:00
|
|
|
|
(compute_self_dependence): Save the dist and dir vectors. Call
|
tree-chrec.c (eq_evolutions_p): New.
* tree-chrec.c (eq_evolutions_p): New.
* tree-chrec.h (eq_evolutions_p): Declared.
* tree-data-ref.c: Fix formatting.
(datadep_stats, dependence_stats): New.
(gcd): Moved...
(print_direction_vector): New.
(dump_data_dependence_relation): Use print_direction_vector.
(object_analysis, create_data_ref): Handle COMPONENT_REF.
(compute_subscript_distance): Static.
(initialize_data_dependence_relation): Static. Get the number
of loops surrounding the references from the callers, and initialize
DDR_SIZE_VECT to nb_loops. Use both base_addr_differ_p and
base_object_differ_p analyzers.
(analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
compute_overlap_steps_for_affine_1_2,
analyze_subscript_affine_affine): Count the classified dependences.
Print a message when a test failed.
(can_use_analyze_subscript_affine_affine): New.
(analyze_siv_subscript): Compute the data dependences on symbolic
scevs that verify can_use_analyze_subscript_affine_affine.
(chrec_steps_divide_constant_p): Returns true, false, or unknown.
(analyze_miv_subscript): Update use of chrec_steps_divide_constant_p.
Handle symbolic scevs.
(analyze_overlapping_iterations): Let symbolic affine scevs to be
analyzed.
(subscript_dependence_tester): Moved...
(build_classic_dist_vector, build_classic_dir_vector): Don't use
lambda_vector_clear on newly allocated vectors. Get nb_loops from
DDR_SIZE_VECT instead of getting it in parameter.
(subscript_dependence_tester): ... here. Take as a parameter
loop_nest_depth. Call build_classic_dist_vector and
build_classic_dir_vector.
(compute_affine_dependence): Update subscript_dependence_tester
parameters. Update datadep_stats counters. Call
compute_subscript_distance.
(compute_self_dependence): Save the dist and dir vectors. Call
compute_subscript_distance.
(ddr_p, DEF_VEC_P(ddr_p), DEF_VEC_ALLOC_P(ddr_p,heap)): Moved...
(compute_all_dependences): Reorder parameters as they were before
conversion to VEC. Pass nb_loops and loop_nest_depth. Don't call
compute_subscript_distance. Update the use of
compute_affine_dependence and initialize_data_dependence_relation.
(find_data_references_in_loop): Handle COMPONENT_REF.
(compute_data_dependences_for_loop): Initialize dependence_stats.
Don't call build_classic_dist_vector and build_classic_dir_vector.
Update the parameters of initialize_data_dependence_relation and
compute_all_dependences. Print the statistics from datadep_stats.
(analyze_all_data_dependences): Static. Not used until the pass for
checking the data dependences is contributed.
* tree-data-ref.h (ddr_p, DEF_VEC_P(ddr_p),
DEF_VEC_ALLOC_P(ddr_p,heap)): ... here.
(initialize_data_dependence_relation, compute_affine_dependence,
analyze_all_data_dependences, compute_subscript_distance): Removed.
(print_direction_vector): New.
* lambda.h (gcd): ... here.
(lambda_vector_gcd): Moved here from gcd_vector.
* lambda-code.c (gcd, gcd_vector): Removed.
(lambda_compute_target_space): Use lambda_vector_gcd. Fix formatting.
* Makefile.in (tree-vect-patterns.o): Depends on TREE_DATA_REF_H.
From-SVN: r111312
2006-02-20 21:25:54 +01:00
|
|
|
|
compute_subscript_distance.
|
|
|
|
|
(ddr_p, DEF_VEC_P(ddr_p), DEF_VEC_ALLOC_P(ddr_p,heap)): Moved...
|
|
|
|
|
(compute_all_dependences): Reorder parameters as they were before
|
|
|
|
|
conversion to VEC. Pass nb_loops and loop_nest_depth. Don't call
|
2006-02-26 20:32:37 +01:00
|
|
|
|
compute_subscript_distance. Update the use of
|
tree-chrec.c (eq_evolutions_p): New.
* tree-chrec.c (eq_evolutions_p): New.
* tree-chrec.h (eq_evolutions_p): Declared.
* tree-data-ref.c: Fix formatting.
(datadep_stats, dependence_stats): New.
(gcd): Moved...
(print_direction_vector): New.
(dump_data_dependence_relation): Use print_direction_vector.
(object_analysis, create_data_ref): Handle COMPONENT_REF.
(compute_subscript_distance): Static.
(initialize_data_dependence_relation): Static. Get the number
of loops surrounding the references from the callers, and initialize
DDR_SIZE_VECT to nb_loops. Use both base_addr_differ_p and
base_object_differ_p analyzers.
(analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
compute_overlap_steps_for_affine_1_2,
analyze_subscript_affine_affine): Count the classified dependences.
Print a message when a test failed.
(can_use_analyze_subscript_affine_affine): New.
(analyze_siv_subscript): Compute the data dependences on symbolic
scevs that verify can_use_analyze_subscript_affine_affine.
(chrec_steps_divide_constant_p): Returns true, false, or unknown.
(analyze_miv_subscript): Update use of chrec_steps_divide_constant_p.
Handle symbolic scevs.
(analyze_overlapping_iterations): Let symbolic affine scevs to be
analyzed.
(subscript_dependence_tester): Moved...
(build_classic_dist_vector, build_classic_dir_vector): Don't use
lambda_vector_clear on newly allocated vectors. Get nb_loops from
DDR_SIZE_VECT instead of getting it in parameter.
(subscript_dependence_tester): ... here. Take as a parameter
loop_nest_depth. Call build_classic_dist_vector and
build_classic_dir_vector.
(compute_affine_dependence): Update subscript_dependence_tester
parameters. Update datadep_stats counters. Call
compute_subscript_distance.
(compute_self_dependence): Save the dist and dir vectors. Call
compute_subscript_distance.
(ddr_p, DEF_VEC_P(ddr_p), DEF_VEC_ALLOC_P(ddr_p,heap)): Moved...
(compute_all_dependences): Reorder parameters as they were before
conversion to VEC. Pass nb_loops and loop_nest_depth. Don't call
compute_subscript_distance. Update the use of
compute_affine_dependence and initialize_data_dependence_relation.
(find_data_references_in_loop): Handle COMPONENT_REF.
(compute_data_dependences_for_loop): Initialize dependence_stats.
Don't call build_classic_dist_vector and build_classic_dir_vector.
Update the parameters of initialize_data_dependence_relation and
compute_all_dependences. Print the statistics from datadep_stats.
(analyze_all_data_dependences): Static. Not used until the pass for
checking the data dependences is contributed.
* tree-data-ref.h (ddr_p, DEF_VEC_P(ddr_p),
DEF_VEC_ALLOC_P(ddr_p,heap)): ... here.
(initialize_data_dependence_relation, compute_affine_dependence,
analyze_all_data_dependences, compute_subscript_distance): Removed.
(print_direction_vector): New.
* lambda.h (gcd): ... here.
(lambda_vector_gcd): Moved here from gcd_vector.
* lambda-code.c (gcd, gcd_vector): Removed.
(lambda_compute_target_space): Use lambda_vector_gcd. Fix formatting.
* Makefile.in (tree-vect-patterns.o): Depends on TREE_DATA_REF_H.
From-SVN: r111312
2006-02-20 21:25:54 +01:00
|
|
|
|
compute_affine_dependence and initialize_data_dependence_relation.
|
|
|
|
|
(find_data_references_in_loop): Handle COMPONENT_REF.
|
|
|
|
|
(compute_data_dependences_for_loop): Initialize dependence_stats.
|
|
|
|
|
Don't call build_classic_dist_vector and build_classic_dir_vector.
|
2006-02-26 20:32:37 +01:00
|
|
|
|
Update the parameters of initialize_data_dependence_relation and
|
tree-chrec.c (eq_evolutions_p): New.
* tree-chrec.c (eq_evolutions_p): New.
* tree-chrec.h (eq_evolutions_p): Declared.
* tree-data-ref.c: Fix formatting.
(datadep_stats, dependence_stats): New.
(gcd): Moved...
(print_direction_vector): New.
(dump_data_dependence_relation): Use print_direction_vector.
(object_analysis, create_data_ref): Handle COMPONENT_REF.
(compute_subscript_distance): Static.
(initialize_data_dependence_relation): Static. Get the number
of loops surrounding the references from the callers, and initialize
DDR_SIZE_VECT to nb_loops. Use both base_addr_differ_p and
base_object_differ_p analyzers.
(analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
compute_overlap_steps_for_affine_1_2,
analyze_subscript_affine_affine): Count the classified dependences.
Print a message when a test failed.
(can_use_analyze_subscript_affine_affine): New.
(analyze_siv_subscript): Compute the data dependences on symbolic
scevs that verify can_use_analyze_subscript_affine_affine.
(chrec_steps_divide_constant_p): Returns true, false, or unknown.
(analyze_miv_subscript): Update use of chrec_steps_divide_constant_p.
Handle symbolic scevs.
(analyze_overlapping_iterations): Let symbolic affine scevs to be
analyzed.
(subscript_dependence_tester): Moved...
(build_classic_dist_vector, build_classic_dir_vector): Don't use
lambda_vector_clear on newly allocated vectors. Get nb_loops from
DDR_SIZE_VECT instead of getting it in parameter.
(subscript_dependence_tester): ... here. Take as a parameter
loop_nest_depth. Call build_classic_dist_vector and
build_classic_dir_vector.
(compute_affine_dependence): Update subscript_dependence_tester
parameters. Update datadep_stats counters. Call
compute_subscript_distance.
(compute_self_dependence): Save the dist and dir vectors. Call
compute_subscript_distance.
(ddr_p, DEF_VEC_P(ddr_p), DEF_VEC_ALLOC_P(ddr_p,heap)): Moved...
(compute_all_dependences): Reorder parameters as they were before
conversion to VEC. Pass nb_loops and loop_nest_depth. Don't call
compute_subscript_distance. Update the use of
compute_affine_dependence and initialize_data_dependence_relation.
(find_data_references_in_loop): Handle COMPONENT_REF.
(compute_data_dependences_for_loop): Initialize dependence_stats.
Don't call build_classic_dist_vector and build_classic_dir_vector.
Update the parameters of initialize_data_dependence_relation and
compute_all_dependences. Print the statistics from datadep_stats.
(analyze_all_data_dependences): Static. Not used until the pass for
checking the data dependences is contributed.
* tree-data-ref.h (ddr_p, DEF_VEC_P(ddr_p),
DEF_VEC_ALLOC_P(ddr_p,heap)): ... here.
(initialize_data_dependence_relation, compute_affine_dependence,
analyze_all_data_dependences, compute_subscript_distance): Removed.
(print_direction_vector): New.
* lambda.h (gcd): ... here.
(lambda_vector_gcd): Moved here from gcd_vector.
* lambda-code.c (gcd, gcd_vector): Removed.
(lambda_compute_target_space): Use lambda_vector_gcd. Fix formatting.
* Makefile.in (tree-vect-patterns.o): Depends on TREE_DATA_REF_H.
From-SVN: r111312
2006-02-20 21:25:54 +01:00
|
|
|
|
compute_all_dependences. Print the statistics from datadep_stats.
|
|
|
|
|
(analyze_all_data_dependences): Static. Not used until the pass for
|
|
|
|
|
checking the data dependences is contributed.
|
|
|
|
|
* tree-data-ref.h (ddr_p, DEF_VEC_P(ddr_p),
|
|
|
|
|
DEF_VEC_ALLOC_P(ddr_p,heap)): ... here.
|
2006-02-26 20:32:37 +01:00
|
|
|
|
(initialize_data_dependence_relation, compute_affine_dependence,
|
tree-chrec.c (eq_evolutions_p): New.
* tree-chrec.c (eq_evolutions_p): New.
* tree-chrec.h (eq_evolutions_p): Declared.
* tree-data-ref.c: Fix formatting.
(datadep_stats, dependence_stats): New.
(gcd): Moved...
(print_direction_vector): New.
(dump_data_dependence_relation): Use print_direction_vector.
(object_analysis, create_data_ref): Handle COMPONENT_REF.
(compute_subscript_distance): Static.
(initialize_data_dependence_relation): Static. Get the number
of loops surrounding the references from the callers, and initialize
DDR_SIZE_VECT to nb_loops. Use both base_addr_differ_p and
base_object_differ_p analyzers.
(analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
compute_overlap_steps_for_affine_1_2,
analyze_subscript_affine_affine): Count the classified dependences.
Print a message when a test failed.
(can_use_analyze_subscript_affine_affine): New.
(analyze_siv_subscript): Compute the data dependences on symbolic
scevs that verify can_use_analyze_subscript_affine_affine.
(chrec_steps_divide_constant_p): Returns true, false, or unknown.
(analyze_miv_subscript): Update use of chrec_steps_divide_constant_p.
Handle symbolic scevs.
(analyze_overlapping_iterations): Let symbolic affine scevs to be
analyzed.
(subscript_dependence_tester): Moved...
(build_classic_dist_vector, build_classic_dir_vector): Don't use
lambda_vector_clear on newly allocated vectors. Get nb_loops from
DDR_SIZE_VECT instead of getting it in parameter.
(subscript_dependence_tester): ... here. Take as a parameter
loop_nest_depth. Call build_classic_dist_vector and
build_classic_dir_vector.
(compute_affine_dependence): Update subscript_dependence_tester
parameters. Update datadep_stats counters. Call
compute_subscript_distance.
(compute_self_dependence): Save the dist and dir vectors. Call
compute_subscript_distance.
(ddr_p, DEF_VEC_P(ddr_p), DEF_VEC_ALLOC_P(ddr_p,heap)): Moved...
(compute_all_dependences): Reorder parameters as they were before
conversion to VEC. Pass nb_loops and loop_nest_depth. Don't call
compute_subscript_distance. Update the use of
compute_affine_dependence and initialize_data_dependence_relation.
(find_data_references_in_loop): Handle COMPONENT_REF.
(compute_data_dependences_for_loop): Initialize dependence_stats.
Don't call build_classic_dist_vector and build_classic_dir_vector.
Update the parameters of initialize_data_dependence_relation and
compute_all_dependences. Print the statistics from datadep_stats.
(analyze_all_data_dependences): Static. Not used until the pass for
checking the data dependences is contributed.
* tree-data-ref.h (ddr_p, DEF_VEC_P(ddr_p),
DEF_VEC_ALLOC_P(ddr_p,heap)): ... here.
(initialize_data_dependence_relation, compute_affine_dependence,
analyze_all_data_dependences, compute_subscript_distance): Removed.
(print_direction_vector): New.
* lambda.h (gcd): ... here.
(lambda_vector_gcd): Moved here from gcd_vector.
* lambda-code.c (gcd, gcd_vector): Removed.
(lambda_compute_target_space): Use lambda_vector_gcd. Fix formatting.
* Makefile.in (tree-vect-patterns.o): Depends on TREE_DATA_REF_H.
From-SVN: r111312
2006-02-20 21:25:54 +01:00
|
|
|
|
analyze_all_data_dependences, compute_subscript_distance): Removed.
|
|
|
|
|
(print_direction_vector): New.
|
|
|
|
|
* lambda.h (gcd): ... here.
|
|
|
|
|
(lambda_vector_gcd): Moved here from gcd_vector.
|
|
|
|
|
* lambda-code.c (gcd, gcd_vector): Removed.
|
|
|
|
|
(lambda_compute_target_space): Use lambda_vector_gcd. Fix formatting.
|
|
|
|
|
* Makefile.in (tree-vect-patterns.o): Depends on TREE_DATA_REF_H.
|
|
|
|
|
|
2006-02-20 20:52:56 +01:00
|
|
|
|
2006-02-20 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
* ipa-type-escape.c: Tidy some comments and white space.
|
|
|
|
|
* tree-ssa-operands.c: Likewise.
|
|
|
|
|
|
2006-02-20 18:47:34 +01:00
|
|
|
|
2006-02-20 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
|
|
PR tree-opt/25879
|
|
|
|
|
* tree-pretty-print.c (debug_tree_chain): Walk the chains.
|
|
|
|
|
(dump_decl_name): Do not walk the decl tree chains.
|
|
|
|
|
* tree-pass.h (TDF_CHAIN): Remove.
|
|
|
|
|
|
|
|
|
|
2006-02-20 Rafael <20>vila de Esp<73>ndola <rafael.espindola@gmail.com>
|
|
|
|
|
|
2006-02-20 18:17:04 +01:00
|
|
|
|
* Makefile.in (C): Remove
|
|
|
|
|
(PROTO): Remove
|
|
|
|
|
(.PHONY): Remove C and PROTO
|
|
|
|
|
|
2006-02-20 16:05:15 +01:00
|
|
|
|
2006-02-20 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/26236
|
|
|
|
|
* doc/c-tree.texi (INTEGER_TYPE): Remove reference to the now
|
|
|
|
|
deprecated CHAR_TYPE tree code.
|
|
|
|
|
|
configure.ac (target_list): Add install-info, dvi, html.
2006-02-20 Paolo Bonzini <bonzini@gnu.org>
* configure.ac (target_list): Add install-info, dvi, html.
* configure: Regenerate.
* ada/Make-lang.in, cp/Make-lang.in, fortran/Make-lang.in,
java/Make-lang.in, objc/Make-lang.in, objcp/Make-lang.in,
treelang/Make-lang.in: Do not use double-colon rules.
From-SVN: r111304
2006-02-20 15:50:08 +01:00
|
|
|
|
2006-02-20 Paolo Bonzini <bonzini@gnu.org>
|
|
|
|
|
|
|
|
|
|
* configure.ac (target_list): Add install-info, dvi, html.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
|
|
|
|
* ada/Make-lang.in, cp/Make-lang.in, fortran/Make-lang.in,
|
|
|
|
|
java/Make-lang.in, objc/Make-lang.in, objcp/Make-lang.in,
|
|
|
|
|
treelang/Make-lang.in: Do not use double-colon rules.
|
|
|
|
|
|
2006-02-20 14:38:01 +01:00
|
|
|
|
2006-02-20 Daniel Berlin <dberlin@dberlin.org>
|
|
|
|
|
|
|
|
|
|
* tree.h (struct tree_memory_tag): Add is_used_alone member.
|
|
|
|
|
(TMT_USED_ALONE): New macro.
|
|
|
|
|
* tree-pass.h (PROP_tmt_usage): New property.
|
|
|
|
|
(TODO_update_tmt_usage): New todo.
|
|
|
|
|
* tree-ssa-alias.c (updating_used_alone): New variable.
|
2006-02-26 20:32:37 +01:00
|
|
|
|
(recalculate_used_alone): New function.
|
2006-02-20 14:38:01 +01:00
|
|
|
|
(compute_may_aliases): Set updating_used_alone, call
|
2006-02-26 20:32:37 +01:00
|
|
|
|
recalculate_used_alone.
|
2006-02-20 14:38:01 +01:00
|
|
|
|
* tree-sra.c (pass_sra): Note that this pass destroys
|
|
|
|
|
PROP_tmt_usage, and add TODO_update_tmt_usage.
|
|
|
|
|
* tree-ssa-forwprop.c (pass_forwprop): Ditto.
|
|
|
|
|
* tree-flow.h (updating_used_alone): Prototype.
|
|
|
|
|
(recalculate_used_alone): Ditto.
|
|
|
|
|
* passes.c (execute_todo): Add code to set updating_used_alone,
|
|
|
|
|
and call recalculate.
|
|
|
|
|
* tree-ssa-operands.c (add_virtual_operand): Only append bare def
|
|
|
|
|
for clobber if used alone, and add assert to verify used_alone
|
|
|
|
|
status.
|
2006-02-26 20:32:37 +01:00
|
|
|
|
|
2006-02-20 09:42:27 +01:00
|
|
|
|
2006-02-20 Angel Nunez Mencias <anunez@de.ibm.com>
|
|
|
|
|
|
|
|
|
|
* config/s390/s390.c (legitimize_pic_address): Assertions checking
|
|
|
|
|
for non tls symbols added.
|
|
|
|
|
(legitimize_address): Do nothing for PLUS expressions if one of the
|
|
|
|
|
addends is a tls symbol reference.
|
|
|
|
|
|
re PR bootstrap/25670 (build fail with 'make all-gcc')
2006-02-20 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/25670
* Makefile.tpl ([+compare-target+]): Print explanation messages.
* Makefile.def (ADAFLAGS, BOOT_ADAFLAGS, LANGUAGES): New flags_to_pass.
* Makefile.tpl (BASE_FLAGS_TO_PASS): Support optional flags_to_pass.
(EXTRA_GCC_FLAGS): Remove ADAFLAGS, BOOT_ADAFLAGS, LANGUAGES,
BUILD_PREFIX, BUILD_PREFIX_1.
* configure.in: (BUILD_PREFIX, BUILD_PREFIX_1): Don't substitute.
* Makefile.def (bootstrap stage 1): Pass LIBCFLAGS too.
* Makefile.tpl (POSTSTAGE1_FLAGS_TO_PASS): Override LIBCFLAGS too.
* Makefile.tpl (configure-stage[+id+]-[+prefix+][+module+],
all-stage[+id+]-[+prefix+][+module+], : Use $(current_stage) instead
of `cat stage_current`. Always provide the `r' and `s' variables.
(clean-stage[+id+]-[+prefix+][+module+]): Likewise, and make it into
a single shell execution.
(configure-[+prefix+][+module+], all-[+prefix+][+module+]): For
bootstrapped modules, make the stage1 module if the build was not
started yet, else build the current stage.
(all-host, all-target): Omit bootstrapped modules (if bootstrapping).
(all-build, all-host, all-target, [+make_target+]-host,
[+make_target+]-target): Do not use \-continued lines.
(target modules): Depend on stage_last, not all-gcc, if bootstrapping.
(current_stage, restrap, stage_last): New.
* Makefile.in: Regenerate.
* configure: Regenerate.
gcc:
2006-02-20 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/25476
* Makefile.in (LDFLAGS): Define from autoconf substitution.
* Makefile.in (BOOTSTRAPPING): New.
(quickstrap): New definition if BOOTSTRAPPING=yes.
* Makefile.in (CONFIG_LANGUAGES): Substitute all_selected_languages.
* configure.ac: Substitute all_selected_languages with the languages
that were configured. For all the other variables except
lang_specs_files, include all the languages in the tree.
* configure: Regenerate.
* Makefile.in (stmp-fixinc): Copy includes from the prev-gcc directory,
if there is one. Run the commands to run fixincludes in the same
subshell.
* doc/makefile.texi: Document new makefile targets from toplevel bootstrap.
* doc/install.texi: Document exact conventions for searching target tools.
Document --with-build-time-tools. Document toplevel bootstrap. Document
something more about building an Ada cross-compiler. Don't list GNU Make
requirements which affect all platforms.
From-SVN: r111295
2006-02-20 09:29:17 +01:00
|
|
|
|
2006-02-20 Paolo Bonzini <bonzini@gnu.org>
|
|
|
|
|
|
|
|
|
|
PR bootstrap/25476
|
|
|
|
|
|
|
|
|
|
* Makefile.in (LDFLAGS): Define from autoconf substitution.
|
|
|
|
|
|
|
|
|
|
* Makefile.in (BOOTSTRAPPING): New.
|
|
|
|
|
(quickstrap): New definition if BOOTSTRAPPING=yes.
|
|
|
|
|
|
|
|
|
|
* Makefile.in (CONFIG_LANGUAGES): Substitute all_selected_languages.
|
|
|
|
|
* configure.ac: Substitute all_selected_languages with the languages
|
|
|
|
|
that were configured. For all the other variables except
|
|
|
|
|
lang_specs_files, include all the languages in the tree.
|
|
|
|
|
* configure: Regenerate.
|
2006-02-26 20:32:37 +01:00
|
|
|
|
|
re PR bootstrap/25670 (build fail with 'make all-gcc')
2006-02-20 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/25670
* Makefile.tpl ([+compare-target+]): Print explanation messages.
* Makefile.def (ADAFLAGS, BOOT_ADAFLAGS, LANGUAGES): New flags_to_pass.
* Makefile.tpl (BASE_FLAGS_TO_PASS): Support optional flags_to_pass.
(EXTRA_GCC_FLAGS): Remove ADAFLAGS, BOOT_ADAFLAGS, LANGUAGES,
BUILD_PREFIX, BUILD_PREFIX_1.
* configure.in: (BUILD_PREFIX, BUILD_PREFIX_1): Don't substitute.
* Makefile.def (bootstrap stage 1): Pass LIBCFLAGS too.
* Makefile.tpl (POSTSTAGE1_FLAGS_TO_PASS): Override LIBCFLAGS too.
* Makefile.tpl (configure-stage[+id+]-[+prefix+][+module+],
all-stage[+id+]-[+prefix+][+module+], : Use $(current_stage) instead
of `cat stage_current`. Always provide the `r' and `s' variables.
(clean-stage[+id+]-[+prefix+][+module+]): Likewise, and make it into
a single shell execution.
(configure-[+prefix+][+module+], all-[+prefix+][+module+]): For
bootstrapped modules, make the stage1 module if the build was not
started yet, else build the current stage.
(all-host, all-target): Omit bootstrapped modules (if bootstrapping).
(all-build, all-host, all-target, [+make_target+]-host,
[+make_target+]-target): Do not use \-continued lines.
(target modules): Depend on stage_last, not all-gcc, if bootstrapping.
(current_stage, restrap, stage_last): New.
* Makefile.in: Regenerate.
* configure: Regenerate.
gcc:
2006-02-20 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/25476
* Makefile.in (LDFLAGS): Define from autoconf substitution.
* Makefile.in (BOOTSTRAPPING): New.
(quickstrap): New definition if BOOTSTRAPPING=yes.
* Makefile.in (CONFIG_LANGUAGES): Substitute all_selected_languages.
* configure.ac: Substitute all_selected_languages with the languages
that were configured. For all the other variables except
lang_specs_files, include all the languages in the tree.
* configure: Regenerate.
* Makefile.in (stmp-fixinc): Copy includes from the prev-gcc directory,
if there is one. Run the commands to run fixincludes in the same
subshell.
* doc/makefile.texi: Document new makefile targets from toplevel bootstrap.
* doc/install.texi: Document exact conventions for searching target tools.
Document --with-build-time-tools. Document toplevel bootstrap. Document
something more about building an Ada cross-compiler. Don't list GNU Make
requirements which affect all platforms.
From-SVN: r111295
2006-02-20 09:29:17 +01:00
|
|
|
|
* Makefile.in (stmp-fixinc): Copy includes from the prev-gcc directory,
|
|
|
|
|
if there is one. Run the commands to run fixincludes in the same
|
|
|
|
|
subshell.
|
|
|
|
|
|
|
|
|
|
* doc/makefile.texi: Document new makefile targets from toplevel bootstrap.
|
|
|
|
|
* doc/install.texi: Document exact conventions for searching target tools.
|
|
|
|
|
Document --with-build-time-tools. Document toplevel bootstrap. Document
|
|
|
|
|
something more about building an Ada cross-compiler. Don't list GNU Make
|
|
|
|
|
requirements which affect all platforms.
|
|
|
|
|
|
2006-02-20 01:34:12 +01:00
|
|
|
|
2006-02-19 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/19543
|
|
|
|
|
* varasm.c (compare_constant) <INTEGER_CST>: Integer constants are
|
|
|
|
|
only equivalent if the have both the same mode and precision.
|
|
|
|
|
|
2006-02-20 00:09:26 +01:00
|
|
|
|
2006-02-20 Ben Elliston <bje@au.ibm.com>
|
|
|
|
|
|
|
|
|
|
* doc/tree-ssa.texi (Interfaces): Describe low vs. high GIMPLE.
|
|
|
|
|
|
2006-02-19 23:01:17 +01:00
|
|
|
|
2006-02-19 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
Steven Bosscher <stevenb.gcc@gmail.com>
|
|
|
|
|
|
|
|
|
|
* gcse.c (want_to_gcse_p): On STACK_REGS targets, look through
|
|
|
|
|
constant pool references to identify stack mode constants.
|
|
|
|
|
* rtlanal.c (constant_pool_constant_p): New predicate to check
|
|
|
|
|
whether operand is a floating point constant in the pool.
|
|
|
|
|
* rtl.h (constant_pool_constant_p): Prototype here.
|
|
|
|
|
* loop.c (scan_loop): Avoid hoisting constants from the constant
|
|
|
|
|
pool on STACK_REGS targets.
|
|
|
|
|
(load_mems): Likewise.
|
|
|
|
|
* loop-invariant.c (get_inv_cost): Make hoisting constant pool
|
|
|
|
|
loads into x87 registers expensive in terms of register pressure.
|
|
|
|
|
|
2006-02-19 22:49:58 +01:00
|
|
|
|
2006-02-19 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
|
|
* gthr-posix.h: On Tru64, map __gthr_foo as a weak reference to
|
|
|
|
|
__foo and not foo when _PTHREAD_USE_MANGLED_NAMES_ is defined.
|
|
|
|
|
|
2006-02-19 19:46:12 +01:00
|
|
|
|
2006-02-19 David Edelsohn <edelsohn@gnu.org>
|
|
|
|
|
|
|
|
|
|
* config/rs6000/xcoff.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
|
|
|
|
|
* config/rs6000/rs6000.c (rs6000_xcoff_asm_output_anchor): Define.
|
|
|
|
|
|
2006-02-19 19:26:00 +01:00
|
|
|
|
2006-02-19 Daniel Berlin <dberlin@dberlin.org>
|
|
|
|
|
|
|
|
|
|
* doc/invoke.texi: Document -fipa-pta.
|
|
|
|
|
* common.opt: Add ipa-pta option.
|
|
|
|
|
* tree-ssa-structalias.c (DONT_PROPAGATE_WITH_ANYTHING): Removed.
|
|
|
|
|
(do_sd_constraint): Enable DONT_PROPAGATE_WITH_ANYTHING code.
|
|
|
|
|
(do_ds_constraint): Ditto.
|
|
|
|
|
(get_constraint_for): Only add to referenced_vars if
|
|
|
|
|
referenced_vars exists.
|
|
|
|
|
(insert_into_field_list): Rewrite to do this unsorted.
|
|
|
|
|
(insert_into_field_list_sorted): Rename old insert_into_field_list
|
|
|
|
|
to this.
|
|
|
|
|
(create_function_info_for): Use insert_into_field_list_sorted.
|
|
|
|
|
(create_variable_info_for): Rewrite so it uses unsorted version,
|
|
|
|
|
since the field list is sorted.
|
|
|
|
|
(intra_create_variable_infos): Only add to referenced_vars if
|
|
|
|
|
referenced_vars exists.
|
|
|
|
|
(ipa_pta_execute): Init heapvars, and delete when done.
|
|
|
|
|
* passes.c (init_optimization_passes): Add call to pass_ipa_pta.
|
|
|
|
|
|
2006-02-19 19:15:58 +01:00
|
|
|
|
2006-02-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
|
|
|
|
|
|
|
|
|
* doc/install.texi: Add missing `@samp'.
|
|
|
|
|
|
2006-02-19 06:59:55 +01:00
|
|
|
|
2006-02-18 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
|
|
* config/rs6000/darwin.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P):
|
|
|
|
|
Use the arguments.
|
|
|
|
|
|
2006-02-19 01:02:20 +01:00
|
|
|
|
2006-02-18 Mark Wielaard <mark@klomp.org>
|
|
|
|
|
|
|
|
|
|
* doc/contrib.texi (Contributors): Add classpath/libgcj hackers
|
|
|
|
|
who added new 4.1 features, bug fixes and integration support.
|
|
|
|
|
|
2006-02-19 19:46:12 +01:00
|
|
|
|
2006-02-18 David Edelsohn <edelsohn@gnu.org>
|
2006-02-19 00:19:02 +01:00
|
|
|
|
|
|
|
|
|
PR target/26350
|
|
|
|
|
* config/rs6000/rs6000.md (extenddftf2): Force 0.0 to validized
|
|
|
|
|
MEM for ABI_V4 pic.
|
|
|
|
|
|
2006-02-19 19:46:12 +01:00
|
|
|
|
2006-02-18 Richard Sandiford <richard@codesourcery.com>
|
re PR target/9703 ([arm] Accessing data through constant pool more times could be solved in less instructions)
* cselib.c (cselib_init): Change RTX_SIZE to RTX_CODE_SIZE.
* emit-rtl.c (copy_rtx_if_shared_1): Use shallow_copy_rtx.
(copy_insn_1): Likewise. Don't copy each field individually.
Reindent.
* read-rtl.c (apply_macro_to_rtx): Use RTX_CODE_SIZE instead
of RTX_SIZE.
* reload1.c (eliminate_regs): Use shallow_copy_rtx.
* rtl.c (rtx_size): Rename variable to...
(rtx_code_size): ...this.
(rtx_size): New function.
(rtx_alloc_stat): Use RTX_CODE_SIZE instead of RTX_SIZE.
(copy_rtx): Use shallow_copy_rtx. Don't copy each field individually.
Reindent.
(shallow_copy_rtx_stat): Use rtx_size instead of RTX_SIZE.
* rtl.h (rtx_code_size): New variable.
(rtx_size): Change from a variable to a function.
(RTX_SIZE): Rename to...
(RTX_CODE_SIZE): ...this.
PR target/9703
PR tree-optimization/17106
* doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Document.
(Anchored Addresses): New section.
* doc/invoke.texi (-fsection-anchors): Document.
* doc/rtl.texi (SYMBOL_REF_IN_BLOCK_P, SYMBOL_FLAG_IN_BLOCK): Likewise.
(SYMBOL_REF_ANCHOR_P, SYMBOL_FLAG_ANCHOR): Likewise.
(SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): Likewise.
* hooks.c (hook_bool_mode_rtx_false): New function.
* hooks.h (hook_bool_mode_rtx_false): Declare.
* gengtype.c (create_optional_field): New function.
(adjust_field_rtx_def): Add the "block_sym" field for SYMBOL_REFs when
SYMBOL_REF_IN_BLOCK_P is true.
* target.h (output_anchor, use_blocks_for_constant_p): New hooks.
(min_anchor_offset, max_anchor_offset): Likewise.
(use_anchors_for_symbol_p): New hook.
* toplev.c (compile_file): Call output_object_blocks.
(target_supports_section_anchors_p): New function.
(process_options): Check that -fsection-anchors is only used on
targets that support it and when -funit-at-a-time is in effect.
* tree-ssa-loop-ivopts.c (prepare_decl_rtl): Only create DECL_RTL
if the decl doesn't have one.
* dwarf2out.c: Remove instantiations of VEC(rtx,gc).
* expr.c (emit_move_multi_word, emit_move_insn): Pass the result
of force_const_mem through use_anchored_address.
(expand_expr_constant): New function.
(expand_expr_addr_expr_1): Call it. Use the same modifier when
calling expand_expr for INDIRECT_REF.
(expand_expr_real_1): Pass DECL_RTL through use_anchored_address
for all modifiers except EXPAND_INITIALIZER. Use expand_expr_constant.
* expr.h (use_anchored_address): Declare.
* loop-unroll.c: Don't declare rtx vectors here.
* explow.c: Include output.h.
(validize_mem): Call use_anchored_address.
(use_anchored_address): New function.
* common.opt (-fsection-anchors): New switch.
* varasm.c (object_block_htab, anchor_labelno): New variables.
(hash_section, object_block_entry_eq, object_block_entry_hash)
(use_object_blocks_p, get_block_for_section, create_block_symbol)
(use_blocks_for_decl_p, change_symbol_section): New functions.
(get_variable_section): New function, split out from assemble_variable.
(make_decl_rtl): Create a block symbol if use_object_blocks_p and
use_blocks_for_decl_p say so. Use change_symbol_section if the
symbol has already been created.
(assemble_variable_contents): New function, split out from...
(assemble_variable): ...here. Don't output any code for
block symbols; just pass them to place_block_symbol.
Use get_variable_section and assemble_variable_contents.
(get_constant_alignment, get_constant_section, get_constant_size): New
functions, split from output_constant_def_contents.
(build_constant_desc): Create a block symbol if use_object_blocks_p
says so. Or into SYMBOL_REF_FLAGS.
(assemble_constant_contents): New function, split from...
(output_constant_def_contents): ...here. Don't output any code
for block symbols; just pass them to place_section_symbol.
Use get_constant_section and get_constant_alignment.
(force_const_mem): Create a block symbol if use_object_blocks_p and
use_blocks_for_constant_p say so. Or into SYMBOL_REF_FLAGS.
(output_constant_pool_1): Add an explicit alignment argument.
Don't switch sections here.
(output_constant_pool): Adjust call to output_constant_pool_1.
Switch sections here instead. Don't output anything for block symbols;
just pass them to place_block_symbol.
(init_varasm_once): Initialize object_block_htab.
(default_encode_section_info): Keep the old SYMBOL_FLAG_IN_BLOCK.
(default_asm_output_anchor, default_use_aenchors_for_symbol_p)
(place_block_symbol, get_section_anchor, output_object_block)
(output_object_block_htab, output_object_blocks): New functions.
* target-def.h (TARGET_ASM_OUTPUT_ANCHOR): New macro.
(TARGET_ASM_OUT): Include it.
(TARGET_USE_BLOCKS_FOR_CONSTANT_P): New macro.
(TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET): New macros.
(TARGET_USE_ANCHORS_FOR_SYMBOL_P): New macro.
(TARGET_INITIALIZER): Include them.
* rtl.c (rtl_check_failed_block_symbol): New function.
* rtl.h: Include vec.h. Declare heap and gc rtx vectors.
(block_symbol, object_block): New structures.
(rtx_def): Add a block_symbol field to the union.
(BLOCK_SYMBOL_CHECK): New macro.
(rtl_check_failed_block_symbol): Declare.
(SYMBOL_FLAG_IN_BLOCK, SYMBOL_FLAG_ANCHOR): New SYMBOL_REF flags.
(SYMBOL_REF_IN_BLOCK_P, SYMBOL_REF_ANCHOR_P): New predicates.
(SYMBOL_FLAG_MACH_DEP_SHIFT): Bump by 2.
(SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): New accessors.
* output.h (output_section_symbols): Declare.
(object_block): Name structure.
(place_section_symbol, get_section_anchor, default_asm_output_anchor)
(default_use_anchors_for_symbol_p): Declare.
* Makefile.in (RTL_BASE_H): Add vec.h.
(explow.o): Depend on output.h.
* config/rs6000/rs6000.c (TARGET_MIN_ANCHOR_OFFSET): Override default.
(TARGET_MAX_ANCHOR_OFFSET): Likewise.
(TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
(rs6000_use_blocks_for_constant_p): New function.
From-SVN: r111254
2006-02-18 23:06:53 +01:00
|
|
|
|
|
|
|
|
|
* cselib.c (cselib_init): Change RTX_SIZE to RTX_CODE_SIZE.
|
|
|
|
|
* emit-rtl.c (copy_rtx_if_shared_1): Use shallow_copy_rtx.
|
|
|
|
|
(copy_insn_1): Likewise. Don't copy each field individually.
|
|
|
|
|
Reindent.
|
|
|
|
|
* read-rtl.c (apply_macro_to_rtx): Use RTX_CODE_SIZE instead
|
|
|
|
|
of RTX_SIZE.
|
|
|
|
|
* reload1.c (eliminate_regs): Use shallow_copy_rtx.
|
|
|
|
|
* rtl.c (rtx_size): Rename variable to...
|
|
|
|
|
(rtx_code_size): ...this.
|
|
|
|
|
(rtx_size): New function.
|
|
|
|
|
(rtx_alloc_stat): Use RTX_CODE_SIZE instead of RTX_SIZE.
|
|
|
|
|
(copy_rtx): Use shallow_copy_rtx. Don't copy each field individually.
|
|
|
|
|
Reindent.
|
|
|
|
|
(shallow_copy_rtx_stat): Use rtx_size instead of RTX_SIZE.
|
|
|
|
|
* rtl.h (rtx_code_size): New variable.
|
|
|
|
|
(rtx_size): Change from a variable to a function.
|
|
|
|
|
(RTX_SIZE): Rename to...
|
|
|
|
|
(RTX_CODE_SIZE): ...this.
|
|
|
|
|
|
|
|
|
|
PR target/9703
|
|
|
|
|
PR tree-optimization/17106
|
|
|
|
|
* doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Document.
|
|
|
|
|
(Anchored Addresses): New section.
|
|
|
|
|
* doc/invoke.texi (-fsection-anchors): Document.
|
|
|
|
|
* doc/rtl.texi (SYMBOL_REF_IN_BLOCK_P, SYMBOL_FLAG_IN_BLOCK): Likewise.
|
|
|
|
|
(SYMBOL_REF_ANCHOR_P, SYMBOL_FLAG_ANCHOR): Likewise.
|
|
|
|
|
(SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): Likewise.
|
|
|
|
|
* hooks.c (hook_bool_mode_rtx_false): New function.
|
|
|
|
|
* hooks.h (hook_bool_mode_rtx_false): Declare.
|
|
|
|
|
* gengtype.c (create_optional_field): New function.
|
|
|
|
|
(adjust_field_rtx_def): Add the "block_sym" field for SYMBOL_REFs when
|
|
|
|
|
SYMBOL_REF_IN_BLOCK_P is true.
|
|
|
|
|
* target.h (output_anchor, use_blocks_for_constant_p): New hooks.
|
|
|
|
|
(min_anchor_offset, max_anchor_offset): Likewise.
|
|
|
|
|
(use_anchors_for_symbol_p): New hook.
|
|
|
|
|
* toplev.c (compile_file): Call output_object_blocks.
|
|
|
|
|
(target_supports_section_anchors_p): New function.
|
|
|
|
|
(process_options): Check that -fsection-anchors is only used on
|
|
|
|
|
targets that support it and when -funit-at-a-time is in effect.
|
|
|
|
|
* tree-ssa-loop-ivopts.c (prepare_decl_rtl): Only create DECL_RTL
|
|
|
|
|
if the decl doesn't have one.
|
|
|
|
|
* dwarf2out.c: Remove instantiations of VEC(rtx,gc).
|
|
|
|
|
* expr.c (emit_move_multi_word, emit_move_insn): Pass the result
|
|
|
|
|
of force_const_mem through use_anchored_address.
|
|
|
|
|
(expand_expr_constant): New function.
|
|
|
|
|
(expand_expr_addr_expr_1): Call it. Use the same modifier when
|
|
|
|
|
calling expand_expr for INDIRECT_REF.
|
|
|
|
|
(expand_expr_real_1): Pass DECL_RTL through use_anchored_address
|
|
|
|
|
for all modifiers except EXPAND_INITIALIZER. Use expand_expr_constant.
|
|
|
|
|
* expr.h (use_anchored_address): Declare.
|
|
|
|
|
* loop-unroll.c: Don't declare rtx vectors here.
|
|
|
|
|
* explow.c: Include output.h.
|
|
|
|
|
(validize_mem): Call use_anchored_address.
|
|
|
|
|
(use_anchored_address): New function.
|
|
|
|
|
* common.opt (-fsection-anchors): New switch.
|
|
|
|
|
* varasm.c (object_block_htab, anchor_labelno): New variables.
|
|
|
|
|
(hash_section, object_block_entry_eq, object_block_entry_hash)
|
|
|
|
|
(use_object_blocks_p, get_block_for_section, create_block_symbol)
|
|
|
|
|
(use_blocks_for_decl_p, change_symbol_section): New functions.
|
|
|
|
|
(get_variable_section): New function, split out from assemble_variable.
|
|
|
|
|
(make_decl_rtl): Create a block symbol if use_object_blocks_p and
|
|
|
|
|
use_blocks_for_decl_p say so. Use change_symbol_section if the
|
|
|
|
|
symbol has already been created.
|
|
|
|
|
(assemble_variable_contents): New function, split out from...
|
|
|
|
|
(assemble_variable): ...here. Don't output any code for
|
|
|
|
|
block symbols; just pass them to place_block_symbol.
|
|
|
|
|
Use get_variable_section and assemble_variable_contents.
|
|
|
|
|
(get_constant_alignment, get_constant_section, get_constant_size): New
|
|
|
|
|
functions, split from output_constant_def_contents.
|
|
|
|
|
(build_constant_desc): Create a block symbol if use_object_blocks_p
|
|
|
|
|
says so. Or into SYMBOL_REF_FLAGS.
|
|
|
|
|
(assemble_constant_contents): New function, split from...
|
|
|
|
|
(output_constant_def_contents): ...here. Don't output any code
|
|
|
|
|
for block symbols; just pass them to place_section_symbol.
|
|
|
|
|
Use get_constant_section and get_constant_alignment.
|
|
|
|
|
(force_const_mem): Create a block symbol if use_object_blocks_p and
|
|
|
|
|
use_blocks_for_constant_p say so. Or into SYMBOL_REF_FLAGS.
|
|
|
|
|
(output_constant_pool_1): Add an explicit alignment argument.
|
|
|
|
|
Don't switch sections here.
|
|
|
|
|
(output_constant_pool): Adjust call to output_constant_pool_1.
|
|
|
|
|
Switch sections here instead. Don't output anything for block symbols;
|
|
|
|
|
just pass them to place_block_symbol.
|
|
|
|
|
(init_varasm_once): Initialize object_block_htab.
|
|
|
|
|
(default_encode_section_info): Keep the old SYMBOL_FLAG_IN_BLOCK.
|
|
|
|
|
(default_asm_output_anchor, default_use_aenchors_for_symbol_p)
|
|
|
|
|
(place_block_symbol, get_section_anchor, output_object_block)
|
|
|
|
|
(output_object_block_htab, output_object_blocks): New functions.
|
|
|
|
|
* target-def.h (TARGET_ASM_OUTPUT_ANCHOR): New macro.
|
|
|
|
|
(TARGET_ASM_OUT): Include it.
|
|
|
|
|
(TARGET_USE_BLOCKS_FOR_CONSTANT_P): New macro.
|
|
|
|
|
(TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET): New macros.
|
|
|
|
|
(TARGET_USE_ANCHORS_FOR_SYMBOL_P): New macro.
|
|
|
|
|
(TARGET_INITIALIZER): Include them.
|
|
|
|
|
* rtl.c (rtl_check_failed_block_symbol): New function.
|
|
|
|
|
* rtl.h: Include vec.h. Declare heap and gc rtx vectors.
|
|
|
|
|
(block_symbol, object_block): New structures.
|
|
|
|
|
(rtx_def): Add a block_symbol field to the union.
|
|
|
|
|
(BLOCK_SYMBOL_CHECK): New macro.
|
|
|
|
|
(rtl_check_failed_block_symbol): Declare.
|
|
|
|
|
(SYMBOL_FLAG_IN_BLOCK, SYMBOL_FLAG_ANCHOR): New SYMBOL_REF flags.
|
|
|
|
|
(SYMBOL_REF_IN_BLOCK_P, SYMBOL_REF_ANCHOR_P): New predicates.
|
|
|
|
|
(SYMBOL_FLAG_MACH_DEP_SHIFT): Bump by 2.
|
|
|
|
|
(SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): New accessors.
|
|
|
|
|
* output.h (output_section_symbols): Declare.
|
|
|
|
|
(object_block): Name structure.
|
|
|
|
|
(place_section_symbol, get_section_anchor, default_asm_output_anchor)
|
|
|
|
|
(default_use_anchors_for_symbol_p): Declare.
|
|
|
|
|
* Makefile.in (RTL_BASE_H): Add vec.h.
|
|
|
|
|
(explow.o): Depend on output.h.
|
|
|
|
|
* config/rs6000/rs6000.c (TARGET_MIN_ANCHOR_OFFSET): Override default.
|
|
|
|
|
(TARGET_MAX_ANCHOR_OFFSET): Likewise.
|
|
|
|
|
(TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
|
|
|
|
|
(rs6000_use_blocks_for_constant_p): New function.
|
|
|
|
|
|
2006-02-18 22:32:06 +01:00
|
|
|
|
2006-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
|
|
|
|
|
|
|
|
|
* doc/install.texi (hppa*-hp-hpux*): Update for 4.1.0.
|
|
|
|
|
|
2006-02-18 22:09:35 +01:00
|
|
|
|
2006-02-18 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
|
|
PR tree-opt/25680
|
|
|
|
|
* tree-ssa-ccp.c (ccp_fold): Handle store CCP of REALPART_EXPR and
|
|
|
|
|
IMAGPART_EXPR.
|
|
|
|
|
|
2006-02-18 21:31:28 +01:00
|
|
|
|
2006-02-18 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
* tree-flow.h (struct var_ann_d): Rename field is_alias_tag to
|
|
|
|
|
is_aliased.
|
|
|
|
|
Update all users.
|
|
|
|
|
|
2006-02-18 19:58:42 +01:00
|
|
|
|
2006-02-18 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/26334
|
|
|
|
|
* stmt.c (decl_overlaps_hard_reg_set_p): Use DECL_HARD_REGISTER
|
|
|
|
|
instead of DECL_REGISTER.
|
|
|
|
|
|
2006-02-18 17:15:07 +01:00
|
|
|
|
2006-02-18 Olivier Hainque <hainque@adacore.com>
|
|
|
|
|
|
|
|
|
|
PR ada/13408
|
|
|
|
|
* pa.h (WIDEST_HARDWARE_FP_SIZE): Define.
|
|
|
|
|
|
re PR target/24837 (move dynamic linker names out of LINK_SPEC and into new DYNAMIC_LINKER)
PR target/24837
* config.gcc: Define UCLIBC_DEFAULT to 0 or 1.
* opth-gen.awk: Handle Var and InverseMask together.
* config/linux.opt (muclibc, mglibc): Use Var(linux_uclibc).
* config/linux.h: Use #if not #ifdef for testing UCLIBC_DEFAULT.
(TARGET_C99_FUNCTIONS): Test OPTION_GLIBC not TARGET_GLIBC.
(CHOOSE_DYNAMIC_LINKER): Give an error for -mglibc and -muclibc
used together.
(UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
* config/alpha/linux-elf.h (GLIBC_DYNAMIC_LINKER,
UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
LINUX_DYNAMIC_LINKER): Define.
(ELF_DYNAMIC_LINKER): Define to LINUX_DYNAMIC_LINKER.
* config/alpha/linux.h (TARGET_C99_FUNCTIONS): Define to
TARGET_GLIBC.
* config/cris/linux.h (GLIBC_DYNAMIC_LINKER): Define.
(CRIS_LINK_SUBTARGET_SPEC): Pass a -dynamic-linker option.
* config/frv/linux.h (GLIBC_DYNAMIC_LINKER): Define.
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
(TARGET_C99_FUNCTIONS): Don't define.
* config/i386/linux.h (DYNAMIC_LINKER): Rename to
GLIBC_DYNAMIC_LINKER.
(SUBTARGET_EXTRA_SPECS): Use LINUX_DYNAMIC_LINKER.
* config/i386/linux64.h (GLIBC_DYNAMIC_LINKER32,
GLIBC_DYNAMIC_LINKER64): Define.
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
LINUX_DYNAMIC_LINKER64.
* config/ia64/linux.h (GLIBC_DYNAMIC_LINKER): Define.
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
* config/m32r/linux.h (GLIBC_DYNAMIC_LINKE): Define.
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
* config/m68k/linux.h (GLIBC_DYNAMIC_LINKER): Define.
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
* config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32,
GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32,
UCLIBC_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKERN32): Define.
(LINK_SPEC): Use LINUX_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKER64
and LINUX_DYNAMIC_LINKER32.
* config/mn10300/linux.h (GLIBC_DYNAMIC_LINKER): Define.
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
* config/pa/pa-linux.h (GLIBC_DYNAMIC_LINKER): Define.
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
* config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define to
TARGET_GLIBC.
* config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
(GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64,
UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
CHOOSE_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
(LINK_OS_LINUX_SPEC32): Use LINUX_DYNAMIC_LINKER32.
(LINK_OS_LINUX_SPEC64): Use LINUX_DYNAMIC_LINKER64.
* config/rs6000/sysv4.h (GLIBC_DYNAMIC_LINKER,
UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
LINUX_DYNAMIC_LINKER): Define.
(LINK_OS_LINUX_SPEC): Use LINUX_DYNAMIC_LINKE.
* config/s390/linux.h (GLIBC_DYNAMIC_LINKER32,
GLIBC_DYNAMIC_LINKER64): Define.
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
LINUX_DYNAMIC_LINKER64.
* config/sh/linux.h (GLIBC_DYNAMIC_LINKER): Define.
(SUBTARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
* config/sparc/linux.h (GLIBC_DYNAMIC_LINKER,
UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
LINUX_DYNAMIC_LINKER): Define.
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
(TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
* config/sparc/linux64.h (GLIBC_DYNAMIC_LINKER32,
GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER32,
UCLIBC_DYNAMIC_LINKER64, CHOOSE_DYNAMIC_LINKER,
LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
(LINK_ARCH32_SPEC): Use LINUX_DYNAMIC_LINKER32.
(LINK_ARCH64_SPEC, LINK_SPEC): Use LINUX_DYNAMIC_LINKER64.
(TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
* config/xtensa/linux.h (GLIBC_DYNAMIC_LINKER): Define.
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
* doc/invoke.texi (-muclibc): Remove caveat about supported
targets.
testsuite:
* gcc.dg/glibc-uclibc-1.c, gcc.dg/glibc-uclibc-2.c: New tests.
From-SVN: r111235
2006-02-18 12:12:51 +01:00
|
|
|
|
2006-02-18 Joseph S. Myers <joseph@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR target/24837
|
|
|
|
|
* config.gcc: Define UCLIBC_DEFAULT to 0 or 1.
|
|
|
|
|
* opth-gen.awk: Handle Var and InverseMask together.
|
|
|
|
|
* config/linux.opt (muclibc, mglibc): Use Var(linux_uclibc).
|
|
|
|
|
* config/linux.h: Use #if not #ifdef for testing UCLIBC_DEFAULT.
|
|
|
|
|
(TARGET_C99_FUNCTIONS): Test OPTION_GLIBC not TARGET_GLIBC.
|
|
|
|
|
(CHOOSE_DYNAMIC_LINKER): Give an error for -mglibc and -muclibc
|
|
|
|
|
used together.
|
|
|
|
|
(UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
|
|
|
|
|
LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
|
|
|
|
|
* config/alpha/linux-elf.h (GLIBC_DYNAMIC_LINKER,
|
|
|
|
|
UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
|
|
|
|
|
LINUX_DYNAMIC_LINKER): Define.
|
|
|
|
|
(ELF_DYNAMIC_LINKER): Define to LINUX_DYNAMIC_LINKER.
|
|
|
|
|
* config/alpha/linux.h (TARGET_C99_FUNCTIONS): Define to
|
|
|
|
|
TARGET_GLIBC.
|
|
|
|
|
* config/cris/linux.h (GLIBC_DYNAMIC_LINKER): Define.
|
|
|
|
|
(CRIS_LINK_SUBTARGET_SPEC): Pass a -dynamic-linker option.
|
|
|
|
|
* config/frv/linux.h (GLIBC_DYNAMIC_LINKER): Define.
|
|
|
|
|
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
|
|
|
|
|
(TARGET_C99_FUNCTIONS): Don't define.
|
|
|
|
|
* config/i386/linux.h (DYNAMIC_LINKER): Rename to
|
|
|
|
|
GLIBC_DYNAMIC_LINKER.
|
|
|
|
|
(SUBTARGET_EXTRA_SPECS): Use LINUX_DYNAMIC_LINKER.
|
|
|
|
|
* config/i386/linux64.h (GLIBC_DYNAMIC_LINKER32,
|
|
|
|
|
GLIBC_DYNAMIC_LINKER64): Define.
|
|
|
|
|
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
|
|
|
|
|
LINUX_DYNAMIC_LINKER64.
|
|
|
|
|
* config/ia64/linux.h (GLIBC_DYNAMIC_LINKER): Define.
|
|
|
|
|
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
|
|
|
|
|
* config/m32r/linux.h (GLIBC_DYNAMIC_LINKE): Define.
|
|
|
|
|
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
|
|
|
|
|
* config/m68k/linux.h (GLIBC_DYNAMIC_LINKER): Define.
|
|
|
|
|
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
|
|
|
|
|
* config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32,
|
|
|
|
|
GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32,
|
|
|
|
|
UCLIBC_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKERN32): Define.
|
|
|
|
|
(LINK_SPEC): Use LINUX_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKER64
|
|
|
|
|
and LINUX_DYNAMIC_LINKER32.
|
|
|
|
|
* config/mn10300/linux.h (GLIBC_DYNAMIC_LINKER): Define.
|
|
|
|
|
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
|
|
|
|
|
* config/pa/pa-linux.h (GLIBC_DYNAMIC_LINKER): Define.
|
|
|
|
|
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
|
|
|
|
|
* config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define to
|
|
|
|
|
TARGET_GLIBC.
|
|
|
|
|
* config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
|
|
|
|
|
(GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64,
|
|
|
|
|
UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
|
|
|
|
|
CHOOSE_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
|
|
|
|
|
LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
|
|
|
|
|
(LINK_OS_LINUX_SPEC32): Use LINUX_DYNAMIC_LINKER32.
|
|
|
|
|
(LINK_OS_LINUX_SPEC64): Use LINUX_DYNAMIC_LINKER64.
|
|
|
|
|
* config/rs6000/sysv4.h (GLIBC_DYNAMIC_LINKER,
|
|
|
|
|
UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
|
|
|
|
|
LINUX_DYNAMIC_LINKER): Define.
|
|
|
|
|
(LINK_OS_LINUX_SPEC): Use LINUX_DYNAMIC_LINKE.
|
|
|
|
|
* config/s390/linux.h (GLIBC_DYNAMIC_LINKER32,
|
|
|
|
|
GLIBC_DYNAMIC_LINKER64): Define.
|
|
|
|
|
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
|
|
|
|
|
LINUX_DYNAMIC_LINKER64.
|
|
|
|
|
* config/sh/linux.h (GLIBC_DYNAMIC_LINKER): Define.
|
|
|
|
|
(SUBTARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
|
|
|
|
|
* config/sparc/linux.h (GLIBC_DYNAMIC_LINKER,
|
|
|
|
|
UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
|
|
|
|
|
LINUX_DYNAMIC_LINKER): Define.
|
|
|
|
|
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
|
|
|
|
|
(TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
|
|
|
|
|
* config/sparc/linux64.h (GLIBC_DYNAMIC_LINKER32,
|
|
|
|
|
GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER32,
|
|
|
|
|
UCLIBC_DYNAMIC_LINKER64, CHOOSE_DYNAMIC_LINKER,
|
|
|
|
|
LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
|
|
|
|
|
(LINK_ARCH32_SPEC): Use LINUX_DYNAMIC_LINKER32.
|
|
|
|
|
(LINK_ARCH64_SPEC, LINK_SPEC): Use LINUX_DYNAMIC_LINKER64.
|
|
|
|
|
(TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
|
|
|
|
|
* config/xtensa/linux.h (GLIBC_DYNAMIC_LINKER): Define.
|
|
|
|
|
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
|
|
|
|
|
* doc/invoke.texi (-muclibc): Remove caveat about supported
|
|
|
|
|
targets.
|
|
|
|
|
|
2006-02-18 10:25:31 +01:00
|
|
|
|
2006-02-17 Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
* doc/cpp.texi (__TIMESTAMP__): Document.
|
|
|
|
|
|
2006-02-18 06:22:46 +01:00
|
|
|
|
2006-02-17 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/25600
|
|
|
|
|
* fold-const.c (fold_binary): Fold (X >> C) != 0 into X < 0 when
|
|
|
|
|
C is one less than the width of X (and related transformations).
|
2006-03-02 18:35:10 +01:00
|
|
|
|
* simplify-rtx.c (simplify_unary_operation_1): Transform
|
2006-02-18 06:22:46 +01:00
|
|
|
|
(neg (lt x 0)) into either (ashiftrt X C) or (lshiftrt X C)
|
|
|
|
|
depending on STORE_FLAG_VALUE, were C is one less then the
|
|
|
|
|
width of X.
|
|
|
|
|
|
2006-02-18 01:09:51 +01:00
|
|
|
|
2006-02-17 Daniel Berlin <dberlin@dberlin.org>
|
|
|
|
|
|
|
|
|
|
Fix PR tree-optimization/26341
|
2006-02-26 20:32:37 +01:00
|
|
|
|
* tree-ssa-operands.c (add_virtual_operand): Remove assert
|
2006-02-18 01:09:51 +01:00
|
|
|
|
about NAME_MEMORY_TAG's.
|
|
|
|
|
|
2006-02-17 23:19:05 +01:00
|
|
|
|
2006-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
|
|
|
|
|
|
|
|
|
PR target/26255
|
|
|
|
|
* pa.md: Create separate HI and QI move patterns for 32-bit and 64-bit
|
|
|
|
|
with hardware float support, and software float support. Add fcpy
|
|
|
|
|
alternative to hardware patterns. Add alternatives to copy between
|
|
|
|
|
general and floating-point registers to the 32-bit pattern.
|
|
|
|
|
* pa.c (pa_secondary_reload): Don't abort if reload tries to find a
|
|
|
|
|
secondary reload to load a QI or HI mode constant into a floating
|
2006-02-26 20:32:37 +01:00
|
|
|
|
point register.
|
2006-02-17 23:19:05 +01:00
|
|
|
|
* pa32-regs.h (VALID_FP_MODE_P): Allow QImode and HImode.
|
|
|
|
|
* pa64-regs.h (VALID_FP_MODE_P): Likewise.
|
|
|
|
|
|
2006-02-17 20:52:28 +01:00
|
|
|
|
2006-02-17 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
|
|
PR target/26272
|
|
|
|
|
* config/rs6000/darwin.md (load_macho_picbase_si): Add
|
|
|
|
|
pc to the pattern.
|
|
|
|
|
(load_macho_picbase_di): Likewise.
|
|
|
|
|
|
2006-02-17 01:18:03 +01:00
|
|
|
|
2006-02-16 Jeff Law <law@redhat.com>
|
|
|
|
|
|
2006-02-17 05:15:32 +01:00
|
|
|
|
* tree-vrp.c (set_value_range_to_nonnegative): New function.
|
|
|
|
|
(vrp_expr_computes_nonnegative, ssa_name_nonnegative_p): Likewise.
|
|
|
|
|
(ssa_name_nonzero_p): Likewise.
|
|
|
|
|
(get_value_range): Return NULL if VRP is not running.
|
|
|
|
|
(extract_range_from_expr): Fallback to tree_expr_XXX_p if
|
|
|
|
|
VRP routines do not discover a range.
|
|
|
|
|
(vrp_finalize): Clear VR_VALUE to indicate VRP is not running.
|
|
|
|
|
* tree.h (ssa_name_nonzero_p, ssa_name_nonnegative_p): Prototype.
|
|
|
|
|
* fold-const.c (tree_expr_nonzero_p): For SSA_NAMEs, query VRP.
|
|
|
|
|
(tree_expr_nonnegative_p): Similarly.
|
|
|
|
|
* tree-ssa-dom.c (nonzero_vars, nonzero_vars_stack): Remove.
|
|
|
|
|
(restore_nonzero_vars_to_original_value): Remove.
|
|
|
|
|
(unsafe_associative_fp_binop): Remove.
|
|
|
|
|
(tree_ssa_dominator_optimize): Remove initialization and
|
|
|
|
|
finalization of nonzero_vars and nonzero_vars_stack.
|
|
|
|
|
(dom_opt_initialize_block): No longer push marker on
|
|
|
|
|
nonzero_vars_stack.
|
|
|
|
|
(dom_opt_finalize_block): No longer call
|
|
|
|
|
restore_nonzero_vars_to_original_value.
|
|
|
|
|
(record_equivalences_from_phis): No longer look for
|
|
|
|
|
nonzero PHI arguments.
|
|
|
|
|
(cprop_into_successor_phis): No longer propagate nonzero
|
|
|
|
|
property into PHI arguments. Lose unused argument. Caller
|
|
|
|
|
updated.
|
|
|
|
|
(record_equivalences_from_stmt): No longer record nonzero
|
|
|
|
|
values for SSA_NAMEs.
|
|
|
|
|
(lookup_avail_expr): No longer use nonzero_vars.
|
|
|
|
|
|
2006-02-17 01:18:03 +01:00
|
|
|
|
* stor-layout.c (set_sizetype): Set TYPE_MAX_VALUE properly
|
|
|
|
|
for sizetype when sizetype is unsigned.
|
|
|
|
|
|
2006-02-17 01:03:06 +01:00
|
|
|
|
2006-02-16 Denis Nagorny <denis_nagorny@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/25603
|
|
|
|
|
* reload.c (reg_inc_found_and_valid_p): New. Check REG_INC note.
|
|
|
|
|
(regno_clobbered_p): Use it. Reusing SETS argument for REG_INC case.
|
2006-02-26 20:32:37 +01:00
|
|
|
|
* reload1.c (choose_reload_regs): Added call of regno_clobbered_p
|
2006-02-17 01:03:06 +01:00
|
|
|
|
with new meaning of SETS.
|
|
|
|
|
|
2006-02-17 00:29:10 +01:00
|
|
|
|
2006-02-16 Joseph S. Myers <joseph@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR target/20353
|
|
|
|
|
PR target/24578
|
|
|
|
|
PR target/24837
|
|
|
|
|
* config/linux.opt: New file.
|
|
|
|
|
* config/linux.h (CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
|
|
|
|
|
LINUX_DYNAMIC_LINKER): Define.
|
|
|
|
|
(TARGET_C99_FUNCTIONS): Define depending on TARGET_GLIBC.
|
|
|
|
|
* config.gcc (*-*-linux*): Define extra_options.
|
|
|
|
|
(*-*-*uclibc*): Define UCLIBC_DEFAULT.
|
|
|
|
|
(arm*-*-linux-gnueabi): Change to arm*-*-linux-*eabi.
|
|
|
|
|
* config/arm/linux-eabi.h (LINUX_TARGET_INTERPRETER): Change to
|
|
|
|
|
GLIBC_DYNAMIC_LINKER.
|
|
|
|
|
* config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): Likewise.
|
|
|
|
|
(LINUX_TARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
|
|
|
|
|
* config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Define.
|
|
|
|
|
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
|
|
|
|
|
* doc/invoke.texi (GNU/Linux Options): New section.
|
|
|
|
|
|
2006-02-16 22:41:23 +01:00
|
|
|
|
2006-02-16 Eric Botcazou <ebotcazou@libertysurf.fr>
|
|
|
|
|
|
|
|
|
|
* config/sparc/sparc.md (setjmp): Rewrite.
|
|
|
|
|
(setjmp_32): Delete.
|
|
|
|
|
(setjmp_64): Likewise.
|
|
|
|
|
|
2006-02-16 21:29:19 +01:00
|
|
|
|
2006-02-16 Daniel Berlin <dberlin@dberlin.org>
|
|
|
|
|
|
|
|
|
|
* tree-ssa-operands.c (access_can_touch_variable): Fix typo in
|
|
|
|
|
previous change.
|
|
|
|
|
|
2006-02-16 16:59:00 +01:00
|
|
|
|
2006-02-16 Zdenek Dvorak <dvorakz@suse.cz>
|
|
|
|
|
|
|
|
|
|
* loop-invariant.c (invariant_for_use, check_dependencies): Fail for
|
|
|
|
|
read-write uses.
|
|
|
|
|
|
2006-02-16 16:47:20 +01:00
|
|
|
|
2006-02-16 Zdenek Dvorak <dvorakz@suse.cz>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/26296
|
|
|
|
|
* Makefile.in (loop-invariant.c): Add except.h dependency.
|
|
|
|
|
* loop-invariant.c: Include except.h.
|
|
|
|
|
(find_invariant_insn): Ignore insns satisfying can_throw_internal.
|
|
|
|
|
|
2006-02-16 16:14:23 +01:00
|
|
|
|
2005-02-16 Paul Brook <paul@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* reload1.c (emit_reload_insns): Invalidate dead input registers used
|
|
|
|
|
for reloads.
|
|
|
|
|
|
2006-02-16 02:26:54 +01:00
|
|
|
|
2006-02-16 Bernd Schmidt <bernd.schmidt@analog.com>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/25636
|
|
|
|
|
* local-alloc.c (update_equiv_regs): Lose a bogus rtx_equal_p test
|
|
|
|
|
when deciding whether an insn is an initializing insn.
|
|
|
|
|
|
2006-02-15 23:09:45 +01:00
|
|
|
|
2006-02-15 Daniel Berlin <dberlin@dberlin.org>
|
|
|
|
|
|
|
|
|
|
* tree.c (init_ttree): Add STRUCT_FIELD_TAG handling.
|
|
|
|
|
(tree_code_size): Ditto.
|
|
|
|
|
* tree.h (struct tree_memory_tag): Remove parent_var.
|
|
|
|
|
(struct tree_struct_field_tag): New.
|
|
|
|
|
(SFT_OFFSET): New.
|
|
|
|
|
(SFT_SIZE): New.
|
|
|
|
|
(union tree_node): Add sft member.
|
|
|
|
|
* tree-ssa-alias.c (get_tmt_for): Don't handle TYPE_READONLY
|
|
|
|
|
specially here.
|
|
|
|
|
(create_sft): Add size and offset argument, set SFT_OFFSET and
|
|
|
|
|
SFT_SIZE.
|
|
|
|
|
(create_overlap_variables_for): Update for SFT_OFFSET/SFT_SIZE.
|
|
|
|
|
* treestruct.def: Add TS_STRUCT_FIELD_TAG.
|
|
|
|
|
* tree-flow-inline.h (get_subvar_at): Update for
|
|
|
|
|
SFT_OFFSET/SFT_SIZE.
|
|
|
|
|
(var_can_have_subvars): Ditto.
|
|
|
|
|
(overlap_subvar): Ditto.
|
|
|
|
|
* print-tree.c (print_node): Print out interesting things for
|
|
|
|
|
SFT's.
|
|
|
|
|
* tree-flow.h (struct subvar): Remove offset and size members.
|
|
|
|
|
* tree-ssa-operands.c (get_expr_operands): Update for
|
|
|
|
|
get_indirect_ref_operands changes.
|
|
|
|
|
(get_indirect_ref_operands): Call add_virtual_operand instead of
|
|
|
|
|
add_stmt_operand. Only recurse on base var if requested.
|
|
|
|
|
(access_can_touch_variable): New function.
|
|
|
|
|
(add_stmt_operand): Split virtual operand handling into ...
|
|
|
|
|
(add_virtual_operand): Here. Add offset, size, and for_clobber
|
|
|
|
|
arguments. Prune alias sets.
|
|
|
|
|
(add_call_clobber_ops): Call add_virtual_operand.
|
2006-02-26 20:32:37 +01:00
|
|
|
|
|
2006-02-15 21:38:59 +01:00
|
|
|
|
2006-02-15 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2006-02-15 21:41:03 +01:00
|
|
|
|
PR middle-end/26300
|
|
|
|
|
* combine.c (make_extraction): Bail out if ORIG_POS is negative.
|
|
|
|
|
|
2006-02-15 21:38:59 +01:00
|
|
|
|
* tree.h (struct tree_omp_clause): Use OMP_CLAUSE_CODE rather
|
|
|
|
|
than TREE_CODE as index into omp_clause_num_ops array.
|
|
|
|
|
|
2006-02-15 20:33:33 +01:00
|
|
|
|
2006-02-15 Uttam Pawar <uttamp@us.ibm.com>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/26184
|
|
|
|
|
* modulo-sched.c (generate_reg_moves): Free bitmap vector
|
|
|
|
|
uses_of_defs.
|
|
|
|
|
* modulo-sched.c (sms_schedule): Free g_arr pointer.
|
|
|
|
|
* modulo-sched.c (sms_schedule_by_order): Free bitmap pointers
|
|
|
|
|
must_precede, must_follow and tobe_scheduled.
|
|
|
|
|
|
|
|
|
|
PR other/26147
|
|
|
|
|
* opts.c (common_handle_option): Free new_option pointer.
|
|
|
|
|
* df-core.c (df_analyze): Free postorder pointer.
|
|
|
|
|
|
|
|
|
|
2006-02-15 Rafael <20>vila de Esp<73>ndola <rafael.espindola@gmail.com>
|
2006-02-15 19:46:57 +01:00
|
|
|
|
|
|
|
|
|
* Makefile.in: Fix the examples about the use of stamps
|
|
|
|
|
|
2006-02-15 13:19:49 +01:00
|
|
|
|
2006-02-15 Michael Matz <matz@suse.de>
|
|
|
|
|
|
|
|
|
|
PR middle-end/22275
|
|
|
|
|
|
|
|
|
|
* stor-layout.c (layout_decl): Zero-width bitfields aren't
|
|
|
|
|
influenced by maximum_field_alignment or DECL_PACKED.
|
|
|
|
|
(update_alignment_for_field): Ditto.
|
|
|
|
|
(place_field): Ditto.
|
|
|
|
|
* doc/extend.texi (<#pragma pack>, <Type Attributes>): Document
|
|
|
|
|
this behaviour.
|
|
|
|
|
|
2006-02-15 10:15:56 +01:00
|
|
|
|
2006-02-15 Paolo Bonzini <bonzini@gnu.org>
|
|
|
|
|
|
|
|
|
|
* cfg.c (dump_flow_info): Get dump flags as an additional parameter.
|
|
|
|
|
(debug_flow_info): Pass it.
|
|
|
|
|
* alias.c (rest_of_handle_cfg): Adjust calls to dump_flow_info.
|
|
|
|
|
* bb-reorder.c (reorder_basic_blocks): Likewise.
|
|
|
|
|
* cfgcleanup.c (rest_of_handle_jump2): Likewise.
|
|
|
|
|
* cse.c (rest_of_handle_cse, rest_of_handle_cse2): Likewise.
|
|
|
|
|
* flow.c (life_analysis, recompute_reg_usage): Likewise.
|
|
|
|
|
* gcse.c (gcse_main, bypass_jumps): Likewise.
|
|
|
|
|
* ifcvt.c (rest_of_handle_if_conversion): Likewise.
|
|
|
|
|
* local-alloc.c (rest_of_handle_local_alloc): Likewise.
|
|
|
|
|
* loop-init.c (rtl_loop_init, rtl_loop_done): Likewise.
|
|
|
|
|
* profile.c (compute_branch_probabilities, branch_prob): Likewise.
|
|
|
|
|
* rtl.h (dump_flow_info): Adjust prototype.
|
|
|
|
|
* tracer.c (rest_of_handle_tracer, tracer): Likewise.
|
|
|
|
|
* var-tracking.c (variable_tracking_main): Likewise.
|
|
|
|
|
* passes.c (execute_todo): Obey TDF_BLOCKS for RTL.
|
|
|
|
|
* tree-dump.c (enable_rtl_dump_file): Enable the details and blocks
|
|
|
|
|
options.
|
|
|
|
|
|
2006-02-15 08:58:22 +01:00
|
|
|
|
2006-02-15 Marcin Dalecki <martin@dalecki.de>
|
|
|
|
|
|
|
|
|
|
* tree-ssa-dom.c (dom_thread_across_edge): fix tag expression
|
|
|
|
|
construction.
|
|
|
|
|
|
2006-02-15 00:55:22 +01:00
|
|
|
|
2006-02-14 Zdenek Dvorak <dvorakz@suse.cz>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/26209
|
|
|
|
|
* tree-ssa-loop.c (pass_scev_cprop): Add TODO_cleanup_cfg.
|
|
|
|
|
* tree-cfgcleanup.c (cleanup_control_flow): Remove dead
|
|
|
|
|
eh edges.
|
|
|
|
|
* tree-cfg.c (replace_uses_by): Do not alter cfg.
|
|
|
|
|
|
2006-02-14 22:08:52 +01:00
|
|
|
|
2006-02-14 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/23670
|
|
|
|
|
* fold-const.c (fold_binary) <BIT_IOR_EXPR>: Optimize (X&Y)|Y into
|
|
|
|
|
(X,Y) and the corresponding symmetry related transformations.
|
|
|
|
|
(fold_binary) <BIT_AND_EXPR>: Likewise, optimize (X|Y)&Y into
|
|
|
|
|
(X,Y) and its symmetry related transformations.
|
|
|
|
|
|
2006-02-14 18:54:41 +01:00
|
|
|
|
2006-02-14 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
2006-02-15 00:55:22 +01:00
|
|
|
|
* dojump.c (do_compare_rtx_and_jump): Also handle multi-word GTU
|
2006-02-14 18:54:41 +01:00
|
|
|
|
and GEU.
|
|
|
|
|
|
2006-02-14 18:45:55 +01:00
|
|
|
|
2006-02-14 Adam Nemet <anemet@caviumnetworks.com>
|
|
|
|
|
|
|
|
|
|
* simplify-rtx.c (simplify_subreg): Combine SUBREG and TRUNCATE.
|
|
|
|
|
|
2006-02-14 17:46:04 +01:00
|
|
|
|
2006-02-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
|
|
PR bootstrap/26053
|
|
|
|
|
* configure.ac (HAVE_COMDAT_GROUP): Don't assume non-GNU linkers
|
|
|
|
|
support COMDAT group.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2006-02-14 17:26:16 +01:00
|
|
|
|
2006-02-14 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/26279
|
|
|
|
|
PR middle-end/26280
|
|
|
|
|
PR middle-end/26283
|
|
|
|
|
* dojump.c (do_compare_rtx_and_jump): Handle multi-word LE.
|
|
|
|
|
|
2006-02-14 15:49:13 +01:00
|
|
|
|
2006-02-14 Daniel Berlin <dberlin@dberlin.org>
|
|
|
|
|
|
|
|
|
|
Fix PR tree-optimization/26260
|
|
|
|
|
|
|
|
|
|
* doc/invoke.texi (max-fields-for-field-sensitive): Document
|
|
|
|
|
param.
|
|
|
|
|
* params.h (MAX_FIELDS_FOR_FIELD_SENSITIVE): New.
|
|
|
|
|
* params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Ditto.
|
|
|
|
|
* tree-ssa-structalias.c (create_variable_info_for): Use
|
|
|
|
|
MAX_FIELDS_FOR_FIELD_SENSITIVE.
|
2006-02-26 20:32:37 +01:00
|
|
|
|
|
invoke.texi (-fprefetch-loop-arrays, [...]): Document.
* doc/invoke.texi (-fprefetch-loop-arrays, -fprefetch-loop-arrays-rtl):
Document.
* tree-ssa-loop-niter.c (number_of_iterations_ne,
number_of_iterations_lt, number_of_iterations_cond): Remember the shape
of the ending condition.
* tree-ssa-loop-manip.c: Include params.h.
(build_if_stmt, can_unroll_loop_p, determine_exit_conditions,
tree_unroll_loop): New functions.
* tree-pass.h (pass_loop_prefetch): Declare.
* loop.c (rest_of_handle_loop_optimize): Test for
-fprefetch-loop-arrays-rtl.
* tree-scalar-evolution.h (affine_iv): Moved to tree-flow.h.
* timevar.def (TV_TREE_PREFETCH): New timevar.
* tree-ssa-loop.c (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch,
pass_loop_prefetch): New.
* tree-cfgcleanup.c: Include tree-scalar-evolution.h.
(cleanup_tree_cfg_loop): Call scev_reset.
* common.opt (fprefetch-loop-arrays-rtl): Add.
* tree-ssa-loop-prefetch.c: New file.
* tree-outof-ssa.c (struct value_expr_d): Add expr_vars field.
(new_temp_expr_table): Initialize expr_vars.
(free_temp_expr_table): Cleanup expr_vars.
(check_replaceable, find_replaceable_in_bb): Prevent accumulating
expressions from being merged into one.
* tree-flow.h (affine_iv): Moved from tree-scalar-evolution.h.
(struct tree_niter_desc): Add control, bound and cmp fields.
(tree_ssa_prefetch_arrays, can_unroll_loop_p, tree_unroll_loop):
Declare.
* Makefile.in (tree-ssa-loop-prefetch.o): Add.
(tree-cfgcleanup.o): Add SCEV_H dependency.
(tree-ssa-loop-manip.o): Add PARAMS_H dependency.
* passes.c (init_optimization_passes): Add pass_loop_prefetch.
From-SVN: r110964
2006-02-14 13:22:11 +01:00
|
|
|
|
2006-02-14 Zdenek Dvorak <dvorakz@suse.cz>
|
|
|
|
|
|
|
|
|
|
* doc/invoke.texi (-fprefetch-loop-arrays, -fprefetch-loop-arrays-rtl):
|
|
|
|
|
Document.
|
|
|
|
|
* tree-ssa-loop-niter.c (number_of_iterations_ne,
|
|
|
|
|
number_of_iterations_lt, number_of_iterations_cond): Remember the shape
|
|
|
|
|
of the ending condition.
|
|
|
|
|
* tree-ssa-loop-manip.c: Include params.h.
|
|
|
|
|
(build_if_stmt, can_unroll_loop_p, determine_exit_conditions,
|
|
|
|
|
tree_unroll_loop): New functions.
|
|
|
|
|
* tree-pass.h (pass_loop_prefetch): Declare.
|
|
|
|
|
* loop.c (rest_of_handle_loop_optimize): Test for
|
|
|
|
|
-fprefetch-loop-arrays-rtl.
|
|
|
|
|
* tree-scalar-evolution.h (affine_iv): Moved to tree-flow.h.
|
|
|
|
|
* timevar.def (TV_TREE_PREFETCH): New timevar.
|
|
|
|
|
* tree-ssa-loop.c (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch,
|
|
|
|
|
pass_loop_prefetch): New.
|
|
|
|
|
* tree-cfgcleanup.c: Include tree-scalar-evolution.h.
|
|
|
|
|
(cleanup_tree_cfg_loop): Call scev_reset.
|
|
|
|
|
* common.opt (fprefetch-loop-arrays-rtl): Add.
|
|
|
|
|
* tree-ssa-loop-prefetch.c: New file.
|
|
|
|
|
* tree-outof-ssa.c (struct value_expr_d): Add expr_vars field.
|
|
|
|
|
(new_temp_expr_table): Initialize expr_vars.
|
|
|
|
|
(free_temp_expr_table): Cleanup expr_vars.
|
|
|
|
|
(check_replaceable, find_replaceable_in_bb): Prevent accumulating
|
|
|
|
|
expressions from being merged into one.
|
|
|
|
|
* tree-flow.h (affine_iv): Moved from tree-scalar-evolution.h.
|
|
|
|
|
(struct tree_niter_desc): Add control, bound and cmp fields.
|
|
|
|
|
(tree_ssa_prefetch_arrays, can_unroll_loop_p, tree_unroll_loop):
|
|
|
|
|
Declare.
|
|
|
|
|
* Makefile.in (tree-ssa-loop-prefetch.o): Add.
|
|
|
|
|
(tree-cfgcleanup.o): Add SCEV_H dependency.
|
|
|
|
|
(tree-ssa-loop-manip.o): Add PARAMS_H dependency.
|
|
|
|
|
* passes.c (init_optimization_passes): Add pass_loop_prefetch.
|
|
|
|
|
|
2006-02-14 10:58:57 +01:00
|
|
|
|
2006-02-14 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/26258
|
|
|
|
|
* tree-ssa-structalias.c (find_func_aliases): Handle aggregates
|
|
|
|
|
in PHI argument processing.
|
|
|
|
|
|
2006-02-14 08:10:35 +01:00
|
|
|
|
2006-02-13 Adam Nemet <anemet@caviumnetworks.com>
|
|
|
|
|
|
|
|
|
|
* simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: Return
|
|
|
|
|
new expression in the requested machine mode.
|
|
|
|
|
|
2006-02-14 03:59:42 +01:00
|
|
|
|
2006-02-13 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
|
|
* optabs.c (expand_abs): Don't call do_jump_by_parts_greater_rtx
|
|
|
|
|
directly, instead let do_compare_rtx_and_jump handle this for us.
|
|
|
|
|
* expr.c (expand_expr_real_1): Likewise.
|
|
|
|
|
* dojump.c (do_jump_by_parts_greater_rtx): Make static. Move
|
|
|
|
|
before do_jump_by_parts_greater.
|
|
|
|
|
(do_jump_by_parts_greater): Move after do_jump_by_parts_greater_rtx.
|
|
|
|
|
* expr.h (do_jump_by_parts_greater_rtx): Delete prototype.
|
|
|
|
|
|
2006-02-14 01:22:04 +01:00
|
|
|
|
2006-02-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
|
|
|
|
|
|
|
|
|
* pa/quadlib.c: Use defines instead of enum qfcmp_magic.
|
|
|
|
|
|
2006-02-14 00:19:49 +01:00
|
|
|
|
2006-02-13 Zdenek Dvorak <dvorakz@suse.cz>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/26235
|
|
|
|
|
* loop-invariant.c (hash_invariant_expr_1): Handle 'i' and 'n' formats.
|
|
|
|
|
(invariant_expr_equal_p): Handle 'i' and 'n' formats. Fail on unknown
|
|
|
|
|
format.
|
|
|
|
|
|
2006-02-14 00:08:00 +01:00
|
|
|
|
2006-02-13 Jeff Law <law@redhat.com>
|
|
|
|
|
|
|
|
|
|
* tree-vrp.c (extract_range_from_binary_expr): Remove handling of
|
|
|
|
|
TRUTH_XOR_EPR.
|
|
|
|
|
|
2006-02-13 22:28:03 +01:00
|
|
|
|
2006-02-13 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/26092
|
|
|
|
|
* gimplify.c (gimplify_call_expr): Don't call get_callee_fndecl
|
|
|
|
|
twice if decl is a builtin. When trying again, call get_callee_fndecl
|
|
|
|
|
first to verify it is still a builtin.
|
|
|
|
|
|
2006-02-13 22:17:59 +01:00
|
|
|
|
2006-02-13 Geoffrey Keating <geoffk@apple.com>
|
|
|
|
|
|
|
|
|
|
* dwarf2out.c (base_type_die): Don't add AT_name here.
|
|
|
|
|
(subrange_type_die): Don't add AT_name here.
|
|
|
|
|
(modified_type_die): Rearrange code flow. Do add AT_name here.
|
|
|
|
|
|
2006-02-13 21:27:44 +01:00
|
|
|
|
2006-02-13 Zdenek Dvorak <dvorakz@suse.cz>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/26247
|
|
|
|
|
PR rtl-optimization/26248
|
|
|
|
|
* loop-invariant.c (may_assign_reg_p): Do not allow VOIDmode.
|
|
|
|
|
|
2006-02-13 20:56:21 +01:00
|
|
|
|
2006-02-13 Richard Sandiford <richard@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* config/floatunditf.c: Use if __LDBL_MANT_DIG__ == 113.
|
|
|
|
|
* config/fixtfdi.c: Likewise.
|
|
|
|
|
* config/fixunstfdi.c: Likewise.
|
|
|
|
|
* config/floatditf.c: Likewise.
|
|
|
|
|
|
2006-02-13 19:33:32 +01:00
|
|
|
|
2006-02-13 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/24427
|
|
|
|
|
* fold-const.c (fold_binary) <BIT_IOR_EXPR>: Transform (X&C1)|C2
|
|
|
|
|
into (X,C2) if C1 is a subset of the bits of C2. Transform
|
|
|
|
|
(X&C1)|C2 into X|C2 if C1|C2 == ~0. Canonicalize (X&C1)|C2 as
|
|
|
|
|
(X&(C1&~C2))|C2.
|
|
|
|
|
<BIT_AND_EXPR>: Canonicalize (X|C1)&C2 as (X&C2)|(C1&C2).
|
|
|
|
|
|
2006-02-13 19:12:17 +01:00
|
|
|
|
2006-02-13 Josh Conner <jconner@apple.com>
|
|
|
|
|
|
|
|
|
|
PR target/25376
|
|
|
|
|
* varasm.c (function_section): Check for section name before
|
|
|
|
|
calling select_section on targets that define
|
|
|
|
|
USE_SELECT_SECTION_FOR_FUNCTIONS. On other targets, use
|
|
|
|
|
unlikely_text_section instead of hot_function_section if
|
|
|
|
|
first_function_block_is_cold.
|
|
|
|
|
|
2006-02-13 16:31:31 +01:00
|
|
|
|
2006-02-13 J"orn Rennecke <joern.rennecke@st.com>
|
|
|
|
|
|
2006-02-13 16:32:57 +01:00
|
|
|
|
PR middle-end/25335
|
2006-02-13 16:31:31 +01:00
|
|
|
|
* reload1.c (gen_reload): Also use find_replacement in UNARY_P case.
|
|
|
|
|
|
2006-02-13 12:21:23 +01:00
|
|
|
|
2006-02-12 Zdenek Dvorak <dvorakz@suse.cz>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/26222
|
|
|
|
|
* function.c (assign_stack_temp_for_type): Do not reuse stack slots
|
|
|
|
|
after tree->rtl expansion.
|
|
|
|
|
* loop-invariant.c (move_invariant_reg): Use force_operand on rhs
|
|
|
|
|
before passing it to emit_move_insn.
|
|
|
|
|
|
2006-02-13 02:57:29 +01:00
|
|
|
|
2006-02-12 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
|
|
|
|
|
|
|
|
|
* doc/invoke.texi (-Write-strings): Document that it is enabled by
|
2006-02-26 20:32:37 +01:00
|
|
|
|
default.
|
2006-02-13 02:57:29 +01:00
|
|
|
|
* c.opt (-Wwrite-strings): Declare variable warn_write_strings.
|
|
|
|
|
Clarify documentation.
|
|
|
|
|
* c-common.h (warn_write_strings): Remove.
|
|
|
|
|
* c-common.c (warn_write_strings): Likewise.
|
|
|
|
|
* c-opts.c (c_common_init_options): Enable -Wwrite-strings by
|
|
|
|
|
default for C++.
|
|
|
|
|
|
2006-02-13 02:55:37 +01:00
|
|
|
|
2006-02-12 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/25724
|
|
|
|
|
* dojump.c (do_jump): Call do_compare_rtx_and_jump.
|
|
|
|
|
(do_jump_parts_zero_rtx): New function renamed from
|
|
|
|
|
do_jump_parts_equality_rtx. Made static. Add a mode argument.
|
|
|
|
|
(do_jump_parts_equality_rtx): New function split out from
|
|
|
|
|
do_jump_parts_equality. Old implementation renamed as above.
|
|
|
|
|
Call do_jump_parts_zero_rtx if either operand is zero.
|
|
|
|
|
(do_jump_parts_equality): Call do_jump_parts_equality_rtx to
|
|
|
|
|
do all of the heavy lifting.
|
|
|
|
|
(do_compare_rtx_and_jump): Handle multi-word comparisons by
|
|
|
|
|
calling either do_jump_by_parts_greater_rtx or
|
|
|
|
|
do_jump_by_parts_equality_rtx.
|
|
|
|
|
* expr.h (do_jump_by_parts_equality_rtx): Remove prototype.
|
|
|
|
|
* expmed.c (do_cmp_and_jump): Now multi-word optimization has
|
|
|
|
|
moved to do_compare_rtx_and_jump, call it directly.
|
|
|
|
|
* stmt.c (do_jump_if_equal): Remove static prototype. Add a
|
|
|
|
|
mode argument. Call do_compare_rtx_and_jump.
|
|
|
|
|
(emit_case_nodes): Update calls to do_jump_if_equal.
|
|
|
|
|
|
2006-02-13 01:02:37 +01:00
|
|
|
|
2006-02-12 Zdenek Dvorak <dvorakz@suse.cz>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/26225
|
|
|
|
|
* loop-invariant.c (may_assign_reg_p): Do not allow BLKmode operands.
|
|
|
|
|
|
2006-02-12 23:32:33 +01:00
|
|
|
|
2006-02-12 Zdenek Dvorak <dvorakz@suse.cz>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/26232
|
|
|
|
|
* loop-invariant.c (find_invariant_insn): Ignore insns that set CC0.
|
|
|
|
|
|
2006-02-12 09:01:04 +01:00
|
|
|
|
2006-02-11 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR tree-opt/24365
|
|
|
|
|
* tree-inline.c (declare_return_variable): Just don't use the
|
|
|
|
|
modify target if it's a gimple complex reg and the return slot
|
|
|
|
|
isn't.
|
|
|
|
|
|
2006-02-11 20:12:19 +01:00
|
|
|
|
2006-02-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
|
|
|
|
|
|
|
|
|
* doc/contrib.texi: Update my entry.
|
|
|
|
|
|
2006-02-11 01:31:04 +01:00
|
|
|
|
2006-02-10 Geoffrey Keating <geoffk@apple.com>
|
|
|
|
|
|
|
|
|
|
* config/i386/darwin.h (DBX_REGISTER_NUMBER): Define.
|
|
|
|
|
|
2006-02-10 23:34:42 +01:00
|
|
|
|
2006-02-10 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
* tree-inline.c (estimate_num_insns_1): Make OpenMP directives
|
|
|
|
|
expensive.
|
|
|
|
|
|
2006-02-10 22:01:10 +01:00
|
|
|
|
2006-02-10 Zdenek Dvorak <dvorakz@suse.cz>
|
|
|
|
|
|
|
|
|
|
* doc/invoke.texi (-floop-optimize2): Removed.
|
|
|
|
|
* toplev.c (process_options): Remove handling of flag_loop_optimize2.
|
|
|
|
|
* loop-init.c (gate_handle_loop2): Do not test flag_loop_optimize2.
|
|
|
|
|
Test flag_branch_on_count_reg only if HAVE_doloop_end.
|
|
|
|
|
* common.opt (floop-optimize2): Removed.
|
|
|
|
|
(fmove-loop-invariants): Enabled by default.
|
|
|
|
|
|
2006-02-10 21:46:03 +01:00
|
|
|
|
2006-02-10 Sebastian Pop <pop@cri.ensmp.fr>
|
|
|
|
|
|
|
|
|
|
* tree-if-conv.c (combine_blocks): Free the result of
|
|
|
|
|
get_loop_exit_edges.
|
|
|
|
|
|
2006-02-10 20:22:58 +01:00
|
|
|
|
2006-02-10 Jeff Law <law@redhat.com>
|
|
|
|
|
|
2006-02-10 21:31:19 +01:00
|
|
|
|
* fold-const.c (tree_expr_nonzero_p): Fix thinko.
|
|
|
|
|
|
2006-02-10 20:22:58 +01:00
|
|
|
|
PR tree-optimization/26213
|
|
|
|
|
* tree-ssa-threadedge.c (simplify_control_stmt_condition): Do not
|
|
|
|
|
loop trying to follow SSA_NAME_VALUE chains.
|
|
|
|
|
|
2006-02-10 14:05:48 +01:00
|
|
|
|
2006-02-10 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
* tree-dfa.c (get_ref_base_and_extent): When computing maxsize
|
|
|
|
|
deal with structures that end in implicitly variable sized arrays.
|
|
|
|
|
|
2006-02-09 23:34:23 +01:00
|
|
|
|
2006-02-09 Zdenek Dvorak <dvorakz@suse.cz>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/24762
|
|
|
|
|
* df-scan.c (df_bb_refs_record): Record correct registers defined on
|
|
|
|
|
eh edges.
|
|
|
|
|
|
2006-02-09 23:28:23 +01:00
|
|
|
|
2006-02-09 Zdenek Dvorak <dvorakz@suse.cz>
|
|
|
|
|
|
|
|
|
|
* tree-ssa-loop-ivopts.c (struct loop_data, loop_data): Removed.
|
|
|
|
|
(struct ivopts_data): Add regs_used field.
|
|
|
|
|
(tree_ssa_iv_optimize_init): Do not allocate aux fields for loops.
|
|
|
|
|
(ivopts_global_cost_for_size, determine_set_costs): Use data->regs_used
|
|
|
|
|
instead of loop_data->regs_used;
|
|
|
|
|
(free_loop_data): Do not free aux fields for loops.
|
|
|
|
|
(tree_ssa_iv_optimize): Do not pass loops to tree_ssa_iv_optimize_init
|
|
|
|
|
and tree_ssa_iv_optimize_finalize.
|
|
|
|
|
|
2006-02-09 22:03:23 +01:00
|
|
|
|
2006-02-09 Kaz Kojima <kkojima@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* config/sh/sh.h (FUNCTION_VALUE): Don't handle CHAR_TYPE.
|
|
|
|
|
|
2006-02-09 21:54:12 +01:00
|
|
|
|
2006-02-09 J"orn Rennecke <joern.rennecke@st.com>
|
|
|
|
|
|
|
|
|
|
PR target/26141
|
|
|
|
|
* sh.c (sh_gimplify_va_arg_expr): Don't change the result type when
|
|
|
|
|
computing the effective result type.
|
|
|
|
|
|
2006-02-09 20:17:09 +01:00
|
|
|
|
2006-02-09 J"orn Rennecke <joern.rennecke@st.com>
|
|
|
|
|
|
|
|
|
|
PR inline-asm/16194
|
|
|
|
|
* tree.h (decl_overlaps_hard_reg_set_p) Don't declare.
|
|
|
|
|
(tree_overlaps_hard_reg_set): Declare.
|
|
|
|
|
* stmt.c (decl_overlaps_hard_reg_set_p): Now static. Change return
|
|
|
|
|
type and signature to match function type expected by walk_tree.
|
|
|
|
|
(tree_overlaps_hard_reg_set): New function.
|
|
|
|
|
(decl_conflicts_with_clobbers_p): Rename to:
|
|
|
|
|
(tree_conflicts_with_clobbers_p). Take HARD_REG_SET * argument.
|
|
|
|
|
Use tree_overlaps_hard_reg_set. Changed caller.
|
|
|
|
|
* doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Replace
|
|
|
|
|
decl_overlaps_hard_reg_set_p with tree_overlaps_hard_reg_set.
|
|
|
|
|
* cris.c (cris_md_asm_clobbers): Likewise.
|
|
|
|
|
|
2006-02-09 18:26:41 +01:00
|
|
|
|
2006-02-09 Bernd Schmidt <bernd.schmidt@analog.com>
|
|
|
|
|
|
|
|
|
|
* reload1.c (emit_input_reload_insns): Delete code that tries to
|
|
|
|
|
inherit using find_equiv_reg.
|
|
|
|
|
|
2006-02-09 17:28:26 +01:00
|
|
|
|
2006-02-09 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
|
|
|
|
|
|
|
|
|
* c-common.h (flag_const_strings): Don't declare.
|
|
|
|
|
* c-common.c (flag_const_strings): Remove.
|
|
|
|
|
* c.opt (fconst_strings): Remove.
|
|
|
|
|
* c-opts.c (c_common_handle_option): Remove <OPT_fconst_strings>.
|
|
|
|
|
<OPT_Wwrite_strings>: Don't set flag_const_strings.
|
|
|
|
|
(c_common_init_options): Don't set flag_const_strings.
|
|
|
|
|
* doc/invoke.texi (-fno-const-strings): Remove documentation.
|
|
|
|
|
|
2006-02-09 16:18:10 +01:00
|
|
|
|
2006-02-09 Richard Earnshaw <richard.earnshaw@arm.com>
|
|
|
|
|
|
|
|
|
|
* arm.md (tlobits_cbranch): New pattern.
|
|
|
|
|
* arm.h (arm_select_cc_mode): For thumb, only return CC_Nmode if
|
|
|
|
|
testing a single bit.
|
|
|
|
|
|
2006-02-09 15:31:28 +01:00
|
|
|
|
2006-02-09 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
|
|
PR tree-opt/26179
|
|
|
|
|
* tree-ssa-pre.c (create_component_ref_by_pieces):
|
|
|
|
|
Handle RETURN_DECL like VAR_DECL.
|
|
|
|
|
|
2006-02-09 15:13:57 +01:00
|
|
|
|
2006-02-09 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
|
|
PR middle-end/26134
|
2006-02-26 20:32:37 +01:00
|
|
|
|
* fold-const.c (fold_indirect_ref_1): Fold
|
2006-02-09 15:13:57 +01:00
|
|
|
|
"*(foo *)&complexfoo" to "__real__ complexfoo"
|
|
|
|
|
and "((foo*)&complexfoo)[1]" to "__imag__ complexfoo".
|
|
|
|
|
|
2006-02-09 14:53:40 +01:00
|
|
|
|
2006-02-09 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
2006-02-26 20:32:37 +01:00
|
|
|
|
* tree-flow-inline.h (var_can_have_subvars):
|
2006-02-09 14:53:40 +01:00
|
|
|
|
Volatile variables should not have subvariables.
|
|
|
|
|
|
2006-02-09 13:38:35 +01:00
|
|
|
|
2006-02-09 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR 26180
|
|
|
|
|
* tree-vrp.c (vrp_int_const_binop): Detect overflow when
|
|
|
|
|
multiplying unsigned values.
|
|
|
|
|
Tidy comments.
|
|
|
|
|
|
2006-02-09 13:22:09 +01:00
|
|
|
|
2006-02-09 Eric Botcazou <ebotcazou@libertysurf.fr>
|
|
|
|
|
|
|
|
|
|
* config/sparc/sparc.c (tls_call_delay): Fix oversight.
|
|
|
|
|
|
2006-02-09 10:54:36 +01:00
|
|
|
|
2006-02-08 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/25979
|
|
|
|
|
* tree.def: Elaborate on difference from MODIFY_EXPR.
|
|
|
|
|
* doc/c-tree.texi (INIT_EXPR): Likewise.
|
|
|
|
|
* gimplify.c (internal_get_tmp_var): Use INIT_EXPR.
|
|
|
|
|
(gimplify_decl_expr, gimplify_init_ctor_eval): Likewise.
|
|
|
|
|
(gimplify_target_expr): Likewise.
|
|
|
|
|
(gimplify_cond_expr): Remove target handling.
|
|
|
|
|
(gimplify_modify_expr): Don't clobber INIT_EXPR code here.
|
|
|
|
|
(gimplify_expr): Clobber it here.
|
|
|
|
|
(gimplify_modify_expr_rhs): Push assignment into COND_EXPR here.
|
|
|
|
|
Do return slot optimization if we have an INIT_EXPR.
|
|
|
|
|
|
|
|
|
|
PR tree-opt/24365
|
2006-02-26 20:32:37 +01:00
|
|
|
|
* tree-inline.c (declare_return_variable): Also clear
|
2006-02-09 10:54:36 +01:00
|
|
|
|
DECL_COMPLEX_GIMPLE_REG_P as needed in the modify_dest case.
|
|
|
|
|
|
|
|
|
|
PR c++/16405
|
|
|
|
|
* gimplify.c (gimplify_modify_expr_rhs): Re-enable *& handling.
|
|
|
|
|
|
|
|
|
|
PR middle-end/22439
|
|
|
|
|
* gimplify.c (gimplify_one_sizepos): Fix typo.
|
|
|
|
|
|
2006-02-09 03:18:59 +01:00
|
|
|
|
2006-02-08 Jeff Law <law@redhat.com>
|
|
|
|
|
|
2006-02-09 03:36:33 +01:00
|
|
|
|
PR tree-optimization/21417
|
|
|
|
|
* tree-ssa-threadedge.c (thread_across_edge): Reject threading
|
|
|
|
|
across a backedge if the control statement at the end of the
|
|
|
|
|
block is data dependent on other statements in the same block.
|
|
|
|
|
(record_temporary_equivalences_from_stmts): Remove over-conservative
|
|
|
|
|
test for threading across backedges.
|
|
|
|
|
|
2006-02-09 03:18:59 +01:00
|
|
|
|
* tree-ssa-dce.c (remove_dead_statement): When removing a dead
|
|
|
|
|
control statement, handle all three special cases in the same
|
|
|
|
|
manner as they all have the same desired solution. No longer
|
|
|
|
|
special case edge flag updating when the post dominator is
|
|
|
|
|
the exit block.
|
|
|
|
|
|
tree.def (CHAR_TYPE): Remove.
* tree.def (CHAR_TYPE): Remove.
* dbxout.c (dbxout_type): Delete dead handling of CHAR_TYPE.
* dwarf2out.c (base_type_die, is_base_type): Likewise.
(gen_type_die) <ARRAY_TYPE>: Remove handling of CHAR_TYPE arrays.
(gen_string_type_die): Delete unreachable function.
* tree-pretty-print.c (dump_generic_node): Don't handle CHAR_TYPE.
* tree.c (build_int_cst_wide, type_contains_placeholder_1,
type_hash_eq, variably_modified_type_p, walk_type_fields): Likewise.
* tree.h (NUMERICAL_TYPE_CHECK, INTEGRAL_TYPE_P): Likewise.
* builtins.c (type_to_class): Likewise.
* fold-const.c (fold_convert, build_range_check,
merge_ranges): Likewise.
* expr.c (count_type_elements): Likewise.
* c-pretty-print.c (pp_c_type_specifier): Likewise.
* stor-layout.c (layout_type): Likewise.
* ipa-type-escape.c (type_to_consider): Likewise.
* gimplify.c (omp_firstprivatize_type_sizes,
gimplify_type_sizes): Likewise.
* explow.c (promote_mode): Likewise.
* tree-sra.c (is_sra_scalar_type): Likewise.
* varasm.c (output_constant): Likewise.
* tree-inline.c (remap_type_1): Likewise.
* convert.c (convert_to_pointer, convert_to_real,
convert_to_integer, convert_to_complex): Likewise.
From-SVN: r110775
2006-02-09 00:57:21 +01:00
|
|
|
|
2006-02-08 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
|
|
* tree.def (CHAR_TYPE): Remove.
|
|
|
|
|
* dbxout.c (dbxout_type): Delete dead handling of CHAR_TYPE.
|
|
|
|
|
* dwarf2out.c (base_type_die, is_base_type): Likewise.
|
|
|
|
|
(gen_type_die) <ARRAY_TYPE>: Remove handling of CHAR_TYPE arrays.
|
|
|
|
|
(gen_string_type_die): Delete unreachable function.
|
|
|
|
|
|
|
|
|
|
* tree-pretty-print.c (dump_generic_node): Don't handle CHAR_TYPE.
|
|
|
|
|
* tree.c (build_int_cst_wide, type_contains_placeholder_1,
|
|
|
|
|
type_hash_eq, variably_modified_type_p, walk_type_fields): Likewise.
|
|
|
|
|
* tree.h (NUMERICAL_TYPE_CHECK, INTEGRAL_TYPE_P): Likewise.
|
|
|
|
|
* builtins.c (type_to_class): Likewise.
|
|
|
|
|
* fold-const.c (fold_convert, build_range_check,
|
|
|
|
|
merge_ranges): Likewise.
|
|
|
|
|
* expr.c (count_type_elements): Likewise.
|
|
|
|
|
* c-pretty-print.c (pp_c_type_specifier): Likewise.
|
|
|
|
|
* stor-layout.c (layout_type): Likewise.
|
|
|
|
|
* ipa-type-escape.c (type_to_consider): Likewise.
|
|
|
|
|
* gimplify.c (omp_firstprivatize_type_sizes,
|
|
|
|
|
gimplify_type_sizes): Likewise.
|
|
|
|
|
* explow.c (promote_mode): Likewise.
|
|
|
|
|
* tree-sra.c (is_sra_scalar_type): Likewise.
|
|
|
|
|
* varasm.c (output_constant): Likewise.
|
|
|
|
|
* tree-inline.c (remap_type_1): Likewise.
|
|
|
|
|
* convert.c (convert_to_pointer, convert_to_real,
|
|
|
|
|
convert_to_integer, convert_to_complex): Likewise.
|
|
|
|
|
|
2006-02-08 19:37:01 +01:00
|
|
|
|
2006-02-08 Daniel Berlin <dberlin@dberlin.org>
|
|
|
|
|
|
|
|
|
|
* df-scan.c (df_def_record_1): A set destination may
|
|
|
|
|
be a parallel regardless of mode.
|
|
|
|
|
|
2006-02-08 19:31:36 +01:00
|
|
|
|
2006-02-08 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
|
|
PR target/22209
|
|
|
|
|
* config/mips/mips.h (MIN_UNITS_PER_WORD): Don't define for libgcc.
|
|
|
|
|
* config/mips/_tilib.c: Remove.
|
|
|
|
|
* config/fixtfdi.c: New libgcc source file.
|
|
|
|
|
* config/fixunstfdi.c: New source file.
|
|
|
|
|
* config/floatditf.c: New source file.
|
|
|
|
|
* config/floatunditf.c: New souce file.
|
|
|
|
|
* config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source
|
|
|
|
|
files above instead of config/mips/_tilib.c.
|
|
|
|
|
* config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise.
|
|
|
|
|
|
2006-02-08 18:31:20 +01:00
|
|
|
|
2006-02-08 Jeff Law <law@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/26169
|
|
|
|
|
* tree-vrp.c (execute_vrp): Perform any queued SSA updates before
|
|
|
|
|
threading jumps.
|
|
|
|
|
|
2006-02-08 11:54:45 +01:00
|
|
|
|
2006-02-08 Zdenek Dvorak <dvorakz@suse.cz>
|
|
|
|
|
|
|
|
|
|
* df.h (DF_REG_SIZE): Return the length of the initialized
|
|
|
|
|
part of the array.
|
|
|
|
|
|
2006-02-08 10:58:55 +01:00
|
|
|
|
2006-02-08 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* gcc/config/m68k/lb1sf68.asm (__divsf3, __divdf3, __mulsf3,
|
|
|
|
|
__muldf3): Return a correctly signed zero.
|
|
|
|
|
|
2006-02-08 09:13:20 +01:00
|
|
|
|
2006-02-08 Paolo Bonzini <bonzini@gnu.org>
|
|
|
|
|
|
|
|
|
|
* passes.c (register_one_dump_file): Accept the current properties
|
|
|
|
|
instead of pass number. Adjust call to dump_register. Remove
|
|
|
|
|
duplicated code.
|
|
|
|
|
(register_dump_files): Now a wrapper around...
|
|
|
|
|
(register_dump_files_1): ... this one. Do not modify the pass
|
|
|
|
|
structure.
|
|
|
|
|
(next_pass_1): Cosmetic fix.
|
2006-02-08 10:58:55 +01:00
|
|
|
|
(execute_todo): Keep second parameter only. Use curr_properties
|
|
|
|
|
instead of fetching it from the pass structure. Check and set
|
|
|
|
|
last_verified.
|
2006-02-08 09:13:20 +01:00
|
|
|
|
(execute_one_pass): Handle TODO_set_props. Use curr_properties
|
|
|
|
|
instead of fetching it from the pass structure. Fix calls to
|
|
|
|
|
execute_todo. Update curr_properties and initialize .vcg RTL dump
|
|
|
|
|
after running the pass. Reset last_verified.
|
|
|
|
|
* tree-dump.c (dump_files): Renumber consecutively. Put .cgraph dump
|
|
|
|
|
at the beginning.
|
|
|
|
|
(FIRST_AUTO_NUMBERED_DUMP): New.
|
|
|
|
|
(dump_register): Remove "num" parameter, assign it within the
|
|
|
|
|
function.
|
|
|
|
|
(get_dump_file_name): Modify template for dumps.
|
|
|
|
|
* tree-dump.h (dump_register): Adjust prototype.
|
|
|
|
|
* tree-pass.h (enum tree_dump_index): Move cgraph at the beginning.
|
|
|
|
|
(PROP_trees): Add PROP_gimple_lomp.
|
|
|
|
|
(TODO_set_props): New.
|
|
|
|
|
* gimple-low.c (pass_lower_cf): Do not destroy PROP_gimple_lcf.
|
|
|
|
|
* tree-eh.c (pass_lower_eh): Do not destroy PROP_gimple_leh.
|
|
|
|
|
* cfgexpand.c (pass_expand): Destroy PROP_trees.
|
|
|
|
|
|
2006-02-08 08:19:43 +01:00
|
|
|
|
2006-02-08 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
|
|
|
|
|
(sparc64-*-linux*): Likewise.
|
|
|
|
|
* config/sparc/t-linux64 (SHLIB_MAPFILES): Removed.
|
|
|
|
|
* config/sparc/t-linux: New file.
|
|
|
|
|
* config/sparc/libgcc-sparc-glibc.ver (__fixtfdi, __fixunstfdi,
|
|
|
|
|
__floatditf): Export at GCC_LDBL_3.0 if -m32 -mlong-double-128.
|
|
|
|
|
(__divtc3, __multc3, __powitf2): Export at GCC_LDBL_4.0.0 if
|
|
|
|
|
-m32 -mlong-double-128.
|
|
|
|
|
|
|
|
|
|
* config.gcc (alpha*-*-linux*): Add alpha/t-linux to tmake_file.
|
|
|
|
|
* config/alpha/t-linux: New file.
|
|
|
|
|
* config/alpha/libgcc-alpha-ldbl.ver: New file.
|
|
|
|
|
|
|
|
|
|
* config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Define
|
|
|
|
|
__LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128.
|
|
|
|
|
(CPP_SUBTARGET_SPEC): Don't add -D__LONG_DOUBLE_128__ here.
|
|
|
|
|
* config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Define
|
|
|
|
|
__LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128 and TARGET_ARCH32.
|
|
|
|
|
(CPP_ARCH32_SPEC): Remove.
|
|
|
|
|
|
2006-02-08 03:00:42 +01:00
|
|
|
|
2006-02-07 Uttam Pawar <uttamp@us.ibm.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/26145
|
|
|
|
|
* tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Free
|
|
|
|
|
bbs pointer.
|
|
|
|
|
|
2006-02-07 23:09:52 +01:00
|
|
|
|
2006-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
|
|
|
|
|
|
|
|
|
PR target/26109
|
|
|
|
|
* pa.c (attr_length_indirect_call): Don't return length 8 for distances
|
|
|
|
|
>= 240000 when generating code for SOM runtime.
|
|
|
|
|
(output_indirect_call): Don't use "b,l" instruction for indirect calls
|
|
|
|
|
to $$dyncall when generating code for SOM runtime..
|
|
|
|
|
|
2006-02-07 22:47:55 +01:00
|
|
|
|
2006-02-07 Dirk Mueller <dmueller@suse.com>
|
|
|
|
|
|
|
|
|
|
PR c++/18150
|
|
|
|
|
* doc/invoke.texi (-Wsequence-point): Update documentation
|
|
|
|
|
that -Wsequence-point is implemented for C++ as well.
|
|
|
|
|
|
2006-02-07 21:50:37 +01:00
|
|
|
|
2006-02-07 Eric Botcazou <ebotcazou@libertysurf.fr>
|
|
|
|
|
|
|
|
|
|
* config/sol26.h (CPP_SUBTARGET_SPEC): Accept -pthread.
|
|
|
|
|
* config/sol2.h (CPP_SUBTARGET_SPEC): Likewise.
|
|
|
|
|
(LIB_SPEC): Likewise.
|
|
|
|
|
* doc/invoke.texi (SPARC options): Document -pthread.
|
|
|
|
|
|
2006-02-07 21:13:24 +01:00
|
|
|
|
2006-02-07 Geoffrey Keating <geoffk@apple.com>
|
|
|
|
|
|
|
|
|
|
* config/i386/i386.c (ix86_delegitimize_address): Support Darwin
|
|
|
|
|
PIC addresses.
|
|
|
|
|
|
2006-02-07 21:11:12 +01:00
|
|
|
|
2006-02-07 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
|
|
* config/sparc/sparc.c (sparc_type_code): Don't handle CHAR_TYPE.
|
|
|
|
|
Correct comment describing BOOLEAN_TYPE.
|
|
|
|
|
|
2006-02-07 20:41:14 +01:00
|
|
|
|
2006-02-07 Dirk Mueller <dmueller@suse.com>
|
|
|
|
|
|
|
|
|
|
* c.opt: C++ frontend supports -Wdiv-by-zero.
|
|
|
|
|
* c-opts.c (c_common_handle_option): Remove dead case.
|
|
|
|
|
|
2006-02-07 19:53:20 +01:00
|
|
|
|
2006-02-07 Eric Botcazou <ebotcazou@libertysurf.fr>
|
|
|
|
|
|
|
|
|
|
* configure.ac (TLS assembler check): Do not enable TLS by
|
|
|
|
|
default on SPARC/Solaris before version 10.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2006-02-07 19:36:23 +01:00
|
|
|
|
2006-02-07 David Edelsohn <edelsohn@gnu.org>
|
|
|
|
|
|
|
|
|
|
* doc/invoke.texi (xl-compat): Document conversion and support
|
|
|
|
|
routine names.
|
|
|
|
|
|
2006-02-07 19:31:27 +01:00
|
|
|
|
2006-02-07 Jeff Law <law@redhat.com>
|
|
|
|
|
|
|
|
|
|
* tree-vrp.c (find_conditional_asserts): Update comments.
|
|
|
|
|
(simplify_stmt_for_jump_threading): New.
|
|
|
|
|
(identify_jump_threads, finalize_jump_threads): New.
|
|
|
|
|
(vrp_finalize): Call identify_jump_threads.
|
|
|
|
|
(execute_vrp): Call finalize_jump_threads.
|
|
|
|
|
* tree-ssa-dom.c (struct opt_stats_d): Remove num_iterations field.
|
|
|
|
|
(vrp_element, vrp_data, vrp_element_p): Remove.
|
|
|
|
|
(vrp_hash_elt, vrp_variables_stack): Remove.
|
|
|
|
|
(vrp_hash, vrp_eq, record_range): Remove.
|
|
|
|
|
(simplify_cond_and_lookup_avail_expr): Remove.
|
|
|
|
|
(extract_range_from_cond): Remove.
|
|
|
|
|
(thread_across_edge): Relocated into tree-ssa-threadedge.c.
|
|
|
|
|
(simplify_stmt_for_jump_threading): New.
|
|
|
|
|
(dom_thread_across_edge): New wrapper.
|
|
|
|
|
(tree_ssa_dominator_optimize): No longer initialize or
|
|
|
|
|
finalize any of the VRP datastructures. Remove iteration
|
|
|
|
|
step and simplify as a result of removal of iteration step.
|
|
|
|
|
(pass_dominator): Perform a cfg cleanup after DOM.
|
|
|
|
|
(dom_opt_finalize_block): Use the new common routines
|
|
|
|
|
for threading jumps. Simplify stack management slightly.
|
|
|
|
|
No longer need to unwind VRP state.
|
|
|
|
|
(record_equivalences_from_incoming_edge): No longer record
|
|
|
|
|
VRP information.
|
|
|
|
|
(eliminate_redundant_computations): No longer call
|
|
|
|
|
simplify_cond_and_lookup_avail_expr.
|
|
|
|
|
* tree-flow.h (potentially_threadable_block): Prototype.
|
|
|
|
|
(thread_across_edge): Likewise.
|
|
|
|
|
* Makefile.in (OBJS-common): Add tree-ssa-threadedge.o
|
|
|
|
|
(tree-ssa-threadedge.o): Add dependencies.
|
|
|
|
|
* tree-ssa-threadedge.c: New file.
|
|
|
|
|
* passes.c (init_optimization_passes): Merge PHIs before
|
|
|
|
|
calling VRP. Run VRP again late in the SSA optimization pipeline.
|
|
|
|
|
|
2006-02-07 19:53:20 +01:00
|
|
|
|
2006-02-07 Eric Botcazou <ebotcazou@libertysurf.fr>
|
|
|
|
|
|
|
|
|
|
* df-core.c (df_set_blocks): Do not dereference function pointers.
|
|
|
|
|
(df_finish1): Likewise.
|
|
|
|
|
(df_hybrid_search_forward): Likewise.
|
|
|
|
|
(df_hybrid_search_backward): Likewise.
|
|
|
|
|
(df_iterative_dataflow): Likewise.
|
|
|
|
|
(df_analyze_problem): Likewise.
|
|
|
|
|
(df_compact_blocks): Likewise.
|
|
|
|
|
(df_dump): Likewise.
|
|
|
|
|
* df-scan.c (df_rescan_blocks): Likewise.
|
|
|
|
|
(df_record_entry_block_defs): Likewise.
|
|
|
|
|
|
|
|
|
|
* genconditions.c (write_conditions): Guard the definition of
|
|
|
|
|
'insn_conditions' with the check on GCC version.
|
|
|
|
|
(write_writer): Guard the traversal 'insn_conditions' with
|
|
|
|
|
the check on GCC version.
|
|
|
|
|
|
2006-02-07 16:36:44 +01:00
|
|
|
|
2006-02-07 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR c++/26140
|
|
|
|
|
Revert
|
|
|
|
|
2006-01-30 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
PR c++/23372
|
|
|
|
|
* gimplify.c (gimplify_target_expr): Handle easy cases
|
|
|
|
|
without creating a temporary.
|
|
|
|
|
|
2006-02-07 09:07:00 +01:00
|
|
|
|
2006-02-07 Pete Steinmetz <steinmtz@us.ibm.com>
|
|
|
|
|
|
2006-02-26 20:32:37 +01:00
|
|
|
|
* sched-rgn.c (compute_dom_prob_ps, compute_trg_info): Eradicate
|
2006-02-07 09:07:00 +01:00
|
|
|
|
use of float in probability computations. Use edge probabilities
|
|
|
|
|
in place of statically computed probabilities.
|
|
|
|
|
(min_spec_prob): New static variable.
|
|
|
|
|
(schedule_insns): Initialize it.
|
|
|
|
|
(GET_SRC_PROB): Removed.
|
|
|
|
|
* doc/invoke.texi (min-sched-prob): Renamed to min-spec-prob.
|
|
|
|
|
|
2006-02-07 07:51:39 +01:00
|
|
|
|
2006-02-07 Alexandre Oliva <aoliva@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR debug/24444
|
|
|
|
|
* config/ia64/unwind-ia64.c: Revert last change.
|
|
|
|
|
* config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Removed.
|
|
|
|
|
(INCOMING_FRAME_SP_OFFSET): Define.
|
|
|
|
|
|
2006-02-07 04:20:46 +01:00
|
|
|
|
2006-02-06 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
|
|
* config/ia64/ia64.c (hfa_element_mode): Don't handle CHAR_TYPE.
|
|
|
|
|
|
2006-02-07 03:28:56 +01:00
|
|
|
|
2006-02-07 Ben Elliston <bje@au.ibm.com>
|
|
|
|
|
|
|
|
|
|
* config/i386/i386.c (ix86_scalar_mode_supported_p): New.
|
|
|
|
|
(TARGET_SCALAR_MODE_SUPPORTED_P): Define hook.
|
|
|
|
|
(classify_argument): Handle SDmode, DDmode, TDmode for 64-bit.
|
|
|
|
|
(ix86_return_in_memory): Handle TDmode.
|
|
|
|
|
(ix86_libcall_value): Handle SDmode, DDmode, TDmode.
|
|
|
|
|
(ix86_value_regno): Return non-TDmode decimal float modes in %eax.
|
|
|
|
|
|
2006-02-07 00:12:46 +01:00
|
|
|
|
2006-02-06 Richard Sandiford <richard@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* reorg.c (dbr_schedule): Use dump_file instead of file.
|
|
|
|
|
|
2006-02-06 22:27:51 +01:00
|
|
|
|
2006-02-06 Steve Ellcey <sje@cup.hp.com>
|
|
|
|
|
|
|
|
|
|
PR target/25917
|
|
|
|
|
* config/ia64/predicates.md (extr_len_operand): New predicate.
|
|
|
|
|
* config/ia64/ia64.md (extv): Tighten constraints.
|
|
|
|
|
(extzv): Ditto.
|
|
|
|
|
(*tbit_and_2): Ditto.
|
|
|
|
|
(*tbit_and_3): Ditto.
|
|
|
|
|
(*tbit_or_2): Ditto.
|
|
|
|
|
(*tbit_or_3): Ditto.
|
|
|
|
|
(*bit_zero): Ditto.
|
|
|
|
|
(*bit_one): Ditto.
|
|
|
|
|
|
2006-02-06 19:39:30 +01:00
|
|
|
|
2006-02-06 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
|
|
PR target/23359
|
|
|
|
|
* config/i386/i386.md (trap): Use ASM_SHORT instead of .word.
|
|
|
|
|
|
tree-vrp.c (execute_vrp): Do not pass dump argument to.
* tree-vrp.c (execute_vrp): Do not pass dump argument to.
loop_optimizer_init and loop_optimizer_finalize
* tree-ssa-sink.c (execute_sink_code): Ditto.
* tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
* tree-ssa-loop.c (tree_loop_optimizer_init, tree_ssa_loop_init,
tree_ssa_loop_done): Ditto.
* tree-ssa-pre.c (init_pre, fini_pre): Ditto.
* sched-ebb.c: Include output.h.
(schedule_ebbs): Do not use dump argument.
* value-prof.h (struct profile_hooks): Remove profile_dump_file.
* loop.c (loop_dump_stream): Removed.
(loop_optimize, rest_of_handle_loop_optimize): Do not use dump
argument.
(scan_loop, move_movables, find_and_verify_loops, mark_loop_jump,
emit_prefetch_instructions, loop_bivs_find, loop_bivs_check,
final_biv_value, loop_biv_eliminable_p, loop_givs_rescan,
loop_iterations, strength_reduce, record_biv, record_giv,
final_giv_value, check_final_value, check_ext_dependent_givs,
combine_givs, check_dbra_loop, maybe_eliminate_biv, load_mems,
try_copy_prop, loop_delete_insns, try_swap_copy_prop): Use
dump_file instead of loop_dump_stream.
* ddg.c (print_ddg_edge, print_ddg, vcg_print_ddg): Do not call
argument dump_file.
* reorg.c (dbr_schedule, rest_of_handle_delay_slots): Do not use
dump argument.
* flow.c (life_analysis, rest_of_handle_life): Ditto.
* haifa-sched.c: Include output.h
(schedule_insns, sched_init): Do not use dump argument.
* mode-switching.c (optimize_mode_switching): Ditto.
* modulo-sched.c (stats_file): Removed.
(print_node_sched_params): Do not call argument dump_file.
(sms_schedule_by_order, loop_canon_p, sms_schedule,
rest_of_handle_sms): Do not use dump argument. Use dump_file instead
of stats_file.
* cse.c (cse_main, rest_of_handle_cse, rest_of_handle_cse2): Do not
use dump argument.
* loop-init.c (loop_optimizer_init, loop_optimizer_finalize,
rtl_loop_init, rtl_loop_done): Ditto.
* global.c (global_alloc, rest_of_handle_global_alloc): Ditto.
* predict.c (combine_predictions_for_bb, tree_estimate_probability):
Ditto.
* recog.c (peephole2_optimize, rest_of_handle_peephole2): Ditto.
* lcm.c (pre_edge_lcm, pre_edge_rev_lcm): Ditto.
* regmove.c (fixup_match_1, fixup_match_2, regmove_optimize,
rest_of_handle_regmove, rest_of_handle_stack_adjustments): Ditto.
* emit-rtl.c (renumber_insns): Ditto.
* cfgexpand.c (add_reg_br_prob_note, expand_gimple_cond_expr,
expand_gimple_basic_block, tree_expand_cfg): Ditto.
* regclass.c (regclass): Ditto.
* tree-outof-ssa.c (analyze_edges_for_bb, perform_edge_inserts,
remove_ssa_form, rewrite_out_of_ssa): Ditto.
* reg-stack.c (compensate_edge, compensate_edges, convert_regs_1,
convert_regs_2, convert_regs, reg_to_stack, rest_of_handle_stack_regs):
Ditto.
* sched-rgn.c (schedule_insns, rest_of_handle_sched): Ditto.
* local-alloc.c (rest_of_handle_local_alloc): Do not pass dump_file
to regclass.
* gcse.c (gcse_file, debug_stderr): Removed.
(gcse_main, bypass_jumps, rest_of_handle_jump_bypass,
rest_of_handle_gcse): Do not use dump argument.
(cprop_jump, cprop_insn, do_local_cprop, cprop, find_implicit_sets,
one_cprop_pass, bypass_block, compute_pre_data, insert_insn_end_bb,
pre_edge_insert, pre_insert_copy_insn, pre_delete, one_pre_gcse_pass,
compute_code_hoist_vbeinout, compute_code_hoist_data,
one_code_hoisting_pass, trim_ld_motion_mems, update_ld_motion_stores,
compute_store_table, build_store_vectors, insert_insn_start_bb,
insert_store, remove_reachable_equiv_notes, replace_store_insn,
store_motion): Use dump_file instead of gcse_file.
* ipa-type-escape.c (type_escape_execute): Remove debugging comments.
* profile.c (profile_dump_file): Removed.
(branch_prob): Use dump_file instead of profile_dump_file.
* ipa.c (cgraph_remove_unreachable_nodes): Do not call argument
dump_file.
* tree-ssa-copy.c (dump_copy_of): Ditto.
* rtl-factoring.c (rtl_seqabstr, rest_of_rtl_seqabstr): Do not pass
dump file to life_analysis.
* bt-load.c (branch_target_load_optimize): Ditto.
* cfgcleanup.c (rest_of_handle_jump2): Do not pass dump_file to
renumber_insns.
* rtl.h (cse_main, renumber_insns, schedule_insns, schedule_ebbs,
regclass, dbr_schedule): Declaration changed.
* sched-int.h (sched_init): Declaration changed.
* tree-profile.c (tree_profile_dump_file): Removed.
(tree_profile_hooks): Removed profile_dump_file hook.
* rtl-profile (rtl_profile_dump_file): Removed.
(rtl_profile_hooks): emoved profile_dump_file hook.
* cfgloop.h (loop_optimizer_init, loop_optimizer_finalize): Declaration
changed.
* c-gimplify.c (c_genericize): Do not call local variable dump_file.
* tree-cfg.c (build_tree_cfg): Ditto.
* Makefile.in (haifa-sched.o, sched-ebb.o): Add output.h dependency.
* basic-block.h (life_analysis, pre_edge_lcm, pre_edge_rev_lcm):
Declaration changed.
* config/sh/sh.c (sh_output_mi_thunk): Do not pass dump_file to
life_analysis and schedule_insns.
* config/m68hc11/m68hc11.c (m68hc11_reorg): Do not pass dump_file to
life_analysis.
* config/mt/mt.c (mt_machine_reorg): Do not pass dump_file to
dbr_schedule.
* config/mips/mips.c (mips_reorg): Ditto.
* config/ia64/ia64.c (ia64_reorg): Do not pass dump_file to
schedule_ebbs.
From-SVN: r110656
2006-02-06 19:20:47 +01:00
|
|
|
|
2006-02-06 Zdenek Dvorak <dvorakz@suse.cz>
|
|
|
|
|
|
|
|
|
|
* tree-vrp.c (execute_vrp): Do not pass dump argument to.
|
|
|
|
|
loop_optimizer_init and loop_optimizer_finalize
|
|
|
|
|
* tree-ssa-sink.c (execute_sink_code): Ditto.
|
|
|
|
|
* tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
|
|
|
|
|
* tree-ssa-loop.c (tree_loop_optimizer_init, tree_ssa_loop_init,
|
|
|
|
|
tree_ssa_loop_done): Ditto.
|
|
|
|
|
* tree-ssa-pre.c (init_pre, fini_pre): Ditto.
|
|
|
|
|
* sched-ebb.c: Include output.h.
|
|
|
|
|
(schedule_ebbs): Do not use dump argument.
|
|
|
|
|
* value-prof.h (struct profile_hooks): Remove profile_dump_file.
|
|
|
|
|
* loop.c (loop_dump_stream): Removed.
|
|
|
|
|
(loop_optimize, rest_of_handle_loop_optimize): Do not use dump
|
|
|
|
|
argument.
|
|
|
|
|
(scan_loop, move_movables, find_and_verify_loops, mark_loop_jump,
|
|
|
|
|
emit_prefetch_instructions, loop_bivs_find, loop_bivs_check,
|
|
|
|
|
final_biv_value, loop_biv_eliminable_p, loop_givs_rescan,
|
|
|
|
|
loop_iterations, strength_reduce, record_biv, record_giv,
|
|
|
|
|
final_giv_value, check_final_value, check_ext_dependent_givs,
|
|
|
|
|
combine_givs, check_dbra_loop, maybe_eliminate_biv, load_mems,
|
|
|
|
|
try_copy_prop, loop_delete_insns, try_swap_copy_prop): Use
|
|
|
|
|
dump_file instead of loop_dump_stream.
|
|
|
|
|
* ddg.c (print_ddg_edge, print_ddg, vcg_print_ddg): Do not call
|
|
|
|
|
argument dump_file.
|
|
|
|
|
* reorg.c (dbr_schedule, rest_of_handle_delay_slots): Do not use
|
|
|
|
|
dump argument.
|
|
|
|
|
* flow.c (life_analysis, rest_of_handle_life): Ditto.
|
|
|
|
|
* haifa-sched.c: Include output.h
|
|
|
|
|
(schedule_insns, sched_init): Do not use dump argument.
|
|
|
|
|
* mode-switching.c (optimize_mode_switching): Ditto.
|
|
|
|
|
* modulo-sched.c (stats_file): Removed.
|
|
|
|
|
(print_node_sched_params): Do not call argument dump_file.
|
|
|
|
|
(sms_schedule_by_order, loop_canon_p, sms_schedule,
|
|
|
|
|
rest_of_handle_sms): Do not use dump argument. Use dump_file instead
|
|
|
|
|
of stats_file.
|
|
|
|
|
* cse.c (cse_main, rest_of_handle_cse, rest_of_handle_cse2): Do not
|
|
|
|
|
use dump argument.
|
|
|
|
|
* loop-init.c (loop_optimizer_init, loop_optimizer_finalize,
|
|
|
|
|
rtl_loop_init, rtl_loop_done): Ditto.
|
|
|
|
|
* global.c (global_alloc, rest_of_handle_global_alloc): Ditto.
|
|
|
|
|
* predict.c (combine_predictions_for_bb, tree_estimate_probability):
|
|
|
|
|
Ditto.
|
|
|
|
|
* recog.c (peephole2_optimize, rest_of_handle_peephole2): Ditto.
|
|
|
|
|
* lcm.c (pre_edge_lcm, pre_edge_rev_lcm): Ditto.
|
|
|
|
|
* regmove.c (fixup_match_1, fixup_match_2, regmove_optimize,
|
|
|
|
|
rest_of_handle_regmove, rest_of_handle_stack_adjustments): Ditto.
|
|
|
|
|
* emit-rtl.c (renumber_insns): Ditto.
|
|
|
|
|
* cfgexpand.c (add_reg_br_prob_note, expand_gimple_cond_expr,
|
|
|
|
|
expand_gimple_basic_block, tree_expand_cfg): Ditto.
|
|
|
|
|
* regclass.c (regclass): Ditto.
|
|
|
|
|
* tree-outof-ssa.c (analyze_edges_for_bb, perform_edge_inserts,
|
|
|
|
|
remove_ssa_form, rewrite_out_of_ssa): Ditto.
|
|
|
|
|
* reg-stack.c (compensate_edge, compensate_edges, convert_regs_1,
|
|
|
|
|
convert_regs_2, convert_regs, reg_to_stack, rest_of_handle_stack_regs):
|
|
|
|
|
Ditto.
|
|
|
|
|
* sched-rgn.c (schedule_insns, rest_of_handle_sched): Ditto.
|
|
|
|
|
* local-alloc.c (rest_of_handle_local_alloc): Do not pass dump_file
|
|
|
|
|
to regclass.
|
|
|
|
|
* gcse.c (gcse_file, debug_stderr): Removed.
|
|
|
|
|
(gcse_main, bypass_jumps, rest_of_handle_jump_bypass,
|
|
|
|
|
rest_of_handle_gcse): Do not use dump argument.
|
|
|
|
|
(cprop_jump, cprop_insn, do_local_cprop, cprop, find_implicit_sets,
|
|
|
|
|
one_cprop_pass, bypass_block, compute_pre_data, insert_insn_end_bb,
|
|
|
|
|
pre_edge_insert, pre_insert_copy_insn, pre_delete, one_pre_gcse_pass,
|
|
|
|
|
compute_code_hoist_vbeinout, compute_code_hoist_data,
|
|
|
|
|
one_code_hoisting_pass, trim_ld_motion_mems, update_ld_motion_stores,
|
|
|
|
|
compute_store_table, build_store_vectors, insert_insn_start_bb,
|
|
|
|
|
insert_store, remove_reachable_equiv_notes, replace_store_insn,
|
|
|
|
|
store_motion): Use dump_file instead of gcse_file.
|
|
|
|
|
* ipa-type-escape.c (type_escape_execute): Remove debugging comments.
|
|
|
|
|
* profile.c (profile_dump_file): Removed.
|
|
|
|
|
(branch_prob): Use dump_file instead of profile_dump_file.
|
|
|
|
|
* ipa.c (cgraph_remove_unreachable_nodes): Do not call argument
|
|
|
|
|
dump_file.
|
|
|
|
|
* tree-ssa-copy.c (dump_copy_of): Ditto.
|
|
|
|
|
* rtl-factoring.c (rtl_seqabstr, rest_of_rtl_seqabstr): Do not pass
|
|
|
|
|
dump file to life_analysis.
|
|
|
|
|
* bt-load.c (branch_target_load_optimize): Ditto.
|
|
|
|
|
* cfgcleanup.c (rest_of_handle_jump2): Do not pass dump_file to
|
|
|
|
|
renumber_insns.
|
|
|
|
|
* rtl.h (cse_main, renumber_insns, schedule_insns, schedule_ebbs,
|
|
|
|
|
regclass, dbr_schedule): Declaration changed.
|
|
|
|
|
* sched-int.h (sched_init): Declaration changed.
|
|
|
|
|
* tree-profile.c (tree_profile_dump_file): Removed.
|
|
|
|
|
(tree_profile_hooks): Removed profile_dump_file hook.
|
|
|
|
|
* rtl-profile (rtl_profile_dump_file): Removed.
|
|
|
|
|
(rtl_profile_hooks): emoved profile_dump_file hook.
|
|
|
|
|
* cfgloop.h (loop_optimizer_init, loop_optimizer_finalize): Declaration
|
|
|
|
|
changed.
|
|
|
|
|
* c-gimplify.c (c_genericize): Do not call local variable dump_file.
|
|
|
|
|
* tree-cfg.c (build_tree_cfg): Ditto.
|
|
|
|
|
* Makefile.in (haifa-sched.o, sched-ebb.o): Add output.h dependency.
|
|
|
|
|
* basic-block.h (life_analysis, pre_edge_lcm, pre_edge_rev_lcm):
|
|
|
|
|
Declaration changed.
|
|
|
|
|
* config/sh/sh.c (sh_output_mi_thunk): Do not pass dump_file to
|
|
|
|
|
life_analysis and schedule_insns.
|
|
|
|
|
* config/m68hc11/m68hc11.c (m68hc11_reorg): Do not pass dump_file to
|
|
|
|
|
life_analysis.
|
|
|
|
|
* config/mt/mt.c (mt_machine_reorg): Do not pass dump_file to
|
|
|
|
|
dbr_schedule.
|
|
|
|
|
* config/mips/mips.c (mips_reorg): Ditto.
|
|
|
|
|
* config/ia64/ia64.c (ia64_reorg): Do not pass dump_file to
|
|
|
|
|
schedule_ebbs.
|
|
|
|
|
|
2006-02-06 18:45:00 +01:00
|
|
|
|
2006-02-06 Aldy Hernandez <aldyh@redhat.com>
|
|
|
|
|
|
|
|
|
|
* config/s390/s390.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
|
|
|
|
|
(s390_mangle_fundamental_type): New.
|
|
|
|
|
* config/s390/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
|
|
|
|
|
Define.
|
|
|
|
|
|
|
|
|
|
* config/alpha/alpha.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
|
|
|
|
|
(alpha_mangle_fundamental_type): New.
|
|
|
|
|
* config/alpha/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
|
|
|
|
|
Define.
|
|
|
|
|
|
|
|
|
|
* config/sparc/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
|
|
|
|
|
Define.
|
|
|
|
|
* config/sparc/linux64.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
|
|
|
|
|
Define.
|
|
|
|
|
* config/sparc/sparc.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
|
|
|
|
|
(sparc_mangle_fundamental_type): New.
|
|
|
|
|
|
2006-02-06 18:41:54 +01:00
|
|
|
|
2006-02-06 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* config.gcc (s390-*-linux*): Add s390/t-linux to tmake_file.
|
|
|
|
|
(s390x-*-linux*): Likewise.
|
|
|
|
|
* config/s390/t-linux64 (SHLIB_MAPFILES): Removed.
|
|
|
|
|
* config/s390/t-linux: New file.
|
|
|
|
|
|
2006-02-06 15:27:21 +01:00
|
|
|
|
2006-02-02 Bernd Schmidt <bernd.schmidt@analog.com>
|
|
|
|
|
|
|
|
|
|
* config/i386/sync.md (sync_add<mode>, sync_sub<mode>, sync_ior<mode>,
|
|
|
|
|
sync_and<mode>, sync_xor<mode>): Operand 0 is in-out.
|
|
|
|
|
|
2006-02-06 15:22:00 +01:00
|
|
|
|
2006-02-06 Daniel Berlin <dberlin@dberlin.org>
|
|
|
|
|
|
|
|
|
|
* tree-ssa-pre.c (bb_value_sets_t): Add antic_safe_loads.
|
|
|
|
|
(ANTIC_SAFE_LOADS): New macro.
|
|
|
|
|
(find_or_generate_expression): Add prototype.
|
|
|
|
|
(set_contains_value): Allow null set for sake of not always having
|
|
|
|
|
to allocate ANTIC_SAFE_LOADS.
|
|
|
|
|
(phi_translate): Move placement of AGGREGATE_TYPE_P check.
|
|
|
|
|
Allow COMPONENT_REF too.
|
|
|
|
|
(valid_in_set): Allow COMPONENT_REF.
|
|
|
|
|
Check ANTIC_SAFE_LOADS too.
|
|
|
|
|
(compute_antic_aux): Print out ANTIC_SAFE_LOADS.
|
|
|
|
|
(compute_rvuse_and_antic_safe): Add ANTIC_SAFE computation, and
|
|
|
|
|
rename.
|
|
|
|
|
(can_PRE_operation): Add COMPONENT_REF.
|
|
|
|
|
(create_component_ref_by_pieces): New function.
|
|
|
|
|
(create_expression_by_pieces): Use create_component_ref_by_pieces.
|
|
|
|
|
(insert_aux): Move AGGREGATE_TYPE_P check here.
|
|
|
|
|
(compute_avail): Set bb local stmt uids.
|
|
|
|
|
(pass_pre): Use TODO_update_ssa_only_virtuals.
|
2006-02-26 20:32:37 +01:00
|
|
|
|
|
2006-02-06 05:23:54 +01:00
|
|
|
|
2006-02-06 Ben Elliston <bje@au.ibm.com>
|
|
|
|
|
|
|
|
|
|
* configure.ac: Unconditionally disable decimal float by default.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2006-02-06 05:11:54 +01:00
|
|
|
|
2006-02-06 Ben Elliston <bje@au.ibm.com>
|
|
|
|
|
|
|
|
|
|
* read-rtl.c (read_name): Terminate reading on EOF.
|
|
|
|
|
|
|
|
|
|
2006-02-06 Ben Elliston <bje@au.ibm.com>
|
2006-02-05 23:59:35 +01:00
|
|
|
|
|
|
|
|
|
* dfp.c (decimal_real_arithmetic): Change second argument type
|
|
|
|
|
from int to enum tree_code. Do not always return true, but now
|
|
|
|
|
return result of any call to decimal_do helper functions.
|
|
|
|
|
* dfp.h (decimal_real_arithmetic): Update prototype.
|
|
|
|
|
|
2006-02-05 22:53:00 +01:00
|
|
|
|
2006-02-05 Eric Botcazou <ebotcazou@libertysurf.fr>
|
|
|
|
|
|
|
|
|
|
* config/sparc/sol2-bi.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDMID.
|
|
|
|
|
|
2006-02-05 21:29:10 +01:00
|
|
|
|
2006-02-05 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
|
|
PR tree-opt/25251
|
|
|
|
|
* tree-cfg.c (cleanup_dead_labels): Also don't remove
|
|
|
|
|
forced labels.
|
|
|
|
|
|
2006-02-05 21:14:59 +01:00
|
|
|
|
2006-02-04 Zdenek Dvorak <dvorakz@suse.cz>
|
|
|
|
|
|
|
|
|
|
* tree-vrp.c (cfg_loops): Removed.
|
|
|
|
|
(adjust_range_with_scev, vrp_visit_assignment, execute_vrp):
|
|
|
|
|
Use current_loops instead of cfg_loops. Pass flags to
|
|
|
|
|
loop_optimizer_init.
|
|
|
|
|
* cfgloopmanip.c (fix_loop_structure): Update only available
|
|
|
|
|
information.
|
|
|
|
|
* tree-ssa-loop-ch.c (copy_loop_headers): Pass flags to
|
|
|
|
|
loop_optimizer_init.
|
|
|
|
|
* modulo-sched.c (build_loops_structure): Removed.
|
|
|
|
|
(sms_schedule): Use loop_optimizer_init.
|
|
|
|
|
* loop-init.c (loop_optimizer_init): Use flags to determine
|
|
|
|
|
which properties of loops to prepare.
|
|
|
|
|
(rtl_loop_init): Pass flags to loop_optimizer_init.
|
|
|
|
|
* tree-ssa-sink.c (execute_sink_code): Ditto.
|
|
|
|
|
* tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
|
|
|
|
|
* tree-ssa-pre.c (init_pre): Ditto.
|
|
|
|
|
* cfgloop.h (LOOPS_NORMAL): New.
|
|
|
|
|
(loop_optimizer_init): Declaration changed.
|
|
|
|
|
|
2006-02-05 16:54:49 +01:00
|
|
|
|
2006-02-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
|
|
|
|
|
|
|
|
|
* pa/x-ada-hpux10, pa/t-pa-hpux10, pa/t-pa-hpux11: New files.
|
|
|
|
|
* config.gcc (hppa[12]*-*-hpux10*): Use pa/t-pa-hpux10 instead of
|
|
|
|
|
pa/t-pa.
|
|
|
|
|
* config.gcc (hppa[12]*-*-hpux11*): Use pa/t-pa-hpux11 instead of
|
|
|
|
|
pa/t-pa.
|
|
|
|
|
* config.host (hppa*-*-hpux10*): Use pa/x-ada-hpux10 instead of
|
|
|
|
|
pa/x-ada.
|
|
|
|
|
* pa/t-pa-hpux: Add lib2funcs.asm and quadlib.c rules.
|
|
|
|
|
* pa/t-pa64: Delete quadlib.c rule.
|
|
|
|
|
* pa/x-ada: Revert last change.
|
|
|
|
|
* pa/t-pa: Revert last change. Delete quadlib.c rule.
|
|
|
|
|
|
2006-02-05 15:58:07 +01:00
|
|
|
|
2006-02-04 Zdenek Dvorak <dvorakz@suse.cz>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/26087
|
|
|
|
|
* rtlanal.c (canonicalize_condition): Do not cross basic block
|
|
|
|
|
boundaries.
|
|
|
|
|
|
2006-02-04 23:08:04 +01:00
|
|
|
|
2006-02-04 Alexandre Oliva <aoliva@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR debug/24444
|
|
|
|
|
* config/ia64/ia64.c: Include debug.h.
|
|
|
|
|
(MAX_ARTIFICIAL_LABEL_BYTES): New.
|
|
|
|
|
(ia64_label_after_insn, ia64_dwarf2out_def_steady_cfa): New.
|
|
|
|
|
(IA64_CHANGE_CFA_IN_EPILOGUE): Define to 0.
|
|
|
|
|
(process_epilogue, process_set, process_for_unwind_directive):
|
|
|
|
|
Output unwind info only if requested. Add CFA info if requested.
|
|
|
|
|
Add new arguments as needed. Adjust callers.
|
|
|
|
|
* config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Override
|
|
|
|
|
incorrect default.
|
|
|
|
|
(DWARF2_FRAME_INFO): Define to zero.
|
|
|
|
|
* config/ia64/unwind-ia64.c: Remove code that compensated for
|
|
|
|
|
the CFA offset error fixed above.
|
|
|
|
|
* config/ia64/t-ia64 (ia64.o): Depend on debug.h.
|
|
|
|
|
* dwarf2out.c (DWARF2_FRAME_INFO): Define default.
|
|
|
|
|
(dwarf2out_do_frame): Require nonzero DWARF2_UNWIND_INFO for
|
|
|
|
|
-funwind-tables and -fexceptions to enable frame info.
|
|
|
|
|
(dwarf2out_frame_init): Define initial CFA even if
|
|
|
|
|
DWARF2_UNWIND_INFO is disabled. Call initial_return_save if
|
|
|
|
|
DWARF2_UNWIND_INFO is nonzero, not just defined.
|
|
|
|
|
(dwarf2out_frame_finish): Output non-EH call frame info only
|
|
|
|
|
if DWARF2_FRAME_INFO is nonzero.
|
|
|
|
|
(convert_cfa_to_loc_list,
|
|
|
|
|
compute_frame_pointer_to_cfa_displacement): Define even if
|
|
|
|
|
unwind info is not supported.
|
|
|
|
|
(gen_subprogram_die): Use the above unconditionally. Remove
|
|
|
|
|
legacy alternate code.
|
|
|
|
|
* toplev.c (compile_file): Compile in call to
|
|
|
|
|
dwarf2out_frame_finish if DWARF2_DEBUGGING_INFO is defined.
|
|
|
|
|
(lang_dependent_init): Ditto for dwarf2out_frame_init.
|
|
|
|
|
|
2006-02-04 15:18:17 +01:00
|
|
|
|
2006-02-04 David Edelsohn <edelsohn@gnu.org>
|
|
|
|
|
Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Mangle
|
|
|
|
|
IBM extended float format long double as "g" on powerpc*-linux.
|
|
|
|
|
|
2006-02-04 01:44:53 +01:00
|
|
|
|
2006-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
|
|
|
|
|
|
|
|
|
PR target/25926
|
|
|
|
|
* pa/x-ada (X_ADA_CFLAGS): Define _X_HPUX10 on HP-UX 10.
|
|
|
|
|
* pa/t-pa (TARGET_LIBGCC2_CFLAGS): Define _T_HPUX10 on HP-UX 10.
|
|
|
|
|
|
2006-02-03 22:57:08 +01:00
|
|
|
|
2006-02-03 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/25979
|
|
|
|
|
* gimplify.c (gimplify_modify_expr_rhs): Disable *& optimization for now.
|
|
|
|
|
|
|
|
|
|
PR middle-end/25977
|
|
|
|
|
* gimplify.c (gimplify_modify_expr_rhs): It's not always safe to do RVO
|
|
|
|
|
on the return slot if it's an NRV.
|
|
|
|
|
|
2006-02-03 20:28:09 +01:00
|
|
|
|
2006-02-03 Zdenek Dvorak <dvorakz@suse.cz>
|
|
|
|
|
|
|
|
|
|
* tree-ssa-loop-ivopts.c (enum use_type): Remove USE_OUTER.
|
|
|
|
|
(dump_use, add_derived_ivs_candidates, determine_use_iv_cost,
|
|
|
|
|
rewrite_use): Do not handle USE_OUTER.
|
|
|
|
|
(find_interesting_uses_outer_or_nonlin, find_interesting_uses_outer,
|
|
|
|
|
add_iv_outer_candidates, may_replace_final_value,
|
|
|
|
|
determine_use_iv_cost_outer, rewrite_use_outer): Removed.
|
|
|
|
|
(find_interesting_uses_op): Functionality of
|
|
|
|
|
find_interesting_uses_outer_or_nonlin moved here.
|
|
|
|
|
(find_interesting_uses_outside): Use find_interesting_uses_op.
|
|
|
|
|
|
2006-02-03 12:44:08 +01:00
|
|
|
|
2006-02-03 Alan Modra <amodra@bigpond.net.au>
|
|
|
|
|
|
|
|
|
|
PR target/25960
|
|
|
|
|
* config/rs6000/darwin-ldouble.c (__gcc_qadd): Preserve -0.0 result.
|
|
|
|
|
|
re PR target/25864 (Enable IBM long double format in 32-bit PowerPC Linux)
2006-02-03 Andreas Krebbel <krebbel1@de.ibm.com>
Ulrich Weigand <uweigand@de.ibm.com>
PR target/25864
* config/s390/2084.md ("x_fsimptf", "x_fmultf", "x_fdivtf",
"x_floadtf", "x_ftrunctf", "x_ftruncdf"): New insn reservations.
* config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): New functions.
* config/s390/s390.c (struct processor_costs): Add mxbr, sqxbr, dxbr
and dxr fields.
(z900_cost, z990_cost, z9_109_cost): Values for the new fields added.
(s390_rtx_costs): Use the new fields to calculate rtx costs.
(s390_secondary_input_reload_class, s390_secondary_output_reload_class):
Define secondary reloads for TFmode moves.
(constant_modes): Add TFmode.
(NR_C_MODES): Set to 8.
* config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Add __LONG_DOUBLE_128__
builtin define.
(LONG_DOUBLE_TYPE_SIZE): Set to 128 or 64.
(LIBGCC2_LONG_DOUBLE_TYPE_SIZE, WIDEST_HARDWARE_FP_SIZE): Define.
(HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS,
CANNOT_CHANGE_MODE_CLASS): Consider TFmode.
* config/s390/s390.md ("type" attribute): Add fsimptf, floadtf, fmultf,
fdivtf, fsqrttf, ftrunctf, ftruncdf as possible values.
(FPR mode macro): Add TFmode.
(DSF mode macro): New.
(<de>, <dee> mode attributes): Removed.
(<xde>, <xdee>, <RRe>, <RXe>, <Rf> mode attributes): New.
("*cmp<mode>_ccs_0", "*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs",
"*cmp<mode>_ccs_ibm", "fix_trunc<FPR:mode><GPR:mode>2_ieee",
"floatdi<mode>2", "floatsi<mode>2_ieee", "*add<mode>3",
"*add<mode>3_cc", "*add<mode>3_cconly", "*add<mode>3_ibm",
"*sub<mode>3", "*sub<mode>3_cc", "*sub<mode>3_cconly",
"*sub<mode>3_ibm", "*mul<mode>3_ibm", "*fmadd<mode>", "*fmsub<mode>",
"*div<mode>3", "*div<mode>3_ibm", "*neg<mode>2_cc",
"*neg<mode>2_cconly", "*neg<mode>2", "*neg<mode>2_ibm",
"*abs<mode>2_cc", "*abs<mode>2_cconly", "*abs<mode>2",
"*abs<mode>2_ibm", "*negabs<mode>2_cc", "*negabs<mode>2_cconly",
"*negabs<mode>2", "sqrt<mode>2"):
Changed <de> to <xde>. R constraint replaced by <Rf>.
("*mul<mode>3"): Changed <dee> to <xdee>. R constraint replaced by
<Rf>.
("fix_trunc<FPR:mode>di2"): 'FPR:' removed.
("*fmadd<mode>", "*fmsub<mode>"): FPR mode replaced by DSF.
("*movtf_64", "*movtf_31"): New insn definitions followed by 5
splitters.
("movtf", "reload_outtf", "reload_intf", "trunctfdf2", "trunctfsf2",
"extenddftf2", "extendsftf2"): New expanders.
("*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
"*trunctfsf2_ibm", "*extenddftf2_ieee", "*extenddftf2_ibm",
"*extendsftf2_ieee", "*extendsftf2_ibm"): New insn patterns.
* config/s390/s390.opt (mlong-double-128, mlong-double-64):
New options.
* config/s390/t-crtstuff (TARGET_LIBGCC2_CFLAGS): Macro defined.
* config/s390/libgcc-glibc.ver (__divtc3, __multc3, __powitf2,
__fixtfti, __fixunstfti, __floattitf, __fixtfdi, __fixunstfdi,
__floatditf): Add a GCC_4.1.0 symbol version tag.
* doc/invoke.texi (-mlong-double-128, -mlong-double-64): Document
the new options.
Co-Authored-By: Ulrich Weigand <uweigand@de.ibm.com>
From-SVN: r110539
2006-02-03 08:52:57 +01:00
|
|
|
|
2006-02-03 Andreas Krebbel <krebbel1@de.ibm.com>
|
2006-02-03 20:28:09 +01:00
|
|
|
|
Ulrich Weigand <uweigand@de.ibm.com>
|
re PR target/25864 (Enable IBM long double format in 32-bit PowerPC Linux)
2006-02-03 Andreas Krebbel <krebbel1@de.ibm.com>
Ulrich Weigand <uweigand@de.ibm.com>
PR target/25864
* config/s390/2084.md ("x_fsimptf", "x_fmultf", "x_fdivtf",
"x_floadtf", "x_ftrunctf", "x_ftruncdf"): New insn reservations.
* config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): New functions.
* config/s390/s390.c (struct processor_costs): Add mxbr, sqxbr, dxbr
and dxr fields.
(z900_cost, z990_cost, z9_109_cost): Values for the new fields added.
(s390_rtx_costs): Use the new fields to calculate rtx costs.
(s390_secondary_input_reload_class, s390_secondary_output_reload_class):
Define secondary reloads for TFmode moves.
(constant_modes): Add TFmode.
(NR_C_MODES): Set to 8.
* config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Add __LONG_DOUBLE_128__
builtin define.
(LONG_DOUBLE_TYPE_SIZE): Set to 128 or 64.
(LIBGCC2_LONG_DOUBLE_TYPE_SIZE, WIDEST_HARDWARE_FP_SIZE): Define.
(HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS,
CANNOT_CHANGE_MODE_CLASS): Consider TFmode.
* config/s390/s390.md ("type" attribute): Add fsimptf, floadtf, fmultf,
fdivtf, fsqrttf, ftrunctf, ftruncdf as possible values.
(FPR mode macro): Add TFmode.
(DSF mode macro): New.
(<de>, <dee> mode attributes): Removed.
(<xde>, <xdee>, <RRe>, <RXe>, <Rf> mode attributes): New.
("*cmp<mode>_ccs_0", "*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs",
"*cmp<mode>_ccs_ibm", "fix_trunc<FPR:mode><GPR:mode>2_ieee",
"floatdi<mode>2", "floatsi<mode>2_ieee", "*add<mode>3",
"*add<mode>3_cc", "*add<mode>3_cconly", "*add<mode>3_ibm",
"*sub<mode>3", "*sub<mode>3_cc", "*sub<mode>3_cconly",
"*sub<mode>3_ibm", "*mul<mode>3_ibm", "*fmadd<mode>", "*fmsub<mode>",
"*div<mode>3", "*div<mode>3_ibm", "*neg<mode>2_cc",
"*neg<mode>2_cconly", "*neg<mode>2", "*neg<mode>2_ibm",
"*abs<mode>2_cc", "*abs<mode>2_cconly", "*abs<mode>2",
"*abs<mode>2_ibm", "*negabs<mode>2_cc", "*negabs<mode>2_cconly",
"*negabs<mode>2", "sqrt<mode>2"):
Changed <de> to <xde>. R constraint replaced by <Rf>.
("*mul<mode>3"): Changed <dee> to <xdee>. R constraint replaced by
<Rf>.
("fix_trunc<FPR:mode>di2"): 'FPR:' removed.
("*fmadd<mode>", "*fmsub<mode>"): FPR mode replaced by DSF.
("*movtf_64", "*movtf_31"): New insn definitions followed by 5
splitters.
("movtf", "reload_outtf", "reload_intf", "trunctfdf2", "trunctfsf2",
"extenddftf2", "extendsftf2"): New expanders.
("*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
"*trunctfsf2_ibm", "*extenddftf2_ieee", "*extenddftf2_ibm",
"*extendsftf2_ieee", "*extendsftf2_ibm"): New insn patterns.
* config/s390/s390.opt (mlong-double-128, mlong-double-64):
New options.
* config/s390/t-crtstuff (TARGET_LIBGCC2_CFLAGS): Macro defined.
* config/s390/libgcc-glibc.ver (__divtc3, __multc3, __powitf2,
__fixtfti, __fixunstfti, __floattitf, __fixtfdi, __fixunstfdi,
__floatditf): Add a GCC_4.1.0 symbol version tag.
* doc/invoke.texi (-mlong-double-128, -mlong-double-64): Document
the new options.
Co-Authored-By: Ulrich Weigand <uweigand@de.ibm.com>
From-SVN: r110539
2006-02-03 08:52:57 +01:00
|
|
|
|
|
|
|
|
|
PR target/25864
|
|
|
|
|
* config/s390/2084.md ("x_fsimptf", "x_fmultf", "x_fdivtf",
|
|
|
|
|
"x_floadtf", "x_ftrunctf", "x_ftruncdf"): New insn reservations.
|
|
|
|
|
* config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): New functions.
|
2006-02-26 20:32:37 +01:00
|
|
|
|
* config/s390/s390.c (struct processor_costs): Add mxbr, sqxbr, dxbr
|
re PR target/25864 (Enable IBM long double format in 32-bit PowerPC Linux)
2006-02-03 Andreas Krebbel <krebbel1@de.ibm.com>
Ulrich Weigand <uweigand@de.ibm.com>
PR target/25864
* config/s390/2084.md ("x_fsimptf", "x_fmultf", "x_fdivtf",
"x_floadtf", "x_ftrunctf", "x_ftruncdf"): New insn reservations.
* config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): New functions.
* config/s390/s390.c (struct processor_costs): Add mxbr, sqxbr, dxbr
and dxr fields.
(z900_cost, z990_cost, z9_109_cost): Values for the new fields added.
(s390_rtx_costs): Use the new fields to calculate rtx costs.
(s390_secondary_input_reload_class, s390_secondary_output_reload_class):
Define secondary reloads for TFmode moves.
(constant_modes): Add TFmode.
(NR_C_MODES): Set to 8.
* config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Add __LONG_DOUBLE_128__
builtin define.
(LONG_DOUBLE_TYPE_SIZE): Set to 128 or 64.
(LIBGCC2_LONG_DOUBLE_TYPE_SIZE, WIDEST_HARDWARE_FP_SIZE): Define.
(HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS,
CANNOT_CHANGE_MODE_CLASS): Consider TFmode.
* config/s390/s390.md ("type" attribute): Add fsimptf, floadtf, fmultf,
fdivtf, fsqrttf, ftrunctf, ftruncdf as possible values.
(FPR mode macro): Add TFmode.
(DSF mode macro): New.
(<de>, <dee> mode attributes): Removed.
(<xde>, <xdee>, <RRe>, <RXe>, <Rf> mode attributes): New.
("*cmp<mode>_ccs_0", "*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs",
"*cmp<mode>_ccs_ibm", "fix_trunc<FPR:mode><GPR:mode>2_ieee",
"floatdi<mode>2", "floatsi<mode>2_ieee", "*add<mode>3",
"*add<mode>3_cc", "*add<mode>3_cconly", "*add<mode>3_ibm",
"*sub<mode>3", "*sub<mode>3_cc", "*sub<mode>3_cconly",
"*sub<mode>3_ibm", "*mul<mode>3_ibm", "*fmadd<mode>", "*fmsub<mode>",
"*div<mode>3", "*div<mode>3_ibm", "*neg<mode>2_cc",
"*neg<mode>2_cconly", "*neg<mode>2", "*neg<mode>2_ibm",
"*abs<mode>2_cc", "*abs<mode>2_cconly", "*abs<mode>2",
"*abs<mode>2_ibm", "*negabs<mode>2_cc", "*negabs<mode>2_cconly",
"*negabs<mode>2", "sqrt<mode>2"):
Changed <de> to <xde>. R constraint replaced by <Rf>.
("*mul<mode>3"): Changed <dee> to <xdee>. R constraint replaced by
<Rf>.
("fix_trunc<FPR:mode>di2"): 'FPR:' removed.
("*fmadd<mode>", "*fmsub<mode>"): FPR mode replaced by DSF.
("*movtf_64", "*movtf_31"): New insn definitions followed by 5
splitters.
("movtf", "reload_outtf", "reload_intf", "trunctfdf2", "trunctfsf2",
"extenddftf2", "extendsftf2"): New expanders.
("*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
"*trunctfsf2_ibm", "*extenddftf2_ieee", "*extenddftf2_ibm",
"*extendsftf2_ieee", "*extendsftf2_ibm"): New insn patterns.
* config/s390/s390.opt (mlong-double-128, mlong-double-64):
New options.
* config/s390/t-crtstuff (TARGET_LIBGCC2_CFLAGS): Macro defined.
* config/s390/libgcc-glibc.ver (__divtc3, __multc3, __powitf2,
__fixtfti, __fixunstfti, __floattitf, __fixtfdi, __fixunstfdi,
__floatditf): Add a GCC_4.1.0 symbol version tag.
* doc/invoke.texi (-mlong-double-128, -mlong-double-64): Document
the new options.
Co-Authored-By: Ulrich Weigand <uweigand@de.ibm.com>
From-SVN: r110539
2006-02-03 08:52:57 +01:00
|
|
|
|
and dxr fields.
|
|
|
|
|
(z900_cost, z990_cost, z9_109_cost): Values for the new fields added.
|
|
|
|
|
(s390_rtx_costs): Use the new fields to calculate rtx costs.
|
|
|
|
|
(s390_secondary_input_reload_class, s390_secondary_output_reload_class):
|
|
|
|
|
Define secondary reloads for TFmode moves.
|
|
|
|
|
(constant_modes): Add TFmode.
|
|
|
|
|
(NR_C_MODES): Set to 8.
|
|
|
|
|
* config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Add __LONG_DOUBLE_128__
|
|
|
|
|
builtin define.
|
|
|
|
|
(LONG_DOUBLE_TYPE_SIZE): Set to 128 or 64.
|
|
|
|
|
(LIBGCC2_LONG_DOUBLE_TYPE_SIZE, WIDEST_HARDWARE_FP_SIZE): Define.
|
2006-02-26 20:32:37 +01:00
|
|
|
|
(HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS,
|
re PR target/25864 (Enable IBM long double format in 32-bit PowerPC Linux)
2006-02-03 Andreas Krebbel <krebbel1@de.ibm.com>
Ulrich Weigand <uweigand@de.ibm.com>
PR target/25864
* config/s390/2084.md ("x_fsimptf", "x_fmultf", "x_fdivtf",
"x_floadtf", "x_ftrunctf", "x_ftruncdf"): New insn reservations.
* config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): New functions.
* config/s390/s390.c (struct processor_costs): Add mxbr, sqxbr, dxbr
and dxr fields.
(z900_cost, z990_cost, z9_109_cost): Values for the new fields added.
(s390_rtx_costs): Use the new fields to calculate rtx costs.
(s390_secondary_input_reload_class, s390_secondary_output_reload_class):
Define secondary reloads for TFmode moves.
(constant_modes): Add TFmode.
(NR_C_MODES): Set to 8.
* config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Add __LONG_DOUBLE_128__
builtin define.
(LONG_DOUBLE_TYPE_SIZE): Set to 128 or 64.
(LIBGCC2_LONG_DOUBLE_TYPE_SIZE, WIDEST_HARDWARE_FP_SIZE): Define.
(HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS,
CANNOT_CHANGE_MODE_CLASS): Consider TFmode.
* config/s390/s390.md ("type" attribute): Add fsimptf, floadtf, fmultf,
fdivtf, fsqrttf, ftrunctf, ftruncdf as possible values.
(FPR mode macro): Add TFmode.
(DSF mode macro): New.
(<de>, <dee> mode attributes): Removed.
(<xde>, <xdee>, <RRe>, <RXe>, <Rf> mode attributes): New.
("*cmp<mode>_ccs_0", "*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs",
"*cmp<mode>_ccs_ibm", "fix_trunc<FPR:mode><GPR:mode>2_ieee",
"floatdi<mode>2", "floatsi<mode>2_ieee", "*add<mode>3",
"*add<mode>3_cc", "*add<mode>3_cconly", "*add<mode>3_ibm",
"*sub<mode>3", "*sub<mode>3_cc", "*sub<mode>3_cconly",
"*sub<mode>3_ibm", "*mul<mode>3_ibm", "*fmadd<mode>", "*fmsub<mode>",
"*div<mode>3", "*div<mode>3_ibm", "*neg<mode>2_cc",
"*neg<mode>2_cconly", "*neg<mode>2", "*neg<mode>2_ibm",
"*abs<mode>2_cc", "*abs<mode>2_cconly", "*abs<mode>2",
"*abs<mode>2_ibm", "*negabs<mode>2_cc", "*negabs<mode>2_cconly",
"*negabs<mode>2", "sqrt<mode>2"):
Changed <de> to <xde>. R constraint replaced by <Rf>.
("*mul<mode>3"): Changed <dee> to <xdee>. R constraint replaced by
<Rf>.
("fix_trunc<FPR:mode>di2"): 'FPR:' removed.
("*fmadd<mode>", "*fmsub<mode>"): FPR mode replaced by DSF.
("*movtf_64", "*movtf_31"): New insn definitions followed by 5
splitters.
("movtf", "reload_outtf", "reload_intf", "trunctfdf2", "trunctfsf2",
"extenddftf2", "extendsftf2"): New expanders.
("*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
"*trunctfsf2_ibm", "*extenddftf2_ieee", "*extenddftf2_ibm",
"*extendsftf2_ieee", "*extendsftf2_ibm"): New insn patterns.
* config/s390/s390.opt (mlong-double-128, mlong-double-64):
New options.
* config/s390/t-crtstuff (TARGET_LIBGCC2_CFLAGS): Macro defined.
* config/s390/libgcc-glibc.ver (__divtc3, __multc3, __powitf2,
__fixtfti, __fixunstfti, __floattitf, __fixtfdi, __fixunstfdi,
__floatditf): Add a GCC_4.1.0 symbol version tag.
* doc/invoke.texi (-mlong-double-128, -mlong-double-64): Document
the new options.
Co-Authored-By: Ulrich Weigand <uweigand@de.ibm.com>
From-SVN: r110539
2006-02-03 08:52:57 +01:00
|
|
|
|
CANNOT_CHANGE_MODE_CLASS): Consider TFmode.
|
2006-02-26 20:32:37 +01:00
|
|
|
|
* config/s390/s390.md ("type" attribute): Add fsimptf, floadtf, fmultf,
|
re PR target/25864 (Enable IBM long double format in 32-bit PowerPC Linux)
2006-02-03 Andreas Krebbel <krebbel1@de.ibm.com>
Ulrich Weigand <uweigand@de.ibm.com>
PR target/25864
* config/s390/2084.md ("x_fsimptf", "x_fmultf", "x_fdivtf",
"x_floadtf", "x_ftrunctf", "x_ftruncdf"): New insn reservations.
* config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): New functions.
* config/s390/s390.c (struct processor_costs): Add mxbr, sqxbr, dxbr
and dxr fields.
(z900_cost, z990_cost, z9_109_cost): Values for the new fields added.
(s390_rtx_costs): Use the new fields to calculate rtx costs.
(s390_secondary_input_reload_class, s390_secondary_output_reload_class):
Define secondary reloads for TFmode moves.
(constant_modes): Add TFmode.
(NR_C_MODES): Set to 8.
* config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Add __LONG_DOUBLE_128__
builtin define.
(LONG_DOUBLE_TYPE_SIZE): Set to 128 or 64.
(LIBGCC2_LONG_DOUBLE_TYPE_SIZE, WIDEST_HARDWARE_FP_SIZE): Define.
(HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS,
CANNOT_CHANGE_MODE_CLASS): Consider TFmode.
* config/s390/s390.md ("type" attribute): Add fsimptf, floadtf, fmultf,
fdivtf, fsqrttf, ftrunctf, ftruncdf as possible values.
(FPR mode macro): Add TFmode.
(DSF mode macro): New.
(<de>, <dee> mode attributes): Removed.
(<xde>, <xdee>, <RRe>, <RXe>, <Rf> mode attributes): New.
("*cmp<mode>_ccs_0", "*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs",
"*cmp<mode>_ccs_ibm", "fix_trunc<FPR:mode><GPR:mode>2_ieee",
"floatdi<mode>2", "floatsi<mode>2_ieee", "*add<mode>3",
"*add<mode>3_cc", "*add<mode>3_cconly", "*add<mode>3_ibm",
"*sub<mode>3", "*sub<mode>3_cc", "*sub<mode>3_cconly",
"*sub<mode>3_ibm", "*mul<mode>3_ibm", "*fmadd<mode>", "*fmsub<mode>",
"*div<mode>3", "*div<mode>3_ibm", "*neg<mode>2_cc",
"*neg<mode>2_cconly", "*neg<mode>2", "*neg<mode>2_ibm",
"*abs<mode>2_cc", "*abs<mode>2_cconly", "*abs<mode>2",
"*abs<mode>2_ibm", "*negabs<mode>2_cc", "*negabs<mode>2_cconly",
"*negabs<mode>2", "sqrt<mode>2"):
Changed <de> to <xde>. R constraint replaced by <Rf>.
("*mul<mode>3"): Changed <dee> to <xdee>. R constraint replaced by
<Rf>.
("fix_trunc<FPR:mode>di2"): 'FPR:' removed.
("*fmadd<mode>", "*fmsub<mode>"): FPR mode replaced by DSF.
("*movtf_64", "*movtf_31"): New insn definitions followed by 5
splitters.
("movtf", "reload_outtf", "reload_intf", "trunctfdf2", "trunctfsf2",
"extenddftf2", "extendsftf2"): New expanders.
("*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
"*trunctfsf2_ibm", "*extenddftf2_ieee", "*extenddftf2_ibm",
"*extendsftf2_ieee", "*extendsftf2_ibm"): New insn patterns.
* config/s390/s390.opt (mlong-double-128, mlong-double-64):
New options.
* config/s390/t-crtstuff (TARGET_LIBGCC2_CFLAGS): Macro defined.
* config/s390/libgcc-glibc.ver (__divtc3, __multc3, __powitf2,
__fixtfti, __fixunstfti, __floattitf, __fixtfdi, __fixunstfdi,
__floatditf): Add a GCC_4.1.0 symbol version tag.
* doc/invoke.texi (-mlong-double-128, -mlong-double-64): Document
the new options.
Co-Authored-By: Ulrich Weigand <uweigand@de.ibm.com>
From-SVN: r110539
2006-02-03 08:52:57 +01:00
|
|
|
|
fdivtf, fsqrttf, ftrunctf, ftruncdf as possible values.
|
|
|
|
|
(FPR mode macro): Add TFmode.
|
|
|
|
|
(DSF mode macro): New.
|
|
|
|
|
(<de>, <dee> mode attributes): Removed.
|
|
|
|
|
(<xde>, <xdee>, <RRe>, <RXe>, <Rf> mode attributes): New.
|
2006-02-26 20:32:37 +01:00
|
|
|
|
("*cmp<mode>_ccs_0", "*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs",
|
|
|
|
|
"*cmp<mode>_ccs_ibm", "fix_trunc<FPR:mode><GPR:mode>2_ieee",
|
|
|
|
|
"floatdi<mode>2", "floatsi<mode>2_ieee", "*add<mode>3",
|
|
|
|
|
"*add<mode>3_cc", "*add<mode>3_cconly", "*add<mode>3_ibm",
|
|
|
|
|
"*sub<mode>3", "*sub<mode>3_cc", "*sub<mode>3_cconly",
|
re PR target/25864 (Enable IBM long double format in 32-bit PowerPC Linux)
2006-02-03 Andreas Krebbel <krebbel1@de.ibm.com>
Ulrich Weigand <uweigand@de.ibm.com>
PR target/25864
* config/s390/2084.md ("x_fsimptf", "x_fmultf", "x_fdivtf",
"x_floadtf", "x_ftrunctf", "x_ftruncdf"): New insn reservations.
* config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): New functions.
* config/s390/s390.c (struct processor_costs): Add mxbr, sqxbr, dxbr
and dxr fields.
(z900_cost, z990_cost, z9_109_cost): Values for the new fields added.
(s390_rtx_costs): Use the new fields to calculate rtx costs.
(s390_secondary_input_reload_class, s390_secondary_output_reload_class):
Define secondary reloads for TFmode moves.
(constant_modes): Add TFmode.
(NR_C_MODES): Set to 8.
* config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Add __LONG_DOUBLE_128__
builtin define.
(LONG_DOUBLE_TYPE_SIZE): Set to 128 or 64.
(LIBGCC2_LONG_DOUBLE_TYPE_SIZE, WIDEST_HARDWARE_FP_SIZE): Define.
(HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS,
CANNOT_CHANGE_MODE_CLASS): Consider TFmode.
* config/s390/s390.md ("type" attribute): Add fsimptf, floadtf, fmultf,
fdivtf, fsqrttf, ftrunctf, ftruncdf as possible values.
(FPR mode macro): Add TFmode.
(DSF mode macro): New.
(<de>, <dee> mode attributes): Removed.
(<xde>, <xdee>, <RRe>, <RXe>, <Rf> mode attributes): New.
("*cmp<mode>_ccs_0", "*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs",
"*cmp<mode>_ccs_ibm", "fix_trunc<FPR:mode><GPR:mode>2_ieee",
"floatdi<mode>2", "floatsi<mode>2_ieee", "*add<mode>3",
"*add<mode>3_cc", "*add<mode>3_cconly", "*add<mode>3_ibm",
"*sub<mode>3", "*sub<mode>3_cc", "*sub<mode>3_cconly",
"*sub<mode>3_ibm", "*mul<mode>3_ibm", "*fmadd<mode>", "*fmsub<mode>",
"*div<mode>3", "*div<mode>3_ibm", "*neg<mode>2_cc",
"*neg<mode>2_cconly", "*neg<mode>2", "*neg<mode>2_ibm",
"*abs<mode>2_cc", "*abs<mode>2_cconly", "*abs<mode>2",
"*abs<mode>2_ibm", "*negabs<mode>2_cc", "*negabs<mode>2_cconly",
"*negabs<mode>2", "sqrt<mode>2"):
Changed <de> to <xde>. R constraint replaced by <Rf>.
("*mul<mode>3"): Changed <dee> to <xdee>. R constraint replaced by
<Rf>.
("fix_trunc<FPR:mode>di2"): 'FPR:' removed.
("*fmadd<mode>", "*fmsub<mode>"): FPR mode replaced by DSF.
("*movtf_64", "*movtf_31"): New insn definitions followed by 5
splitters.
("movtf", "reload_outtf", "reload_intf", "trunctfdf2", "trunctfsf2",
"extenddftf2", "extendsftf2"): New expanders.
("*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
"*trunctfsf2_ibm", "*extenddftf2_ieee", "*extenddftf2_ibm",
"*extendsftf2_ieee", "*extendsftf2_ibm"): New insn patterns.
* config/s390/s390.opt (mlong-double-128, mlong-double-64):
New options.
* config/s390/t-crtstuff (TARGET_LIBGCC2_CFLAGS): Macro defined.
* config/s390/libgcc-glibc.ver (__divtc3, __multc3, __powitf2,
__fixtfti, __fixunstfti, __floattitf, __fixtfdi, __fixunstfdi,
__floatditf): Add a GCC_4.1.0 symbol version tag.
* doc/invoke.texi (-mlong-double-128, -mlong-double-64): Document
the new options.
Co-Authored-By: Ulrich Weigand <uweigand@de.ibm.com>
From-SVN: r110539
2006-02-03 08:52:57 +01:00
|
|
|
|
"*sub<mode>3_ibm", "*mul<mode>3_ibm", "*fmadd<mode>", "*fmsub<mode>",
|
2006-02-26 20:32:37 +01:00
|
|
|
|
"*div<mode>3", "*div<mode>3_ibm", "*neg<mode>2_cc",
|
|
|
|
|
"*neg<mode>2_cconly", "*neg<mode>2", "*neg<mode>2_ibm",
|
re PR target/25864 (Enable IBM long double format in 32-bit PowerPC Linux)
2006-02-03 Andreas Krebbel <krebbel1@de.ibm.com>
Ulrich Weigand <uweigand@de.ibm.com>
PR target/25864
* config/s390/2084.md ("x_fsimptf", "x_fmultf", "x_fdivtf",
"x_floadtf", "x_ftrunctf", "x_ftruncdf"): New insn reservations.
* config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): New functions.
* config/s390/s390.c (struct processor_costs): Add mxbr, sqxbr, dxbr
and dxr fields.
(z900_cost, z990_cost, z9_109_cost): Values for the new fields added.
(s390_rtx_costs): Use the new fields to calculate rtx costs.
(s390_secondary_input_reload_class, s390_secondary_output_reload_class):
Define secondary reloads for TFmode moves.
(constant_modes): Add TFmode.
(NR_C_MODES): Set to 8.
* config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Add __LONG_DOUBLE_128__
builtin define.
(LONG_DOUBLE_TYPE_SIZE): Set to 128 or 64.
(LIBGCC2_LONG_DOUBLE_TYPE_SIZE, WIDEST_HARDWARE_FP_SIZE): Define.
(HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS,
CANNOT_CHANGE_MODE_CLASS): Consider TFmode.
* config/s390/s390.md ("type" attribute): Add fsimptf, floadtf, fmultf,
fdivtf, fsqrttf, ftrunctf, ftruncdf as possible values.
(FPR mode macro): Add TFmode.
(DSF mode macro): New.
(<de>, <dee> mode attributes): Removed.
(<xde>, <xdee>, <RRe>, <RXe>, <Rf> mode attributes): New.
("*cmp<mode>_ccs_0", "*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs",
"*cmp<mode>_ccs_ibm", "fix_trunc<FPR:mode><GPR:mode>2_ieee",
"floatdi<mode>2", "floatsi<mode>2_ieee", "*add<mode>3",
"*add<mode>3_cc", "*add<mode>3_cconly", "*add<mode>3_ibm",
"*sub<mode>3", "*sub<mode>3_cc", "*sub<mode>3_cconly",
"*sub<mode>3_ibm", "*mul<mode>3_ibm", "*fmadd<mode>", "*fmsub<mode>",
"*div<mode>3", "*div<mode>3_ibm", "*neg<mode>2_cc",
"*neg<mode>2_cconly", "*neg<mode>2", "*neg<mode>2_ibm",
"*abs<mode>2_cc", "*abs<mode>2_cconly", "*abs<mode>2",
"*abs<mode>2_ibm", "*negabs<mode>2_cc", "*negabs<mode>2_cconly",
"*negabs<mode>2", "sqrt<mode>2"):
Changed <de> to <xde>. R constraint replaced by <Rf>.
("*mul<mode>3"): Changed <dee> to <xdee>. R constraint replaced by
<Rf>.
("fix_trunc<FPR:mode>di2"): 'FPR:' removed.
("*fmadd<mode>", "*fmsub<mode>"): FPR mode replaced by DSF.
("*movtf_64", "*movtf_31"): New insn definitions followed by 5
splitters.
("movtf", "reload_outtf", "reload_intf", "trunctfdf2", "trunctfsf2",
"extenddftf2", "extendsftf2"): New expanders.
("*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
"*trunctfsf2_ibm", "*extenddftf2_ieee", "*extenddftf2_ibm",
"*extendsftf2_ieee", "*extendsftf2_ibm"): New insn patterns.
* config/s390/s390.opt (mlong-double-128, mlong-double-64):
New options.
* config/s390/t-crtstuff (TARGET_LIBGCC2_CFLAGS): Macro defined.
* config/s390/libgcc-glibc.ver (__divtc3, __multc3, __powitf2,
__fixtfti, __fixunstfti, __floattitf, __fixtfdi, __fixunstfdi,
__floatditf): Add a GCC_4.1.0 symbol version tag.
* doc/invoke.texi (-mlong-double-128, -mlong-double-64): Document
the new options.
Co-Authored-By: Ulrich Weigand <uweigand@de.ibm.com>
From-SVN: r110539
2006-02-03 08:52:57 +01:00
|
|
|
|
"*abs<mode>2_cc", "*abs<mode>2_cconly", "*abs<mode>2",
|
2006-02-26 20:32:37 +01:00
|
|
|
|
"*abs<mode>2_ibm", "*negabs<mode>2_cc", "*negabs<mode>2_cconly",
|
re PR target/25864 (Enable IBM long double format in 32-bit PowerPC Linux)
2006-02-03 Andreas Krebbel <krebbel1@de.ibm.com>
Ulrich Weigand <uweigand@de.ibm.com>
PR target/25864
* config/s390/2084.md ("x_fsimptf", "x_fmultf", "x_fdivtf",
"x_floadtf", "x_ftrunctf", "x_ftruncdf"): New insn reservations.
* config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): New functions.
* config/s390/s390.c (struct processor_costs): Add mxbr, sqxbr, dxbr
and dxr fields.
(z900_cost, z990_cost, z9_109_cost): Values for the new fields added.
(s390_rtx_costs): Use the new fields to calculate rtx costs.
(s390_secondary_input_reload_class, s390_secondary_output_reload_class):
Define secondary reloads for TFmode moves.
(constant_modes): Add TFmode.
(NR_C_MODES): Set to 8.
* config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Add __LONG_DOUBLE_128__
builtin define.
(LONG_DOUBLE_TYPE_SIZE): Set to 128 or 64.
(LIBGCC2_LONG_DOUBLE_TYPE_SIZE, WIDEST_HARDWARE_FP_SIZE): Define.
(HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS,
CANNOT_CHANGE_MODE_CLASS): Consider TFmode.
* config/s390/s390.md ("type" attribute): Add fsimptf, floadtf, fmultf,
fdivtf, fsqrttf, ftrunctf, ftruncdf as possible values.
(FPR mode macro): Add TFmode.
(DSF mode macro): New.
(<de>, <dee> mode attributes): Removed.
(<xde>, <xdee>, <RRe>, <RXe>, <Rf> mode attributes): New.
("*cmp<mode>_ccs_0", "*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs",
"*cmp<mode>_ccs_ibm", "fix_trunc<FPR:mode><GPR:mode>2_ieee",
"floatdi<mode>2", "floatsi<mode>2_ieee", "*add<mode>3",
"*add<mode>3_cc", "*add<mode>3_cconly", "*add<mode>3_ibm",
"*sub<mode>3", "*sub<mode>3_cc", "*sub<mode>3_cconly",
"*sub<mode>3_ibm", "*mul<mode>3_ibm", "*fmadd<mode>", "*fmsub<mode>",
"*div<mode>3", "*div<mode>3_ibm", "*neg<mode>2_cc",
"*neg<mode>2_cconly", "*neg<mode>2", "*neg<mode>2_ibm",
"*abs<mode>2_cc", "*abs<mode>2_cconly", "*abs<mode>2",
"*abs<mode>2_ibm", "*negabs<mode>2_cc", "*negabs<mode>2_cconly",
"*negabs<mode>2", "sqrt<mode>2"):
Changed <de> to <xde>. R constraint replaced by <Rf>.
("*mul<mode>3"): Changed <dee> to <xdee>. R constraint replaced by
<Rf>.
("fix_trunc<FPR:mode>di2"): 'FPR:' removed.
("*fmadd<mode>", "*fmsub<mode>"): FPR mode replaced by DSF.
("*movtf_64", "*movtf_31"): New insn definitions followed by 5
splitters.
("movtf", "reload_outtf", "reload_intf", "trunctfdf2", "trunctfsf2",
"extenddftf2", "extendsftf2"): New expanders.
("*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
"*trunctfsf2_ibm", "*extenddftf2_ieee", "*extenddftf2_ibm",
"*extendsftf2_ieee", "*extendsftf2_ibm"): New insn patterns.
* config/s390/s390.opt (mlong-double-128, mlong-double-64):
New options.
* config/s390/t-crtstuff (TARGET_LIBGCC2_CFLAGS): Macro defined.
* config/s390/libgcc-glibc.ver (__divtc3, __multc3, __powitf2,
__fixtfti, __fixunstfti, __floattitf, __fixtfdi, __fixunstfdi,
__floatditf): Add a GCC_4.1.0 symbol version tag.
* doc/invoke.texi (-mlong-double-128, -mlong-double-64): Document
the new options.
Co-Authored-By: Ulrich Weigand <uweigand@de.ibm.com>
From-SVN: r110539
2006-02-03 08:52:57 +01:00
|
|
|
|
"*negabs<mode>2", "sqrt<mode>2"):
|
|
|
|
|
Changed <de> to <xde>. R constraint replaced by <Rf>.
|
2006-02-26 20:32:37 +01:00
|
|
|
|
("*mul<mode>3"): Changed <dee> to <xdee>. R constraint replaced by
|
re PR target/25864 (Enable IBM long double format in 32-bit PowerPC Linux)
2006-02-03 Andreas Krebbel <krebbel1@de.ibm.com>
Ulrich Weigand <uweigand@de.ibm.com>
PR target/25864
* config/s390/2084.md ("x_fsimptf", "x_fmultf", "x_fdivtf",
"x_floadtf", "x_ftrunctf", "x_ftruncdf"): New insn reservations.
* config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): New functions.
* config/s390/s390.c (struct processor_costs): Add mxbr, sqxbr, dxbr
and dxr fields.
(z900_cost, z990_cost, z9_109_cost): Values for the new fields added.
(s390_rtx_costs): Use the new fields to calculate rtx costs.
(s390_secondary_input_reload_class, s390_secondary_output_reload_class):
Define secondary reloads for TFmode moves.
(constant_modes): Add TFmode.
(NR_C_MODES): Set to 8.
* config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Add __LONG_DOUBLE_128__
builtin define.
(LONG_DOUBLE_TYPE_SIZE): Set to 128 or 64.
(LIBGCC2_LONG_DOUBLE_TYPE_SIZE, WIDEST_HARDWARE_FP_SIZE): Define.
(HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS,
CANNOT_CHANGE_MODE_CLASS): Consider TFmode.
* config/s390/s390.md ("type" attribute): Add fsimptf, floadtf, fmultf,
fdivtf, fsqrttf, ftrunctf, ftruncdf as possible values.
(FPR mode macro): Add TFmode.
(DSF mode macro): New.
(<de>, <dee> mode attributes): Removed.
(<xde>, <xdee>, <RRe>, <RXe>, <Rf> mode attributes): New.
("*cmp<mode>_ccs_0", "*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs",
"*cmp<mode>_ccs_ibm", "fix_trunc<FPR:mode><GPR:mode>2_ieee",
"floatdi<mode>2", "floatsi<mode>2_ieee", "*add<mode>3",
"*add<mode>3_cc", "*add<mode>3_cconly", "*add<mode>3_ibm",
"*sub<mode>3", "*sub<mode>3_cc", "*sub<mode>3_cconly",
"*sub<mode>3_ibm", "*mul<mode>3_ibm", "*fmadd<mode>", "*fmsub<mode>",
"*div<mode>3", "*div<mode>3_ibm", "*neg<mode>2_cc",
"*neg<mode>2_cconly", "*neg<mode>2", "*neg<mode>2_ibm",
"*abs<mode>2_cc", "*abs<mode>2_cconly", "*abs<mode>2",
"*abs<mode>2_ibm", "*negabs<mode>2_cc", "*negabs<mode>2_cconly",
"*negabs<mode>2", "sqrt<mode>2"):
Changed <de> to <xde>. R constraint replaced by <Rf>.
("*mul<mode>3"): Changed <dee> to <xdee>. R constraint replaced by
<Rf>.
("fix_trunc<FPR:mode>di2"): 'FPR:' removed.
("*fmadd<mode>", "*fmsub<mode>"): FPR mode replaced by DSF.
("*movtf_64", "*movtf_31"): New insn definitions followed by 5
splitters.
("movtf", "reload_outtf", "reload_intf", "trunctfdf2", "trunctfsf2",
"extenddftf2", "extendsftf2"): New expanders.
("*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
"*trunctfsf2_ibm", "*extenddftf2_ieee", "*extenddftf2_ibm",
"*extendsftf2_ieee", "*extendsftf2_ibm"): New insn patterns.
* config/s390/s390.opt (mlong-double-128, mlong-double-64):
New options.
* config/s390/t-crtstuff (TARGET_LIBGCC2_CFLAGS): Macro defined.
* config/s390/libgcc-glibc.ver (__divtc3, __multc3, __powitf2,
__fixtfti, __fixunstfti, __floattitf, __fixtfdi, __fixunstfdi,
__floatditf): Add a GCC_4.1.0 symbol version tag.
* doc/invoke.texi (-mlong-double-128, -mlong-double-64): Document
the new options.
Co-Authored-By: Ulrich Weigand <uweigand@de.ibm.com>
From-SVN: r110539
2006-02-03 08:52:57 +01:00
|
|
|
|
<Rf>.
|
|
|
|
|
("fix_trunc<FPR:mode>di2"): 'FPR:' removed.
|
2006-02-26 20:32:37 +01:00
|
|
|
|
("*fmadd<mode>", "*fmsub<mode>"): FPR mode replaced by DSF.
|
|
|
|
|
("*movtf_64", "*movtf_31"): New insn definitions followed by 5
|
re PR target/25864 (Enable IBM long double format in 32-bit PowerPC Linux)
2006-02-03 Andreas Krebbel <krebbel1@de.ibm.com>
Ulrich Weigand <uweigand@de.ibm.com>
PR target/25864
* config/s390/2084.md ("x_fsimptf", "x_fmultf", "x_fdivtf",
"x_floadtf", "x_ftrunctf", "x_ftruncdf"): New insn reservations.
* config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): New functions.
* config/s390/s390.c (struct processor_costs): Add mxbr, sqxbr, dxbr
and dxr fields.
(z900_cost, z990_cost, z9_109_cost): Values for the new fields added.
(s390_rtx_costs): Use the new fields to calculate rtx costs.
(s390_secondary_input_reload_class, s390_secondary_output_reload_class):
Define secondary reloads for TFmode moves.
(constant_modes): Add TFmode.
(NR_C_MODES): Set to 8.
* config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Add __LONG_DOUBLE_128__
builtin define.
(LONG_DOUBLE_TYPE_SIZE): Set to 128 or 64.
(LIBGCC2_LONG_DOUBLE_TYPE_SIZE, WIDEST_HARDWARE_FP_SIZE): Define.
(HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS,
CANNOT_CHANGE_MODE_CLASS): Consider TFmode.
* config/s390/s390.md ("type" attribute): Add fsimptf, floadtf, fmultf,
fdivtf, fsqrttf, ftrunctf, ftruncdf as possible values.
(FPR mode macro): Add TFmode.
(DSF mode macro): New.
(<de>, <dee> mode attributes): Removed.
(<xde>, <xdee>, <RRe>, <RXe>, <Rf> mode attributes): New.
("*cmp<mode>_ccs_0", "*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs",
"*cmp<mode>_ccs_ibm", "fix_trunc<FPR:mode><GPR:mode>2_ieee",
"floatdi<mode>2", "floatsi<mode>2_ieee", "*add<mode>3",
"*add<mode>3_cc", "*add<mode>3_cconly", "*add<mode>3_ibm",
"*sub<mode>3", "*sub<mode>3_cc", "*sub<mode>3_cconly",
"*sub<mode>3_ibm", "*mul<mode>3_ibm", "*fmadd<mode>", "*fmsub<mode>",
"*div<mode>3", "*div<mode>3_ibm", "*neg<mode>2_cc",
"*neg<mode>2_cconly", "*neg<mode>2", "*neg<mode>2_ibm",
"*abs<mode>2_cc", "*abs<mode>2_cconly", "*abs<mode>2",
"*abs<mode>2_ibm", "*negabs<mode>2_cc", "*negabs<mode>2_cconly",
"*negabs<mode>2", "sqrt<mode>2"):
Changed <de> to <xde>. R constraint replaced by <Rf>.
("*mul<mode>3"): Changed <dee> to <xdee>. R constraint replaced by
<Rf>.
("fix_trunc<FPR:mode>di2"): 'FPR:' removed.
("*fmadd<mode>", "*fmsub<mode>"): FPR mode replaced by DSF.
("*movtf_64", "*movtf_31"): New insn definitions followed by 5
splitters.
("movtf", "reload_outtf", "reload_intf", "trunctfdf2", "trunctfsf2",
"extenddftf2", "extendsftf2"): New expanders.
("*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
"*trunctfsf2_ibm", "*extenddftf2_ieee", "*extenddftf2_ibm",
"*extendsftf2_ieee", "*extendsftf2_ibm"): New insn patterns.
* config/s390/s390.opt (mlong-double-128, mlong-double-64):
New options.
* config/s390/t-crtstuff (TARGET_LIBGCC2_CFLAGS): Macro defined.
* config/s390/libgcc-glibc.ver (__divtc3, __multc3, __powitf2,
__fixtfti, __fixunstfti, __floattitf, __fixtfdi, __fixunstfdi,
__floatditf): Add a GCC_4.1.0 symbol version tag.
* doc/invoke.texi (-mlong-double-128, -mlong-double-64): Document
the new options.
Co-Authored-By: Ulrich Weigand <uweigand@de.ibm.com>
From-SVN: r110539
2006-02-03 08:52:57 +01:00
|
|
|
|
splitters.
|
2006-02-26 20:32:37 +01:00
|
|
|
|
("movtf", "reload_outtf", "reload_intf", "trunctfdf2", "trunctfsf2",
|
re PR target/25864 (Enable IBM long double format in 32-bit PowerPC Linux)
2006-02-03 Andreas Krebbel <krebbel1@de.ibm.com>
Ulrich Weigand <uweigand@de.ibm.com>
PR target/25864
* config/s390/2084.md ("x_fsimptf", "x_fmultf", "x_fdivtf",
"x_floadtf", "x_ftrunctf", "x_ftruncdf"): New insn reservations.
* config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): New functions.
* config/s390/s390.c (struct processor_costs): Add mxbr, sqxbr, dxbr
and dxr fields.
(z900_cost, z990_cost, z9_109_cost): Values for the new fields added.
(s390_rtx_costs): Use the new fields to calculate rtx costs.
(s390_secondary_input_reload_class, s390_secondary_output_reload_class):
Define secondary reloads for TFmode moves.
(constant_modes): Add TFmode.
(NR_C_MODES): Set to 8.
* config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Add __LONG_DOUBLE_128__
builtin define.
(LONG_DOUBLE_TYPE_SIZE): Set to 128 or 64.
(LIBGCC2_LONG_DOUBLE_TYPE_SIZE, WIDEST_HARDWARE_FP_SIZE): Define.
(HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS,
CANNOT_CHANGE_MODE_CLASS): Consider TFmode.
* config/s390/s390.md ("type" attribute): Add fsimptf, floadtf, fmultf,
fdivtf, fsqrttf, ftrunctf, ftruncdf as possible values.
(FPR mode macro): Add TFmode.
(DSF mode macro): New.
(<de>, <dee> mode attributes): Removed.
(<xde>, <xdee>, <RRe>, <RXe>, <Rf> mode attributes): New.
("*cmp<mode>_ccs_0", "*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs",
"*cmp<mode>_ccs_ibm", "fix_trunc<FPR:mode><GPR:mode>2_ieee",
"floatdi<mode>2", "floatsi<mode>2_ieee", "*add<mode>3",
"*add<mode>3_cc", "*add<mode>3_cconly", "*add<mode>3_ibm",
"*sub<mode>3", "*sub<mode>3_cc", "*sub<mode>3_cconly",
"*sub<mode>3_ibm", "*mul<mode>3_ibm", "*fmadd<mode>", "*fmsub<mode>",
"*div<mode>3", "*div<mode>3_ibm", "*neg<mode>2_cc",
"*neg<mode>2_cconly", "*neg<mode>2", "*neg<mode>2_ibm",
"*abs<mode>2_cc", "*abs<mode>2_cconly", "*abs<mode>2",
"*abs<mode>2_ibm", "*negabs<mode>2_cc", "*negabs<mode>2_cconly",
"*negabs<mode>2", "sqrt<mode>2"):
Changed <de> to <xde>. R constraint replaced by <Rf>.
("*mul<mode>3"): Changed <dee> to <xdee>. R constraint replaced by
<Rf>.
("fix_trunc<FPR:mode>di2"): 'FPR:' removed.
("*fmadd<mode>", "*fmsub<mode>"): FPR mode replaced by DSF.
("*movtf_64", "*movtf_31"): New insn definitions followed by 5
splitters.
("movtf", "reload_outtf", "reload_intf", "trunctfdf2", "trunctfsf2",
"extenddftf2", "extendsftf2"): New expanders.
("*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
"*trunctfsf2_ibm", "*extenddftf2_ieee", "*extenddftf2_ibm",
"*extendsftf2_ieee", "*extendsftf2_ibm"): New insn patterns.
* config/s390/s390.opt (mlong-double-128, mlong-double-64):
New options.
* config/s390/t-crtstuff (TARGET_LIBGCC2_CFLAGS): Macro defined.
* config/s390/libgcc-glibc.ver (__divtc3, __multc3, __powitf2,
__fixtfti, __fixunstfti, __floattitf, __fixtfdi, __fixunstfdi,
__floatditf): Add a GCC_4.1.0 symbol version tag.
* doc/invoke.texi (-mlong-double-128, -mlong-double-64): Document
the new options.
Co-Authored-By: Ulrich Weigand <uweigand@de.ibm.com>
From-SVN: r110539
2006-02-03 08:52:57 +01:00
|
|
|
|
"extenddftf2", "extendsftf2"): New expanders.
|
2006-02-26 20:32:37 +01:00
|
|
|
|
("*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
|
re PR target/25864 (Enable IBM long double format in 32-bit PowerPC Linux)
2006-02-03 Andreas Krebbel <krebbel1@de.ibm.com>
Ulrich Weigand <uweigand@de.ibm.com>
PR target/25864
* config/s390/2084.md ("x_fsimptf", "x_fmultf", "x_fdivtf",
"x_floadtf", "x_ftrunctf", "x_ftruncdf"): New insn reservations.
* config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): New functions.
* config/s390/s390.c (struct processor_costs): Add mxbr, sqxbr, dxbr
and dxr fields.
(z900_cost, z990_cost, z9_109_cost): Values for the new fields added.
(s390_rtx_costs): Use the new fields to calculate rtx costs.
(s390_secondary_input_reload_class, s390_secondary_output_reload_class):
Define secondary reloads for TFmode moves.
(constant_modes): Add TFmode.
(NR_C_MODES): Set to 8.
* config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Add __LONG_DOUBLE_128__
builtin define.
(LONG_DOUBLE_TYPE_SIZE): Set to 128 or 64.
(LIBGCC2_LONG_DOUBLE_TYPE_SIZE, WIDEST_HARDWARE_FP_SIZE): Define.
(HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS,
CANNOT_CHANGE_MODE_CLASS): Consider TFmode.
* config/s390/s390.md ("type" attribute): Add fsimptf, floadtf, fmultf,
fdivtf, fsqrttf, ftrunctf, ftruncdf as possible values.
(FPR mode macro): Add TFmode.
(DSF mode macro): New.
(<de>, <dee> mode attributes): Removed.
(<xde>, <xdee>, <RRe>, <RXe>, <Rf> mode attributes): New.
("*cmp<mode>_ccs_0", "*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs",
"*cmp<mode>_ccs_ibm", "fix_trunc<FPR:mode><GPR:mode>2_ieee",
"floatdi<mode>2", "floatsi<mode>2_ieee", "*add<mode>3",
"*add<mode>3_cc", "*add<mode>3_cconly", "*add<mode>3_ibm",
"*sub<mode>3", "*sub<mode>3_cc", "*sub<mode>3_cconly",
"*sub<mode>3_ibm", "*mul<mode>3_ibm", "*fmadd<mode>", "*fmsub<mode>",
"*div<mode>3", "*div<mode>3_ibm", "*neg<mode>2_cc",
"*neg<mode>2_cconly", "*neg<mode>2", "*neg<mode>2_ibm",
"*abs<mode>2_cc", "*abs<mode>2_cconly", "*abs<mode>2",
"*abs<mode>2_ibm", "*negabs<mode>2_cc", "*negabs<mode>2_cconly",
"*negabs<mode>2", "sqrt<mode>2"):
Changed <de> to <xde>. R constraint replaced by <Rf>.
("*mul<mode>3"): Changed <dee> to <xdee>. R constraint replaced by
<Rf>.
("fix_trunc<FPR:mode>di2"): 'FPR:' removed.
("*fmadd<mode>", "*fmsub<mode>"): FPR mode replaced by DSF.
("*movtf_64", "*movtf_31"): New insn definitions followed by 5
splitters.
("movtf", "reload_outtf", "reload_intf", "trunctfdf2", "trunctfsf2",
"extenddftf2", "extendsftf2"): New expanders.
("*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
"*trunctfsf2_ibm", "*extenddftf2_ieee", "*extenddftf2_ibm",
"*extendsftf2_ieee", "*extendsftf2_ibm"): New insn patterns.
* config/s390/s390.opt (mlong-double-128, mlong-double-64):
New options.
* config/s390/t-crtstuff (TARGET_LIBGCC2_CFLAGS): Macro defined.
* config/s390/libgcc-glibc.ver (__divtc3, __multc3, __powitf2,
__fixtfti, __fixunstfti, __floattitf, __fixtfdi, __fixunstfdi,
__floatditf): Add a GCC_4.1.0 symbol version tag.
* doc/invoke.texi (-mlong-double-128, -mlong-double-64): Document
the new options.
Co-Authored-By: Ulrich Weigand <uweigand@de.ibm.com>
From-SVN: r110539
2006-02-03 08:52:57 +01:00
|
|
|
|
"*trunctfsf2_ibm", "*extenddftf2_ieee", "*extenddftf2_ibm",
|
|
|
|
|
"*extendsftf2_ieee", "*extendsftf2_ibm"): New insn patterns.
|
|
|
|
|
* config/s390/s390.opt (mlong-double-128, mlong-double-64):
|
|
|
|
|
New options.
|
|
|
|
|
* config/s390/t-crtstuff (TARGET_LIBGCC2_CFLAGS): Macro defined.
|
2006-02-26 20:32:37 +01:00
|
|
|
|
* config/s390/libgcc-glibc.ver (__divtc3, __multc3, __powitf2,
|
re PR target/25864 (Enable IBM long double format in 32-bit PowerPC Linux)
2006-02-03 Andreas Krebbel <krebbel1@de.ibm.com>
Ulrich Weigand <uweigand@de.ibm.com>
PR target/25864
* config/s390/2084.md ("x_fsimptf", "x_fmultf", "x_fdivtf",
"x_floadtf", "x_ftrunctf", "x_ftruncdf"): New insn reservations.
* config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): New functions.
* config/s390/s390.c (struct processor_costs): Add mxbr, sqxbr, dxbr
and dxr fields.
(z900_cost, z990_cost, z9_109_cost): Values for the new fields added.
(s390_rtx_costs): Use the new fields to calculate rtx costs.
(s390_secondary_input_reload_class, s390_secondary_output_reload_class):
Define secondary reloads for TFmode moves.
(constant_modes): Add TFmode.
(NR_C_MODES): Set to 8.
* config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Add __LONG_DOUBLE_128__
builtin define.
(LONG_DOUBLE_TYPE_SIZE): Set to 128 or 64.
(LIBGCC2_LONG_DOUBLE_TYPE_SIZE, WIDEST_HARDWARE_FP_SIZE): Define.
(HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS,
CANNOT_CHANGE_MODE_CLASS): Consider TFmode.
* config/s390/s390.md ("type" attribute): Add fsimptf, floadtf, fmultf,
fdivtf, fsqrttf, ftrunctf, ftruncdf as possible values.
(FPR mode macro): Add TFmode.
(DSF mode macro): New.
(<de>, <dee> mode attributes): Removed.
(<xde>, <xdee>, <RRe>, <RXe>, <Rf> mode attributes): New.
("*cmp<mode>_ccs_0", "*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs",
"*cmp<mode>_ccs_ibm", "fix_trunc<FPR:mode><GPR:mode>2_ieee",
"floatdi<mode>2", "floatsi<mode>2_ieee", "*add<mode>3",
"*add<mode>3_cc", "*add<mode>3_cconly", "*add<mode>3_ibm",
"*sub<mode>3", "*sub<mode>3_cc", "*sub<mode>3_cconly",
"*sub<mode>3_ibm", "*mul<mode>3_ibm", "*fmadd<mode>", "*fmsub<mode>",
"*div<mode>3", "*div<mode>3_ibm", "*neg<mode>2_cc",
"*neg<mode>2_cconly", "*neg<mode>2", "*neg<mode>2_ibm",
"*abs<mode>2_cc", "*abs<mode>2_cconly", "*abs<mode>2",
"*abs<mode>2_ibm", "*negabs<mode>2_cc", "*negabs<mode>2_cconly",
"*negabs<mode>2", "sqrt<mode>2"):
Changed <de> to <xde>. R constraint replaced by <Rf>.
("*mul<mode>3"): Changed <dee> to <xdee>. R constraint replaced by
<Rf>.
("fix_trunc<FPR:mode>di2"): 'FPR:' removed.
("*fmadd<mode>", "*fmsub<mode>"): FPR mode replaced by DSF.
("*movtf_64", "*movtf_31"): New insn definitions followed by 5
splitters.
("movtf", "reload_outtf", "reload_intf", "trunctfdf2", "trunctfsf2",
"extenddftf2", "extendsftf2"): New expanders.
("*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
"*trunctfsf2_ibm", "*extenddftf2_ieee", "*extenddftf2_ibm",
"*extendsftf2_ieee", "*extendsftf2_ibm"): New insn patterns.
* config/s390/s390.opt (mlong-double-128, mlong-double-64):
New options.
* config/s390/t-crtstuff (TARGET_LIBGCC2_CFLAGS): Macro defined.
* config/s390/libgcc-glibc.ver (__divtc3, __multc3, __powitf2,
__fixtfti, __fixunstfti, __floattitf, __fixtfdi, __fixunstfdi,
__floatditf): Add a GCC_4.1.0 symbol version tag.
* doc/invoke.texi (-mlong-double-128, -mlong-double-64): Document
the new options.
Co-Authored-By: Ulrich Weigand <uweigand@de.ibm.com>
From-SVN: r110539
2006-02-03 08:52:57 +01:00
|
|
|
|
__fixtfti, __fixunstfti, __floattitf, __fixtfdi, __fixunstfdi,
|
|
|
|
|
__floatditf): Add a GCC_4.1.0 symbol version tag.
|
|
|
|
|
* doc/invoke.texi (-mlong-double-128, -mlong-double-64): Document
|
|
|
|
|
the new options.
|
|
|
|
|
|
2006-02-03 04:56:55 +01:00
|
|
|
|
2006-02-02 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
|
|
PR target/25377
|
|
|
|
|
* config/i386/i386.c (ix86_function_ok_for_sibcall):
|
|
|
|
|
Use targetm.binds_local_p instead of TREE_PUBLIC.
|
|
|
|
|
|
2006-02-03 04:41:47 +01:00
|
|
|
|
2006-02-02 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
|
|
* tree.h (TYPE_STRING_FLAG): Document that this field may be used
|
|
|
|
|
on INTEGER_TYPEs to indicate that it denotes a character type.
|
|
|
|
|
* tree.c (build_common_tree_nodes): Set TYPE_STRING_FLAG on
|
|
|
|
|
signed_char_type_node, unsigned_char_type_node and char_type_node.
|
|
|
|
|
* dwarf2out.c (base_type_die): Treat CHAR_TYPE identically to
|
|
|
|
|
INTEGER_TYPE. Use TYPE_STRING_FLAG to decide whether to emit
|
|
|
|
|
a DW_ATE_[un]signed_char instead of a DW_ATE_[un]signed.
|
|
|
|
|
|
2006-02-03 01:24:50 +01:00
|
|
|
|
2006-02-02 Zdenek Dvorak <dvorakz@suse.cz>
|
|
|
|
|
Daniel Berlin <dberlin@dberlin.org>
|
|
|
|
|
|
|
|
|
|
* tree-tailcall.c (arg_needs_copy_p): New function.
|
|
|
|
|
(eliminate_tail_call): Use arg_needs_copy_p.
|
|
|
|
|
(tree_optimize_tail_calls_1): Ditto. Also call add_virtual_phis.
|
|
|
|
|
(add_virtual_phis): New function.
|
|
|
|
|
|
2006-02-02 23:49:01 +01:00
|
|
|
|
2006-02-02 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* config/sparc/sparc.c (sparc_output_scratch_registers): Use
|
|
|
|
|
#ignore instead of #scratch for %g7 .register directive.
|
|
|
|
|
|
2006-02-02 20:55:09 +01:00
|
|
|
|
2006-02-02 Andreas Tobler <a.tobler@schweiz.ch>
|
|
|
|
|
|
|
|
|
|
* config/sparc/freebsd.h (ENDFILE_SPEC): Add space to separate
|
|
|
|
|
object files.
|
|
|
|
|
|
2006-02-02 14:12:59 +01:00
|
|
|
|
2006-02-02 Bernd Schmidt <bernd.schmidt@analog.com>
|
|
|
|
|
|
|
|
|
|
* flow.c (calculate_global_regs_live): Assert that there aren't any
|
|
|
|
|
EDGE_FAKE edges.
|
|
|
|
|
|
2006-02-02 14:05:36 +01:00
|
|
|
|
2006-02-02 Paolo Bonzini <bonzini@gnu.org>
|
|
|
|
|
|
|
|
|
|
* tree-flow-inline.h (bsi_after_labels): Rewrite, return
|
|
|
|
|
what its name says.
|
|
|
|
|
* lambda-code.c (perfect_nestify): Use bsi_insert_before on
|
|
|
|
|
bsi_after_labels iterator.
|
|
|
|
|
* tree-if-conv.c (find_phi_replacement_condition,
|
|
|
|
|
replace_phi_with_cond_modify_expr): Likewise.
|
|
|
|
|
* tree-scalar-evolution.c (scev_const_prop): Likewise.
|
|
|
|
|
* tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Likewise.
|
|
|
|
|
|
2006-02-02 13:36:26 +01:00
|
|
|
|
2006-02-02 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
* tree-inline.c (copy_tree_r): Also copy OMP_CLAUSE nodes.
|
|
|
|
|
|
2006-02-02 13:27:02 +01:00
|
|
|
|
2006-02-02 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR 25990
|
|
|
|
|
* tree-cfg.c (move_block_to_fn): Clear out the basic block
|
|
|
|
|
array after growing it.
|
|
|
|
|
|
2006-02-02 01:13:39 +01:00
|
|
|
|
2006-02-01 Steve Ellcey <sje@cup.hp.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/24901
|
|
|
|
|
* fold-const.c (fold_checksum_tree): Change type of buf.
|
|
|
|
|
|
2006-02-01 23:34:06 +01:00
|
|
|
|
2006-02-01 Bernd Schmidt <bernd.schmidt@analog.com>
|
|
|
|
|
|
|
|
|
|
* reload.c (push_secondary_reload): Initialize t_icode.
|
|
|
|
|
|
2006-02-01 23:21:43 +01:00
|
|
|
|
2006-02-01 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): For
|
|
|
|
|
-msoft-float -mlong-double-128 only issue a warning, but don't
|
|
|
|
|
swich to DFmode long double.
|
|
|
|
|
|
2006-02-01 22:15:54 +01:00
|
|
|
|
2006-02-01 Hans-Peter Nilsson <hp@axis.com>
|
|
|
|
|
|
|
|
|
|
* cse.c (fold_rtx) <case RTX_COMM_COMPARE, RTX_COMPARE>: When arg1
|
|
|
|
|
has a constant equivalent, iterate over equivalents for arg0,
|
|
|
|
|
calling simplify_relational_operation and if there's a result
|
|
|
|
|
cheaper than X, apply fold_rtx and return the result.
|
|
|
|
|
|
2006-02-01 21:31:29 +01:00
|
|
|
|
2006-02-01 Jan Hubicka <jh@suse.cz>
|
|
|
|
|
|
|
|
|
|
* opts.c (no_unit_at_a_time_default): New global variable.
|
|
|
|
|
(decode_options): Use it.
|
|
|
|
|
* opts.h (no_unit_at_a_time_default): Declare.
|
|
|
|
|
|
2006-02-01 20:44:47 +01:00
|
|
|
|
2006-02-01 Paul Brook <paul@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* function.c (assign_parm_setup_reg): Use function argument promotion
|
|
|
|
|
rules.
|
|
|
|
|
* expr.c (expand_expr_real_1): Use function argument promotion rules
|
|
|
|
|
for PARM_DECLs.
|
|
|
|
|
|
2006-02-01 20:42:02 +01:00
|
|
|
|
2006-02-01 Steve Ellcey <sje@cup.hp.com>
|
|
|
|
|
|
|
|
|
|
* gcc.c (process_command): Change j to 'unsigned int'.
|
|
|
|
|
|
2006-02-01 02:03:52 +01:00
|
|
|
|
2006-01-31 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
|
|
PR middle-end/26001
|
|
|
|
|
* expr.c (expand_expr_real_1) <case ARRAY_REF>:
|
|
|
|
|
Use the corrected index for the character
|
|
|
|
|
out of the string constant.
|
|
|
|
|
|
2006-02-01 01:43:06 +01:00
|
|
|
|
2006-01-31 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
|
|
* mode-switching.c (optimize_mode_switching): Fix size
|
|
|
|
|
allocated for bb_info[n_entities].
|
|
|
|
|
|
2006-02-01 00:18:27 +01:00
|
|
|
|
2006-01-31 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
|
|
* gcc.c (main): Correct type that is allocated for
|
|
|
|
|
explicit_link_files.
|
|
|
|
|
|
2006-01-31 23:33:27 +01:00
|
|
|
|
2006-01-31 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* config/s390/s390.c (init_alignment_context): Set
|
|
|
|
|
ALIAS_SET_MEMORY_BARRIER on the MEM.
|
|
|
|
|
* config/sparc/sparc.c (sparc_expand_compare_and_swap_12): Likewise.
|
|
|
|
|
|
2006-01-31 22:39:32 +01:00
|
|
|
|
2006-01-31 Uttam Pawar <uttamp@us.ibm.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/25933
|
|
|
|
|
* loop-unroll.c (unroll_loop_runtime_iterations): Free
|
|
|
|
|
dom_bbs pointer.
|
|
|
|
|
* tree-ssa-live.c (type_var_init): Allocate bitmap after
|
|
|
|
|
call to tpa_init.
|
|
|
|
|
|
2006-01-31 20:56:55 +01:00
|
|
|
|
2006-01-31 Marcin Dalecki <martin@dalecki.de>
|
|
|
|
|
|
|
|
|
|
* tree-vrp.c: Use XNEW/XCNEW allocation wrappers.
|
|
|
|
|
* regrename.c: Ditto.
|
|
|
|
|
* tree-ssa-loop-im.c: Ditto.
|
|
|
|
|
* tree-dump.c: Ditto.
|
|
|
|
|
* tree-complex.c: Ditto.
|
|
|
|
|
* genrecog.c: Ditto.
|
|
|
|
|
* tree-ssa-threadupdate.c: Ditto.
|
|
|
|
|
* tracer.c: Ditto.
|
|
|
|
|
* java/class.c: Ditto.
|
|
|
|
|
* java/jcf-parse.c: Ditto.
|
|
|
|
|
* java/resource.c: Ditto.
|
|
|
|
|
* java/except.c: Ditto.
|
|
|
|
|
* java/jvspec.c: Ditto.
|
|
|
|
|
* java/jcf-write.c: Ditto.
|
|
|
|
|
* java/jcf-path.c: Ditto.
|
|
|
|
|
* java/gjavah.c: Ditto.
|
|
|
|
|
* java/zextract.c: Ditto.
|
|
|
|
|
* java/jcf-io.c: Ditto.
|
|
|
|
|
* java/jcf.h: Ditto.
|
|
|
|
|
* java/buffer.c: Ditto.
|
|
|
|
|
* java/lang.c: Ditto.
|
|
|
|
|
* java/parse-scan.y: Ditto.
|
|
|
|
|
* java/lex.c: Ditto.
|
|
|
|
|
* java/lex.h: Ditto.
|
|
|
|
|
* cfgloopmanip.c: Ditto.
|
|
|
|
|
* postreload-gcse.c: Ditto.
|
|
|
|
|
* tree-ssa-loop-manip.c: Ditto.
|
|
|
|
|
* postreload.c: Ditto.
|
|
|
|
|
* tree-ssa-loop-ch.c: Ditto.
|
|
|
|
|
* loop.c: Ditto.
|
|
|
|
|
* ipa-cp.c: Ditto.
|
|
|
|
|
* cppspec.c: Ditto.
|
|
|
|
|
* diagnostic.c: Ditto.
|
|
|
|
|
* final.c: Ditto.
|
|
|
|
|
* genoutput.c: Ditto.
|
|
|
|
|
* gcc.c: Ditto.
|
|
|
|
|
* cfghooks.c: Ditto.
|
|
|
|
|
* cfgloopanal.c: Ditto.
|
|
|
|
|
* objc/objc-act.c: Ditto.
|
|
|
|
|
* gcov.c: Ditto.
|
|
|
|
|
* genextract.c: Ditto.
|
|
|
|
|
* genautomata.c: Ditto.
|
|
|
|
|
* pretty-print.c: Ditto.
|
|
|
|
|
* genemit.c: Ditto.
|
|
|
|
|
* cgraphunit.c: Ditto.
|
|
|
|
|
* flow.c: Ditto.
|
|
|
|
|
* df-scan.c: Ditto.
|
|
|
|
|
* haifa-sched.c: Ditto.
|
|
|
|
|
* dominance.c: Ditto.
|
|
|
|
|
* dbxout.c: Ditto.
|
|
|
|
|
* tree-ssa-loop-ivopts.c: Ditto.
|
|
|
|
|
* df-core.c: Ditto.
|
|
|
|
|
* mode-switching.c: Ditto.
|
|
|
|
|
* modulo-sched.c: Ditto.
|
|
|
|
|
* graph.c: Ditto.
|
|
|
|
|
* ipa-pure-const.c: Ditto.
|
|
|
|
|
* cse.c: Ditto.
|
|
|
|
|
* fix-header.c: Ditto.
|
|
|
|
|
* web.c: Ditto.
|
|
|
|
|
* tree-stdarg.c: Ditto.
|
|
|
|
|
* ipa-utils.c: Ditto.
|
|
|
|
|
* loop-init.c: Ditto.
|
|
|
|
|
* ipa-inline.c: Ditto.
|
|
|
|
|
* cfganal.c: Ditto.
|
|
|
|
|
* global.c: Ditto.
|
|
|
|
|
* alloc-pool.c: Ditto.
|
|
|
|
|
* dwarf2out.c: Ditto.
|
|
|
|
|
* opts.c: Ditto.
|
|
|
|
|
* genattrtab.c: Ditto.
|
|
|
|
|
* tree-ssa-loop-ivcanon.c: Ditto.
|
|
|
|
|
* predict.c: Ditto.
|
|
|
|
|
* timevar.c: Ditto.
|
|
|
|
|
* lcm.c: Ditto.
|
|
|
|
|
* fortran/gfortranspec.c: Ditto.
|
|
|
|
|
* regmove.c: Ditto.
|
|
|
|
|
* local-alloc.c: Ditto.
|
|
|
|
|
* langhooks.c: Ditto.
|
|
|
|
|
* function.c: Ditto.
|
|
|
|
|
* tree-vectorizer.c: Ditto.
|
|
|
|
|
* gcse.c: Ditto.
|
|
|
|
|
* ipa-type-escape.c: Ditto.
|
|
|
|
|
* alias.c: Ditto.
|
|
|
|
|
* tree-if-conv.c: Ditto.
|
|
|
|
|
* profile.c: Ditto.
|
|
|
|
|
* ipa.c: Ditto.
|
|
|
|
|
* tree-data-ref.c: Ditto.
|
|
|
|
|
* loop-unroll.c: Ditto.
|
|
|
|
|
* treelang/treetree.c: Ditto.
|
|
|
|
|
* calls.c: Ditto.
|
|
|
|
|
* bt-load.c: Ditto.
|
|
|
|
|
* ggc-common.c: Ditto.
|
|
|
|
|
* except.c: Ditto.
|
|
|
|
|
* coverage.c: Ditto.
|
|
|
|
|
* cselib.c: Ditto.
|
|
|
|
|
* tree-cfgcleanup.c: Ditto.
|
|
|
|
|
* tree-ssa-pre.c: Ditto.
|
|
|
|
|
* cfgcleanup.c: Ditto.
|
|
|
|
|
* loop-invariant.c: Ditto.
|
|
|
|
|
* loop-iv.c: Ditto.
|
|
|
|
|
* ipa-prop.c: Ditto.
|
|
|
|
|
* print-tree.c: Ditto.
|
|
|
|
|
* conflict.c: Ditto.
|
|
|
|
|
* ggc-page.c: Ditto.
|
|
|
|
|
* sched-deps.c: Ditto.
|
|
|
|
|
* regclass.c: Ditto.
|
|
|
|
|
* tree-object-size.c: Ditto.
|
|
|
|
|
* combine.c: Ditto.
|
|
|
|
|
* bb-reorder.c: Ditto.
|
|
|
|
|
* resource.c: Ditto.
|
|
|
|
|
* var-tracking.c: Ditto.
|
|
|
|
|
* cfgloop.c: Ditto.
|
|
|
|
|
* df-problems.c: Ditto.
|
|
|
|
|
* reg-stack.c: Ditto.
|
|
|
|
|
* tlink.c: Ditto.
|
|
|
|
|
* gccspec.c: Ditto.
|
|
|
|
|
* sched-rgn.c: Ditto.
|
|
|
|
|
* tree-ssa-structalias.c: Ditto.
|
|
|
|
|
* tree-ssa-reassoc.c: Ditto.
|
|
|
|
|
* config/darwin-c.c: Ditto.
|
|
|
|
|
* config/darwin.c: Ditto.
|
|
|
|
|
* config/arm/arm.c: Ditto.
|
|
|
|
|
* cfgrtl.c: Ditto.
|
|
|
|
|
* collect2.c: Ditto.
|
|
|
|
|
* reload1.c: Ditto.
|
|
|
|
|
|
2006-01-31 18:05:03 +01:00
|
|
|
|
2006-01-31 Nicolas Pitre <nico@cam.org>
|
|
|
|
|
|
|
|
|
|
* arm.md (smaxsi3): Make aware of smax_m1.
|
|
|
|
|
(smax_m1): New.
|
|
|
|
|
|
2006-01-31 17:58:47 +01:00
|
|
|
|
2006-01-31 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* gcc/config/m68k/lb1sf68.asm: Use moveq to load small constants.
|
|
|
|
|
|
2006-01-31 16:34:52 +01:00
|
|
|
|
2006-01-31 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
* doc/invoke.texi (-msselibm): Document.
|
|
|
|
|
* target.h (expand_library_builtin): New target hook.
|
|
|
|
|
* builtins.c (expand_builtin): Use expand_library_builtin.
|
|
|
|
|
(default_expand_library_builtin): New function.
|
|
|
|
|
* gcc.c (LINK_GCC_MATH_SPEC): Define.
|
|
|
|
|
(LINK_COMMAND_SPEC): Handle %(link_gcc_math).
|
|
|
|
|
(link_gcc_math_spec): Declare.
|
|
|
|
|
(static_specs): Add link_gcc_math_spec.
|
|
|
|
|
* expr.h (default_expand_library_builtin): Declare.
|
|
|
|
|
* target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
|
|
|
|
|
(TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN.
|
|
|
|
|
* config/i386/i386.h: Provide LINK_GCC_MATH_SPEC.
|
|
|
|
|
* config/i386/i386.opt (msselibm): New target option.
|
|
|
|
|
* config/i386/i386.c (ix86_builtin_function_variants): New array.
|
|
|
|
|
(ix86_init_sse_abi_builtins): New function.
|
|
|
|
|
(ix86_expand_library_builtin): Likewise.
|
|
|
|
|
(TARGET_EXPAND_LIBRARY_BUILTIN): Define.
|
|
|
|
|
(override_options): Handle error conditions wrt -msselibm.
|
|
|
|
|
(ix86_builtins): Add function codes for SSE2 ABI builtins.
|
|
|
|
|
(ix86_init_builtins): Call ix86_init_sse_abi_builtins.
|
|
|
|
|
* doc/extend.texi (__builtin_sse2_*): Document new target specific
|
|
|
|
|
builtins.
|
|
|
|
|
|
2006-01-31 12:56:46 +01:00
|
|
|
|
2006-01-31 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
Paolo Bonzini <bonzini@gnu.org>
|
|
|
|
|
|
|
|
|
|
* doc/install.texi (--disable-libgcc-math): Document.
|
|
|
|
|
|
2006-01-31 05:44:14 +01:00
|
|
|
|
2006-01-30 Marcin Dalecki <martin@dalecki.de>
|
|
|
|
|
|
|
|
|
|
* expr.h (expand_normal): new inline function.
|
|
|
|
|
* builtins.c: use it, use EXPAND_NORMAL explicitely.
|
|
|
|
|
* dojump.c: use it.
|
|
|
|
|
* dwarf2out.c: use it.
|
|
|
|
|
* expr.c: use it.
|
|
|
|
|
* calls.c: use it.
|
|
|
|
|
* expmed.c: use it.
|
|
|
|
|
* except.c: use it.
|
|
|
|
|
* config/sparc/sparc.c: use it.
|
|
|
|
|
* config/i386/i386.c: use it.
|
|
|
|
|
* config/rs6000/rs6000.c: use it.
|
|
|
|
|
* config/arm/arm.c: use it.
|
|
|
|
|
* config/mips/mips.c: use it.
|
|
|
|
|
* stmt.c: use it, use EXPAND_NORMAL explicitely.
|
|
|
|
|
|
2006-01-31 05:13:08 +01:00
|
|
|
|
2006-01-30 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
|
|
* config/i386/cygwin.h (GCC_DRIVER_HOST_INITIALIZATION): Cast
|
|
|
|
|
argv to the appropriate type.
|
|
|
|
|
|
2006-01-31 03:55:28 +01:00
|
|
|
|
2006-01-30 Zdenek Dvorak <dvorakz@suse.cz>
|
|
|
|
|
|
|
|
|
|
* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Remove
|
|
|
|
|
unreachable code.
|
|
|
|
|
|
2006-01-31 02:06:16 +01:00
|
|
|
|
2006-01-30 Ulrich Weigand <uweigand@de.ibm.com>
|
|
|
|
|
|
|
|
|
|
PR target/26018
|
|
|
|
|
* config/s390/s390.c (struct machine_function): New flag
|
|
|
|
|
decomposed_literal_pool_addresses_ok_p.
|
|
|
|
|
(s390_reorg): Set it before final stage of literal pool transforms.
|
|
|
|
|
(s390_decompose_address): Only accept displacements of the form
|
|
|
|
|
(minus (label_ref ...) (label_ref ...)) if that flag is set.
|
|
|
|
|
|
2006-01-30 20:58:57 +01:00
|
|
|
|
2006-01-30 Carlos O'Donell <carlos@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* optabs.c (prepare_cmp_insn): If unbaised and unsigned then bias
|
|
|
|
|
the comparison routine return.
|
|
|
|
|
|
2006-01-30 18:35:37 +01:00
|
|
|
|
2006-01-30 Michael Matz <matz@suse.de>
|
|
|
|
|
|
|
|
|
|
* global.c (find_reg): Only evict for global regs.
|
|
|
|
|
Take n_refs into account and dump more info.
|
|
|
|
|
|
re PR target/14798 (In case of SH target with -O2 option #pragma interrupt doesn't get resetted.)
PR target/14798:
gcc:
* sh.c (pragma_interrupt, trap_exit, sp_switch): Remove variable.
(pragma_trap, pragma_nosave_low_regs): Likewise.
(current_function_anonymous_args): Likewise.
(sh_deferred_function_attributes): New variable.
(sh_deferred_function_attributes_tail): Likewise.
(print_operand): For '@', look up trap_exit attribute.
(calc_live_regs): Look up trapa_handler attribute. For trapa
handlers, save/restore fpscr, but don't do any other
interrupt-specific saves.
Don't save r0..r7 if the nosave_low_regs attribute is in effect.
Fix check for partially saved registers to check for SHmedia.
(sh_expand_prologue, sh_expand_epilogue): Look up sp_switch attribute.
(sh_output_function_epilogue): Don't clear any of the removed
variables.
(sh_insert_attributes): Don't check pragma_interrupt.
Insert deferred attributes. Check that interrupt attribute is
present for other attributes that require its presence.
(sh_attribute_table): Add new attributes trapa_handler and
nosave_low_regs.
(sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
Don't check for pragma_interrupt. Don't store argument.
* sh.h (pragma_interrupt, sp_switch): Don't declare.
(sh_deferred_function_attributes): Declare.
(sh_deferred_function_attributes_tail): Likewise.
* sh.md (sp_switch_1): Add operand. Change generator caller.
(sh_pr_interrupt, sh_pr_trapa, sh_pr_nosave_low_regs): Remove.
(*return_i): Don't use when trap_exit attribute is in effect.
(*return_trapa): New insn pattern.
* sh-c.c: New file.
* config.gcc (sh[123456ble]*-* | sh-*-*): New trailer stanza,
setting c_target_objs and cxx_target_objs.
* t-sh: Add rule for sh-c.o.
gcc/testsuite:
* gcc.dg/pragma-isr.c: Added target sh[1234ble]*-*-*.
* gcc.dg/pragma-isr2.c, gcc.dg/pragma-isr-trapa.c: New tests.
* gcc.dg/pragma-isr-trapa2.c: Likewise.
* gcc.dg/pragma-isr-nosave_low_regs.c: Likewise.
* gcc.dg/pragma-isr-trap_exit.c: Likewise.
* gcc.dg/attr-isr.c, gcc.dg/attr-isr-trapa.c: Likewise.
* gcc.dg/attr-isr-trap_exit.c: Likewise.
* gcc.dg/attr-isr-nosave_low_regs.c: Likewise.
From-SVN: r110398
2006-01-30 16:07:43 +01:00
|
|
|
|
2006-01-30 J"orn Rennecke <joern.rennecke@st.com>
|
|
|
|
|
|
|
|
|
|
PR target/14798:
|
|
|
|
|
* sh.c (pragma_interrupt, trap_exit, sp_switch): Remove variable.
|
|
|
|
|
(pragma_trap, pragma_nosave_low_regs): Likewise.
|
|
|
|
|
(current_function_anonymous_args): Likewise.
|
|
|
|
|
(sh_deferred_function_attributes): New variable.
|
|
|
|
|
(sh_deferred_function_attributes_tail): Likewise.
|
|
|
|
|
(print_operand): For '@', look up trap_exit attribute.
|
|
|
|
|
(calc_live_regs): Look up trapa_handler attribute. For trapa
|
|
|
|
|
handlers, save/restore fpscr, but don't do any other
|
|
|
|
|
interrupt-specific saves.
|
|
|
|
|
Don't save r0..r7 if the nosave_low_regs attribute is in effect.
|
|
|
|
|
Fix check for partially saved registers to check for SHmedia.
|
|
|
|
|
(sh_expand_prologue, sh_expand_epilogue): Look up sp_switch attribute.
|
|
|
|
|
(sh_output_function_epilogue): Don't clear any of the removed
|
|
|
|
|
variables.
|
|
|
|
|
(sh_insert_attributes): Don't check pragma_interrupt.
|
|
|
|
|
Insert deferred attributes. Check that interrupt attribute is
|
|
|
|
|
present for other attributes that require its presence.
|
|
|
|
|
(sh_attribute_table): Add new attributes trapa_handler and
|
|
|
|
|
nosave_low_regs.
|
|
|
|
|
(sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
|
|
|
|
|
Don't check for pragma_interrupt. Don't store argument.
|
|
|
|
|
* sh.h (pragma_interrupt, sp_switch): Don't declare.
|
|
|
|
|
(sh_deferred_function_attributes): Declare.
|
|
|
|
|
(sh_deferred_function_attributes_tail): Likewise.
|
|
|
|
|
* sh.md (sp_switch_1): Add operand. Change generator caller.
|
|
|
|
|
(sh_pr_interrupt, sh_pr_trapa, sh_pr_nosave_low_regs): Remove.
|
|
|
|
|
(*return_i): Don't use when trap_exit attribute is in effect.
|
|
|
|
|
(*return_trapa): New insn pattern.
|
|
|
|
|
* sh-c.c: New file.
|
|
|
|
|
* config.gcc (sh[123456ble]*-* | sh-*-*): New trailer stanza,
|
|
|
|
|
setting c_target_objs and cxx_target_objs.
|
|
|
|
|
* t-sh: Add rule for sh-c.o.
|
|
|
|
|
|
2006-01-30 14:46:30 +01:00
|
|
|
|
2006-01-30 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR c++/23372
|
|
|
|
|
* gimplify.c (gimplify_target_expr): Handle easy cases
|
|
|
|
|
without creating a temporary.
|
|
|
|
|
|
2006-01-30 14:17:12 +01:00
|
|
|
|
2006-01-30 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* vec.h (safe_grow): Remove duplicated line.
|
|
|
|
|
|
2006-01-30 04:11:29 +01:00
|
|
|
|
2006-01-29 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR 25874
|
|
|
|
|
* omp-low.c (execute_expand_omp): Move CFG cleanup code ...
|
|
|
|
|
(expand_omp): ... here.
|
|
|
|
|
(expand_omp_parallel): Only remove barriers for combined
|
|
|
|
|
parallel+workshare constructs.
|
|
|
|
|
|
2006-01-29 23:23:10 +01:00
|
|
|
|
2006-01-29 Eric Botcazou <ebotcazou@adacore.com>
|
|
|
|
|
|
|
|
|
|
Revert
|
|
|
|
|
|
|
|
|
|
2005-11-09 Eric Botcazou <ebotcazou@adacore.com>
|
|
|
|
|
* tree.c (build_qualified_type): Chain the new type to the original
|
|
|
|
|
type's TYPE_NEXT_PTR_TO or TYPE_NEXT_REF_TO linked lists if it is
|
|
|
|
|
a POINTER_TYPE or a REFERENCE_TYPE respectively.
|
|
|
|
|
(build_pointer_type_for_mode): Only return unqualified types.
|
|
|
|
|
(build_reference_type_for_mode): Likewise.
|
|
|
|
|
|
2006-01-29 20:51:40 +01:00
|
|
|
|
2006-01-29 Gabriel Dos Reis <gdr@integgrable-solutions.net>
|
|
|
|
|
|
|
|
|
|
* configure.ac (cxx_compat_warn): Set if -Wc++-compat is supported.
|
|
|
|
|
* Makefile.in (CXX_COMPAT_WARN): Define.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2006-01-29 17:50:05 +01:00
|
|
|
|
2006-01-29 Dorit Nuzman <dorit@il.ibm.com>
|
|
|
|
|
|
|
|
|
|
PR tree-opt/25911
|
|
|
|
|
* tree-vect-patterns.c (vect_recog_dot_prod_pattern): Change assert
|
|
|
|
|
to an if check.
|
|
|
|
|
|
2006-01-29 17:00:56 +01:00
|
|
|
|
2006-01-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
|
|
|
|
|
|
|
|
|
* toplev.c: Fix thinko.
|
|
|
|
|
|
2006-01-29 16:37:20 +01:00
|
|
|
|
2006-01-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
|
|
|
|
Marcin Dalecki <martin@dalecki.de>
|
|
|
|
|
|
|
|
|
|
* toplev.c (floor_log2, exact_log2): Don't define if __cplusplus.
|
|
|
|
|
(push_srcloc): Use XNEW.
|
|
|
|
|
(init_asm_output, default_get_pch_validity): Use XNEWVEC.
|
|
|
|
|
|
2006-01-29 13:58:39 +01:00
|
|
|
|
2006-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
|
|
|
|
|
|
|
|
|
|
* df-core.c (df_set_blocks): Deleted all variable.
|
|
|
|
|
|
2006-01-29 05:38:56 +01:00
|
|
|
|
2006-01-28 Ian Lance Taylor <ian@airs.com>
|
|
|
|
|
|
|
|
|
|
* cgraphunit.c (cgraph_assemble_pending_functions): Call
|
|
|
|
|
cgraph_output_pending_asms.
|
|
|
|
|
|
2006-01-29 04:30:47 +01:00
|
|
|
|
2006-01-28 Zack Weinberg <zackw@panix.com>
|
|
|
|
|
|
|
|
|
|
* c.opt: Add -W(no-)overlength-strings.
|
|
|
|
|
* doc/invoke.texi: Document it.
|
|
|
|
|
* c-opts.c (c_common_handle_option): -pedantic implies
|
|
|
|
|
-Woverlength-strings, if not explicitly disabled already.
|
|
|
|
|
(c_common_post_options): -Woverlength-strings defaults to off, and
|
|
|
|
|
is always off for C++.
|
|
|
|
|
* c-common.c (fix_string_type): Issue warning about strings longer
|
|
|
|
|
than is portable only if warn_overlength_strings. Rearrange code
|
|
|
|
|
a little for clarity.
|
|
|
|
|
* configure.in: Check for -Wno-overlength-strings as well before
|
|
|
|
|
enabling -pedantic in stage 1.
|
|
|
|
|
* Makefile.in (STRICT2_WARN): Add -Wno-overlength-strings.
|
|
|
|
|
(gcc.o-warn, insn-automata.o-warn, build/gencondmd.o-warn): Delete.
|
|
|
|
|
|
|
|
|
|
* genconditions.c (write_header, write_one_condition)
|
|
|
|
|
(write_conditions, write_writer): Consolidate very long strings
|
|
|
|
|
that were broken up to fit in C89 portable limit. Don't use
|
|
|
|
|
printf when fputs will do.
|
|
|
|
|
|
2006-01-29 04:08:38 +01:00
|
|
|
|
2006-01-28 Adam Nemet <anemet@caviumnetworks.com>
|
|
|
|
|
|
|
|
|
|
* combine.c (simplify_comparison <AND>): Check
|
|
|
|
|
TRULY_NOOP_TRUNCATION before start using a subreg.
|
2006-01-29 04:30:47 +01:00
|
|
|
|
|
|
|
|
|
* config/mips/mips.md (*branch_zero<mode>,
|
|
|
|
|
*branch_zero<mode>_inverted, *branch_equality<mode>,
|
|
|
|
|
*branch_equality<mode>_inverted, *branch_equality<mode>_mips16):
|
|
|
|
|
Remove mode check from comparisons.
|
2006-01-29 04:08:38 +01:00
|
|
|
|
|
2006-01-29 02:16:47 +01:00
|
|
|
|
2006-01-28 Kenneth Zadeck <zadeck@naturalbridge.com>
|
|
|
|
|
|
|
|
|
|
* config/mips/mips-protos.h (mips_set_live_on_entry): Deleted.
|
|
|
|
|
|
2006-01-28 23:01:54 +01:00
|
|
|
|
2006-01-28 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* expmed.c (const_mult_add_overflow_p): Remove.
|
|
|
|
|
* expr.h: Remove the prototype for const_mult_add_overflow_p.
|
|
|
|
|
|
2006-01-28 23:03:00 +01:00
|
|
|
|
* recog.c (validate_replace_rtx_subexp): Remove.
|
|
|
|
|
* recog.h: Remove the prototype for
|
|
|
|
|
validate_replace_rtx_subexp.
|
|
|
|
|
|
2006-01-28 23:05:40 +01:00
|
|
|
|
* integrate.h: Remove the prototype for
|
|
|
|
|
copy_decl_for_inlining.
|
|
|
|
|
* rtl.h: Remove the prototype for mark_constant_function.
|
|
|
|
|
* tree-vectorizer.h: Remove the prototype for
|
|
|
|
|
vect_strip_conversion.
|
|
|
|
|
|
2006-01-28 23:10:40 +01:00
|
|
|
|
* modulo-sched.c (create_partial_schedule,
|
|
|
|
|
free_partial_schedule, reset_partial_schedule): Make them
|
|
|
|
|
static.
|
|
|
|
|
|
2006-01-29 00:26:38 +01:00
|
|
|
|
* hooks.c (hook_bool_rtx_int_false): Remove.
|
|
|
|
|
* hooks.h: Remove the prototype for hook_bool_rtx_int_false.
|
|
|
|
|
|
2006-01-28 20:49:43 +01:00
|
|
|
|
2006-01-28 David Edelsohn <edelsohn@gnu.org>
|
|
|
|
|
|
|
|
|
|
* config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
|
|
|
|
|
and -mlong-double-128 are incompatible.
|
|
|
|
|
* config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
|
|
|
|
|
* config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): Add ppc64-fp.c.
|
|
|
|
|
(TARGET_LIBGCC2_CFLAGS): Define.
|
|
|
|
|
* config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): Same.
|
|
|
|
|
(TARGET_LIBGCC2_CFLAGS): Same.
|
|
|
|
|
* config/rs6000/ppc64-fp.c: Compile for 64-bit AIX.
|
|
|
|
|
|
2006-01-28 06:19:44 +01:00
|
|
|
|
2006-01-28 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c/19606.
|
|
|
|
|
* c-typeck.c (build_binary_op): Perform implicit casts of
|
|
|
|
|
operands before shortening them.
|
|
|
|
|
|
2006-01-28 15:57:19 +01:00
|
|
|
|
* cfgloopmanip.c (split_loop_bb): Remove.
|
|
|
|
|
* cfgloop.h: Remove the prototype for split_loop_bb.
|
|
|
|
|
|
2006-01-28 15:58:26 +01:00
|
|
|
|
* cfgloop.c (flow_loop_outside_edge_p): Remove.
|
|
|
|
|
* cfgloop.h: Remove the prototype for
|
|
|
|
|
flow_loop_outside_edge_p.
|
|
|
|
|
|
2006-01-28 16:16:02 +01:00
|
|
|
|
* emit-rtl.c (init_virtual_regs): Make it static.
|
|
|
|
|
* function.h: Remove the prototype for init_virtual_regs.
|
|
|
|
|
|
2006-01-28 16:17:22 +01:00
|
|
|
|
* recog.c (peephole2_optimize): Make it static.
|
|
|
|
|
* recog.h: Remove the prototype for peephole2_optimize.
|
|
|
|
|
|
2006-01-28 04:12:35 +01:00
|
|
|
|
2006-01-27 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* df-scan.c (df_record_entry_block_defs): Check if
|
|
|
|
|
INCOMING_RETURN_ADDR_RTX is defined.
|
|
|
|
|
|
2006-01-27 23:23:32 +01:00
|
|
|
|
2006-01-27 Daniel Berlin <dberlin@dberlin.org>
|
|
|
|
|
Kenneth Zadeck <zadeck@naturalbridge.com>
|
|
|
|
|
|
2006-01-29 04:30:47 +01:00
|
|
|
|
PR rtl-optimization/24762
|
2006-01-27 23:23:32 +01:00
|
|
|
|
* doc/tm.texi: Added TARGET_EXTRA_LIVE_ON_ENTRY.
|
|
|
|
|
* targhooks.c (hook_void_bitmap): New hook prototype.
|
|
|
|
|
* targhoohs.h (hook_void_bitmap): Ditto.
|
|
|
|
|
* bitmap.h (bitmap_head_def): Moved to coretypes.h.
|
|
|
|
|
* coretypes.h (bitmap_head_def): Moved from bitmap.h.
|
|
|
|
|
* target.h (live_on_entry): New function pointer.
|
|
|
|
|
* df-scan.c (df_all_hard_regs): Removed.
|
|
|
|
|
(df_scan_dump, df_hard_reg_init): Removed df_all_hard_regs.
|
|
|
|
|
(df_scan_free_internal): Added df->entry_block_defs.
|
|
|
|
|
(df_scan_alloc): Ditto.
|
|
|
|
|
(df_scan_dump): Ditto.
|
|
|
|
|
(df_uses_record): Plumbed flag field properly thru calls.
|
|
|
|
|
Record EH_RETURN_DATA_REGNO in eh blocks unconditionally.
|
|
|
|
|
This part fixes PR24762.
|
|
|
|
|
(df_bb_refs_record): Added code to make the frame and arg
|
|
|
|
|
pointers live in EH blocks.
|
|
|
|
|
(df_refs_record): Added call to df_record_entry_block_defs.
|
|
|
|
|
(df_record_entry_block_defs): New function.
|
|
|
|
|
* df-core.c: Added comments to describe new artifical defs.
|
|
|
|
|
* df.h (DF_REF_DIES_AFTER_THIS_USE): New flag in enum df_ref_flags.
|
|
|
|
|
(entry_block_defs): New field in struct df.
|
|
|
|
|
(df_all_hard_regs): Deleted.
|
|
|
|
|
* target-def.h: Added TARGET_EXTRA_LIVE_ON_ENTRY.
|
|
|
|
|
* df-problems.c (df_ru_bb_local_compute_process_def):
|
|
|
|
|
Added code to handle artifical defs in the entry to a function.
|
|
|
|
|
(df_ru_bb_local_compute): Ditto.
|
|
|
|
|
(df_rd_bb_local_compute_process_def): Ditto.
|
|
|
|
|
(df_rd_bb_local_compute): Ditto.
|
|
|
|
|
(df_lr_bb_local_compute): Ditto.
|
|
|
|
|
(df_ur_bb_local_compute): Ditto.
|
|
|
|
|
(df_urec_bb_local_compute): Ditto.
|
|
|
|
|
(df_chain_create_bb): Ditto.
|
|
|
|
|
(df_ur_local_finalize): Removed entry.
|
|
|
|
|
(df_urec_init): Ditto.
|
|
|
|
|
(df_urec_local_finalize): Ditto.
|
|
|
|
|
(df_ri_bb_compute): Added detection of last use of pseudos.
|
|
|
|
|
* Makefile.in (df-scan.o): Updated dependencies.
|
|
|
|
|
* config/mips/mips-protos.h (mips_set_live_on_entry): Added.
|
|
|
|
|
* config/mips/mips.c (mips_set_live_on_entry): Added.
|
|
|
|
|
* config/mips/mips.c (TARGET_EXTRA_LIVE_ON_ENTRY): Added value
|
|
|
|
|
for target hook.
|
|
|
|
|
* dce.c (marked_insn_p): Added code to handle artifical defs.
|
|
|
|
|
|
2006-01-27 23:17:46 +01:00
|
|
|
|
2006-01-27 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* config/i386/emmintrin.h (_mm_cvtsd_f64): Add missing Intel
|
|
|
|
|
intrinsic.
|
|
|
|
|
(_mm_cvtsi128_si64): Likewise.
|
|
|
|
|
(_mm_cvtsd_si64): Likewise.
|
|
|
|
|
(_mm_cvttsd_si64): Likewise.
|
|
|
|
|
(_mm_cvtsi64_sd): Likewise.
|
|
|
|
|
(_mm_cvtsi64_si128): Likewise.
|
|
|
|
|
* config/i386/mmintrin.h (_m_from_int64): Likewise.
|
|
|
|
|
(_mm_cvtsi64_m64): Likewise.
|
|
|
|
|
(_m_to_int64): Likewise.
|
|
|
|
|
(_mm_cvtm64_si64): Likewise.
|
|
|
|
|
* config/i386/xmmintrin.h (_mm_cvtss_si64): Likewise.
|
|
|
|
|
(_mm_cvttss_si64): Likewise.
|
|
|
|
|
(_mm_cvtsi64_ss): Likewise.
|
|
|
|
|
(_mm_cvtss_f32): Likewise.
|
|
|
|
|
|
2006-01-27 23:12:10 +01:00
|
|
|
|
2006-01-27 Carlos O'Donell <carlos@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* c-pragma.c (init_pragma) : Call c_register_pragma_with_expansion
|
|
|
|
|
for pragma redefine_extname.
|
|
|
|
|
|
2006-01-27 20:59:49 +01:00
|
|
|
|
2006-01-27 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR target/25864
|
|
|
|
|
* libgcc-std.ver: Add GCC_4.1.0 symbol version.
|
|
|
|
|
* config/rs6000/t-linux64 (TARGET_LIBGCC2_CFLAGS): Only append
|
|
|
|
|
-mno-minimal-toc to previous content.
|
|
|
|
|
(bispecs): Remove goal.
|
|
|
|
|
* config/rs6000/ppc64-fp.c: Define TMODES before including fp-bit.h.
|
|
|
|
|
* config/rs6000/darwin-ldouble.c: Don't provide _xlq*@GCC_3.4
|
|
|
|
|
compatibility aliases on powerpc-*-*gnu*.
|
|
|
|
|
* config/rs6000/libgcc-ppc-glibc.ver: New file.
|
|
|
|
|
* config/rs6000/t-ppccomm (SHLIB_MAPFILES): Append
|
|
|
|
|
libgcc-ppc-glibc.ver on powerpc*-*-*gnu*.
|
|
|
|
|
(TARGET_LIBGCC2_CFLAGS): Append -specs=ldblspecs.
|
|
|
|
|
(ldblspecs): New goal.
|
|
|
|
|
* config/rs6000/t-linux64 (SHLIB_MAPFILES): Removed.
|
|
|
|
|
* mklibgcc.in: If $TPBIT is empty, don't compile _sf_to_tf and
|
|
|
|
|
_df_to_tf.
|
|
|
|
|
* config/fp-bit.h (TMODES): Don't define if none of TFLOAT,
|
|
|
|
|
L_sf_to_tf or L_df_to_tf is defined.
|
|
|
|
|
|
|
|
|
|
2006-01-27 David Edelsohn <edelsohn@gnu.org>
|
|
|
|
|
Alan Modra <amodra@bigpond.net.au>
|
|
|
|
|
|
|
|
|
|
PR target/25864
|
|
|
|
|
* config/rs6000/linux.h (POWERPC_LINUX): Define.
|
|
|
|
|
* config/rs6000/linux64.h (POWERPC_LINUX): Define.
|
|
|
|
|
* config/rs6000/darwin-ldouble.c: Build on 32-bit PowerPC.
|
|
|
|
|
* config/rs6000/darwin.h (TARGET_IEEEQUAD): Define to zero.
|
|
|
|
|
* config/rs6000/aix.h (TARGET_IEEEQUAD): Define to zero.
|
|
|
|
|
* config/rs6000/rs6000.c (rs6000_ieeequad): New variable.
|
|
|
|
|
(rs6000_override_options): Initialize rs6000_ieeequad.
|
|
|
|
|
Initialize TFmode format to ibm_extended_format if not
|
|
|
|
|
TARGET_IEEEQUAD.
|
|
|
|
|
(rs6000_handle_option): Accept -mabi= ibmlongdouble and
|
|
|
|
|
ieeelongdouble.
|
|
|
|
|
(rs6000_emit_move): Move !TARGET_IEEEQUAD as two parts.
|
|
|
|
|
(rs6000_return_in_memory): Only return IEEEQUAD in memory.
|
|
|
|
|
(function_arg_advance): IBM long double passed in two FPRs, not
|
|
|
|
|
split.
|
|
|
|
|
(function_arg): IBM long double passed in FPRs.
|
|
|
|
|
(rs6000_pass_by_reference): Only IEEEQUAD passed by reference.
|
|
|
|
|
(rs6000_gimplify_va_arg): IBM long double passed in two FPRs.
|
|
|
|
|
Only multireg GPR aligned.
|
|
|
|
|
(rs6000_init_libfuncs): Enable IBM long double functions if not
|
|
|
|
|
IEEEQUAD.
|
|
|
|
|
(rs6000_generate_compare): Use IBM long double compare if not
|
|
|
|
|
TARGET_IEEEQUAD.
|
|
|
|
|
* config/rs6000/rs6000.h (rs6000_ieeequad): Declare.
|
|
|
|
|
(TARGET_IEEEQUAD): Define.
|
|
|
|
|
(CANNOT_CHANGE_MODE_CLASS): Any mode larger than doubleword if
|
|
|
|
|
not TARGET_IEEEQUAD.
|
|
|
|
|
* config/rs6000/rs6000.md: Enable TFmode patterns if
|
|
|
|
|
!TARGET_IEEEQUAD.
|
|
|
|
|
* config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
|
|
|
|
|
* config/rs6000/svr4.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
|
|
|
|
|
and -mlong-double-128 are incompatible.
|
|
|
|
|
* doc/invoke.texi (-mabi): Collect options together. Add
|
|
|
|
|
ibmlongdouble and ieeelongdouble.
|
|
|
|
|
|
2006-01-27 17:17:39 +01:00
|
|
|
|
2006-01-27 Richard Sandiford <richard@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* doc/rtl.texi (SYMBOL_REF_DATA): Adjust documentation for new
|
|
|
|
|
opaque type.
|
|
|
|
|
* optabs.c (init_one_libfunc): Use SET_SYMBOL_REF_DECL.
|
|
|
|
|
* varasm.c (make_decl_rtl, build_constant_desc): Likewise.
|
|
|
|
|
(force_const_mem): Use SET_SYMBOL_REF_CONSTANT.
|
|
|
|
|
* rtl.h (rtunion_def): Remove rt_ptr.
|
|
|
|
|
(X0PTR): Delete.
|
|
|
|
|
(SYMBOL_REF_DATA): Use X0ANY instead of X0PTR.
|
|
|
|
|
(SET_SYMBOL_REF_DECL, SET_SYMBOL_REF_CONSTANT): New macros.
|
|
|
|
|
* config/i386/winnt.c (i386_pe_mark_dllexport)
|
|
|
|
|
(i386_pe_mark_dllimport): Use SET_SYMBOL_REF_DECL.
|
|
|
|
|
|
2006-01-27 11:59:40 +01:00
|
|
|
|
2006-01-27 Gabor Loki <loki@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* cfgcleanup.c (try_crossjump_to_edge): Fix comment typo.
|
|
|
|
|
|
re PR other/24829 (libobjc testsuite failures)
PR other/24829
PR target/24831
* gthr-dce.h: Do not gthrw-ify pthread_once_init,
pthread_key_delete. From John David Anglin. gthrw-ify
pthread_getunique_np only if it it's not a macro. Delete
UNUSED macro.
(__gthread_objc_condition_allocate, __gthread_objc_condition_deallocate,
__gthread_objc_condition_wait, __gthread_objc_condition_broadcast,
__gthread_objc_condition_signal, __gthread_key_delete): Add
"__attribute__ ((__unused__))" to unused arguments.
(__gthread_recursive_mutex_init_function): Add missing return.
* gthr-dce.h, gthr-tpf.h, gthr-solaris.h, gthr-posix.h,
gthr-posix95.h: Use macro-based approach for name redirection
on targets missing weakref.
From-SVN: r110278
2006-01-26 23:00:28 +01:00
|
|
|
|
2006-01-26 Alexandre Oliva <aoliva@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR other/24829
|
|
|
|
|
PR target/24831
|
|
|
|
|
* gthr-dce.h: Do not gthrw-ify pthread_once_init,
|
|
|
|
|
pthread_key_delete. From John David Anglin. gthrw-ify
|
|
|
|
|
pthread_getunique_np only if it it's not a macro. Delete
|
|
|
|
|
UNUSED macro.
|
|
|
|
|
(__gthread_objc_condition_allocate, __gthread_objc_condition_deallocate,
|
|
|
|
|
__gthread_objc_condition_wait, __gthread_objc_condition_broadcast,
|
|
|
|
|
__gthread_objc_condition_signal, __gthread_key_delete): Add
|
|
|
|
|
"__attribute__ ((__unused__))" to unused arguments.
|
|
|
|
|
(__gthread_recursive_mutex_init_function): Add missing return.
|
|
|
|
|
* gthr-dce.h, gthr-tpf.h, gthr-solaris.h, gthr-posix.h,
|
|
|
|
|
gthr-posix95.h: Use macro-based approach for name redirection
|
|
|
|
|
on targets missing weakref.
|
|
|
|
|
|
2006-01-26 22:21:42 +01:00
|
|
|
|
2006-01-26 Zack Weinberg <zackw@panix.com>
|
|
|
|
|
|
|
|
|
|
* genconditions.c (write_header): In generated code, #ifdef out
|
|
|
|
|
all includes and fake declarations, except includes of bconfig.h
|
|
|
|
|
and system.h, unless GCC_VERSION >= 3001. Do not include
|
|
|
|
|
gensupport.h in any case.
|
|
|
|
|
(write_conditions): Generate a definition of struct c_test. Add
|
|
|
|
|
a comment to the generated #endif.
|
|
|
|
|
(write_one_condition): Escape backslashes in string too.
|
|
|
|
|
(write_writer): Generated code must escape backslashes and quote
|
|
|
|
|
marks (but not newlines) in the strings it writes.
|
|
|
|
|
* Makefile.in (build/gencondmd.o): Update dependencies.
|
|
|
|
|
|
2006-01-26 22:14:16 +01:00
|
|
|
|
2006-01-26 Steve Ellcey <sje@cup.hp.com>
|
|
|
|
|
|
|
|
|
|
PR target/25961
|
|
|
|
|
* Makefile.in (insn-automata.o): Add header file dependencies.
|
|
|
|
|
* genautomata.c: Add includes.
|
|
|
|
|
|
2006-01-26 21:57:03 +01:00
|
|
|
|
2006-01-26 Steve Ellcey <sje@cup.hp.com>
|
|
|
|
|
|
|
|
|
|
PR target/25961
|
|
|
|
|
* Makefile.in (insn-automata.o): Add -Wno-error flag.
|
|
|
|
|
|
2006-01-26 19:52:49 +01:00
|
|
|
|
2006-01-26 Paolo Bonzini <bonzini@gnu.org>
|
|
|
|
|
|
|
|
|
|
* configure.ac: Expect target tools paths to be passed from the toplevel
|
|
|
|
|
and wrap the detection into AS_SET_VAR_IF. Extract side-effects out of
|
|
|
|
|
AS_SET_VAR_IF.
|
|
|
|
|
* acinclude.m4 (gcc_AC_TOOL_DIRS, gcc_AC_CHECK_TOOL): Remove.
|
|
|
|
|
|
2006-01-26 19:50:37 +01:00
|
|
|
|
2006-01-26 Alexandre Oliva <aoliva@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c/25892
|
|
|
|
|
* c.opt (Wpointer-sign): Init to -1.
|
|
|
|
|
* c-opts.c (c_common_handle_option): Set to 1 on OPT_Wall and
|
|
|
|
|
OPT_pedantic, to 0 otherwise.
|
|
|
|
|
* doc/invoke.texi: Update.
|
|
|
|
|
|
2006-01-26 19:45:29 +01:00
|
|
|
|
2006-01-26 Paolo Bonzini <bonzini@gnu.org>
|
|
|
|
|
|
|
|
|
|
* config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Emit
|
|
|
|
|
constants provided by 80387 instructions in the destination mode.
|
|
|
|
|
|
2006-01-26 18:48:20 +01:00
|
|
|
|
2006-01-26 Richard Guenther <rguenther@suse.de>
|
2006-01-26 22:21:42 +01:00
|
|
|
|
Andrew Pinski <pinskia@physics.uc.edu>
|
2006-01-26 18:48:20 +01:00
|
|
|
|
|
2006-01-26 18:51:25 +01:00
|
|
|
|
PR tree-opt/21470
|
|
|
|
|
partial PR tree-opt/17064
|
2006-01-26 18:48:20 +01:00
|
|
|
|
* tree-ssa-structalias.c (intra_create_variable_infos):
|
|
|
|
|
Create heap variables for incoming parameters if
|
|
|
|
|
flag_argument_noalias > 1.
|
|
|
|
|
(find_what_p_points_to): Look through default defs of
|
|
|
|
|
parameter decls.
|
|
|
|
|
|
2006-01-26 18:14:22 +01:00
|
|
|
|
2006-01-26 Jeff Law <law@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR ada/25900
|
|
|
|
|
* tree-vrp.c (extract_range_from_assert): When merging a VR_RANGE
|
2006-02-05 23:59:35 +01:00
|
|
|
|
with a VR_ANTI_RANGE and the VR_ANTI_RANGE is completely contained
|
2006-01-26 18:14:22 +01:00
|
|
|
|
within the VR_RANGE, use the VR_RANGE as the result, not the
|
|
|
|
|
VR_ANTI_RANGE.
|
2006-02-05 23:59:35 +01:00
|
|
|
|
(adjust_range_with_scev): Reject ranges from SCEV which are out of
|
|
|
|
|
bounds for the type.
|
2006-01-26 18:14:22 +01:00
|
|
|
|
|
2006-01-26 19:45:29 +01:00
|
|
|
|
2006-01-26 Daniel Berlin <dberlin@dberlin.org>
|
2006-01-26 16:24:51 +01:00
|
|
|
|
|
|
|
|
|
* tree-ssa-alias.c (maybe_create_global_var): Change
|
|
|
|
|
subvar walking to an assertion that we don't have subvar'd variables.
|
|
|
|
|
|
2006-01-26 15:59:26 +01:00
|
|
|
|
2006-01-26 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
|
|
PR C/25861
|
|
|
|
|
* c-common.c (c_common_truthvalue_conversion) <case ADDR_EXPR>:
|
|
|
|
|
Use a new variable, inner. PARM_DECLs are always non-weak.
|
|
|
|
|
|
2006-01-26 13:54:05 +01:00
|
|
|
|
2006-01-26 Shantonu Sen <ssen@opendarwin.org>
|
|
|
|
|
|
|
|
|
|
* tree.h (OMP_CLAUSE_SUBCODE_CHECK): Add definition for
|
|
|
|
|
--disable-checking.
|
|
|
|
|
|
2006-01-26 11:16:13 +01:00
|
|
|
|
2006-01-26 Adam Nemet <anemet@caviumnetworks.com>
|
|
|
|
|
|
|
|
|
|
* config/mips/mips.md (*clear_upper32): New combiner pattern.
|
|
|
|
|
|
2006-01-26 08:57:44 +01:00
|
|
|
|
2006-01-26 Richard Earnshaw <richard.earnshaw@arm.com>
|
|
|
|
|
|
|
|
|
|
* arm.md (smaxsi3, sminsi3): Convert to define_expand.
|
|
|
|
|
(smax_insn, smin_insn, smax_0, smin_0): New.
|
|
|
|
|
|
re PR target/25947 (Unrecognizable insn ICE for readline-5.1 in rl_vi_complete)
PR target/25947
* config/cris/cris.c (cris_order_for_addsi3): New function.
* config/cris/cris-protos.h: Prototype it.
* config/cris/cris.md (split for "move.S1 [rx=rx+i],ry")
(split for "move.S1 ry,[rx=rx+i]", split for "clear.[bwd] [rx=rx+i]")
(split for "mov(s|u).S1 [rx=rx+i],ry", split for "op.S1 [rx=rx+i],ry")
(split for "op.S1 [rx=rx+i],ry (swapped)")
(split for "op(s|u).S1 [rx=rx+i],ry")
(split for "op(s|u).S1 [rx=rx+i],ry (swapped, plus or bound)"):
Apply cris_order_for_addsi3 when generating addsi3 insns.
From-SVN: r110245
2006-01-26 03:56:00 +01:00
|
|
|
|
2006-01-26 Hans-Peter Nilsson <hp@axis.com>
|
|
|
|
|
|
|
|
|
|
PR target/25947
|
|
|
|
|
* config/cris/cris.c (cris_order_for_addsi3): New function.
|
|
|
|
|
* config/cris/cris-protos.h: Prototype it.
|
|
|
|
|
* config/cris/cris.md (split for "move.S1 [rx=rx+i],ry")
|
|
|
|
|
(split for "move.S1 ry,[rx=rx+i]", split for "clear.[bwd] [rx=rx+i]")
|
|
|
|
|
(split for "mov(s|u).S1 [rx=rx+i],ry", split for "op.S1 [rx=rx+i],ry")
|
|
|
|
|
(split for "op.S1 [rx=rx+i],ry (swapped)")
|
|
|
|
|
(split for "op(s|u).S1 [rx=rx+i],ry")
|
|
|
|
|
(split for "op(s|u).S1 [rx=rx+i],ry (swapped, plus or bound)"):
|
|
|
|
|
Apply cris_order_for_addsi3 when generating addsi3 insns.
|
|
|
|
|
|
re PR middle-end/25886 (up to 256 tree codes for Objective-C++)
* tree.h (TREE_RANGE_CHECK): Fix range predicate.
(TREE_BLOCK): Add call to EXPR_CHECK.
PR 25886
* tree-dump.c (dequeue_and_dump): Handle OMP_CLAUSE.
* tree-pretty-print.c (dump_omp_clause): Extract from ...
(dump_omp_clauses): ... here.
(dump_generic_node): Handle OMP_CLAUSE.
* tree.c (omp_clause_num_ops): New.
(omp_clause_code_name): New.
(tree_code_size): Handle OMP_CLAUSE.
(tree_size): Likewise.
(make_node): Document handling of OMP_CLAUSE.
(tree_node_structure): Handle OMP_CLAUSE.
(omp_clause_check_failed): New.
(omp_clause_range_check_failed): New.
(omp_clause_operand_check_failed): New.
(build_omp_clause): New.
(walk_tree): Adjust handling of OMP_CLAUSE_* nodes.
* tree.h (enum omp_clause_code): Declare.
(OMP_CLAUSE_SUBCODE): Define.
(OMP_CLAUSE_RANGE_CHECK): Define.
(OMP_CLAUSE_ELT_CHECK): Define.
(omp_clause_check_failed): Declare.
(omp_clause_operand_check_failed): Declare.
(omp_clause_range_check_failed): Declare.
(OMP_CLAUSE_CHAIN): Do not use TREE_RANGE_CHECK.
(OMP_CLAUSE_OPERAND): Use OMP_CLAUSE_RANGE_CHECK.
(OMP_CLAUSE_PRIVATE_DEBUG): Use OMP_CLAUSE_SUBCODE_CHECK.
(OMP_CLAUSE_LASTPRIVATE): Likewise.
(OMP_CLAUSE_IF_EXPR): Likewise.
(OMP_CLAUSE_NUM_THREADS_EXPR): Likewise.
(OMP_CLAUSE_SCHEDULE_CHUNK_EXPR): Likewise.
(OMP_CLAUSE_REDUCTION_CODE): Likewise.
(OMP_CLAUSE_REDUCTION_INIT): Likewise.
(OMP_CLAUSE_REDUCTION_MERGE): Likewise.
(OMP_CLAUSE_REDUCTION_PLACEHOLDER): Likewise.
Use tree_node.omp_clause.subcode instead of TREE_COMPLEXITY.
(OMP_CLAUSE_SCHEDULE_KIND): Likewise.
(OMP_CLAUSE_DEFAULT_KIND): Likewise.
(OMP_CLAUSE_CODE): Define.
(OMP_CLAUSE_SET_CODE): Define.
(OMP_CLAUSE_CODE): Define.
(OMP_CLAUSE_OPERAND): Define.
(struct tree_omp_clause): Declare.
(union tree_node): Add field 'omp_clause'.
* treestruct.def (TS_OMP_CLAUSE): Define.
* tree.def (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_SHARED
OMP_CLAUSE_FIRSTPRIVATE, OMP_CLAUSE_LASTPRIVATE,
OMP_CLAUSE_REDUCTION, OMP_CLAUSE_COPYIN,
OMP_CLAUSE_COPYPRIVATE, OMP_CLAUSE_IF,
OMP_CLAUSE_NUM_THREADS, OMP_CLAUSE_SCHEDULE,
OMP_CLAUSE_NOWAIT, OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Remove.
(OMP_CLAUSE): Define.
* print-tree.c (print_node): Handle OMP_CLAUSE.
* omp-low.c: Adapt all uses of OMP_CLAUSE_* nodes.
* c-typeck.c: Likewise.
* gimplify.c: Likewise.
* c-omp.c: Likewise.
* tree-nested.c: Likewise.
* tree-inline.c: Likewise.
* c-parser.c: Likewise.
* gimple-low.c (lower_omp_directive): Do not set TREE_BLOCK on
clauses.
From-SVN: r110243
2006-01-26 03:53:01 +01:00
|
|
|
|
2006-01-25 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
* tree.h (TREE_RANGE_CHECK): Fix range predicate.
|
|
|
|
|
(TREE_BLOCK): Add call to EXPR_CHECK.
|
|
|
|
|
|
|
|
|
|
2006-01-25 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR 25886
|
|
|
|
|
* tree-dump.c (dequeue_and_dump): Handle OMP_CLAUSE.
|
|
|
|
|
* tree-pretty-print.c (dump_omp_clause): Extract from ...
|
|
|
|
|
(dump_omp_clauses): ... here.
|
|
|
|
|
(dump_generic_node): Handle OMP_CLAUSE.
|
|
|
|
|
* tree.c (omp_clause_num_ops): New.
|
|
|
|
|
(omp_clause_code_name): New.
|
|
|
|
|
(tree_code_size): Handle OMP_CLAUSE.
|
|
|
|
|
(tree_size): Likewise.
|
|
|
|
|
(make_node): Document handling of OMP_CLAUSE.
|
|
|
|
|
(tree_node_structure): Handle OMP_CLAUSE.
|
|
|
|
|
(omp_clause_check_failed): New.
|
|
|
|
|
(omp_clause_range_check_failed): New.
|
|
|
|
|
(omp_clause_operand_check_failed): New.
|
|
|
|
|
(build_omp_clause): New.
|
|
|
|
|
(walk_tree): Adjust handling of OMP_CLAUSE_* nodes.
|
|
|
|
|
* tree.h (enum omp_clause_code): Declare.
|
2006-01-26 13:54:05 +01:00
|
|
|
|
(OMP_CLAUSE_SUBCODE_CHECK): Define.
|
re PR middle-end/25886 (up to 256 tree codes for Objective-C++)
* tree.h (TREE_RANGE_CHECK): Fix range predicate.
(TREE_BLOCK): Add call to EXPR_CHECK.
PR 25886
* tree-dump.c (dequeue_and_dump): Handle OMP_CLAUSE.
* tree-pretty-print.c (dump_omp_clause): Extract from ...
(dump_omp_clauses): ... here.
(dump_generic_node): Handle OMP_CLAUSE.
* tree.c (omp_clause_num_ops): New.
(omp_clause_code_name): New.
(tree_code_size): Handle OMP_CLAUSE.
(tree_size): Likewise.
(make_node): Document handling of OMP_CLAUSE.
(tree_node_structure): Handle OMP_CLAUSE.
(omp_clause_check_failed): New.
(omp_clause_range_check_failed): New.
(omp_clause_operand_check_failed): New.
(build_omp_clause): New.
(walk_tree): Adjust handling of OMP_CLAUSE_* nodes.
* tree.h (enum omp_clause_code): Declare.
(OMP_CLAUSE_SUBCODE): Define.
(OMP_CLAUSE_RANGE_CHECK): Define.
(OMP_CLAUSE_ELT_CHECK): Define.
(omp_clause_check_failed): Declare.
(omp_clause_operand_check_failed): Declare.
(omp_clause_range_check_failed): Declare.
(OMP_CLAUSE_CHAIN): Do not use TREE_RANGE_CHECK.
(OMP_CLAUSE_OPERAND): Use OMP_CLAUSE_RANGE_CHECK.
(OMP_CLAUSE_PRIVATE_DEBUG): Use OMP_CLAUSE_SUBCODE_CHECK.
(OMP_CLAUSE_LASTPRIVATE): Likewise.
(OMP_CLAUSE_IF_EXPR): Likewise.
(OMP_CLAUSE_NUM_THREADS_EXPR): Likewise.
(OMP_CLAUSE_SCHEDULE_CHUNK_EXPR): Likewise.
(OMP_CLAUSE_REDUCTION_CODE): Likewise.
(OMP_CLAUSE_REDUCTION_INIT): Likewise.
(OMP_CLAUSE_REDUCTION_MERGE): Likewise.
(OMP_CLAUSE_REDUCTION_PLACEHOLDER): Likewise.
Use tree_node.omp_clause.subcode instead of TREE_COMPLEXITY.
(OMP_CLAUSE_SCHEDULE_KIND): Likewise.
(OMP_CLAUSE_DEFAULT_KIND): Likewise.
(OMP_CLAUSE_CODE): Define.
(OMP_CLAUSE_SET_CODE): Define.
(OMP_CLAUSE_CODE): Define.
(OMP_CLAUSE_OPERAND): Define.
(struct tree_omp_clause): Declare.
(union tree_node): Add field 'omp_clause'.
* treestruct.def (TS_OMP_CLAUSE): Define.
* tree.def (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_SHARED
OMP_CLAUSE_FIRSTPRIVATE, OMP_CLAUSE_LASTPRIVATE,
OMP_CLAUSE_REDUCTION, OMP_CLAUSE_COPYIN,
OMP_CLAUSE_COPYPRIVATE, OMP_CLAUSE_IF,
OMP_CLAUSE_NUM_THREADS, OMP_CLAUSE_SCHEDULE,
OMP_CLAUSE_NOWAIT, OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Remove.
(OMP_CLAUSE): Define.
* print-tree.c (print_node): Handle OMP_CLAUSE.
* omp-low.c: Adapt all uses of OMP_CLAUSE_* nodes.
* c-typeck.c: Likewise.
* gimplify.c: Likewise.
* c-omp.c: Likewise.
* tree-nested.c: Likewise.
* tree-inline.c: Likewise.
* c-parser.c: Likewise.
* gimple-low.c (lower_omp_directive): Do not set TREE_BLOCK on
clauses.
From-SVN: r110243
2006-01-26 03:53:01 +01:00
|
|
|
|
(OMP_CLAUSE_RANGE_CHECK): Define.
|
|
|
|
|
(OMP_CLAUSE_ELT_CHECK): Define.
|
|
|
|
|
(omp_clause_check_failed): Declare.
|
|
|
|
|
(omp_clause_operand_check_failed): Declare.
|
|
|
|
|
(omp_clause_range_check_failed): Declare.
|
|
|
|
|
(OMP_CLAUSE_CHAIN): Do not use TREE_RANGE_CHECK.
|
|
|
|
|
(OMP_CLAUSE_OPERAND): Use OMP_CLAUSE_RANGE_CHECK.
|
|
|
|
|
(OMP_CLAUSE_PRIVATE_DEBUG): Use OMP_CLAUSE_SUBCODE_CHECK.
|
|
|
|
|
(OMP_CLAUSE_LASTPRIVATE): Likewise.
|
|
|
|
|
(OMP_CLAUSE_IF_EXPR): Likewise.
|
|
|
|
|
(OMP_CLAUSE_NUM_THREADS_EXPR): Likewise.
|
|
|
|
|
(OMP_CLAUSE_SCHEDULE_CHUNK_EXPR): Likewise.
|
|
|
|
|
(OMP_CLAUSE_REDUCTION_CODE): Likewise.
|
|
|
|
|
(OMP_CLAUSE_REDUCTION_INIT): Likewise.
|
|
|
|
|
(OMP_CLAUSE_REDUCTION_MERGE): Likewise.
|
|
|
|
|
(OMP_CLAUSE_REDUCTION_PLACEHOLDER): Likewise.
|
|
|
|
|
Use tree_node.omp_clause.subcode instead of TREE_COMPLEXITY.
|
|
|
|
|
(OMP_CLAUSE_SCHEDULE_KIND): Likewise.
|
|
|
|
|
(OMP_CLAUSE_DEFAULT_KIND): Likewise.
|
|
|
|
|
(OMP_CLAUSE_CODE): Define.
|
|
|
|
|
(OMP_CLAUSE_SET_CODE): Define.
|
|
|
|
|
(OMP_CLAUSE_CODE): Define.
|
|
|
|
|
(OMP_CLAUSE_OPERAND): Define.
|
|
|
|
|
(struct tree_omp_clause): Declare.
|
|
|
|
|
(union tree_node): Add field 'omp_clause'.
|
|
|
|
|
* treestruct.def (TS_OMP_CLAUSE): Define.
|
|
|
|
|
* tree.def (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_SHARED
|
|
|
|
|
OMP_CLAUSE_FIRSTPRIVATE, OMP_CLAUSE_LASTPRIVATE,
|
|
|
|
|
OMP_CLAUSE_REDUCTION, OMP_CLAUSE_COPYIN,
|
|
|
|
|
OMP_CLAUSE_COPYPRIVATE, OMP_CLAUSE_IF,
|
|
|
|
|
OMP_CLAUSE_NUM_THREADS, OMP_CLAUSE_SCHEDULE,
|
|
|
|
|
OMP_CLAUSE_NOWAIT, OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Remove.
|
|
|
|
|
(OMP_CLAUSE): Define.
|
|
|
|
|
* print-tree.c (print_node): Handle OMP_CLAUSE.
|
|
|
|
|
* omp-low.c: Adapt all uses of OMP_CLAUSE_* nodes.
|
|
|
|
|
* c-typeck.c: Likewise.
|
|
|
|
|
* gimplify.c: Likewise.
|
|
|
|
|
* c-omp.c: Likewise.
|
|
|
|
|
* tree-nested.c: Likewise.
|
|
|
|
|
* tree-inline.c: Likewise.
|
|
|
|
|
* c-parser.c: Likewise.
|
|
|
|
|
* gimple-low.c (lower_omp_directive): Do not set TREE_BLOCK on
|
|
|
|
|
clauses.
|
|
|
|
|
|
2006-01-26 03:48:01 +01:00
|
|
|
|
2006-01-25 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/25703
|
|
|
|
|
* combine.c (try_combine): Handle zero_extract and strict_low_part
|
|
|
|
|
of non-lowpart SUBREGs for constant reg_subword_p set optimization.
|
|
|
|
|
|
2006-01-25 23:15:45 +01:00
|
|
|
|
2006-01-25 Peter Bergner <bergner@vnet.ibm.com>
|
|
|
|
|
|
|
|
|
|
* global.c: Fix comment typos.
|
|
|
|
|
|
2006-01-25 19:33:14 +01:00
|
|
|
|
2006-01-25 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
|
|
PR target/25758
|
|
|
|
|
* config/i386/i386.c (output_pic_addr_const) <case SYMBOL_REF>:
|
|
|
|
|
Use output_addr_const instead of assemble_name.
|
|
|
|
|
|
2006-01-25 18:39:37 +01:00
|
|
|
|
2006-01-25 Paolo Bonzini <bonzini@gnu.org>
|
|
|
|
|
|
|
|
|
|
* Makefile.in (sched-vis.o): Update dependencies.
|
|
|
|
|
* haifa-sched.c (sched_finish): Clear current_sched_info.
|
|
|
|
|
* cfg.c (dump_bb_info): New, split from dump_flow_info.
|
|
|
|
|
(dump_flow_info): Call it.
|
|
|
|
|
* passes.c (execute_todo): Call print_rtl_slim_with_bb to make
|
|
|
|
|
a slim RTL dump.
|
|
|
|
|
* basic-block.h (dump_bb_info): Declare.
|
|
|
|
|
* tree-dump.c (dump_enable_all): OR the flags of a -fdump-tree-all
|
|
|
|
|
option, and apply options only for dump files whose TDF_RTL,
|
|
|
|
|
TDF_TREE, or TDF_IPA bits match.
|
|
|
|
|
* rtl.h: Declare new functions exported from sched-vis.c.
|
|
|
|
|
* sched-vis.c: Enable also if scheduling is not used.
|
|
|
|
|
(print_value): Print the mode of registers if not inside scheduling.
|
|
|
|
|
(print_insn): Make it work outside the scheduler. Beautify the output
|
|
|
|
|
a bit.
|
|
|
|
|
(dump_insn_slim, debug_insn_slim, print_rtl_slim_with_bb): New.
|
|
|
|
|
|
2006-01-25 10:10:23 +01:00
|
|
|
|
2006-01-25 Richard Sandiford <richard@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* doc/rtl.texi (SYMBOL_REF_CONSTANT, SYMBOL_REF_DATA): Document.
|
|
|
|
|
* gengtype.c (adjust_field_rtx_def): Garbage-collect field 2 of
|
|
|
|
|
a SYMBOL_REF as either a tree or a constant_descriptor_rtx,
|
|
|
|
|
depending on the value of CONSTANT_POOL_ADDRESS_P.
|
|
|
|
|
* optabs.c (init_one_libfunc): Nullify SYMBOL_REF_DATA rather than
|
|
|
|
|
SYMBOL_REF_DECL.
|
|
|
|
|
* varasm.c (make_decl_rtl, build_constant_desc): Set SYMBOL_REF_DATA
|
|
|
|
|
rather than SYMBOL_REF_DECL.
|
|
|
|
|
(rtx_constant_pool): Remove const_rtx_sym_htab.
|
|
|
|
|
(const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): Delete.
|
|
|
|
|
(init_varasm_status): Don't initialize const_rtx_sym_htab.
|
|
|
|
|
(force_const_mem): Point SYMBOL_REF_DATA to the constant pool entry.
|
|
|
|
|
Remove handling of const_rtx_sym_htab.
|
|
|
|
|
(find_pool_constant): Delete.
|
|
|
|
|
(get_pool_constant, get_pool_constant_mark): Use SYMBOL_REF_CONSTANT
|
|
|
|
|
rather than find_pool_constant.
|
|
|
|
|
(get_pool_constant_for_function): Delete.
|
|
|
|
|
(get_pool_mode, mark_constant): Use SYMBOL_REF_CONSTANT rather than
|
2006-01-26 22:21:42 +01:00
|
|
|
|
find_pool_constant.
|
2006-01-25 10:10:23 +01:00
|
|
|
|
* rtl.h (rtunion_def): Add rt_constant and rt_ptr fields.
|
|
|
|
|
(X0CONSTANT, X0PTR, SYMBOL_REF_DATA): New macros.
|
|
|
|
|
(SYMBOL_REF_DECL): Return NULL if CONSTANT_POOL_ADDRESS_P.
|
|
|
|
|
(SYMBOL_REF_CONSTANT): New macro.
|
|
|
|
|
(get_pool_constant_for_function): Delete.
|
|
|
|
|
* config/i386/winnt.c (i386_pe_mark_dllexport): Set SYMBOL_REF_DATA
|
|
|
|
|
rather than SYMBOL_REF_DECL.
|
|
|
|
|
(i386_pe_mark_dllimport): Likewise.
|
|
|
|
|
* config/rs6000/rs6000.c (rs6000_emit_move): Copy SYMBOL_REF_DATA
|
|
|
|
|
rather than SYMBOL_REF_DECL.
|
|
|
|
|
* config/darwin.c (machopic_indirect_data_reference): Likewise.
|
|
|
|
|
(machopic_indirect_call_target): Likewise.
|
|
|
|
|
|
2006-01-25 08:58:35 +01:00
|
|
|
|
2006-01-25 Eric Botcazou <ebotcazou@adacore.com>
|
|
|
|
|
|
|
|
|
|
* flow.c (delete_noop_moves): Add missing EOL to dump message.
|
|
|
|
|
|
2006-01-25 08:35:17 +01:00
|
|
|
|
2006-01-25 Richard Sandiford <richard@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* genattrtab.c (gen_bypass): Allow bypasses to contain whitespace.
|
|
|
|
|
|
2006-01-25 04:00:56 +01:00
|
|
|
|
2006-01-25 Kaz Kojima <kkojima@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* config/sh/predicates.md (sh_register_operand): Accept CONST_DOUBLE.
|
|
|
|
|
|
2006-01-25 01:42:17 +01:00
|
|
|
|
2006-01-24 David Daney <ddaney@avtrex.com>
|
|
|
|
|
|
|
|
|
|
PR java/25816
|
|
|
|
|
* configure.ac (enable_tls): New enable option.
|
|
|
|
|
(HAVE_AS_TLS): Don't do assembler check if enable_tls set.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* doc/install.texi (--enable-tls): Document new option.
|
|
|
|
|
(--disable-tls): Ditto.
|
|
|
|
|
|
2006-01-25 00:48:17 +01:00
|
|
|
|
2006-01-24 Richard Henderson <rth@redehat.com>
|
|
|
|
|
|
|
|
|
|
* alias.h (ALIAS_SET_MEMORY_BARRIER): New.
|
|
|
|
|
* alias.c (true_dependence): Respect it.
|
|
|
|
|
(canon_true_dependence, write_dependence_p): Likewise.
|
|
|
|
|
* builtins.c (get_builtin_sync_mem): Set it.
|
|
|
|
|
|
2006-01-25 00:37:25 +01:00
|
|
|
|
2006-01-25 Zdenek Dvorak <dvorakz@suse.cz>
|
|
|
|
|
|
|
|
|
|
* loop-iv.c (iv_analysis_loop_init): Use df analysis in a more
|
|
|
|
|
efficient way.
|
|
|
|
|
|
2006-01-25 00:10:54 +01:00
|
|
|
|
2006-01-24 DJ Delorie <dj@redhat.com>
|
|
|
|
|
|
|
|
|
|
* expmed.c (store_bit_field): Don't arbitrarily deny using insv
|
|
|
|
|
for storing constants in single-bit bitfields.
|
|
|
|
|
|
2006-01-24 23:56:55 +01:00
|
|
|
|
2006-01-25 Ben Elliston <bje@au.ibm.com>
|
|
|
|
|
|
|
|
|
|
* dfp.c (dfp_byte_swap): Use uint32_t and not unsigned long.
|
|
|
|
|
|
2006-01-24 17:27:44 +01:00
|
|
|
|
2006-01-24 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
|
|
PR tree-opt/25860
|
|
|
|
|
* tree-ssa-pre.c (phi_translate): Return NULL
|
|
|
|
|
for AGGREGATE_TYPE's.
|
|
|
|
|
|
2006-01-24 16:19:40 +01:00
|
|
|
|
2006-01-24 Zack Weinberg <zackw@panix.com>
|
|
|
|
|
|
|
|
|
|
* genautomata.c (process_state_for_insn_equiv_partition):
|
|
|
|
|
Use xcalloc for insn_arcs_array.
|
|
|
|
|
* vec.h (DEF_VEC_ALLOC_FUNC_I): New set of templates.
|
|
|
|
|
(DEF_VEC_ALLOC_I): Use it, not DEF_VEC_ALLOC_FUNC_P.
|
|
|
|
|
|
2006-01-24 16:17:22 +01:00
|
|
|
|
2006-01-24 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* genextract.c (VEC_safe_set_locstr): Take VEC by reference;
|
|
|
|
|
update all callers.
|
|
|
|
|
|
2006-01-24 15:29:25 +01:00
|
|
|
|
2006-01-23 Paolo Bonzini <bonzini@gnu.org>
|
|
|
|
|
|
2006-01-26 22:21:42 +01:00
|
|
|
|
PR rtl-optimization/25890
|
|
|
|
|
PR rtl-optimization/25905
|
|
|
|
|
* combine.c (expand_compound_operation, expand_field_assignment):
|
|
|
|
|
Fail if the bitfield's final position is out of bounds.
|
2006-01-24 15:29:25 +01:00
|
|
|
|
|
2006-01-24 09:52:44 +01:00
|
|
|
|
2006-01-24 Ian Lance Taylor <ian@airs.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/25930
|
|
|
|
|
* cgraphunit.c (cgraph_output_in_order): Don't clear
|
|
|
|
|
cgraph_asm_nodes until after asm strings have been output.
|
|
|
|
|
|
2006-01-24 01:02:18 +01:00
|
|
|
|
2006-01-23 Adam Nemet <anemet@caviumnetworks.com>
|
|
|
|
|
|
2006-01-26 22:21:42 +01:00
|
|
|
|
* fix-header.c (read_scan_file): Add new parameter imultilib when
|
2006-01-24 01:02:18 +01:00
|
|
|
|
calling register_include_chains.
|
|
|
|
|
|
2006-01-23 21:03:24 +01:00
|
|
|
|
2006-01-23 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
* omp-low.c: Update documentation.
|
|
|
|
|
|
2006-01-23 16:19:29 +01:00
|
|
|
|
2006-01-23 Andrew Pinski <pinskia@physics.uc.edu>
|
2006-01-23 21:03:24 +01:00
|
|
|
|
Daniel Berlin <dberlin@dberlin.org>
|
2006-01-23 16:19:29 +01:00
|
|
|
|
|
|
|
|
|
PR tree-opt/25315
|
|
|
|
|
PR tree-opt/25857
|
2006-01-26 22:21:42 +01:00
|
|
|
|
* tree-ssa-pre.c (insert_extra_phis): If an incomming edge is abnormal
|
2006-01-23 16:19:29 +01:00
|
|
|
|
return from the function.
|
|
|
|
|
|
2006-01-23 16:16:19 +01:00
|
|
|
|
2006-01-22 Zack Weinberg <zackw@panix.com>
|
|
|
|
|
|
|
|
|
|
* rtl.def (match_code): Add second argument.
|
|
|
|
|
* genpreds.c (write_extract_subexp): New function.
|
|
|
|
|
(write_match_code): Add path argument. Use write_extract_subexp.
|
|
|
|
|
(write_predicate_expr): Pass path to write_match_code.
|
|
|
|
|
(mark_mode_tests): MATCH_CODE applied to a subexpression does
|
|
|
|
|
not perform a mode test.
|
|
|
|
|
* genrecog.c (compute_predicate_codes): MATCH_CODE applied to
|
|
|
|
|
a subexpression does not constrain the top-level code set.
|
|
|
|
|
* read-rtl.c (read_rtx_variadic): New function.
|
|
|
|
|
(read_rtx_1): Use it; allow AND and IOR to be variadic.
|
|
|
|
|
* doc/md.texi: Document new notation.
|
|
|
|
|
* config/i386/predicates.md (cmpsi_operand_1): Fold into ...
|
|
|
|
|
(cmpsi_operand): ... here, using new notation.
|
|
|
|
|
|
2006-01-23 16:16:10 +01:00
|
|
|
|
2006-01-22 Zack Weinberg <zackw@panix.com>
|
|
|
|
|
|
|
|
|
|
* varray.c: Remove GENERATOR_FILE #ifdefs.
|
|
|
|
|
|
2006-01-23 16:16:00 +01:00
|
|
|
|
2006-01-22 Zack Weinberg <zackw@panix.com>
|
|
|
|
|
|
|
|
|
|
* genautomata.c (output_reserved_units_table): Emit nothing if
|
|
|
|
|
description->query_units_num is zero. Remove extra blank line.
|
|
|
|
|
(output_cpu_unit_reservation_p): Short circuit
|
|
|
|
|
if description->query_units_num is zero.
|
|
|
|
|
|
r110127@banpei: zack | 2006-01-22 14:49:27 -0800
r110127@banpei: zack | 2006-01-22 14:49:27 -0800
* genattrtab.c: Don't include genattrtab.h. Define ATTR_NONE
and ATTR_SPECIAL (from genattrtab.h). Don't define num_dfa_decls
nor any of the random handful of variables that used to be necessary
when this program was linked with rtlanal.o. Prune set of forward
function declarations.
(struct attr_desc): Remove static_p field.
(hash_obstack, temp_obstack, attr_hash_table, attr_printf)
(check_attr_test, make_internal_attr, make_numeric_value): Make static.
(attr_string): Do not read the character one past the length of
the string.
(write_attr_get, find_attr, make_internal_attr): Don't touch static_p.
(struct insn_reserv, all_insn_reservs, last_insn_reserv_p)
(n_insn_reservs, gen_insn_reserv, struct bypass_list, all_bypasses)
(n_bypasses, gen_bypass_1, gen_bypass, process_bypasses)
(make_automaton_attrs): New.
(main): Do not call into genautomata. Call local gen_bypass
and gen_insn_reserv as appropriate. Call make_automaton_attrs.
Remove special case for insn_alts.
* genautomata.c: Include gensupport.h; not genattrtab.h nor
varray.h (leftover from previous change). Prune set of forward
function declarations. Remove state_alts fields from all
structures. Remove state_alts_table from struct automaton.
Make everything except main static. Do not maintain num_dfa_decls.
Do not maintain state_alts fields of various structures.
(process_decls): Don't validate condexp for dm_insn_reserv decls.
(add_arc): Remove state_alts argument. All callers updated.
(output_reserved_units_table): Emit #ifdef here...
(output_tables): ...not here. Don't generate state_alts tables.
(expand_automata): Don't generate attributes.
(write_automata): Don't generate state_alts functions.
(main): New function.
(it_is_empty_reserv_sets, output_state_alts_full_vect_name)
(output_state_alts_comb_vect_name, output_state_alts_check_vect_name)
(AUTOMATON_STATE_ALTS_MACRO_NAME, INTERNAL_STATE_ALTS_FUNC_NAME)
(STATE_ALTS_FUNC_NAME, INSN_DEFAULT_LATENCY_FUNC_NAME)
(BYPASS_P_FUNC_NAME, output_state_alts_table)
(output_automata_list_state_alts_code, output_internal_state_alts_func)
(output_state_alts_func, make_insn_alts_attr, make_bypass_attr)
(make_internal_dfa_insn_code_attr, make_default_insn_latency_attr):
Delete.
* genattr.c: Declare internal_dfa_insn_code in insn-attr.h.
* genattrtab.h: Delete file.
* Makefile.in (OBJS-common): Add insn-automata.o.
(insn-automata.o): New rule.
(simple_generated_c): Add insn-automata.c.
(build/genattrtab.o, build/genautomata.o): Update dependencies.
(genprogmd): Add automata.
(build/genattrtab): Needs no extra objects nor libraries.
(build/genautomata): Needs build/vec.o and -lm.
From-SVN: r110123
2006-01-23 16:15:52 +01:00
|
|
|
|
2006-01-22 Zack Weinberg <zackw@panix.com>
|
|
|
|
|
|
|
|
|
|
* genattrtab.c: Don't include genattrtab.h. Define ATTR_NONE
|
|
|
|
|
and ATTR_SPECIAL (from genattrtab.h). Don't define num_dfa_decls
|
|
|
|
|
nor any of the random handful of variables that used to be necessary
|
|
|
|
|
when this program was linked with rtlanal.o. Prune set of forward
|
|
|
|
|
function declarations.
|
|
|
|
|
(struct attr_desc): Remove static_p field.
|
|
|
|
|
(hash_obstack, temp_obstack, attr_hash_table, attr_printf)
|
|
|
|
|
(check_attr_test, make_internal_attr, make_numeric_value): Make static.
|
|
|
|
|
(attr_string): Do not read the character one past the length of
|
|
|
|
|
the string.
|
|
|
|
|
(write_attr_get, find_attr, make_internal_attr): Don't touch static_p.
|
|
|
|
|
(struct insn_reserv, all_insn_reservs, last_insn_reserv_p)
|
|
|
|
|
(n_insn_reservs, gen_insn_reserv, struct bypass_list, all_bypasses)
|
|
|
|
|
(n_bypasses, gen_bypass_1, gen_bypass, process_bypasses)
|
|
|
|
|
(make_automaton_attrs): New.
|
|
|
|
|
(main): Do not call into genautomata. Call local gen_bypass
|
|
|
|
|
and gen_insn_reserv as appropriate. Call make_automaton_attrs.
|
|
|
|
|
Remove special case for insn_alts.
|
|
|
|
|
* genautomata.c: Include gensupport.h; not genattrtab.h nor
|
|
|
|
|
varray.h (leftover from previous change). Prune set of forward
|
|
|
|
|
function declarations. Remove state_alts fields from all
|
|
|
|
|
structures. Remove state_alts_table from struct automaton.
|
|
|
|
|
Make everything except main static. Do not maintain num_dfa_decls.
|
|
|
|
|
Do not maintain state_alts fields of various structures.
|
|
|
|
|
(process_decls): Don't validate condexp for dm_insn_reserv decls.
|
|
|
|
|
(add_arc): Remove state_alts argument. All callers updated.
|
|
|
|
|
(output_reserved_units_table): Emit #ifdef here...
|
|
|
|
|
(output_tables): ...not here. Don't generate state_alts tables.
|
|
|
|
|
(expand_automata): Don't generate attributes.
|
|
|
|
|
(write_automata): Don't generate state_alts functions.
|
|
|
|
|
(main): New function.
|
|
|
|
|
(it_is_empty_reserv_sets, output_state_alts_full_vect_name)
|
|
|
|
|
(output_state_alts_comb_vect_name, output_state_alts_check_vect_name)
|
|
|
|
|
(AUTOMATON_STATE_ALTS_MACRO_NAME, INTERNAL_STATE_ALTS_FUNC_NAME)
|
|
|
|
|
(STATE_ALTS_FUNC_NAME, INSN_DEFAULT_LATENCY_FUNC_NAME)
|
|
|
|
|
(BYPASS_P_FUNC_NAME, output_state_alts_table)
|
|
|
|
|
(output_automata_list_state_alts_code, output_internal_state_alts_func)
|
|
|
|
|
(output_state_alts_func, make_insn_alts_attr, make_bypass_attr)
|
|
|
|
|
(make_internal_dfa_insn_code_attr, make_default_insn_latency_attr):
|
|
|
|
|
Delete.
|
|
|
|
|
* genattr.c: Declare internal_dfa_insn_code in insn-attr.h.
|
|
|
|
|
* genattrtab.h: Delete file.
|
|
|
|
|
* Makefile.in (OBJS-common): Add insn-automata.o.
|
|
|
|
|
(insn-automata.o): New rule.
|
|
|
|
|
(simple_generated_c): Add insn-automata.c.
|
|
|
|
|
(build/genattrtab.o, build/genautomata.o): Update dependencies.
|
|
|
|
|
(genprogmd): Add automata.
|
|
|
|
|
(build/genattrtab): Needs no extra objects nor libraries.
|
|
|
|
|
(build/genautomata): Needs build/vec.o and -lm.
|
|
|
|
|
|
2006-01-23 16:15:42 +01:00
|
|
|
|
2006-01-22 Zack Weinberg <zackw@panix.com>
|
|
|
|
|
|
|
|
|
|
* genautomata.c (process_state_longest_path, max_dfa_issue_rate)
|
|
|
|
|
(output_dfa_max_issue_rate, locked_states_num): Delete.
|
|
|
|
|
(struct automaton): Add locked_states field.
|
|
|
|
|
(output_dead_lock_vect): Save number of locked states in
|
|
|
|
|
automaton->locked_states. If it is zero, don't print anything.
|
|
|
|
|
(output_max_insn_queue_index_def): Define max_insn_queue_index const.
|
|
|
|
|
(output_internal_dead_lock_func): Only test the dead_lock_vect
|
|
|
|
|
for automata that have locked states.
|
|
|
|
|
(output_statistics): Always print the number of locked states for
|
|
|
|
|
each automaton. Calculate total number of locked states here.
|
|
|
|
|
(write_automata): Don't call output_dfa_max_issue_rate.
|
|
|
|
|
* genattrtab.c: Define length_unit_log as a const variable.
|
|
|
|
|
* genattr.c: Don't emit MAX_DFA_ISSUE_RATE. Declare
|
|
|
|
|
max_insn_queue_index const.
|
|
|
|
|
* final.c (length_unit_log): Declare const.
|
|
|
|
|
* doc/tm.texi: Remove all references to MAX_DFA_ISSUE_RATE.
|
|
|
|
|
|
2006-01-23 16:15:34 +01:00
|
|
|
|
2006-01-22 Zack Weinberg <zackw@panix.com>
|
|
|
|
|
|
|
|
|
|
* genautomata.c: Include vec.h, not varray.h.
|
|
|
|
|
Delete vla_ptr_t, all of the VLA_PTR_ macros, and all of the
|
|
|
|
|
VLA_HWINT_ macros. Change vla_hwint_t to a typedef for
|
|
|
|
|
VEC(vect_el_t,heap) *. Convert all uses of VLA_* macros to
|
|
|
|
|
VEC_* macros operating on appropriately typed vectors, or to
|
|
|
|
|
malloced arrays when the size is known in advance. Const-ify
|
|
|
|
|
many char* variables and function arguments. No functional changes.
|
|
|
|
|
* Makefile.in (build/varray.o): Delete rule.
|
|
|
|
|
(build/genattrtab): Depend on build/vec.o instead of build/varray.o.
|
|
|
|
|
(build/genautomata.o): Depend on vec.h instead of $(VARRAY_H).
|
|
|
|
|
|
r110124@banpei: zack | 2006-01-22 14:45:55 -0800
r110124@banpei: zack | 2006-01-22 14:45:55 -0800
* gensupport.c: Define get_insn_name and record_insn_name here.
(read_md_rtx): Call record_insn_name as appropriate.
* genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
* genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
* genpreds.c, genrecog.c: Don't define get_insn_name nor
record_insn_name.
* Makefile.in (BUILD_SUPPORT, BUILD_PRINT): Fold into BUILD_RTL.
(BUILD_VARRAY): Delete.
(genprognormal): Rename genprogmd. Fold in all programs from
genprognoprint; also attrtab.
(build/genattrtab): Just mention genautomata.o and varray.o.
Reorganize a bit, add comments to make the categories clearer.
From-SVN: r110120
2006-01-23 16:15:12 +01:00
|
|
|
|
2006-01-22 Zack Weinberg <zackw@panix.com>
|
|
|
|
|
|
|
|
|
|
* gensupport.c: Define get_insn_name and record_insn_name here.
|
|
|
|
|
(read_md_rtx): Call record_insn_name as appropriate.
|
|
|
|
|
* genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
|
|
|
|
|
* genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
|
|
|
|
|
* genpreds.c, genrecog.c: Don't define get_insn_name nor
|
|
|
|
|
record_insn_name.
|
|
|
|
|
* Makefile.in (BUILD_SUPPORT, BUILD_PRINT): Fold into BUILD_RTL.
|
|
|
|
|
(BUILD_VARRAY): Delete.
|
|
|
|
|
(genprognormal): Rename genprogmd. Fold in all programs from
|
|
|
|
|
genprognoprint; also attrtab.
|
|
|
|
|
(build/genattrtab): Just mention genautomata.o and varray.o.
|
|
|
|
|
Reorganize a bit, add comments to make the categories clearer.
|
|
|
|
|
|
r110123@banpei: zack | 2006-01-22 14:44:34 -0800
r110123@banpei: zack | 2006-01-22 14:44:34 -0800
* genconditions.c (condition_table, add_condition): Delete.
(write_conditions): Don't emit n_insn_conditions nor
insn_elision_unavailable. Issue the gcc version #ifdef here,
inside the table, with no #else clause ...
(write_header): ...not here.
(write_writer): New function.
(main): Don't initialize condition_table. Use add_c_test.
Call write_writer.
* gensupport.c (init_md_reader_args_cb): Handle multiple input
files on the command line.
(maybe_eval_c_test): Don't check insn_elision_unavailable.
Return -1 if there is no entry in the table, don't abort.
(add_c_test, traverse_c_tests): New functions.
* gensupport.h (insn_elision_unavailable, insn_conditions)
(n_insn_conditions): Delete declarations.
(add_c_test, traverse_c_tests): Declare.
* read-rtl.c: Include gensupport.h.
(read_conditions): New function.
(read_rtx): If read_rtx_1 returns 0, treat as EOF.
(read_rtx_1): If we get EOF when we were looking for an initial
open paren, return 0. Call read_conditions when appropriate.
* Makefile.in: Kill BUILD_EARLY_SUPPORT and all references to
dummy-conditions.o. Eliminate references to insn-conditions.o,
or change them to build/gencondmd.o, as appropriate. Remove
insn-constants.h from $(simple_generated_h) and insn-conditions.c
from $(simple_generated_c). For all files remaining in those
two lists, add insn-conditions.md to the generator command line.
Give insn-constants.h/s-constants their own rules. Add rules
for build/gencondmd.c, s-conditions, insn-conditions.md, s-condmd.
(build/read-rtl.o): Depend on gensupport.h.
(genprognormal): Include preds.
(genprogearly): Rename genprognoprint; only difference is now that
they don't link with $(BUILD_PRINT).
* dummy-conditions.c: Delete.
From-SVN: r110119
2006-01-23 16:15:05 +01:00
|
|
|
|
2006-01-22 Zack Weinberg <zackw@panix.com>
|
|
|
|
|
|
|
|
|
|
* genconditions.c (condition_table, add_condition): Delete.
|
|
|
|
|
(write_conditions): Don't emit n_insn_conditions nor
|
|
|
|
|
insn_elision_unavailable. Issue the gcc version #ifdef here,
|
|
|
|
|
inside the table, with no #else clause ...
|
|
|
|
|
(write_header): ...not here.
|
|
|
|
|
(write_writer): New function.
|
|
|
|
|
(main): Don't initialize condition_table. Use add_c_test.
|
|
|
|
|
Call write_writer.
|
|
|
|
|
* gensupport.c (init_md_reader_args_cb): Handle multiple input
|
|
|
|
|
files on the command line.
|
|
|
|
|
(maybe_eval_c_test): Don't check insn_elision_unavailable.
|
|
|
|
|
Return -1 if there is no entry in the table, don't abort.
|
|
|
|
|
(add_c_test, traverse_c_tests): New functions.
|
|
|
|
|
* gensupport.h (insn_elision_unavailable, insn_conditions)
|
|
|
|
|
(n_insn_conditions): Delete declarations.
|
|
|
|
|
(add_c_test, traverse_c_tests): Declare.
|
|
|
|
|
* read-rtl.c: Include gensupport.h.
|
|
|
|
|
(read_conditions): New function.
|
|
|
|
|
(read_rtx): If read_rtx_1 returns 0, treat as EOF.
|
|
|
|
|
(read_rtx_1): If we get EOF when we were looking for an initial
|
|
|
|
|
open paren, return 0. Call read_conditions when appropriate.
|
|
|
|
|
* Makefile.in: Kill BUILD_EARLY_SUPPORT and all references to
|
|
|
|
|
dummy-conditions.o. Eliminate references to insn-conditions.o,
|
|
|
|
|
or change them to build/gencondmd.o, as appropriate. Remove
|
|
|
|
|
insn-constants.h from $(simple_generated_h) and insn-conditions.c
|
|
|
|
|
from $(simple_generated_c). For all files remaining in those
|
|
|
|
|
two lists, add insn-conditions.md to the generator command line.
|
|
|
|
|
Give insn-constants.h/s-constants their own rules. Add rules
|
|
|
|
|
for build/gencondmd.c, s-conditions, insn-conditions.md, s-condmd.
|
|
|
|
|
(build/read-rtl.o): Depend on gensupport.h.
|
|
|
|
|
(genprognormal): Include preds.
|
|
|
|
|
(genprogearly): Rename genprognoprint; only difference is now that
|
|
|
|
|
they don't link with $(BUILD_PRINT).
|
|
|
|
|
* dummy-conditions.c: Delete.
|
|
|
|
|
|
2006-01-23 16:14:59 +01:00
|
|
|
|
2006-01-22 Zack Weinberg <zackw@panix.com>
|
|
|
|
|
|
|
|
|
|
* genextract.c: Don't include insn-config.h. Do include vec.h.
|
|
|
|
|
Declare vectors of int, char, and locstr.
|
|
|
|
|
(locstr): New typedef.
|
|
|
|
|
(struct extraction): Make all array fields into bare pointers.
|
|
|
|
|
(insn_name_ptr, insn_name_ptr_size): Move down by get_insn_name.
|
|
|
|
|
(insn_code_number): Delete.
|
|
|
|
|
(accum_extract): New struct.
|
|
|
|
|
(VEC_safe_set_locstr, VEC_char_to_string): New functions.
|
|
|
|
|
(gen_insn): Take insn_code_number as an argument. Use an
|
|
|
|
|
accum_extract structure instead of loading data directly into
|
|
|
|
|
a struct extraction, and having to know how big it might get.
|
|
|
|
|
(walk_rtx): Operate entirely on an accum_extract structure.
|
|
|
|
|
(print_path): Avoid unnecessary use of printf.
|
|
|
|
|
(print_header): New function, split out of main. Distinguish
|
|
|
|
|
more carefully between an unrecognizable insn and an insn that
|
|
|
|
|
has the code number of a define_expand.
|
|
|
|
|
(main): Pass insn_code_number to gen_insn. Call print_header
|
|
|
|
|
only after parsing. Avoid unnecessary use of printf.
|
|
|
|
|
* Makefile.in (build/vec.o): New rule.
|
|
|
|
|
(build/genextract): Depend on build/vec.o.
|
|
|
|
|
(build/genextract.o): Don't depend on insn-config.h.
|
|
|
|
|
|
2006-01-23 16:14:53 +01:00
|
|
|
|
2006-01-22 Zack Weinberg <zackw@panix.com>
|
|
|
|
|
|
|
|
|
|
* Makefile.in: Consolidate most rules that use $(CC_FOR_BUILD) and/or
|
|
|
|
|
$(RUN_GEN). Use pattern rules to factor out as much boilerplate as
|
|
|
|
|
practical. Eliminate per-generator-program link rules.
|
|
|
|
|
|
2006-01-23 15:56:45 +01:00
|
|
|
|
2006-01-23 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
|
|
PR middle-end/24437
|
|
|
|
|
* tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
|
|
|
|
|
with a call expr to ...
|
|
|
|
|
* fold-const.c (fold_ternary) <case CALL_EXPR>: Here.
|
|
|
|
|
|
2006-01-23 11:06:22 +01:00
|
|
|
|
2006-01-23 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
* cfgloopmanip.c (lv_adjust_loop_entry_edge): Add comment
|
|
|
|
|
before make_edge with conditional EDGE_TRUE_VALUE.
|
|
|
|
|
|
2006-01-23 10:47:01 +01:00
|
|
|
|
2006-01-23 Steven Bosscher <stevenb.gcc@gmail.com>
|
|
|
|
|
Jan Hubicka <jh@suse.cz>
|
|
|
|
|
Richard Guenther <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/25654
|
|
|
|
|
* cfgexpand.c (aggregate_contains_union_type): New function.
|
|
|
|
|
(add_alias_set_conflicts): Call it. Make sure to add conflicts
|
|
|
|
|
for structure variables that contain a union type.
|
|
|
|
|
|
2006-01-23 08:50:42 +01:00
|
|
|
|
2006-01-23 Richard Sandiford <richard@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* gengtype.c (new_structure): Return the structure.
|
|
|
|
|
(create_option): Add an extra "next" argument.
|
|
|
|
|
(create_field): New function.
|
|
|
|
|
(adjust_field_rtx_def): Use create_option and create_field.
|
|
|
|
|
Remove a now-unnecessary call to find_structure.
|
|
|
|
|
(adjust_field_tree_def): Likewise.
|
|
|
|
|
(note_yacc_type): Remove an unnecessary call to find_structure.
|
|
|
|
|
* gengtype.h (new_structure): Return the structure.
|
|
|
|
|
(create_option): Add an extra argument.
|
|
|
|
|
* gengtype-yacc.y (type): Remove unnecessary calls to find_structure.
|
|
|
|
|
(option): Adjust calls to create_option.
|
|
|
|
|
|
2006-01-22 21:48:17 +01:00
|
|
|
|
2006-01-22 David Edelsohn <edelsohn@gnu.org>
|
|
|
|
|
|
|
|
|
|
* config/rs6000/aix.h (STACK_BOUNDARY): Define.
|
|
|
|
|
|
2006-01-22 16:01:02 +01:00
|
|
|
|
2006-01-22 Paul Brook <paul@codesourcery.com>
|
|
|
|
|
Peter Barada <peter@the-baradas.com>
|
|
|
|
|
|
|
|
|
|
* config/m68k/m68k.md: Add Coldfire FPU support.
|
|
|
|
|
Define FP mode macro and associated attributes.
|
|
|
|
|
Use it for float mode patterns.
|
|
|
|
|
* config/m68k/linux.h (FUNCTION_VALUE): Use m68k_function_value.
|
|
|
|
|
(LIBCALL_VALUE): Use m68k_libcall_value.
|
|
|
|
|
* config/m68k/m68k-protos.h (m68k_libcall_value): Add prototype.
|
|
|
|
|
(m68k_function_value): Ditto.
|
|
|
|
|
(emit_move_sequence): Ditto.
|
|
|
|
|
* config/m68k/m68kemb.h (LIBCALL_VALUE): Use m68k_libcall_value.
|
|
|
|
|
* config/m68k/m68k-none.h (ASM_SPEC): Add mcfv4e.
|
|
|
|
|
* config/m68k/t-m68kelf (MULTILIB_OPTIONS): Add mcfv4e.
|
|
|
|
|
(MULTILIB_EXCEPTIONS): Ditto.
|
|
|
|
|
* config/m68k/m68k.opt: Add mcfv4e.
|
|
|
|
|
* config/m68k/m68k.c (m68k_handle_option): Handle OPT_mcfv4e.
|
|
|
|
|
(m68k_compute_frame_layout): Include space for ColdFire FPU regs.
|
|
|
|
|
(m68k_output_function_prologue): Save ColdFire FPU registers.
|
|
|
|
|
(m68k_output_function_epilogue): Restore ColdFire FPU registers.
|
|
|
|
|
(force_mode, fp_reg_operand, emit_move_sequence): New functions.
|
|
|
|
|
(m68k_regno_mode_ok): Don't allow types larget than 8 bytes in
|
|
|
|
|
ColdFire FPU registers.
|
|
|
|
|
(m68k_libcall_value, m68k_function_value): New functions.
|
|
|
|
|
* config/m68k/netbsd-elf.h (FUNCTION_VALUE): Use m68k_function_value.
|
|
|
|
|
(LIBCALL_VALUE): Use m68k_libcall_value.
|
|
|
|
|
* config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define __mcfv4e__.
|
|
|
|
|
(MASK_COLDFIRE): Add MASK_CFV4E.
|
|
|
|
|
(TARGET_COLDFIRE_FPU, TARGET_HARD_FLOAT, TARGET_FP_REG_SIZE): New.
|
|
|
|
|
(MODES_TIEABLE_P): Use TARGET_HARD_FLOAT.
|
|
|
|
|
(REG_CLASS_FROM_LETTER, PREFERRED_RELOAD_CLASS): Ditto.
|
|
|
|
|
(GO_IF_COLDFIRE_FPU_LEGITIMATE_ADDRESS): Define.
|
|
|
|
|
(GO_IF_LEGITIMATE_ADDRESS): Use it.
|
|
|
|
|
(LEGITIMIZE_ADDRESS): Handle ColdFire FPU addresses.
|
|
|
|
|
* doc/invoke.tex: Document -mcfv4e on m68k.
|
|
|
|
|
|
2006-01-22 05:51:39 +01:00
|
|
|
|
2006-01-22 Ranjit Mathew <rmathew@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* doc/contribute.texi: Change CVS to SVN and update the corresponding
|
|
|
|
|
URL.
|
|
|
|
|
|
2006-01-22 03:38:03 +01:00
|
|
|
|
2006-01-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
|
|
|
|
|
|
|
|
|
PR c++/16190
|
|
|
|
|
* c-opts.c (c_common_handle_option): Don't include
|
|
|
|
|
-Wnon-virtual-dtor in -Wall; enable if -Weffc++.
|
|
|
|
|
* doc/invoke.texi (C++ Dialect Options): Document that
|
|
|
|
|
-Wnon-virtual-dtor is no longer included in -Wall.
|
|
|
|
|
|
2006-01-21 19:22:19 +01:00
|
|
|
|
2006-01-21 Joseph S. Myers <joseph@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* gcov.c (print_version), gcov-dump.c (print_version),
|
|
|
|
|
mips-tdump.c (main), mips-tfile.c (main): Update copyright notice
|
|
|
|
|
dates.
|
|
|
|
|
|
2006-01-26 19:45:29 +01:00
|
|
|
|
2006-01-21 Kenneth Zadeck <zadeck@naturalbridge.com>
|
2006-01-21 15:58:40 +01:00
|
|
|
|
|
|
|
|
|
* df-scan.c (problem_SCAN): Added NULL reset function.
|
|
|
|
|
(df_scan_reset_blocks): Added code to call reset block function
|
|
|
|
|
(df_bb_refs_delete) Fixed comment.
|
|
|
|
|
(df_insn_refs_delete): Made tolerant of deleting non existent info
|
|
|
|
|
for dataflow problems that need to be reset.
|
|
|
|
|
* df-core.c (df_set_blocks): Ditto.
|
|
|
|
|
* df.h (struct df_problem): Added reset_fun.
|
|
|
|
|
* df-problems.c (problem_RU, problem_RD, problem_LR, problem_UR,
|
|
|
|
|
problem_UREC, problem_CHAIN, problem_RI): Initialized reset_fun field.
|
|
|
|
|
(df_chain_insn_reset, df_chain_bb_reset, df_chain_reset): New
|
|
|
|
|
functions to clear out all references to def-use or use-def chains.
|
|
|
|
|
|
2006-01-21 00:25:11 +01:00
|
|
|
|
2006-01-21 Ben Elliston <bje@au.ibm.com>
|
|
|
|
|
|
|
|
|
|
* varasm.c (assemble_real): Initialise data array.
|
|
|
|
|
|
2006-01-21 00:23:03 +01:00
|
|
|
|
2006-01-20 Paul Brook <paul@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
Merge from csl-arm-branch.
|
|
|
|
|
2005-09-21 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
* config/arm/arm.md (movdi): Force operands[1] to a register
|
|
|
|
|
if we have a non-register source.
|
|
|
|
|
(*arm_movdi, *movdf_soft_insn): Require that one of the
|
|
|
|
|
operands be a register.
|
|
|
|
|
* config/arm/iwmmxt.md (*iwmmxt_arm_movdi): Likewise.
|
|
|
|
|
* config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
|
|
|
|
|
|
2006-01-20 22:55:41 +01:00
|
|
|
|
2006-01-20 DJ Delorie <dj@redhat.com>
|
|
|
|
|
|
|
|
|
|
* varasm.c (initialize_constant_valid_p): Allow pointers
|
|
|
|
|
initialized from integer constants of lesser precision.
|
|
|
|
|
(output_constant): Allow non-int-sized pointer modes to be
|
|
|
|
|
initialized from integer constants.
|
|
|
|
|
|
2006-01-20 22:00:03 +01:00
|
|
|
|
2006-01-20 Joseph S. Myers <joseph@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/25524
|
|
|
|
|
* cppdefault.h (struct default_include): Add multilib flag.
|
|
|
|
|
* cppdefault.c (cpp_include_defaults): Set it.
|
|
|
|
|
* c.opt (-imultilib): New option.
|
|
|
|
|
* c-opts.c (imultilib): New.
|
|
|
|
|
(c_common_handle_option): Handle -imultilib.
|
|
|
|
|
(c_common_post_options): Likewise.
|
|
|
|
|
* c-incpath.c (add_standard_paths, register_include_chains):
|
|
|
|
|
Likewise.
|
|
|
|
|
* c-incpath.h (register_include_chains): Add extra parameter.
|
|
|
|
|
* gcc.c (do_spec_1): Generate -imultilib option.
|
|
|
|
|
(The Specs Language): Update %I description.
|
|
|
|
|
(process_command): Update copyright notice.
|
|
|
|
|
* doc/cppopts.texi (-imultilib): Document.
|
|
|
|
|
* doc/invoke.texi (-imultilib): Include in option summary.
|
|
|
|
|
(%I): Update specs documentation.
|
|
|
|
|
|
2006-01-20 18:06:34 +01:00
|
|
|
|
2006-01-20 Zdenek Dvorak <dvorakz@suse.cz>
|
|
|
|
|
|
|
|
|
|
* loop-iv.c (iv_analysis_loop_init): Use df in more conservative way.
|
|
|
|
|
|
2006-01-20 13:12:24 +01:00
|
|
|
|
2006-01-20 Richard Sandiford <richard@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* stmt.c (case_bit_test_cmp): Stabilize the sort using code
|
|
|
|
|
label numbers.
|
|
|
|
|
|
2006-01-20 10:38:56 +01:00
|
|
|
|
2006-01-20 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
Steven Bosscher <stevenb.gcc@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/24626
|
|
|
|
|
* cfgloopmanip.c (lv_adjust_loop_entry_edge): Don't set
|
|
|
|
|
EDGE_TRUE_VALUE if in RTL mode.
|
|
|
|
|
|
|
|
|
|
Revert
|
|
|
|
|
2005-03-30 Mostafa Hagog <mustafa@il.ibm.com>
|
|
|
|
|
* cfgrtl.c (rtl_verify_flow_info_1): Fix.
|
|
|
|
|
|
2006-01-20 10:30:22 +01:00
|
|
|
|
2006-01-20 Dirk Mueller <dmueller@suse.com>
|
|
|
|
|
|
2006-01-23 16:14:53 +01:00
|
|
|
|
PR c++/5520
|
|
|
|
|
* c-parser.c (c_parser_if_body): Use build_empty_stmt()
|
|
|
|
|
instead of a special NOP marker.
|
|
|
|
|
* c-typeck.c (c_finish_if_stmt): Remove obsoleted special
|
|
|
|
|
NOP marker handling.
|
|
|
|
|
* c-common.h (empty_body_warning): Add forward declaration.
|
|
|
|
|
* c-common.c (empty_body_warning): Add (from c_finish_if_stmt).
|
|
|
|
|
Now uses IS_EMPTY_STMT() instead of special NOP markers.
|
2006-01-20 10:30:22 +01:00
|
|
|
|
|
2006-01-26 19:45:29 +01:00
|
|
|
|
2006-01-20 Paul Brook <paul@codesourcery.com>
|
2006-01-20 03:41:21 +01:00
|
|
|
|
|
|
|
|
|
* Makefile.in (lang_checks): Keep going if mkdir fails.
|
|
|
|
|
|
2006-01-26 19:45:29 +01:00
|
|
|
|
2006-01-19 Kenneth Zadeck <zadeck@naturalbridge.com>
|
df-scan.c (df_scan_free_bb_info): Added basic block parameter to be able to clean out basic block when not necessary.
2005-01-19 Kenneth Zadeck <zadeck@naturalbridge.com>
* df-scan.c (df_scan_free_bb_info): Added basic block parameter to
be able to clean out basic block when not necessary.
(df_scan_free): Fixed to properly delete information if df is
unused before calling df_finish.
(df_scan_alloc, df_rescan_blocks, df_reg_chain_unlink,
df_insn_create_insn_record, df_bb_refs_record): Fixed formatting
or comment typos.
(df_bb_refs_delete): New function.
(df_refs_delete): Moved per block code to df_bb_refs_delete.
* df-core.c (df_set_blocks): Added code to properly clean out
unused blocks if they are not part of the blocks to consider.
Added additional null check.
(df_compact_blocks): Added basic block parameter to free_bb_fun to
be able to clean out basic block when not necessary
* df.h (df_free_bb_function): Ditto.
(df_bb_refs_delete): New function.
* df-problems.c (df_ru_free_bb_info, df_rd_set_bb_info,
df_lr_set_bb_info, df_ur_free_bb_info, df_urec_free_bb_info):Added
basic block parameter to be able to clean out basic block when not
necessary.
(df_ru_alloc, df_rd_alloc): Fixed dyslexic overflow test.
(df_ru_free, df_rd_free, df_lr_free, df_ur_free, df_urec_free):
Fixed to properly delete information if df is unused before
calling df_finish.
From-SVN: r110009
2006-01-20 02:55:52 +01:00
|
|
|
|
|
|
|
|
|
* df-scan.c (df_scan_free_bb_info): Added basic block parameter to
|
|
|
|
|
be able to clean out basic block when not necessary.
|
|
|
|
|
(df_scan_free): Fixed to properly delete information if df is
|
|
|
|
|
unused before calling df_finish.
|
|
|
|
|
(df_scan_alloc, df_rescan_blocks, df_reg_chain_unlink,
|
|
|
|
|
df_insn_create_insn_record, df_bb_refs_record): Fixed formatting
|
|
|
|
|
or comment typos.
|
|
|
|
|
(df_bb_refs_delete): New function.
|
|
|
|
|
(df_refs_delete): Moved per block code to df_bb_refs_delete.
|
|
|
|
|
* df-core.c (df_set_blocks): Added code to properly clean out
|
|
|
|
|
unused blocks if they are not part of the blocks to consider.
|
|
|
|
|
Added additional null check.
|
|
|
|
|
(df_compact_blocks): Added basic block parameter to free_bb_fun to
|
|
|
|
|
be able to clean out basic block when not necessary
|
|
|
|
|
* df.h (df_free_bb_function): Ditto.
|
|
|
|
|
(df_bb_refs_delete): New function.
|
|
|
|
|
* df-problems.c (df_ru_free_bb_info, df_rd_set_bb_info,
|
|
|
|
|
df_lr_set_bb_info, df_ur_free_bb_info, df_urec_free_bb_info):Added
|
|
|
|
|
basic block parameter to be able to clean out basic block when not
|
|
|
|
|
necessary.
|
|
|
|
|
(df_ru_alloc, df_rd_alloc): Fixed dyslexic overflow test.
|
|
|
|
|
(df_ru_free, df_rd_free, df_lr_free, df_ur_free, df_urec_free):
|
|
|
|
|
Fixed to properly delete information if df is unused before
|
|
|
|
|
calling df_finish.
|
|
|
|
|
|
2006-01-26 19:45:29 +01:00
|
|
|
|
2006-01-19 Kenneth Zadeck <zadeck@naturalbridge.com>
|
2006-01-20 02:24:00 +01:00
|
|
|
|
|
2006-01-23 16:14:53 +01:00
|
|
|
|
PR rtl-optimization/25799
|
2006-01-20 02:24:00 +01:00
|
|
|
|
* df-problems.c (df_ru_confluence_n, df_rd_confluence_n):
|
|
|
|
|
Corrected confluence operator to remove bits from op2 before oring
|
|
|
|
|
with op1 rather than removing bits from op1.
|
2006-01-23 16:14:53 +01:00
|
|
|
|
(df_ru_transfer_function): Corrected test on wrong bitmap which
|
2006-01-20 02:24:00 +01:00
|
|
|
|
caused infinite loop. Both of these problems were introduced in
|
|
|
|
|
the dataflow rewrite.
|
|
|
|
|
|
2006-01-20 02:16:17 +01:00
|
|
|
|
2006-01-19 DJ Delorie <dj@redhat.com>
|
|
|
|
|
|
|
|
|
|
* reload1.c (find_reload_regs): Note the details of reload
|
|
|
|
|
failures in the dump file.
|
|
|
|
|
(spill_failure): Likewise.
|
|
|
|
|
|
loop-iv.c: Include df.h and hashtab.h.
* loop-iv.c: Include df.h and hashtab.h.
(enum iv_grd_result): New enum.
(DF_REF_IV, DF_REF_IV_SET): New macros.
(struct biv_entry): New.
(df, bivs): New global variables.
(struct insn_info, insn_info, last_def, bivs, max_insn_no, max_reg_no,
assign_luids, mark_sets, kill_sets, mark_single_set, simple_set_p):
Removed.
(clear_iv_info, latch_dominating_def, record_iv, iv_analyze_expr,
iv_analyze_result, iv_analyze_def, biv_hash, biv_eq,
analyzed_for_bivness_p, record_biv): New functions.
(iv_analysis_loop_init, iv_get_reaching_def, simple_reg_p,
get_biv_step_1, get_biv_step, iv_analyze_biv, iv_analyze_op,
iv_analyze, biv_p, iv_analysis_done): Work with df representation of
UD chains.
(iv_constant, iv_subreg, iv_extend, iv_mult, iv_shift): Do not set
analysed.
(iv_number_of_iterations): Use new interface to iv analysis.
* loop-unroll.c: Do not include varray.h.
(analyze_iv_to_split_insn): Use new interface to iv
analysis.
* loop-unswitch.c (may_unswitch_on): Ditto.
* df.c (df_bitmaps_free): Only work for bbs for that structures are
allocated.
(df_bb_modify): Realloc tables to the new index.
(df_find_use): New function.
* df.h (df_find_use): Declare.
* optabs.c (expand_unop): Make the mode of the REG_EQUAL node be
outmode.
* cfgloop.h (struct rtx_iv): Remove analysed field.
(iv_get_reaching_def): Removed.
(iv_analyze_result, iv_analyze_expr, iv_current_loop_df): Declare.
* Makefile.in (loop-unroll.o): Remove VARRAY_H dependency.
(loop-iv.o): Add df.h and hashtab.h dependency.
* df-problems.c (df_ru_alloc, df_rd_alloc): Fix memory reallocation.
From-SVN: r110005
2006-01-20 01:46:37 +01:00
|
|
|
|
2006-01-20 Zdenek Dvorak <dvorakz@suse.cz>
|
|
|
|
|
|
|
|
|
|
* loop-iv.c: Include df.h and hashtab.h.
|
|
|
|
|
(enum iv_grd_result): New enum.
|
|
|
|
|
(DF_REF_IV, DF_REF_IV_SET): New macros.
|
|
|
|
|
(struct biv_entry): New.
|
|
|
|
|
(df, bivs): New global variables.
|
|
|
|
|
(struct insn_info, insn_info, last_def, bivs, max_insn_no, max_reg_no,
|
|
|
|
|
assign_luids, mark_sets, kill_sets, mark_single_set, simple_set_p):
|
|
|
|
|
Removed.
|
|
|
|
|
(clear_iv_info, latch_dominating_def, record_iv, iv_analyze_expr,
|
|
|
|
|
iv_analyze_result, iv_analyze_def, biv_hash, biv_eq,
|
|
|
|
|
analyzed_for_bivness_p, record_biv): New functions.
|
|
|
|
|
(iv_analysis_loop_init, iv_get_reaching_def, simple_reg_p,
|
|
|
|
|
get_biv_step_1, get_biv_step, iv_analyze_biv, iv_analyze_op,
|
|
|
|
|
iv_analyze, biv_p, iv_analysis_done): Work with df representation of
|
|
|
|
|
UD chains.
|
|
|
|
|
(iv_constant, iv_subreg, iv_extend, iv_mult, iv_shift): Do not set
|
|
|
|
|
analysed.
|
|
|
|
|
(iv_number_of_iterations): Use new interface to iv analysis.
|
|
|
|
|
* loop-unroll.c: Do not include varray.h.
|
|
|
|
|
(analyze_iv_to_split_insn): Use new interface to iv
|
|
|
|
|
analysis.
|
|
|
|
|
* loop-unswitch.c (may_unswitch_on): Ditto.
|
|
|
|
|
* df.c (df_bitmaps_free): Only work for bbs for that structures are
|
|
|
|
|
allocated.
|
|
|
|
|
(df_bb_modify): Realloc tables to the new index.
|
|
|
|
|
(df_find_use): New function.
|
|
|
|
|
* df.h (df_find_use): Declare.
|
|
|
|
|
* optabs.c (expand_unop): Make the mode of the REG_EQUAL node be
|
|
|
|
|
outmode.
|
|
|
|
|
* cfgloop.h (struct rtx_iv): Remove analysed field.
|
|
|
|
|
(iv_get_reaching_def): Removed.
|
|
|
|
|
(iv_analyze_result, iv_analyze_expr, iv_current_loop_df): Declare.
|
|
|
|
|
* Makefile.in (loop-unroll.o): Remove VARRAY_H dependency.
|
|
|
|
|
(loop-iv.o): Add df.h and hashtab.h dependency.
|
|
|
|
|
* df-problems.c (df_ru_alloc, df_rd_alloc): Fix memory reallocation.
|
|
|
|
|
|
2006-01-20 01:42:29 +01:00
|
|
|
|
2006-01-20 Alan Modra <amodra@bigpond.net.au>
|
|
|
|
|
|
2006-02-03 12:44:08 +01:00
|
|
|
|
PR target/25668
|
2006-01-20 01:42:29 +01:00
|
|
|
|
* libgcc2.c (__floatdisf, __floatdidf): Don't use IBM Extended
|
|
|
|
|
Double TFmode.
|
|
|
|
|
(__floatundisf, __floatundidf): Likewise.
|
|
|
|
|
* libgcc2.h (IS_IBM_EXTENDED): Define.
|
|
|
|
|
|
2006-01-20 01:38:42 +01:00
|
|
|
|
2006-01-19 DJ Delorie <dj@redhat.com>
|
|
|
|
|
|
|
|
|
|
* config/m32c/m32c.h (REG_ALLOC_ORDER): Define.
|
|
|
|
|
|
2006-01-20 01:01:56 +01:00
|
|
|
|
2006-01-19 Paul Brook <paul@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* gcc/config/arm/arm.c (arm_compute_func_type): Treat all functions
|
|
|
|
|
as nothrow when unwinding tables are disabled.
|
|
|
|
|
|
2006-01-20 00:45:49 +01:00
|
|
|
|
2006-01-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
|
|
|
|
|
|
|
|
|
PR testsuite/25171
|
|
|
|
|
* c-decl.c (check_bitfield_type_and_width): Don't issue pedwarn "type
|
|
|
|
|
of bit-field" when in system header.
|
|
|
|
|
|
2006-01-20 00:18:57 +01:00
|
|
|
|
2006-01-19 DJ Delorie <dj@redhat.com>
|
|
|
|
|
|
|
|
|
|
* config/m32c/m32c.c (m32c_prepare_shift): Add code to deal with
|
|
|
|
|
the 16 bit shift limit of the m16c.
|
|
|
|
|
|
2006-01-19 18:28:53 +01:00
|
|
|
|
2006-01-19 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
|
|
PR target/22099
|
|
|
|
|
* config/i386/i386.md (builtin_setjmp_receiver): Don't emit the label.
|
|
|
|
|
* config/i386/i386.c (output_set_got): Output the label if we have one
|
|
|
|
|
for the TARGET_DEEP_BRANCH_PREDICTION case.
|
|
|
|
|
|
invoke.texi (generic): Document (i686) Update.
* invoke.texi (generic): Document
(i686) Update.
* config.gcc: Make x86_64-* and i686-* default to generic tunning.
* i386.h (TARGET_GENERIC32, TARGET_GENERIC64, TARGET_GENERIC,
TARGET_USE_INCDEC, TARGET_PAD_RETURNS): New macros.
(x86_use_incdec, x86_pad_returns): New variables
(TARGET_CPU_DEFAULT_generic): New constant
(TARGET_CPU_DEFAULT_NAMES): Add generic.
(enum processor_type): Add generic32 and generic64.
* i386.md (cpu attribute): Add generic32/generic64
(movhi splitter): Behave sanely when both partial_reg_dependency and
partial_reg_stall are set.
(K8 splitters): Enable for generic as well.
* predicates.md (incdec_operand): Use TARGET_INCDEC
(aligned_operand): Avoid memory mismatch stalls.
* athlon.md: Enable for generic64, new patterns for 128bit moves.
* ppro.md: Enable for generic32
* i386.c (generic64_cost, generic32_cost): New.
(m_GENERIC32, m_GENERIC64, m_GENERIC): New macros.
(x86_use_leave): Enable for generic64. (x86_use_sahf,
x86_ext_80387_constants): Enable for generic32. (x86_push_memory,
x86_movx, x86_unroll_strlen, x86_deep_branch, x86_use_simode_fiop,
x86_use_cltd, x86_promote_QImode, x86_sub_esp_4, x86_sub_esp_8,
x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
x86_partial_reg_dependency, x86_memory_mismatch_stall,
x86_accumulate_outgoing_args, x86_prologue_using_move,
x86_epilogue_using_move, x86_arch_always_fancy_math_387,
x86_sse_partial_reg_dependency, x86_four_jump_limit, x86_schedule):
Enable for generic.
(x86_use_incdec, x86_pad_returns): New.
(override_options): Add generic32 and generic64, translate "generic"
to generic32/generic64 and "i686" to "generic32", refuse
"generic32"/"generic64" as arch target.
(ix86_issue_rate, ix86_adjust_cost): Handle generic as athlon.
(ix86_reorg): Honor PAD_RETURNS.
Co-Authored-By: Evandro Menezes <evandro.menezes@amd.com>
Co-Authored-By: H.J. Lu <hongjiu.lu@intel.com>
From-SVN: r109971
2006-01-19 18:10:24 +01:00
|
|
|
|
2006-01-19 Jan Hubicka <jh@suse.cz>
|
2006-01-23 16:14:53 +01:00
|
|
|
|
H.J. Lu <hongjiu.lu@intel.com>
|
invoke.texi (generic): Document (i686) Update.
* invoke.texi (generic): Document
(i686) Update.
* config.gcc: Make x86_64-* and i686-* default to generic tunning.
* i386.h (TARGET_GENERIC32, TARGET_GENERIC64, TARGET_GENERIC,
TARGET_USE_INCDEC, TARGET_PAD_RETURNS): New macros.
(x86_use_incdec, x86_pad_returns): New variables
(TARGET_CPU_DEFAULT_generic): New constant
(TARGET_CPU_DEFAULT_NAMES): Add generic.
(enum processor_type): Add generic32 and generic64.
* i386.md (cpu attribute): Add generic32/generic64
(movhi splitter): Behave sanely when both partial_reg_dependency and
partial_reg_stall are set.
(K8 splitters): Enable for generic as well.
* predicates.md (incdec_operand): Use TARGET_INCDEC
(aligned_operand): Avoid memory mismatch stalls.
* athlon.md: Enable for generic64, new patterns for 128bit moves.
* ppro.md: Enable for generic32
* i386.c (generic64_cost, generic32_cost): New.
(m_GENERIC32, m_GENERIC64, m_GENERIC): New macros.
(x86_use_leave): Enable for generic64. (x86_use_sahf,
x86_ext_80387_constants): Enable for generic32. (x86_push_memory,
x86_movx, x86_unroll_strlen, x86_deep_branch, x86_use_simode_fiop,
x86_use_cltd, x86_promote_QImode, x86_sub_esp_4, x86_sub_esp_8,
x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
x86_partial_reg_dependency, x86_memory_mismatch_stall,
x86_accumulate_outgoing_args, x86_prologue_using_move,
x86_epilogue_using_move, x86_arch_always_fancy_math_387,
x86_sse_partial_reg_dependency, x86_four_jump_limit, x86_schedule):
Enable for generic.
(x86_use_incdec, x86_pad_returns): New.
(override_options): Add generic32 and generic64, translate "generic"
to generic32/generic64 and "i686" to "generic32", refuse
"generic32"/"generic64" as arch target.
(ix86_issue_rate, ix86_adjust_cost): Handle generic as athlon.
(ix86_reorg): Honor PAD_RETURNS.
Co-Authored-By: Evandro Menezes <evandro.menezes@amd.com>
Co-Authored-By: H.J. Lu <hongjiu.lu@intel.com>
From-SVN: r109971
2006-01-19 18:10:24 +01:00
|
|
|
|
Evandro Menezes <evandro.menezes@amd.com>
|
|
|
|
|
|
|
|
|
|
* invoke.texi (generic): Document
|
|
|
|
|
(i686) Update.
|
|
|
|
|
* config.gcc: Make x86_64-* and i686-* default to generic tunning.
|
|
|
|
|
* i386.h (TARGET_GENERIC32, TARGET_GENERIC64, TARGET_GENERIC,
|
|
|
|
|
TARGET_USE_INCDEC, TARGET_PAD_RETURNS): New macros.
|
|
|
|
|
(x86_use_incdec, x86_pad_returns): New variables
|
|
|
|
|
(TARGET_CPU_DEFAULT_generic): New constant
|
|
|
|
|
(TARGET_CPU_DEFAULT_NAMES): Add generic.
|
|
|
|
|
(enum processor_type): Add generic32 and generic64.
|
|
|
|
|
* i386.md (cpu attribute): Add generic32/generic64
|
|
|
|
|
(movhi splitter): Behave sanely when both partial_reg_dependency and
|
|
|
|
|
partial_reg_stall are set.
|
|
|
|
|
(K8 splitters): Enable for generic as well.
|
|
|
|
|
* predicates.md (incdec_operand): Use TARGET_INCDEC
|
|
|
|
|
(aligned_operand): Avoid memory mismatch stalls.
|
|
|
|
|
* athlon.md: Enable for generic64, new patterns for 128bit moves.
|
|
|
|
|
* ppro.md: Enable for generic32
|
|
|
|
|
* i386.c (generic64_cost, generic32_cost): New.
|
|
|
|
|
(m_GENERIC32, m_GENERIC64, m_GENERIC): New macros.
|
|
|
|
|
(x86_use_leave): Enable for generic64. (x86_use_sahf,
|
|
|
|
|
x86_ext_80387_constants): Enable for generic32. (x86_push_memory,
|
|
|
|
|
x86_movx, x86_unroll_strlen, x86_deep_branch, x86_use_simode_fiop,
|
|
|
|
|
x86_use_cltd, x86_promote_QImode, x86_sub_esp_4, x86_sub_esp_8,
|
|
|
|
|
x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
|
|
|
|
|
x86_partial_reg_dependency, x86_memory_mismatch_stall,
|
|
|
|
|
x86_accumulate_outgoing_args, x86_prologue_using_move,
|
|
|
|
|
x86_epilogue_using_move, x86_arch_always_fancy_math_387,
|
|
|
|
|
x86_sse_partial_reg_dependency, x86_four_jump_limit, x86_schedule):
|
|
|
|
|
Enable for generic.
|
|
|
|
|
(x86_use_incdec, x86_pad_returns): New.
|
|
|
|
|
(override_options): Add generic32 and generic64, translate "generic"
|
|
|
|
|
to generic32/generic64 and "i686" to "generic32", refuse
|
|
|
|
|
"generic32"/"generic64" as arch target.
|
|
|
|
|
(ix86_issue_rate, ix86_adjust_cost): Handle generic as athlon.
|
|
|
|
|
(ix86_reorg): Honor PAD_RETURNS.
|
|
|
|
|
|
tree-pretty-print.c (dump_generic_node): Handle OMP_PARALLEL_FN, OMP_PARALLEL_DATA_ARG and OMP_RETURN_EXPR.
* tree-pretty-print.c (dump_generic_node): Handle
OMP_PARALLEL_FN, OMP_PARALLEL_DATA_ARG and OMP_RETURN_EXPR.
* cgraph.c (cgraph_expand_queue): Rename from
cgraph_analyze_queue.
Update all users.
* cgraphunit.c (cgraph_assemble_pending_functions): Process
cgraph_expand_queue.
(cgraph_expand_all_functions): Likewise.
(cgraph_finalize_pending_functions): Remove. Update callers.
* tree.h (OMP_DIRECTIVE_P): Define.
(OMP_PARALLEL_FN): Define.
(OMP_PARALLEL_DATA_ARG): Define.
(OMP_SECTIONS_SECTIONS): Define.
* tree-pass.h (pass_expand_omp): Declare.
* omp-low.c (struct omp_region): Declare.
(struct omp_context): Remove fields 'parallel_type',
'parallel_start_ix' and 'parallel_start_additional_args'.
Update all users.
(struct omp_for_data): Rename from struct expand_omp_for_data.
(omp_regions): New static variable.
(root_omp_region): New static variable.
(find_omp_clause): Make static.
(is_in_combined_parallel_ctx): Remove.
(is_combined_parallel): New.
(extract_omp_for_data): Move earlier in the file.
(workshare_safe_to_combine_p): New.
(get_ws_args_for): New.
(determine_parallel_type): Move earlier in the file.
(omp_copy_decl_2): Do not set DECL_CONTEXT of new local to the
child function.
(omp_copy_decl): Likewise.
(create_omp_child_function): Likewise.
(lookup_omp_region): New.
(dump_omp_region): New.
(debug_omp_region): New.
(debug_all_omp_regions): New.
(new_omp_region): New.
(scan_omp_parallel): If parallel_nesting_level > 1, the
directive is nested within another parallel directive.
Set OMP_PARALLEL_FN.
(scan_omp_for): Do not try to handle combined parallel+for
cases.
Remove FIXME comment.
(scan_omp_nested): Remove.
(scan_omp_1): Do not call scan_omp_nested when
parallel_nesting_level is > 1.
Do not change the DECL_CONTEXT of local variables found.
(lookup_decl_in_outer_ctx): New.
(lower_rec_input_clauses): Rename from expand_rec_input_clauses.
(lower_lastprivate_clauses): Rename from expand_lastprivate_clauses.
(lower_reduction_clauses): Rename from expand_reduction_clauses.
(lower_copyprivate_clauses): Rename from expand_copyprivate_clauses.
If CTX is nested, lookup VAR in the outer context when
building copy assignment.
(lower_send_clauses): Rename from expand_send_clauses.
If CTX is nested, lookup VAR in the outer context when
building copy assignments.
(lower_send_shared_vars): Rename from expand_send_shared_vars.
If CTX is nested, lookup VAR in the outer context when
building copy assignments.
(expand_parallel_call): Rename from build_parallel_call.
Handle combined parallel+workshare cases.
Re-implement to emit code into the CFG.
(list2chain): New.
(expand_omp_parallel): Re-implement to emit code into the CFG.
Call move_sese_region_to_fn to outline the sub-graph
containing the parallel region.
(expand_omp_for_1): Remove.
(expand_omp_for_generic): Re-implement to emit code into the
CFG.
(expand_omp_for_static_nochunk): Likewise.
(expand_omp_for_static_chunk): Likewise.
(expand_omp_for): Likewise.
(expand_omp_sections): Likewise.
(remove_exit_barriers): New.
(expand_omp_synch): New.
(expand_omp): New.
(build_omp_regions_1): New.
(build_omp_regions): New.
(execute_expand_omp): New.
(gate_expand_omp): New.
(pass_expand_omp): Define.
(lower_omp_sections): Rename from expand_omp_sections.
Set OMP_SECTIONS_SECTIONS.
(lower_omp_single_simple): Rename from expand_omp_single_simple.
(lower_omp_single_copy): Rename from expand_omp_single_copy.
(lower_omp_single): Rename from expand_omp_simple.
(lower_omp_master): Rename from expand_omp_master.
(lower_omp_ordered): Rename from expand_omp_ordered.
(lower_omp_critical): Rename from expand_omp_critical.
(lower_omp_for_lastprivate): Rename from expand_omp_for_lastprivate.
(lower_omp_for): Re-implement.
(lower_omp_parallel): Re-implement.
(lower_regimplify): Rename from expand_regimplify.
(lower_omp_1): Rename from expand_omp_1.
If there are syntax errors in the program, replace every
OpenMP directive with NOP.
Call lower_omp_* instead of expand_omp_*.
(lower_omp): Rename from expand_omp.
* tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN_EXPR.
* tree-gimple.h (enum omp_parallel_type): Remove.
(gimple_boolify): Declare extern.
(find_omp_clause, determine_parallel_type): Remove.
* gimple-low.c (lower_omp_directive): New.
(lower_stmt): Call it.
(record_vars_into): Move from ...
(record_vars): ... here.
Call record_vars_into with current_function_decl.
* gimplify.c (struct gimplify_ctx): Remove fields
combined_pre_p and combined_ctxp. Update users.
(get_formal_tmp_var): Add documentation.
(gimple_boolify): Make extern.
(gimplify_expr_in_ctx): Remove. Update callers.
(gimplify_omp_parallel): Do not assume that OMP_PARALLEL_BODY
will always be a BIND_EXPR.
(gimplify_expr): Handle OMP_RETURN_EXPR.
* tree.def (BLOCK): Remove documentation about BLOCK_TYPE_TAGS.
(OMP_PARALLEL): Add 3 operands.
(OMP_SECTIONS): Add 1 operand.
(OMP_RETURN_EXPR): Define.
* tree-inline.c (estimate_num_insns_1): Handle OpenMP directives.
(copy_tree_r): Restore TREE_CHAIN in OMP_CLAUSE_*.
* tree-iterator.c (alloc_stmt_list): Assert that we are not
creating a circular free list.
(free_stmt_list): Assert that we are not freeing stmt_list_cache.
* tree-flow.h (move_sese_region_to_fn): Declare.
(record_vars_into): Declare.
* tree-cfg.c (make_omp_sections_edges): New.
(make_exit_edges): Handle OMP_PARALLEL, OMP_FOR, OMP_SINGLE,
OMP_MASTER, OMP_ORDERED, OMP_CRITICAL, OMP_RETURN_EXPR,
OMP_SECTIONS and OMP_SECTION.
(is_ctrl_altering_stmt): Return true for OMP_DIRECTIVE_P.
(set_bb_for_stmt): Undo change to check currently_expanding_to_rtl.
(verify_stmt): Do not handle OMP_DIRECTIVE_P.
(gather_blocks_in_sese_region): New.
(struct move_stmt_d): Declare.
(move_stmt_r): New.
(move_block_to_fn): New.
(move_sese_region_to_fn): New.
* passes.c (init_optimization_passes): Schedule
pass_expand_omp after pass_init_datastructures.
* tree-ssa-operands.c (get_expr_operands): Handle
OMP_PARALLEL, OMP_SECTIONS, OMP_FOR, OMP_RETURN_EXPR,
OMP_SINGLE, OMP_MASTER, OMP_ORDERED, OMP_CRITICAL.
testsuite/
* testsuite/gcc.dg/gomp/for-13.c: Use -fdump-tree-ompexp.
* testsuite/gcc.dg/gomp/critical-1.c: Likewise.
* testsuite/gcc.dg/gomp/critical-3.c: Likewise.
* testsuite/gcc.dg/gomp/empty.c: Likewise.
* testsuite/gcc.dg/gomp/ordered-1.c: Likewise.
* testsuite/gcc.dg/gomp/for-4.c: Likewise.
* testsuite/gcc.dg/gomp/for-6.c: Likewise.
* testsuite/gcc.dg/gomp/master-3.c: Likewise.
* testsuite/gcc.dg/gomp/for-8.c: Likewise.
* testsuite/gcc.dg/gomp/for-10.c: Likewise.
* testsuite/gcc.dg/gomp/for-18.c: Likewise.
* testsuite/gcc.dg/gomp/for-5.c: Likewise.
* testsuite/gcc.dg/gomp/for-7.c: Likewise.
* testsuite/gcc.dg/gomp/for-9.c: Likewise.
From-SVN: r109969
2006-01-19 17:55:52 +01:00
|
|
|
|
2006-01-19 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
* tree-pretty-print.c (dump_generic_node): Handle
|
|
|
|
|
OMP_PARALLEL_FN, OMP_PARALLEL_DATA_ARG and OMP_RETURN_EXPR.
|
|
|
|
|
* cgraph.c (cgraph_expand_queue): Rename from
|
|
|
|
|
cgraph_analyze_queue. Update all users.
|
|
|
|
|
* cgraphunit.c (cgraph_assemble_pending_functions): Process
|
|
|
|
|
cgraph_expand_queue.
|
|
|
|
|
(cgraph_expand_all_functions): Likewise.
|
|
|
|
|
(cgraph_finalize_pending_functions): Remove. Update callers.
|
|
|
|
|
|
|
|
|
|
* tree.h (OMP_DIRECTIVE_P): Define.
|
|
|
|
|
(OMP_PARALLEL_FN): Define.
|
|
|
|
|
(OMP_PARALLEL_DATA_ARG): Define.
|
|
|
|
|
(OMP_SECTIONS_SECTIONS): Define.
|
|
|
|
|
* tree-pass.h (pass_expand_omp): Declare.
|
|
|
|
|
* omp-low.c (struct omp_region): Declare.
|
|
|
|
|
(struct omp_context): Remove fields 'parallel_type',
|
|
|
|
|
'parallel_start_ix' and 'parallel_start_additional_args'.
|
|
|
|
|
Update all users.
|
|
|
|
|
(struct omp_for_data): Rename from struct expand_omp_for_data.
|
|
|
|
|
(omp_regions): New static variable.
|
|
|
|
|
(root_omp_region): New static variable.
|
|
|
|
|
(find_omp_clause): Make static.
|
|
|
|
|
(is_in_combined_parallel_ctx): Remove.
|
|
|
|
|
(is_combined_parallel): New.
|
|
|
|
|
(extract_omp_for_data): Move earlier in the file.
|
|
|
|
|
(workshare_safe_to_combine_p): New.
|
|
|
|
|
(get_ws_args_for): New.
|
|
|
|
|
(determine_parallel_type): Move earlier in the file.
|
|
|
|
|
(omp_copy_decl_2): Do not set DECL_CONTEXT of new local to the
|
|
|
|
|
child function.
|
|
|
|
|
(omp_copy_decl): Likewise.
|
|
|
|
|
(create_omp_child_function): Likewise.
|
|
|
|
|
(lookup_omp_region): New.
|
|
|
|
|
(dump_omp_region): New.
|
|
|
|
|
(debug_omp_region): New.
|
|
|
|
|
(debug_all_omp_regions): New.
|
|
|
|
|
(new_omp_region): New.
|
|
|
|
|
(scan_omp_parallel): If parallel_nesting_level > 1, the
|
|
|
|
|
directive is nested within another parallel directive.
|
|
|
|
|
Set OMP_PARALLEL_FN.
|
|
|
|
|
(scan_omp_for): Do not try to handle combined parallel+for
|
|
|
|
|
cases.
|
|
|
|
|
Remove FIXME comment.
|
|
|
|
|
(scan_omp_nested): Remove.
|
|
|
|
|
(scan_omp_1): Do not call scan_omp_nested when
|
|
|
|
|
parallel_nesting_level is > 1.
|
|
|
|
|
Do not change the DECL_CONTEXT of local variables found.
|
|
|
|
|
(lookup_decl_in_outer_ctx): New.
|
|
|
|
|
(lower_rec_input_clauses): Rename from expand_rec_input_clauses.
|
|
|
|
|
(lower_lastprivate_clauses): Rename from expand_lastprivate_clauses.
|
|
|
|
|
(lower_reduction_clauses): Rename from expand_reduction_clauses.
|
|
|
|
|
(lower_copyprivate_clauses): Rename from expand_copyprivate_clauses.
|
|
|
|
|
If CTX is nested, lookup VAR in the outer context when
|
|
|
|
|
building copy assignment.
|
|
|
|
|
(lower_send_clauses): Rename from expand_send_clauses.
|
|
|
|
|
If CTX is nested, lookup VAR in the outer context when
|
|
|
|
|
building copy assignments.
|
|
|
|
|
(lower_send_shared_vars): Rename from expand_send_shared_vars.
|
|
|
|
|
If CTX is nested, lookup VAR in the outer context when
|
|
|
|
|
building copy assignments.
|
|
|
|
|
(expand_parallel_call): Rename from build_parallel_call.
|
|
|
|
|
Handle combined parallel+workshare cases.
|
|
|
|
|
Re-implement to emit code into the CFG.
|
|
|
|
|
(list2chain): New.
|
|
|
|
|
(expand_omp_parallel): Re-implement to emit code into the CFG.
|
|
|
|
|
Call move_sese_region_to_fn to outline the sub-graph
|
|
|
|
|
containing the parallel region.
|
|
|
|
|
(expand_omp_for_1): Remove.
|
|
|
|
|
(expand_omp_for_generic): Re-implement to emit code into the
|
|
|
|
|
CFG.
|
|
|
|
|
(expand_omp_for_static_nochunk): Likewise.
|
|
|
|
|
(expand_omp_for_static_chunk): Likewise.
|
|
|
|
|
(expand_omp_for): Likewise.
|
|
|
|
|
(expand_omp_sections): Likewise.
|
|
|
|
|
(remove_exit_barriers): New.
|
|
|
|
|
(expand_omp_synch): New.
|
|
|
|
|
(expand_omp): New.
|
|
|
|
|
(build_omp_regions_1): New.
|
|
|
|
|
(build_omp_regions): New.
|
|
|
|
|
(execute_expand_omp): New.
|
|
|
|
|
(gate_expand_omp): New.
|
|
|
|
|
(pass_expand_omp): Define.
|
|
|
|
|
(lower_omp_sections): Rename from expand_omp_sections.
|
|
|
|
|
Set OMP_SECTIONS_SECTIONS.
|
|
|
|
|
(lower_omp_single_simple): Rename from expand_omp_single_simple.
|
|
|
|
|
(lower_omp_single_copy): Rename from expand_omp_single_copy.
|
|
|
|
|
(lower_omp_single): Rename from expand_omp_simple.
|
|
|
|
|
(lower_omp_master): Rename from expand_omp_master.
|
|
|
|
|
(lower_omp_ordered): Rename from expand_omp_ordered.
|
|
|
|
|
(lower_omp_critical): Rename from expand_omp_critical.
|
|
|
|
|
(lower_omp_for_lastprivate): Rename from expand_omp_for_lastprivate.
|
|
|
|
|
(lower_omp_for): Re-implement.
|
|
|
|
|
(lower_omp_parallel): Re-implement.
|
|
|
|
|
(lower_regimplify): Rename from expand_regimplify.
|
|
|
|
|
(lower_omp_1): Rename from expand_omp_1.
|
|
|
|
|
If there are syntax errors in the program, replace every
|
|
|
|
|
OpenMP directive with NOP.
|
|
|
|
|
Call lower_omp_* instead of expand_omp_*.
|
|
|
|
|
(lower_omp): Rename from expand_omp.
|
|
|
|
|
|
|
|
|
|
* tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN_EXPR.
|
|
|
|
|
* tree-gimple.h (enum omp_parallel_type): Remove.
|
|
|
|
|
(gimple_boolify): Declare extern.
|
|
|
|
|
(find_omp_clause, determine_parallel_type): Remove.
|
|
|
|
|
|
|
|
|
|
* gimple-low.c (lower_omp_directive): New.
|
|
|
|
|
(lower_stmt): Call it.
|
|
|
|
|
(record_vars_into): Move from ...
|
|
|
|
|
(record_vars): ... here.
|
|
|
|
|
Call record_vars_into with current_function_decl.
|
|
|
|
|
|
|
|
|
|
* gimplify.c (struct gimplify_ctx): Remove fields
|
|
|
|
|
combined_pre_p and combined_ctxp. Update users.
|
|
|
|
|
(get_formal_tmp_var): Add documentation.
|
|
|
|
|
(gimple_boolify): Make extern.
|
|
|
|
|
(gimplify_expr_in_ctx): Remove. Update callers.
|
|
|
|
|
(gimplify_omp_parallel): Do not assume that OMP_PARALLEL_BODY
|
|
|
|
|
will always be a BIND_EXPR.
|
|
|
|
|
(gimplify_expr): Handle OMP_RETURN_EXPR.
|
|
|
|
|
* tree.def (BLOCK): Remove documentation about BLOCK_TYPE_TAGS.
|
|
|
|
|
(OMP_PARALLEL): Add 3 operands.
|
|
|
|
|
(OMP_SECTIONS): Add 1 operand.
|
|
|
|
|
(OMP_RETURN_EXPR): Define.
|
|
|
|
|
|
|
|
|
|
* tree-inline.c (estimate_num_insns_1): Handle OpenMP directives.
|
|
|
|
|
(copy_tree_r): Restore TREE_CHAIN in OMP_CLAUSE_*.
|
|
|
|
|
* tree-iterator.c (alloc_stmt_list): Assert that we are not
|
|
|
|
|
creating a circular free list.
|
|
|
|
|
(free_stmt_list): Assert that we are not freeing stmt_list_cache.
|
|
|
|
|
|
|
|
|
|
* tree-flow.h (move_sese_region_to_fn): Declare.
|
|
|
|
|
(record_vars_into): Declare.
|
|
|
|
|
* tree-cfg.c (make_omp_sections_edges): New.
|
|
|
|
|
(make_exit_edges): Handle OMP_PARALLEL, OMP_FOR, OMP_SINGLE,
|
|
|
|
|
OMP_MASTER, OMP_ORDERED, OMP_CRITICAL, OMP_RETURN_EXPR,
|
|
|
|
|
OMP_SECTIONS and OMP_SECTION.
|
|
|
|
|
(is_ctrl_altering_stmt): Return true for OMP_DIRECTIVE_P.
|
|
|
|
|
(set_bb_for_stmt): Undo change to check currently_expanding_to_rtl.
|
|
|
|
|
(verify_stmt): Do not handle OMP_DIRECTIVE_P.
|
|
|
|
|
(gather_blocks_in_sese_region): New.
|
|
|
|
|
(struct move_stmt_d): Declare.
|
|
|
|
|
(move_stmt_r): New.
|
|
|
|
|
(move_block_to_fn): New.
|
|
|
|
|
(move_sese_region_to_fn): New.
|
|
|
|
|
|
|
|
|
|
* passes.c (init_optimization_passes): Schedule
|
|
|
|
|
pass_expand_omp after pass_init_datastructures.
|
|
|
|
|
|
|
|
|
|
* tree-ssa-operands.c (get_expr_operands): Handle
|
|
|
|
|
OMP_PARALLEL, OMP_SECTIONS, OMP_FOR, OMP_RETURN_EXPR,
|
|
|
|
|
OMP_SINGLE, OMP_MASTER, OMP_ORDERED, OMP_CRITICAL.
|
|
|
|
|
|
2006-01-19 17:30:59 +01:00
|
|
|
|
2006-01-19 Jeff Law <law@redhat.com>
|
|
|
|
|
|
|
|
|
|
* tree-vrp.c (extract_range_from_assert): Refine the result range
|
|
|
|
|
if the variable referenced by the ASSERT_EXPR has a range and
|
2006-01-23 16:14:53 +01:00
|
|
|
|
either the tentative result range or the previous range is a
|
2006-01-19 17:30:59 +01:00
|
|
|
|
VR_ANTI_RANGE.
|
|
|
|
|
|
2006-01-19 17:28:31 +01:00
|
|
|
|
2006-01-19 Richard Sandiford <richard@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* c-decl.c (add_flexible_array_elts_to_size): Simplify vector accesses.
|
|
|
|
|
|
2006-01-19 16:04:46 +01:00
|
|
|
|
2006-01-19 Jan Hubicka <jh@suse.cz>
|
|
|
|
|
|
|
|
|
|
* tree-vect-patterns.c (vect_pattern_recog_1): Prevent parse error.
|
|
|
|
|
|
2006-01-19 15:54:57 +01:00
|
|
|
|
2006-01-19 Paolo Bonzini <bonzini@gnu.org>
|
|
|
|
|
|
|
|
|
|
* combine.c (try_combine): Do not worry about MEMs wrapped by USEs.
|
|
|
|
|
(expand_compound_operation, expand_field_assignment): Fail if the
|
|
|
|
|
bit lengths of an extract operation are out of range.
|
|
|
|
|
(make_extraction): Compute wanted_inner_mode based on the position
|
|
|
|
|
and length of the extraction. Make it extraction_mode for non-constant
|
|
|
|
|
positions, and do not modify offset in that case. When generating a
|
|
|
|
|
new MEM, use a mode that can hold the extraction while keeping correct
|
|
|
|
|
alignment. Remove code that supported MEMs wrapped by USEs.
|
|
|
|
|
(simplify_shift_const_1, force_to_mode) <case USE>: Remove.
|
|
|
|
|
|
s390.md ("Y", "y"): New mode attribute.
2006-01-19 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/s390.md ("Y", "y"): New mode attribute.
("*cmpdi_ccs", "*cmpsi_ccs", "*adddi3_imm_cc", "*adddi3_carry1_cc",
"*adddi3_carry1_cconly", "*adddi3_carry2_cc", "*adddi3_carry2_cconly",
"*adddi3_cc", "*adddi3_cconly", "*adddi3_cconly2", "*adddi3_64",
"*addsi3_imm_cc", "*addsi3_carry1_cc",
"*addsi3_carry1_cconly", "*addsi3_carry2_cc", "*addsi3_carr2_cconly",
"*addsi3_cc", "*addsi3_cconly", "*addsi3_cconly2",
"*subdi3_borrow_cc", "*subdi3_borrow_cconly", "*subdi3_cc",
"*subdi3_cc2", "*subdi3_cconly", "*subdi3_cconly2", "*subdi3_64",
"*subsi3_borrow_cc", "*subsi3_borrow_cconly", "*subsi3_cc",
"*subsi3_cc2", "*subsi3_cconly", "*subsi3_cconly", "*subsi3_cconly2",
"addsi3", "subsi3"): Insn patterns removed.
("*add<mode>3_carry1_cc", "*add<mode>3_carry1_cconly",
"*add<mode>3_carry2_cc", "*add<mode>3_carry2_cconly", "*add<mode>3_cc",
"*add<mode>3_cconly", "*add<mode>3_cconly2", "*add<mode>3_imm_cc",
"*sub<mode>3_borrow_cc", "*sub<mode>3_borrow_cconly",
"*sub<mode>3_cc", "*sub<mode>3_cc2", "*sub<mode>3_cconly",
"*sub<mode>3_cconly2"): New insn patterns.
("addsi3", "subsi3"): New expanders.
From-SVN: r109957
2006-01-19 15:28:01 +01:00
|
|
|
|
2006-01-19 Andreas Krebbel <krebbel1@de.ibm.com>
|
|
|
|
|
|
|
|
|
|
* config/s390/s390.md ("Y", "y"): New mode attribute.
|
2006-01-23 16:14:53 +01:00
|
|
|
|
("*cmpdi_ccs", "*cmpsi_ccs", "*adddi3_imm_cc", "*adddi3_carry1_cc",
|
s390.md ("Y", "y"): New mode attribute.
2006-01-19 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/s390.md ("Y", "y"): New mode attribute.
("*cmpdi_ccs", "*cmpsi_ccs", "*adddi3_imm_cc", "*adddi3_carry1_cc",
"*adddi3_carry1_cconly", "*adddi3_carry2_cc", "*adddi3_carry2_cconly",
"*adddi3_cc", "*adddi3_cconly", "*adddi3_cconly2", "*adddi3_64",
"*addsi3_imm_cc", "*addsi3_carry1_cc",
"*addsi3_carry1_cconly", "*addsi3_carry2_cc", "*addsi3_carr2_cconly",
"*addsi3_cc", "*addsi3_cconly", "*addsi3_cconly2",
"*subdi3_borrow_cc", "*subdi3_borrow_cconly", "*subdi3_cc",
"*subdi3_cc2", "*subdi3_cconly", "*subdi3_cconly2", "*subdi3_64",
"*subsi3_borrow_cc", "*subsi3_borrow_cconly", "*subsi3_cc",
"*subsi3_cc2", "*subsi3_cconly", "*subsi3_cconly", "*subsi3_cconly2",
"addsi3", "subsi3"): Insn patterns removed.
("*add<mode>3_carry1_cc", "*add<mode>3_carry1_cconly",
"*add<mode>3_carry2_cc", "*add<mode>3_carry2_cconly", "*add<mode>3_cc",
"*add<mode>3_cconly", "*add<mode>3_cconly2", "*add<mode>3_imm_cc",
"*sub<mode>3_borrow_cc", "*sub<mode>3_borrow_cconly",
"*sub<mode>3_cc", "*sub<mode>3_cc2", "*sub<mode>3_cconly",
"*sub<mode>3_cconly2"): New insn patterns.
("addsi3", "subsi3"): New expanders.
From-SVN: r109957
2006-01-19 15:28:01 +01:00
|
|
|
|
"*adddi3_carry1_cconly", "*adddi3_carry2_cc", "*adddi3_carry2_cconly",
|
2006-01-23 16:14:53 +01:00
|
|
|
|
"*adddi3_cc", "*adddi3_cconly", "*adddi3_cconly2", "*adddi3_64",
|
|
|
|
|
"*addsi3_imm_cc", "*addsi3_carry1_cc",
|
s390.md ("Y", "y"): New mode attribute.
2006-01-19 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/s390.md ("Y", "y"): New mode attribute.
("*cmpdi_ccs", "*cmpsi_ccs", "*adddi3_imm_cc", "*adddi3_carry1_cc",
"*adddi3_carry1_cconly", "*adddi3_carry2_cc", "*adddi3_carry2_cconly",
"*adddi3_cc", "*adddi3_cconly", "*adddi3_cconly2", "*adddi3_64",
"*addsi3_imm_cc", "*addsi3_carry1_cc",
"*addsi3_carry1_cconly", "*addsi3_carry2_cc", "*addsi3_carr2_cconly",
"*addsi3_cc", "*addsi3_cconly", "*addsi3_cconly2",
"*subdi3_borrow_cc", "*subdi3_borrow_cconly", "*subdi3_cc",
"*subdi3_cc2", "*subdi3_cconly", "*subdi3_cconly2", "*subdi3_64",
"*subsi3_borrow_cc", "*subsi3_borrow_cconly", "*subsi3_cc",
"*subsi3_cc2", "*subsi3_cconly", "*subsi3_cconly", "*subsi3_cconly2",
"addsi3", "subsi3"): Insn patterns removed.
("*add<mode>3_carry1_cc", "*add<mode>3_carry1_cconly",
"*add<mode>3_carry2_cc", "*add<mode>3_carry2_cconly", "*add<mode>3_cc",
"*add<mode>3_cconly", "*add<mode>3_cconly2", "*add<mode>3_imm_cc",
"*sub<mode>3_borrow_cc", "*sub<mode>3_borrow_cconly",
"*sub<mode>3_cc", "*sub<mode>3_cc2", "*sub<mode>3_cconly",
"*sub<mode>3_cconly2"): New insn patterns.
("addsi3", "subsi3"): New expanders.
From-SVN: r109957
2006-01-19 15:28:01 +01:00
|
|
|
|
"*addsi3_carry1_cconly", "*addsi3_carry2_cc", "*addsi3_carr2_cconly",
|
|
|
|
|
"*addsi3_cc", "*addsi3_cconly", "*addsi3_cconly2",
|
2006-01-23 16:14:53 +01:00
|
|
|
|
"*subdi3_borrow_cc", "*subdi3_borrow_cconly", "*subdi3_cc",
|
s390.md ("Y", "y"): New mode attribute.
2006-01-19 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/s390.md ("Y", "y"): New mode attribute.
("*cmpdi_ccs", "*cmpsi_ccs", "*adddi3_imm_cc", "*adddi3_carry1_cc",
"*adddi3_carry1_cconly", "*adddi3_carry2_cc", "*adddi3_carry2_cconly",
"*adddi3_cc", "*adddi3_cconly", "*adddi3_cconly2", "*adddi3_64",
"*addsi3_imm_cc", "*addsi3_carry1_cc",
"*addsi3_carry1_cconly", "*addsi3_carry2_cc", "*addsi3_carr2_cconly",
"*addsi3_cc", "*addsi3_cconly", "*addsi3_cconly2",
"*subdi3_borrow_cc", "*subdi3_borrow_cconly", "*subdi3_cc",
"*subdi3_cc2", "*subdi3_cconly", "*subdi3_cconly2", "*subdi3_64",
"*subsi3_borrow_cc", "*subsi3_borrow_cconly", "*subsi3_cc",
"*subsi3_cc2", "*subsi3_cconly", "*subsi3_cconly", "*subsi3_cconly2",
"addsi3", "subsi3"): Insn patterns removed.
("*add<mode>3_carry1_cc", "*add<mode>3_carry1_cconly",
"*add<mode>3_carry2_cc", "*add<mode>3_carry2_cconly", "*add<mode>3_cc",
"*add<mode>3_cconly", "*add<mode>3_cconly2", "*add<mode>3_imm_cc",
"*sub<mode>3_borrow_cc", "*sub<mode>3_borrow_cconly",
"*sub<mode>3_cc", "*sub<mode>3_cc2", "*sub<mode>3_cconly",
"*sub<mode>3_cconly2"): New insn patterns.
("addsi3", "subsi3"): New expanders.
From-SVN: r109957
2006-01-19 15:28:01 +01:00
|
|
|
|
"*subdi3_cc2", "*subdi3_cconly", "*subdi3_cconly2", "*subdi3_64",
|
|
|
|
|
"*subsi3_borrow_cc", "*subsi3_borrow_cconly", "*subsi3_cc",
|
|
|
|
|
"*subsi3_cc2", "*subsi3_cconly", "*subsi3_cconly", "*subsi3_cconly2",
|
|
|
|
|
"addsi3", "subsi3"): Insn patterns removed.
|
|
|
|
|
("*add<mode>3_carry1_cc", "*add<mode>3_carry1_cconly",
|
|
|
|
|
"*add<mode>3_carry2_cc", "*add<mode>3_carry2_cconly", "*add<mode>3_cc",
|
|
|
|
|
"*add<mode>3_cconly", "*add<mode>3_cconly2", "*add<mode>3_imm_cc",
|
|
|
|
|
"*sub<mode>3_borrow_cc", "*sub<mode>3_borrow_cconly",
|
2006-01-23 16:14:53 +01:00
|
|
|
|
"*sub<mode>3_cc", "*sub<mode>3_cc2", "*sub<mode>3_cconly",
|
s390.md ("Y", "y"): New mode attribute.
2006-01-19 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/s390.md ("Y", "y"): New mode attribute.
("*cmpdi_ccs", "*cmpsi_ccs", "*adddi3_imm_cc", "*adddi3_carry1_cc",
"*adddi3_carry1_cconly", "*adddi3_carry2_cc", "*adddi3_carry2_cconly",
"*adddi3_cc", "*adddi3_cconly", "*adddi3_cconly2", "*adddi3_64",
"*addsi3_imm_cc", "*addsi3_carry1_cc",
"*addsi3_carry1_cconly", "*addsi3_carry2_cc", "*addsi3_carr2_cconly",
"*addsi3_cc", "*addsi3_cconly", "*addsi3_cconly2",
"*subdi3_borrow_cc", "*subdi3_borrow_cconly", "*subdi3_cc",
"*subdi3_cc2", "*subdi3_cconly", "*subdi3_cconly2", "*subdi3_64",
"*subsi3_borrow_cc", "*subsi3_borrow_cconly", "*subsi3_cc",
"*subsi3_cc2", "*subsi3_cconly", "*subsi3_cconly", "*subsi3_cconly2",
"addsi3", "subsi3"): Insn patterns removed.
("*add<mode>3_carry1_cc", "*add<mode>3_carry1_cconly",
"*add<mode>3_carry2_cc", "*add<mode>3_carry2_cconly", "*add<mode>3_cc",
"*add<mode>3_cconly", "*add<mode>3_cconly2", "*add<mode>3_imm_cc",
"*sub<mode>3_borrow_cc", "*sub<mode>3_borrow_cconly",
"*sub<mode>3_cc", "*sub<mode>3_cc2", "*sub<mode>3_cconly",
"*sub<mode>3_cconly2"): New insn patterns.
("addsi3", "subsi3"): New expanders.
From-SVN: r109957
2006-01-19 15:28:01 +01:00
|
|
|
|
"*sub<mode>3_cconly2"): New insn patterns.
|
|
|
|
|
("addsi3", "subsi3"): New expanders.
|
|
|
|
|
|
Makefile.in (tree-vect-patterns.o): Add rule for new file.
* Makefile.in (tree-vect-patterns.o): Add rule for new file.
* tree-vect-analyze.c (vect_determine_vectorization_factor): Use
existing STMT_VINFO_VECTYPE if available.
(vect_mark_relevant): Add special handling for stmts that are
marked as STMT_VINFO_IN_PATTERN_P.
(vect_analyze_loop): Call vect_pattern_recog.
* tree-vectorizer.c (new_stmt_vec_info): Initialize new fields.
* tree-vectorizer.h (in_pattern_p, related_stmt): New fields in
stmt_info.
(STMT_VINFO_IN_PATTERN_P, STMT_VINFO_RELATED_STMT): New macros.
(vect_recog_func_ptr): New function-pointer type.
* tree-vect-patterns.c: New file.
(vect_recog_widen_sum_pattern, vect_recog_widen_mult_pattern):
(vect_recog_dot_prod_pattern, vect_pattern_recog):
(vect_pattern_recog_1): New functions.
(vect_pattern_recog_funcs): New array of function pointers.
* tree-vectorizer.h (ternary_op): New enum value.
* tree-vect-transform.c (vect_create_epilog_for_reduction): Added
declaration. Revised documentation. Removed redundant dump prints.
Removed redundant argument. Added support for reduction patterns.
(vectorizable_reduction): Added support for reduction patterns.
(vect_transform_stmt): Added support for patterns.
* expr.c (expand_expr_real_1): Added case for DOT_PROD_EXPR.
* genopinit.c (udot_prod_optab, sdot_prod_optab): Initialize.
* optabs.c (optab_for_tree_code): Added case for DOT_PROD_EXPR.
(expand_widen_pattern_expr): New function.
(init_optabs): Initialize new optabs udot_prod_optab,
sdot_prod_optab.
* optabs.h (OTI_sdot_prod, OTI_udot_prod): New.
(sdot_prod_optab, udot_prod_optab): Define new optabs.
(expand_widen_pattern_expr): New function declaration.
* tree.def (DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR): New
tree-codes.
* tree-inline.c (estimate_num_insns_1): Added cases for new
tree-codes DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
* tree-pretty-print.c (dump_generic_node): Likewise.
(op_prio): Likewise.
(op_symbol): Added cases for WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
* tree-ssa-operands.c (get_expr_operands): Added case for
DOT_PROD_EXPR.
* tree-vect-patterns.c (widened_name_p): New function.
(vect_recog_dot_prod_pattern): Added function implementation.
* tree-vect-transform.c (get_initial_def_for_reduction): Added
cases for DOT_PROD_EXPR, WIDEN_SUM_EXPR.
* config/rs6000/altivec.md (udot_prod<mode>, sdot_prodv8hi): New.
* config/i386/sse.md (sdot_prodv8hi, udot_prodv4si): New.
* expr.c (expand_expr_real_1): Added case for WIDEN_SUM_EXPR.
* genopinit.c (widen_ssum_optab, widen_usum_optab): Initialize.
* optabs.c (optab_for_tree_code): Added case for WIDEN_SUM_EXPR.
(init_optabs): Initialize new optabs widen_ssum_optab,
widen_usum_optab.
* optabs.h (OTI_widen_ssum, OTI_widen_usum): New.
(widen_ssum_optab, widen_usum_optab): Define new optabs.
* tree-vect-generic.c: (expand_vector_operations_1): Check type of
use instead of type of def.
* tree-vect-patterns.c (vect_recog_widen_sum_pattern): Added
function implementation.
* config/rs6000/altivec.md (widen_usum<mode>, widen_ssumv16qi,
widen_ssumv8hi): New.
* doc/tm.texi (ssum_widen, usum_widen, sdot_prod, udot_prod): New
patterns.
From-SVN: r109954
2006-01-19 11:24:00 +01:00
|
|
|
|
2006-01-19 Dorit Nuzman <dorit@il.ibm.com>
|
|
|
|
|
|
|
|
|
|
* Makefile.in (tree-vect-patterns.o): Add rule for new file.
|
|
|
|
|
* tree-vect-analyze.c (vect_determine_vectorization_factor): Use
|
|
|
|
|
existing STMT_VINFO_VECTYPE if available.
|
|
|
|
|
(vect_mark_relevant): Add special handling for stmts that are
|
|
|
|
|
marked as STMT_VINFO_IN_PATTERN_P.
|
|
|
|
|
(vect_analyze_loop): Call vect_pattern_recog.
|
|
|
|
|
* tree-vectorizer.c (new_stmt_vec_info): Initialize new fields.
|
|
|
|
|
* tree-vectorizer.h (in_pattern_p, related_stmt): New fields in
|
|
|
|
|
stmt_info.
|
|
|
|
|
(STMT_VINFO_IN_PATTERN_P, STMT_VINFO_RELATED_STMT): New macros.
|
|
|
|
|
(vect_recog_func_ptr): New function-pointer type.
|
|
|
|
|
* tree-vect-patterns.c: New file.
|
|
|
|
|
(vect_recog_widen_sum_pattern, vect_recog_widen_mult_pattern):
|
|
|
|
|
(vect_recog_dot_prod_pattern, vect_pattern_recog):
|
|
|
|
|
(vect_pattern_recog_1): New functions.
|
|
|
|
|
(vect_pattern_recog_funcs): New array of function pointers.
|
|
|
|
|
|
|
|
|
|
* tree-vectorizer.h (ternary_op): New enum value.
|
|
|
|
|
* tree-vect-transform.c (vect_create_epilog_for_reduction): Added
|
|
|
|
|
declaration. Revised documentation. Removed redundant dump prints.
|
|
|
|
|
Removed redundant argument. Added support for reduction patterns.
|
|
|
|
|
(vectorizable_reduction): Added support for reduction patterns.
|
|
|
|
|
(vect_transform_stmt): Added support for patterns.
|
|
|
|
|
|
|
|
|
|
* expr.c (expand_expr_real_1): Added case for DOT_PROD_EXPR.
|
|
|
|
|
* genopinit.c (udot_prod_optab, sdot_prod_optab): Initialize.
|
|
|
|
|
* optabs.c (optab_for_tree_code): Added case for DOT_PROD_EXPR.
|
|
|
|
|
(expand_widen_pattern_expr): New function.
|
|
|
|
|
(init_optabs): Initialize new optabs udot_prod_optab,
|
|
|
|
|
sdot_prod_optab.
|
|
|
|
|
* optabs.h (OTI_sdot_prod, OTI_udot_prod): New.
|
|
|
|
|
(sdot_prod_optab, udot_prod_optab): Define new optabs.
|
|
|
|
|
(expand_widen_pattern_expr): New function declaration.
|
|
|
|
|
* tree.def (DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR): New
|
|
|
|
|
tree-codes.
|
|
|
|
|
* tree-inline.c (estimate_num_insns_1): Added cases for new
|
|
|
|
|
tree-codes DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
|
|
|
|
|
* tree-pretty-print.c (dump_generic_node): Likewise.
|
|
|
|
|
(op_prio): Likewise.
|
|
|
|
|
(op_symbol): Added cases for WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
|
|
|
|
|
* tree-ssa-operands.c (get_expr_operands): Added case for
|
|
|
|
|
DOT_PROD_EXPR.
|
|
|
|
|
* tree-vect-patterns.c (widened_name_p): New function.
|
|
|
|
|
(vect_recog_dot_prod_pattern): Added function implementation.
|
|
|
|
|
* tree-vect-transform.c (get_initial_def_for_reduction): Added
|
|
|
|
|
cases for DOT_PROD_EXPR, WIDEN_SUM_EXPR.
|
|
|
|
|
* config/rs6000/altivec.md (udot_prod<mode>, sdot_prodv8hi): New.
|
|
|
|
|
* config/i386/sse.md (sdot_prodv8hi, udot_prodv4si): New.
|
|
|
|
|
|
|
|
|
|
* expr.c (expand_expr_real_1): Added case for WIDEN_SUM_EXPR.
|
|
|
|
|
* genopinit.c (widen_ssum_optab, widen_usum_optab): Initialize.
|
|
|
|
|
* optabs.c (optab_for_tree_code): Added case for WIDEN_SUM_EXPR.
|
|
|
|
|
(init_optabs): Initialize new optabs widen_ssum_optab,
|
|
|
|
|
widen_usum_optab.
|
|
|
|
|
* optabs.h (OTI_widen_ssum, OTI_widen_usum): New.
|
|
|
|
|
(widen_ssum_optab, widen_usum_optab): Define new optabs.
|
|
|
|
|
* tree-vect-generic.c: (expand_vector_operations_1): Check type of
|
|
|
|
|
use instead of type of def.
|
|
|
|
|
* tree-vect-patterns.c (vect_recog_widen_sum_pattern): Added
|
|
|
|
|
function implementation.
|
|
|
|
|
* config/rs6000/altivec.md (widen_usum<mode>, widen_ssumv16qi,
|
|
|
|
|
widen_ssumv8hi): New.
|
|
|
|
|
|
|
|
|
|
* doc/tm.texi (ssum_widen, usum_widen, sdot_prod, udot_prod): New
|
|
|
|
|
patterns.
|
|
|
|
|
|
2006-01-19 08:35:47 +01:00
|
|
|
|
2006-01-19 Richard Sandiford <richard@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c/25805
|
|
|
|
|
* c-decl.c (add_flexible_array_elts_to_size): New function.
|
|
|
|
|
(finish_decl): Use it.
|
|
|
|
|
|
2006-01-19 05:24:22 +01:00
|
|
|
|
2006-01-18 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
|
|
* diagnostic.h: Include options.h.
|
|
|
|
|
* config/rs6000/x-darwin (host-ppc-darwin.o): Correct the
|
|
|
|
|
dependancies for diagnostic.h.
|
|
|
|
|
* Makefile.in (DIAGNOSTIC_H): Add options.h.
|
|
|
|
|
|
2006-01-19 02:42:48 +01:00
|
|
|
|
2006-01-16 Daniel Berlin <dberlin@dberlin.org>
|
|
|
|
|
|
|
|
|
|
* tree-ssa-operands.h (ssa_call_clobbered_cache_valid): Remove.
|
|
|
|
|
(ssa_ro_call_cache_valid): Ditto.
|
|
|
|
|
* tree-ssa-alias.c (sort_tags_by_id): New function.
|
|
|
|
|
(init_transitive_clobber_worklist): Ditto.
|
|
|
|
|
(add_to_worklist): Ditto.
|
|
|
|
|
(mark_aliases_call_clobbered): Ditto.
|
|
|
|
|
(compute_tag_properties): Ditto.
|
|
|
|
|
(set_initial_properties): Ditto.
|
|
|
|
|
(compute_call_clobbered): Ditto.
|
|
|
|
|
(compute_may_aliases): Call compute_call_clobbered and grouping.
|
|
|
|
|
(compute_flow_sensitive_aliasing): Remove clobbering related code.
|
|
|
|
|
(compute_flow_insensitive_aliasing): Grouping now happens in our
|
|
|
|
|
caller.
|
|
|
|
|
(setup_pointers_and_addressables): Remove clobbering related code.
|
|
|
|
|
(add_may_alias): Ditto.
|
|
|
|
|
(replace_may_alias): Ditto.
|
|
|
|
|
(get_nmt_for): Ditto.
|
2006-01-23 16:14:53 +01:00
|
|
|
|
(create_global_var):
|
2006-01-19 02:42:48 +01:00
|
|
|
|
(is_escape_site): Return an escape_type enumeration.
|
|
|
|
|
* tree-flow-inline.h (is_call_clobbered): Global var does not
|
|
|
|
|
imply call clobbered.
|
|
|
|
|
(mark_call_clobbered): Take a reason for marking this. Remove
|
|
|
|
|
marking of globalness, and cache invalidation.
|
|
|
|
|
(clear_call_clobbered): Remove cache invalidation code.
|
|
|
|
|
* tree-dfa.c (dump_variable): If details is on, dump the reason
|
|
|
|
|
for escaping.
|
|
|
|
|
* tree-outof-ssa.c (create_temp): Copy escape mask from original
|
2006-01-23 16:14:53 +01:00
|
|
|
|
variable.
|
2006-01-19 02:42:48 +01:00
|
|
|
|
* tree-flow.h (struct ptr_info_def): Add escape mask member.
|
|
|
|
|
(struct var_ann_d): Ditto.
|
|
|
|
|
(enum escape_type): New.
|
|
|
|
|
(mark_call_clobbered): Adjust prototype.
|
|
|
|
|
* tree-ssa-structalias.c (update_alias_info): Unmodifiable vars
|
2006-01-23 16:14:53 +01:00
|
|
|
|
are never call clobbered.
|
2006-01-19 02:42:48 +01:00
|
|
|
|
Record reasons for escaping.
|
|
|
|
|
* tree-ssa-structalias.h (is_escape_site): Update prototype.
|
|
|
|
|
* tree-ssa-operands.c (ssa_call_clobbered_cache_valid): Remove.
|
|
|
|
|
(ssa_ro_call_cache_valid): Ditto.
|
|
|
|
|
(clobbered_v_may_defs): Ditto.
|
|
|
|
|
(clobbered_vuses): Ditto.
|
|
|
|
|
(ro_call_vuses): Ditto.
|
|
|
|
|
(clobber_stats): New.
|
|
|
|
|
(init_ssa_operands): Zero out clobber stats.
|
|
|
|
|
(fini_ssa_operands): Print out clobber stats.
|
|
|
|
|
(get_call_expr_operands): Pass callee fndecl to
|
|
|
|
|
add_call_read_ops).
|
|
|
|
|
(add_call_clobber_ops): Remove use of cache.
|
|
|
|
|
Add use of PURE_CONST information.
|
|
|
|
|
(add_call_read_ops): Remove use of cache.
|
|
|
|
|
Add use of static not_read information.
|
2006-01-23 16:14:53 +01:00
|
|
|
|
|
2006-01-19 01:40:16 +01:00
|
|
|
|
2006-01-18 Alexandre Oliva <aoliva@redhat.com>
|
|
|
|
|
|
|
|
|
|
Introduce TLS descriptors for i386 and x86_64.
|
|
|
|
|
* config/i386/i386.h (TARGET_GNU2_TLS): New macro.
|
|
|
|
|
(TARGET_ANY_GNU_TLS): New macro.
|
|
|
|
|
(enum tls_dialect): Added TLS_DIALECT_GNU2.
|
|
|
|
|
(struct machine_function): Add tls_descriptor_call_expanded_p.
|
|
|
|
|
(ix86_tls_descriptor_calls_expande_in_cfun): New macro.
|
|
|
|
|
(ix86_current_function_calls_tls_descriptor): Likewise.
|
|
|
|
|
* config/i386/i386.c (ix86_tls_dialect): Fix typo in comment.
|
|
|
|
|
(override_options): Introduce gnu2 tls dialect.
|
|
|
|
|
(ix86_frame_pointer_required): Functions containing TLSCALLs are
|
|
|
|
|
not leaves.
|
|
|
|
|
(ix86_select_alt_pic_regnum, ix86_compute_frame_layout):
|
|
|
|
|
Likewise.
|
|
|
|
|
(legitimize_tls_address): Adjust logic for GNU2 TLS.
|
|
|
|
|
(ix86_init_machine_status): Initialize new field.
|
|
|
|
|
(ix86_tls_get_addr): Use TARGET_ANY_GNU_TLS.
|
|
|
|
|
(ix86_tls_module_base): New.
|
|
|
|
|
* config/i386/i386-protos.h (ix86_tls_module_base): Declare it.
|
|
|
|
|
* config/i386/i386.md (UNSPEC_TLSDESC): New constant.
|
|
|
|
|
(tls_global_dynamic_32, tls_global_dynamic_64): Handle GNU2 TLS.
|
|
|
|
|
(tls_local_dynamic_base_32, tls_local_dynamic_base_64): Likewise.
|
|
|
|
|
(tls_dynamic_gnu2_32, *tls_dynamic_lea_32): New patterns.
|
|
|
|
|
(*tls_dynamic_call_32, *tls_dynamic_gnu2_combine_32): Likewise.
|
|
|
|
|
(tls_dynamic_gnu2_64, *tls_dynamic_lea_64): Likewise.
|
|
|
|
|
(*tls_dynamic_call_64, *tls_dynamic_gnu2_combine_64): Likewise.
|
|
|
|
|
* config/i386/predicates.md (tls_modbase_operand): New.
|
|
|
|
|
(tp_or_register_operand): New.
|
|
|
|
|
|
2006-01-19 01:28:07 +01:00
|
|
|
|
2006-01-18 Daniel Berlin <dberlin@dberlin.org>
|
|
|
|
|
|
|
|
|
|
* ipa-reference.c (check_operand): Allow FUNCTION_DECL.
|
|
|
|
|
(look_for_address_of): Ditto.
|
|
|
|
|
(ipa_init): Walk the function decls.
|
|
|
|
|
(static_execute): Don't set readonly on FUNCTION_DECL's.
|
|
|
|
|
|
2006-01-18 21:42:41 +01:00
|
|
|
|
2006-01-18 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
|
|
* config/i386/i386.md (shift spliter): Fix a a typo in the splitter
|
|
|
|
|
for shifts where the source and destination registers are different.
|
|
|
|
|
|
2006-01-18 21:39:17 +01:00
|
|
|
|
2006-01-18 Paul Brook <paul@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
Merge from csl-arm-branch.
|
|
|
|
|
2005-03-14 Julian Brown <julian@codesourcery.com>
|
|
|
|
|
* config/arm/lib1funcs.asm (ashldi3): Don't define on SymbianOS.
|
|
|
|
|
(aeabi_llsl): Likewise.
|
|
|
|
|
(ashrdi3): Likewise.
|
|
|
|
|
(aeabi_lasr): Likewise.
|
|
|
|
|
(lshrdi3): Likewise.
|
2006-01-23 16:14:53 +01:00
|
|
|
|
(aeabi_llsr): Likewise.
|
2006-01-18 21:39:17 +01:00
|
|
|
|
2005-03-10 Julian Brown <julian@codesourcery.com>
|
|
|
|
|
* config.gcc: Disable shared libgcc for SymbianOS.
|
|
|
|
|
* config/arm/t-symbian (LIB2ADDEH): Include config/arm/pr-support.c.
|
|
|
|
|
|
2006-01-18 21:02:42 +01:00
|
|
|
|
2006-01-18 DJ Delorie <dj@redhat.com>
|
|
|
|
|
|
|
|
|
|
* c-pragma.c (handle_pragma_diagnostic): New.
|
|
|
|
|
(init_pragma): Register it.
|
|
|
|
|
* doc/extend.texi: Document it.
|
|
|
|
|
|
|
|
|
|
* diagnostic.def: Add DK_UNSPECIFIED and DK_IGNORED.
|
|
|
|
|
* diagnostic.h (diagnostic_classify_diagnostic): Declare.
|
|
|
|
|
(diagnostic_context): Add classify_diagnostic[].
|
|
|
|
|
* diagnostic.c (diagnostic_count_diagnostic): Don't count warnings
|
|
|
|
|
as errors if they're overridden to DK_WARNING.
|
|
|
|
|
(diagnostic_initialize): Initialize classify_diagnostic[].
|
|
|
|
|
(diagnostic_set_kind_override): New.
|
|
|
|
|
(diagnostic_report_diagnostic): Check for kind changes.
|
|
|
|
|
* opts.c (common_handle_option): Take lang_mask. Update callers.
|
|
|
|
|
Handle OPT_Werror_.
|
|
|
|
|
* common.opt (Werror=): New.
|
|
|
|
|
* doc/invoke.texi: Document -Werror=*
|
|
|
|
|
|
2006-01-18 20:47:16 +01:00
|
|
|
|
2006-01-18 Jeff Law <law@redhat.com>
|
|
|
|
|
|
|
|
|
|
* tree-vrp.c (test_for_singularity): Correct test for new
|
|
|
|
|
min limit. Use operand_equal_p rather than pointer equality
|
|
|
|
|
for testing if new min/max values are equal.
|
|
|
|
|
|
|
|
|
|
* tree-ssa-propagate.c (substitute_and_fold): Delay simplifications
|
|
|
|
|
using range information until after propagation and folding.
|
|
|
|
|
|
[multiple changes]
2006-01-18 Richard Henderson <rth@redhat.com>
Jakub Jelinek <jakub@redhat.com>
Diego Novillo <dnovillo@redhat.com>
* libgomp: New directory.
* Makefile.def: Add target_module libgomp.
* Makefile.in: Regenerate.
* configure.in (target_libraries): Add target-libgomp.
* configure: Regenerate.
contrib/
2006-01-18 Richard Henderson <rth@redhat.com>
Diego Novillo <dnovillo@redhat.com>
* gcc_update (files_and_dependencies): Add libgomp files.
gcc/
2006-01-18 Richard Henderson <rth@redhat.com>
Aldy Hernandez <aldyh@redhat.com>
Jakub Jelinek <jakub@redhat.com>
Diego Novillo <dnovillo@redhat.com>
* omp-low.c: New file.
* c-omp.c: New file.
2006-01-18 Richard Henderson <rth@redhat.com>
Jakub Jelinek <jakub@redhat.com>
Diego Novillo <dnovillo@redhat.com>
* doc/invoke.texi: Document -fopenmp.
* tree-dump.h (debug_function): Declare.
* hooks.c (hook_bool_tree_bool_false): New function.
(hook_tree_tree_null): Remove.
(hook_tree_tree_tree_null): New.
* hooks.h: Update to match.
* tree-pretty-print.c (debug_tree_chain): New.
(print_generic_expr): Handle TDF_CHAIN.
(dump_generic_node): Handle BLOCK.
Do not abort with incomplete SWITCH_EXPRs.
Do not dump body of an OpenMP directive if TDF_SLIM is given.
<case OMP_PARALLEL, OMP_FOR, OMP_SECTIONS>: Don't
print space after directive name.
<OMP_FOR>: Handle printing OMP_FOR_PRE_BODY.
Handle OMP_MASTER and OMP_ORDERED.
Handle printing of OMP_BODY just in one place, goto
dump_omp_body in the rest of OMP_* nodes that have
OMP_BODY.
Don't handle clause nodes here. Update omp statements to
use dump_omp_clauses.
Handle OMP_SINGLE, OMP_SECTIONS, OMP_SECTION,
OMP_CLAUSE_ORDERED, OMP_CLAUSE_SCHEDULE, OMP_ATOMIC,
OMP_CRITICAL, OMP_CLAUSE_NOWAIT, GOMP_CLAUSE_IF,
GOMP_CLAUSE_NUM_THREADS, GOMP_FOR, GOMP_CLAUSE_SHARED,
GOMP_CLAUSE_FIRSTPRIVATE, GOMP_CLAUSE_LASTPRIVATE,
GOMP_CLAUSE_COPYIN and GOMP_CLAUSE_COPYPRIVATE.
Adjust output for GOMP_PARALLEL.
(dump_omp_clauses): New.
(print_declaration): Dump DECL_VALUE_EXPR.
(op_symbol_1): Split out of op_symbol.
(dumping_stmts): Remove. Update all users.
* cgraph.c (cgraph_analyze_queue): New.
(cgraph_add_new_function): New.
* cgraph.h (cgraph_analyze_queue): Declare.
(cgraph_add_new_function): Declare.
(cgraph_lower_function): Remove.
* tree.c (walk_tree): Walk OMP_CLAUSE_CHAIN of OMP_CLAUSE_*
nodes. Use switch for all nodes, handle most of IS_EXPR_CODE_CLASS
and TYPE_P nodes in its default clause.
(empty_body_p): New.
(tree_range_check_failed): New.
(build5_stat): New.
* tree.h (OMP_CLAUSE_REDUCTION_INIT,
OMP_CLAUSE_REDUCTION_MERGE,
OMP_CLAUSE_REDUCTION_PLACEHOLDER,
OMP_CLAUSE_PRIVATE_DEBUG,
OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE, OMP_FOR_PRE_BODY,
OMP_MASTER_BODY, OMP_ORDERED_BODY OMP_BODY,
OMP_CLAUSES, OMP_CLAUSE_DECL, OMP_CLAUSE_DEFAULT_KIND,
OMP_CLAUSE_CHAIN, OMP_CLAUSE_OUTER_DECL,
OMP_CLAUSE_INNER_DECL, OMP_CLAUSE_NUM_THREADS_EXPR,
OMP_CLAUSE_IF_EXPR, OMP_CLAUSE_SCHEDULE_CHUNK_EXPR,
OMP_CLAUSE_SCHEDULE_CHUNK_SIZE. OMP_PARALLEL_VAR_INIT,
OMP_PARALLEL_VAR_REDUC, OMP_FOR_VAR_INIT,
OMP_FOR_VAR_LAST, OMP_FOR_VAR_REDUC,
OMP_SECTIONS_VAR_INIT, OMP_SECTIONS_VAR_LAST,
OMP_SECTIONS_VAR_REDUC, OMP_CLAUSE_REDUCTION_CODE
OMP_SINGLE_CLAUSES, OMP_SINGLE_BODY,
OMP_CLAUSE_SCHEDULE_CHUNK_SIZE, OMP_SECTION_BODY,
OMP_CRITICAL_NAME, OMP_CRITICAL_BODY): New.
(TREE_RANGE_CHECK): New.
(empty_body_p): Declare.
(enum omp_clause_default_kind): New.
(build_string_literal): Declare.
(enum omp_clause_schedule_kind, OMP_CLAUSE_SCHEDULE_KIND): New.
(build5_stat, build5): Declare.
* tree-pass.h (TDF_CHAIN): Define.
* tree-pass.h (PROP_gimple_lomp): Define.
(pass_lower_omp): Declare.
* diagnostic.h (debug_tree_chain): Declare.
* builtins.c (get_builtin_sync_mode): Use 0 as last argument to
mode_for_size.
(expand_builtin): Handle sync BUILT_IN_*_16 builtins.
* builtins.c (build_string_literal): Make extern.
* gcc.c (include_spec_function): New.
(static_spec_functions): Add it.
(main): Move load of libgomp.spec ...
(LINK_COMMAND_SPEC): ... here.
(link_gomp_spec): New.
(static_specs): Include it.
(LINK_COMMAND_SPEC): Add link_gomp.
(GOMP_SELF_SPECS): New.
(driver_self_specs): Include it.
(switch_matches): Don't mark inline.
(main): Load libgomp.spec.
* tree-gimple.c (is_gimple_stmt): True for OMP_MASTER,
OMP_ORDERED, OMP_CRITICAL, OMP_SECTIONS, OMP_SECTION,
and OMP_SINGLE, OMP_FOR and OMP_PARALLEL.
* tree-gimple.h (enum omp_parallel): Declare.
(determine_parallel_type): Declare.
(omp_firstprivatize_variable): Declare.
(omp_reduction_init): Declare.
(diagnose_omp_structured_block_errors): Declare.
(struct walk_stmt_info): Add want_return_expr.
(struct walk_stmt_info): Add want_bind_expr, want_locations.
(find_omp_clause): Declare.
(insert_field_into_struct): Declare.
(struct walk_stmt_info): Move from tree-nested.c
(walk_stmts): Declare.
* c-cppbuiltin.c (c_cpp_builtins): If -fopenmp, #define _OPENMP
to 200505.
* cgraphunit.c (cgraph_lower_function): Make static.
(cgraph_finalize_pending_functions): New.
(cgraph_finalize_function): Call it.
(cgraph_finalize_compilation_unit): Likewise.
* builtin-types.def (BT_I16, BT_FN_I16_VPTR_I16,
BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add.
(BT_FN_UINT_UINT): New.
(DEF_FUNCTION_TYPE_6, DEF_FUNCTION_TYPE_7,
DEF_FUNCTION_TYPE_VAR_4): Document.
(BT_PTR_LONG, BT_PTR_PTR, BT_FN_BOOL, BT_FN_INT,
BT_FN_VOID_PTRPTR, BT_PTR_FN_VOID_PTR,
BT_FN_BOOL_LONGPTR_LONGPTR, BT_FN_VOID_OMPFN_PTR_UINT,
BT_FN_VOID_OMPFN_PTR_UINT_UINT,
BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG): New.
* builtins.def: Update DEF_BUILTIN comment to include COND argument.
Move all DEF_SYNC_BUILTIN () and DEF_GOMP_BUILTIN () builtins
into separate files.
(DEF_GOMP_BUILTIN): New.
(BUILT_IN_OMP_GET_THREAD_NUM, BUILT_IN_GOMP_BARRIER,
BUILT_IN_GOMP_CRITICAL_START, BUILT_IN_GOMP_CRITICAL_END,
BUILT_IN_GOMP_CRITICAL_NAME_START, BUILT_IN_GOMP_CRITICAL_NAME_END,
BUILT_IN_GOMP_LOOP_STATIC_START, BUILT_IN_GOMP_LOOP_DYNAMIC_START,
BUILT_IN_GOMP_LOOP_GUIDED_START, BUILT_IN_GOMP_LOOP_RUNTIME_START,
BUILT_IN_GOMP_LOOP_ORDERED_STATIC_START,
BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_START,
BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_START,
BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_START,
BUILT_IN_GOMP_LOOP_STATIC_NEXT, BUILT_IN_GOMP_LOOP_DYNAMIC_NEXT,
BUILT_IN_GOMP_LOOP_GUIDED_NEXT, BUILT_IN_GOMP_LOOP_RUNTIME_NEXT,
BUILT_IN_GOMP_LOOP_ORDERED_STATIC_NEXT,
BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_NEXT,
BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_NEXT,
BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_NEXT,
BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
BUILT_IN_GOMP_LOOP_END, BUILT_IN_GOMP_LOOP_END_NOWAIT,
BUILT_IN_GOMP_ORDERED_START, BUILT_IN_GOMP_ORDERED_END,
BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
BUILT_IN_GOMP_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_NEXT,
BUILT_IN_GOMP_PARALLEL_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_END,
BUILT_IN_GOMP_SECTIONS_END_NOWAIT, BUILT_IN_GOMP_SINGLE_START,
BUILT_IN_GOMP_SINGLE_COPY_START, BUILT_IN_GOMP_SINGLE_COPY_END): New.
* sync-builtins.def: New file, moved from builtins.def.
* omp-builtins.def: New file, moved from builtins.def.
* c-objc-common.h (LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine.
* gimple-low.c (lower_function_body): Clear data.
(lower_stmt): Do not handle COMPOUND_EXPR.
Remove call to print_node_brief.
* c-tree.h (c_finish_omp_clauses): New prototype.
(C_DECL_THREADPRIVATE_P): Define.
(lookup_name_no_remap, c_omp_remap_private): Remove
(c_begin_omp_parallel, c_finish_omp_parallel): Update.
(check_for_loop_decls): Update decl.
(lookup_name_no_remap, c_omp_remap_private): Declare.
(build_indirect_ref, build_modify_expr, pushdecl,
pushdecl_top_level): Move to c-common.h.
* dwarf2out.c (loc_descriptor_from_tree_1): Don't set unsignedp
before the switch, but just in the 2 places that need it.
* c-decl.c (diagnose_mismatched_decls): Do not check for
mismatched thread-local attributes when OLDDECL is marked
threadprivate and NEWDECL has no thread-local attributes.
(merge_decls): Merge C_DECL_THREADPRIVATE_P.
(c_gimple_diagnostics_recursively): Rename from
c_warn_unused_result_recursively. Invoke
diagnose_omp_structured_block_errors.
(check_for_loop_decls): Return a singular decl found.
* langhooks.c (lhd_omp_predetermined_sharing): Return
OMP_CLAUSE_DEFAULT_SHARED for DECL_ARTIFICIAL decls.
(lhd_omp_firstprivatize_type_sizes): New.
(lhd_omp_assignment): New.
(lhd_omp_predetermined_sharing): New.
* langhooks.h (struct gimplify_omp_ctx): Forward declare.
(struct lang_hooks_for_types): Add
omp_firstprivatize_type_sizes, omp_privatize_by_reference,
omp_predetermined_sharing, omp_disregard_value_expr,
omp_private_debug_clause, omp_clause_default_ctor,
omp_clause_copy_ctor, omp_clause_assign_op, omp_clause_dtor.
(c_finish_omp_clauses): New.
(c_finish_bc_stmt): Diagnose break within omp for.
(c_begin_omp_parallel, c_finish_omp_parallel): New.
(build_unary_op): Return error_mark after reporting
a readonly_error.
(build_modify_expr): Likewise.
* gimplify.c: Include optabs.h and pointer-set.h.
(enum gimplify_omp_var_data): Declare.
(struct gimplify_omp_ctx): Declare.
(struct gimplify_ctx): Add fields prev_context, combined_pre_p
and combined_ctxp.
(gimplify_ctxp, gimplify_omp_ctxp): New local variables.
(push_gimplify_context, pop_gimplify_context): Allow nesting.
(splay_tree_compare_decl_uid): New.
(new_omp_context): New.
(delete_omp_context): New.
(gimple_add_tmp_var): Call omp_add_variable.
(gimplify_bind_expr): Likewise.
(gimplify_var_or_parm_decl): If omp_notice_variable returned
true, disregard DECL_VALUE_EXPR on the decl if any.
(gimplify_expr_in_ctx): New.
(omp_firstprivatize_variable, omp_firstprivatize_type_sizes
omp_add_variable, omp_notice_variable, omp_is_private
gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1
gimplify_adjust_omp_clauses, gimplify_omp_parallel
gimplify_omp_for, gimplify_omp_workshare, goa_lhs_expr_p
gimplify_omp_atomic_fetch_op, goa_stabilize_expr
gimplify_omp_atomic_pipeline, gimplify_omp_atomic_mutex
gimplify_omp_atomic): New.
(gimplify_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
OMP_CRITICAL and OMP_ATOMIC.
(gimplify_body): Verify gimplify_ctxp is empty after gimplification.
* c-pragma.h (enum pragma_kind): Add
PRAGMA_OMP_ATOMIC, PRAGMA_OMP_BARRIER,
PRAGMA_OMP_CRITICAL, PRAGMA_OMP_FLUSH, PRAGMA_OMP_FOR,
PRAGMA_OMP_MASTER, PRAGMA_OMP_ORDERED,
PRAGMA_OMP_PARALLEL, PRAGMA_OMP_PARALLEL_FOR,
PRAGMA_OMP_PARALLEL_SECTIONS, PRAGMA_OMP_SECTION,
PRAGMA_OMP_SECTIONS, PRAGMA_OMP_SINGLE,
PRAGMA_OMP_THREADPRIVATE.
* tree.def (OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
OMP_CRITICAL, OMP_ATOMIC, OMP_CLAUSE_PRIVATE,
OMP_CLAUSE_SHARED, OMP_CLAUSE_FIRSTPRIVATE,
OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_REDUCTION,
OMP_CLAUSE_COPYIN, OMP_CLAUSE_COPYPRIVATE,
OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS,
OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_NOWAIT,
OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Define.
* print-tree.c (print_node): Dump DECL_VALUE_EXPR.
* tree-ssa-dce.c (find_control_dependence): Do not assume that
ENTRY_BLOCK_PTR->next_bb == single_succ (ENTRY_BLOCK_PTR).
* tree-nested.c (convert_call_expr): Call walk_body on OMP_BODY for
OpenMP directives.
(struct nesting_info): Add field_map,
suppress_expansion, debug_var_chain.
(create_nesting_tree): Initialize them.
(lookup_field_for_decl): Use field_map.
(get_nonlocal_debug_decl, get_local_debug_decl): New.
(convert_local_omp_clauses): New.
(finalize_nesting_tree_1): Add debug_var_chain to toplevel block.
(walk_body): Split out of walk_function.
(convert_nonlocal_omp_clauses, convert_local_omp_clauses): New.
(convert_nonlocal_reference): Handle omp statements.
(convert_local_reference): Likewise.
(unnest_nesting_tree_1): Split out of finalize_nesting_tree_1.
(unnest_nesting_tree): New.
(lower_nested_functions): Call it.
(insert_field_into_struct): Make extern.
(struct walk_stmt_info): Move to tree-gimple.h.
(walk_stmts): Make extern.
* omp-builtins.def: New file.
* tree-iterator.c (expr_only): Clarify comment.
* c-common.h (pushdecl_top_level, pushdecl,
build_modify_expr, build_indirect_ref,
c_finish_omp_master, c_finish_omp_critical,
c_finish_omp_ordered, c_finish_omp_barrier,
c_finish_omp_atomic, c_finish_omp_flush,
c_finish_omp_for, c_split_parallel_clauses,
omp_clause_default_kind, c_omp_sharing_predetermined,
c_omp_remap_decl): Declare.
* Makefile.in (BUILTINS_DEF): Add omp-builtins.def.
(OBJS-common): Add omp-low.o.
(c-omp.o, omp-low.o): Add.
(gimplify.o): Add dependency on $(OPTABS_H).
(GTFILES): Add omp-low.c.
(gt-stringpool.h): Add.
* tree-cfg.c (set_bb_for_stmt): Do not update the
block-to-labels map if we are currently expanding to RTL.
(tree_node_can_be_shared): Remove unnecessary CONSTANT_CLASS_P
checks.
Handle IDENTIFIER_NODE.
(tree_verify_flow_info): Do not ICE when emitting error
messages about invalid labels.
(dump_function_to_file): Reset CFUN before emitting the body
of the function.
(debug_function): New.
* passes.c (init_optimization_passes): Schedule
pass_lower_omp.
* langhooks-def.h (lhd_omp_predetermined_sharing,
lhd_omp_assignment, lhd_omp_firstprivatize_type_sizes):
Declare.
(LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES): Define.
(LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
(LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE,
LANG_HOOKS_OMP_PREDETERMINED_SHARING,
LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR,
LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE,
LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR,
LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP,
LANG_HOOKS_OMP_CLAUSE_DTOR): Define.
(LANG_HOOK_DECLS): Use them.
2006-01-18 Dmitry Kurochkin <dmitry.kurochkin@gmail.com>
Richard Henderson <rth@redhat.com>
Jakub Jelinek <jakub@redhat.com>
Diego Novillo <dnovillo@redhat.com>
* c-parser.c (pragma_omp_clause): Define.
(c_parser_declaration_or_fndef): Document OpenMP syntax.
(c_parser_compound_statement): Likewise.
(c_parser_statement): Likewise.
(c_parser_pragma): Handle omp pragmas.
(OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
OMP_PARALLEL_CLAUSE_MASK, OMP_SINGLE_CLAUSE_MASK): Define.
(c_parser_omp_clause_name, check_no_duplicate_clause,
c_parser_omp_variable_list,
c_parser_omp_var_list_parens, c_parser_omp_clause_copyin,
c_parser_omp_clause_copyprivate,
c_parser_omp_clause_default,
c_parser_omp_clause_firstprivate, c_parser_omp_clause_if,
c_parser_omp_clause_lastprivate,
c_parser_omp_clause_nowait,
c_parser_omp_clause_num_threads,
c_parser_omp_clause_ordered, c_parser_omp_clause_private,
c_parser_omp_clause_reduction,
c_parser_omp_clause_schedule, c_parser_omp_clause_shared,
c_parser_omp_all_clauses, c_parser_omp_structured_block,
c_parser_omp_atomic, c_parser_omp_barrier,
c_parser_omp_critical, c_parser_omp_flush,
c_parser_omp_for_loop, c_parser_omp_for,
c_parser_omp_master, c_parser_omp_ordered,
c_parser_omp_sections_scope, c_parser_omp_sections,
c_parser_omp_parallel, c_parser_omp_single,
c_parser_omp_construct, c_parser_omp_threadprivate): New.
* c-pragma.c (init_pragma): Do omp pragma registration here.
* c.opt (fopenmp): New flag.
2006-01-18 Eric Christopher <echristo@apple.com>
* gcc.c (GOMP_SELF_SPECS): Bracket in #ifndef/#endif.
* config/darwin.h (GOMP_SELF_SPECS): Define.
testsuite/
2006-01-18 Richard Henderson <rth@redhat.com>
Aldy Hernandez <aldyh@redhat.com>
Jakub Jelinek <jakub@redhat.com>
Diego Novillo <dnovillo@redhat.com>
Uros Bizjak <uros@kss-loka.si>
* testsuite/gcc.dg/gomp: New directory.
From-SVN: r109902
2006-01-18 20:21:25 +01:00
|
|
|
|
2006-01-18 Richard Henderson <rth@redhat.com>
|
|
|
|
|
Aldy Hernandez <aldyh@redhat.com>
|
|
|
|
|
Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
* omp-low.c: New file.
|
|
|
|
|
* c-omp.c: New file.
|
|
|
|
|
|
|
|
|
|
2006-01-18 Richard Henderson <rth@redhat.com>
|
|
|
|
|
Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
* doc/invoke.texi: Document -fopenmp.
|
|
|
|
|
* tree-dump.h (debug_function): Declare.
|
|
|
|
|
* hooks.c (hook_bool_tree_bool_false): New function.
|
|
|
|
|
(hook_tree_tree_null): Remove.
|
|
|
|
|
(hook_tree_tree_tree_null): New.
|
|
|
|
|
* hooks.h: Update to match.
|
|
|
|
|
* tree-pretty-print.c (debug_tree_chain): New.
|
|
|
|
|
(print_generic_expr): Handle TDF_CHAIN.
|
|
|
|
|
(dump_generic_node): Handle BLOCK.
|
|
|
|
|
Do not abort with incomplete SWITCH_EXPRs.
|
|
|
|
|
Do not dump body of an OpenMP directive if TDF_SLIM is given.
|
|
|
|
|
<case OMP_PARALLEL, OMP_FOR, OMP_SECTIONS>: Don't
|
|
|
|
|
print space after directive name.
|
|
|
|
|
<OMP_FOR>: Handle printing OMP_FOR_PRE_BODY.
|
|
|
|
|
Handle OMP_MASTER and OMP_ORDERED.
|
|
|
|
|
Handle printing of OMP_BODY just in one place, goto
|
|
|
|
|
dump_omp_body in the rest of OMP_* nodes that have
|
|
|
|
|
OMP_BODY.
|
|
|
|
|
Don't handle clause nodes here. Update omp statements to
|
|
|
|
|
use dump_omp_clauses.
|
|
|
|
|
Handle OMP_SINGLE, OMP_SECTIONS, OMP_SECTION,
|
|
|
|
|
OMP_CLAUSE_ORDERED, OMP_CLAUSE_SCHEDULE, OMP_ATOMIC,
|
|
|
|
|
OMP_CRITICAL, OMP_CLAUSE_NOWAIT, GOMP_CLAUSE_IF,
|
|
|
|
|
GOMP_CLAUSE_NUM_THREADS, GOMP_FOR, GOMP_CLAUSE_SHARED,
|
|
|
|
|
GOMP_CLAUSE_FIRSTPRIVATE, GOMP_CLAUSE_LASTPRIVATE,
|
|
|
|
|
GOMP_CLAUSE_COPYIN and GOMP_CLAUSE_COPYPRIVATE.
|
|
|
|
|
Adjust output for GOMP_PARALLEL.
|
|
|
|
|
(dump_omp_clauses): New.
|
|
|
|
|
(print_declaration): Dump DECL_VALUE_EXPR.
|
|
|
|
|
(op_symbol_1): Split out of op_symbol.
|
|
|
|
|
(dumping_stmts): Remove. Update all users.
|
|
|
|
|
* cgraph.c (cgraph_analyze_queue): New.
|
|
|
|
|
(cgraph_add_new_function): New.
|
|
|
|
|
* cgraph.h (cgraph_analyze_queue): Declare.
|
|
|
|
|
(cgraph_add_new_function): Declare.
|
|
|
|
|
(cgraph_lower_function): Remove.
|
|
|
|
|
* tree.c (walk_tree): Walk OMP_CLAUSE_CHAIN of OMP_CLAUSE_*
|
|
|
|
|
nodes. Use switch for all nodes, handle most of IS_EXPR_CODE_CLASS
|
|
|
|
|
and TYPE_P nodes in its default clause.
|
|
|
|
|
(empty_body_p): New.
|
|
|
|
|
(tree_range_check_failed): New.
|
|
|
|
|
(build5_stat): New.
|
|
|
|
|
* tree.h (OMP_CLAUSE_REDUCTION_INIT,
|
|
|
|
|
OMP_CLAUSE_REDUCTION_MERGE,
|
|
|
|
|
OMP_CLAUSE_REDUCTION_PLACEHOLDER,
|
|
|
|
|
OMP_CLAUSE_PRIVATE_DEBUG,
|
|
|
|
|
OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE, OMP_FOR_PRE_BODY,
|
|
|
|
|
OMP_MASTER_BODY, OMP_ORDERED_BODY OMP_BODY,
|
|
|
|
|
OMP_CLAUSES, OMP_CLAUSE_DECL, OMP_CLAUSE_DEFAULT_KIND,
|
|
|
|
|
OMP_CLAUSE_CHAIN, OMP_CLAUSE_OUTER_DECL,
|
|
|
|
|
OMP_CLAUSE_INNER_DECL, OMP_CLAUSE_NUM_THREADS_EXPR,
|
|
|
|
|
OMP_CLAUSE_IF_EXPR, OMP_CLAUSE_SCHEDULE_CHUNK_EXPR,
|
|
|
|
|
OMP_CLAUSE_SCHEDULE_CHUNK_SIZE. OMP_PARALLEL_VAR_INIT,
|
|
|
|
|
OMP_PARALLEL_VAR_REDUC, OMP_FOR_VAR_INIT,
|
|
|
|
|
OMP_FOR_VAR_LAST, OMP_FOR_VAR_REDUC,
|
|
|
|
|
OMP_SECTIONS_VAR_INIT, OMP_SECTIONS_VAR_LAST,
|
|
|
|
|
OMP_SECTIONS_VAR_REDUC, OMP_CLAUSE_REDUCTION_CODE
|
|
|
|
|
OMP_SINGLE_CLAUSES, OMP_SINGLE_BODY,
|
|
|
|
|
OMP_CLAUSE_SCHEDULE_CHUNK_SIZE, OMP_SECTION_BODY,
|
|
|
|
|
OMP_CRITICAL_NAME, OMP_CRITICAL_BODY): New.
|
|
|
|
|
(TREE_RANGE_CHECK): New.
|
|
|
|
|
(empty_body_p): Declare.
|
|
|
|
|
(enum omp_clause_default_kind): New.
|
|
|
|
|
(build_string_literal): Declare.
|
|
|
|
|
(enum omp_clause_schedule_kind, OMP_CLAUSE_SCHEDULE_KIND): New.
|
|
|
|
|
(build5_stat, build5): Declare.
|
|
|
|
|
* tree-pass.h (TDF_CHAIN): Define.
|
|
|
|
|
* tree-pass.h (PROP_gimple_lomp): Define.
|
|
|
|
|
(pass_lower_omp): Declare.
|
|
|
|
|
* diagnostic.h (debug_tree_chain): Declare.
|
|
|
|
|
* builtins.c (get_builtin_sync_mode): Use 0 as last argument to
|
|
|
|
|
mode_for_size.
|
|
|
|
|
(expand_builtin): Handle sync BUILT_IN_*_16 builtins.
|
|
|
|
|
* builtins.c (build_string_literal): Make extern.
|
|
|
|
|
* gcc.c (include_spec_function): New.
|
|
|
|
|
(static_spec_functions): Add it.
|
|
|
|
|
(main): Move load of libgomp.spec ...
|
|
|
|
|
(LINK_COMMAND_SPEC): ... here.
|
|
|
|
|
(link_gomp_spec): New.
|
|
|
|
|
(static_specs): Include it.
|
|
|
|
|
(LINK_COMMAND_SPEC): Add link_gomp.
|
|
|
|
|
(GOMP_SELF_SPECS): New.
|
|
|
|
|
(driver_self_specs): Include it.
|
|
|
|
|
(switch_matches): Don't mark inline.
|
|
|
|
|
(main): Load libgomp.spec.
|
|
|
|
|
* tree-gimple.c (is_gimple_stmt): True for OMP_MASTER,
|
|
|
|
|
OMP_ORDERED, OMP_CRITICAL, OMP_SECTIONS, OMP_SECTION,
|
|
|
|
|
and OMP_SINGLE, OMP_FOR and OMP_PARALLEL.
|
|
|
|
|
* tree-gimple.h (enum omp_parallel): Declare.
|
|
|
|
|
(determine_parallel_type): Declare.
|
|
|
|
|
(omp_firstprivatize_variable): Declare.
|
|
|
|
|
(omp_reduction_init): Declare.
|
|
|
|
|
(diagnose_omp_structured_block_errors): Declare.
|
|
|
|
|
(struct walk_stmt_info): Add want_return_expr.
|
|
|
|
|
(struct walk_stmt_info): Add want_bind_expr, want_locations.
|
|
|
|
|
(find_omp_clause): Declare.
|
|
|
|
|
(insert_field_into_struct): Declare.
|
|
|
|
|
(struct walk_stmt_info): Move from tree-nested.c
|
|
|
|
|
(walk_stmts): Declare.
|
|
|
|
|
* c-cppbuiltin.c (c_cpp_builtins): If -fopenmp, #define _OPENMP
|
|
|
|
|
to 200505.
|
|
|
|
|
* cgraphunit.c (cgraph_lower_function): Make static.
|
|
|
|
|
(cgraph_finalize_pending_functions): New.
|
|
|
|
|
(cgraph_finalize_function): Call it.
|
|
|
|
|
(cgraph_finalize_compilation_unit): Likewise.
|
|
|
|
|
* builtin-types.def (BT_I16, BT_FN_I16_VPTR_I16,
|
|
|
|
|
BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add.
|
|
|
|
|
(BT_FN_UINT_UINT): New.
|
|
|
|
|
(DEF_FUNCTION_TYPE_6, DEF_FUNCTION_TYPE_7,
|
|
|
|
|
DEF_FUNCTION_TYPE_VAR_4): Document.
|
|
|
|
|
(BT_PTR_LONG, BT_PTR_PTR, BT_FN_BOOL, BT_FN_INT,
|
|
|
|
|
BT_FN_VOID_PTRPTR, BT_PTR_FN_VOID_PTR,
|
|
|
|
|
BT_FN_BOOL_LONGPTR_LONGPTR, BT_FN_VOID_OMPFN_PTR_UINT,
|
|
|
|
|
BT_FN_VOID_OMPFN_PTR_UINT_UINT,
|
|
|
|
|
BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
|
|
|
|
|
BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
|
|
|
|
|
BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
|
|
|
|
|
BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG): New.
|
|
|
|
|
* builtins.def: Update DEF_BUILTIN comment to include COND argument.
|
|
|
|
|
Move all DEF_SYNC_BUILTIN () and DEF_GOMP_BUILTIN () builtins
|
|
|
|
|
into separate files.
|
|
|
|
|
(DEF_GOMP_BUILTIN): New.
|
|
|
|
|
(BUILT_IN_OMP_GET_THREAD_NUM, BUILT_IN_GOMP_BARRIER,
|
|
|
|
|
BUILT_IN_GOMP_CRITICAL_START, BUILT_IN_GOMP_CRITICAL_END,
|
|
|
|
|
BUILT_IN_GOMP_CRITICAL_NAME_START, BUILT_IN_GOMP_CRITICAL_NAME_END,
|
|
|
|
|
BUILT_IN_GOMP_LOOP_STATIC_START, BUILT_IN_GOMP_LOOP_DYNAMIC_START,
|
|
|
|
|
BUILT_IN_GOMP_LOOP_GUIDED_START, BUILT_IN_GOMP_LOOP_RUNTIME_START,
|
|
|
|
|
BUILT_IN_GOMP_LOOP_ORDERED_STATIC_START,
|
|
|
|
|
BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_START,
|
|
|
|
|
BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_START,
|
|
|
|
|
BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_START,
|
|
|
|
|
BUILT_IN_GOMP_LOOP_STATIC_NEXT, BUILT_IN_GOMP_LOOP_DYNAMIC_NEXT,
|
|
|
|
|
BUILT_IN_GOMP_LOOP_GUIDED_NEXT, BUILT_IN_GOMP_LOOP_RUNTIME_NEXT,
|
|
|
|
|
BUILT_IN_GOMP_LOOP_ORDERED_STATIC_NEXT,
|
|
|
|
|
BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_NEXT,
|
|
|
|
|
BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_NEXT,
|
|
|
|
|
BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_NEXT,
|
|
|
|
|
BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
|
|
|
|
|
BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
|
|
|
|
|
BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
|
|
|
|
|
BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
|
|
|
|
|
BUILT_IN_GOMP_LOOP_END, BUILT_IN_GOMP_LOOP_END_NOWAIT,
|
|
|
|
|
BUILT_IN_GOMP_ORDERED_START, BUILT_IN_GOMP_ORDERED_END,
|
|
|
|
|
BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
|
|
|
|
|
BUILT_IN_GOMP_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_NEXT,
|
|
|
|
|
BUILT_IN_GOMP_PARALLEL_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_END,
|
|
|
|
|
BUILT_IN_GOMP_SECTIONS_END_NOWAIT, BUILT_IN_GOMP_SINGLE_START,
|
|
|
|
|
BUILT_IN_GOMP_SINGLE_COPY_START, BUILT_IN_GOMP_SINGLE_COPY_END): New.
|
|
|
|
|
* sync-builtins.def: New file, moved from builtins.def.
|
|
|
|
|
* omp-builtins.def: New file, moved from builtins.def.
|
|
|
|
|
* c-objc-common.h (LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine.
|
|
|
|
|
* gimple-low.c (lower_function_body): Clear data.
|
|
|
|
|
(lower_stmt): Do not handle COMPOUND_EXPR.
|
|
|
|
|
Remove call to print_node_brief.
|
|
|
|
|
* c-tree.h (c_finish_omp_clauses): New prototype.
|
|
|
|
|
(C_DECL_THREADPRIVATE_P): Define.
|
|
|
|
|
(lookup_name_no_remap, c_omp_remap_private): Remove
|
|
|
|
|
(c_begin_omp_parallel, c_finish_omp_parallel): Update.
|
|
|
|
|
(check_for_loop_decls): Update decl.
|
|
|
|
|
(lookup_name_no_remap, c_omp_remap_private): Declare.
|
|
|
|
|
(build_indirect_ref, build_modify_expr, pushdecl,
|
|
|
|
|
pushdecl_top_level): Move to c-common.h.
|
|
|
|
|
* dwarf2out.c (loc_descriptor_from_tree_1): Don't set unsignedp
|
|
|
|
|
before the switch, but just in the 2 places that need it.
|
|
|
|
|
* c-decl.c (diagnose_mismatched_decls): Do not check for
|
|
|
|
|
mismatched thread-local attributes when OLDDECL is marked
|
|
|
|
|
threadprivate and NEWDECL has no thread-local attributes.
|
|
|
|
|
(merge_decls): Merge C_DECL_THREADPRIVATE_P.
|
|
|
|
|
(c_gimple_diagnostics_recursively): Rename from
|
|
|
|
|
c_warn_unused_result_recursively. Invoke
|
|
|
|
|
diagnose_omp_structured_block_errors.
|
|
|
|
|
(check_for_loop_decls): Return a singular decl found.
|
|
|
|
|
* langhooks.c (lhd_omp_predetermined_sharing): Return
|
|
|
|
|
OMP_CLAUSE_DEFAULT_SHARED for DECL_ARTIFICIAL decls.
|
|
|
|
|
(lhd_omp_firstprivatize_type_sizes): New.
|
|
|
|
|
(lhd_omp_assignment): New.
|
|
|
|
|
(lhd_omp_predetermined_sharing): New.
|
|
|
|
|
* langhooks.h (struct gimplify_omp_ctx): Forward declare.
|
|
|
|
|
(struct lang_hooks_for_types): Add
|
|
|
|
|
omp_firstprivatize_type_sizes, omp_privatize_by_reference,
|
|
|
|
|
omp_predetermined_sharing, omp_disregard_value_expr,
|
|
|
|
|
omp_private_debug_clause, omp_clause_default_ctor,
|
|
|
|
|
omp_clause_copy_ctor, omp_clause_assign_op, omp_clause_dtor.
|
|
|
|
|
(c_finish_omp_clauses): New.
|
|
|
|
|
(c_finish_bc_stmt): Diagnose break within omp for.
|
|
|
|
|
(c_begin_omp_parallel, c_finish_omp_parallel): New.
|
|
|
|
|
(build_unary_op): Return error_mark after reporting
|
|
|
|
|
a readonly_error.
|
|
|
|
|
(build_modify_expr): Likewise.
|
|
|
|
|
* gimplify.c: Include optabs.h and pointer-set.h.
|
|
|
|
|
(enum gimplify_omp_var_data): Declare.
|
|
|
|
|
(struct gimplify_omp_ctx): Declare.
|
|
|
|
|
(struct gimplify_ctx): Add fields prev_context, combined_pre_p
|
|
|
|
|
and combined_ctxp.
|
|
|
|
|
(gimplify_ctxp, gimplify_omp_ctxp): New local variables.
|
|
|
|
|
(push_gimplify_context, pop_gimplify_context): Allow nesting.
|
|
|
|
|
(splay_tree_compare_decl_uid): New.
|
|
|
|
|
(new_omp_context): New.
|
|
|
|
|
(delete_omp_context): New.
|
|
|
|
|
(gimple_add_tmp_var): Call omp_add_variable.
|
|
|
|
|
(gimplify_bind_expr): Likewise.
|
|
|
|
|
(gimplify_var_or_parm_decl): If omp_notice_variable returned
|
|
|
|
|
true, disregard DECL_VALUE_EXPR on the decl if any.
|
|
|
|
|
(gimplify_expr_in_ctx): New.
|
|
|
|
|
(omp_firstprivatize_variable, omp_firstprivatize_type_sizes
|
|
|
|
|
omp_add_variable, omp_notice_variable, omp_is_private
|
|
|
|
|
gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1
|
|
|
|
|
gimplify_adjust_omp_clauses, gimplify_omp_parallel
|
|
|
|
|
gimplify_omp_for, gimplify_omp_workshare, goa_lhs_expr_p
|
|
|
|
|
gimplify_omp_atomic_fetch_op, goa_stabilize_expr
|
|
|
|
|
gimplify_omp_atomic_pipeline, gimplify_omp_atomic_mutex
|
|
|
|
|
gimplify_omp_atomic): New.
|
|
|
|
|
(gimplify_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
|
|
|
|
|
OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
|
|
|
|
|
OMP_CRITICAL and OMP_ATOMIC.
|
|
|
|
|
(gimplify_body): Verify gimplify_ctxp is empty after gimplification.
|
|
|
|
|
* c-pragma.h (enum pragma_kind): Add
|
|
|
|
|
PRAGMA_OMP_ATOMIC, PRAGMA_OMP_BARRIER,
|
|
|
|
|
PRAGMA_OMP_CRITICAL, PRAGMA_OMP_FLUSH, PRAGMA_OMP_FOR,
|
|
|
|
|
PRAGMA_OMP_MASTER, PRAGMA_OMP_ORDERED,
|
|
|
|
|
PRAGMA_OMP_PARALLEL, PRAGMA_OMP_PARALLEL_FOR,
|
|
|
|
|
PRAGMA_OMP_PARALLEL_SECTIONS, PRAGMA_OMP_SECTION,
|
|
|
|
|
PRAGMA_OMP_SECTIONS, PRAGMA_OMP_SINGLE,
|
|
|
|
|
PRAGMA_OMP_THREADPRIVATE.
|
|
|
|
|
* tree.def (OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
|
|
|
|
|
OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
|
|
|
|
|
OMP_CRITICAL, OMP_ATOMIC, OMP_CLAUSE_PRIVATE,
|
|
|
|
|
OMP_CLAUSE_SHARED, OMP_CLAUSE_FIRSTPRIVATE,
|
|
|
|
|
OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_REDUCTION,
|
|
|
|
|
OMP_CLAUSE_COPYIN, OMP_CLAUSE_COPYPRIVATE,
|
|
|
|
|
OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS,
|
|
|
|
|
OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_NOWAIT,
|
|
|
|
|
OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Define.
|
|
|
|
|
* print-tree.c (print_node): Dump DECL_VALUE_EXPR.
|
|
|
|
|
* tree-ssa-dce.c (find_control_dependence): Do not assume that
|
|
|
|
|
ENTRY_BLOCK_PTR->next_bb == single_succ (ENTRY_BLOCK_PTR).
|
|
|
|
|
* tree-nested.c (convert_call_expr): Call walk_body on OMP_BODY for
|
|
|
|
|
OpenMP directives.
|
|
|
|
|
(struct nesting_info): Add field_map,
|
|
|
|
|
suppress_expansion, debug_var_chain.
|
|
|
|
|
(create_nesting_tree): Initialize them.
|
|
|
|
|
(lookup_field_for_decl): Use field_map.
|
|
|
|
|
(get_nonlocal_debug_decl, get_local_debug_decl): New.
|
|
|
|
|
(convert_local_omp_clauses): New.
|
|
|
|
|
(finalize_nesting_tree_1): Add debug_var_chain to toplevel block.
|
|
|
|
|
(walk_body): Split out of walk_function.
|
|
|
|
|
(convert_nonlocal_omp_clauses, convert_local_omp_clauses): New.
|
|
|
|
|
(convert_nonlocal_reference): Handle omp statements.
|
|
|
|
|
(convert_local_reference): Likewise.
|
|
|
|
|
(unnest_nesting_tree_1): Split out of finalize_nesting_tree_1.
|
|
|
|
|
(unnest_nesting_tree): New.
|
|
|
|
|
(lower_nested_functions): Call it.
|
|
|
|
|
(insert_field_into_struct): Make extern.
|
|
|
|
|
(struct walk_stmt_info): Move to tree-gimple.h.
|
|
|
|
|
(walk_stmts): Make extern.
|
|
|
|
|
* omp-builtins.def: New file.
|
|
|
|
|
* tree-iterator.c (expr_only): Clarify comment.
|
|
|
|
|
* c-common.h (pushdecl_top_level, pushdecl,
|
|
|
|
|
build_modify_expr, build_indirect_ref,
|
|
|
|
|
c_finish_omp_master, c_finish_omp_critical,
|
|
|
|
|
c_finish_omp_ordered, c_finish_omp_barrier,
|
|
|
|
|
c_finish_omp_atomic, c_finish_omp_flush,
|
|
|
|
|
c_finish_omp_for, c_split_parallel_clauses,
|
|
|
|
|
omp_clause_default_kind, c_omp_sharing_predetermined,
|
|
|
|
|
c_omp_remap_decl): Declare.
|
|
|
|
|
* Makefile.in (BUILTINS_DEF): Add omp-builtins.def.
|
|
|
|
|
(OBJS-common): Add omp-low.o.
|
|
|
|
|
(c-omp.o, omp-low.o): Add.
|
|
|
|
|
(gimplify.o): Add dependency on $(OPTABS_H).
|
|
|
|
|
(GTFILES): Add omp-low.c.
|
|
|
|
|
(gt-stringpool.h): Add.
|
|
|
|
|
* tree-cfg.c (set_bb_for_stmt): Do not update the
|
|
|
|
|
block-to-labels map if we are currently expanding to RTL.
|
|
|
|
|
(tree_node_can_be_shared): Remove unnecessary CONSTANT_CLASS_P
|
|
|
|
|
checks.
|
|
|
|
|
Handle IDENTIFIER_NODE.
|
|
|
|
|
(tree_verify_flow_info): Do not ICE when emitting error
|
|
|
|
|
messages about invalid labels.
|
|
|
|
|
(dump_function_to_file): Reset CFUN before emitting the body
|
|
|
|
|
of the function.
|
|
|
|
|
(debug_function): New.
|
|
|
|
|
* passes.c (init_optimization_passes): Schedule
|
|
|
|
|
pass_lower_omp.
|
|
|
|
|
* langhooks-def.h (lhd_omp_predetermined_sharing,
|
|
|
|
|
lhd_omp_assignment, lhd_omp_firstprivatize_type_sizes):
|
|
|
|
|
Declare.
|
|
|
|
|
(LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES): Define.
|
|
|
|
|
(LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
|
|
|
|
|
(LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE,
|
|
|
|
|
LANG_HOOKS_OMP_PREDETERMINED_SHARING,
|
|
|
|
|
LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR,
|
|
|
|
|
LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE,
|
|
|
|
|
LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR,
|
|
|
|
|
LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
|
|
|
|
|
LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP,
|
|
|
|
|
LANG_HOOKS_OMP_CLAUSE_DTOR): Define.
|
|
|
|
|
(LANG_HOOK_DECLS): Use them.
|
|
|
|
|
|
|
|
|
|
2006-01-18 Dmitry Kurochkin <dmitry.kurochkin@gmail.com>
|
|
|
|
|
Richard Henderson <rth@redhat.com>
|
|
|
|
|
Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
* c-parser.c (pragma_omp_clause): Define.
|
|
|
|
|
(c_parser_declaration_or_fndef): Document OpenMP syntax.
|
|
|
|
|
(c_parser_compound_statement): Likewise.
|
|
|
|
|
(c_parser_statement): Likewise.
|
|
|
|
|
(c_parser_pragma): Handle omp pragmas.
|
|
|
|
|
(OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
|
|
|
|
|
OMP_PARALLEL_CLAUSE_MASK, OMP_SINGLE_CLAUSE_MASK): Define.
|
|
|
|
|
(c_parser_omp_clause_name, check_no_duplicate_clause,
|
|
|
|
|
c_parser_omp_variable_list,
|
|
|
|
|
c_parser_omp_var_list_parens, c_parser_omp_clause_copyin,
|
|
|
|
|
c_parser_omp_clause_copyprivate,
|
|
|
|
|
c_parser_omp_clause_default,
|
|
|
|
|
c_parser_omp_clause_firstprivate, c_parser_omp_clause_if,
|
|
|
|
|
c_parser_omp_clause_lastprivate,
|
|
|
|
|
c_parser_omp_clause_nowait,
|
|
|
|
|
c_parser_omp_clause_num_threads,
|
|
|
|
|
c_parser_omp_clause_ordered, c_parser_omp_clause_private,
|
|
|
|
|
c_parser_omp_clause_reduction,
|
|
|
|
|
c_parser_omp_clause_schedule, c_parser_omp_clause_shared,
|
|
|
|
|
c_parser_omp_all_clauses, c_parser_omp_structured_block,
|
|
|
|
|
c_parser_omp_atomic, c_parser_omp_barrier,
|
|
|
|
|
c_parser_omp_critical, c_parser_omp_flush,
|
|
|
|
|
c_parser_omp_for_loop, c_parser_omp_for,
|
|
|
|
|
c_parser_omp_master, c_parser_omp_ordered,
|
|
|
|
|
c_parser_omp_sections_scope, c_parser_omp_sections,
|
|
|
|
|
c_parser_omp_parallel, c_parser_omp_single,
|
|
|
|
|
c_parser_omp_construct, c_parser_omp_threadprivate): New.
|
|
|
|
|
* c-pragma.c (init_pragma): Do omp pragma registration here.
|
|
|
|
|
* c.opt (fopenmp): New flag.
|
|
|
|
|
|
|
|
|
|
2006-01-18 Eric Christopher <echristo@apple.com>
|
|
|
|
|
|
|
|
|
|
* gcc.c (GOMP_SELF_SPECS): Bracket in #ifndef/#endif.
|
|
|
|
|
* config/darwin.h (GOMP_SELF_SPECS): Define.
|
|
|
|
|
|
2006-01-18 18:41:04 +01:00
|
|
|
|
2006-01-18 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* rtl.h: Remove the prototype for reg_alloc.
|
|
|
|
|
|
2006-01-18 16:44:57 +01:00
|
|
|
|
2006-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
|
|
|
|
|
|
|
|
|
PR target/25731
|
|
|
|
|
* config.gcc (hppa*-*-linux*, hppa[12]*-*-hpux10*, hppa*64*-*-hpux11*,
|
|
|
|
|
hppa[12]*-*-hpux11*): Override default shared libgcc version for both
|
|
|
|
|
sjlj and dwarf2 exception handling.
|
|
|
|
|
* pa/t-hpux-shlib (SHLIB_SOVERSION): New make variable.
|
|
|
|
|
Rework to allow overriding SHLIB_EXT and SHLIB_SOVERSION.
|
|
|
|
|
* pa/pa.c (function_value): Treat complex and vector types as
|
|
|
|
|
aggregates.
|
|
|
|
|
(function_arg): Likewise. Only pass scalar floats in the floating
|
|
|
|
|
point argument registers.
|
|
|
|
|
* pa/t-slibgcc-dwarf-ver: New file.
|
|
|
|
|
* pa/t-slibgcc-sjlj-ver: New file.
|
|
|
|
|
* pa/t-slibgcc-elf-ver: Delete file.
|
|
|
|
|
|
2006-01-18 16:16:10 +01:00
|
|
|
|
2006-01-19 Alan Modra <amodra@bigpond.net.au>
|
|
|
|
|
|
|
|
|
|
* config/rs6000/rs6000.c (rs6000_assemble_integer): Correct
|
|
|
|
|
unlikely_test_section_p test.
|
|
|
|
|
|
2006-01-18 16:01:18 +01:00
|
|
|
|
2006-01-18 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* mode-switching.c (optimize_mode_switching): Make it static.
|
|
|
|
|
* basic-block.h: Remove the prototype for
|
|
|
|
|
optimize_mode_switching.
|
|
|
|
|
|
2006-01-18 16:02:11 +01:00
|
|
|
|
* modulo-sched.c (sms_schedule): Make it static.
|
|
|
|
|
* rtl.h: Remove the prototype for sms_schedule.
|
|
|
|
|
|
2006-01-18 16:03:44 +01:00
|
|
|
|
* postreload-gcse.c (gcse_after_reload_main): Make it static.
|
|
|
|
|
* rtl.h: Remove the prototype for gcse_after_reload_main.
|
|
|
|
|
|
2006-01-18 16:04:37 +01:00
|
|
|
|
* reg-stack.c (reg_to_stack): Make it static.
|
|
|
|
|
* rtl.h: Remove the prototype for reg_to_stack.
|
|
|
|
|
|
2006-01-18 16:05:35 +01:00
|
|
|
|
* regrename.c (regrename_optimize, copyprop_hardreg_forward):
|
|
|
|
|
Make them static.
|
|
|
|
|
* rtl.h: Remove the prototypes for regrename_optimize and
|
|
|
|
|
copyprop_hardreg_forward.
|
|
|
|
|
|
2006-01-18 12:20:51 +01:00
|
|
|
|
2006-01-18 Eric Botcazou <ebotcazou@adacore.com>
|
|
|
|
|
|
|
|
|
|
* config/alpha/alpha.c (alpha_split_tfmode_pair): Rename into
|
|
|
|
|
alpha_split_tmode_pair. Add 'mode' and 'fixup_overlap' arguments.
|
|
|
|
|
Test against the appropriate null constant for the mode.
|
|
|
|
|
If 'fixup_overlap' is true, swap the operands if they overlap.
|
|
|
|
|
(alpha_split_tfmode_frobsign): Adjust call to alpha_split_tfmode_pair.
|
|
|
|
|
* config/alpha/alpha-protos.h (alpha_split_tfmode_pair): Rename into
|
|
|
|
|
alpha_split_tmode_pair and adjust for above change.
|
|
|
|
|
* config/alpha/alpha.md (movtf_internal): Adjust call to
|
|
|
|
|
alpha_split_tfmode_pair and rely on it to swap the operands.
|
|
|
|
|
(movti_internal): New insn and post-reload splitter.
|
|
|
|
|
(movti): New expander.
|
|
|
|
|
|
2006-01-18 08:25:17 +01:00
|
|
|
|
2006-01-18 Philippe De Muyter <phdm@macqel.be>
|
|
|
|
|
|
|
|
|
|
* config/m68k/m68k.md (*addsi3_5200): Allow addq/subq to memory
|
|
|
|
|
operands.
|
|
|
|
|
|
2006-01-18 07:22:04 +01:00
|
|
|
|
2006-01-18 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* rtlanal.c (global_reg_mentioned_p_1,
|
|
|
|
|
global_reg_mentioned_p): Remove.
|
|
|
|
|
* rtl.h: Remove the prototype for global_reg_mentioned_p.
|
|
|
|
|
|
2006-01-18 07:38:09 +01:00
|
|
|
|
* flow.c (initialize_uninitialized_subregs): Make it static.
|
|
|
|
|
* rtl.h: Remove the prototype for
|
|
|
|
|
initialize_uninitialized_subregs.
|
|
|
|
|
|
2006-01-18 07:39:07 +01:00
|
|
|
|
* function.c (instantiate_virtual_regs): Make it static.
|
|
|
|
|
* function.h: Remove the prototype for
|
|
|
|
|
instantiate_virtual_regs.
|
|
|
|
|
|
2006-01-18 07:40:08 +01:00
|
|
|
|
* regmove.c (regmove_optimize, combine_stack_adjustments):
|
|
|
|
|
Make them static.
|
|
|
|
|
* rtl.h: Remove the prototypes for regmove_optimize and
|
|
|
|
|
combine_stack_adjustments.
|
|
|
|
|
|
2006-01-18 03:48:17 +01:00
|
|
|
|
2006-01-17 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
|
|
* config/i386/i386.c (COSTS_N_BYTES): New macro.
|
|
|
|
|
(size_cost): Encode costs in bytes so that a reg-reg addition is
|
|
|
|
|
equivalent to COSTS_N_INSNS(1).
|
|
|
|
|
(override_options): Use the size_cost.branch_cost as the default
|
|
|
|
|
ix86_branch_cost when optimizing for size.
|
|
|
|
|
|
2006-01-23 16:14:53 +01:00
|
|
|
|
2006-01-18 Ben Elliston <bje@au.ibm.com>
|
2006-01-18 01:39:23 +01:00
|
|
|
|
|
|
|
|
|
* Makefile.in (D32PBIT_FUNCS): New.
|
|
|
|
|
(D64PBIT_FUNCS, D128PBIT_FUNCS): Likewise.
|
|
|
|
|
(libgcc.mk): Set D32PBIT, D64PBIT, D128PBIT, D32PBIT_FUNCS,
|
|
|
|
|
D64PBIT_FUNCS and D128PBIT_FUNCS.
|
|
|
|
|
(LIBGCC_DEPS): Include $(D32PBIT), $(D64PBIT), $(D128PBIT).
|
|
|
|
|
* mklibgcc.in Bring in the DFP support code if D32PBIT, D64PBIT or
|
|
|
|
|
D128PBIT are set.
|
|
|
|
|
(decnumber_dep): Define.
|
|
|
|
|
* doc/libgcc.texi (Decimal float library routines): New node.
|
|
|
|
|
* config/dfp-bit.h, config/dfp-bit.c: New files.
|
|
|
|
|
|
2006-01-23 16:14:53 +01:00
|
|
|
|
2006-01-18 Ben Elliston <bje@au.ibm.com>
|
2006-01-18 00:43:27 +01:00
|
|
|
|
|
|
|
|
|
* expr.c (emit_move_change_mode): Always adjust addresses, not
|
|
|
|
|
just during reload. Copy replacements only during reload.
|
|
|
|
|
(emit_move_insn_1): Move MODE_DECIMAL_FLOAT modes by invoking
|
|
|
|
|
emit_move_via_integer.
|
|
|
|
|
|
2006-01-17 21:49:17 +01:00
|
|
|
|
2006-01-17 Shantonu Sen <ssen@opendarwin.org>
|
|
|
|
|
|
|
|
|
|
* Makefile.in (check-%, check-consistency): Use $${srcdir}
|
|
|
|
|
instead of $(srcdir) and ${srcdir}.
|
|
|
|
|
|
2006-01-17 21:22:19 +01:00
|
|
|
|
2006-01-17 Richard Earnshaw <rearnsha@arm.com>
|
|
|
|
|
|
|
|
|
|
PR target/592
|
|
|
|
|
PR middle-end/11135
|
|
|
|
|
* arm.h (struct machine_function): Add pic_reg.
|
|
|
|
|
* arm.c (arm_pic_register): Make unsigned.
|
|
|
|
|
(arm_override_options): Only set arm_pic_register if
|
|
|
|
|
TARGET_SINGLE_PIC_BASE.
|
|
|
|
|
(use_return_insn): Only test for a pic register if it is fixed.
|
|
|
|
|
(arm_compute_save_reg0_reg12_mask): Likewise.
|
|
|
|
|
(thumb_compute_save_reg_mask): Likewise.
|
|
|
|
|
(legitimate_pic_operand): Factor out some known invariants.
|
|
|
|
|
(legitimize_pic_address): If we don't have a fixed pic register,
|
|
|
|
|
then set up a pseudo in the function entry sequence. Handle the
|
|
|
|
|
pic base being in a pseudo.
|
|
|
|
|
(arm_load_pic_register): Handle the pic register being in a pseudo.
|
|
|
|
|
(arm_expand_prologue): Only set up the pic register if it is fixed.
|
|
|
|
|
(thumb_expand_prologue): Likewise.
|
|
|
|
|
* arm.md (pic_load_addr_based): Handle the pic base being a pseudo.
|
|
|
|
|
(pic_load_addr_based_insn): Likewise.
|
|
|
|
|
(builtin_setjmp_receiver): Don't restore the pic base if it isn't
|
|
|
|
|
fixed.
|
|
|
|
|
|
2006-01-17 20:57:14 +01:00
|
|
|
|
2006-01-18 Ben Elliston <bje@au.ibm.com>
|
|
|
|
|
|
2006-01-17 20:58:35 +01:00
|
|
|
|
* config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Reject
|
|
|
|
|
decimal float modes for all floating point registers.
|
|
|
|
|
|
2006-01-17 20:57:14 +01:00
|
|
|
|
* config/rs6000/predicates.md (reg_or_mem_operand): Pair up
|
|
|
|
|
match_code "mem" with match_test "macho_lo_sum_memory_operand".
|
|
|
|
|
|
2006-01-17 10:57:56 +01:00
|
|
|
|
2006-01-17 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c/25682
|
|
|
|
|
* c-typeck.c (build_unary_op): Fold offsetof-like expressions
|
|
|
|
|
even when the pointer is not NULL.
|
|
|
|
|
|
2006-01-17 08:04:20 +01:00
|
|
|
|
2006-01-16 Ian Lance Taylor <ian@airs.com>
|
|
|
|
|
|
|
|
|
|
* common.opt (ftoplevel-reorder): New option.
|
|
|
|
|
* cgraph.c (cgraph_asm_nodes): New global variable.
|
|
|
|
|
(cgraph_asm_last_node): New static variable.
|
|
|
|
|
(cgraph_order): New global variable.
|
|
|
|
|
(cgraph_create_node): Set new order field.
|
|
|
|
|
(cgraph_varpool_node): Likewise.
|
|
|
|
|
(decide_is_variable_needed): Return true if not
|
|
|
|
|
flag_toplevel_reorder.
|
|
|
|
|
(cgraph_add_asm_node): New function.
|
|
|
|
|
* cgraph.h (struct cgraph_node): Add order field.
|
|
|
|
|
(struct cgraph_varpool_node): Add order field.
|
|
|
|
|
(struct cgraph_asm_node): Define.
|
|
|
|
|
(cgraph_asm_nodes, cgraph_order): Declare.
|
|
|
|
|
(cgraph_add_asm_node): Declare.
|
|
|
|
|
* cgraphunit.c (cgraph_varpool_assemble_decl): New static
|
|
|
|
|
function.
|
|
|
|
|
(cgraph_varpool_assemble_pending_decls): Call it.
|
|
|
|
|
(cgraph_output_pending_asms): New static function.
|
|
|
|
|
(cgraph_finalize_compilation_unit): Call it.
|
|
|
|
|
(struct cgraph_order_sort): Define.
|
|
|
|
|
(cgraph_output_in_order): New static function.
|
|
|
|
|
(cgraph_optimize): Call cgraph_output_pending_asms. Add code for
|
|
|
|
|
!flag_toplevel_reorder case.
|
|
|
|
|
* c-parser.c: Include "cgraph.h".
|
|
|
|
|
(c_parser_asm_definition): Call cgraph_add_asm_node rather than
|
|
|
|
|
assemble_asm.
|
|
|
|
|
* Makefile.in (CRTSTUFF_CFLAGS): Use -fno-toplevel-reorder rather
|
|
|
|
|
than -fno-unit-at-a-time.
|
|
|
|
|
* doc/invoke.texi (Option Summary): Mention
|
|
|
|
|
-fno-toplevel-reorder.
|
|
|
|
|
(Optimize Options): Document -fno-toplevel-reorder. Mention it in
|
|
|
|
|
-funit-at-a-time documentation.
|
|
|
|
|
|
2006-01-17 04:36:21 +01:00
|
|
|
|
2006-01-17 Hans-Peter Nilsson <hp@axis.com>
|
2006-01-17 04:39:34 +01:00
|
|
|
|
Kazu Hirata <kazu@codesourcery.com>
|
2006-01-17 04:36:21 +01:00
|
|
|
|
|
|
|
|
|
* Makefile.in (FUNCTION_H, LAMBDA_H): Use $(TREE_H), not tree.h.
|
|
|
|
|
|
2006-01-17 03:28:19 +01:00
|
|
|
|
2006-01-17 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* Makefile.in (FUNCTION_H): New. Use it instead of
|
|
|
|
|
function.h throughout the file.
|
|
|
|
|
* function.h: Include tree.h.
|
|
|
|
|
|
2006-01-17 03:25:27 +01:00
|
|
|
|
2006-01-17 Ben Elliston <bje@au.ibm.com>
|
|
|
|
|
|
|
|
|
|
* recog.c: Separate some functions with whitespace.
|
|
|
|
|
|
backport: Makefile.in (TREE_INLINE_H): New.
Merge from gomp branch:
* Makefile.in (TREE_INLINE_H): New. Use it as needed.
* tree-inline.h (struct copy_body_data): Move from tree-inline.c
and rename from struct inline_data. Rename callee* to dst*;
caller* to src*; add copy_decl hook, transform_call_graph_edges,
transform_new_cfg, transform_return_to_modify, and
transform_lang_insert_block flags; remove cloning_p, versioning_p,
update_clones_p.
(copy_body_r, insert_decl_map, remap_decl, remap_type): Declare.
(copy_decl_for_dup): Remove.
* tree-inline.c (struct inline_data): Move to header.
(insert_decl_map): Export.
(remap_decl): Update for member name changes. Use copy_decl hook.
Allow for replacement to be a non-decl. Remove dead code.
(remap_type_1): Check for existing mapping.
(remap_type): Export.
(remap_decls): Update for member name changes.
(remap_block, copy_bb, copy_cfg_body, copy_generic_body): Likewise.
(copy_body, setup_one_parameter, declare_return_variable): Likewise.
(expand_call_inline, optimize_inline_calls, clone_body): Likewise.
(copy_tree_r, mark_local_for_remap_r, unsave_expr_now): Likewise.
(tree_function_versioning, build_duplicate_type): Likewise.
(copy_body_r): Likewise. Export.
(copy_decl_for_dup): Split into ...
(copy_decl_for_dup_finish, copy_decl_to_var,
copy_decl_no_change, copy_decl_maybe_to_var): ... these.
(replace_ref_tree, inlining_p): Remove.
From-SVN: r109797
2006-01-17 03:17:16 +01:00
|
|
|
|
2006-01-16 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
Merge from gomp branch:
|
|
|
|
|
* Makefile.in (TREE_INLINE_H): New. Use it as needed.
|
|
|
|
|
* tree-inline.h (struct copy_body_data): Move from tree-inline.c
|
2006-01-23 16:14:53 +01:00
|
|
|
|
and rename from struct inline_data. Rename callee* to dst*;
|
backport: Makefile.in (TREE_INLINE_H): New.
Merge from gomp branch:
* Makefile.in (TREE_INLINE_H): New. Use it as needed.
* tree-inline.h (struct copy_body_data): Move from tree-inline.c
and rename from struct inline_data. Rename callee* to dst*;
caller* to src*; add copy_decl hook, transform_call_graph_edges,
transform_new_cfg, transform_return_to_modify, and
transform_lang_insert_block flags; remove cloning_p, versioning_p,
update_clones_p.
(copy_body_r, insert_decl_map, remap_decl, remap_type): Declare.
(copy_decl_for_dup): Remove.
* tree-inline.c (struct inline_data): Move to header.
(insert_decl_map): Export.
(remap_decl): Update for member name changes. Use copy_decl hook.
Allow for replacement to be a non-decl. Remove dead code.
(remap_type_1): Check for existing mapping.
(remap_type): Export.
(remap_decls): Update for member name changes.
(remap_block, copy_bb, copy_cfg_body, copy_generic_body): Likewise.
(copy_body, setup_one_parameter, declare_return_variable): Likewise.
(expand_call_inline, optimize_inline_calls, clone_body): Likewise.
(copy_tree_r, mark_local_for_remap_r, unsave_expr_now): Likewise.
(tree_function_versioning, build_duplicate_type): Likewise.
(copy_body_r): Likewise. Export.
(copy_decl_for_dup): Split into ...
(copy_decl_for_dup_finish, copy_decl_to_var,
copy_decl_no_change, copy_decl_maybe_to_var): ... these.
(replace_ref_tree, inlining_p): Remove.
From-SVN: r109797
2006-01-17 03:17:16 +01:00
|
|
|
|
caller* to src*; add copy_decl hook, transform_call_graph_edges,
|
|
|
|
|
transform_new_cfg, transform_return_to_modify, and
|
|
|
|
|
transform_lang_insert_block flags; remove cloning_p, versioning_p,
|
|
|
|
|
update_clones_p.
|
|
|
|
|
(copy_body_r, insert_decl_map, remap_decl, remap_type): Declare.
|
|
|
|
|
(copy_decl_for_dup): Remove.
|
|
|
|
|
* tree-inline.c (struct inline_data): Move to header.
|
|
|
|
|
(insert_decl_map): Export.
|
|
|
|
|
(remap_decl): Update for member name changes. Use copy_decl hook.
|
|
|
|
|
Allow for replacement to be a non-decl. Remove dead code.
|
|
|
|
|
(remap_type_1): Check for existing mapping.
|
|
|
|
|
(remap_type): Export.
|
|
|
|
|
(remap_decls): Update for member name changes.
|
|
|
|
|
(remap_block, copy_bb, copy_cfg_body, copy_generic_body): Likewise.
|
|
|
|
|
(copy_body, setup_one_parameter, declare_return_variable): Likewise.
|
|
|
|
|
(expand_call_inline, optimize_inline_calls, clone_body): Likewise.
|
|
|
|
|
(copy_tree_r, mark_local_for_remap_r, unsave_expr_now): Likewise.
|
|
|
|
|
(tree_function_versioning, build_duplicate_type): Likewise.
|
|
|
|
|
(copy_body_r): Likewise. Export.
|
|
|
|
|
(copy_decl_for_dup): Split into ...
|
|
|
|
|
(copy_decl_for_dup_finish, copy_decl_to_var,
|
|
|
|
|
copy_decl_no_change, copy_decl_maybe_to_var): ... these.
|
|
|
|
|
(replace_ref_tree, inlining_p): Remove.
|
|
|
|
|
|
2006-01-17 02:21:29 +01:00
|
|
|
|
2006-01-16 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* ifcvt.c (if_convert): Make it static.
|
|
|
|
|
* rtl.h: Remove the prototype for if_convert.
|
|
|
|
|
|
2006-01-17 02:24:50 +01:00
|
|
|
|
* local-alloc.c (local_alloc): Make it static.
|
|
|
|
|
* rtl.h: Remove the prototype for local_alloc.
|
|
|
|
|
|
2006-01-17 02:27:04 +01:00
|
|
|
|
* loop.c (loop_optimize): Make it static.
|
|
|
|
|
* cfgloop.h: Remove the prototype for loop_optimize.
|
|
|
|
|
* rtl.h: Likewise.
|
|
|
|
|
|
2006-01-17 01:58:06 +01:00
|
|
|
|
2006-01-16 DJ Delorie <dj@redhat.com>
|
|
|
|
|
|
|
|
|
|
* reload.c (reg_overlap_mentioned_for_reload_p): Handle subregs of
|
|
|
|
|
mems.
|
|
|
|
|
|
2006-01-17 01:24:11 +01:00
|
|
|
|
2006-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
|
|
|
|
|
|
|
|
|
* pa.md: Disparage copies between general and floating-point registers
|
|
|
|
|
in 32-bit move patterns.
|
|
|
|
|
|
2006-01-16 22:43:05 +01:00
|
|
|
|
2006-01-16 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR testsuite/25741
|
|
|
|
|
* Makefile.in (check-%): Depend on site.exp instead of
|
|
|
|
|
$(TESTSUITEDIR)/site.exp. Run "runtest" in separate language
|
|
|
|
|
directories.
|
|
|
|
|
|
2006-01-16 22:04:19 +01:00
|
|
|
|
2006-01-16 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* global.c (global_alloc): Make it static.
|
|
|
|
|
* rtl.h: Remove the prototype for global_alloc.
|
|
|
|
|
|
2006-01-16 20:35:08 +01:00
|
|
|
|
2006-01-16 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
* tree-ssa-alias.c (struct used_part): Add write_only field.
|
|
|
|
|
(get_or_create_used_part_for): Initialize it to true.
|
|
|
|
|
(create_overlap_variables_for): Don't create structure variables
|
|
|
|
|
for structures that only are written to.
|
|
|
|
|
(find_used_portions): Handle MODIFY_EXPR to track whether a
|
|
|
|
|
structure is only written to.
|
|
|
|
|
|
2006-01-16 20:15:22 +01:00
|
|
|
|
2006-01-16 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* bb-reorder.c (partition_hot_cold_basic_blocks): Make it
|
|
|
|
|
static.
|
|
|
|
|
* basic-block.h: Remove the prototype for
|
|
|
|
|
partition_hot_cold_basic_blocks.
|
|
|
|
|
|
2006-02-15 20:33:33 +01:00
|
|
|
|
2006-01-16 Rafael <20>vila de Esp<73><70><EFBFBD>ndola <rafael.espindola@gmail.com>
|
2006-01-16 20:00:56 +01:00
|
|
|
|
|
2006-01-24 23:56:55 +01:00
|
|
|
|
* cppspec.c (lang_specific_spec_functions): Remove.
|
|
|
|
|
* gcc.c (lookup_spec_function): Use static_spec_functions directly.
|
|
|
|
|
* gcc.h (lang_specific_spec_functions): Remove.
|
|
|
|
|
* gccspec.c (lang_specific_spec_functions): Remove.
|
2006-01-16 20:00:56 +01:00
|
|
|
|
|
2006-01-26 19:45:29 +01:00
|
|
|
|
2006-01-16 Paolo Bonzini <bonzini@gnu.org>
|
2006-01-16 19:20:32 +01:00
|
|
|
|
|
|
|
|
|
* combine.c (record_value_for_reg): Invalidate registers
|
|
|
|
|
if INSN is null.
|
|
|
|
|
(record_dead_and_set_regs_1): Likewise, by passing them to
|
|
|
|
|
record_value_for_reg.
|
|
|
|
|
(record_dead_and_set_regs): Invalidate stores made by a
|
|
|
|
|
call. We do not combine across a call, but we still
|
|
|
|
|
relied on equivalences.
|
|
|
|
|
|
2006-01-16 17:53:48 +01:00
|
|
|
|
2006-01-16 Eric Botcazou <ebotcazou@adacore.com>
|
|
|
|
|
|
|
|
|
|
* tree-vrp.c (extract_range_from_binary_expr): Cope with
|
|
|
|
|
vrp_int_const_binop returning non-constant nodes.
|
|
|
|
|
|
2006-01-16 17:03:29 +01:00
|
|
|
|
2006-01-16 Paul Brook <paul@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* config/m68k/m68k.c (output_move_const_into_data_reg):
|
|
|
|
|
Output correct mnemonic for mvz and mvs.
|
|
|
|
|
|
2006-01-17 20:57:14 +01:00
|
|
|
|
2006-01-16 Gabor Loki <loki@gcc.gnu.org>
|
2006-01-16 17:10:40 +01:00
|
|
|
|
|
2006-01-17 20:57:14 +01:00
|
|
|
|
* rtl-factoring.c: Add sequence abstraction algorithm.
|
2006-01-16 17:10:40 +01:00
|
|
|
|
* cfgcleanup.c (outgoing_edges_match): Extra checks.
|
|
|
|
|
(try_crossjump_to_edge): Avoid deleting preserve label when redirecting
|
|
|
|
|
ABNORMAL edges.
|
|
|
|
|
(block_has_preserve_label): New function.
|
|
|
|
|
* common.opt: Register new pass.
|
|
|
|
|
* Makefile.in: Ditto.
|
|
|
|
|
* passes.c: Ditto.
|
|
|
|
|
* timevar.def: Ditto.
|
|
|
|
|
* tree-pass.h: Ditto.
|
|
|
|
|
* emit-rtl.c (make_jump_insn_raw): Remove forward decl.
|
|
|
|
|
* rtl.h (make_jump_insn_raw): Add forward decl.
|
|
|
|
|
* doc/invoke.texi: Add documentation for -frtl-abstract-sequences.
|
|
|
|
|
|
2006-01-16 15:26:32 +01:00
|
|
|
|
2006-01-16 Eric Botcazou <ebotcazou@adacore.com>
|
2006-01-23 16:14:53 +01:00
|
|
|
|
Roger Sayle <roger@eyesopen.com>
|
2006-01-16 15:26:32 +01:00
|
|
|
|
|
|
|
|
|
* fold-const.c (fold_minmax): New static function.
|
|
|
|
|
(fold_binary) <MIN_EXPR>: Call it.
|
|
|
|
|
<MAX_EXPR>: Likewise.
|
|
|
|
|
* stor-layout.c (place_field): Use DECL_SIZE consistently
|
|
|
|
|
in the computation of the new record size.
|
|
|
|
|
|
2006-01-16 06:17:54 +01:00
|
|
|
|
2006-01-16 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* cse.c (cse_condition_code_reg): Make it static.
|
|
|
|
|
* rtl.h: Remove the prototype for cse_condition_code_reg.
|
|
|
|
|
|
2006-01-16 14:48:15 +01:00
|
|
|
|
* combine.c (combine_instructions): Make it static.
|
|
|
|
|
* rtl.h: Remove the prototype for combine_instructions.
|
|
|
|
|
|
2006-01-16 03:26:42 +01:00
|
|
|
|
2006-01-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
|
|
|
|
|
|
|
|
|
PR target/25168
|
|
|
|
|
* tree.c (get_file_function_name_long): Concatenate the first global
|
|
|
|
|
object name with a string derived from the input filename of the object
|
|
|
|
|
for type "F".
|
|
|
|
|
|
2006-01-16 03:25:03 +01:00
|
|
|
|
2006-01-16 Ben Elliston <bje@au.ibm.com>
|
|
|
|
|
|
|
|
|
|
* config/i386/winnt-stubs.c: Update FSF address.
|
|
|
|
|
* config/xtensa/ieee754-df.S: Ditto.
|
|
|
|
|
* config/xtensa/ieee754-sf.S: Ditto.
|
|
|
|
|
|
2006-01-15 03:49:17 +01:00
|
|
|
|
2006-01-14 Ian Lance Taylor <ian@airs.com>
|
|
|
|
|
|
|
|
|
|
* ifcvt.c (noce_init_if_info): New static function, broken out of
|
|
|
|
|
noce_process_if_block.
|
|
|
|
|
(noce_process_if_block): Call noce_init_if_info.
|
|
|
|
|
(check_cond_move_block): New static function.
|
|
|
|
|
(cond_move_process_if_block): New static function.
|
|
|
|
|
(process_if_block): Call cond_move_process_if_block.
|
|
|
|
|
|
2006-01-15 03:16:11 +01:00
|
|
|
|
2006-01-15 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* cselib.c (hash_table): Rename to cselib_hash_table.
|
|
|
|
|
(cselib_clear_table, discard_useless_values,
|
|
|
|
|
remove_useless_values, cselib_lookup_mem, cselib_lookup,
|
|
|
|
|
cselib_init, cselib_finish): Adjust uses of hash_table.
|
|
|
|
|
|
2006-01-14 16:42:11 +01:00
|
|
|
|
2006-01-14 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/25485
|
|
|
|
|
* tree-vrp.c (extract_range_from_binary_expr): Handle cases
|
|
|
|
|
where one of the operands of TRUTH_AND_EXPR and TRUTH_OR_EXPR
|
|
|
|
|
is known to be false and true, respectively.
|
|
|
|
|
|
2006-01-14 15:30:33 +01:00
|
|
|
|
2006-01-14 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/22548
|
|
|
|
|
PR tree-optimization/22555
|
|
|
|
|
PR tree-optimization/22501
|
|
|
|
|
* Makefile.in (tree-ssa-structalias.o): Depend on $(PARAMS_H).
|
|
|
|
|
* params.def (salias-max-array-elements): New parameter.
|
|
|
|
|
* params.h (SALIAS_MAX_ARRAY_ELEMENTS): Define.
|
|
|
|
|
* doc/invoke.texi (salias-max-array-elements): Document.
|
|
|
|
|
* tree-flow-inline.h (var_can_have_subvars): We also handle
|
|
|
|
|
arrays now.
|
|
|
|
|
* tree-ssa-alias.c (find_used_portions): Handle ARRAY_REF like
|
|
|
|
|
COMPONENT_REF.
|
|
|
|
|
* tree-ssa-structalias.c (params.h): Include.
|
|
|
|
|
(push_fields_onto_fieldstack): Handle ARRAY_TYPE.
|
|
|
|
|
(find_func_aliases): Handle multiple constraints from ARRAY_REF.
|
|
|
|
|
(get_constraint_for): For ADDR_EXPR operating on something
|
|
|
|
|
containing an ARRAY_REF, add all subvars to the solution.
|
|
|
|
|
(handle_ptr_arith): Handle ARRAY_TYPE like RECORD_TYPE types.
|
|
|
|
|
* tree-ssa-operands.c (parse_ssa_operands): Handle ARRAY_REF
|
|
|
|
|
for creating MUST_DEFs.
|
|
|
|
|
(get_expr_operands): Treat ARRAY_REF like COMPONENT_REF wrt subvars.
|
|
|
|
|
|
2006-01-14 13:29:06 +01:00
|
|
|
|
2006-01-14 Zdenek Dvorak <dvorakz@suse.cz>
|
|
|
|
|
|
|
|
|
|
* tree-ssa-loop-niter.c (number_of_iterations_cond): Split into several
|
|
|
|
|
functions.
|
|
|
|
|
(number_of_iterations_ne, number_of_iterations_lt_to_ne,
|
|
|
|
|
assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
|
|
|
|
|
number_of_iterations_le): New functions.
|
|
|
|
|
(number_of_iterations_special): Removed.
|
|
|
|
|
(number_of_iterations_exit): Do not use number_of_iterations_special.
|
|
|
|
|
* tree.c (unsigned_type_for): Always return integer type.
|
|
|
|
|
|
2006-01-14 12:04:16 +01:00
|
|
|
|
2006-01-14 Steven Bosscher <stevenb.gcc@gmail.com>
|
|
|
|
|
Richard Guenther <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/24257
|
|
|
|
|
* gcse.c (find_moveable_store): Only consider a store movable
|
|
|
|
|
when the SET_SRC of the insn can be assigned to a register.
|
|
|
|
|
|
2006-01-14 09:15:59 +01:00
|
|
|
|
2006-01-14 Ian Lance Taylor <ian@airs.com>
|
|
|
|
|
|
|
|
|
|
* tree.c (tree_not_class_check_failed): New function.
|
|
|
|
|
* tree.h (NON_TYPE_CHECK): Call tree_not_class_check_failed.
|
|
|
|
|
(tree_not_class_check_failed): Declare.
|
|
|
|
|
|
2006-01-14 06:30:32 +01:00
|
|
|
|
2006-01-13 Ian Lance Taylor <ian@airs.com>
|
|
|
|
|
|
|
|
|
|
* reload1.c (do_output_reload): Add assertion rejecting a
|
|
|
|
|
CALL_INSN.
|
|
|
|
|
|
2006-01-14 00:24:42 +01:00
|
|
|
|
2006-01-13 Adam Nemet <anemet@caviumnetworks.com>
|
|
|
|
|
|
|
|
|
|
* combine.c (struct reg_stat): Add new fields truncation_label and
|
|
|
|
|
truncated_to_mode.
|
|
|
|
|
(record_value_for_reg): Reset truncated_to_mode.
|
|
|
|
|
(record_truncated_value): New function.
|
|
|
|
|
(check_promoted_subreg): Call it. Rename to check_conversions.
|
|
|
|
|
(combine_instructions): Rename check_promoted_subreg to
|
|
|
|
|
check_conversions.
|
|
|
|
|
(reg_truncated_to_mode): New function.
|
|
|
|
|
(make_extraction): Use it. Check TRULY_NOOP_TRUNCATION.
|
|
|
|
|
(gen_lowpart_or_truncate): New function.
|
|
|
|
|
(force_to_mode): Use it instead of gen_lowpart.
|
|
|
|
|
|
2006-01-13 21:13:06 +01:00
|
|
|
|
2006-01-13 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
* tree-ssa-alias.c (add_type_alias): Fix typo. Test whether
|
|
|
|
|
VAR is a tag, not its type tag.
|
|
|
|
|
|
2006-01-13 19:28:57 +01:00
|
|
|
|
2006-01-13 Alexandre Oliva <aoliva@redhat.com>
|
|
|
|
|
|
|
|
|
|
* config/i386/sse.md (*vec_extractv2di_1_sse2): Reorder
|
|
|
|
|
alternatives to match style of other entries.
|
|
|
|
|
(*vec_extractv2di_1_sse): Likewise. Fix mode attr.
|
|
|
|
|
|
2006-01-13 17:00:13 +01:00
|
|
|
|
2006-01-13 Daniel Berlin <dberlin@dberlin.org>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/25771
|
|
|
|
|
* tree-ssa-pre.c (insert_extra_phis): Don't insert merges of abnormal
|
|
|
|
|
SSA_NAMES.
|
|
|
|
|
|
2006-01-13 15:30:08 +01:00
|
|
|
|
2006-01-13 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
|
|
PR tree-opt/24365
|
|
|
|
|
* tree-inline.c (declare_return_variable): If the return variable
|
|
|
|
|
was marked as a non gimple complex, set the return slot variable
|
|
|
|
|
to be a non gimple comple variable.
|
|
|
|
|
|
2006-01-13 12:31:49 +01:00
|
|
|
|
2006-01-13 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
* builtins.c (expand_builtin_sincos): New function.
|
|
|
|
|
(expand_builtin_mathfn_3): Remove dead code, sin and cos
|
|
|
|
|
do not set errno.
|
|
|
|
|
(expand_builtin): Expand sincos using expand_builtin_sincos.
|
|
|
|
|
|
2006-01-13 04:34:40 +01:00
|
|
|
|
2006-01-12 DJ Delorie <dj@redhat.com>
|
|
|
|
|
|
|
|
|
|
* config/m32c/shift.md: Rewrite: Allow arbitrary operands for
|
|
|
|
|
shift counts, separate SI shifts for m32c vs m16c, pass shift type
|
|
|
|
|
so that constant shifts can be split.
|
|
|
|
|
* config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Add In6.
|
|
|
|
|
(m32c_valid_pointer_mode): Make static.
|
|
|
|
|
(shift_gen_func_for): New.
|
|
|
|
|
(m32c_prepare_shift): Use it. Split large const shifts into
|
|
|
|
|
multiple shifts.
|
|
|
|
|
* config/m32c/predicates.md (shiftcount_operand): Allow more
|
|
|
|
|
general operands.
|
|
|
|
|
(longshiftcount_operand): New.
|
|
|
|
|
* doc/md.texi (Machine Constraints): Document In6.
|
|
|
|
|
|
2006-01-13 01:39:28 +01:00
|
|
|
|
2006-01-13 Ben Elliston <bje@au.ibm.com>
|
|
|
|
|
|
|
|
|
|
* doc/tm.texi (Data Output): Add REAL_VALUE_TO_TARGET_DECIMAL32,
|
|
|
|
|
REAL_VALUE_TO_TARGET_DECIMAL64 and REAL_VALUE_TO_TARGET_DECIMAL128
|
|
|
|
|
documentation.
|
|
|
|
|
|
|
|
|
|
2006-01-12 Daniel Berlin <dberlin@dberlin.org>
|
2006-01-13 00:07:53 +01:00
|
|
|
|
|
|
|
|
|
* tree-ssa-operands.c (add_call_clobber_ops): Use SFT_PARENT_VAR
|
|
|
|
|
to try to avoid clobbering pieces of structures when we know
|
|
|
|
|
something about the whole structure.
|
|
|
|
|
* tree-ssa-alias.c (create_sft): Set SFT_PARENT_VAR
|
|
|
|
|
|
2006-01-12 23:15:26 +01:00
|
|
|
|
2006-01-13 Ben Elliston <bje@au.ibm.com>
|
|
|
|
|
|
|
|
|
|
* doc/rtl.texi (Insns): Remove statement that libcalls cannot
|
|
|
|
|
return in memory, as this is no limitation is no longer present.
|
|
|
|
|
|
addsub.md (addhi3): Add two more alternatives, for mova with fb, and for fb+0 -> An.
* config/m32c/addsub.md (addhi3): Add two more alternatives, for
mova with fb, and for fb+0 -> An.
* config/m32c/mov.md (peephole2): Fix enabling logic.
* config/m32c/m32c.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
DTOR_LIST_BEGIN, DTOR_LIST_END, CTORS_SECTION_ASM_OP,
DTORS_SECTION_ASM_OP, INIT_ARRAY_SECTION_ASM_OP,
FINI_ARRAY_SECTION_ASM_OP): Define.
* config/m32c/m32c.c (m32c_legitimize_address): Remove temporary variable.
(m32c_legitimize_reload_address): New logic to reload FB to An.
(m32c_output_reg_push): Add newline.
(m32c_output_reg_pop): Likewise.
From-SVN: r109648
2006-01-12 22:40:27 +01:00
|
|
|
|
2006-01-12 DJ Delorie <dj@redhat.com>
|
|
|
|
|
|
|
|
|
|
* config/m32c/addsub.md (addhi3): Add two more alternatives, for
|
|
|
|
|
mova with fb, and for fb+0 -> An.
|
|
|
|
|
|
|
|
|
|
* config/m32c/mov.md (peephole2): Fix enabling logic.
|
|
|
|
|
|
|
|
|
|
* config/m32c/m32c.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
|
|
|
|
|
DTOR_LIST_BEGIN, DTOR_LIST_END, CTORS_SECTION_ASM_OP,
|
|
|
|
|
DTORS_SECTION_ASM_OP, INIT_ARRAY_SECTION_ASM_OP,
|
|
|
|
|
FINI_ARRAY_SECTION_ASM_OP): Define.
|
|
|
|
|
|
2006-01-12 23:15:26 +01:00
|
|
|
|
* config/m32c/m32c.c (m32c_legitimize_address): Remove temporary
|
|
|
|
|
variable.
|
addsub.md (addhi3): Add two more alternatives, for mova with fb, and for fb+0 -> An.
* config/m32c/addsub.md (addhi3): Add two more alternatives, for
mova with fb, and for fb+0 -> An.
* config/m32c/mov.md (peephole2): Fix enabling logic.
* config/m32c/m32c.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
DTOR_LIST_BEGIN, DTOR_LIST_END, CTORS_SECTION_ASM_OP,
DTORS_SECTION_ASM_OP, INIT_ARRAY_SECTION_ASM_OP,
FINI_ARRAY_SECTION_ASM_OP): Define.
* config/m32c/m32c.c (m32c_legitimize_address): Remove temporary variable.
(m32c_legitimize_reload_address): New logic to reload FB to An.
(m32c_output_reg_push): Add newline.
(m32c_output_reg_pop): Likewise.
From-SVN: r109648
2006-01-12 22:40:27 +01:00
|
|
|
|
(m32c_legitimize_reload_address): New logic to reload FB to An.
|
|
|
|
|
(m32c_output_reg_push): Add newline.
|
|
|
|
|
(m32c_output_reg_pop): Likewise.
|
|
|
|
|
|
2006-01-12 18:22:22 +01:00
|
|
|
|
2006-01-12 Ulrich Weigand <uweigand@de.ibm.com>
|
|
|
|
|
|
|
|
|
|
* struct-equiv.c (find_dying_inputs): Fix off-by-one bug.
|
|
|
|
|
|
2006-01-12 01:51:07 +01:00
|
|
|
|
2006-01-11 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
|
|
* config/i386/darwin.h (SUBTARGET_ENCODE_SECTION_INFO): Define.
|
|
|
|
|
|
2006-01-12 00:50:50 +01:00
|
|
|
|
2006-01-11 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* config/sh/predicates.md (sh_rep_vec): Add parallel to
|
|
|
|
|
match_code.
|
|
|
|
|
|
2006-01-11 22:47:31 +01:00
|
|
|
|
2006-01-11 Ben Elliston <bje@au.ibm.com>
|
|
|
|
|
|
|
|
|
|
* rtlanal.c (find_reg_note): Assert insn is not null.
|
|
|
|
|
|
2006-01-26 19:45:29 +01:00
|
|
|
|
2006-01-11 Kenneth Zadeck <zadeck@naturalbridge.com>
|
2006-01-11 22:19:47 +01:00
|
|
|
|
|
2006-01-11 22:47:31 +01:00
|
|
|
|
* df-scan.c (df_hard_reg_init): Move declaration of i outside
|
|
|
|
|
ifdef.
|
2006-01-11 22:19:47 +01:00
|
|
|
|
|
2006-01-11 21:39:42 +01:00
|
|
|
|
2006-01-11 Jeff Law <law@redhat.com>
|
|
|
|
|
|
|
|
|
|
* tree-ssa-threadupdate.c (threaded_edges): New VEC to
|
|
|
|
|
hold edge pairs.
|
|
|
|
|
(mark_threaded_blocks, register_jump_thread): New functions.
|
|
|
|
|
(thread_through_all_blocks): Remove unwanted argument. No
|
|
|
|
|
longer rely on e->aux to communicate thread target info.
|
|
|
|
|
Call mark_threaded_blocks. Release the threaded_blocks
|
|
|
|
|
bitmap and threaded_edges vector when complete.
|
|
|
|
|
* tree-ssa-dom.c (struct edge_info): Remove redirection_target field.
|
|
|
|
|
(threaded_blocks): Remove.
|
|
|
|
|
(tree_ssa_dominator_optimize): Remove initialization and
|
|
|
|
|
finalization of threaded_blocks. Simplify call to
|
|
|
|
|
thread_through_all_blocks.
|
|
|
|
|
(thread_across_edge): Call register_jump_thread rather than
|
|
|
|
|
storing thread information into e->aux.
|
|
|
|
|
(free_all_edge_infos): Simplify now that e->aux is no longer
|
|
|
|
|
used to communicate with thread_through_all_blocks.
|
|
|
|
|
* tree-flow.h (thread_through_all_blocks): Update prototype.
|
|
|
|
|
(register_jump_thread): Prototype.
|
2006-01-23 16:14:53 +01:00
|
|
|
|
|
2006-01-11 21:25:09 +01:00
|
|
|
|
2006-01-11 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* df-core.c (df_compact_blocks, df_bb_replace): Use
|
|
|
|
|
SET_BASIC_BLOCK instead of BASIC_BLOCK.
|
|
|
|
|
|
2006-01-11 20:44:57 +01:00
|
|
|
|
2006-01-11 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/25734
|
|
|
|
|
* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
|
|
|
|
|
stop propagation after successful propagation to the LHS.
|
|
|
|
|
|
2006-01-11 19:43:15 +01:00
|
|
|
|
2006-01-11 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* basic-block.h (control_flow_graph): Change the type of
|
|
|
|
|
x_basic_block_info to VEC(basic_block,gc) *.
|
|
|
|
|
(BASIC_BLOCK_FOR_FUNCTION, BASIC_BLOCK): Adjust the uses of
|
|
|
|
|
basic_block_info.
|
|
|
|
|
(SET_BASIC_BLOCK): New.
|
|
|
|
|
* cfg.c (compact_blocks, expunge_block): Use SET_BASIC_BLOCK
|
|
|
|
|
instead of BASIC_BLOCK when assigning to BASIC_BLOCK.
|
|
|
|
|
* cfgbuild.c (find_basic_blocks): Likewise.
|
|
|
|
|
* cfglayout.c (fixup_reorder_chain): Likewise.
|
|
|
|
|
* cfgrtl.c (create_basic_block_structure,
|
|
|
|
|
rtl_create_basic_block): Likewise.
|
|
|
|
|
* ifcvt.c (find_if_case_1): Likewise.
|
|
|
|
|
* tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb):
|
|
|
|
|
Likewise.
|
|
|
|
|
|
2006-01-26 19:45:29 +01:00
|
|
|
|
2006-01-11 Kenneth Zadeck <zadeck@naturalbridge.com>
|
2006-01-11 15:59:00 +01:00
|
|
|
|
|
2006-01-12 01:03:54 +01:00
|
|
|
|
* Makefile.in: Removed rotted odf.c entry.
|
2006-01-23 16:14:53 +01:00
|
|
|
|
|
2006-01-11 14:43:08 +01:00
|
|
|
|
2006-01-11 Hans-Peter Nilsson <hp@axis.com>
|
|
|
|
|
|
|
|
|
|
PR target/25706
|
|
|
|
|
* config/cris/cris.md ("*extopqihi_side", "*extop<mode>si_side")
|
|
|
|
|
("*extop<mode>si_swap_side_biap", "*extop<mode>si_swap_side",
|
|
|
|
|
("*extopqihi", "*extop<mode>si", "*extop<mode>si_swap"): Use %E
|
|
|
|
|
output pattern modifier, not %e.
|
|
|
|
|
* config/cris/cris.c (cris_op_str): Update comment about pattern
|
|
|
|
|
modifier.
|
|
|
|
|
(cris_print_operand) <case 'e'>: Clear cris_output_insn_is_bound
|
|
|
|
|
before falling through into...
|
|
|
|
|
<case 'E'>: Redefined from old 'e' case.
|
|
|
|
|
|
2006-01-11 14:26:45 +01:00
|
|
|
|
2006-01-11 Jan Hubicka <jh@suse.cz>
|
|
|
|
|
|
|
|
|
|
PR target/25042
|
|
|
|
|
* i386.c (ix86_init_mmx_sse_builtins): Do not delcare float128
|
|
|
|
|
|
2006-01-11 14:15:32 +01:00
|
|
|
|
2006-01-11 Jan Hubicka <jh@suse.cz>
|
|
|
|
|
|
|
|
|
|
* i386.h (TARGET_DECOMPOSE_LEA): Kill.
|
|
|
|
|
* i386.c (x86_decompose_lea): Kill.
|
|
|
|
|
(ix86_rtx_costs): Kill.
|
|
|
|
|
|
2006-01-11 14:13:37 +01:00
|
|
|
|
2006-01-11 Jan Hubicka <jh@suse.cz>
|
|
|
|
|
|
|
|
|
|
* cgraph.c (cgraph_insert_node_to_hashtable): New function.
|
|
|
|
|
* cgraph.h (cgraph_node): Add inline_decl.
|
|
|
|
|
(cgraph_insert_node_to_hashtable): Declare.
|
|
|
|
|
(save_inline_function_body): Declare.
|
|
|
|
|
* cgraphunit.c (verify_cgraph_node): Inline edges might point to inline
|
|
|
|
|
clones.
|
|
|
|
|
(cgraph_preserve_function_body_p): Do not presrve when dump is enabled.
|
|
|
|
|
(cgraph_function_versioning): Update call of tree_function_versioning.
|
|
|
|
|
(save_inline_function_body): New function.
|
|
|
|
|
* function.h (struct function): Kill saved_eh, saved_cfg, saved_args,
|
|
|
|
|
saved_static_chain_decl, saved_blocks and saved-unexpanded_var_list.
|
|
|
|
|
* ipa-inline.c (cgraph_mark_inline_edge): Look for inline clones.
|
|
|
|
|
(cgraph_default_inline_p): Likewise.
|
|
|
|
|
(cgraph_decide_inlining_incrementally): Likewise.
|
|
|
|
|
* tree-inline.c (inline_data): Kill saving_p add update_clones_p.
|
|
|
|
|
(copy_bb): Kill saving; do updating of clones.
|
|
|
|
|
(copy_cfg_body): Kill saving.
|
|
|
|
|
(initialize_inlined-parameters): Likewise.
|
|
|
|
|
(expand_call_inline): Likewise.
|
|
|
|
|
(save_body): Kill.
|
|
|
|
|
(tree_function_versioning): New parameter "update_clones".
|
|
|
|
|
(inlining_p): Kill saving.
|
|
|
|
|
* tree-inline.h (tree_function_versioning): Update prototype.
|
|
|
|
|
* tree-optimize.c (tree_rest_of_compilation): Use clonning instead of
|
|
|
|
|
saving.
|
|
|
|
|
|
2006-01-11 14:09:13 +01:00
|
|
|
|
2006-01-11 Ian Lance Taylor <ian@airs.com>
|
|
|
|
|
|
|
|
|
|
* combine.c (struct undo): Remove is_int. Enumify types of undos.
|
|
|
|
|
Allow undoing set of machine mode.
|
|
|
|
|
(do_SUBST): Use enums instead of is_int.
|
|
|
|
|
(do_SUBST_MODE): New function.
|
|
|
|
|
(SUBST_MODE): New macro.
|
|
|
|
|
(try_combine): Use SUBST_MODE/PUT_MODE instead of generating a new
|
|
|
|
|
reg and trying to replace reg_regno_rtx with a new register.
|
|
|
|
|
(undo_all): Use new enums, handle undoing a PUT_MODE change.
|
|
|
|
|
(simplify_set): Use SUBST_MODE.
|
|
|
|
|
(distribute_notes): Remove code that tried to update reg notes
|
|
|
|
|
for regno_reg_rtx changes.
|
|
|
|
|
|
re PR tree-optimization/23109 (compiler generates wrong code leading to spurious division by zero with -funsafe-math-optimizations (instead of -ftrapping-math))
gcc:
2006-01-11 Paolo Bonzini <bonzini@gnu.org>
PR tree-optimization/23109
PR tree-optimization/23948
PR tree-optimization/24123
* Makefile.in (tree-ssa-math-opts.o): Adjust dependencies.
* tree-cfg.c (single_noncomplex_succ): New.
* tree-flow.h (single_noncomplex_succ): Declare it.
* tree-ssa-math-opts.c (enum place_reciprocal): Remove.
* tree-ssa-math-opts.c (enum place_reciprocal): Remove.
(struct occurrence, occ_head, occ_pool, is_divide_by, compute_merit,
insert_bb, register_division_in, insert_reciprocals,
replace_reciprocal, free_bb): New.
(execute_cse_reciprocals_1): Rewritten.
(execute_cse_reciprocals): Adjust calls to execute_cse_reciprocals_1.
Do not commit any edge insertion. Always compute dominators and
create the allocation pool.
* target-def.h (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): New.
* target.h (struct gcc_target): Add min_divistions_for_recip_mul.
* targhooks.c (default_min_divistions_for_recip_mul): New.
* targhooks.h (default_min_divistions_for_recip_mul): New prototype.
* passes.c (init_optimization_passes): Run recip after tree loop
optimizations.
* doc/tm.texi (Misc): Document TARGET_MIN_DIVISIONS_FOR_RECIP_MUL.
gcc/testsuite:
2006-01-11 Paolo Bonzini <bonzini@gnu.org>
PR tree-optimization/23109
PR tree-optimization/23948
PR tree-optimization/24123
* gcc.dg/tree-ssa/recip-3.c, gcc.dg/tree-ssa/recip-4.c,
gcc.dg/tree-ssa/recip-5.c, gcc.dg/tree-ssa/recip-6.c,
gcc.dg/tree-ssa/recip-7.c, gcc.dg/tree-ssa/pr23109.c,
g++.dg/tree-ssa/pr23948.C: New testcases.
* gcc.dg/tree-ssa/recip-2.c, gcc.dg/tree-ssa/pr23234.c: Provide
three divisions in order to do the optimization.
From-SVN: r109578
2006-01-11 14:02:18 +01:00
|
|
|
|
2006-01-11 Paolo Bonzini <bonzini@gnu.org>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/23109
|
|
|
|
|
PR tree-optimization/23948
|
|
|
|
|
PR tree-optimization/24123
|
|
|
|
|
|
|
|
|
|
* Makefile.in (tree-ssa-math-opts.o): Adjust dependencies.
|
2006-01-23 16:14:53 +01:00
|
|
|
|
* tree-cfg.c (single_noncomplex_succ): New.
|
|
|
|
|
* tree-flow.h (single_noncomplex_succ): Declare it.
|
|
|
|
|
* tree-ssa-math-opts.c (enum place_reciprocal): Remove.
|
|
|
|
|
* tree-ssa-math-opts.c (enum place_reciprocal): Remove.
|
|
|
|
|
(struct occurrence, occ_head, occ_pool, is_divide_by, compute_merit,
|
re PR tree-optimization/23109 (compiler generates wrong code leading to spurious division by zero with -funsafe-math-optimizations (instead of -ftrapping-math))
gcc:
2006-01-11 Paolo Bonzini <bonzini@gnu.org>
PR tree-optimization/23109
PR tree-optimization/23948
PR tree-optimization/24123
* Makefile.in (tree-ssa-math-opts.o): Adjust dependencies.
* tree-cfg.c (single_noncomplex_succ): New.
* tree-flow.h (single_noncomplex_succ): Declare it.
* tree-ssa-math-opts.c (enum place_reciprocal): Remove.
* tree-ssa-math-opts.c (enum place_reciprocal): Remove.
(struct occurrence, occ_head, occ_pool, is_divide_by, compute_merit,
insert_bb, register_division_in, insert_reciprocals,
replace_reciprocal, free_bb): New.
(execute_cse_reciprocals_1): Rewritten.
(execute_cse_reciprocals): Adjust calls to execute_cse_reciprocals_1.
Do not commit any edge insertion. Always compute dominators and
create the allocation pool.
* target-def.h (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): New.
* target.h (struct gcc_target): Add min_divistions_for_recip_mul.
* targhooks.c (default_min_divistions_for_recip_mul): New.
* targhooks.h (default_min_divistions_for_recip_mul): New prototype.
* passes.c (init_optimization_passes): Run recip after tree loop
optimizations.
* doc/tm.texi (Misc): Document TARGET_MIN_DIVISIONS_FOR_RECIP_MUL.
gcc/testsuite:
2006-01-11 Paolo Bonzini <bonzini@gnu.org>
PR tree-optimization/23109
PR tree-optimization/23948
PR tree-optimization/24123
* gcc.dg/tree-ssa/recip-3.c, gcc.dg/tree-ssa/recip-4.c,
gcc.dg/tree-ssa/recip-5.c, gcc.dg/tree-ssa/recip-6.c,
gcc.dg/tree-ssa/recip-7.c, gcc.dg/tree-ssa/pr23109.c,
g++.dg/tree-ssa/pr23948.C: New testcases.
* gcc.dg/tree-ssa/recip-2.c, gcc.dg/tree-ssa/pr23234.c: Provide
three divisions in order to do the optimization.
From-SVN: r109578
2006-01-11 14:02:18 +01:00
|
|
|
|
insert_bb, register_division_in, insert_reciprocals,
|
|
|
|
|
replace_reciprocal, free_bb): New.
|
2006-01-23 16:14:53 +01:00
|
|
|
|
(execute_cse_reciprocals_1): Rewritten.
|
|
|
|
|
(execute_cse_reciprocals): Adjust calls to execute_cse_reciprocals_1.
|
|
|
|
|
Do not commit any edge insertion. Always compute dominators and
|
|
|
|
|
create the allocation pool.
|
|
|
|
|
* target-def.h (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): New.
|
re PR tree-optimization/23109 (compiler generates wrong code leading to spurious division by zero with -funsafe-math-optimizations (instead of -ftrapping-math))
gcc:
2006-01-11 Paolo Bonzini <bonzini@gnu.org>
PR tree-optimization/23109
PR tree-optimization/23948
PR tree-optimization/24123
* Makefile.in (tree-ssa-math-opts.o): Adjust dependencies.
* tree-cfg.c (single_noncomplex_succ): New.
* tree-flow.h (single_noncomplex_succ): Declare it.
* tree-ssa-math-opts.c (enum place_reciprocal): Remove.
* tree-ssa-math-opts.c (enum place_reciprocal): Remove.
(struct occurrence, occ_head, occ_pool, is_divide_by, compute_merit,
insert_bb, register_division_in, insert_reciprocals,
replace_reciprocal, free_bb): New.
(execute_cse_reciprocals_1): Rewritten.
(execute_cse_reciprocals): Adjust calls to execute_cse_reciprocals_1.
Do not commit any edge insertion. Always compute dominators and
create the allocation pool.
* target-def.h (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): New.
* target.h (struct gcc_target): Add min_divistions_for_recip_mul.
* targhooks.c (default_min_divistions_for_recip_mul): New.
* targhooks.h (default_min_divistions_for_recip_mul): New prototype.
* passes.c (init_optimization_passes): Run recip after tree loop
optimizations.
* doc/tm.texi (Misc): Document TARGET_MIN_DIVISIONS_FOR_RECIP_MUL.
gcc/testsuite:
2006-01-11 Paolo Bonzini <bonzini@gnu.org>
PR tree-optimization/23109
PR tree-optimization/23948
PR tree-optimization/24123
* gcc.dg/tree-ssa/recip-3.c, gcc.dg/tree-ssa/recip-4.c,
gcc.dg/tree-ssa/recip-5.c, gcc.dg/tree-ssa/recip-6.c,
gcc.dg/tree-ssa/recip-7.c, gcc.dg/tree-ssa/pr23109.c,
g++.dg/tree-ssa/pr23948.C: New testcases.
* gcc.dg/tree-ssa/recip-2.c, gcc.dg/tree-ssa/pr23234.c: Provide
three divisions in order to do the optimization.
From-SVN: r109578
2006-01-11 14:02:18 +01:00
|
|
|
|
* target.h (struct gcc_target): Add min_divistions_for_recip_mul.
|
|
|
|
|
* targhooks.c (default_min_divistions_for_recip_mul): New.
|
|
|
|
|
* targhooks.h (default_min_divistions_for_recip_mul): New prototype.
|
2006-01-23 16:14:53 +01:00
|
|
|
|
* passes.c (init_optimization_passes): Run recip after tree loop
|
|
|
|
|
optimizations.
|
|
|
|
|
* doc/tm.texi (Misc): Document TARGET_MIN_DIVISIONS_FOR_RECIP_MUL.
|
re PR tree-optimization/23109 (compiler generates wrong code leading to spurious division by zero with -funsafe-math-optimizations (instead of -ftrapping-math))
gcc:
2006-01-11 Paolo Bonzini <bonzini@gnu.org>
PR tree-optimization/23109
PR tree-optimization/23948
PR tree-optimization/24123
* Makefile.in (tree-ssa-math-opts.o): Adjust dependencies.
* tree-cfg.c (single_noncomplex_succ): New.
* tree-flow.h (single_noncomplex_succ): Declare it.
* tree-ssa-math-opts.c (enum place_reciprocal): Remove.
* tree-ssa-math-opts.c (enum place_reciprocal): Remove.
(struct occurrence, occ_head, occ_pool, is_divide_by, compute_merit,
insert_bb, register_division_in, insert_reciprocals,
replace_reciprocal, free_bb): New.
(execute_cse_reciprocals_1): Rewritten.
(execute_cse_reciprocals): Adjust calls to execute_cse_reciprocals_1.
Do not commit any edge insertion. Always compute dominators and
create the allocation pool.
* target-def.h (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): New.
* target.h (struct gcc_target): Add min_divistions_for_recip_mul.
* targhooks.c (default_min_divistions_for_recip_mul): New.
* targhooks.h (default_min_divistions_for_recip_mul): New prototype.
* passes.c (init_optimization_passes): Run recip after tree loop
optimizations.
* doc/tm.texi (Misc): Document TARGET_MIN_DIVISIONS_FOR_RECIP_MUL.
gcc/testsuite:
2006-01-11 Paolo Bonzini <bonzini@gnu.org>
PR tree-optimization/23109
PR tree-optimization/23948
PR tree-optimization/24123
* gcc.dg/tree-ssa/recip-3.c, gcc.dg/tree-ssa/recip-4.c,
gcc.dg/tree-ssa/recip-5.c, gcc.dg/tree-ssa/recip-6.c,
gcc.dg/tree-ssa/recip-7.c, gcc.dg/tree-ssa/pr23109.c,
g++.dg/tree-ssa/pr23948.C: New testcases.
* gcc.dg/tree-ssa/recip-2.c, gcc.dg/tree-ssa/pr23234.c: Provide
three divisions in order to do the optimization.
From-SVN: r109578
2006-01-11 14:02:18 +01:00
|
|
|
|
|
2006-01-26 19:45:29 +01:00
|
|
|
|
2006-01-11 Danny Berlin <dberlin@dberlin.org>
|
2006-01-23 16:14:53 +01:00
|
|
|
|
Kenneth Zadeck <zadeck@naturalbridge.com>
|
df.h (DF_SCAN, [...]): New macros.
2005-01-11 Danny Berlin <dberlin@dberlin.org>
Kenneth Zadeck <zadeck@naturalbridge.com>
* df.h (DF_SCAN, DF_RU, DF_RD, DF_LR, DF_UR, DF_UREC, DF_CHAIN,
DF_RI, DF_LAST_PROBLEM_PLUS1, DF_DU_CHAIN, DF_UD_CHAIN,
DF_REF_TYPE_NAMES, DF_HARD_REGS, DF_EQUIV_NOTES, DF_SUBREGS,
DF_SCAN_BB_INFO, DF_RU_BB_INFO, DF_RD_BB_INFO, DF_LR_BB_INFO,
DF_UR_BB_INFO, DF_UREC_BB_INFO, DF_LIVE_IN, DF_LIVE_OUT,
DF_RA_LIVE_IN, DF_RA_LIVE_OUT, DF_UPWARD_LIVE_IN,
DF_UPWARD_LIVE_OUT, DF_REF_REAL_REG, DF_REF_REGNO,
DF_REF_REAL_LOC, DF_REF_REG, DF_REF_LOC, DF_REF_BB, DF_REF_BBNO,
DF_REF_INSN, DF_REF_INSN_UID, DF_REF_TYPE, DF_REF_CHAIN,
DF_REF_ID, DF_REF_FLAGS, DF_REF_NEXT_REG, DF_REF_PREV_REG,
DF_REF_NEXT_REF, DF_REF_DATA, DF_REF_REG_DEF_P, DF_REF_REG_USE_P,
DF_REF_REG_MEM_STORE_P, DF_REF_REG_MEM_LOAD_P, DF_REF_REG_MEM_P,
DF_DEFS_SIZE, DF_DEFS_GET, DF_DEFS_SET, DF_USES_SIZE, DF_USES_GET,
DF_USES_SET, DF_REG_SIZE, DF_REG_DEF_GET, DF_REG_DEF_SET,
DF_REG_USE_GET, DF_REG_USE_SET, DF_REGNO_FIRST_DEF,
DF_REGNO_LAST_USE, DF_INSN_SIZE, DF_INSN_GET, DF_INSN_SET,
DF_INSN_CONTAINS_ASM, DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES,
DF_INSN_UID_GET, DF_INSN_UID_LUID, DF_INSN_UID_DEFS,
DF_INSN_UID_USES, DF_SCAN_INITIAL, DF_SCAN_GLOBAL,
DF_SCAN_POST_ALLOC): New macros.
(df_flow_dir, df_ref_type, df_ref_flags, df_alloc_function,
df_free_bb_function, df_local_compute_function, df_init_function,
df_dataflow_function, df_confluence_function_0,
df_confluence_function_n, df_transfer_function,
df_finalizer_function, df_free_function, df_dump_problem_function,
df_problem, dataflow, df_insn_info, df_reg_info, df_ref, df_link,
df_ref_info, df, df_map, df_scan_bb_info, df_ru_bb_info,
df_ru_bb_info, df_rd_bb_info, df_lr_bb_info, df_ur_bb_info,
df_urec_bb_info, ) New types.
(df_invalidated_by_call, df_all_hard_regs, df_state) New public
variables.
(df_init, df_add_problem, df_set_blocks, df_finish, df_analyze,
df_analyze_simple_change_some_blocks,
df_analyze_simple_change_one_block, df_compact_blocks,
df_bb_replace, df_bb_regno_last_use_find,
df_bb_regno_first_def_find, df_bb_regno_last_def_find,
df_insn_regno_def_p, df_find_def, df_find_use,
df_iterative_dataflow, df_dump, df_chain_dump, df_refs_chain_dump,
df_regs_chain_dump, df_insn_debug, df_insn_debug_regno,
df_regno_debug, df_ref_debug, debug_df_insn, debug_df_regno,
debug_df_reg, debug_df_defno, debug_df_useno, debug_df_ref,
debug_df_chain, df_get_dependent_problem, df_chain_create,
df_chain_unlink, df_chain_copy, df_get_live_in, df_get_live_out,
df_grow_bb_info, df_chain_dump, df_print_bb_index,
df_ru_add_problem, df_ru_get_bb_info, df_rd_add_problem,
df_rd_get_bb_info, df_lr_add_problem, df_lr_get_bb_info,
df_ur_add_problem, df_ur_get_bb_info, df_urec_add_problem,
df_urec_get_bb_info, df_chain_add_problem, df_ri_add_problem,
df_reg_lifetime, df_scan_get_bb_info, df_scan_add_problem,
df_rescan_blocks, df_ref_create, df_get_artificial_defs,
df_get_artificial_uses, df_reg_chain_create, df_reg_chain_unlink,
df_ref_remove, df_insn_refs_delete, df_refs_delete,
df_reorganize_refs, df_set_state, df_hard_reg_init,
df_read_modify_subreg_p) New public functions.
* df-core.c: The core dataflow solver and glue routines for rtl
dataflow.
(df_init, df_add_problem, df_set_blocks, df_finish,
df_hybrid_search_forward, df_hybrid_search_backward,
df_iterative_dataflow, df_prune_to_subcfg, df_analyze_problem,
df_analyze, df_get_bb_info, df_set_bb_info, df_bb_replace,
df_bb_regno_last_use_find, df_bb_regno_first_def_find,
df_bb_regno_last_def_find, df_insn_regno_def_p, df_find_def,
df_reg_defined, df_find_use, df_reg_used, df_dump,
df_refs_chain_dump, df_regs_chain_dump, df_insn_debug,
df_insn_debug_regno, df_regno_debug, df_ref_debug, debug_df_insn,
debug_df_reg, debug_df_regno, debug_df_ref debug_df_defno,
debug_df_useno, reset_df_after_reload): New functions.
* df-scan.c: The scanning fuctions, once in df.c, completely
rewritten so that they now fully model the functionality of
register usage at the backend.
(df_scan_free_internal, df_scan_get_bb_info, df_scan_set_bb_info,
df_scan_free_bb_info, df_scan_alloc, df_scan_free, df_scan_dump,
df_scan_add_problem, df_grow_reg_info, df_grow_ref_info,
df_grow_insn_info, df_rescan_blocks, df_ref_create,
df_get_artificial_defs, df_get_artificial_uses,
df_reg_chain_create, df_ref_unlink, df_reg_chain_unlink,
df_ref_remove, df_insn_create_insn_record, df_insn_refs_delete,
df_refs_delete, df_reorganize_refs, df_set_state,
df_ref_create_structure, df_ref_record, df_read_modify_subreg_p,
df_def_record_1, df_defs_record, df_uses_record,
df_insn_contains_asm_1, df_insn_contains_asm, df_insn_refs_record,
df_has_eh_preds, df_bb_refs_record, df_refs_record, df_mark_reg,
df_record_exit_block_uses, df_hard_reg_init): New functions.
* df-problems.c: Seven concrete dataflow problems that use the
scanning in df-scan.c and are solved by the engine in df-core.c.
(df_get_dependent_problem, df_chain_create, df_chain_unlink,
df_chain_copy, df_get_live_in, df_get_live_out, df_grow_bb_info,
df_chain_dump, df_print_bb_index, df_ref_bitmap, df_set_seen,
df_unset_seen, df_ru_get_bb_info, df_ru_set_bb_info,
df_ru_free_bb_info, df_ru_alloc,
df_ru_bb_local_compute_process_def,
df_ru_bb_local_compute_process_use, df_ru_bb_local_compute,
df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n,
df_ru_transfer_function, df_ru_free, df_ru_dump,
df_ru_add_problem, df_rd_get_bb_info, df_rd_set_bb_info,
df_rd_free_bb_info, df_rd_alloc,
df_rd_bb_local_compute_process_def, df_rd_bb_local_compute,
df_rd_local_compute, df_rd_init_solution, df_rd_confluence_n,
df_rd_transfer_function, df_rd_free, df_rd_dump,
df_rd_add_problem, df_lr_get_bb_info, df_lr_set_bb_info,
df_lr_free_bb_info, df_lr_alloc, df_lr_bb_local_compute,
df_lr_local_compute, df_lr_init, df_lr_confluence_0,
df_lr_confluence_n, df_lr_transfer_function, df_lr_free,
df_lr_dump, df_lr_add_problem, df_ur_get_bb_info,
df_ur_set_bb_info, df_ur_free_bb_info, df_ur_alloc,
df_ur_bb_local_compute, df_ur_local_compute, df_ur_init,
df_ur_local_finalize, df_ur_confluence_n, df_ur_transfer_function,
df_ur_free, df_ur_dump, df_ur_add_problem, df_urec_get_bb_info,
df_urec_set_bb_info, df_urec_free_bb_info, df_urec_alloc,
df_urec_mark_reg_change, df_urec_check_earlyclobber,
df_urec_mark_reg_use_for_earlyclobber,
df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute,
df_urec_local_compute, df_urec_init, df_urec_local_finalize,
df_urec_confluence_n, df_urec_transfer_function, df_urec_free,
df_urec_dump, df_urec_add_problem, df_chain_alloc,
df_chain_create_bb_process_use, df_chain_create_bb,
df_chain_finalize, df_chain_free, df_chains_dump,
df_chain_add_problem, df_ri_alloc, df_ri_bb_compute,
df_ri_compute, df_ri_free, df_ri_dump, df_ri_add_problem,
df_reg_lifetime): New functions.
* df.c: Deleted file.
* ddg.c (create_ddg_dep_no_link, build_inter_loop_deps): Made code
consistent with new df api.
* modulo-sched.c (sms_schedule, rest_of_handle_sms,
rest_of_handle_sms): Ditto.
* web.c (unionfind_union, union_defs, entry_register, web_main):
Ditto.
* loop_invariant.c (invariant_for_use, hash_invariant_expr_1,
invariant_expr_equal_p, find_defs, check_dependencies,
find_invariant_insn, find_invariants_to_move, move_invariant_reg,
free_inv_motion_data, move_loop_invariants): Ditto.
* sched-deps.c (sched_analyze_1): Ditto.
Co-Authored-By: Kenneth Zadeck <zadeck@naturalbridge.com>
From-SVN: r109577
2006-01-11 13:57:18 +01:00
|
|
|
|
|
|
|
|
|
* df.h (DF_SCAN, DF_RU, DF_RD, DF_LR, DF_UR, DF_UREC, DF_CHAIN,
|
|
|
|
|
DF_RI, DF_LAST_PROBLEM_PLUS1, DF_DU_CHAIN, DF_UD_CHAIN,
|
|
|
|
|
DF_REF_TYPE_NAMES, DF_HARD_REGS, DF_EQUIV_NOTES, DF_SUBREGS,
|
|
|
|
|
DF_SCAN_BB_INFO, DF_RU_BB_INFO, DF_RD_BB_INFO, DF_LR_BB_INFO,
|
|
|
|
|
DF_UR_BB_INFO, DF_UREC_BB_INFO, DF_LIVE_IN, DF_LIVE_OUT,
|
|
|
|
|
DF_RA_LIVE_IN, DF_RA_LIVE_OUT, DF_UPWARD_LIVE_IN,
|
|
|
|
|
DF_UPWARD_LIVE_OUT, DF_REF_REAL_REG, DF_REF_REGNO,
|
|
|
|
|
DF_REF_REAL_LOC, DF_REF_REG, DF_REF_LOC, DF_REF_BB, DF_REF_BBNO,
|
|
|
|
|
DF_REF_INSN, DF_REF_INSN_UID, DF_REF_TYPE, DF_REF_CHAIN,
|
|
|
|
|
DF_REF_ID, DF_REF_FLAGS, DF_REF_NEXT_REG, DF_REF_PREV_REG,
|
|
|
|
|
DF_REF_NEXT_REF, DF_REF_DATA, DF_REF_REG_DEF_P, DF_REF_REG_USE_P,
|
|
|
|
|
DF_REF_REG_MEM_STORE_P, DF_REF_REG_MEM_LOAD_P, DF_REF_REG_MEM_P,
|
|
|
|
|
DF_DEFS_SIZE, DF_DEFS_GET, DF_DEFS_SET, DF_USES_SIZE, DF_USES_GET,
|
|
|
|
|
DF_USES_SET, DF_REG_SIZE, DF_REG_DEF_GET, DF_REG_DEF_SET,
|
|
|
|
|
DF_REG_USE_GET, DF_REG_USE_SET, DF_REGNO_FIRST_DEF,
|
|
|
|
|
DF_REGNO_LAST_USE, DF_INSN_SIZE, DF_INSN_GET, DF_INSN_SET,
|
|
|
|
|
DF_INSN_CONTAINS_ASM, DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES,
|
|
|
|
|
DF_INSN_UID_GET, DF_INSN_UID_LUID, DF_INSN_UID_DEFS,
|
|
|
|
|
DF_INSN_UID_USES, DF_SCAN_INITIAL, DF_SCAN_GLOBAL,
|
|
|
|
|
DF_SCAN_POST_ALLOC): New macros.
|
|
|
|
|
(df_flow_dir, df_ref_type, df_ref_flags, df_alloc_function,
|
|
|
|
|
df_free_bb_function, df_local_compute_function, df_init_function,
|
|
|
|
|
df_dataflow_function, df_confluence_function_0,
|
|
|
|
|
df_confluence_function_n, df_transfer_function,
|
|
|
|
|
df_finalizer_function, df_free_function, df_dump_problem_function,
|
|
|
|
|
df_problem, dataflow, df_insn_info, df_reg_info, df_ref, df_link,
|
|
|
|
|
df_ref_info, df, df_map, df_scan_bb_info, df_ru_bb_info,
|
|
|
|
|
df_ru_bb_info, df_rd_bb_info, df_lr_bb_info, df_ur_bb_info,
|
|
|
|
|
df_urec_bb_info, ) New types.
|
|
|
|
|
(df_invalidated_by_call, df_all_hard_regs, df_state) New public
|
|
|
|
|
variables.
|
|
|
|
|
(df_init, df_add_problem, df_set_blocks, df_finish, df_analyze,
|
|
|
|
|
df_analyze_simple_change_some_blocks,
|
|
|
|
|
df_analyze_simple_change_one_block, df_compact_blocks,
|
|
|
|
|
df_bb_replace, df_bb_regno_last_use_find,
|
|
|
|
|
df_bb_regno_first_def_find, df_bb_regno_last_def_find,
|
|
|
|
|
df_insn_regno_def_p, df_find_def, df_find_use,
|
|
|
|
|
df_iterative_dataflow, df_dump, df_chain_dump, df_refs_chain_dump,
|
|
|
|
|
df_regs_chain_dump, df_insn_debug, df_insn_debug_regno,
|
|
|
|
|
df_regno_debug, df_ref_debug, debug_df_insn, debug_df_regno,
|
|
|
|
|
debug_df_reg, debug_df_defno, debug_df_useno, debug_df_ref,
|
|
|
|
|
debug_df_chain, df_get_dependent_problem, df_chain_create,
|
|
|
|
|
df_chain_unlink, df_chain_copy, df_get_live_in, df_get_live_out,
|
|
|
|
|
df_grow_bb_info, df_chain_dump, df_print_bb_index,
|
|
|
|
|
df_ru_add_problem, df_ru_get_bb_info, df_rd_add_problem,
|
|
|
|
|
df_rd_get_bb_info, df_lr_add_problem, df_lr_get_bb_info,
|
|
|
|
|
df_ur_add_problem, df_ur_get_bb_info, df_urec_add_problem,
|
|
|
|
|
df_urec_get_bb_info, df_chain_add_problem, df_ri_add_problem,
|
|
|
|
|
df_reg_lifetime, df_scan_get_bb_info, df_scan_add_problem,
|
|
|
|
|
df_rescan_blocks, df_ref_create, df_get_artificial_defs,
|
|
|
|
|
df_get_artificial_uses, df_reg_chain_create, df_reg_chain_unlink,
|
|
|
|
|
df_ref_remove, df_insn_refs_delete, df_refs_delete,
|
|
|
|
|
df_reorganize_refs, df_set_state, df_hard_reg_init,
|
|
|
|
|
df_read_modify_subreg_p) New public functions.
|
2006-01-23 16:14:53 +01:00
|
|
|
|
* df-core.c: The core dataflow solver and glue routines for rtl
|
df.h (DF_SCAN, [...]): New macros.
2005-01-11 Danny Berlin <dberlin@dberlin.org>
Kenneth Zadeck <zadeck@naturalbridge.com>
* df.h (DF_SCAN, DF_RU, DF_RD, DF_LR, DF_UR, DF_UREC, DF_CHAIN,
DF_RI, DF_LAST_PROBLEM_PLUS1, DF_DU_CHAIN, DF_UD_CHAIN,
DF_REF_TYPE_NAMES, DF_HARD_REGS, DF_EQUIV_NOTES, DF_SUBREGS,
DF_SCAN_BB_INFO, DF_RU_BB_INFO, DF_RD_BB_INFO, DF_LR_BB_INFO,
DF_UR_BB_INFO, DF_UREC_BB_INFO, DF_LIVE_IN, DF_LIVE_OUT,
DF_RA_LIVE_IN, DF_RA_LIVE_OUT, DF_UPWARD_LIVE_IN,
DF_UPWARD_LIVE_OUT, DF_REF_REAL_REG, DF_REF_REGNO,
DF_REF_REAL_LOC, DF_REF_REG, DF_REF_LOC, DF_REF_BB, DF_REF_BBNO,
DF_REF_INSN, DF_REF_INSN_UID, DF_REF_TYPE, DF_REF_CHAIN,
DF_REF_ID, DF_REF_FLAGS, DF_REF_NEXT_REG, DF_REF_PREV_REG,
DF_REF_NEXT_REF, DF_REF_DATA, DF_REF_REG_DEF_P, DF_REF_REG_USE_P,
DF_REF_REG_MEM_STORE_P, DF_REF_REG_MEM_LOAD_P, DF_REF_REG_MEM_P,
DF_DEFS_SIZE, DF_DEFS_GET, DF_DEFS_SET, DF_USES_SIZE, DF_USES_GET,
DF_USES_SET, DF_REG_SIZE, DF_REG_DEF_GET, DF_REG_DEF_SET,
DF_REG_USE_GET, DF_REG_USE_SET, DF_REGNO_FIRST_DEF,
DF_REGNO_LAST_USE, DF_INSN_SIZE, DF_INSN_GET, DF_INSN_SET,
DF_INSN_CONTAINS_ASM, DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES,
DF_INSN_UID_GET, DF_INSN_UID_LUID, DF_INSN_UID_DEFS,
DF_INSN_UID_USES, DF_SCAN_INITIAL, DF_SCAN_GLOBAL,
DF_SCAN_POST_ALLOC): New macros.
(df_flow_dir, df_ref_type, df_ref_flags, df_alloc_function,
df_free_bb_function, df_local_compute_function, df_init_function,
df_dataflow_function, df_confluence_function_0,
df_confluence_function_n, df_transfer_function,
df_finalizer_function, df_free_function, df_dump_problem_function,
df_problem, dataflow, df_insn_info, df_reg_info, df_ref, df_link,
df_ref_info, df, df_map, df_scan_bb_info, df_ru_bb_info,
df_ru_bb_info, df_rd_bb_info, df_lr_bb_info, df_ur_bb_info,
df_urec_bb_info, ) New types.
(df_invalidated_by_call, df_all_hard_regs, df_state) New public
variables.
(df_init, df_add_problem, df_set_blocks, df_finish, df_analyze,
df_analyze_simple_change_some_blocks,
df_analyze_simple_change_one_block, df_compact_blocks,
df_bb_replace, df_bb_regno_last_use_find,
df_bb_regno_first_def_find, df_bb_regno_last_def_find,
df_insn_regno_def_p, df_find_def, df_find_use,
df_iterative_dataflow, df_dump, df_chain_dump, df_refs_chain_dump,
df_regs_chain_dump, df_insn_debug, df_insn_debug_regno,
df_regno_debug, df_ref_debug, debug_df_insn, debug_df_regno,
debug_df_reg, debug_df_defno, debug_df_useno, debug_df_ref,
debug_df_chain, df_get_dependent_problem, df_chain_create,
df_chain_unlink, df_chain_copy, df_get_live_in, df_get_live_out,
df_grow_bb_info, df_chain_dump, df_print_bb_index,
df_ru_add_problem, df_ru_get_bb_info, df_rd_add_problem,
df_rd_get_bb_info, df_lr_add_problem, df_lr_get_bb_info,
df_ur_add_problem, df_ur_get_bb_info, df_urec_add_problem,
df_urec_get_bb_info, df_chain_add_problem, df_ri_add_problem,
df_reg_lifetime, df_scan_get_bb_info, df_scan_add_problem,
df_rescan_blocks, df_ref_create, df_get_artificial_defs,
df_get_artificial_uses, df_reg_chain_create, df_reg_chain_unlink,
df_ref_remove, df_insn_refs_delete, df_refs_delete,
df_reorganize_refs, df_set_state, df_hard_reg_init,
df_read_modify_subreg_p) New public functions.
* df-core.c: The core dataflow solver and glue routines for rtl
dataflow.
(df_init, df_add_problem, df_set_blocks, df_finish,
df_hybrid_search_forward, df_hybrid_search_backward,
df_iterative_dataflow, df_prune_to_subcfg, df_analyze_problem,
df_analyze, df_get_bb_info, df_set_bb_info, df_bb_replace,
df_bb_regno_last_use_find, df_bb_regno_first_def_find,
df_bb_regno_last_def_find, df_insn_regno_def_p, df_find_def,
df_reg_defined, df_find_use, df_reg_used, df_dump,
df_refs_chain_dump, df_regs_chain_dump, df_insn_debug,
df_insn_debug_regno, df_regno_debug, df_ref_debug, debug_df_insn,
debug_df_reg, debug_df_regno, debug_df_ref debug_df_defno,
debug_df_useno, reset_df_after_reload): New functions.
* df-scan.c: The scanning fuctions, once in df.c, completely
rewritten so that they now fully model the functionality of
register usage at the backend.
(df_scan_free_internal, df_scan_get_bb_info, df_scan_set_bb_info,
df_scan_free_bb_info, df_scan_alloc, df_scan_free, df_scan_dump,
df_scan_add_problem, df_grow_reg_info, df_grow_ref_info,
df_grow_insn_info, df_rescan_blocks, df_ref_create,
df_get_artificial_defs, df_get_artificial_uses,
df_reg_chain_create, df_ref_unlink, df_reg_chain_unlink,
df_ref_remove, df_insn_create_insn_record, df_insn_refs_delete,
df_refs_delete, df_reorganize_refs, df_set_state,
df_ref_create_structure, df_ref_record, df_read_modify_subreg_p,
df_def_record_1, df_defs_record, df_uses_record,
df_insn_contains_asm_1, df_insn_contains_asm, df_insn_refs_record,
df_has_eh_preds, df_bb_refs_record, df_refs_record, df_mark_reg,
df_record_exit_block_uses, df_hard_reg_init): New functions.
* df-problems.c: Seven concrete dataflow problems that use the
scanning in df-scan.c and are solved by the engine in df-core.c.
(df_get_dependent_problem, df_chain_create, df_chain_unlink,
df_chain_copy, df_get_live_in, df_get_live_out, df_grow_bb_info,
df_chain_dump, df_print_bb_index, df_ref_bitmap, df_set_seen,
df_unset_seen, df_ru_get_bb_info, df_ru_set_bb_info,
df_ru_free_bb_info, df_ru_alloc,
df_ru_bb_local_compute_process_def,
df_ru_bb_local_compute_process_use, df_ru_bb_local_compute,
df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n,
df_ru_transfer_function, df_ru_free, df_ru_dump,
df_ru_add_problem, df_rd_get_bb_info, df_rd_set_bb_info,
df_rd_free_bb_info, df_rd_alloc,
df_rd_bb_local_compute_process_def, df_rd_bb_local_compute,
df_rd_local_compute, df_rd_init_solution, df_rd_confluence_n,
df_rd_transfer_function, df_rd_free, df_rd_dump,
df_rd_add_problem, df_lr_get_bb_info, df_lr_set_bb_info,
df_lr_free_bb_info, df_lr_alloc, df_lr_bb_local_compute,
df_lr_local_compute, df_lr_init, df_lr_confluence_0,
df_lr_confluence_n, df_lr_transfer_function, df_lr_free,
df_lr_dump, df_lr_add_problem, df_ur_get_bb_info,
df_ur_set_bb_info, df_ur_free_bb_info, df_ur_alloc,
df_ur_bb_local_compute, df_ur_local_compute, df_ur_init,
df_ur_local_finalize, df_ur_confluence_n, df_ur_transfer_function,
df_ur_free, df_ur_dump, df_ur_add_problem, df_urec_get_bb_info,
df_urec_set_bb_info, df_urec_free_bb_info, df_urec_alloc,
df_urec_mark_reg_change, df_urec_check_earlyclobber,
df_urec_mark_reg_use_for_earlyclobber,
df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute,
df_urec_local_compute, df_urec_init, df_urec_local_finalize,
df_urec_confluence_n, df_urec_transfer_function, df_urec_free,
df_urec_dump, df_urec_add_problem, df_chain_alloc,
df_chain_create_bb_process_use, df_chain_create_bb,
df_chain_finalize, df_chain_free, df_chains_dump,
df_chain_add_problem, df_ri_alloc, df_ri_bb_compute,
df_ri_compute, df_ri_free, df_ri_dump, df_ri_add_problem,
df_reg_lifetime): New functions.
* df.c: Deleted file.
* ddg.c (create_ddg_dep_no_link, build_inter_loop_deps): Made code
consistent with new df api.
* modulo-sched.c (sms_schedule, rest_of_handle_sms,
rest_of_handle_sms): Ditto.
* web.c (unionfind_union, union_defs, entry_register, web_main):
Ditto.
* loop_invariant.c (invariant_for_use, hash_invariant_expr_1,
invariant_expr_equal_p, find_defs, check_dependencies,
find_invariant_insn, find_invariants_to_move, move_invariant_reg,
free_inv_motion_data, move_loop_invariants): Ditto.
* sched-deps.c (sched_analyze_1): Ditto.
Co-Authored-By: Kenneth Zadeck <zadeck@naturalbridge.com>
From-SVN: r109577
2006-01-11 13:57:18 +01:00
|
|
|
|
dataflow.
|
|
|
|
|
(df_init, df_add_problem, df_set_blocks, df_finish,
|
|
|
|
|
df_hybrid_search_forward, df_hybrid_search_backward,
|
|
|
|
|
df_iterative_dataflow, df_prune_to_subcfg, df_analyze_problem,
|
|
|
|
|
df_analyze, df_get_bb_info, df_set_bb_info, df_bb_replace,
|
|
|
|
|
df_bb_regno_last_use_find, df_bb_regno_first_def_find,
|
|
|
|
|
df_bb_regno_last_def_find, df_insn_regno_def_p, df_find_def,
|
|
|
|
|
df_reg_defined, df_find_use, df_reg_used, df_dump,
|
|
|
|
|
df_refs_chain_dump, df_regs_chain_dump, df_insn_debug,
|
|
|
|
|
df_insn_debug_regno, df_regno_debug, df_ref_debug, debug_df_insn,
|
|
|
|
|
debug_df_reg, debug_df_regno, debug_df_ref debug_df_defno,
|
|
|
|
|
debug_df_useno, reset_df_after_reload): New functions.
|
|
|
|
|
* df-scan.c: The scanning fuctions, once in df.c, completely
|
|
|
|
|
rewritten so that they now fully model the functionality of
|
|
|
|
|
register usage at the backend.
|
|
|
|
|
(df_scan_free_internal, df_scan_get_bb_info, df_scan_set_bb_info,
|
|
|
|
|
df_scan_free_bb_info, df_scan_alloc, df_scan_free, df_scan_dump,
|
|
|
|
|
df_scan_add_problem, df_grow_reg_info, df_grow_ref_info,
|
|
|
|
|
df_grow_insn_info, df_rescan_blocks, df_ref_create,
|
|
|
|
|
df_get_artificial_defs, df_get_artificial_uses,
|
|
|
|
|
df_reg_chain_create, df_ref_unlink, df_reg_chain_unlink,
|
|
|
|
|
df_ref_remove, df_insn_create_insn_record, df_insn_refs_delete,
|
|
|
|
|
df_refs_delete, df_reorganize_refs, df_set_state,
|
|
|
|
|
df_ref_create_structure, df_ref_record, df_read_modify_subreg_p,
|
|
|
|
|
df_def_record_1, df_defs_record, df_uses_record,
|
|
|
|
|
df_insn_contains_asm_1, df_insn_contains_asm, df_insn_refs_record,
|
|
|
|
|
df_has_eh_preds, df_bb_refs_record, df_refs_record, df_mark_reg,
|
|
|
|
|
df_record_exit_block_uses, df_hard_reg_init): New functions.
|
|
|
|
|
|
|
|
|
|
* df-problems.c: Seven concrete dataflow problems that use the
|
|
|
|
|
scanning in df-scan.c and are solved by the engine in df-core.c.
|
|
|
|
|
(df_get_dependent_problem, df_chain_create, df_chain_unlink,
|
|
|
|
|
df_chain_copy, df_get_live_in, df_get_live_out, df_grow_bb_info,
|
|
|
|
|
df_chain_dump, df_print_bb_index, df_ref_bitmap, df_set_seen,
|
|
|
|
|
df_unset_seen, df_ru_get_bb_info, df_ru_set_bb_info,
|
|
|
|
|
df_ru_free_bb_info, df_ru_alloc,
|
|
|
|
|
df_ru_bb_local_compute_process_def,
|
|
|
|
|
df_ru_bb_local_compute_process_use, df_ru_bb_local_compute,
|
|
|
|
|
df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n,
|
|
|
|
|
df_ru_transfer_function, df_ru_free, df_ru_dump,
|
|
|
|
|
df_ru_add_problem, df_rd_get_bb_info, df_rd_set_bb_info,
|
|
|
|
|
df_rd_free_bb_info, df_rd_alloc,
|
|
|
|
|
df_rd_bb_local_compute_process_def, df_rd_bb_local_compute,
|
|
|
|
|
df_rd_local_compute, df_rd_init_solution, df_rd_confluence_n,
|
|
|
|
|
df_rd_transfer_function, df_rd_free, df_rd_dump,
|
|
|
|
|
df_rd_add_problem, df_lr_get_bb_info, df_lr_set_bb_info,
|
|
|
|
|
df_lr_free_bb_info, df_lr_alloc, df_lr_bb_local_compute,
|
|
|
|
|
df_lr_local_compute, df_lr_init, df_lr_confluence_0,
|
|
|
|
|
df_lr_confluence_n, df_lr_transfer_function, df_lr_free,
|
|
|
|
|
df_lr_dump, df_lr_add_problem, df_ur_get_bb_info,
|
|
|
|
|
df_ur_set_bb_info, df_ur_free_bb_info, df_ur_alloc,
|
|
|
|
|
df_ur_bb_local_compute, df_ur_local_compute, df_ur_init,
|
|
|
|
|
df_ur_local_finalize, df_ur_confluence_n, df_ur_transfer_function,
|
|
|
|
|
df_ur_free, df_ur_dump, df_ur_add_problem, df_urec_get_bb_info,
|
|
|
|
|
df_urec_set_bb_info, df_urec_free_bb_info, df_urec_alloc,
|
|
|
|
|
df_urec_mark_reg_change, df_urec_check_earlyclobber,
|
|
|
|
|
df_urec_mark_reg_use_for_earlyclobber,
|
|
|
|
|
df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute,
|
|
|
|
|
df_urec_local_compute, df_urec_init, df_urec_local_finalize,
|
|
|
|
|
df_urec_confluence_n, df_urec_transfer_function, df_urec_free,
|
|
|
|
|
df_urec_dump, df_urec_add_problem, df_chain_alloc,
|
|
|
|
|
df_chain_create_bb_process_use, df_chain_create_bb,
|
|
|
|
|
df_chain_finalize, df_chain_free, df_chains_dump,
|
|
|
|
|
df_chain_add_problem, df_ri_alloc, df_ri_bb_compute,
|
|
|
|
|
df_ri_compute, df_ri_free, df_ri_dump, df_ri_add_problem,
|
|
|
|
|
df_reg_lifetime): New functions.
|
|
|
|
|
* df.c: Deleted file.
|
2006-01-23 16:14:53 +01:00
|
|
|
|
* ddg.c (create_ddg_dep_no_link, build_inter_loop_deps): Made code
|
df.h (DF_SCAN, [...]): New macros.
2005-01-11 Danny Berlin <dberlin@dberlin.org>
Kenneth Zadeck <zadeck@naturalbridge.com>
* df.h (DF_SCAN, DF_RU, DF_RD, DF_LR, DF_UR, DF_UREC, DF_CHAIN,
DF_RI, DF_LAST_PROBLEM_PLUS1, DF_DU_CHAIN, DF_UD_CHAIN,
DF_REF_TYPE_NAMES, DF_HARD_REGS, DF_EQUIV_NOTES, DF_SUBREGS,
DF_SCAN_BB_INFO, DF_RU_BB_INFO, DF_RD_BB_INFO, DF_LR_BB_INFO,
DF_UR_BB_INFO, DF_UREC_BB_INFO, DF_LIVE_IN, DF_LIVE_OUT,
DF_RA_LIVE_IN, DF_RA_LIVE_OUT, DF_UPWARD_LIVE_IN,
DF_UPWARD_LIVE_OUT, DF_REF_REAL_REG, DF_REF_REGNO,
DF_REF_REAL_LOC, DF_REF_REG, DF_REF_LOC, DF_REF_BB, DF_REF_BBNO,
DF_REF_INSN, DF_REF_INSN_UID, DF_REF_TYPE, DF_REF_CHAIN,
DF_REF_ID, DF_REF_FLAGS, DF_REF_NEXT_REG, DF_REF_PREV_REG,
DF_REF_NEXT_REF, DF_REF_DATA, DF_REF_REG_DEF_P, DF_REF_REG_USE_P,
DF_REF_REG_MEM_STORE_P, DF_REF_REG_MEM_LOAD_P, DF_REF_REG_MEM_P,
DF_DEFS_SIZE, DF_DEFS_GET, DF_DEFS_SET, DF_USES_SIZE, DF_USES_GET,
DF_USES_SET, DF_REG_SIZE, DF_REG_DEF_GET, DF_REG_DEF_SET,
DF_REG_USE_GET, DF_REG_USE_SET, DF_REGNO_FIRST_DEF,
DF_REGNO_LAST_USE, DF_INSN_SIZE, DF_INSN_GET, DF_INSN_SET,
DF_INSN_CONTAINS_ASM, DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES,
DF_INSN_UID_GET, DF_INSN_UID_LUID, DF_INSN_UID_DEFS,
DF_INSN_UID_USES, DF_SCAN_INITIAL, DF_SCAN_GLOBAL,
DF_SCAN_POST_ALLOC): New macros.
(df_flow_dir, df_ref_type, df_ref_flags, df_alloc_function,
df_free_bb_function, df_local_compute_function, df_init_function,
df_dataflow_function, df_confluence_function_0,
df_confluence_function_n, df_transfer_function,
df_finalizer_function, df_free_function, df_dump_problem_function,
df_problem, dataflow, df_insn_info, df_reg_info, df_ref, df_link,
df_ref_info, df, df_map, df_scan_bb_info, df_ru_bb_info,
df_ru_bb_info, df_rd_bb_info, df_lr_bb_info, df_ur_bb_info,
df_urec_bb_info, ) New types.
(df_invalidated_by_call, df_all_hard_regs, df_state) New public
variables.
(df_init, df_add_problem, df_set_blocks, df_finish, df_analyze,
df_analyze_simple_change_some_blocks,
df_analyze_simple_change_one_block, df_compact_blocks,
df_bb_replace, df_bb_regno_last_use_find,
df_bb_regno_first_def_find, df_bb_regno_last_def_find,
df_insn_regno_def_p, df_find_def, df_find_use,
df_iterative_dataflow, df_dump, df_chain_dump, df_refs_chain_dump,
df_regs_chain_dump, df_insn_debug, df_insn_debug_regno,
df_regno_debug, df_ref_debug, debug_df_insn, debug_df_regno,
debug_df_reg, debug_df_defno, debug_df_useno, debug_df_ref,
debug_df_chain, df_get_dependent_problem, df_chain_create,
df_chain_unlink, df_chain_copy, df_get_live_in, df_get_live_out,
df_grow_bb_info, df_chain_dump, df_print_bb_index,
df_ru_add_problem, df_ru_get_bb_info, df_rd_add_problem,
df_rd_get_bb_info, df_lr_add_problem, df_lr_get_bb_info,
df_ur_add_problem, df_ur_get_bb_info, df_urec_add_problem,
df_urec_get_bb_info, df_chain_add_problem, df_ri_add_problem,
df_reg_lifetime, df_scan_get_bb_info, df_scan_add_problem,
df_rescan_blocks, df_ref_create, df_get_artificial_defs,
df_get_artificial_uses, df_reg_chain_create, df_reg_chain_unlink,
df_ref_remove, df_insn_refs_delete, df_refs_delete,
df_reorganize_refs, df_set_state, df_hard_reg_init,
df_read_modify_subreg_p) New public functions.
* df-core.c: The core dataflow solver and glue routines for rtl
dataflow.
(df_init, df_add_problem, df_set_blocks, df_finish,
df_hybrid_search_forward, df_hybrid_search_backward,
df_iterative_dataflow, df_prune_to_subcfg, df_analyze_problem,
df_analyze, df_get_bb_info, df_set_bb_info, df_bb_replace,
df_bb_regno_last_use_find, df_bb_regno_first_def_find,
df_bb_regno_last_def_find, df_insn_regno_def_p, df_find_def,
df_reg_defined, df_find_use, df_reg_used, df_dump,
df_refs_chain_dump, df_regs_chain_dump, df_insn_debug,
df_insn_debug_regno, df_regno_debug, df_ref_debug, debug_df_insn,
debug_df_reg, debug_df_regno, debug_df_ref debug_df_defno,
debug_df_useno, reset_df_after_reload): New functions.
* df-scan.c: The scanning fuctions, once in df.c, completely
rewritten so that they now fully model the functionality of
register usage at the backend.
(df_scan_free_internal, df_scan_get_bb_info, df_scan_set_bb_info,
df_scan_free_bb_info, df_scan_alloc, df_scan_free, df_scan_dump,
df_scan_add_problem, df_grow_reg_info, df_grow_ref_info,
df_grow_insn_info, df_rescan_blocks, df_ref_create,
df_get_artificial_defs, df_get_artificial_uses,
df_reg_chain_create, df_ref_unlink, df_reg_chain_unlink,
df_ref_remove, df_insn_create_insn_record, df_insn_refs_delete,
df_refs_delete, df_reorganize_refs, df_set_state,
df_ref_create_structure, df_ref_record, df_read_modify_subreg_p,
df_def_record_1, df_defs_record, df_uses_record,
df_insn_contains_asm_1, df_insn_contains_asm, df_insn_refs_record,
df_has_eh_preds, df_bb_refs_record, df_refs_record, df_mark_reg,
df_record_exit_block_uses, df_hard_reg_init): New functions.
* df-problems.c: Seven concrete dataflow problems that use the
scanning in df-scan.c and are solved by the engine in df-core.c.
(df_get_dependent_problem, df_chain_create, df_chain_unlink,
df_chain_copy, df_get_live_in, df_get_live_out, df_grow_bb_info,
df_chain_dump, df_print_bb_index, df_ref_bitmap, df_set_seen,
df_unset_seen, df_ru_get_bb_info, df_ru_set_bb_info,
df_ru_free_bb_info, df_ru_alloc,
df_ru_bb_local_compute_process_def,
df_ru_bb_local_compute_process_use, df_ru_bb_local_compute,
df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n,
df_ru_transfer_function, df_ru_free, df_ru_dump,
df_ru_add_problem, df_rd_get_bb_info, df_rd_set_bb_info,
df_rd_free_bb_info, df_rd_alloc,
df_rd_bb_local_compute_process_def, df_rd_bb_local_compute,
df_rd_local_compute, df_rd_init_solution, df_rd_confluence_n,
df_rd_transfer_function, df_rd_free, df_rd_dump,
df_rd_add_problem, df_lr_get_bb_info, df_lr_set_bb_info,
df_lr_free_bb_info, df_lr_alloc, df_lr_bb_local_compute,
df_lr_local_compute, df_lr_init, df_lr_confluence_0,
df_lr_confluence_n, df_lr_transfer_function, df_lr_free,
df_lr_dump, df_lr_add_problem, df_ur_get_bb_info,
df_ur_set_bb_info, df_ur_free_bb_info, df_ur_alloc,
df_ur_bb_local_compute, df_ur_local_compute, df_ur_init,
df_ur_local_finalize, df_ur_confluence_n, df_ur_transfer_function,
df_ur_free, df_ur_dump, df_ur_add_problem, df_urec_get_bb_info,
df_urec_set_bb_info, df_urec_free_bb_info, df_urec_alloc,
df_urec_mark_reg_change, df_urec_check_earlyclobber,
df_urec_mark_reg_use_for_earlyclobber,
df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute,
df_urec_local_compute, df_urec_init, df_urec_local_finalize,
df_urec_confluence_n, df_urec_transfer_function, df_urec_free,
df_urec_dump, df_urec_add_problem, df_chain_alloc,
df_chain_create_bb_process_use, df_chain_create_bb,
df_chain_finalize, df_chain_free, df_chains_dump,
df_chain_add_problem, df_ri_alloc, df_ri_bb_compute,
df_ri_compute, df_ri_free, df_ri_dump, df_ri_add_problem,
df_reg_lifetime): New functions.
* df.c: Deleted file.
* ddg.c (create_ddg_dep_no_link, build_inter_loop_deps): Made code
consistent with new df api.
* modulo-sched.c (sms_schedule, rest_of_handle_sms,
rest_of_handle_sms): Ditto.
* web.c (unionfind_union, union_defs, entry_register, web_main):
Ditto.
* loop_invariant.c (invariant_for_use, hash_invariant_expr_1,
invariant_expr_equal_p, find_defs, check_dependencies,
find_invariant_insn, find_invariants_to_move, move_invariant_reg,
free_inv_motion_data, move_loop_invariants): Ditto.
* sched-deps.c (sched_analyze_1): Ditto.
Co-Authored-By: Kenneth Zadeck <zadeck@naturalbridge.com>
From-SVN: r109577
2006-01-11 13:57:18 +01:00
|
|
|
|
consistent with new df api.
|
2006-01-23 16:14:53 +01:00
|
|
|
|
* modulo-sched.c (sms_schedule, rest_of_handle_sms,
|
|
|
|
|
rest_of_handle_sms): Ditto.
|
|
|
|
|
* web.c (unionfind_union, union_defs, entry_register, web_main):
|
df.h (DF_SCAN, [...]): New macros.
2005-01-11 Danny Berlin <dberlin@dberlin.org>
Kenneth Zadeck <zadeck@naturalbridge.com>
* df.h (DF_SCAN, DF_RU, DF_RD, DF_LR, DF_UR, DF_UREC, DF_CHAIN,
DF_RI, DF_LAST_PROBLEM_PLUS1, DF_DU_CHAIN, DF_UD_CHAIN,
DF_REF_TYPE_NAMES, DF_HARD_REGS, DF_EQUIV_NOTES, DF_SUBREGS,
DF_SCAN_BB_INFO, DF_RU_BB_INFO, DF_RD_BB_INFO, DF_LR_BB_INFO,
DF_UR_BB_INFO, DF_UREC_BB_INFO, DF_LIVE_IN, DF_LIVE_OUT,
DF_RA_LIVE_IN, DF_RA_LIVE_OUT, DF_UPWARD_LIVE_IN,
DF_UPWARD_LIVE_OUT, DF_REF_REAL_REG, DF_REF_REGNO,
DF_REF_REAL_LOC, DF_REF_REG, DF_REF_LOC, DF_REF_BB, DF_REF_BBNO,
DF_REF_INSN, DF_REF_INSN_UID, DF_REF_TYPE, DF_REF_CHAIN,
DF_REF_ID, DF_REF_FLAGS, DF_REF_NEXT_REG, DF_REF_PREV_REG,
DF_REF_NEXT_REF, DF_REF_DATA, DF_REF_REG_DEF_P, DF_REF_REG_USE_P,
DF_REF_REG_MEM_STORE_P, DF_REF_REG_MEM_LOAD_P, DF_REF_REG_MEM_P,
DF_DEFS_SIZE, DF_DEFS_GET, DF_DEFS_SET, DF_USES_SIZE, DF_USES_GET,
DF_USES_SET, DF_REG_SIZE, DF_REG_DEF_GET, DF_REG_DEF_SET,
DF_REG_USE_GET, DF_REG_USE_SET, DF_REGNO_FIRST_DEF,
DF_REGNO_LAST_USE, DF_INSN_SIZE, DF_INSN_GET, DF_INSN_SET,
DF_INSN_CONTAINS_ASM, DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES,
DF_INSN_UID_GET, DF_INSN_UID_LUID, DF_INSN_UID_DEFS,
DF_INSN_UID_USES, DF_SCAN_INITIAL, DF_SCAN_GLOBAL,
DF_SCAN_POST_ALLOC): New macros.
(df_flow_dir, df_ref_type, df_ref_flags, df_alloc_function,
df_free_bb_function, df_local_compute_function, df_init_function,
df_dataflow_function, df_confluence_function_0,
df_confluence_function_n, df_transfer_function,
df_finalizer_function, df_free_function, df_dump_problem_function,
df_problem, dataflow, df_insn_info, df_reg_info, df_ref, df_link,
df_ref_info, df, df_map, df_scan_bb_info, df_ru_bb_info,
df_ru_bb_info, df_rd_bb_info, df_lr_bb_info, df_ur_bb_info,
df_urec_bb_info, ) New types.
(df_invalidated_by_call, df_all_hard_regs, df_state) New public
variables.
(df_init, df_add_problem, df_set_blocks, df_finish, df_analyze,
df_analyze_simple_change_some_blocks,
df_analyze_simple_change_one_block, df_compact_blocks,
df_bb_replace, df_bb_regno_last_use_find,
df_bb_regno_first_def_find, df_bb_regno_last_def_find,
df_insn_regno_def_p, df_find_def, df_find_use,
df_iterative_dataflow, df_dump, df_chain_dump, df_refs_chain_dump,
df_regs_chain_dump, df_insn_debug, df_insn_debug_regno,
df_regno_debug, df_ref_debug, debug_df_insn, debug_df_regno,
debug_df_reg, debug_df_defno, debug_df_useno, debug_df_ref,
debug_df_chain, df_get_dependent_problem, df_chain_create,
df_chain_unlink, df_chain_copy, df_get_live_in, df_get_live_out,
df_grow_bb_info, df_chain_dump, df_print_bb_index,
df_ru_add_problem, df_ru_get_bb_info, df_rd_add_problem,
df_rd_get_bb_info, df_lr_add_problem, df_lr_get_bb_info,
df_ur_add_problem, df_ur_get_bb_info, df_urec_add_problem,
df_urec_get_bb_info, df_chain_add_problem, df_ri_add_problem,
df_reg_lifetime, df_scan_get_bb_info, df_scan_add_problem,
df_rescan_blocks, df_ref_create, df_get_artificial_defs,
df_get_artificial_uses, df_reg_chain_create, df_reg_chain_unlink,
df_ref_remove, df_insn_refs_delete, df_refs_delete,
df_reorganize_refs, df_set_state, df_hard_reg_init,
df_read_modify_subreg_p) New public functions.
* df-core.c: The core dataflow solver and glue routines for rtl
dataflow.
(df_init, df_add_problem, df_set_blocks, df_finish,
df_hybrid_search_forward, df_hybrid_search_backward,
df_iterative_dataflow, df_prune_to_subcfg, df_analyze_problem,
df_analyze, df_get_bb_info, df_set_bb_info, df_bb_replace,
df_bb_regno_last_use_find, df_bb_regno_first_def_find,
df_bb_regno_last_def_find, df_insn_regno_def_p, df_find_def,
df_reg_defined, df_find_use, df_reg_used, df_dump,
df_refs_chain_dump, df_regs_chain_dump, df_insn_debug,
df_insn_debug_regno, df_regno_debug, df_ref_debug, debug_df_insn,
debug_df_reg, debug_df_regno, debug_df_ref debug_df_defno,
debug_df_useno, reset_df_after_reload): New functions.
* df-scan.c: The scanning fuctions, once in df.c, completely
rewritten so that they now fully model the functionality of
register usage at the backend.
(df_scan_free_internal, df_scan_get_bb_info, df_scan_set_bb_info,
df_scan_free_bb_info, df_scan_alloc, df_scan_free, df_scan_dump,
df_scan_add_problem, df_grow_reg_info, df_grow_ref_info,
df_grow_insn_info, df_rescan_blocks, df_ref_create,
df_get_artificial_defs, df_get_artificial_uses,
df_reg_chain_create, df_ref_unlink, df_reg_chain_unlink,
df_ref_remove, df_insn_create_insn_record, df_insn_refs_delete,
df_refs_delete, df_reorganize_refs, df_set_state,
df_ref_create_structure, df_ref_record, df_read_modify_subreg_p,
df_def_record_1, df_defs_record, df_uses_record,
df_insn_contains_asm_1, df_insn_contains_asm, df_insn_refs_record,
df_has_eh_preds, df_bb_refs_record, df_refs_record, df_mark_reg,
df_record_exit_block_uses, df_hard_reg_init): New functions.
* df-problems.c: Seven concrete dataflow problems that use the
scanning in df-scan.c and are solved by the engine in df-core.c.
(df_get_dependent_problem, df_chain_create, df_chain_unlink,
df_chain_copy, df_get_live_in, df_get_live_out, df_grow_bb_info,
df_chain_dump, df_print_bb_index, df_ref_bitmap, df_set_seen,
df_unset_seen, df_ru_get_bb_info, df_ru_set_bb_info,
df_ru_free_bb_info, df_ru_alloc,
df_ru_bb_local_compute_process_def,
df_ru_bb_local_compute_process_use, df_ru_bb_local_compute,
df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n,
df_ru_transfer_function, df_ru_free, df_ru_dump,
df_ru_add_problem, df_rd_get_bb_info, df_rd_set_bb_info,
df_rd_free_bb_info, df_rd_alloc,
df_rd_bb_local_compute_process_def, df_rd_bb_local_compute,
df_rd_local_compute, df_rd_init_solution, df_rd_confluence_n,
df_rd_transfer_function, df_rd_free, df_rd_dump,
df_rd_add_problem, df_lr_get_bb_info, df_lr_set_bb_info,
df_lr_free_bb_info, df_lr_alloc, df_lr_bb_local_compute,
df_lr_local_compute, df_lr_init, df_lr_confluence_0,
df_lr_confluence_n, df_lr_transfer_function, df_lr_free,
df_lr_dump, df_lr_add_problem, df_ur_get_bb_info,
df_ur_set_bb_info, df_ur_free_bb_info, df_ur_alloc,
df_ur_bb_local_compute, df_ur_local_compute, df_ur_init,
df_ur_local_finalize, df_ur_confluence_n, df_ur_transfer_function,
df_ur_free, df_ur_dump, df_ur_add_problem, df_urec_get_bb_info,
df_urec_set_bb_info, df_urec_free_bb_info, df_urec_alloc,
df_urec_mark_reg_change, df_urec_check_earlyclobber,
df_urec_mark_reg_use_for_earlyclobber,
df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute,
df_urec_local_compute, df_urec_init, df_urec_local_finalize,
df_urec_confluence_n, df_urec_transfer_function, df_urec_free,
df_urec_dump, df_urec_add_problem, df_chain_alloc,
df_chain_create_bb_process_use, df_chain_create_bb,
df_chain_finalize, df_chain_free, df_chains_dump,
df_chain_add_problem, df_ri_alloc, df_ri_bb_compute,
df_ri_compute, df_ri_free, df_ri_dump, df_ri_add_problem,
df_reg_lifetime): New functions.
* df.c: Deleted file.
* ddg.c (create_ddg_dep_no_link, build_inter_loop_deps): Made code
consistent with new df api.
* modulo-sched.c (sms_schedule, rest_of_handle_sms,
rest_of_handle_sms): Ditto.
* web.c (unionfind_union, union_defs, entry_register, web_main):
Ditto.
* loop_invariant.c (invariant_for_use, hash_invariant_expr_1,
invariant_expr_equal_p, find_defs, check_dependencies,
find_invariant_insn, find_invariants_to_move, move_invariant_reg,
free_inv_motion_data, move_loop_invariants): Ditto.
* sched-deps.c (sched_analyze_1): Ditto.
Co-Authored-By: Kenneth Zadeck <zadeck@naturalbridge.com>
From-SVN: r109577
2006-01-11 13:57:18 +01:00
|
|
|
|
Ditto.
|
|
|
|
|
* loop_invariant.c (invariant_for_use, hash_invariant_expr_1,
|
|
|
|
|
invariant_expr_equal_p, find_defs, check_dependencies,
|
|
|
|
|
find_invariant_insn, find_invariants_to_move, move_invariant_reg,
|
|
|
|
|
free_inv_motion_data, move_loop_invariants): Ditto.
|
2006-01-23 16:14:53 +01:00
|
|
|
|
* Makefile.in (df.c, df-scan.c df-problems.c df-core.c):
|
2006-01-11 16:21:44 +01:00
|
|
|
|
Update dependencies.
|
|
|
|
|
(odf.c): Added defective entry that was deleted later in day.
|
df.h (DF_SCAN, [...]): New macros.
2005-01-11 Danny Berlin <dberlin@dberlin.org>
Kenneth Zadeck <zadeck@naturalbridge.com>
* df.h (DF_SCAN, DF_RU, DF_RD, DF_LR, DF_UR, DF_UREC, DF_CHAIN,
DF_RI, DF_LAST_PROBLEM_PLUS1, DF_DU_CHAIN, DF_UD_CHAIN,
DF_REF_TYPE_NAMES, DF_HARD_REGS, DF_EQUIV_NOTES, DF_SUBREGS,
DF_SCAN_BB_INFO, DF_RU_BB_INFO, DF_RD_BB_INFO, DF_LR_BB_INFO,
DF_UR_BB_INFO, DF_UREC_BB_INFO, DF_LIVE_IN, DF_LIVE_OUT,
DF_RA_LIVE_IN, DF_RA_LIVE_OUT, DF_UPWARD_LIVE_IN,
DF_UPWARD_LIVE_OUT, DF_REF_REAL_REG, DF_REF_REGNO,
DF_REF_REAL_LOC, DF_REF_REG, DF_REF_LOC, DF_REF_BB, DF_REF_BBNO,
DF_REF_INSN, DF_REF_INSN_UID, DF_REF_TYPE, DF_REF_CHAIN,
DF_REF_ID, DF_REF_FLAGS, DF_REF_NEXT_REG, DF_REF_PREV_REG,
DF_REF_NEXT_REF, DF_REF_DATA, DF_REF_REG_DEF_P, DF_REF_REG_USE_P,
DF_REF_REG_MEM_STORE_P, DF_REF_REG_MEM_LOAD_P, DF_REF_REG_MEM_P,
DF_DEFS_SIZE, DF_DEFS_GET, DF_DEFS_SET, DF_USES_SIZE, DF_USES_GET,
DF_USES_SET, DF_REG_SIZE, DF_REG_DEF_GET, DF_REG_DEF_SET,
DF_REG_USE_GET, DF_REG_USE_SET, DF_REGNO_FIRST_DEF,
DF_REGNO_LAST_USE, DF_INSN_SIZE, DF_INSN_GET, DF_INSN_SET,
DF_INSN_CONTAINS_ASM, DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES,
DF_INSN_UID_GET, DF_INSN_UID_LUID, DF_INSN_UID_DEFS,
DF_INSN_UID_USES, DF_SCAN_INITIAL, DF_SCAN_GLOBAL,
DF_SCAN_POST_ALLOC): New macros.
(df_flow_dir, df_ref_type, df_ref_flags, df_alloc_function,
df_free_bb_function, df_local_compute_function, df_init_function,
df_dataflow_function, df_confluence_function_0,
df_confluence_function_n, df_transfer_function,
df_finalizer_function, df_free_function, df_dump_problem_function,
df_problem, dataflow, df_insn_info, df_reg_info, df_ref, df_link,
df_ref_info, df, df_map, df_scan_bb_info, df_ru_bb_info,
df_ru_bb_info, df_rd_bb_info, df_lr_bb_info, df_ur_bb_info,
df_urec_bb_info, ) New types.
(df_invalidated_by_call, df_all_hard_regs, df_state) New public
variables.
(df_init, df_add_problem, df_set_blocks, df_finish, df_analyze,
df_analyze_simple_change_some_blocks,
df_analyze_simple_change_one_block, df_compact_blocks,
df_bb_replace, df_bb_regno_last_use_find,
df_bb_regno_first_def_find, df_bb_regno_last_def_find,
df_insn_regno_def_p, df_find_def, df_find_use,
df_iterative_dataflow, df_dump, df_chain_dump, df_refs_chain_dump,
df_regs_chain_dump, df_insn_debug, df_insn_debug_regno,
df_regno_debug, df_ref_debug, debug_df_insn, debug_df_regno,
debug_df_reg, debug_df_defno, debug_df_useno, debug_df_ref,
debug_df_chain, df_get_dependent_problem, df_chain_create,
df_chain_unlink, df_chain_copy, df_get_live_in, df_get_live_out,
df_grow_bb_info, df_chain_dump, df_print_bb_index,
df_ru_add_problem, df_ru_get_bb_info, df_rd_add_problem,
df_rd_get_bb_info, df_lr_add_problem, df_lr_get_bb_info,
df_ur_add_problem, df_ur_get_bb_info, df_urec_add_problem,
df_urec_get_bb_info, df_chain_add_problem, df_ri_add_problem,
df_reg_lifetime, df_scan_get_bb_info, df_scan_add_problem,
df_rescan_blocks, df_ref_create, df_get_artificial_defs,
df_get_artificial_uses, df_reg_chain_create, df_reg_chain_unlink,
df_ref_remove, df_insn_refs_delete, df_refs_delete,
df_reorganize_refs, df_set_state, df_hard_reg_init,
df_read_modify_subreg_p) New public functions.
* df-core.c: The core dataflow solver and glue routines for rtl
dataflow.
(df_init, df_add_problem, df_set_blocks, df_finish,
df_hybrid_search_forward, df_hybrid_search_backward,
df_iterative_dataflow, df_prune_to_subcfg, df_analyze_problem,
df_analyze, df_get_bb_info, df_set_bb_info, df_bb_replace,
df_bb_regno_last_use_find, df_bb_regno_first_def_find,
df_bb_regno_last_def_find, df_insn_regno_def_p, df_find_def,
df_reg_defined, df_find_use, df_reg_used, df_dump,
df_refs_chain_dump, df_regs_chain_dump, df_insn_debug,
df_insn_debug_regno, df_regno_debug, df_ref_debug, debug_df_insn,
debug_df_reg, debug_df_regno, debug_df_ref debug_df_defno,
debug_df_useno, reset_df_after_reload): New functions.
* df-scan.c: The scanning fuctions, once in df.c, completely
rewritten so that they now fully model the functionality of
register usage at the backend.
(df_scan_free_internal, df_scan_get_bb_info, df_scan_set_bb_info,
df_scan_free_bb_info, df_scan_alloc, df_scan_free, df_scan_dump,
df_scan_add_problem, df_grow_reg_info, df_grow_ref_info,
df_grow_insn_info, df_rescan_blocks, df_ref_create,
df_get_artificial_defs, df_get_artificial_uses,
df_reg_chain_create, df_ref_unlink, df_reg_chain_unlink,
df_ref_remove, df_insn_create_insn_record, df_insn_refs_delete,
df_refs_delete, df_reorganize_refs, df_set_state,
df_ref_create_structure, df_ref_record, df_read_modify_subreg_p,
df_def_record_1, df_defs_record, df_uses_record,
df_insn_contains_asm_1, df_insn_contains_asm, df_insn_refs_record,
df_has_eh_preds, df_bb_refs_record, df_refs_record, df_mark_reg,
df_record_exit_block_uses, df_hard_reg_init): New functions.
* df-problems.c: Seven concrete dataflow problems that use the
scanning in df-scan.c and are solved by the engine in df-core.c.
(df_get_dependent_problem, df_chain_create, df_chain_unlink,
df_chain_copy, df_get_live_in, df_get_live_out, df_grow_bb_info,
df_chain_dump, df_print_bb_index, df_ref_bitmap, df_set_seen,
df_unset_seen, df_ru_get_bb_info, df_ru_set_bb_info,
df_ru_free_bb_info, df_ru_alloc,
df_ru_bb_local_compute_process_def,
df_ru_bb_local_compute_process_use, df_ru_bb_local_compute,
df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n,
df_ru_transfer_function, df_ru_free, df_ru_dump,
df_ru_add_problem, df_rd_get_bb_info, df_rd_set_bb_info,
df_rd_free_bb_info, df_rd_alloc,
df_rd_bb_local_compute_process_def, df_rd_bb_local_compute,
df_rd_local_compute, df_rd_init_solution, df_rd_confluence_n,
df_rd_transfer_function, df_rd_free, df_rd_dump,
df_rd_add_problem, df_lr_get_bb_info, df_lr_set_bb_info,
df_lr_free_bb_info, df_lr_alloc, df_lr_bb_local_compute,
df_lr_local_compute, df_lr_init, df_lr_confluence_0,
df_lr_confluence_n, df_lr_transfer_function, df_lr_free,
df_lr_dump, df_lr_add_problem, df_ur_get_bb_info,
df_ur_set_bb_info, df_ur_free_bb_info, df_ur_alloc,
df_ur_bb_local_compute, df_ur_local_compute, df_ur_init,
df_ur_local_finalize, df_ur_confluence_n, df_ur_transfer_function,
df_ur_free, df_ur_dump, df_ur_add_problem, df_urec_get_bb_info,
df_urec_set_bb_info, df_urec_free_bb_info, df_urec_alloc,
df_urec_mark_reg_change, df_urec_check_earlyclobber,
df_urec_mark_reg_use_for_earlyclobber,
df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute,
df_urec_local_compute, df_urec_init, df_urec_local_finalize,
df_urec_confluence_n, df_urec_transfer_function, df_urec_free,
df_urec_dump, df_urec_add_problem, df_chain_alloc,
df_chain_create_bb_process_use, df_chain_create_bb,
df_chain_finalize, df_chain_free, df_chains_dump,
df_chain_add_problem, df_ri_alloc, df_ri_bb_compute,
df_ri_compute, df_ri_free, df_ri_dump, df_ri_add_problem,
df_reg_lifetime): New functions.
* df.c: Deleted file.
* ddg.c (create_ddg_dep_no_link, build_inter_loop_deps): Made code
consistent with new df api.
* modulo-sched.c (sms_schedule, rest_of_handle_sms,
rest_of_handle_sms): Ditto.
* web.c (unionfind_union, union_defs, entry_register, web_main):
Ditto.
* loop_invariant.c (invariant_for_use, hash_invariant_expr_1,
invariant_expr_equal_p, find_defs, check_dependencies,
find_invariant_insn, find_invariants_to_move, move_invariant_reg,
free_inv_motion_data, move_loop_invariants): Ditto.
* sched-deps.c (sched_analyze_1): Ditto.
Co-Authored-By: Kenneth Zadeck <zadeck@naturalbridge.com>
From-SVN: r109577
2006-01-11 13:57:18 +01:00
|
|
|
|
* sched-deps.c (sched_analyze_1): Ditto.
|
|
|
|
|
|
2006-01-11 13:46:28 +01:00
|
|
|
|
2006-01-11 Zdenek Dvorak <dvorakz@suse.cz>
|
|
|
|
|
|
|
|
|
|
* tree-ssa-operands.c (get_expr_operands): Record addressable
|
|
|
|
|
variables directly. Do not call add_stmt_operands for CONST_DECLs
|
|
|
|
|
and ARRAY_DECLs.
|
|
|
|
|
(get_indirect_ref_operands): Remove handling of *(&a + offset) case.
|
|
|
|
|
(add_stmt_operands): Handle only objects satisfying SSA_VAR_P.
|
|
|
|
|
|
2006-01-11 03:24:34 +01:00
|
|
|
|
2006-01-11 Ben Elliston <bje@au.ibm.com>
|
|
|
|
|
|
|
|
|
|
* config/i386/i386.c (ix86_return_in_memory): Fix comment: this
|
|
|
|
|
function returns true in the positive case.
|
|
|
|
|
|
2006-01-11 01:07:16 +01:00
|
|
|
|
2006-01-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
|
|
|
|
|
|
|
|
|
PR target/20754
|
re PR tree-optimization/23109 (compiler generates wrong code leading to spurious division by zero with -funsafe-math-optimizations (instead of -ftrapping-math))
gcc:
2006-01-11 Paolo Bonzini <bonzini@gnu.org>
PR tree-optimization/23109
PR tree-optimization/23948
PR tree-optimization/24123
* Makefile.in (tree-ssa-math-opts.o): Adjust dependencies.
* tree-cfg.c (single_noncomplex_succ): New.
* tree-flow.h (single_noncomplex_succ): Declare it.
* tree-ssa-math-opts.c (enum place_reciprocal): Remove.
* tree-ssa-math-opts.c (enum place_reciprocal): Remove.
(struct occurrence, occ_head, occ_pool, is_divide_by, compute_merit,
insert_bb, register_division_in, insert_reciprocals,
replace_reciprocal, free_bb): New.
(execute_cse_reciprocals_1): Rewritten.
(execute_cse_reciprocals): Adjust calls to execute_cse_reciprocals_1.
Do not commit any edge insertion. Always compute dominators and
create the allocation pool.
* target-def.h (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): New.
* target.h (struct gcc_target): Add min_divistions_for_recip_mul.
* targhooks.c (default_min_divistions_for_recip_mul): New.
* targhooks.h (default_min_divistions_for_recip_mul): New prototype.
* passes.c (init_optimization_passes): Run recip after tree loop
optimizations.
* doc/tm.texi (Misc): Document TARGET_MIN_DIVISIONS_FOR_RECIP_MUL.
gcc/testsuite:
2006-01-11 Paolo Bonzini <bonzini@gnu.org>
PR tree-optimization/23109
PR tree-optimization/23948
PR tree-optimization/24123
* gcc.dg/tree-ssa/recip-3.c, gcc.dg/tree-ssa/recip-4.c,
gcc.dg/tree-ssa/recip-5.c, gcc.dg/tree-ssa/recip-6.c,
gcc.dg/tree-ssa/recip-7.c, gcc.dg/tree-ssa/pr23109.c,
g++.dg/tree-ssa/pr23948.C: New testcases.
* gcc.dg/tree-ssa/recip-2.c, gcc.dg/tree-ssa/pr23234.c: Provide
three divisions in order to do the optimization.
From-SVN: r109578
2006-01-11 14:02:18 +01:00
|
|
|
|
* config/pa/pa.md: Create separate 32 and 64-bit move patterns
|
|
|
|
|
for SI, DI, SF and DF modes. Add alternatives to copy between
|
|
|
|
|
general and floating point registers to the 32-bit patterns.
|
|
|
|
|
* config/pa/pa-64.h (SECONDARY_MEMORY_NEEDED_RTX): Delete undefine.
|
|
|
|
|
* config/pa/pa.h (SECONDARY_MEMORY_NEEDED_RTX): Delete define.
|
2006-01-11 01:07:16 +01:00
|
|
|
|
(SECONDARY_MEMORY_NEEDED): Secondary memory is only needed when
|
|
|
|
|
generating 64-bit code.
|
re PR tree-optimization/23109 (compiler generates wrong code leading to spurious division by zero with -funsafe-math-optimizations (instead of -ftrapping-math))
gcc:
2006-01-11 Paolo Bonzini <bonzini@gnu.org>
PR tree-optimization/23109
PR tree-optimization/23948
PR tree-optimization/24123
* Makefile.in (tree-ssa-math-opts.o): Adjust dependencies.
* tree-cfg.c (single_noncomplex_succ): New.
* tree-flow.h (single_noncomplex_succ): Declare it.
* tree-ssa-math-opts.c (enum place_reciprocal): Remove.
* tree-ssa-math-opts.c (enum place_reciprocal): Remove.
(struct occurrence, occ_head, occ_pool, is_divide_by, compute_merit,
insert_bb, register_division_in, insert_reciprocals,
replace_reciprocal, free_bb): New.
(execute_cse_reciprocals_1): Rewritten.
(execute_cse_reciprocals): Adjust calls to execute_cse_reciprocals_1.
Do not commit any edge insertion. Always compute dominators and
create the allocation pool.
* target-def.h (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): New.
* target.h (struct gcc_target): Add min_divistions_for_recip_mul.
* targhooks.c (default_min_divistions_for_recip_mul): New.
* targhooks.h (default_min_divistions_for_recip_mul): New prototype.
* passes.c (init_optimization_passes): Run recip after tree loop
optimizations.
* doc/tm.texi (Misc): Document TARGET_MIN_DIVISIONS_FOR_RECIP_MUL.
gcc/testsuite:
2006-01-11 Paolo Bonzini <bonzini@gnu.org>
PR tree-optimization/23109
PR tree-optimization/23948
PR tree-optimization/24123
* gcc.dg/tree-ssa/recip-3.c, gcc.dg/tree-ssa/recip-4.c,
gcc.dg/tree-ssa/recip-5.c, gcc.dg/tree-ssa/recip-6.c,
gcc.dg/tree-ssa/recip-7.c, gcc.dg/tree-ssa/pr23109.c,
g++.dg/tree-ssa/pr23948.C: New testcases.
* gcc.dg/tree-ssa/recip-2.c, gcc.dg/tree-ssa/pr23234.c: Provide
three divisions in order to do the optimization.
From-SVN: r109578
2006-01-11 14:02:18 +01:00
|
|
|
|
* config/pa/pa.c (output_move_double): Handle copies between general
|
|
|
|
|
and floating registers.
|
2006-01-11 01:07:16 +01:00
|
|
|
|
|
2006-01-11 00:56:12 +01:00
|
|
|
|
2006-01-10 Stuart Hastings <stuart@apple.com>
|
|
|
|
|
|
re PR tree-optimization/23109 (compiler generates wrong code leading to spurious division by zero with -funsafe-math-optimizations (instead of -ftrapping-math))
gcc:
2006-01-11 Paolo Bonzini <bonzini@gnu.org>
PR tree-optimization/23109
PR tree-optimization/23948
PR tree-optimization/24123
* Makefile.in (tree-ssa-math-opts.o): Adjust dependencies.
* tree-cfg.c (single_noncomplex_succ): New.
* tree-flow.h (single_noncomplex_succ): Declare it.
* tree-ssa-math-opts.c (enum place_reciprocal): Remove.
* tree-ssa-math-opts.c (enum place_reciprocal): Remove.
(struct occurrence, occ_head, occ_pool, is_divide_by, compute_merit,
insert_bb, register_division_in, insert_reciprocals,
replace_reciprocal, free_bb): New.
(execute_cse_reciprocals_1): Rewritten.
(execute_cse_reciprocals): Adjust calls to execute_cse_reciprocals_1.
Do not commit any edge insertion. Always compute dominators and
create the allocation pool.
* target-def.h (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): New.
* target.h (struct gcc_target): Add min_divistions_for_recip_mul.
* targhooks.c (default_min_divistions_for_recip_mul): New.
* targhooks.h (default_min_divistions_for_recip_mul): New prototype.
* passes.c (init_optimization_passes): Run recip after tree loop
optimizations.
* doc/tm.texi (Misc): Document TARGET_MIN_DIVISIONS_FOR_RECIP_MUL.
gcc/testsuite:
2006-01-11 Paolo Bonzini <bonzini@gnu.org>
PR tree-optimization/23109
PR tree-optimization/23948
PR tree-optimization/24123
* gcc.dg/tree-ssa/recip-3.c, gcc.dg/tree-ssa/recip-4.c,
gcc.dg/tree-ssa/recip-5.c, gcc.dg/tree-ssa/recip-6.c,
gcc.dg/tree-ssa/recip-7.c, gcc.dg/tree-ssa/pr23109.c,
g++.dg/tree-ssa/pr23948.C: New testcases.
* gcc.dg/tree-ssa/recip-2.c, gcc.dg/tree-ssa/pr23234.c: Provide
three divisions in order to do the optimization.
From-SVN: r109578
2006-01-11 14:02:18 +01:00
|
|
|
|
* config/i386/i386.md (set_got): Update.
|
2006-01-11 00:56:12 +01:00
|
|
|
|
(set_got_labelled): New. (UNSPEC_LD_MPIC): New.
|
|
|
|
|
(builtin_setjmp_receiver): Mach-O support.
|
re PR tree-optimization/23109 (compiler generates wrong code leading to spurious division by zero with -funsafe-math-optimizations (instead of -ftrapping-math))
gcc:
2006-01-11 Paolo Bonzini <bonzini@gnu.org>
PR tree-optimization/23109
PR tree-optimization/23948
PR tree-optimization/24123
* Makefile.in (tree-ssa-math-opts.o): Adjust dependencies.
* tree-cfg.c (single_noncomplex_succ): New.
* tree-flow.h (single_noncomplex_succ): Declare it.
* tree-ssa-math-opts.c (enum place_reciprocal): Remove.
* tree-ssa-math-opts.c (enum place_reciprocal): Remove.
(struct occurrence, occ_head, occ_pool, is_divide_by, compute_merit,
insert_bb, register_division_in, insert_reciprocals,
replace_reciprocal, free_bb): New.
(execute_cse_reciprocals_1): Rewritten.
(execute_cse_reciprocals): Adjust calls to execute_cse_reciprocals_1.
Do not commit any edge insertion. Always compute dominators and
create the allocation pool.
* target-def.h (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): New.
* target.h (struct gcc_target): Add min_divistions_for_recip_mul.
* targhooks.c (default_min_divistions_for_recip_mul): New.
* targhooks.h (default_min_divistions_for_recip_mul): New prototype.
* passes.c (init_optimization_passes): Run recip after tree loop
optimizations.
* doc/tm.texi (Misc): Document TARGET_MIN_DIVISIONS_FOR_RECIP_MUL.
gcc/testsuite:
2006-01-11 Paolo Bonzini <bonzini@gnu.org>
PR tree-optimization/23109
PR tree-optimization/23948
PR tree-optimization/24123
* gcc.dg/tree-ssa/recip-3.c, gcc.dg/tree-ssa/recip-4.c,
gcc.dg/tree-ssa/recip-5.c, gcc.dg/tree-ssa/recip-6.c,
gcc.dg/tree-ssa/recip-7.c, gcc.dg/tree-ssa/pr23109.c,
g++.dg/tree-ssa/pr23948.C: New testcases.
* gcc.dg/tree-ssa/recip-2.c, gcc.dg/tree-ssa/pr23234.c: Provide
three divisions in order to do the optimization.
From-SVN: r109578
2006-01-11 14:02:18 +01:00
|
|
|
|
* config/i386/darwin.h (TARGET_ASM_FILE_END) Define.
|
2006-01-11 00:56:12 +01:00
|
|
|
|
(GOT_SYMBOL_NAME): Define.
|
|
|
|
|
(FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): New.
|
|
|
|
|
(TARGET_DEEP_BRANCH_PREDICTION): Remove.
|
re PR tree-optimization/23109 (compiler generates wrong code leading to spurious division by zero with -funsafe-math-optimizations (instead of -ftrapping-math))
gcc:
2006-01-11 Paolo Bonzini <bonzini@gnu.org>
PR tree-optimization/23109
PR tree-optimization/23948
PR tree-optimization/24123
* Makefile.in (tree-ssa-math-opts.o): Adjust dependencies.
* tree-cfg.c (single_noncomplex_succ): New.
* tree-flow.h (single_noncomplex_succ): Declare it.
* tree-ssa-math-opts.c (enum place_reciprocal): Remove.
* tree-ssa-math-opts.c (enum place_reciprocal): Remove.
(struct occurrence, occ_head, occ_pool, is_divide_by, compute_merit,
insert_bb, register_division_in, insert_reciprocals,
replace_reciprocal, free_bb): New.
(execute_cse_reciprocals_1): Rewritten.
(execute_cse_reciprocals): Adjust calls to execute_cse_reciprocals_1.
Do not commit any edge insertion. Always compute dominators and
create the allocation pool.
* target-def.h (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): New.
* target.h (struct gcc_target): Add min_divistions_for_recip_mul.
* targhooks.c (default_min_divistions_for_recip_mul): New.
* targhooks.h (default_min_divistions_for_recip_mul): New prototype.
* passes.c (init_optimization_passes): Run recip after tree loop
optimizations.
* doc/tm.texi (Misc): Document TARGET_MIN_DIVISIONS_FOR_RECIP_MUL.
gcc/testsuite:
2006-01-11 Paolo Bonzini <bonzini@gnu.org>
PR tree-optimization/23109
PR tree-optimization/23948
PR tree-optimization/24123
* gcc.dg/tree-ssa/recip-3.c, gcc.dg/tree-ssa/recip-4.c,
gcc.dg/tree-ssa/recip-5.c, gcc.dg/tree-ssa/recip-6.c,
gcc.dg/tree-ssa/recip-7.c, gcc.dg/tree-ssa/pr23109.c,
g++.dg/tree-ssa/pr23948.C: New testcases.
* gcc.dg/tree-ssa/recip-2.c, gcc.dg/tree-ssa/pr23234.c: Provide
three divisions in order to do the optimization.
From-SVN: r109578
2006-01-11 14:02:18 +01:00
|
|
|
|
* config/i386/i386.c (override_options): Revise for Darwin.
|
2006-01-11 00:56:12 +01:00
|
|
|
|
(USE_HIDDEN_LINKONCE): Enable for Mach-O. (ix86_file_end): Mach-O
|
|
|
|
|
support. (darwin_x86_file_end): New. (output_set_got): Add label
|
|
|
|
|
parameter, revise for Mach-O. (x86_output_mi_thunk): Likewise.
|
re PR tree-optimization/23109 (compiler generates wrong code leading to spurious division by zero with -funsafe-math-optimizations (instead of -ftrapping-math))
gcc:
2006-01-11 Paolo Bonzini <bonzini@gnu.org>
PR tree-optimization/23109
PR tree-optimization/23948
PR tree-optimization/24123
* Makefile.in (tree-ssa-math-opts.o): Adjust dependencies.
* tree-cfg.c (single_noncomplex_succ): New.
* tree-flow.h (single_noncomplex_succ): Declare it.
* tree-ssa-math-opts.c (enum place_reciprocal): Remove.
* tree-ssa-math-opts.c (enum place_reciprocal): Remove.
(struct occurrence, occ_head, occ_pool, is_divide_by, compute_merit,
insert_bb, register_division_in, insert_reciprocals,
replace_reciprocal, free_bb): New.
(execute_cse_reciprocals_1): Rewritten.
(execute_cse_reciprocals): Adjust calls to execute_cse_reciprocals_1.
Do not commit any edge insertion. Always compute dominators and
create the allocation pool.
* target-def.h (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): New.
* target.h (struct gcc_target): Add min_divistions_for_recip_mul.
* targhooks.c (default_min_divistions_for_recip_mul): New.
* targhooks.h (default_min_divistions_for_recip_mul): New prototype.
* passes.c (init_optimization_passes): Run recip after tree loop
optimizations.
* doc/tm.texi (Misc): Document TARGET_MIN_DIVISIONS_FOR_RECIP_MUL.
gcc/testsuite:
2006-01-11 Paolo Bonzini <bonzini@gnu.org>
PR tree-optimization/23109
PR tree-optimization/23948
PR tree-optimization/24123
* gcc.dg/tree-ssa/recip-3.c, gcc.dg/tree-ssa/recip-4.c,
gcc.dg/tree-ssa/recip-5.c, gcc.dg/tree-ssa/recip-6.c,
gcc.dg/tree-ssa/recip-7.c, gcc.dg/tree-ssa/pr23109.c,
g++.dg/tree-ssa/pr23948.C: New testcases.
* gcc.dg/tree-ssa/recip-2.c, gcc.dg/tree-ssa/pr23234.c: Provide
three divisions in order to do the optimization.
From-SVN: r109578
2006-01-11 14:02:18 +01:00
|
|
|
|
* config/i386/i386-protos.h (output_set_got): Likewise.
|
|
|
|
|
* config/darwin.c (machopic_legitimize_pic_address): Update
|
2006-01-11 00:56:12 +01:00
|
|
|
|
regs_ever_live[].
|
|
|
|
|
|
2006-01-10 22:49:55 +01:00
|
|
|
|
2006-01-10 Kaz Kojima <kkojima@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* config/sh/sh.h (SH5_WOULD_BE_PARTIAL_NREGS): Use GET_MODE_SIZE
|
|
|
|
|
when MODE isn't BLKmode.
|
|
|
|
|
|
2006-01-10 19:50:07 +01:00
|
|
|
|
2006-01-10 Eric Botcazou <ebotcazou@libertysurf.fr>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/25367
|
|
|
|
|
* config/sparc/sparc.h (HARD_REGNO_RENAME_OK): New macro.
|
|
|
|
|
|
2006-01-10 19:12:21 +01:00
|
|
|
|
2006-01-10 Hans-Peter Nilsson <hp@axis.com>
|
|
|
|
|
|
|
|
|
|
PR target/25718
|
|
|
|
|
* config/cris/cris.md ("uminsi3"): Don't use 8- or 16-bit sizes
|
|
|
|
|
for a negative bound.
|
|
|
|
|
|
2006-01-10 15:55:59 +01:00
|
|
|
|
2006-01-10 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
* tree-ssa-structalias.c (get_constraint_for_component_ref):
|
|
|
|
|
Never override with anything constraint.
|
|
|
|
|
|
2006-01-10 08:25:39 +01:00
|
|
|
|
2006-01-10 Jan Beulich <jbeulich@novell.com>
|
|
|
|
|
|
|
|
|
|
* config/i386/i386.c (ix86_data_alignment): Don't force alignment to
|
|
|
|
|
256 bits when optimize_size.
|
|
|
|
|
|
2006-01-10 08:18:15 +01:00
|
|
|
|
2006-01-10 Jan Beulich <jbeulich@novell.com>
|
|
|
|
|
|
|
|
|
|
* config/i386/netware.h (TARGET_SUBTARGET_DEFAULT): Include
|
|
|
|
|
MASK_ALIGN_DOUBLE.
|
|
|
|
|
* config/i386/nwld.h (LINK_SPEC): Add --extensions:GNU option.
|
|
|
|
|
* config/i386/t-nwld (SHLIB_LINK): Insert spaces between expr
|
|
|
|
|
arguments.
|
|
|
|
|
|
2006-01-10 06:46:45 +01:00
|
|
|
|
2006-01-10 Ben Elliston <bje@au.ibm.com>
|
|
|
|
|
|
|
|
|
|
* config/rs6000/predicates.md (easy_fp_constant): Discount decimal
|
|
|
|
|
float modes.
|
|
|
|
|
* config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): New.
|
|
|
|
|
(TARGET_SCALAR_MODE_SUPPORTED_P): Define.
|
|
|
|
|
(USE_FP_FOR_ARG): Reject decimal float modes.
|
|
|
|
|
(function_arg_advance): Likewise.
|
|
|
|
|
(output_toc): Handle emitting TDmode, DDmode and SDmode constants.
|
|
|
|
|
(rs6000_handle_altivec_attribute): Do not permit decimal floating
|
|
|
|
|
point types in AltiVec vectors.
|
|
|
|
|
(rs6000_function_value): Use GP_ARG_RETURN for decimal floats.
|
|
|
|
|
(rs6000_libcall_value): Likewise.
|
|
|
|
|
|
2006-01-10 00:41:11 +01:00
|
|
|
|
2006-01-09 Bob Wilson <bob.wilson@acm.org>
|
|
|
|
|
|
|
|
|
|
* config/xtensa/ieee754-df.S: New file.
|
|
|
|
|
* config/xtensa/ieee754-sf.S: New file.
|
|
|
|
|
* config/xtensa/t-xtensa (LIB2FUNCS_EXTRA): Remove fp-bit.c & dp-bit.c.
|
|
|
|
|
(LIB1ASMFUNCS): Add SFmode and DFmode floating-point functions.
|
|
|
|
|
* config/xtensa/lib1funcs.asm: Include ieee754-df.S and ieee754-sf.S.
|
|
|
|
|
|
predicates.md (binary_float_operator, [...]): Remove redundant conditionals.
* config/sh/predicates.md (binary_float_operator,
binary_logical_operator, commutative_float_operator,
equality_comparison_operator, greater_comparison_operator,
less_comparison_operator, logical_operator,
noncommutative_float_operator, shift_operator,
symbol_ref_operand, unary_float_operator): Remove redundant
conditionals.
From-SVN: r109512
2006-01-09 23:49:35 +01:00
|
|
|
|
2006-01-09 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* config/sh/predicates.md (binary_float_operator,
|
|
|
|
|
binary_logical_operator, commutative_float_operator,
|
|
|
|
|
equality_comparison_operator, greater_comparison_operator,
|
|
|
|
|
less_comparison_operator, logical_operator,
|
|
|
|
|
noncommutative_float_operator, shift_operator,
|
|
|
|
|
symbol_ref_operand, unary_float_operator): Remove redundant
|
|
|
|
|
conditionals.
|
|
|
|
|
|
|
|
|
|
2006-01-09 Jeff Law <law@redhat.com>
|
2006-01-09 17:56:49 +01:00
|
|
|
|
|
|
|
|
|
* tree-ssa-dom.c (simplify_cond_and_lookup_avail_expr): Remove
|
|
|
|
|
code to propagate the RHS of a cast into COND_EXPR_COND. Remove
|
|
|
|
|
now unused arguments. Callers updated.
|
|
|
|
|
(eliminate_redundant_computations): Remove now unused arguments,
|
|
|
|
|
callers updated.
|
|
|
|
|
(local_fold): Remove, no longer used.
|
|
|
|
|
(find_equivalent_equality_comparison): Removed from tree-ssa-dom.c
|
|
|
|
|
and moved to...
|
|
|
|
|
* tree-ssa-forwprop.c (find_equivalent_equality_comparison): Here.
|
|
|
|
|
(simplify_cond): New function.
|
|
|
|
|
(forward_propagate_into_cond): Call simplify_cond.
|
|
|
|
|
|
2006-01-09 17:44:43 +01:00
|
|
|
|
2006-01-09 Alexandre Oliva <aoliva@redhat.com>
|
|
|
|
|
|
|
|
|
|
* config/i386/sse.md (*vec_extractv2di_1_sse2): New.
|
|
|
|
|
(*vec_extractv2di_1_sse): New.
|
|
|
|
|
|
2006-01-09 05:02:36 +01:00
|
|
|
|
2006-01-09 Ben Elliston <bje@au.ibm.com>
|
|
|
|
|
|
|
|
|
|
* config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Typo fix.
|
|
|
|
|
|
2006-01-08 17:11:27 +01:00
|
|
|
|
2006-01-08 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
* tree-ssa-structalias.c (get_constraint_for): Remove
|
|
|
|
|
anyoffset argument.
|
|
|
|
|
(get_constraint_for_component_ref): Likewise.
|
|
|
|
|
(do_deref): Likewise.
|
|
|
|
|
(get_constraint_for): Likewise.
|
|
|
|
|
(do_structure_copy): Likewise.
|
|
|
|
|
(handle_ptr_arith): Likewise.
|
|
|
|
|
(find_func_aliases): Likewise. Remove unused need_anyoffset
|
|
|
|
|
variable.
|
|
|
|
|
|
2006-01-08 08:47:06 +01:00
|
|
|
|
2006-01-08 J"orn Rennecke <joern.rennecke@st.com>
|
|
|
|
|
Kaz Kojima <kkojima@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* config/sh/sh.h (CONST_OK_FOR_K16): Define.
|
|
|
|
|
(CONST_OK_FOR_K): Add CONST_OK_FOR_K16 case.
|
|
|
|
|
(EXTRA_CONSTRAINT_C16): Remove.
|
|
|
|
|
(EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Define.
|
|
|
|
|
(EXTRA_CONSTRAINT_C): Remove EXTRA_CONSTRAINT_C16 case and add
|
|
|
|
|
EXTRA_CONSTRAINT_Css and EXTRA_CONSTRAINT_Csu cases.
|
|
|
|
|
* config/sh/sh.c (print_operand): Handle unsigned 16-bit symbolic
|
|
|
|
|
constants of SHmedia. Handle nested constant expressions of
|
|
|
|
|
SHmedia correctly.
|
|
|
|
|
(andcosts): Fix the costs for SHmedia constants.
|
|
|
|
|
(sh_rtx_costs): Take account of outer_code for SHmedia constants.
|
|
|
|
|
* config/sh/sh.md (*movsi_media): Use Css constraint instead of C16.
|
|
|
|
|
(*movsi_media_nofpu, *movqi_media, *movhi_media): Likewise.
|
|
|
|
|
(*movdi_media, *movdi_media_nofpu, movv8qi_i, movv2hi_i): Likewise.
|
|
|
|
|
(movv4hi_i, movv2si_i): Likewise.
|
|
|
|
|
(movsi_const): Adjust the second operand of ior so to match with
|
|
|
|
|
the Csu constraint.
|
|
|
|
|
(movdi_const, movdi_const_32bit): Likewise.
|
|
|
|
|
(movdi_const_16bit+1): Don't sign-extend LOW.
|
|
|
|
|
(movdi_const_16bit+2): Likewise. Remove the zero_extend and truncate
|
|
|
|
|
step.
|
|
|
|
|
(*double_shori): Fix the split condition. Use GEN_INT instead
|
|
|
|
|
of get_int_mode calls. Mask lower 16-bit of the argument of
|
|
|
|
|
the last GEN_INT.
|
|
|
|
|
(sym2GOTPLT): Remove.
|
|
|
|
|
(symGOTPLT2reg): Replace gen_sym2GOTPLT with gen_rtx_CONST and
|
|
|
|
|
gen_rtx_UNSPEC.
|
|
|
|
|
* config/sh/predicates.md (arith_operand): Use EXTRA_CONSTRAINT_Css
|
|
|
|
|
instead of EXTRA_CONSTRAINT_C16.
|
|
|
|
|
|
2006-01-08 21:52:57 +01:00
|
|
|
|
2006-01-07 Ian Lance Taylor <ian@airs.com>
|
2006-01-07 23:23:27 +01:00
|
|
|
|
David Edelsohn <edelsohn@gnu.org>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/25662
|
|
|
|
|
* optabs.c (simplify_expand_binop): Use simplify_binary_operation
|
|
|
|
|
for constant operands instead of simplify_gen_binary.
|
|
|
|
|
* simplify-rtx.c (simplify_gen_binary): Swap commutative operands
|
|
|
|
|
after trying simplify_binary_operation
|
|
|
|
|
|
2006-01-07 03:26:54 +01:00
|
|
|
|
2006-01-06 Daniel Berlin <dberlin@dberlin.org>
|
|
|
|
|
|
|
|
|
|
* tree.c (iterative_hash_expr): Hash decls based on UID.
|
|
|
|
|
|
2006-01-07 00:16:23 +01:00
|
|
|
|
2006-01-06 Eric Christopher <echristo@apple.com>
|
|
|
|
|
|
|
|
|
|
* doc/tm.texi (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Document.
|
|
|
|
|
(TARGET_UNWIND_EMIT): Fix spelling.
|
|
|
|
|
* target.h (gcc_target): Add except_table_label.
|
|
|
|
|
* except.c (output_function_exception_table): Use.
|
|
|
|
|
* varasm.c (default_emit_except_table_label): New.
|
|
|
|
|
* target-def.h (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): New default
|
|
|
|
|
define.
|
|
|
|
|
(asm_out): Add here.
|
|
|
|
|
* output.h (default_emit_except_table_label): Prototype.
|
|
|
|
|
* config/darwin-protos.h (darwin_emit_except_table_label): Ditto.
|
|
|
|
|
* config/darwin.c (darwin_emit_except_table_label): Define.
|
|
|
|
|
* config/darwin.h (TARGET_ASM_EMIT_EXCEPT_TABLE): Ditto.
|
|
|
|
|
|
predicates.md (binary_float_operator, [...]): Remove redundant conditionals.
* config/sh/predicates.md (binary_float_operator,
binary_logical_operator, commutative_float_operator,
equality_comparison_operator, greater_comparison_operator,
less_comparison_operator, logical_operator,
noncommutative_float_operator, shift_operator,
symbol_ref_operand, unary_float_operator): Remove redundant
conditionals.
From-SVN: r109512
2006-01-09 23:49:35 +01:00
|
|
|
|
2006-01-06 Zdenek Dvorak <dvorakz@suse.cz>
|
2006-01-06 21:22:56 +01:00
|
|
|
|
|
|
|
|
|
PR tree-optimization/18527
|
|
|
|
|
* tree-ssa-loop-niter.c (number_of_iterations_cond,
|
|
|
|
|
number_of_iterations_special, number_of_iterations_exit):
|
|
|
|
|
Move base and step of an iv to a single structure. Add
|
|
|
|
|
no_overflow flag, and use it in # of iterations analysis.
|
|
|
|
|
* tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Add
|
|
|
|
|
folded_casts argument.
|
|
|
|
|
(simple_iv): Pass base and step in a structure. Set no_overflow
|
|
|
|
|
flag.
|
|
|
|
|
(scev_const_prop): Add argument to analyze_scalar_evolution_in_loop.
|
|
|
|
|
Evaluate expensiveness of computing # of iterations instead of
|
|
|
|
|
the final expression.
|
|
|
|
|
* tree-scalar-evolution.h (affine_iv): New structure.
|
|
|
|
|
(simple_iv): Declaration changed.
|
|
|
|
|
* tree-chrec.c (chrec_apply): Handle chrecs containing symbols.
|
|
|
|
|
* tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev,
|
|
|
|
|
find_givs_in_stmt): Changed due to simple_iv change.
|
|
|
|
|
|
predicates.md (binary_float_operator, [...]): Remove redundant conditionals.
* config/sh/predicates.md (binary_float_operator,
binary_logical_operator, commutative_float_operator,
equality_comparison_operator, greater_comparison_operator,
less_comparison_operator, logical_operator,
noncommutative_float_operator, shift_operator,
symbol_ref_operand, unary_float_operator): Remove redundant
conditionals.
From-SVN: r109512
2006-01-09 23:49:35 +01:00
|
|
|
|
2006-01-06 Jeff Law <law@redhat.com>
|
2006-01-06 18:50:26 +01:00
|
|
|
|
|
|
|
|
|
PR ada/24994
|
|
|
|
|
* tree-cfg.c (bsi_replace): Rename final argument from
|
|
|
|
|
PRESERVE_EH_INFO to UPDATE_EH_INFO. Fix typo in last
|
|
|
|
|
change (stmt -> orig_stmt).
|
|
|
|
|
* tree-eh.c (verify_eh_throw_stmt_node): New function.
|
|
|
|
|
(bsi_remove): Add new argument. Remove EH information
|
|
|
|
|
if requested.
|
|
|
|
|
(verify_eh_throw_table_statements): New function.
|
|
|
|
|
(bsi_remove): Add new argument REMOVE_EH_INFO. All callers
|
|
|
|
|
updated.
|
|
|
|
|
* tree-optimize.c (execute_free_cfg_annotations): Verify
|
|
|
|
|
the EH throw statement table after removing annotations.
|
|
|
|
|
* except.h (verify_eh_throw_table_statements): Prototype.
|
|
|
|
|
* tree-flow.h (bsi_remove): Update prototype.
|
|
|
|
|
* tree-vrp.c (remove_range_assertions): Add new argument to
|
|
|
|
|
bsi_remove call.
|
|
|
|
|
* tree-ssa-loop-im.c (move_computations_stmt): Likewise.
|
|
|
|
|
* tree-complex.c (expand_complex_div_wide): Likewise.
|
|
|
|
|
* tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Likewise
|
|
|
|
|
* tree-tailcall.c (eliminate_tailcall): Likewise.
|
|
|
|
|
* tree-ssa-dse.c (dse_optimize_stmt): Likewise.
|
|
|
|
|
* tree-ssa-loop-ivopts.c (remove_statement): Likewise.
|
|
|
|
|
* tree-nrv.c (tree_nrv): Likewise.
|
|
|
|
|
* tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Likewise.
|
|
|
|
|
* tree-if-conv.c (tree_if_convert_cond_expr): Likewise.
|
|
|
|
|
(combine_blocks): Likewise.
|
|
|
|
|
* tree-ssa-phiopt.c (replace_phi_edge_with_variable): Likewise.
|
|
|
|
|
* tree-cfgcleanup.c (cleanup_ctrl_expr_graph): Likewise.
|
|
|
|
|
(cleanup_control_flow): Likewise.
|
|
|
|
|
(remove_forwarder_block): Likewise.
|
|
|
|
|
* tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
|
|
|
|
|
* tree-sra.c (sra_replace): Likewise.
|
|
|
|
|
* tree-ssa-forwprop.c (forward_propagate_into_cond): Likewise.
|
|
|
|
|
(forward_propagate_single_use_vars): Likewise.
|
|
|
|
|
* tree-ssa-dce.c (remove_dead_stmt): Likewise.
|
|
|
|
|
* tree-inline.c (expand_call_inline): Likewise.
|
|
|
|
|
* tree-vect-transform.c (vect_transform_loop): Likewise.
|
|
|
|
|
* tree-outof-ssa.c (rewrite_trees): Likewise.
|
|
|
|
|
* tree-cfg.c (make_goto_expr_edges): Likewise.
|
|
|
|
|
(cleanup_dead_labels): Likewise.
|
|
|
|
|
(tree_merge_blocks, remove_bb, disband_implicit_edges): Likewise.
|
|
|
|
|
(bsi_move_before, bsi_move_after): Likewise.
|
|
|
|
|
(bsi_move_to_bb_end, try_redirect_by_replacing_jump): Likewise
|
|
|
|
|
(tree_redirect_edge_and_branch, tree_split_block): Likewise.
|
|
|
|
|
|
2006-01-06 16:00:50 +01:00
|
|
|
|
2006-01-06 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
|
|
PR tree-opt/25528
|
|
|
|
|
* tree-ssa-alias.c (find_used_portions): Handle REALPART_EXPR
|
|
|
|
|
and IMAGPART_EXPR.
|
|
|
|
|
* tree-flow-inline.h (var_can_have_subvars): Handle complex types
|
|
|
|
|
on non gimple variables. Also add checks at the top for decls and
|
|
|
|
|
mtags.
|
|
|
|
|
* tree-ssa-structalias.c (push_fields_onto_fieldstack): Handle
|
|
|
|
|
complex types.
|
|
|
|
|
* tree-ssa-operands.c (parse_ssa_operands): Handle REALPART_EXPR
|
|
|
|
|
and IMAGPART_EXPR for creating MUST_DEFs.
|
|
|
|
|
(get_expr_operands): Handle SSA_NAME, STRUCT_FIELD_TAG, TYPE_MEMORY_TAG,
|
|
|
|
|
and NAME_MEMORY_TAG separately from the DECLs.
|
|
|
|
|
|
2006-01-06 13:27:14 +01:00
|
|
|
|
2006-01-06 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
* tree-dfa.c (mark_new_vars_to_rename): Create stmt
|
|
|
|
|
annotation, if necessary.
|
|
|
|
|
* tree-ssa-pre.c (create_expression_by_pieces): Remove
|
|
|
|
|
redundant calls to update_stmt.
|
|
|
|
|
* tree-ssa-forwprop.c (tidy_after_forward_propagate_addr):
|
|
|
|
|
Likewise.
|
|
|
|
|
|
2006-01-05 22:06:47 +01:00
|
|
|
|
2006-01-05 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* c-parser.c (c_parser_objc_methodprotolist): Handle CPP_PRAGMA.
|
|
|
|
|
|
2006-01-05 20:39:22 +01:00
|
|
|
|
2006-01-05 Carlos O'Donell <carlos@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* c-typeck.c: Update copyright date.
|
|
|
|
|
|
2006-01-05 20:07:16 +01:00
|
|
|
|
2006-01-05 Carlos O'Donell <carlos@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* c-typeck.c (build_c_cast): Always warn when casting
|
|
|
|
|
from a pointer to an integer of different size, even if
|
|
|
|
|
the node was constant.
|
|
|
|
|
|
2006-01-05 16:30:44 +01:00
|
|
|
|
2006-01-05 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/22555
|
|
|
|
|
* tree-ssa-alias.c (create_overlap_variables_for): Do not give up,
|
|
|
|
|
if one structure field is an array.
|
|
|
|
|
* tree-ssa-operands.c (get_expr_operands): Continue scanning
|
|
|
|
|
operands even if we found a subvar, but ignore VOPs in this
|
|
|
|
|
case.
|
|
|
|
|
* tree-ssa-loop-ivopts.c (rewrite_use): Mark new vars in stmt
|
|
|
|
|
for renaming.
|
|
|
|
|
* tree-ssa-loop.c (pass_iv_optimize): Schedule TODO_update_ssa.
|
|
|
|
|
|
2006-01-05 16:06:09 +01:00
|
|
|
|
2006-01-05 Richard Earnshaw <rearnsha@arm.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/24998
|
|
|
|
|
* arm/t-netbsd (LIB2FUNCS_EXTRA): Define.
|
|
|
|
|
|
2006-01-05 14:53:54 +01:00
|
|
|
|
2006-01-05 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
* tree-pass.h (TODO_remove_unused_locals): Define.
|
|
|
|
|
* gimple-low.c (expand_var_p, remove_useless_vars,
|
|
|
|
|
pass_remove_useless_vars): Remove. Update all users.
|
|
|
|
|
* tree-ssa-live.c (mark_all_vars_used_1): Handle SSA names.
|
|
|
|
|
(remove_unused_locals): New function.
|
|
|
|
|
* tree-flow.h (remove_unused_locals): Declare.
|
|
|
|
|
* passes.c (execute_todo): Call remove_unused_locals if
|
|
|
|
|
TODO_remove_unused_locals is set.
|
|
|
|
|
* tree-into-ssa.c (pass_build_ssa): Add TODO_remove_unused_locals.
|
|
|
|
|
* tree-ssa-dce.c (pass_dce): Likewise.
|
|
|
|
|
* tree-outof-ssa.c (pass_del_ssa): Likewise.
|
|
|
|
|
|
2006-01-05 10:58:57 +01:00
|
|
|
|
2006-01-05 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
* tree-flow.h (struct fieldoff): Decompose field to
|
|
|
|
|
type, size and decl.
|
|
|
|
|
* tree-ssa-alias.c (create_sft): Take type as parameter.
|
|
|
|
|
(create_overlap_variables_for): Store type, size and decl
|
|
|
|
|
in the fieldoff structure.
|
|
|
|
|
* tree-ssa-structalias.c (fieldoff_compare): Adjust users
|
|
|
|
|
of struct fieldoff.
|
|
|
|
|
(push_fields_onto_fieldstack): Likewise.
|
|
|
|
|
(create_variable_info_for): Likewise. Use offset for the
|
|
|
|
|
SFT name if the decl is not available.
|
|
|
|
|
|
2006-01-04 17:38:00 +01:00
|
|
|
|
2006-01-04 Paul Brook <paul@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* config/m68k/m68k.c (m68k_output_mi_thunk): Use jmp, not jsr.
|
|
|
|
|
|
2006-01-04 17:34:52 +01:00
|
|
|
|
2006-01-04 Daniel Berlin <dberlin@dberlin.org>
|
|
|
|
|
|
|
|
|
|
* lambda-code.c (can_put_in_inner_loop): Relax
|
|
|
|
|
restrictions.
|
|
|
|
|
(can_put_after_inner_loop): New function.
|
|
|
|
|
(can_convert_to_perfect_nest): Use can_put_after_inner_loop as well.
|
|
|
|
|
(perfect_nestify): Change to make copies and modify uses.
|
|
|
|
|
|
2006-01-04 17:33:38 +01:00
|
|
|
|
2006-01-04 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
Merge from gomp branch:
|
|
|
|
|
* c-lex.c (c_lex_with_flags) <CPP_PRAGMA>: Smuggle pragma id
|
|
|
|
|
via integer constant.
|
|
|
|
|
(pragma_lex): Remove.
|
|
|
|
|
* c-pch.c (c_common_pch_pragma): Accept the name as an argument,
|
|
|
|
|
rather than parsing it.
|
|
|
|
|
* c-pragma.c (handle_pragma_weak, handle_pragma_redefine_extname,
|
|
|
|
|
handle_pragma_extern_prefix): Add %< %> quotes.
|
|
|
|
|
(registered_pragmas): New.
|
|
|
|
|
(c_register_pragma_1): New.
|
|
|
|
|
(c_register_pragma): Use it.
|
|
|
|
|
(c_register_pragma_with_expansion): Likewise.
|
|
|
|
|
(c_invoke_pragma_handler): New.
|
|
|
|
|
(init_pragma): Use cpp_register_deferred_pragma directly for
|
|
|
|
|
pch_preprocess.
|
|
|
|
|
* c-pragma.h (enum pragma_kind): New.
|
|
|
|
|
(pragma_handler): New.
|
|
|
|
|
(c_invoke_pragma_handler): Declare.
|
|
|
|
|
* c-common.c (c_parse_error): Pretty print CPP_PRAGMA and
|
|
|
|
|
CPP_PRAGMA_EOL.
|
|
|
|
|
* c-common.h (c_common_pch_pragma): Update decl.
|
|
|
|
|
* Makefile.in (c-parser.o): Update dependencies.
|
|
|
|
|
(GTFILES): Add c-pragma.h.
|
|
|
|
|
* c-parser.c (struct c_token): Add pragma_kind.
|
|
|
|
|
(struct c_parser): Add in_pragma.
|
|
|
|
|
(c_lex_one_token): Always initialize keyword and pragma_kind.
|
|
|
|
|
Extract data for CPP_PRAGMA.
|
|
|
|
|
(c_parser_peek_2nd_token): Deny CPP_PRAGMA_EOL.
|
|
|
|
|
(c_parser_consume_token): Don't allow CPP_PRAGMA unless errors.
|
|
|
|
|
Don't allow CPP_PRAGMA_EOL if in_pragma.
|
|
|
|
|
(c_parser_consume_pragma): New.
|
|
|
|
|
(c_parser_skip_until_found): Stop on CPP_PRAGMA_EOL.
|
|
|
|
|
(c_parser_skip_to_end_of_parameter): Likewise.
|
|
|
|
|
(c_parser_skip_to_end_of_block_or_statement): Likewise.
|
|
|
|
|
(c_parser_skip_to_pragma_eol): New.
|
|
|
|
|
(c_parser_external_declaration): Handle CPP_PRAGMA.
|
|
|
|
|
(c_parser_compound_statement_nostart): Likewise.
|
|
|
|
|
(c_parser_statement_after_labels): Likewise.
|
|
|
|
|
(c_parser_pragma): New.
|
|
|
|
|
(pragma_lex): Likewise.
|
|
|
|
|
(c_parser_pragma_pch_preprocess): New.
|
|
|
|
|
(c_parser_new): Merge into ...
|
|
|
|
|
(c_parse_file): ... here. Call c_parser_pragma_pch_preprocess.
|
|
|
|
|
|
predicates.md (binary_float_operator, [...]): Remove redundant conditionals.
* config/sh/predicates.md (binary_float_operator,
binary_logical_operator, commutative_float_operator,
equality_comparison_operator, greater_comparison_operator,
less_comparison_operator, logical_operator,
noncommutative_float_operator, shift_operator,
symbol_ref_operand, unary_float_operator): Remove redundant
conditionals.
From-SVN: r109512
2006-01-09 23:49:35 +01:00
|
|
|
|
2006-01-04 Jeff Law <law@redhat.com>
|
2006-01-04 17:29:32 +01:00
|
|
|
|
|
|
|
|
|
PR ada/24994
|
|
|
|
|
* tree-cfg.c (bsi_replace): Remove the original statement
|
|
|
|
|
from the EH throw statement table.
|
|
|
|
|
|
2006-01-04 09:05:29 +01:00
|
|
|
|
2006-01-04 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2006-01-04 09:17:15 +01:00
|
|
|
|
* config/i386/pmm_malloc.h (posix_memalign): If __cplusplus,
|
|
|
|
|
make the prototype extern "C" and add throw ().
|
|
|
|
|
|
2006-01-04 09:15:06 +01:00
|
|
|
|
PR target/25554
|
|
|
|
|
* config/i386/i386.md (testqi_ext_3): Ensure len is positive
|
|
|
|
|
and pos non-negative and pos + len <= 32.
|
|
|
|
|
(testqi_ext_3_rex64): Ensure len is positive and pos non-negative,
|
|
|
|
|
drop pos + len < HOST_BITS_PER_WIDE_INT test.
|
|
|
|
|
(testqi_ext_3* splitter): Handle pos + len == HOST_BITS_PER_WIDE_INT.
|
|
|
|
|
|
2006-01-04 09:07:09 +01:00
|
|
|
|
PR c/25559
|
|
|
|
|
* c-common.c (handle_vector_size_attribute): Reject zero vector size
|
|
|
|
|
as well as sizes not multiple of component size.
|
|
|
|
|
|
2006-01-04 09:05:29 +01:00
|
|
|
|
PR debug/25562
|
|
|
|
|
* function.c (instantiate_expr): New function.
|
|
|
|
|
(instantiate_decls_1, instantiate_decls): If DECL_HAS_VALUE_EXPR_P,
|
|
|
|
|
walk its DECL_VALUE_EXPR with instantiate_expr.
|
|
|
|
|
|
|
|
|
|
* dwarf2out.c (loc_descriptor_from_tree_1): Don't add
|
|
|
|
|
DW_OP_deref{,_size} if address isn't going to be added.
|
|
|
|
|
|
2006-01-04 04:42:02 +01:00
|
|
|
|
2006-01-04 Ben Elliston <bje@au.ibm.com>
|
|
|
|
|
|
|
|
|
|
* config/fp-bit.h: Use top-of-file comment from libgcc2.c.
|
|
|
|
|
* config/fp-bit.c: Likewise.
|
|
|
|
|
|
2006-01-04 03:03:19 +01:00
|
|
|
|
2006-01-03 Daniel Berlin <dberlin@dberlin.org>
|
|
|
|
|
|
|
|
|
|
* dominance.c: Add comment about why we use DFS numbering
|
|
|
|
|
of dominance tree.
|
|
|
|
|
|
2006-01-03 17:19:21 +01:00
|
|
|
|
2006-01-03 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
Merge from gomp-branch:
|
2006-01-23 16:14:53 +01:00
|
|
|
|
* varasm.c (assemble_variable): Handle thread-local COMMON data.
|
|
|
|
|
* defaults.h (ASM_OUTPUT_TLS_COMMON): Define.
|
2006-01-03 17:19:21 +01:00
|
|
|
|
|
2006-01-03 15:58:05 +01:00
|
|
|
|
2006-01-03 Paolo Bonzini <bonzini@gnu.org>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/25578
|
|
|
|
|
* combine.c (combine_simplify_rtx, force_to_mode): Don't
|
|
|
|
|
pass a parameter to simplify_shift_const if changing ASHIFTRT
|
|
|
|
|
to LSHIFTRT.
|
|
|
|
|
|
2006-01-03 12:52:29 +01:00
|
|
|
|
2006-01-03 Adrian Straetling <straetling@de.ibm.com>
|
|
|
|
|
|
re PR tree-optimization/23109 (compiler generates wrong code leading to spurious division by zero with -funsafe-math-optimizations (instead of -ftrapping-math))
gcc:
2006-01-11 Paolo Bonzini <bonzini@gnu.org>
PR tree-optimization/23109
PR tree-optimization/23948
PR tree-optimization/24123
* Makefile.in (tree-ssa-math-opts.o): Adjust dependencies.
* tree-cfg.c (single_noncomplex_succ): New.
* tree-flow.h (single_noncomplex_succ): Declare it.
* tree-ssa-math-opts.c (enum place_reciprocal): Remove.
* tree-ssa-math-opts.c (enum place_reciprocal): Remove.
(struct occurrence, occ_head, occ_pool, is_divide_by, compute_merit,
insert_bb, register_division_in, insert_reciprocals,
replace_reciprocal, free_bb): New.
(execute_cse_reciprocals_1): Rewritten.
(execute_cse_reciprocals): Adjust calls to execute_cse_reciprocals_1.
Do not commit any edge insertion. Always compute dominators and
create the allocation pool.
* target-def.h (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): New.
* target.h (struct gcc_target): Add min_divistions_for_recip_mul.
* targhooks.c (default_min_divistions_for_recip_mul): New.
* targhooks.h (default_min_divistions_for_recip_mul): New prototype.
* passes.c (init_optimization_passes): Run recip after tree loop
optimizations.
* doc/tm.texi (Misc): Document TARGET_MIN_DIVISIONS_FOR_RECIP_MUL.
gcc/testsuite:
2006-01-11 Paolo Bonzini <bonzini@gnu.org>
PR tree-optimization/23109
PR tree-optimization/23948
PR tree-optimization/24123
* gcc.dg/tree-ssa/recip-3.c, gcc.dg/tree-ssa/recip-4.c,
gcc.dg/tree-ssa/recip-5.c, gcc.dg/tree-ssa/recip-6.c,
gcc.dg/tree-ssa/recip-7.c, gcc.dg/tree-ssa/pr23109.c,
g++.dg/tree-ssa/pr23948.C: New testcases.
* gcc.dg/tree-ssa/recip-2.c, gcc.dg/tree-ssa/pr23234.c: Provide
three divisions in order to do the optimization.
From-SVN: r109578
2006-01-11 14:02:18 +01:00
|
|
|
|
* builtins.c (get_builtin_sync_mem): New function.
|
2006-01-03 12:52:29 +01:00
|
|
|
|
(expand_builtin_sync_operation, expand_builtin_compare_and_swap,
|
|
|
|
|
expand_builtin_lock_test_and_set, expand_builtin_lock_release):
|
|
|
|
|
Call get_builtin_sync_mem to generate mem rtx.
|
|
|
|
|
|
2006-01-03 10:15:08 +01:00
|
|
|
|
2006-01-03 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR c/25183
|
|
|
|
|
* stmt.c (add_case_node): Make sure to clear overflow flags
|
|
|
|
|
from ranges.
|
|
|
|
|
|
2006-01-03 10:06:36 +01:00
|
|
|
|
2006-01-03 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
Merge from gomp-branch.
|
|
|
|
|
* config/sparc/sync.md: New file.
|
|
|
|
|
* config/sparc/sparc.md (UNSPECV_MEMBAR, UNSPECV_CAS, UNSPECV_SWAP,
|
|
|
|
|
UNSPECV_LDSTUB): New constants.
|
|
|
|
|
* config/sparc/sparc.c (sparc_expand_compare_and_swap_12): New function.
|
|
|
|
|
* config/sparc/predicates.md (memory_reg_operand): New predicate.
|
|
|
|
|
* config/sparc/sparc-protos.h (sparc_expand_compare_and_swap_12): New
|
|
|
|
|
prototype.
|
|
|
|
|
|
2006-01-03 08:18:48 +01:00
|
|
|
|
2006-01-03 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
|
|
* combine.c (reg_subword_p): New predicate to test whether the
|
|
|
|
|
destination of a set refers to a subword/piece of a register.
|
|
|
|
|
(try_combine): Generalize the code to merge the setting of a
|
|
|
|
|
pseudo to a constant followed by a set of a subword of that
|
|
|
|
|
register to a constant.
|
|
|
|
|
|
2006-01-03 07:29:07 +01:00
|
|
|
|
2006-01-03 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* basic-block.h (control_flow_graph): Change the type of
|
|
|
|
|
x_label_to_block_map to VEC(basic_block,gc) *.
|
|
|
|
|
* tree-cfg.c (init_empty_tree_cfg, label_to_block_fn,
|
|
|
|
|
set_bb_for_stmt): Adjust the uses of x_label_to_block_map.
|
|
|
|
|
|
2006-01-03 07:30:13 +01:00
|
|
|
|
* tree-ssa-propagate.c (cfg_blocks): Change the type to
|
|
|
|
|
VEC(basic_block,heap) *.
|
|
|
|
|
(cfg_blocks_add, cfg_blocks_get, ssa_prop_init,
|
|
|
|
|
ssa_prop_fini): Adjust the uses of cfg_blocks.
|
|
|
|
|
|
2006-01-03 07:20:21 +01:00
|
|
|
|
2006-01-03 Steven Bosscher <stevenb.gcc@gmail.com>
|
|
|
|
|
|
|
|
|
|
* fold-const.c (operand_equal_p): Accept a NULL operand 0 for
|
|
|
|
|
COMPONENT_REFs.
|
|
|
|
|
* emit-rtl.c (mem_attrs_htab_eq): Use iterative_hash_expr for
|
|
|
|
|
hashing trees instead of a pointer hash.
|
|
|
|
|
(mem_attrs_htab_eq): Do a deep compare instead of a pointer
|
|
|
|
|
compare for MEM_EXPR.
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/25130
|
|
|
|
|
* cse.c (exp_equiv_p): Compare MEM_ATTRS instead of MEM_ALIAS_SET
|
|
|
|
|
when comparing MEMs for GCSE
|
|
|
|
|
|
2006-01-03 06:08:19 +01:00
|
|
|
|
2006-01-03 Ben Elliston <bje@au.ibm.com>
|
|
|
|
|
|
|
|
|
|
* targhooks.h (default_decimal_float_supported_p): Declare.
|
|
|
|
|
* targhooks.c (default_decimal_float_supported_p): Define.
|
|
|
|
|
* target-def.h (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Redefine to
|
|
|
|
|
`default_decimal_float_supported_p'.
|
|
|
|
|
* doc/tm.texi (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Update.
|
|
|
|
|
|
2006-01-03 06:05:06 +01:00
|
|
|
|
2006-01-02 Adam Nemet <anemet@caviumnetworks.com>
|
|
|
|
|
|
|
|
|
|
* combine.c (apply_distributive_law <SUBREG>): Check
|
|
|
|
|
TRULY_NOOP_TRUNCATION.
|
|
|
|
|
|
2006-01-03 05:57:10 +01:00
|
|
|
|
2006-01-02 Geoffrey Keating <geoffk@apple.com>
|
|
|
|
|
|
|
|
|
|
* dwarf2out.c (have_switched_text_section): Delete.
|
|
|
|
|
(have_multiple_function_sections): New.
|
|
|
|
|
(have_location_lists): Make 'bool'.
|
|
|
|
|
(add_AT_loc_list): Use 'true' not '1'.
|
|
|
|
|
(dwarf2out_switch_text_section): Set have_multiple_function_sections.
|
|
|
|
|
(output_loc_list): Use have_multiple_function_sections.
|
|
|
|
|
(output_ranges): Likewise.
|
|
|
|
|
(dwarf2out_begin_function): Set have_multiple_function_sections if
|
|
|
|
|
necessary.
|
|
|
|
|
(dwarf2out_source_line): Don't fake separate_line_info_table_in_use.
|
|
|
|
|
Check function_section rather than DECL_SECTION_NAME.
|
|
|
|
|
(dwarf2out_finish): Use have_multiple_function_sections.
|
|
|
|
|
Don't clear have_location_lists.
|
|
|
|
|
|
2006-01-02 23:47:50 +01:00
|
|
|
|
2006-01-02 Eric Botcazou <ebotcazou@adacore.com>
|
2006-01-23 16:14:53 +01:00
|
|
|
|
Jan Hubicka <jh@suse.cz>
|
2006-01-02 23:47:50 +01:00
|
|
|
|
|
|
|
|
|
* cfglayout.c (fixup_reorder_chain): Remove kludge for the
|
|
|
|
|
case of conditional jump jumping to the next instruction.
|
|
|
|
|
* cfgrtl.c (force_nonfallthru_and_redirect): Accept all
|
|
|
|
|
cases of conditional jump jumping to the next instruction.
|
|
|
|
|
|
2006-01-02 20:19:22 +01:00
|
|
|
|
2006-01-02 Jan Hubicka <jh@suse.cz>
|
|
|
|
|
|
|
|
|
|
* i386.c (*_cost): Add COSTS_N_INSNS.
|
|
|
|
|
(ix86_rtx_costs): Do not use COSTS_N_INSNS.
|
|
|
|
|
|
2006-01-02 19:53:27 +01:00
|
|
|
|
2006-01-02 Paolo Bonzini <bonzini@gnu.org>
|
|
|
|
|
|
2006-01-23 16:14:53 +01:00
|
|
|
|
PR target/25259
|
|
|
|
|
* Makefile.in (DECNUMINC): Include libdecnumber's build directory.
|
2006-01-02 19:53:27 +01:00
|
|
|
|
|
2006-01-02 18:28:54 +01:00
|
|
|
|
2006-01-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
* config/arm/arm.c (all_fpus): Fix comment typo.
|
|
|
|
|
* config/darwin.c: Likewise.
|
|
|
|
|
* config/frv/frv.h (FRV_STRUCT_VALUE_REGNUM): Likewise.
|
|
|
|
|
* config/h8300/h8300.md (extendqisi2_h8300hs): Likewise.
|
|
|
|
|
* config/m68hc11/m68hc11.c (m68hc11_reload_operands): Likewise.
|
|
|
|
|
|
2006-01-01 23:00:46 +01:00
|
|
|
|
2006-01-01 David Edelsohn <edelsohn@gnu.org>
|
|
|
|
|
|
|
|
|
|
* config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): New.
|
|
|
|
|
(rs6000_split_compare_and_swapqhi): New.
|
|
|
|
|
* config/rs6000/sync.md (sync_compare_and_swap{hi,qi}): New.
|
|
|
|
|
(sync_compare_and_swapqhi_internal): New.
|
|
|
|
|
* config/rs6000/rs6000-protos.h: Declare.
|