Commit Graph

32494 Commits

Author SHA1 Message Date
Andreas Schwab 740aeb384d ia64.c (emit_predicate_relation_info): Fix use of NOTE_INSN_BASIC_BLOCK_P.
* config/ia64/ia64.c (emit_predicate_relation_info): Fix use of
	NOTE_INSN_BASIC_BLOCK_P.
	(process_for_unwind_directive): Likewise.

From-SVN: r124899
2007-05-21 11:29:35 +00:00
Nathan Sidwell ecaebb9e0b builtins.c (expand_builtin_setjmp_setup): Update comment.
* builtins.c (expand_builtin_setjmp_setup): Update comment.
	* function.h (struct function): Move va_list_gpr_size,
	va_list_fpr_size, function_frequency to front of bitfields.  Add
	calls_unwind_init.
	(current_function_calls_unwind_init): New.
	* except.c (expand_builtin_unwind_init): Set
	current_function_calls_unwind_init not
	current_function_has_nonlocal_label.
	* reload1.c (has_nonexceptional_receiver): New.
	(reload): Use it and current_function_calls_unwind_init to
	determine whether call-saved regs must be saved.

From-SVN: r124898
2007-05-21 10:58:29 +00:00
Jan Hubicka a38e7aa544 gengtype.c (adjust_field_rtx_def): Use NOTE_KIND instead of NOTE_LINE_NUMBER...
* gengtype.c (adjust_field_rtx_def): Use NOTE_KIND instead of
	NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
	* ddg.c (create_ddg): LIkewise.
	* final.c (final): Remove hunk moving line numbernotes around since
	they are no longer present at this stage.
	(final_scan_insn): Use NOTE_KIND instead of
	NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
	(output_asm_label): Likewise.
	* reorg.c (dbr_schedule): Likewise.
	* haifa-sched.c (unlink_other_notes): Likewise.
	* mode-switching.c (optimize_mode_switching): Likewise.
	* graph.c (start_bb): Likewise.
	* rtl.def (NOTE): Update description.
	* jump.c (squeeze_notes): Delete.
	(mark_jump_label): Use NOTE_KIND instead of NOTE_LINE_NUMBER; use
	NOTE_INSN_BASIC_BLOCK_P when possible.
	* ifcvt.c (dead_or_predicable): Remove call of squeeze_notes.
	* dwarf2out.c (gen_label_die): Use NOTE_KIND instead of
        NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
	(dwarf2out_var_location): Likewise.
	* cfgbuild.c (make_edges): Likewise.
	(find_basic_blocks_1): Likewise.
	* function.c (reorder_blocks_1): Likewise.
	(epilogue_done): Likewise.
	(reposition_prologue_and_epilogue_notes): Likewise.
	* print-rtl.c (print_rtx): Likewise; drop code for printing line number
	notes.
	(print_rtl): Likewise.
	(print_rtl_single): Likewise.
	* gcse.c (insert_insn_start_bb): Likewise.
	* alias.c (init_alias_analysis): Likewise.
	* calls.c (fixup_tail_calls): Likewise.
	* except.c (sjlj_emit_function_enter): Likewise.
	* emit-rtl.c (add_insn_after): Likeiwse.
	(emit_label_before): Likewise.
	(emit_label_after): Likewise.
	(emit_note_before, emit_note_after, emit_note): Update
	parameter to be enum insn_note; do not deal with source
	files.
	* cfgcleanup.c (merge_blocks_move_predecessor_nojumps):
	Use NOTE_KIND instead of NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P
	when possible.
	(merge_blocks_move_successor_nojumps): Simplify now when
	we don't have BLOCK notes.
	(try_optimize_cfg): Likewise.
	* cfglayout.c (skip_insns_after_block): Likewise.
	(record_effective_endpoints): Likewise.
	(duplicate_insn_chain): Likewise.
	* varasm.c (output_constant_pool_1): Likewise.
	* sched-deps.c (sched_analyze): Likewise.
	* rtl.c (NOTE_INSN_MAX_isnt_negative_adjust_NOTE_INSN_BIAS):
	Exterminate.
	(note_insn_name): Simplify now when NOTE_INSN_BIAS is gone.
	* rtl.h (NOTE_SOURCE_LOCATION, NOTE_EXPANDED_LOCATION): Exterminate.
	(SET_INSN_DELETED): Simplify.
	(NOTE_LINE_NUMBER): Exterminate.
	(NOTE_LINE_KIND): New.
	(NOTE_INSN_BASIC_BLOCK_P): Update.
	(enum insn_note): Simplify.
	(GET_NOTE_INSN_NAME) Simplify.
	(emit_note_before, emit_note_after, emit_note): Update prototype.
	(squeeze_notes): Remove.
	* sched-int.h (NOTE_NOT_BB_P): Update.
	* resource.c (mark_target_live_regs): Update.
	* sched-rgn.c (debug_dependencies): Update.
	* sched-vis.c (print_insn): Update.
	* config/alpha/alpha.c (alpha_handle_trap_shadows): Update.
	* config/i386/i386.c (ix86_output_function_epilogue): Update.
	* config/sh/sh.c (sh_adjust_unroll_max): Function dead since gcc 4.0.0.
	(TARGET_ADJUST_UNROLL_MAX): Likewise.
	(split_branches): Update.
	(sh_optimize_target_register_callee_saved): Remove hunk dead since gcc
	4.0.0.
	(sh_adjust_unroll_max): Exterminate.
	* config/c4x/c4x.c (c4x_reorg): Use SET_INSN_DELETED.
	* config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Likewise.
	(m68hc11_reorg): Likewise.
	* config/ia64/ia64.c (emit_insn_group_barriers): Update.
	(emit_predicate_relation_info): Update.
	(process_for_unwind_directive): Update.
	* config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update.
	(output_call): Update.
	* config/pa/pa.c (output_lbranch): Update.
	(output_millicode_call): Update.
	(output_call): Update.
	(pa_combine_instructions): Update.
	* config/mips/mips.c (mips16_gp_pseudo_reg): Update.
	* config/bfin/bfin.c (gen_one_bundle): Update.
	* cfgrtl.c (can_delete_note_p): Update.
	(delete_insn): Update.
	(rtl_merge_blocks): Update.
	(commit_one_edge_insertion): Update.
	(rtl_verify_flow_info): Update.
	* stmt.c (expand_case): Do not call squeeze_notes.

From-SVN: r124895
2007-05-21 06:19:50 +00:00
Manuel López-Ibáñez aac8bf8060 Changelog: Fix wrong year.
* gcc/Changelog: Fix wrong year.
        * gcc/testsuite/Changelog: Likewise.

