summaryrefslogtreecommitdiff
path: root/gcc/ChangeLog
Commit message (Collapse)AuthorAgeFilesLines
* PR target/33369uros2007-09-101-0/+13
| | | | | | | | | | | | | | | | | | | | | * gcc/config/i386/sse.md (ashr<mode>3): Change op2 mode to SImode. Use 'N' operand constraint for op2. (lshr<mode>3): Ditto. (ashl<mode>3): Ditto. (vec_shl_<mode>): Use const_0_to_255_mul_8_operand predicate for op2. (vec_shr_<mode>): Use const_0_to_255_mul_8_operand predicate for op2. * gcc/config/i386/i386.c (ix86_expand_builtin) [IX86_BUILTIN_PSLL?128, IX86_BUILTIN_PSRA*?128, IX86_BUILTIN_PSRL?128]: Convert op1 to SImode. testsuite/ChangeLog: PR target/33369 * gcc.dg/vect/pr33369.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128328 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-09-10 Andreas Krebbel <krebbel1@de.ibm.com>krebbel2007-09-101-0/+5
| | | | | | | | | * config/s390/s390.md ("fixuns_trunc<BFP:mode><GPR:mode>2"): Change mode macro in the last real_2expN parameter to uppercase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128326 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-pass.h (pass_cselim): Declare new pass.matz2007-09-101-0/+19
| | | | | | | | | | | | | | | | | | | | | * passes.c (init_optimization_passes): Link in pass_cselim. * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Renamed from tree_ssa_phiopt; add do_store_elim parameter, handle it by calling cond_store_replacement. (condstoretemp): New static variable. (cond_store_replacement): New function. (tree_ssa_phiopt, tree_ssa_cs_elim): New wrappers around tree_ssa_phiopt_worker. (struct name_to_bb): New. (get_non_trapping, name_to_bb_hash, name_to_bb_eq, add_or_mark_expr, nt_init_block, nt_fini_block): New static functions. (seen_ssa_names, nontrap_set): New static variables. (gate_cselim, pass_cselim): Define new pass. * common.opt (ftree-cselim): New flag. * toplev.c (process_options): Set flag_tree_cselim if required. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128324 138bc75d-0d04-0410-961f-82ee72b054a4
* * simplify-rtx.c (simplify_relational_operation_1): For recenthp2007-09-101-0/+5
| | | | | | | canonicalization, don't recurse if op1 equals both PLUS arguments. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128323 138bc75d-0d04-0410-961f-82ee72b054a4
* * optabs.c (expand_sync_operation): Use plus insn if minusdaney2007-09-101-0/+6
| | | | | | | | CONST_INT_P(val). (expand_sync_fetch_operation): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128322 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-09-09 H.J. Lu <hongjiu.lu@intel.com>hjl2007-09-101-0/+6
| | | | | | | | | * i386.md (*floatsisf2_mixed_vector): Use cvtdq2ps instead of cvtpq2ps. (*floatsisf2_sse_vector): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128320 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/netbsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define to 1.kristerw2007-09-101-0/+4
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128319 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-09-09 H.J. Lu <hongjiu.lu@intel.com>hjl2007-09-091-2/+9
| | | | | | | | | | * config/i386/i386.h (ix86_tune_indices): Rename X86_USE_VECTOR_CONVERTS to X86_TUNE_USE_VECTOR_CONVERTS. (TARGET_USE_VECTOR_CONVERTS): Updated. * config/i386/i386.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128313 138bc75d-0d04-0410-961f-82ee72b054a4
* put entry for last commit in correct ChangeLogsandra2007-09-091-0/+8
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128309 138bc75d-0d04-0410-961f-82ee72b054a4
* PR target/30315rask2007-09-091-0/+8
| | | | | | | | | | * config/i386/i386.h (CANONICALIZE_COMPARISON): Delete. * simplify-rtx.c (simplify_relational_operation_1): Add the canonicalization from i386.h. * doc/md.texi (Canonicalization of Instructions): Document it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128305 138bc75d-0d04-0410-961f-82ee72b054a4
* * i386.h (ix86_tune_indices): Add X86_USE_VECTOR_CONVERTS.hubicka2007-09-091-0/+17
| | | | | | | | | | | | | | | | | | (TARGET_USE_VECTOR_CONVERTS): New. * i386.md: New post-reload splitters for converting SF to DF and DF to SF. (floatsi* expander): Special case vector conversions. (floatsisf2_mixed_vector, floatsisf2_sse_vector_nointernunit, floatsisf2_sse_vector_internunit, floatsisf2_sse_vector, floatsidf2_mixed_vector, floatsidf2_sse_vector): New. (floatsisf2_mixed, floatsisf2_sse, floatsidf2_mixed, floatsidf2_sse): Disable when doing vector converts. (floatsi<mode>2_i387): Disable when * sse.md (vec_dupv2df): Export. * i386.c (ix86_tune_features): Enable SSE conversions. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128301 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-09-09 Richard Guenther <rguenther@suse.de>rguenth2007-09-091-0/+5
| | | | | | | | | | * tree-ssa-operands.c (add_virtual_operand): Only mark stores as has_volatile_ops if alias information is not available. * gcc.c-torture/compile/20070906-1.c: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128300 138bc75d-0d04-0410-961f-82ee72b054a4
* Add myself to doc/contrib.texirevitale2007-09-091-0/+4
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128299 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-vectorizer.h (stmt_vinfo_set_inside_of_loop_cost,irar2007-09-091-0/+10
| | | | | | | | | | | | | stmt_vinfo_set_outside_of_loop_cost): New functions. * tree-vect-transform.c (vect_get_cost_fields): Remove. (vect_model_simple_cost): Call stmt_vinfo_set_inside/outside_of_loop_cost to set the relevant cost field instead of calling vect_get_cost_fields. (vect_model_store_cost, vect_model_load_cost): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128294 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix two warnings in rs6000.c cause by bdesc_paired_predsrevitale2007-09-091-0/+6
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128293 138bc75d-0d04-0410-961f-82ee72b054a4
* Use new debug counterrevitale2007-09-091-0/+9
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128292 138bc75d-0d04-0410-961f-82ee72b054a4
* * ChangeLog: Fix cut'n'pasto.uros2007-09-091-3/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128291 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-09-09 Uros Bizjak <ubizjak@gmail.com>uros2007-09-091-4/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * config/i386/i386.md (X87MODEF12, SSEMODEF): Remove mode iterators. Substitute all uses with ... (MODEF): New mode iterator. (*cmpfp_<mode>_cc): Remove operand constraints from pre-regalloc define_insn_and_split splitter pattern. (fix_trunc<mode>_fisttp_i387_1): Ditto. (*fix_trunc<mode>_i387_1): Ditto. (*fistdi2_1): Ditto. (*fist<mode>2_1): Ditto. (frndintxf2_floor): Ditto. (*fist<mode>2_floor_1): Ditto. (frndintxf2_ceil): Ditto. (*fist<mode>2_ceil_1): Ditto. (frndintxf2_trunc): Ditto. (frndintxf2_mask_pm): Ditto. (prologue): Use (const_int 0) as never generated filler insn. (epilogue): Ditto. (sibcall_epilogue): Ditto. (eh_return_si): Ditto. (eh_return_di): Ditto. (add<mode>3): Rename from adddf3 and addsf3. Macroize expander using MODEF mode iterator. (sub<mode>3): Rename from subdf3 and subsf3. Macroize expander using MODEF mode iterator. (mul<mode>3): Rename from muldf3 and mulsf3. Macroize expander using MODEF mode iterator. (nearbyint<mode>2): Rename from nearbyintdf2 and nearbyintsf2. Macroize expander using MODEF mode iterator. (zero_extendsidi2): Remove operand constraints from expander. (smuldi3_highpart): Ditto. (indirect_jump): Ditto. (tablejump): Ditto. (rsqrtsf2): Ditto. * config/i386/sse.md (storentv4sf): Ditto. (storentv2df): Ditto. (storentv2di): Ditto. (storentsi): Ditto. (sse2_cvtpd2ps): Ditto. (vec_interleave_highv16qi): Ditto. (vec_interleave_lowv16qi): Ditto. (vec_interleave_highv8hi): Ditto. (vec_interleave_lowv8hi): Ditto. (vec_interleave_highv4si): Ditto. (vec_interleave_lowv4si): Ditto. (vec_interleave_highv2di): Ditto. (vec_interleave_lowv2di): Ditto. (sse2_maskmovdqu): Ditto. * config/i386/mmx.md (mmx_maskmovq): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128290 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-vectorizer.h (enum vect_def_type): Start enumeration from 1.irar2007-09-091-0/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (struct _slp_tree, struct _slp_instance): Define new data structures along macros for their access. (struct _loop_vec_info): Define new fields: strided_stores, slp_instances, and slp_unrolling_factor along macros for their access. (enum slp_vect_type): New. (struct _stmt_vec_info): Define new field, slp_type, and macros for its access. (STMT_VINFO_STRIDED_ACCESS): New macro. (vect_free_slp_tree): Declare. (vectorizable_load): Add an argument of type slp_tree. (vectorizable_store, vectorizable_operation, vectorizable_conversion, vectorizable_assignment): Likewise. (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost): Declare (make extern). * tree-vectorizer.c (new_stmt_vec_info): Initiliaze the new field. (new_loop_vec_info): Likewise. (destroy_loop_vec_info): Free memory allocated for SLP structures. * tree-vect-analyze.c: Include recog.h. (vect_update_slp_costs_according_to_vf): New. (vect_analyze_operations): Add argument for calls to vectorizable_ () functions. For not pure SLP stmts with strided access check that the group size is power of 2. Update the vectorization factor according to SLP. Call vect_update_slp_costs_according_to_vf. (vect_analyze_group_access): New. (vect_analyze_data_ref_access): Call vect_analyze_group_access. (vect_free_slp_tree): New functions. (vect_get_and_check_slp_defs, vect_build_slp_tree, vect_print_slp_tree, vect_mark_slp_stmts, vect_analyze_slp_instance, vect_analyze_slp, vect_make_slp_decision, vect_detect_hybrid_slp_stmts, vect_detect_hybrid_slp): Likewise. (vect_analyze_loop): Call vect_analyze_slp, vect_make_slp_decision and vect_detect_hybrid_slp. * tree-vect-transform.c (vect_estimate_min_profitable_iters): Take SLP costs into account. (vect_get_cost_fields): New function. (vect_model_simple_cost): Make extern, add SLP parameter and handle SLP. (vect_model_store_cost, vect_model_load_cost): Likewise. (vect_get_constant_vectors): New function. (vect_get_slp_vect_defs, vect_get_slp_defs, vect_get_vec_defs_for_stmt_copy, vect_get_vec_defs_for_stmt_copy, vect_get_vec_defs): Likewise. (vectorizable_reduction): Don't handle SLP for now. (vectorizable_call): Don't handle SLP for now. Add argument to vect_model_simple_cost. (vectorizable_conversion): Handle SLP (call vect_get_vec_defs to get SLPed and vectorized defs). Fix indentation and spacing. (vectorizable_assignment): Handle SLP. (vectorizable_induction): Don't handle SLP for now. (vectorizable_operation): Likewise. (vectorizable_type_demotion): Add argument to vect_model_simple_cost. (vectorizable_type_promotion): Likewise. (vectorizable_store, vectorizable_load): Handle SLP. (vectorizable_condition): Don't handle SLP for now. (vect_transform_stmt): Add a new argument for SLP. Check that there is no SLP transformation required for unsupported cases. Add SLP argument for supported cases. (vect_remove_stores): New function. (vect_schedule_slp_instance, vect_schedule_slp): Likewise. (vect_transform_loop): Schedule SLP instances. * Makefile.in: (tree-vect-analyze.o): Depend on recog.h. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128289 138bc75d-0d04-0410-961f-82ee72b054a4
* * optabs.c (sign_expand_binop): Set libcall_gen = NULL in the fakeaph2007-09-091-0/+5
| | | | | | | | signed optab. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128288 138bc75d-0d04-0410-961f-82ee72b054a4
* Divide REG_LABEL notes into REG_LABEL_OPERAND and REG_LABEL_TARGET.hp2007-09-091-0/+72
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/rtl.texi (Insns): Specify when a label_ref makes a jump_insn. Similar for what label_refs can go in the JUMP_TARGET field. Split REG_LABEL documentation into REG_LABEL_TARGET and REG_LABEL_OPERAND. * reload.c (find_reloads): Generate REG_LABEL_OPERAND, not REG_LABEL when replacing an operand with a LABEL_REF for a non-jump insn. (subst_reloads): When replacing a LABEL_REG with a register, instead of generating a REG_LABEL note, assert that there already is one or that the label is a known target for the insn. * rtlanal.c (computed_jump_p): Instead of looking for a REG_LABEL note, check the JUMP_LABEL field. Remove "else" after return. * reorg.c (emit_delay_sequence): Replace case for REG_LABEL with cases for REG_LABEL_OPERAND and REG_LABEL_TARGET. (fill_slots_from_thread): Handle both REG_LABEL_OPERAND and REG_LABEL_TARGET notes, including the JUMP_TARGET field on JUMP_P insns. Iterate over all notes; don't assume there's only one. * cse.c (recorded_label_ref): Adjust comment to refer to REG_LABEL_OPERAND. (cse_extended_basic_block): Do LABEL_REF check for all INSN_P insns, not just NONJUMP_INSN_P. (check_for_label_ref): For JUMP_P insns, check that the LABEL_REF isn't a jump target. * jump.c (rebuild_jump_labels): Adjust head comment. (init_label_info): Ditto. Remove REG_LABEL_OPERAND notes only; don't reset REG_LABEL_TARGET notes, including the JUMP_LABEL field. (mark_all_labels): For JUMP_P insns without a target, check if the the target is noted on the previous nonjump insn. (mark_jump_label_1): New function, guts from mark_jump_label. <case IF_THEN_ELSE>: Handle first operand as a non-target when marking jump target labels. <case LABEL_REF>: Adjust for whether to generate a REG_LABEL_TARGET or a REG_LABEL_OPERAND note. For 'E' format rtl, iterate in descending element order. (delete_related_insns): Handle both REG_LABEL_TARGET and REG_LABEL_OPERAND notes. For JUMP_P insns with labels with zero reference count, delete and fallthrough. Move finding-next- non-deleted insn last in the function. Look at all INSN_P insns for REG_LABEL_OPERAND notes. (redirect_jump_2): Assert that OLABEL equals the old JUMP_LABEL of JUMP. * print-rtl.c (print_rtx): For JUMP_P insns and a non-NULL JUMP_LABEL, output the INSN_UID of it. * gcse.c: Adjust comments as appropriate to say REG_LABEL_OPERAND and/or REG_LABEL_TARGET. (add_label_notes): Only add REG_LABEL_OPERAND notes. Put in line with jump.c copy by only adding notes for labels actually referenced in the insn. * emit-rtl.c (try_split): Don't assume only NONJUMP_INSN_P need usage count increment; handle all INSN_P trial insns. (emit_copy_of_insn_after): Change to not copy REG_LABEL_OPERAND notes. * rtl.h (struct rtx_def) <volatil>: Adjust to mention REG_LABEL_TARGET and REG_LABEL_OPERAND. (LABEL_REF_NONLOCAL_P): Allow REG_LABEL_TARGET and REG_LABEL_OPERAND. * combine.c (distribute_notes): Adjust for REG_LABEL_TARGET on JUMP_P insns and REG_LABEL_OPERAND everywhere. * sched-rgn.c (is_cfg_nonregular): Check for REG_LABEL_OPERANDS on all INSN_P insns. * reg-notes.def (LABEL_TARGET, LABEL_OPERAND): Split from LABEL. * cfgrtl.c (delete_insn): Adjust to handle REG_LABEL_TARGET and REG_LABEL_OPERAND notes. * reload1.c (calculate_needs_all_insns): Adjust comments. (set_label_offsets): Adjust to look for REG_LABEL_OPERAND notes. * config/alpha/alpha.md (split for load of an address into a four-insn sequence on Unicos/Mk): Adjust to use REG_LABEL_OPERAND. * config/sh/sh.md (sh_reorg, final_prescan_insn): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128287 138bc75d-0d04-0410-961f-82ee72b054a4
* Revert:hp2007-09-091-0/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | 2007-09-05 Laurynas Biveinis <laurynas.biveinis@gmail.com> * regrename.c (copyprop_hardreg_forward_1): New variable next. Use FOR_BB_INSNS_SAFE instead of for loop. * cse.c (cse_extended_basic_block): Likewise. * postreload.c (reload_cse_regs_1): New variable next. Make sure that the for loop does not invoke NEXT_INSN on a deleted insn. * function.c (instantiate_virtual_regs): Likewise. * lower-subreg.c (remove_retval_note): Likewise. (decompose_multiword_subregs): Use FOR_BB_INSNS_SAFE instead of FOR_BB_INSNS. * emit-rtl.c (remove_insn): Set NEXT_INSN and PREV_INSN to NULL on a deleted insn. * cfgrtl.c (delete_insn): Set JUMP_LABEL to NULL on a deleted insn, if it's a jump. (try_redirect_by_replacing_jump): New variable jump_p. Call tablejump_p before delete_insn_chain. * reload1.c (reload): New variable next. Make sure that the for loop does not invoke NEXT_INSN on a deleted insn. (fixup_eh_region_note): Make the loop terminate if i becomes NULL. (delete_output_reload): New variable prev. Make sure the the for loops do not invoke PREV_INSN on a deleted insn. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128284 138bc75d-0d04-0410-961f-82ee72b054a4
* * pa/constraints.md: Remove 'X' from unused letters comment.danglin2007-09-081-0/+4
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128277 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-09-08 Richard Guenther <rguenther@suse.de>rguenth2007-09-081-1/+7
| | | | | | | | | * tree-tailcall.c (find_tail_calls): If we don't have aliases computed check stmt_ann->references_memory instead of counting virtual operands. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128276 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-09-09 Segher Boessenkool <segher@kernel.crashing.org>segher2007-09-081-0/+5
| | | | | | | | | * cse.c (fold_rtx): Use validate_unshare_change() instead of validate_change() in one more case. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128275 138bc75d-0d04-0410-961f-82ee72b054a4
* PR tree-optimization/32283rakdver2007-09-081-0/+8
| | | | | | | | | | | | | * tree-ssa-loop-ivopts.c (may_eliminate_iv): Use estimated_loop_iterations. (determine_use_iv_cost_condition): Decrease cost of expressions used in iv elimination. * gcc.dg/tree-ssa/loop-31.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128272 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-09-08 Richard Guenther <rguenther@suse.de>rguenth2007-09-081-0/+5
| | | | | | | | * tree-cfg.c (verify_gimple_expr): Avoid building new pointer types, use TYPE_POINTER_TO if available instead. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128271 138bc75d-0d04-0410-961f-82ee72b054a4
* PR target/33329uros2007-09-081-0/+11
| | | | | | | | | | | | | | | | | | | | PR target/26449 * config/i386/sse.md (mulv4si3): Do not expand sse2 sequence. (*sse2_mulv4si3): New define_insn_and_split pattern. Split insn in split1 pass. (mulv16qi3): Implement as define_insn_and_split pattern instead of define_expand, to split insn in split1 pass. (mulv2di3): Ditto. testsuite/ChangeLog: PR target/33329 PR target/26449 * gcc.target/i386/pr33329.c: New file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128269 138bc75d-0d04-0410-961f-82ee72b054a4
* PR tree-optimization/33301dorit2007-09-081-0/+6
| | | | | | | | | * tree-vect-analyze (analyze_operations): Look at the type of the rhs when relevant. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128265 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-09-07 Zdenek Dvorak <ook@ucw.cz>hjl2007-09-081-0/+16
| | | | | | | | | | | | | | | | | | | PR tree-optimization/32183 * Makefile.in (tree-ssa-reassoc.o): Also depend on $(CFGLOOP_H). * tree-ssa-reassoc.c: Include cfgloop.h. (is_reassociable_op): Add a loop argument and return true only for inside loop. (linearize_expr): Updated. (should_break_up_subtract): Likewise. (linearize_expr_tree): Likewise. (init_reassoc): Call loop_optimizer_init with AVOID_CFG_MODIFICATIONS. Remove calculate_dominance_info call with CDI_DOMINATORS. (fini_reassoc): Call loop_optimizer_finalize. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128262 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-09-07 Sterling Augustine <sterling@tensilica.com>bwilson2007-09-071-0/+5
| | | | | | | | * config/xtensa/lib2funcs.S (__xtensa_sync_caches): Use an ISYNC even if there is no i-cache. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128256 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-09-07 Richard Guenther <rguenther@suse.de>rguenth2007-09-071-0/+12
| | | | | | | | | | | | | | | | | | | PR tree-optimization/32586 * tree-ssa-sccvn.c (simplify_binary_expression): Avoid folding if nothing changed. (simplify_unary_expression): New function. Do tree combining on conversion like codes. (try_to_simplify): Call it. * g++.dg/tree-ssa/pr27090.C: Remove XFAILs. * gcc.dg/tree-ssa/ssa-fre-1.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-3.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-5.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-4.c: Likewise, remove scan for now obsolete simplification. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128251 138bc75d-0d04-0410-961f-82ee72b054a4
* PR target/33286danglin2007-09-071-0/+7
| | | | | | | | | | * gthr-posix.h (__gthread_active_p): Add implementation for hppa-hpux. (__gthread_active,__gthread_start, __gthread_active_init): New. * gthr-posix95.h: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128249 138bc75d-0d04-0410-961f-82ee72b054a4
* * function.h (struct function): Rename calls_unwind_initzippel2007-09-071-0/+11
| | | | | | | | | | | | | to saves_all_registers. (current_function_saves_all_registers): Renamed from current_function_calls_unwind_init. * reload1.c (reload): Set current_function_saves_all_registers. * except.c (expand_builtin_unwind_init): Likewise. * config/m68k/m68k.c (m68k_save_reg): Use current_function_saves_all_registers to save pic register. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128248 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/ada/janis2007-09-071-0/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reapply reverted change: 2007-09-06 Eric Botcazou <ebotcazou@adacore.com> * trans.c (convert_with_check): Update call to real_2expN. gcc/ config/m68k/m68k.c (floating_exact_log2): Update call to real_2expN. config/s390/s390.md (fixuns_trunc<BFP:mode><GPR:mode>2): Ditto. Reapply reverted changes: 2007-09-06 Jan Hubicka <jh@suse.cz> * config/i386.c (ix86_expand_lround, ix86_expand_round): Update call of real_2expN. 2007-09-06 Richard Sandiford <richard@codesourcery.com> * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2) (fixuns_truncsfsi2, fixuns_truncsfdi2): Update calls to real_2expN. 2007-09-05 Janis Johnson <janis187@us.ibm.com> * optabs.c (expand_float): Convert unsigned integer as signed only if it provides sufficient accuracy; add mode argument to real_2expN. (expand_fix): Fix comment typos; extend binary float into mode wider than destination for converion to unsigned integer; add mode argument to real_2expN. * real.c (real_2expN): Add mode argument to special-case decimal float values. * real.h (real_2expN): Ditto. * fixed-value.c (check_real_for_fixed_mode): Add mode argument to real_2expN. (fixed_from_string): Ditto. (fixed_to_decimal): Ditto. (fixed_convert_from_real): Ditto. (real_convert_from_fixed): Ditto. * config/rs6000/rs6000.md (FP): Include DD and TD modes. * config/rs6000/dfp.md (extendddtd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3, divtd3, cmpdd_internal1, cmptd_internal1, floatditd2, ftruncdd2, fixdddi2, ftrunctd2, fixddi2): New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128247 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-flow.h (const_block_stmt_iterator): Remove.dnovillo2007-09-071-0/+7
| | | | | | | | | | Update all users to use block_stmt_iterator. * tree-iterator.h (const_tree_stmt_iterator): Remove. Update all users to use tree_stmt_iterator. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128246 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-09-07 Sandra Loosemore <sandra@codesourcery.com>sandra2007-09-071-0/+5
| | | | | | | | | gcc/ * config/mips/mips.c (mips_set_current_function): Temporarily make this a no-op to fix bootstrap errors, pending rewrite. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128245 138bc75d-0d04-0410-961f-82ee72b054a4
* * reorg.c (dbr_schedule): Move code removing placeholder USEs laterhubicka2007-09-071-0/+5
| | | | | | | in the pass. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128243 138bc75d-0d04-0410-961f-82ee72b054a4
* PR tree-optimization/33299dorit2007-09-071-0/+6
| | | | | | | | | * tree-vect-transform.c (vect_create_epilog_for_reduction): Update uses for all relevant loop-exit phis, not just the first. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128242 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-09-07 Richard Guenther <rguenther@suse.de>rguenth2007-09-071-0/+6
| | | | | | | | | PR middle-end/33330 * tree-ssa-operands.c (access_can_touch_variable): An access of the form (*p)[0] can touch a variable of same size. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128240 138bc75d-0d04-0410-961f-82ee72b054a4
* * passes.c (init_optimization_passes): Add simple dce and addressablehubicka2007-09-071-0/+10
| | | | | | | | | | | | passes. * tree-ssa.c (execute_update_addresses_taken): New function. (pass_update_address_taken): New. * tree-ssa-dse.c (execute_simple_dse): New function. (pass_simple_dse): New. * tree-pass.h (pass_simple_dse, pass_update_address_taken): Declare. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128239 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-09-07 Tobias Burnus <burnus@net-b.de>burnus2007-09-071-0/+5
| | | | | | | | | PR middle-end/33321 * doc/invoke.texi: Fix -Wstrict-overflow= table. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128238 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-09-07 Richard Guenther <rguenther@suse.de>rguenth2007-09-071-0/+12
| | | | | | | | | | | | | | | | | | | | | | Revert 2007-09-06 Richard Guenther <rguenther@suse.de> PR tree-optimization/32586 * tree-ssa-sccvn.c (simplify_binary_expression): Avoid folding if nothing changed. (simplify_unary_expression): New function. Do tree combining on conversion like codes. (try_to_simplify): Call it. * g++.dg/tree-ssa/pr27090.C: Remove XFAILs. * gcc.dg/tree-ssa/ssa-fre-1.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-3.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-5.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-4.c: Likewise, remove scan for now obsolete simplification. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128236 138bc75d-0d04-0410-961f-82ee72b054a4
* PR tree-optimization/32821uros2007-09-071-0/+7
| | | | | | | | | | | | | | * tree_if_conv.c (combine_blocks): Use alloc_stmt_list instead of NULL in the call to set_bb_stmt_list. testsuite/ChangeLog: PR tree-optimization/32821 * gcc.dg/tree-ssa/pr32821.c: New file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128235 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/rsandifo2007-09-071-0/+8
| | | | | | | | | | | * config/mips/mips.c (build_mips16_call_stub): Emit all direct float calls here, rather than leaving some to the caller. Use call_internal_direct and call_value_internal_direct. * config/mips/mips.md (call_internal_direct): New pattern. (call_value_internal_direct): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128233 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/rsandifo2007-09-071-0/+7
| | | | | | | | | | * config/mips/mips.c (mips_base_move_loop_invariants): New variable. (mips_set_mips16_mode): Restore flag_move_loop_invariants, then set to 0 for MIPS16. (override_options): Set mips_base_move_loop_invariants. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128232 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/rsandifo2007-09-071-0/+5
| | | | | | | | * config/mips/mips.opt (mcode-readable=): Move to keep list alphabetical. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128231 138bc75d-0d04-0410-961f-82ee72b054a4
* config/rsandifo2007-09-071-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * mt-sde (CFLAGS_FOR_TARGET): Add -mno-gpopt. (CXXFLAGS_FOR_TARGET): Likewise. gcc/ * doc/invoke.texi: Document the MIPS -mlocal-sdata, -mextern-sdata and -mgpopt options. Adjust the -G documentation to match. * config/mips/mips.opt (mextern-data, mgpopt, mlocal-data): New. * config/mips/mips.c (mips_rtx_constant_in_small_data_p): New function, split out from mips_classify_symbol. Return false for !TARGET_LOCAL_SDATA. (mips_classify_symbol): Call mips_rtx_constant_in_small_data_p. Only use GP-relative accesses for non-pool symbols if TARGET_GPOPT. (override_options): Check whether the -mgpopt setting is consistent with the other flags. (symbolic_expression_p): Delete. (mips_select_rtx_section): Use mips_rtx_constant_in_small_data_p and default_elf_select_rtx_section. (mips_in_small_data_p): Honor section attributes for MIPS16 too. Return false for local data unless TARGET_LOCAL_SDATA. Likewise external data and TARGET_EXTERN_SDATA. gcc/testsuite/ * gcc.dg/attr-alias-3.c: Use real asm for MIPS. * gcc.target/mips/mips.exp (setup_mips_tests): Set mips_forced_gp and mips_forced_no_er. (dg-mips-options): Add -mno-abicalls when a small-data option is specified. Skip tests with small-data options if mips_forced_gp. Skip tests with -mexplicit-relocs if mips_forced_no_er. * gcc.target/mips/sdata-1.c: New test. * gcc.target/mips/sdata-2.c: Likewise. * gcc.target/mips/sdata-3.c: Likewise. * gcc.target/mips/sdata-4.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128230 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-09-07 Tobias Burnus <burnus@net-b.de>burnus2007-09-071-0/+5
| | | | | | | | | PR fortran/33303 * doc/cpp.texi (Common Predefined Macros): Add __GFORTRAN__. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128229 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-09-05 Laurynas Biveinis <laurynas.biveinis@gmail.com>lauras2007-09-071-0/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * regrename.c (copyprop_hardreg_forward_1): New variable next. Use FOR_BB_INSNS_SAFE instead of for loop. * cse.c (cse_extended_basic_block): Likewise. * postreload.c (reload_cse_regs_1): New variable next. Make sure that the for loop does not invoke NEXT_INSN on a deleted insn. * function.c (instantiate_virtual_regs): Likewise. * lower-subreg.c (remove_retval_note): Likewise. (decompose_multiword_subregs): Use FOR_BB_INSNS_SAFE instead of FOR_BB_INSNS. * emit-rtl.c (remove_insn): Set NEXT_INSN and PREV_INSN to NULL on a deleted insn. * cfgrtl.c (delete_insn): Set JUMP_LABEL to NULL on a deleted insn, if it's a jump. (try_redirect_by_replacing_jump): New variable jump_p. Call tablejump_p before delete_insn_chain. * reload1.c (reload): New variable next. Make sure that the for loop does not invoke NEXT_INSN on a deleted insn. (fixup_eh_region_note): Make the loop terminate if i becomes NULL. (delete_output_reload): New variable prev. Make sure the the for loops do not invoke PREV_INSN on a deleted insn. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128224 138bc75d-0d04-0410-961f-82ee72b054a4