- 27 Aug, 2011 4 commits
-
-
* doc/rtl.texi (simple_return): Document. (parallel, PATTERN): Here too. * doc/md.texi (return): Mention it's allowed to expand to simple_return in some cases. (simple_return): Document standard pattern. * gengenrtl.c (special_rtx): SIMPLE_RETURN is special. * final.c (final_scan_insn): Use ANY_RETURN_P on body. * reorg.c (function_return_label, function_simple_return_label): New static variables, replacing... (end_of_function_label): ... this. (simplejump_or_return_p): New static function. (optimize_skip, steal_delay_list_from_fallthrough, fill_slots_from_thread): Use it. (relax_delay_slots): Likewise. Use ANY_RETURN_P on body. (rare_destination, follow_jumps): Use ANY_RETURN_P on body. (find_end_label): Take a new arg which is one of the two return rtxs. Depending on which, set either function_return_label or function_simple_return_label. All callers changed. (make_return_insns): Make both kinds. (dbr_schedule): Adjust for two kinds of end labels. * function.c (emit_return_into_block): Set JUMP_LABEL properly. * genemit.c (gen_exp): Handle SIMPLE_RETURN. (gen_expand, gen_split): Use ANY_RETURN_P. * df-scan.c (df_uses_record): Handle SIMPLE_RETURN. * rtl.def (SIMPLE_RETURN): New code. * ifcvt.c (find_if_case_1): Be more careful about redirecting jumps to the EXIT_BLOCK. * jump.c (condjump_p, condjump_in_parallel_p, any_condjump_p, returnjump_p_1): Handle SIMPLE_RETURNs. * print-rtl.c (print_rtx): Likewise. * rtl.c (copy_rtx): Likewise. * bt-load.c (compute_defs_uses_and_gen): Use ANY_RETURN_P. * combine.c (simplify_set): Likewise. * resource.c (find_dead_or_set_registers, mark_set_resources): Likewise. * emit-rtl.c (verify_rtx_sharing, classify_insn, copy_insn_1, copy_rtx_if_shared_1, mark_used_flags): Handle SIMPLE_RETURNs. (init_emit_regs): Initialize simple_return_rtx. * cfglayout.c (fixup_reorder_chain): Pass a JUMP_LABEL to force_nonfallthru_and_redirect. * rtl.h (ANY_RETURN_P): Allow SIMPLE_RETURN. (GR_SIMPLE_RETURN): New enum value. (simple_return_rtx): New macro. * basic-block.h (force_nonfallthru_and_redirect): Adjust declaration. * cfgrtl.c (force_nonfallthru_and_redirect): Take a new jump_label argument. All callers changed. Be careful about what kinds of returnjumps to generate. * config/i386/3i86.c (ix86_pad_returns, ix86_count_insn_bb, ix86_pad_short_function): Likewise. * config/arm/arm.c (arm_final_prescan_insn): Handle both kinds of return. * config/mips/mips.md (any_return): New code_iterator. (optab): Add cases for return and simple_return. (return): Expand to a simple_return. (simple_return): New pattern. (*<optab>, *<optab>_internal for any_return): New patterns. (return_internal): Remove. * config/mips/mips.c (mips_expand_epilogue): Make the last insn a simple_return_internal. From-SVN: r178135
Bernd Schmidt committed -
* config/i386/sse.md (*absneg<mode>2): Fix split condition. (vec_extract_lo_<mode>): Prevent both operands in memory. (vec_extract_lo_v16hi): Ditto. (*vec_extract_v4sf_mem): Add TARGET_SSE insn constraint. * config/i386/sse.md (mulv16qi3): Attach REG_EQUAL note. (*sse2_mulv4si3): Ditto. (mulv2di3): Ditto. * config/i386/i386.c (legitimize_tls_address): Change REG_EQIV notes to REG_EQUAL. From-SVN: r178132
Uros Bizjak committed -
re PR target/50202 (ICE: in final_scan_insn, at final.c:2709 (could not split insn) with __builtin_ia32_pcmpistri128) PR target/50202 * config/i386/sse.md (sse4_2_pcmpestr): Emit NOTE_INSN_DELETED note when all outputs are unused. (sse4_2_pcmpestr): Ditto. testsuite/ChangeLog: PR target/50202 * gcc.target/i386/pr50202.c: New test. From-SVN: r178130
Uros Bizjak committed -
From-SVN: r178129
GCC Administrator committed
-
- 26 Aug, 2011 20 commits
-
-
* config/i386/i386.c (ix86_build_const_vector): Rewrite using loop with RTVEC_ELT accessor. From-SVN: r178124
Uros Bizjak committed -
* config/i386/i386.md (round<mode>2): New expander. * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_ROUND{PS,PD}_AZ{,256}. (struct builtin_description): Add __builtin_ia32_round{ps,pd}_az{,256} descriptions. (ix86_builtin_vectorized_function): Handle BUILT_IN_ROUND{,F} builtins. testsuite/ChangeLog: * gcc.target/i386/sse_4_1-round-vec.c: New test. * gcc.target/i386/sse_4_1-roundf-vec.c: New test. * gcc.target/i386/avx-round-vec.c: New test. * gcc.target/i386/avx-roundf-vec.c: New test. From-SVN: r178123
Uros Bizjak committed -
PR middle-end/50083 * convert.c (convert_to_integer) <BUIT_IN_ROUND{,F,L}>: Convert only when TARGET_C99_FUNCTIONS. <BUILT_IN_NEARBYINT{,F,L}>: Ditto. <BUILT_IN_RINT{,F,L}>: Ditto. From-SVN: r178119
Uros Bizjak committed -
PR lto/50165 * lto-streamer-in.c (canon_file_name): Initialize new_slot->len; don't call strlen twice, use memcpy. Co-Authored-By: Jakub Jelinek <jakub@redhat.com> From-SVN: r178118
Michael Matz committed -
2011-08-26 H.J. Lu <hongjiu.lu@intel.com> * config/i386/bmi2intrin.h: Allow in <immintrin.h>. * config/i386/bmiintrin.h: Likewise. * config/i386/lzcntintrin.h: Likewise. * config/i386/immintrin.h: Include <lzcntintrin.h>, <bmiintrin.h> and <bmi2intrin.h>. From-SVN: r178117
H.J. Lu committed -
PR target/50166 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Check count in main. * configure: Regenerate. From-SVN: r178116
Rainer Orth committed -
* trans-decl.c (get_proc_pointer_decl): Set DECL_TLS_MODEL if threadprivate. * symbol.c (check_conflict): Allow threadprivate attribute with FL_PROCEDURE if proc_pointer. * testsuite/libgomp.fortran/threadprivate4.f90: New test. From-SVN: r178114
Jakub Jelinek committed -
* gcc.target/i386/cmpxchg16b-1.c: Match also space after the instruction. From-SVN: r178113
Jakub Jelinek committed -
PR c/50179 * c-typeck.c (c_process_expr_stmt): Skip over nops and call mark_exp_read even if exprv is ADDR_EXPR. * c-c++-common/Wunused-var-14.c: New test. From-SVN: r178110
Jakub Jelinek committed -
gcc/ * df-problems.c (df_note_bb_compute): Pass uses rather than defs to df_set_dead_notes_for_mw. From-SVN: r178109
Richard Sandiford committed -
2011-08-26 Richard Guenther <rguenther@suse.de> * varasm.c (decode_addr_const): Handle MEM_REF[&X, OFF]. From-SVN: r178107
Richard Guenther committed -
2011-08-26 Tom de Vries <tom@codesourcery.com> * gcc.dg/tree-ssa/ivopts-lt.c: New test. From-SVN: r178105
Tom de Vries committed -
2011-08-26 Zdenek Dvorak <ook@ucw.cz> Tom de Vries <tom@codesourcery.com> * tree-ssa-loop-ivopts.c (struct cost_pair): Add comp field. (struct ivopts_data): Add loop_single_exit_p field. (niter_for_exit): Change parameter desc_p into return value. Return desc if desc->may_be_zero. Free desc if unused. (niter_for_single_dom_exit): Change return type. (find_induction_variables): Handle changed return type of niter_for_single_dom_exit. Dump may_be_zero. (add_candidate_1): Keep original base and step type for IP_ORIGINAL. (set_use_iv_cost): Add and handle comp parameter. (determine_use_iv_cost_generic, determine_use_iv_cost_address): Add comp argument to set_use_iv_cost. (strip_wrap_conserving_type_conversions, expr_equal_p) (difference_cannot_overflow_p, iv_elimination_compare_lt): New function. (may_eliminate_iv): Add comp parameter. Handle new return type of niter_for_exit. Use loop_single_exit_p. Use iv_elimination_compare_lt. (determine_use_iv_cost_condition): Add comp argument to set_use_iv_cost and may_eliminate_iv. (rewrite_use_compare): Move call to iv_elimination_compare to ... (may_eliminate_iv): Here. (tree_ssa_iv_optimize_loop): Initialize loop_single_exit_p. Co-Authored-By: Tom de Vries <tom@codesourcery.com> From-SVN: r178104
Zdenek Dvorak committed -
2011-08-26 Tom de Vries <tom@codesourcery.com> * tree-pretty-print (dump_generic_node): Test for NULL_TREE before accessing TREE_TYPE. From-SVN: r178103
Tom de Vries committed -
Add conditional compare support for Thumb2. From-SVN: r178102
Jiangning Liu committed -
From-SVN: r178101
Jakub Jelinek committed -
2011-08-26 Richard Guenther <rguenther@suse.de> * expr.c (string_constant): Handle &MEM_REF. From-SVN: r178100
Richard Guenther committed -
2011-08-26 Andrew Stubbs <ams@codesourcery.com> gcc/ * config/arm/arm.c (struct four_ints): New type. (count_insns_for_constant): Delete function. (find_best_start): Delete function. (optimal_immediate_sequence): New function. (optimal_immediate_sequence_1): New function. (arm_gen_constant): Move constant splitting code to optimal_immediate_sequence. Rewrite constant negation/invertion code. gcc/testsuite/ * gcc.target/arm/thumb2-replicated-constant1.c: New file. * gcc.target/arm/thumb2-replicated-constant2.c: New file. * gcc.target/arm/thumb2-replicated-constant3.c: New file. * gcc.target/arm/thumb2-replicated-constant4.c: New file. 2011-08-26 Andrew Stubbs <ams@codesourcery.com> gcc/ * config/arm/arm-protos.h (const_ok_for_op): Add prototype. * config/arm/arm.c (const_ok_for_op): Add support for addw/subw. Remove prototype. Remove static function type. * config/arm/arm.md (*arm_addsi3): Add addw/subw support. Add arch attribute. * config/arm/constraints.md (Pj, PJ): New constraints. From-SVN: r178099
Andrew Stubbs committed -
From-SVN: r178098
Ramana Radhakrishnan committed -
From-SVN: r178095
GCC Administrator committed
-
- 25 Aug, 2011 16 commits
-
-
From-SVN: r178091
Ian Lance Taylor committed -
From-SVN: r178088
Uros Bizjak committed -
2011-08-25 Mikael Morin <mikael.morin@gcc.gnu.org> PR fortran/50050 * expr.c (gfc_free_shape): Do nothing if shape is NULL. (free_expr0): Remove redundant NULL shape check. * resolve.c (check_host_association): Ditto. * trans-expr.c (gfc_trans_subarray_assign): Assert that shape is non-NULL. * trans-io.c (transfer_array_component): Ditto. 2011-08-25 Mikael Morin <mikael.morin@gcc.gnu.org> PR fortran/50050 * gfortran.dg/pointer_comp_init_1.f90: New test. From-SVN: r178086
Mikael Morin committed -
re PR debug/50132 (ICE: in maybe_record_trace_start, at dwarf2cfi.c:2234 with -fno-asynchronous-unwind-tables and long double) PR 50132 PR 49864 * cfgcleanup.c (old_insns_match_p): Don't allow cross-jump for non-constant stack adjutment. * expr.c (find_args_size_adjust): Break out from ... (fixup_args_size_notes): ... here. * rtl.h (find_args_size_adjust): Declare. From-SVN: r178084
Richard Henderson committed -
From-SVN: r178082
Jason Merrill committed -
PR c++/50157 * call.c (convert_like_real): Exit early if bad and !tf_error. From-SVN: r178081
Jason Merrill committed -
* config/i386/i386.md (isa): Add sse2, sse2_noavx, sse3, sse4 and sse4_noavx. (enabled): Handle sse2, sse2_noavx, sse3, sse4 and sse4_noavx. (*pushdf_rex64): Change Y2 register constraint to x. (*movdf_internal_rex64): Ditto. (*zero_extendsidi2_rex64): Ditto. (*movdi_internal): Change Y2 register constraint to x and update "isa" attribute. (*pushdf): Ditto. (*movdf internal): Ditto. (zero_extendsidi2_1): Ditto. (*truncdfdf_mixed): Ditto. (*truncxfdf2_mixed): Ditto. * config/i386/mmx.md (*mov<mode>_internal_rex64): Change Y2 register constraint to x. (*movv2sf_internal_rex64): Ditto. (*mov<mode>_internal): Change Y2 register constraint to x and add "isa" attribute. (*movv2sf_internal): Ditto. (*vec_extractv2si_1): Ditto. * config/i386/sse.md ("vec_set<mode>_0): Change Y2 and Y4 register constraints to x and update "isa" attribute. (*vec_interleave_highv2df): Change Y3 registerconstraint to x and update "isa" attribute. (*vec_interleave_lowv2df): Ditto. (*vec_concatv2df): Change Y2 register constraint to x and update "isa" attribute. (sse2_loadld): Ditto. (*vec_extractv2di_1): Ditto. (*vec_dupv4si): Ditto. (*vec_dupv2di): Ditto. (*vec_concatv4si): Ditto. (vec_concatv2di): Ditto. * config/i386/constraints.md (Y2): Remove. (Y3): Ditto. (Y4): Ditto. From-SVN: r178073
Uros Bizjak committed -
2011-08-25 Tobias Burnus <burnus@net-b.de> * trans-array.c (gfc_conv_descriptor_token): Add assert. * trans-decl.c (gfc_build_qualified_array, create_function_arglist): Handle assumed-shape arrays. * trans-expr.c (gfc_conv_procedure_call): Ditto. * trans-types.c (gfc_get_array_descriptor_base): Ditto, don't add "caf_token" to assumed-shape descriptors, new akind argument. (gfc_get_array_type_bounds): Pass akind. * trans.h (lang_decl): New elements caf_offset and token. (GFC_DECL_TOKEN, GFC_DECL_CAF_OFFSET): New macros. 2011-08-25 Tobias Burnus <burnus@net-b.de> * gfortran.dg/coarray_lib_token_4.f90: New. From-SVN: r178069
Tobias Burnus committed -
2011-08-25 Tobias Burnus <burnus@net-b.de> * trans-array.c (structure_alloc_comps): Fix for allocatable scalar coarray components. * trans-expr.c (gfc_conv_component_ref): Ditto. * trans-type.c (gfc_get_derived_type): Ditto. 2011-08-25 Tobias Burnus <burnus@net-b.de> * gfortran.dg/coarray/alloc_comp_1.f90: New. From-SVN: r178068
Tobias Burnus committed -
From-SVN: r178067
Georg-Johann Lay committed -
* testsuite/libstdc++-prettyprinters/simple.cc: New file. * testsuite/lib/gdb-test.exp: New file. * testsuite/libstdc++-prettyprinters/prettyprinters.exp: New file. From-SVN: r178066
Tom Tromey committed -
* regrename.c (scan_rtx_reg, scan_rtx_address, build_def_use, dump_def_use_chain): Don't declare. (mark_conflict, create_new_chain): Move before users. (regrename_optimize): Move to near end of file. From-SVN: r178065
Bernd Schmidt committed -
* config/avr-protos.h (byte_immediate_operand): Remove Prototype. (secondary_input_reload_class): Remove Prototype. * config/avr/avr.c (byte_immediate_operand): Remove Function. * config/avr/avr.md (setmemhi): Use u8_operand. (strlenhi): Use const0_rtx for comparison. * config/avr/avr.h (avr_reg_order): Remove Declaration. From-SVN: r178064
Georg-Johann Lay committed -
* config/avr/avr.c (reg_class_tab): Make local to avr_regno_reg_class. Return smallest register class available. From-SVN: r178063
Georg-Johann Lay committed -
* config/avr/avr.c (STR_PREFIX_P): New Define. (avr_asm_declare_function_name): Use it. (avr_asm_named_section): Use it. (avr_section_type_flags): Use it. From-SVN: r178062
Georg-Johann Lay committed -
2011-08-25 Richard Guenther <rguenther@suse.de> * gcc.dg/Wshadow-3.c: Restore original content destroyed by r148442. From-SVN: r178061
Richard Guenther committed
-