From-SVN: r124877
2007-05-20 20:56:52 +00:00
Manuel López-Ibáñez f6aa72dd49 re PR middle-end/7651 (Define -Wextra strictly in terms of other warning flags)
2007-05-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
	
	PR middle-end/7651
	PR c++/11856
	PR c/12963
	PR c/23587
	PR other/29694
	* c.opt (Wtype-limits): New.
	* doc/invoke.texi (Wtype-limits): Document it.
	(Wextra): Enabled by -Wextra.
	* c-opts.c (c_common_post_options): Enabled by -Wextra.
	* c-common.c (shorten_compare): Warn with Wtype-limits.

testsuite/
	* gcc.dg/compare6.c: Replace Wall with Wtype-limits.
	* gcc.dg/Wtype-limits.c: New.
	* gcc.dg/Wtype-limits-Wextra.c: New.
	* gcc.dg/Wtype-limits-no.c: New.
	* g++.dg/warn/Wtype-limits.C: New.
	* g++.dg/warn/Wtype-limits-Wextra.C: New.
	* g++.dg/warn/Wtype-limits-no.C: New.

From-SVN: r124875
2007-05-20 20:29:55 +00:00
Uros Bizjak 46fb8f6ba3 tmmintrin.h (_mm_alignr_epi32): Implement as always inlined function, not as a macro.
* config/i386/tmmintrin.h (_mm_alignr_epi32): Implement as always
        inlined function, not as a macro.
        (_mm_alignr_pi8): Ditto.
        * config/i386/ammintrin.h (_mm_extracti_si64): Ditto.
        (_mm_inserti_si64): Ditto.
        * config/i386/emmintrin.h (_mm_shuffle_pd): Ditto.
        (_mm_extract_epi16): Ditto.
        (_mm_insert_epi16): Ditto.
        (_mm_shufflehi_epi16): Ditto.
        (_mm_shufflelo_epi16): Ditto.
        (_mm_shuffle_epi32): Ditto.
        * config/i386/xmmintrin.h (_mm_set_ss): Use 0.0f for float constant.
        * config/386/mm3dnow.h: Add __attribute__((__always_inline__)) to
        all functions.
        (_m_from_float): Add __extension__ to conversion.  Use 0.0f for
        float constant.
        (_m_to_float): Use C89 compatible assignment.

testsuite/ChangeLog:

        * gcc.target/i386/sse-vect-types.c: Revert 'Use "-msse"
        instead of "-msse2".'
        * gcc.target/i386/sse-12.c: Use "-march=k8 -m3dnow -mssse3 -msse4a"
        instead of "-msse3".  Include only ammintrin.h, tmmintrin.h
        and mm3dnow.h.
        * gcc.target/i386/sse-13.c (__builtin_ia32_extrqi): Redefine
        to test with immediate operand.
        (__builtin_ia32_insertqi): Ditto.
        (__builtin_ia32_palignr128): Ditto.
        (__builtin_ia32_palignr): Ditto.
        (__builtin_ia32_pshufhw): Ditto.
        (__builtin_ia32_pshuflw): Ditto.
        (__builtin_ia32_pshufd): Ditto.
        (__builtin_ia32_vec_set_v8hi): Ditto.
        (__builtin_ia32_vec_ext_v8hi): Ditto.
        (__builtin_ia32_shufpd): Ditto.
        * gcc.target/i386/sse-14.c: Same changes as sse-13.c.

From-SVN: r124873
2007-05-20 15:41:13 +02:00
Martin Michlmayr dde27bba7d re PR target/32007 (bootstrap broken on ARM v3)
2007-04-20  Martin Michlmayr  <tbm@cyrius.com>

	PR target/32007
	* config/arm/lib1funcs.asm: Define __ARM_ARCH__ on v2/v3 machines.

From-SVN: r124871
2007-05-20 11:18:27 +00:00
Manuel López-Ibáñez ffd5f27613 re PR middle-end/7651 (Define -Wextra strictly in terms of other warning flags)
2006-05-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR middle-end/7651
	* doc/invoke.texi (Wreturn-type): Complete description.
	(Wextra): Delete item about return-type warning.
	* c-decl.c: Delete redundant Wextra warning.

testsuite/
	* gcc.dg/20030906-1.c: Replace Wextra with Wreturn-type.
	* gcc.dg/20030906-2.c: Likewise.
	* objc.dg/method-17.m: Add -Wreturn-type.
	* obj-c++.dg/method-21.mm: Likewise.

From-SVN: r124866
2007-05-20 00:45:58 +00:00
Uros Bizjak 376a4c0534 re PR target/31585 (gcc.target/i386/sse-vect-types.c FAILs (also sse-13.c and sse-14.c))
PR target/31585
        * config/i386/pmmintrin.h: Do not include xmmintrin.h
        * config/i386/xmmintrin.h (_mm_extract_pi16): Implement as always
        inlined function, not as a macro.
        (_mm_prefetch): Ditto.
        (_m_pextrw): Ditto.
        (_mm_insert_pi16): Ditto.
        (_m_pinsrw): Ditto.
        (_mm_shuffle_pi16): Ditto.  Add const to __N argument.
        (_m_pshufw): Ditto. Add const to __N argument.
        (_mm_shufle_ps): Ditto.  Add const to __mask argument.
        * config/i386/emmintrin.h (_mm_slli_epi16): Add const to __B argument.
        (_mm_slli_epi32): Ditto.
        (_mm_srli_si128): Implement as always inlined function, not as a macro.
        Add __inline to function declaration.
        (_mm_slli_si128): Ditto.

testsuite/ChangeLog:

        PR target/31585
        * gcc.target/i386/sse-13.c: Use -mssse3 and -msse4a compile options.
        (__builtin_ia32_psllwi128): Redefine to test with immediate operand.
        (__builtin_ia32_psrlqi128): Ditto.
        (__builtin_ia32_psrlwi128): Ditto.
        (__builtin_ia32_psrldi128): Ditto.
        (__builtin_ia32_psrldqi128): Ditto.
        (__builtin_ia32_pslldqi128): Ditto.
        (__builtin_ia32_psrawi128): Ditto.
        (__builtin_ia32_psradi128): Ditto.
        (__builtin_ia32_psllqi128): Ditto.
        (__builtin_ia32_pslldi128): Ditto.
        (__builtin_prefetch): Ditto.
        (__builtin_ia32_pshufw): Ditto.
        (__builtin_ia32_vec_set_v4hi): Ditto.
        (__builtin_ia32_vec_ext_v4hi): Ditto.
        (__builtin_ia32_shufps): Ditto.
        * gcc.target/i386/sse-14.c: Same changes as sse-13.c.

From-SVN: r124861
2007-05-20 01:27:48 +02:00
Uros Bizjak e9d416168f sfp-machine.h (FP_EX_INVALID, [...]): New constants.
* config/i386/sfp-machine.h (FP_EX_INVALID, FP_EX_DENORM,
        FP_EXP_DIVZERO, FP_EX_OVERFLOW, FP_EX_UNDERFLOW, FP_EX_INEXACT):
        New constants.
        (struct fenv): New structure.
        (FP_HANDLE_EXCEPTIONS): New define.
        (FP_RND_NEAREST, FP_RND_ZERO, FP_RND_PINF, FP_RND_MINF): New constants.
        (_FP_DECL_EXP): New define.
        (FP_INIT_ROUNDMODE): New define.
        (FP_ROUNDMODE): New define.

From-SVN: r124857
2007-05-19 21:19:08 +02:00
Manuel López-Ibáñez 7060db96db invoke.texi (Warning Options): Add -Wconversion-sign.
2007-05-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* doc/invoke.texi (Warning Options): Add -Wconversion-sign.
	(Wconversion): Update description.
	(Wconversion-sign): New.
	* c.opt (Wconversion-sign): New.
	* c-opts.c (c_common_post_options): Uninitialized Wconversion-sign
	means disabled for C++. Otherwise, take the status of Wconversion.
	* c-common.c (conversion_warning): Warn with either Wconversion or
	Wconversion-sign.
	(warnings_for_convert_and_check): Conditions are already checked by
	conversion_warning.
	(convert_and_check): Don't check warnings if the conversion failed.

cp/
	* cvt.c (cp_convert_and_check): Don't check warnings if the
	conversion failed.

testsuite/
	* gcc.dg/Wconversion-integer.c: Group testcases and add more.
	* gcc.dg/Wconversion-sign.c: New.
	* gcc.dg/Wconversion-integer-no-sign.c: New.
	* g++.dg/warn/Wconversion-integer.C: Move some warnings to
	Wconversion-sign.C
	* g++.dg/warn/Wconversion-sign.C: New.
	* g++.old-deja/g++.other/warn4.C: Update.
	* g++.dg/warn/Wconversion1.C: Likewise.

From-SVN: r124856
2007-05-19 13:32:03 +00:00
Andy Hutchinson 4fc2b4ff18 avr-protos.h (expand_prologue, [...]): Add declaration.
* config/avr/avr-protos.h (expand_prologue, expand_epilogue, 
	avr_epilogue_uses) : Add declaration.
	* config/avr/predicates.md (avr_sp_immediate_operand): New predicate.
	* config/avr/constraints.md (R): New constraint.
	config/avr/avr.md (SREG_ADDR,  UNSPEC_SEI, UNSPEC_CLI, 
	UNSPECV_PROLOGUE_SAVES, UNSPECV_EPILOGUE_RESTORES): New constants.
	(*pop1, *pop2, *pop3, *pop4, *pop5): Combine into ...
	(*addhi3_sp_R_pc2, *addhi3_sp_R_pc3): ... these patterns.
	(*movhi_sp, popqi, pophi, enable_interrupt, disable_interrupt, 
	call_prologue_saves, epilogue_restores, return_from_epilogue,
	return_from_main_epilogue, return_from_interrupt_epilogue, 
	return_from_naked_epilogue, prologue, epilogue): New patterns.
	(jump): Handle symbol reference.
	* config/avr/avr.c (out_adj_frame_ptr, out_set_stack_ptr, 
	avr_output_function_prologue, avr_output_function_epilogue): Remove 
	functions.
	(avr_init_machine_status, expand_prologue, expand_epilogue, 
	avr_asm_function_end_prologue, avr_epilogue_uses, 
	avr_asm_function_begin_epilogue): New functions.
	(prologue_size, epilogue_size, jump_tables_size): Remove global 
	variables.
	(TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Remove.
	(TARGET_ASM_FUNCTION_END_PROLOGUE): Define.
	(TARGET_ASM_FUNCTION_BEGIN_EPILOGUE): Define.
	(avr_override_options): Initialise init_machine_status.
	(output_movhi): Handle all stack pointer loads.
	(out_movqi_r_mr, out_movqi_mr_r): Handle SREG_ADDR address.
	(avr_output_addr_vec_elt): Do not use variable jump_tables_size.
	* config/avr/avr.h (AVR_2_BYTE_PC, AVR_3_BYTE_PC): New.
	(EPILOGUE_USES) Redefine.
	(machine_function) Declare.

Co-Authored-By: Anatoly Sokolov <aesok@dol.ru>

From-SVN: r124854
2007-05-19 14:59:17 +04:00
Richard Sandiford 6de3644168 mips.c (mips_offset_within_alignment_p): Tweak comment.
gcc/
	* config/mips/mips.c (mips_offset_within_alignment_p): Tweak comment.
	Use a single return statement.

From-SVN: r124853
2007-05-19 07:21:41 +00:00
Kaveh R. Ghazi 752b7d38db re PR middle-end/30250 (Evaluate lgamma/gamma at compile-time)
PR middle-end/30250
	* builtins.c (do_mpfr_lgamma_r): New.
	(fold_builtin_2): Handle builtin gamma_r/lgamma_r.
	* tree.h (CASE_FLT_FN_REENT): New.

testsuite:
	* gcc.dg/torture/builtin-math-2.c: Add gamma_r/lgamma_r tests.
	* gcc.dg/torture/builtin-math-4.c: Likewise.

From-SVN: r124849
2007-05-19 04:18:05 +00:00
Geoffrey Keating 8d5b1b6786 Index: gcc/java/ChangeLog
2007-05-18  Geoffrey Keating  <geoffk@apple.com>

	* jcf-dump.c (HANDLE_MAGIC): Use 'unsigned long' for %lx.
	(print_constant): Likewise.

Index: gcc/ChangeLog
2007-05-18  Geoffrey Keating  <geoffk@apple.com>

	* dwarf2out.c (print_die): Use '%ld' not '%lu' to print a 'long'.
	(output_die): Use 'unsigned long' with %x.
	* sched-vis.c (print_value): Use 'unsigned HOST_WIDE_INT' and
	HOST_WIDE_INT_PRINT_HEX to print HOST_WIDE_INT.
	* tree-dump.c (dump_pointer): Use 'unsigned long' for %lx.

Index: gcc/cp/ChangeLog
2007-05-18  Geoffrey Keating  <geoffk@apple.com>

	* mangle.c (write_real_cst): Use 'unsigned long' for %lx.

From-SVN: r124839
2007-05-18 23:05:50 +00:00
Geoffrey Keating ca0d5e024b * unwind-dw2.c (uw_identify_context): Use the CFA, not the IP.
From-SVN: r124837
2007-05-18 22:50:18 +00:00
H.J. Lu f8024378a1 re PR target/31989 (Gcc miscompiles C/C++ on Linux/x86-64)
2007-05-18  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/31989
	PR target/31681
	PR target/31666
	* config/i386/i386.c (init_cumulative_args): Set maybe_vaarg to
	true if function has no argument.

From-SVN: r124835
2007-05-18 14:35:12 -07:00
DJ Delorie 8b5fb3a36f mips.c (mips_offset_within_alignment_p): New.
* config/mips/mips.c (mips_offset_within_alignment_p): New.
(mips_symbolic_constant_p): Call it for TPREL and DTPREL symbols.

From-SVN: r124833
2007-05-18 17:15:50 -04:00
Uros Bizjak e7e0aaeca8 longlong.h (__x86_64__): Add definitions for add_ssaaaa...
* longlong.h (__x86_64__): Add definitions for add_ssaaaa,
        sub_ddmmss, umul_ppmm, udiv_qrnnd, count_leading_zeros and
        count_trailing_zeros.
        (__i386__): Implement count_leading_zeros using __builtin_clz().
        Implement count_trailing_zeros usign __builtin_ctz().

From-SVN: r124832
2007-05-18 22:14:31 +02:00
Richard Sandiford 10d7f5f36e vxworks.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine.
gcc/
	* config/i386/vxworks.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine.

From-SVN: r124827
2007-05-18 09:31:33 +00:00
Uros Bizjak 8ecaacaf28 * PR rtl-optimization/31344 is actually middle-end bug.
From-SVN: r124826
2007-05-18 10:46:30 +02:00
Uros Bizjak 4bcc9de5fd re PR middle-end/31344 (bootstrap broken on i[345]86-linux)
PR rtl-optimization/31344
	* expr.c (emit_move_change_mode): Change mode of push operands here.

testsuite/ChangeLog:

	PR rtl-optimization/31344
	* gcc.dg/pr31344.c: New test.

From-SVN: r124825
2007-05-18 10:37:03 +02:00
Ian Lance Taylor b60b471172 re PR tree-optimization/31953 (ICE in set_value_range, at tree-vrp.c:305)
./:	PR tree-optimization/31953
	* tree-vrp.c (set_value_range_to_value): Add equiv parameter.
	Change all callers.
	(set_value_range_to_null): Call set_value_range_to_value.
	(extract_range_from_comparison): Likewise.
testsuite/:
	PR tree-optimization/31953
	* gcc.c-torture/compile/pr31953.c: New test.

From-SVN: r124823
2007-05-18 05:37:27 +00:00
Kaveh R. Ghazi 0968bb3d1d toplev.c (print_version): Output GMP/MPFR version info.
* toplev.c (print_version): Output GMP/MPFR version info.

From-SVN: r124822
2007-05-18 02:04:02 +00:00
Kaveh R. Ghazi bf460eec6f builtins.c (CASE_MATHFN_REENT): New macro.
* builtins.c (CASE_MATHFN_REENT): New macro.
	(mathfn_built_in): Use it.
	* builtins.def (BUILT_IN_GAMMA_R, BUILT_IN_GAMMAF_R,
	BUILT_IN_GAMMAL_R, BUILT_IN_LGAMMA_R, BUILT_IN_LGAMMAF_R,
	BUILT_IN_LGAMMAL_R): New.
	* doc/extend.texi: Document new builtins.

testsuite:
	* gcc.dg/builtins-1.c: Test reentrant gamma functions.

From-SVN: r124821
2007-05-18 01:42:15 +00:00
Kaveh R. Ghazi ea91f95764 re PR middle-end/31796 (Evaluate remquo/remainder/drem at compile-time)
PR middle-end/31796
	* builtins.c (do_mpfr_remquo): New.
	(fold_builtin_2): Handle BUILT_IN_DREM/BUILT_IN_REMAINDER.
	(fold_builtin_3): Handle BUILT_IN_REMQUO.

testsuite:
	* gcc.dg/torture/builtin-math-2.c: Add tests for remquo, remainder
	and drem.
	* gcc.dg/torture/builtin-math-4.c: Likewise.

From-SVN: r124820
2007-05-18 01:31:20 +00:00
Kaveh R. Ghazi fd2ef596b5 re PR middle-end/30251 (Evaluate bessel functions at compile-time)
PR middle-end/30251
	* builtins.c (fold_builtin_1): Handle y0, y1.
	(fold_builtin_2): Handle yn.

testsuite:
	* gcc.dg/torture/builtin-math-2.c: Test y0, y1, yn.
	* gcc.dg/torture/builtin-math-4.c: Likewise.

From-SVN: r124819
2007-05-18 01:15:28 +00:00
Kaveh R. Ghazi 550b318767 re PR middle-end/30251 (Evaluate bessel functions at compile-time)
PR middle-end/30251
	* builtins.c (do_mpfr_bessel_n): New.
	(fold_builtin_1): Handle BUILT_IN_J0 and BUILT_IN_J1.
	(fold_builtin_2): Handle BUILT_IN_JN.

testsuite:
	* gcc.dg/torture/builtin-math-4.c: New test.

From-SVN: r124818
2007-05-18 01:04:12 +00:00
Danny Smith a7d0b2d809 re PR target/31965 (_INTEGRAL_MAX_BITS defined incorrectly)
PR target/31965
	* config/i386/mingw32.h (_INTEGRAL_MAX_BITS): Define builtin as
	TYPE_PRECISION (intmax_type_node).

From-SVN: r124813
2007-05-17 22:51:05 +00:00
Steve Ellcey 0fa4cb7dd9 re PR target/31850 (gcc.c-torture/compile/limits-fnargs.c is slow at compiling for spu-elf)
PR target/31850
	* reload.c (subst_reloads): Remove checking.

From-SVN: r124810
2007-05-17 20:29:34 +00:00
Eric Botcazou 4eff80454b re PR rtl-optimization/31691 (optimized code taking the wrong branch)
PR rtl-optimization/31691
	* combine.c (simplify_set): Build a new src pattern instead of
	substituting its operands in the COMPARE case.

From-SVN: r124797
2007-05-17 13:29:10 +00:00
Zdenek Dvorak b02b9b53ec tree-vrp.c (finalize_jump_threads): Do not care about dominance info.
* tree-vrp.c (finalize_jump_threads): Do not care about dominance info.
	(execute_vrp): Preserve loops through jump threading.
	* tree-ssa-threadupdate.c (thread_single_edge,
	dbds_continue_enumeration_p, determine_bb_domination_status,
	thread_through_loop_header): New functions.
	(create_edge_and_update_destination_phis,
	create_edge_and_update_destination_phis): Set loops for the new blocks.
	(prune_undesirable_thread_requests): Removed.
	(redirect_edges): Do not pretend that redirect_edge_and_branch can
	create new blocks.
	(thread_block): Do not call prune_undesirable_thread_requests.
	Update loops.
	(mark_threaded_blocks): Select edges to thread here.
	(thread_through_all_blocks): Take may_peel_loop_headers argument.
	Thread edges through loop headers independently.
	* cfgloopmanip.c (create_preheader, mfb_keep_just): Export.
	* tree-pass.h (TODO_mark_first_instance): New.
	(first_pass_instance): Declare.
	* cfghooks.c (duplicate_block): Put the block to the original loop
	if copy is not specified.
	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Preserve loops through
	jump threading.  Pass may_peel_loop_headers to
	thread_through_all_blocks according to first_pass_instance.
	* cfgloop.h (create_preheader): Declare.
	* tree-flow.h (thread_through_all_blocks): Declaration changed.
	* basic-block.h (mfb_keep_just, mfb_kj_edge): Declare.
	* passes.c (first_pass_instance): New variable.
	(next_pass_1): Set TODO_mark_first_instance.
	(execute_todo): Set first_pass_instance.

	* gcc.dg/tree-ssa/ssa-dom-thread-2.c: New test.
	* gcc.dg/vect/vect-102.c, gcc.dg/vect/vect-103.c,
	gcc.dg/vect/vect-104.c: Use more complex construction to prevent vectorizing.
	* gcc.dg/tree-ssa/pr21559.c: Update outcome.

From-SVN: r124786
2007-05-17 08:10:24 +00:00
Uros Bizjak d9987fb407 re PR tree-optimization/24659 (Conversions are not vectorized)
PR tree-optimization/24659
        * optabs.h (enum optab_index): Add OTI_vec_unpacks_float_hi,
	OTI_vec_unpacks_float_lo, OTI_vec_unpacku_float_hi,
	OTI_vec_unpacku_float_lo, OTI_vec_pack_sfix_trunc and
	OTI_vec_pack_ufix_trunc.
	(vec_unpacks_float_hi_optab): Define new macro.
	(vec_unpacks_float_lo_optab): Ditto.
	(vec_unpacku_float_hi_optab): Ditto.
	(vec_unpacku_float_lo_optab): Ditto.
	(vec_pack_sfix_trunc_optab): Ditto.
	(vec_pack_ufix_trunc_optab): Ditto.
	* genopinit.c (optabs): Implement vec_unpack[s|u]_[hi|lo]_optab
	and vec_pack_[s|u]fix_trunc_optab using
	vec_unpack[s|u]_[hi\lo]_* and vec_pack_[u|s]fix_trunc_* patterns
	* tree-vectorizer.c (supportable_widening_operation): Handle
	FLOAT_EXPR and CONVERT_EXPR.  Update comment.
	(supportable_narrowing_operation): New function.
	* tree-vectorizer.h (supportable_narrowing_operation): Prototype.
	* tree-vect-transform.c (vectorizable_conversion): Handle
	(nunits_in == nunits_out / 2) and (nunits_out == nunits_in / 2) cases.
	(vect_gen_widened_results_half): Move before vectorizable_conversion.
	(vectorizable_type_demotion): Call supportable_narrowing_operation()
	to check for target support.
	* optabs.c (optab_for_tree_code) Return vec_unpack[s|u]_float_hi_optab
	for VEC_UNPACK_FLOAT_HI_EXPR, vec_unpack[s|u]_float_lo_optab
	for VEC_UNPACK_FLOAT_LO_EXPR and vec_pack_[u|s]fix_trunc_optab
	for VEC_PACK_FIX_TRUNC_EXPR.
	(expand_binop): Special case mode of the result for
	vec_pack_[u|s]fix_trunc_optab.
	(init_optabs): Initialize vec_unpack[s|u]_[hi|lo]_optab and
	vec_pack_[u|s]fix_trunc_optab.

	* tree.def (VEC_UNPACK_FLOAT_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR,
	VEC_PACK_FIX_TRUNC_EXPR): New tree codes.
	* tree-pretty-print.c (dump_generic_node): Handle
	VEC_UNPACK_FLOAT_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR and
	VEC_PACK_FIX_TRUNC_EXPR.
	(op_prio): Ditto.
	* expr.c (expand_expr_real_1): Ditto.
	* tree-inline.c (estimate_num_insns_1): Ditto.
	* tree-vect-generic.c (expand_vector_operations_1): Ditto.

	* config/i386/sse.md (vec_unpacks_float_hi_v8hi): New expander.
	(vec_unpacks_float_lo_v8hi): Ditto.
	(vec_unpacku_float_hi_v8hi): Ditto.
	(vec_unpacku_float_lo_v8hi): Ditto.
	(vec_unpacks_float_hi_v4si): Ditto.
	(vec_unpacks_float_lo_v4si): Ditto.
	(vec_pack_sfix_trunc_v2df): Ditto.

	* doc/c-tree.texi (Expression trees) [VEC_UNPACK_FLOAT_HI_EXPR]:
	Document.
	[VEC_UNPACK_FLOAT_LO_EXPR]: Ditto.
	[VEC_PACK_FIX_TRUNC_EXPR]: Ditto.
	* doc/md.texi (Standard Names) [vec_pack_sfix_trunc]: Document.
	[vec_pack_ufix_trunc]: Ditto.
	[vec_unpacks_float_hi]: Ditto.
	[vec_unpacks_float_lo]: Ditto.
	[vec_unpacku_float_hi]: Ditto.
	[vec_unpacku_float_lo]: Ditto.

testsuite/ChangeLog:

	PR tree-optimization/24659
	* gcc.dg/vect/vect-floatint-conversion-2.c: New test.
	* gcc.dg/vect/vect-intfloat-conversion-1.c: Require vect_float,
	not vect_int target.
	* gcc.dg/vect/vect-intfloat-conversion-2.c: Require vect_float,
	not vect_int target.  Loop is vectorized for vect_intfloat_cvt
	targets.
	* gcc.dg/vect/vect-intfloat-conversion-3.c: New test.
	* gcc.dg/vect/vect-intfloat-conversion-4a.c: New test.
	* gcc.dg/vect/vect-intfloat-conversion-4b.c: New test.

From-SVN: r124784
2007-05-17 08:31:05 +02:00
Uros Bizjak 27735edb45 README: Update for new files.
* soft-fp/README: Update for new files.
        * soft-fp/floattisf.c: New file.
        * soft-fp/floattidf.c: New file.
        * soft-fp/floattitf.c: New file.
        * soft-fp/floatuntisf.c: New file.
        * soft-fp/floatuntidf.c: New file.
        * soft-fp/floatuntitf.c: New file.
        * soft-fp/fixsfti.c: New file.
        * soft-fp/fixdfti.c: New file.
        * soft-fp/fixtfti.c: New file.
        * soft-fp/fixunssfti.c: New file.
        * soft-fp/fixunsdfti.c: New file.
        * soft-fp/fixunstfti.c: New file.
        * soft-fp/extendxftf.c: New file.
        * soft-fp/trunctfxf.c: New file.

        * libgcc-std.ver (__extendxftf2): Added to GCC_4.3.0 section.
        (__trunctfxf2): Ditto.

        * config/i386/libgcc-x86_64-glibc.ver (__addtf3, __divtf3, __eqtf2,
        __extenddftf2, __extendsftf2, __fixtfdi, __fixtfsi, __fixtfti,
        __fixunstfdi, __fixunstfsi, __fixunstfti, __floatditf, __floatsitf,
        __floattitf, __floatunditf, __floatunsitf, __floatuntitf, __getf2,
        __letf2, __multf3, __negtf2, __subtf3, __trunctfdf2, __trunctfsf2,
        __unordtf2): Exclude and add to GCC_4.3.0 section for x86_64 targets.

        * config/i386/t-fprules-softfp64: New file.
        * config/i386/sfp-machine.h: New file.
        * config.gcc (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu,
        x86_64-*-knetbsd*-gnu): Add i386/t-fprules-softfp64
        and soft-fp/t-softfp to tmake_file.
        (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
        i[34567]86-*-knetbsd*-gnu): Ditto for --enable-targets=all.

        * config/i386/t-linux64 (softfp_wrap_start): New.
        (softfp_wrap_end): New.
        * config/i386/i386.c (ix86_scalar_mode_supported): TFmode is
        supported for TARGET_64BIT.

testsuite/ChangeLog:

        * gcc.dg/torture/fp-int-convert-float128.c: Do not xfail for i?86-*-*
        and x86_64-*-* targets.
        * gcc.dg/torture/fp-int-convert-float128-timode.c: Ditto.

From-SVN: r124775
2007-05-16 19:07:07 +02:00
Rafael Avila de Espindola c74a03d23e c-common.c (c_common_signed_or_unsigned_type): Emulate c_common_unsigned_type behavior.
2007-05-16  Rafael Avila de Espindola  <espindola@google.com>

       * c-common.c (c_common_signed_or_unsigned_type): Emulate
       c_common_unsigned_type behavior.

From-SVN: r124771
2007-05-16 16:26:21 +00:00
Paolo Bonzini 2d79fde8c2 i386.c (legitimize_tls_address): Mark __tls_get_addr calls as pure.
2007-05-16  Paolo Bonzini  <bonzini@gnu.org>

        * config/i386/i386.c (legitimize_tls_address): Mark __tls_get_addr
        calls as pure.

From-SVN: r124765
2007-05-16 09:23:21 +00:00
Eric Christopher 2b2c2fe51a rs6000.c (rs6000_emit_prologue): Move altivec register saving after stack push.
2007-05-16  Eric Christopher  <echristo@apple.com>

	* config/rs6000/rs6000.c (rs6000_emit_prologue): Move altivec register
        saving after stack push. Set sp_offset whenever we push.
        (rs6000_emit_epilogue): Move altivec register restore before stack push.

From-SVN: r124763
2007-05-16 08:30:10 +00:00
Richard Sandiford 748670c25b configure.ac: Allow sysroots to be relocated under $prefix as well as $exec_prefix.
gcc/
	* configure.ac: Allow sysroots to be relocated under $prefix as
	well as $exec_prefix.
	* configure: Regenerate.

From-SVN: r124762
2007-05-16 07:14:40 +00:00
Richard Sandiford 4ef2b6ed33 revert: configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
gcc/
	Revert:

	2007-05-12  Richard Sandiford  <richard@codesourcery.com>

	* configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
	(gcc_tooldir): Likewise.
	* configure: Regenerate.
	* Makefile.in (libsubdir_to_prefix): New variable, based on the
	old configure.ac gcc_tooldir setting.
	(prefix_to_exec_prefix): New variable.
	(DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
	rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.

From-SVN: r124760
2007-05-16 06:43:36 +00:00
Janis Johnson 3bf6bfcc7e c-typeck.c (build_binary_op): Return early for error.
gcc/
	* c-typeck.c (build_binary_op): Return early for error.
gcc/testsuite/
	* gcc.dg/dfp/usual-arith-conv-bad.c: New test.

From-SVN: r124732
2007-05-14 23:49:36 +00:00
Zdenek Dvorak 9e2f83a5e8 tree-ssa-loop-niter.c (record_estimate): Use GGC_NEW to allocate struct nb_iter_bound.
* tree-ssa-loop-niter.c (record_estimate): Use GGC_NEW to allocate
	struct nb_iter_bound.
	(free_numbers_of_iterations_estimates_loop): Use ggc_free.
	* gengtype.c (open_base_files): Add cfhloop.h to the list of includes.
	* cfgloopmanip.c (place_new_loop): Vector larray is gc-allocated.
	* tree-scalar-evolution.c: Include gt-tree-scalar-evolution.h.
	(struct scev_info_str, scalar_evolution_info): Add GTY markers.
	(new_scev_info_str): Use GGC_NEW to allocate struct scev_info_str.
	(del_scev_info): Use ggc_free.
	(scev_initialize): Allocate scalar_evolution_info in gc memory.
	* loop-init.c: Include ggc.h.
	(loop_optimizer_init): Use GGC_CNEW to allocate struct loops.
	(loop_optimizer_finalize): Use ggc_free.
	* tree-ssa-loop.c (pass_tree_unswitch, pass_vectorize,
	pass_linear_transfom, pass_empty_loop, pass_complete_unroll,
	pass_iv_optimize): Add TODO_ggc_collect.
	* function.h (struct function): Remove skip marker from x_current_loops.
	* cfgloop.c: Include ggc.h.
	(flow_loops_free, flow_loop_free): Free the loop descriptions in gc
	memory.
	(establish_preds): Vector superloops is gc allocated.
	(alloc_loop): Allocate loop using GGC_CNEW.  Allocate head of
	loop->exits list.
	(flow_loops_find): Vector larray is gc allocated.
	(loop_exit_free): Use ggc_free.
	(rescan_loop_exit): Use GGC_NEW to allocate struct loop_exit.  Reflect
	that head of exits list is now not a part of struct loop.
	(record_loop_exits): Allocate exits table in gc memory.
	(get_loop_exit_edges, verify_loop_structure, single_exit): Reflect that
	head of exits list is now not a part of struct loop.
	* cfgloop.h (struct lpt_decision, struct nb_iter_bound,
	struct loop_exit): Add GTY marker.
	(struct loop): Add GTY marker.  Make superloops vector gc allocated.
	Add skip marker to aux field.  Make head of exits list a separate
	object.
	(struct loops): Add GTY marker.  Make larray vector gc allocated.
	Add param marker to exits table.
	(get_loops): Type changed.
	* Makefile.in (tree-scalar-evolution.o): Add gt-tree-scalar-evolution.h
	dependency.
	(cfgloop.o, loop-init.o): Add ggc.h dependency.
	(GTFILES): Add cfgloop.h and tree-scalar-evolution.c.
	* basic-block.h (struct basic_block_def): Remove skip marker from
	loop_father field.

From-SVN: r124727
2007-05-14 21:58:42 +00:00
Uros Bizjak 49452c070f builtins.c (expand_builtin_mathfn): Use EXPAND_NORMAL instead of 0 in the call to expand_expr().
* builtins.c (expand_builtin_mathfn): Use EXPAND_NORMAL instead
        of 0 in the call to expand_expr().
        (expand_builtin_mathfn_3): Ditto.
        (expand_builtin_interclass_mathfn): Ditto.
        (expand_builtin_cexpi): Ditto.
        (expand_builtin_int_roundingfn): Ditto.
        (expand_builtin_int_roundingfn_2): Ditto.
        (expand_builtin_pow): Ditto.
        (expand_builtin_powi): Ditto.
        (expand_builtin_bswap): Ditto.
        (expand_builtin_unop): Ditto.
        (expand_builtin_fabs): Ditto.
        (get_builtin_sync_mem): Use NULL_RTX instead of NULL in
        the call to expand_expr().
        (expand_builtin_sync_operation): Ditto.
        (expand_builtin_compare_and_swap): Ditto.
        (expand_builtin_lock_test_and_set): Ditto.
        * except.c (expand_builtin_eh_return_data_regno): Use EXPAND_NORMAL
        instead of 0 in the call to expand_expr().
        (expand_builtin_extract_return_addr): Ditto.
        (expand_builtin_eh_return): Ditto.
        (expand_eh_return): Ditto.
        * explow.c (expr_size): Ditto.
        * expr.c (optimize_bitfield_assignment_op): Ditto.
        (expand_assignement): Ditto.
        (store_expr): Ditto.
        (store_field): Ditto.
        (expand_expr_addr_expr_1): Use NULL_RTX instead of NULL in
        the call to expand_expr().
        (expand_expr_real_1) [COMPLEX_CST]: Use EXPAND_NORMAL instead of 0
        in the call to expand_expr().
        [CONSTRUCTOR, PLUS_EXPR, MINUS_EXPR, NEGATE_EXPR, ABS_EXPR,
        BIT_NOT_EXPR, LSHIFT_EXPR, LT_EXPR, TRUTH_NOT_EXPR]: Ditto.
        [VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO]: Use expand_normal() instead
        of expand_expr().
        * optabs.c (expand_vec_shift_expr): Ditto.
        (expand_vec_cond_expr): Ditto.
        (vector_compare_rtx): Use EXPAND_STACK_PARM instead of 1 in the
        call to expand_expr().
        * stmt.c (expand_return): Use EXPAND_NORMAL instead of 0
        in the call to expand_expr().

From-SVN: r124722
2007-05-14 21:42:47 +02:00
Dave Korn 9c40feebdb genautomata.c (gen_regexp_el): Allocate correct size for regexp.
2007-05-14  Dave Korn  <dave.korn@artimi.com>

	* genautomata.c (gen_regexp_el):  Allocate correct size for regexp.

From-SVN: r124718
2007-05-14 16:46:44 +00:00
Rafael Avila de Espindola ca5ba2a3ea c-common.c (warnings_for_convert_and_check): Use unsigned_type_for instead of c_common_unsigned_type.
gcc/
       * c-common.c (warnings_for_convert_and_check): Use unsigned_type_for
       instead of c_common_unsigned_type.
       (c_common_unsigned_type): Remove.
       (shorten_compare): Use c_common_signed_or_unsigned_type instead of
       c_common_unsigned_type.
       (c_common_nodes_and_builtins): Use unsigned_type_for instead of
       c_common_unsigned_type.
       * c-common.h (c_common_unsigned_type): Remove.
       * c-decl.c (grokdeclarator): Use unsigned_type_for instead of
       c_common_unsigned_type.
       * c-format.c (check_format_types): Use unsigned_type_for instead of
       c_common_unsigned_type.
       * c-objc-common.h (LANG_HOOKS_UNSIGNED_TYPE): Remove.
       * c-typeck.c (convert_for_assignment): Use unsigned_type_for instead of
       c_common_unsigned_type.
       * convert.c (convert_to_integer): Use unsigned_type_for instead of
       lang_hooks.types.unsigned_type.
       * expmed.c (make_tree): Use unsigned_type_for instead of
       lang_hooks.types.unsigned_type.
       * fold-const.c (fold_negate_expr): Use unsigned_type_for instead of
       lang_hooks.types.unsigned_type.
       (build_range_check): Likewise.
       (fold_unary): Likewise.
       (fold_binary): Likewise.
       (fold_ternary): Likewise.
       * langhooks-def.h (LANG_HOOKS_UNSIGNED_TYPE): Remove.
       * langhooks.h (lang_hooks_for_types): Remove unsigned_type.
       * tree.c (get_unsigned_type): New.
       (unsigned_type_for): Use get_unsigned_type instead of
       lang_hooks.types.unsigned_type

gcc/ada
       * misc.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.

gcc/cp
       * cp-objcp-common.h (LANG_HOOKS_UNSIGNED_TYPE): Remove.
       * decl.c (grokdeclarator): Use unsigned_type_for instead of
       c_common_unsigned_type.

gcc/fortran
       * f95-lang.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
       * trans-intrinsic.c (gfc_conv_intrinsic_ishft): Use unsigned_type_for
       instead of gfc_unsigned_type.
       * trans-stmt.c (gfc_trans_do): Use unsigned_type_for instead of
       gfc_unsigned_type.
       * trans-types.c (gfc_unsigned_type): Remove.
       * trans-types.h (gfc_unsigned_type): Remove.

gcc/java
       * expr.c (build_java_binop): Use unsigned_type_for instead of
       java_unsigned_type.
       * java-tree.h (java_unsigned_type): Remove.
       * lang.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
       * typeck.c (java_unsigned_type): Remove.

gcc/treelang
       * treetree.c (tree_lang_unsigned_type): Remove.
       (LANG_HOOKS_UNSIGNED_TYPE): Remove.

From-SVN: r124715
2007-05-14 14:37:17 +00:00
Kazu Hirata a424273720 m68k-protos.h: Rename m68k_interrupt_function_p to m68k_get_function_kind.
gcc/
	* config/m68k/m68k-protos.h: Rename m68k_interrupt_function_p
	to m68k_get_function_kind.  Update its prototype.
	* config/m68k/m68k.c (m68k_attribute_table): Add an entry for
	interrupt_thread.
	(m68k_interrupt_function_p): Return enum m68k_function_type
	instead of bool.  Rename to m68k_get_function_kind.
	(m68k_handle_fndecl_attribute): Reject interrupt_thread if the
	target is not fido.
	(m68k_compute_frame_layout): Don't mark any register for save
	if an interrupt_thread attribute is specified.
	(m68k_hard_regno_rename_ok): Update a use of
	m68k_interrupt_function_p.
	* config/m68k/m68k.h (EPILOGUE_USES): Update a use of
	m68k_interrupt_function_p.
	(m68k_function_type): New.
	* config/m68k/m68k.md (*return): Output a 'sleep' instruction
	for a function with an interrupt_thread attribute.
	* doc/extend.texi: Document the interrupt_thread attribute.

gcc/testsuite/
	* gcc.target/m68k/interrupt_thread-1.c,
	gcc.target/m68k/interrupt_thread-2.c,
	gcc.target/m68k/interrupt_thread-3.c: New.
	* gcc.target/m68k/m68k.exp: Accept fido.

From-SVN: r124713
2007-05-14 13:52:18 +00:00
Daniel Berlin 4076455d9b re PR tree-optimization/31911 (Short function (md4) takes very long to compile)
2007-05-13  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/31911
	* tree-ssa-pre.c (phi_translate): Make sure to cache results even
	if they didn't change the expression.

From-SVN: r124657
2007-05-13 21:52:10 +00:00
Zdenek Dvorak 3cb960c703 tree-scalar-evolution.c (resolve_mixers): Exported.
* tree-scalar-evolution.c (resolve_mixers): Exported.
	* tree-scalar-evolution.h (resolve_mixers): Declare.
	* tree-data-ref.c (object_analysis, ptr_decl_may_alias_p,
	ptr_ptr_may_alias_p, may_alias_p, record_ptr_differ_p,
	record_record_differ_p, record_array_differ_p, array_ptr_differ_p,
	base_object_differ_p, base_addr_differ_p, analyze_array_indexes,
	init_array_ref, init_pointer_ref, analyze_indirect_ref,
	strip_conversion, analyze_offset_expr, address_analysis,
	object_analysis, analyze_offset): Removed.
	(dr_analyze_innermost, dr_analyze_indices, dr_analyze_alias,
	split_constant_offset, canonicalize_base_object_address,
	object_address_invariant_in_loop_p, disjoint_objects_p,
	dr_may_alias_p, dr_address_invariant_p): New functions.
	(create_data_ref): Use dr_analyze_innermost, dr_analyze_indices
	and dr_analyze_alias.
	(initialize_data_dependence_relation): Use dr_may_alias_p
	and object_address_invariant_in_loop_p.
	(compute_self_dependence): Handle the case when DDR_ARE_DEPENDENT (ddr)
	is chrec_dont_know.
	(find_data_references_in_stmt): Restrict the analysis of data references
	to the given loop nest.
	(find_data_references_in_loop): Made static.  Pass loop nest to
	find_data_references_in_stmt.
	(compute_data_dependences_for_loop): Use DR_VOPS.
	(free_data_ref): Free DR_VOPS.
	* tree-data-ref.h (struct first_location_in_loop): Replaced by ...
	(struct innermost_loop_behavior): ... new.
	(struct base_object_info): Replaced by ...
	(struct indices): ... new.
	(struct dr_alias): New.
	(enum data_ref_type): Removed.
	(struct data_reference): Consist of struct innermost_loop_behavior,
	struct indices and struct dr_alias.
	(DR_SET_ACCESS_FNS, DR_FREE_ACCESS_FNS): Removed.
	(DR_MEMTAG): Renamed to ...
	(DR_SYMBOL_TAG): ... this.
	(find_data_references_in_loop): Declaration removed.
	* tree-vect-analyze.c (vect_compute_data_ref_alignment): Use DR_INIT
	instead of DR_OFFSET_MISALIGNMENT.  DR_ALIGNED_TO is never NULL.
	(vect_analyze_data_refs): Use DR_SYMBOL_TAG instead of DR_MEMTAG.
	* tree-vect-transform.c (vect_create_data_ref_ptr): Ditto.

	* gcc.dg/vect/no-section-anchors-vect-69.c: Fix outcome.
	* gcc.dg/tree-ssa/loop-30.c: New test.

From-SVN: r124655
2007-05-13 17:32:06 +00:00
Revital Eres 8a8b05f463 Extend dse
From-SVN: r124651
2007-05-13 07:49:47 +00:00
Steven Bosscher bae8b6b2c3 gcse.c (gcse_main): Do jump bypassing in CPROP2.
* gcse.c (gcse_main): Do jump bypassing in CPROP2.
	* passes.c (init_optimization_passes): Move pass_jump_bypass
	after loop2.

	* basic-block.h (bb_has_eh_pred): Fix style issue.

From-SVN: r124640
2007-05-12 18:15:38 +00:00
Steven Bosscher 7f6055d052 re PR rtl-optimization/31848 (Invalid loop optimization causes bootstrap failure in genautomata)
PR rtl-optimization/31848
	* loop-invariant.c (move_invariant_reg): If we move an insn
	with a REG_EQUAL note, and that insn is not always executed,
	remove the REG_EQUAL note.

From-SVN: r124639
2007-05-12 18:12:54 +00:00