Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2009-06-01 | utils.c (convert): When converting to the packable version of the type... | Olivier Hainque | 4 | -0/+55 | |
ada/ * gcc-interface/utils.c (convert) <CONSTRUCTOR case>: When converting to the packable version of the type, clear TREE_STATIC/TREE_CONSTANT on the result if at least one of the input fields couldn't be output as a static constant any more. testsuite/ * gnat.dg/nested_float_packed.ads: New test. Co-Authored-By: Eric Botcazou <ebotcazou@adacore.com> From-SVN: r148049 | |||||
2009-06-01 | Add missing blanks after dots in entry. | Olivier Hainque | 1 | -3/+3 | |
From-SVN: r148048 | |||||
2009-06-01 | alias.c (find_base_term): Check for NULL term before returning. | Luis Machado | 2 | -2/+14 | |
2009-06-01 Luis Machado <luisgpm@br.ibm.com> * alias.c (find_base_term): Check for NULL term before returning. From-SVN: r148047 | |||||
2009-06-01 | Revert due to PR40320: | Maxim Kuvyrkov | 2 | -0/+18 | |
2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com> * calls.c (emit_library_call_value_1): Don't force_operand for move and push insns. From-SVN: r148046 | |||||
2009-06-01 | tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE... | Olivier Hainque | 19 | -285/+815 | |
* tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is to be processed as a bitfield for constructor output purposes. * output.h (initializer_constant_valid_for_bitfield_p): Declare new function. * varasm.c (oc_local_state): New type, output_constructor local state to support communication with helpers. (oc_outer_state): New type, output_constructor outer state of relevance in recursive calls. (output_constructor_array_range): New output_constructor helper, extracted code for an array range element. (output_constructor_regular_field): New output_constructor helper, extracted code for an element that is not a bitfield. (output_constructor_bitfield): New output_constructor helper, extracted code for a bitfield element. Accept an OUTER state argument for recursive processing. Recurse on record or array CONSTRUCTOR values, possibly past noop conversions. (initializer_constant_valid_for_bitfield_p): New predicate. Whether VALUE is a valid constant-valued expression for use in a static bit-field initializer. (output_constructor): Rework to use helpers. Accept and honor an OUTER state argument for recursive calls. Return total size. Be prepared for nested constructors initializing bitfields. (output_constant): Feed OUTER in calls to output_constructor. ada/ * gcc-interface/utils2.c (gnat_build_constructor): Factor out code. Use initializer_constant_valid_for_bitfield_p and CONSTRUCTOR_BITFIELD_P for bit-fields. testsuite/ * gnat.dg/oconst[1-6].ad[bs]: New tests. Also support for ... * gnat.dg/test_oconst.adb: New test. Co-Authored-By: Eric Botcazou <ebotcazou@adacore.com> From-SVN: r148045 | |||||
2009-06-01 | calls.c (emit_library_call_value_1): Don't force_operand for move and push ↵ | Maxim Kuvyrkov | 2 | -10/+5 | |
insns. * calls.c (emit_library_call_value_1): Don't force_operand for move and push insns. From-SVN: r148039 | |||||
2009-06-01 | * doc/invoke.texi (IA-64 Options): Fix typo. | Nick Clifton | 2 | -2/+6 | |
From-SVN: r148037 | |||||
2009-06-01 | re PR tree-optimization/39129 (The meaning of 'BB' in "too many BBs in loop") | Ira Rosen | 7 | -55/+91 | |
PR tree-optimization/39129 * tree-vect-loop-manip.c (conservative_cost_threshold): Change the printed message. (vect_do_peeling_for_loop_bound): Use LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros. (vect_loop_versioning): Likewise. (vect_create_cond_for_alias_checks): Fix indentation. * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the macros. (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define. (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise. * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to "control flow in loop". (vect_estimate_min_profitable_iters): Use LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros. * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise. (vect_create_data_ref_ptr): Don't mention array dimension in printing. * tree-vect-stmts.c (vectorizable_store): Replace the check that the statement belongs to a group of strided accesses with the exact code check. (vectorizable_load): Likewise. * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block". (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise. From-SVN: r148036 | |||||
2009-06-01 | re PR fortran/40309 (gfortran does not support static c/d-tors.) | Tobias Burnus | 2 | -1/+12 | |
2009-06-01 Tobias Burnus <burnus@net-b.de> PR fortran/40309 * trans-decl.c (gfc_sym_identifier): Use "MAIN__" for PROGRAM "main". (create_main_function): Set main_identifier_node. From-SVN: r148035 | |||||
2009-06-01 | freebsd-stdint.h: New file. | Gerald Pfeifer | 3 | -1/+64 | |
* config/freebsd-stdint.h: New file. * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap. Add freebsd-stdint.h to tm_file. From-SVN: r148027 | |||||
2009-06-01 | thumb2.md (thumb2_zero_extendhidi2): New insn and split. | Richard Earnshaw | 2 | -0/+54 | |
* arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split. (thumb2_extendhidi2): Likewise. From-SVN: r148026 | |||||
2009-06-01 | Daily bump. | GCC Administrator | 1 | -1/+1 | |
From-SVN: r148025 | |||||
2009-05-31 | regstat.c (regstat_n_sets_and_refs): Remove duplicate definition. | Ian Lance Taylor | 2 | -3/+7 | |
* regstat.c (regstat_n_sets_and_refs): Remove duplicate definition. From-SVN: r148021 | |||||
2009-05-31 | Makefile.in (except.o): Depent upon gt-except.h, not gt-$(EXCEPT_H). | Ian Lance Taylor | 2 | -4/+10 | |
* Makefile.in (except.o): Depent upon gt-except.h, not gt-$(EXCEPT_H). (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H). (ipa-reference.o): Depend upon gt-ipa-reference.h. From-SVN: r148020 | |||||
2009-05-31 | tree-pretty-print.c (print_call_name): Take the callee, not the call itself. | Jason Merrill | 4 | -13/+21 | |
* tree-pretty-print.c (print_call_name): Take the callee, not the call itself. Make non-static. Use dump_function_name for functions. (dump_generic_node): Adjust. * diagnostic.h: Declare print_call_name. * gimple-pretty-print.c (dump_gimple_call): Use it. From-SVN: r148019 | |||||
2009-05-31 | sh.md (ashldi3_std): New define_expand. | Kaz Kojima | 2 | -2/+46 | |
* config/sh/sh.md (ashldi3_std): New define_expand. (ashldi3): Use it. From-SVN: r148018 | |||||
2009-05-31 | re PR target/40313 (SH: ICE in dwarf2out_begin_epilogue, at dwarf2out.c:2689) | Kaz Kojima | 2 | -2/+11 | |
PR target/40313 * config/sh/sh.c: Include debug.h. (sh_expand_epilogue): Emit a blockage insn before the frame pointer adjustment also when dwarf2out_do_frame returns true. From-SVN: r148017 | |||||
2009-05-31 | ggcplug.c: moved comment. | Basile Starynkevitch | 3 | -13/+25 | |
2009-05-31 Basile Starynkevitch <basile@starynkevitch.net> * gcc/testsuite/gcc.dg/plugin/ggcplug.c: moved comment. (plugin_init): fixed typo, declared i, returned 0 at end. [also moved an entry from gcc/ChangeLog to gcc/testsuite/ChangeLog] From-SVN: r148015 | |||||
2009-05-31 | thumb2.md (thumb2_extendsidi2): Add a split sub-pattern. | Richard Earnshaw | 2 | -9/+40 | |
* arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern. (thumb2_extendqidi2): New pattern. From-SVN: r148014 | |||||
2009-05-31 | tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't mark phis ↵ | Ira Rosen | 5 | -27/+12 | |
for renaming. * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't mark phis for renaming. * tree-vectorizer.c (vect_memsyms_to_rename): Remove. (vectorize_loops): Don't allocate and free vect_memsyms_to_rename. Call mark_sym_for_renaming. * tree-vectorizer.h (vect_memsyms_to_rename): Remove. * tree-vect-loop.c (vect_transform_loop): Remove vect_memsyms_to_rename initialization and a call to mark_set_for_renaming. From-SVN: r148013 | |||||
2009-05-31 | re PR middle-end/40304 (Revision 147995 breaks stack unwind) | Jakub Jelinek | 2 | -0/+10 | |
PR middle-end/40304 * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns frame related even if !set_cfa && style < 0. From-SVN: r148011 | |||||
2009-05-31 | re PR testsuite/40244 (Revision 147829 caused extra failures) | Ira Rosen | 3 | -10/+12 | |
PR testsuite/40244 * gcc.dg/vect/bb-slp-4.c: Change the number of data accesses to 2. * gcc.dg/vect/bb-slp-10.c: Change the store misalignment to 1. From-SVN: r148010 | |||||
2009-05-31 | Daily bump. | GCC Administrator | 1 | -1/+1 | |
From-SVN: r148009 | |||||
2009-05-30 | Reformat. | H.J. Lu | 1 | -35/+35 | |
From-SVN: r148003 | |||||
2009-05-30 | mingw-tls.c: New file. | Kai Tietz | 4 | -5/+245 | |
2009-05-30 Kai Tietz <kai.tietz@onevision.com> * config/i386/mingw-tls.c: New file. * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file. * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets defining _WIN32 but not __CYGWIN__. From-SVN: r148000 | |||||
2009-05-30 | Makefile.def: Add MPC support and dependencies. | Kaveh R. Ghazi | 4 | -0/+24 | |
* Makefile.def: Add MPC support and dependencies. * configure.ac: Likewise. Reorganize GMP/MPFR checks. * Makefile.in, configure: Regenerate. gcc: * configure.ac: Add MPC support. * config.in, configure: Regenerate. From-SVN: r147996 | |||||
2009-05-29 | cfgcleanup.c (try_crossjump_to_edge): Only skip past NOTE_INSN_BASIC_BLOCK. | Richard Henderson | 18 | -239/+926 | |
* cfgcleanup.c (try_crossjump_to_edge): Only skip past NOTE_INSN_BASIC_BLOCK. * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks. Duplicate NOTE_INSN_EPILOGUE_BEG notes. * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG to be deleted. * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield, add in_use field. (add_cfi): Disable check redefining cfa away from drap. (lookup_cfa_1): Add remember argument; handle remember/restore. (lookup_cfa): Pass remember argument. (cfa_remember): New. (compute_barrier_args_size_1): Remove sibcall check. (dwarf2out_frame_debug_def_cfa): New. (dwarf2out_frame_debug_adjust_cfa): New. (dwarf2out_frame_debug_cfa_offset): New. (dwarf2out_frame_debug_cfa_register): New. (dwarf2out_frame_debug_cfa_restore): New. (dwarf2out_frame_debug): Handle REG_CFA_* notes. (dwarf2out_begin_epilogue): New. (dwarf2out_frame_debug_restore_state): New. (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state, DW_CFA_restore_state. (output_cfi_directive): Likewise. (convert_cfa_to_fb_loc_list): Likewise. (dw_cfi_oprnd1_desc): Handle DW_CFA_restore. * dwarf2out.h: Update. * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P. (copy_insn_1): Early out for null. * final.c (final_scan_insn): Call dwarf2out_begin_epilogue and dwarf2out_frame_debug_restore_state. * function.c (prologue, epilogue, sibcall_epilogue): Remove. (prologue_insn_hash, epilogue_insn_hash): New. (free_after_compilation): Adjust freeing accordingly. (record_insns): Create hash table if needed; push insns into hash instead of array. (maybe_copy_epilogue_insn): New. (contains): Search hash table instead of array. (sibcall_epilogue_contains): Remove. (thread_prologue_and_epilogue_insns): Split eh_return insns and mark them as epilogues. (reposition_prologue_and_epilogue_notes): Rewrite epilogue scanning in terms of basic blocks. * insn-notes.def (CFA_RESTORE_STATE): New. * jump.c (returnjump_p_1): Accept EH_RETURN. (eh_returnjump_p_1, eh_returnjump_p): New. * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET, CFA_REGISTER, CFA_RESTORE): New. * rtl.def (EH_RETURN): New. * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare. * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove. (eh_return_internal): Use eh_return rtx; split w/ epilogue. * config/i386/i386.c (gen_push): Update cfa state. (pro_epilogue_adjust_stack): Add set_cfa argument. When true, add a CFA_ADJUST_CFA note. (ix86_dwarf_handle_frame_unspec): Remove. (ix86_expand_prologue): Update cfa state. (ix86_emit_restore_reg_using_pop): New. (ix86_emit_restore_regs_using_pop): New. (ix86_emit_leave): New. (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes. (ix86_expand_epilogue): Add notes for unwinding the epilogue. * config/i386/i386.h (struct machine_cfa_state): New. (ix86_cfa_state): New. * config/i386/i386.md (UNSPEC_EH_RETURN): Remove. (eh_return_internal): Merge from eh_return_<mode>, use eh_return rtx, split w/ epilogue. From-SVN: r147995 | |||||
2009-05-30 | Daily bump. | GCC Administrator | 1 | -1/+1 | |
From-SVN: r147994 | |||||
2009-05-29 | builtins.c (validate_gimple_arglist): Don't use va_arg with enum type. | Ian Lance Taylor | 10 | -8/+61 | |
./: * builtins.c (validate_gimple_arglist): Don't use va_arg with enum type. * calls.c (emit_library_call_value_1): Likewise. * c-typeck.c (c_build_va_arg): New function. * c-tree.h (c_build_va_arg): Declare. * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg instead of build_va_arg. cp/: * error.c (cp_printer): Don't use va_arg with enum type. testsuite/: * gcc.dg/Wcxx-compat-11.c: New testcase. From-SVN: r147989 | |||||
2009-05-29 | re PR fortran/40019 (LEADZ and TRAILZ give wrong results) | Francois-Xavier Coudert | 10 | -62/+267 | |
2009-05-29 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> PR fortran/40019 * trans-types.c (gfc_build_uint_type): Make nonstatic. * trans.h (gfor_fndecl_clz128, gfor_fndecl_ctz128): New * prototypes. * trans-types.h (gfc_build_uint_type): Add prototype. * trans-decl.c (gfc_build_intrinsic_function_decls): Build gfor_fndecl_clz128 and gfor_fndecl_ctz128. * trans-intrinsic.c (gfc_conv_intrinsic_leadz, gfc_conv_intrinsic_trailz): Call the right builtins or library functions, and cast arguments to unsigned types first. * simplify.c (gfc_simplify_leadz): Deal with negative arguments. 2009-05-29 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> PR fortran/40019 * intrinsics/bit_intrinsics.c: New file. * gfortran.map (GFORTRAN_1.2): New list. * Makefile.am: Add intrinsics/bit_intrinsics.c. * Makefile.in: Regenerate. 2009-05-29 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> PR fortran/40019 * gfortran.dg/leadz_trailz_1.f90: New test. * gfortran.dg/leadz_trailz_2.f90: New test. From-SVN: r147987 | |||||
2009-05-29 | tree-ssa-loop-ivopts.c (strip_offset_1): New case. | Eric Botcazou | 2 | -35/+97 | |
* tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case. (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise. (ptr_difference_cost): Use affine combinations to compute it. (difference_cost): Likewise. (get_computation_cost_at): Compute more accurate cost for addresses if the ratio is a multiplier allowed in addresses. For non-addresses, consider that an additional offset or symbol is added only once. From-SVN: r147983 | |||||
2009-05-29 | i386.c (ix86_decompose_address): Avoid useless 0 displacement. | Jakub Jelinek | 2 | -5/+18 | |
* config/i386/i386.c (ix86_decompose_address): Avoid useless 0 displacement. Add 0 displacement if base is %[er]bp or %r13. From-SVN: r147982 | |||||
2009-05-29 | i386.md (prefix_data16, prefix_rep): Set to 0 for ↵ | Jakub Jelinek | 6 | -86/+902 | |
TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default. * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default. (prefix_rex): For UNIT_MMX don't imply the prefix by default if MODE_DI. (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and to 1 for TYPE_SSE{IADD1,CVT1}. (prefix_vex_imm8): Removed. (length_vex): Only pass 1 as second argument to ix86_attr_length_vex_default if prefix_extra is 0. (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT. (length): For prefix vex computation use length_immediate attribute instead of prefix_vex_imm8. (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64, addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0, *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1, *xorqi_cc_ext_1_rex64): Override modrm attribute to 1. (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2, *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit a space in between the operands. (*anddi_1_rex64, *andsi_1): Likewise. Override prefix_rex to 1 if one operand is 0xff and the other one si, di, bp or sp. (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the other one si, di, bp or sp. (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute. (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add type and mode attributes. (*bsr, *bsr_rex64, *bsrhi): Add type attribute. (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear prefix_rep attribute and set prefix_data16 attribute iff MODE_DF. (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set prefix_data16 attribute iff MODE_DF. (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute. (fix_trunc<mode>di_sse): Set prefix_rex attribute. (*adddi_4_rex64, *addsi_4): Use const128_operand instead of constm128_operand in length_immediate computation. (*addhi_4): Likewise. Fix mode attribute to MODE_HI. (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq. (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set length_immediate attribute to 1. (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute. (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes for certain alternatives. (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override prefix_data16 attribute if MODE_V1DF. (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set length_immediate to 1. (set_got_rex64, set_rip_rex64): Remove length attribute, set length_address to 4, set mode attribute to MODE_DI. (set_got_offset_rex64): Likewise. Set length_immediate to 0. (fxam<mode>2_i387): Set length attribute to 4. (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow, *prefetch_3dnow_rex): Override length_address attribute. (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex attributes. * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate. (constm128_operand): Removed. * config/i386/i386.c (memory_address_length): For disp && !index && !base in 64-bit mode account for SIB byte if print_operand_address can't optimize disp32 into disp32(%rip) and UNSPEC doesn't imply (%rip) addressing. Add 1 to length for fs: or gs: segment. (ix86_attr_length_immediate_default): When checking if shortform is possible, truncate immediate to the length of the non-shortened immediate. (ix86_attr_length_address_default): Ignore MEM_P operands with X constraint. (ix86_attr_length_vex_default): Only check for DImode on GENERAL_REG_P operands. * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear prefix_rep attribute, set prefix_data16 attribute iff MODE_DF. (sse_cvttps2pi): Clear prefix_rep attribute. (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16 attribute. (*sse2_cvttpd2dq): Don't clear prefix_rep attribute. (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3, *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1 iff operand 2 is const_int_operand. (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>, sse2_shufpd_<mode>): Set length_immediate attribute to 1. (sse2_pshufd_1): Likewise. Set prefix attribute to maybe_vex instead of vex. (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear prefix_data16. (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set prefix_data16 attribute for movlpd and movhpd instructions. (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise. Override length_immediate for shufpd instruction. (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute. (avx_cmpp<avxmodesuffixf2c><mode>3, avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3, <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3, avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>, *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1. (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4. (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1. (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override prefix_data16 attribute for the first alternative to 1. (*avx_loadlps): Override length_immediate for the first alternative. (*vec_concatv2sf_avx): Override length_immediate and prefix_extra attributes for second alternative. (*vec_concatv2sf_sse4_1): Override length_immediate and prefix_data16 attributes for second alternative. (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>, vec_extract_hi_<mode>, vec_extract_lo_v16hi, vec_extract_hi_v16hi, vec_extract_lo_v32qi, vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1. (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set prefix_data16 and length_immediate to 1. (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra to 1. (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set prefix_extra attribute for variants that don't have 0f prefix alone. (*avx_pinsr<ssevecsize>): Likewise. Set length_immediate to 1. (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb, *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory, *sse4_1_pextrd): Set length_immediate to 1. (*sse4_1_pinsrd): Likewise. Set prefix_extra to 1. (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate to 1. (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64, *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override length_immediate to 1 for second alternative. (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override prefix_extra and length_immediate attributes for the first alternative. (vec_concatv2si_sse4_1): Override length_immediate to 1 for the first alternative. (*vec_concatv2di_rex64_sse4_1): Likewise. Override prefix_rex to 1 for the first and third alternative. (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second alternative. (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex attribute. (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address attribute to 0. (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3, *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi, *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3, *avx_psign<mode>3): Set prefix_extra attribute to 1. (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3, ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3, ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3, ssse3_psign<mode>3): Override prefix_rex attribute. (*avx_palignrti): Override prefix_extra and length_immediate to 1. (ssse3_palignrti): Override length_immediate to 1. (ssse3_palignrdi): Override length_immediate to 1, override prefix_rex attribute. (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute. (sse4a_extrqi): Override length_immediate to 2. (sse4a_insertqi): Likewise. Override prefix_data16 to 0. (sse4a_insertq): Override prefix_data16 to 0. (avx_blendp<avxmodesuffixf2c><avxmodesuffix>, avx_blendvp<avxmodesuffixf2c><avxmodesuffix>, avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw, *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256, avx_rounds<avxmodesuffixf2c>256): Override prefix_extra and length_immediate to 1. (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>, sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm, sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri, sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16 and length_immediate to 1. (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1. (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1. (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>, avx_ptest256): Override prefix_extra to 1. (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>): Override prefix_data16 and length_immediate to 1. (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi, sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si, sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di, sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override prefix_data16 to 0 and prefix_extra to 2. (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1. (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra attribute. (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3): Override prefix_data16 and prefix_rep to 0, length_immediate to 1 and prefix_extra to 2. (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2. (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast, avx_vpermilvar<mode>3, avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>, avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256, avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>, avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>): Override prefix_extra to 1. (aeskeygenassist, pclmulqdq): Override length_immediate to 1. (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3, vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi, vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override prefix_extra and length_immediate to 1. (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override modrm to 0. (*vec_concat<mode>_avx): Override prefix_extra and length_immediate to 1 for the first alternative. * config/i386/mmx.md (*mov<mode>_internal_rex64): Override prefix_rep, prefix_data16 and/or prefix_rex attributes in certain cases. (*mov<mode>_internal_avx, *movv2sf_internal_rex64, *movv2sf_internal_avx, *movv2sf_internal): Override prefix_rep attribute for certain alternatives. (*mov<mode>_internal): Override prefix_rep or prefix_data16 attributes for certain alternatives. (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex attributes for certain alternatives. (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3, *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2, mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3, mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3, *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw, mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3, mmx_pswapdv2si2): Set prefix_extra attribute to 1. (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set length_immediate to 1 if operand 2 is const_int_operand. (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi, *vec_extractv2si_1): Set length_immediate attribute to 1. (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if using old 3DNOW insn rather than SSE/3DNOW_A. (mmx_emms, mmx_femms): Clear modrm attribute. From-SVN: r147981 | |||||
2009-05-29 | tree-sra.c: New implementation of SRA. | Martin Jambor | 20 | -3155/+1954 | |
2009-05-29 Martin Jambor <mjambor@suse.cz> * tree-sra.c: New implementation of SRA. * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed. (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed. (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed. * params.h (SRA_MAX_STRUCTURE_SIZE): Removed. (SRA_MAX_STRUCTURE_COUNT): Removed. (SRA_FIELD_STRUCTURE_RATIO): Removed. * doc/invoke.texi (sra-max-structure-size): Removed. (sra-field-structure-ratio): Removed. * testsuite/gfortran.dg/pr25923.f90: XFAIL warning expectation. * testsuite/gcc.dg/tree-ssa/ssa-fre-7.c: Compile with -fno-tree-sra. * testsuite/gcc.dg/tree-ssa/ssa-fre-8.c: Likewise. * testsuite/gcc.dg/tree-ssa/ssa-fre-9.c: Likewise. * testsuite/gcc.dg/memcpy-1.c: Removed param sra-max-structure-size. * testsuite/gcc.dg/tree-ssa/sra-2.c: Likewise. * testsuite/gcc.dg/tree-ssa/sra-3.c: Likewise. * testsuite/gcc.dg/tree-ssa/sra-1.c: Likewise. * testsuite/gcc.dg/tree-ssa/sra-4.c: Changed comment. * testsuite/gcc.dg/tree-ssa/sra-5.c: New file. * testsuite/gcc.dg/tree-ssa/sra-6.c: New file. * testsuite/gcc.c-torture/compile/sra-1.c: New file. From-SVN: r147980 | |||||
2009-05-29 | re PR middle-end/40291 (ICE on unprototyped memcmp with long long last argument) | Jakub Jelinek | 4 | -2/+17 | |
PR middle-end/40291 * builtins.c (expand_builtin_memcmp): Convert len to sizetype before expansion. * gcc.c-torture/compile/pr40291.c: New test. From-SVN: r147978 | |||||
2009-05-29 | re PR rtl-optimization/40101 (200.sixtrack ICEs in get_seqno_by_preds, at ↵ | Andrey Belevantsev | 3 | -4/+29 | |
sel-sched-ir.c:3752) PR rtl-optimization/40101 * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative seqno. Adjust comment. * sel-sched.c (find_seqno_for_bookkeeping): Assert that when inserting bookkeeping before a jump, the jump is not scheduled. When no positive seqno found, provide a value. Add comment. From-SVN: r147977 | |||||
2009-05-29 | tree-ssa-alias.c (nonaliasing_component_refs_p): Remove short-cutting on the ↵ | Richard Guenther | 2 | -3/+7 | |
first component. 2009-05-29 Richard Guenther <rguenther@suse.de> * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove short-cutting on the first component. From-SVN: r147976 | |||||
2009-05-29 | re PR middle-end/39958 (OMP tasking creates invalid gimple) | Jakub Jelinek | 2 | -1/+11 | |
PR middle-end/39958 * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE for trees other than decls/types. From-SVN: r147975 | |||||
2009-05-29 | tree-ssa-operands.c (get_expr_operands): Do not handle INDIRECT_REFs in the ↵ | Richard Guenther | 5 | -28/+32 | |
handled-component case. 2009-05-29 Richard Guenther <rguenther@suse.de> * tree-ssa-operands.c (get_expr_operands): Do not handle INDIRECT_REFs in the handled-component case. Remove unused get_ref_base_and_extent case. * tree-dfa.c (get_ref_base_and_extent): Avoid calling tree_low_cst and host_integerp where possible. * tree-ssa-structalias.c (equiv_class_label_eq): Check hash codes for equivalence. * dce.c (find_call_stack_args): Avoid redundant bitmap queries. From-SVN: r147973 | |||||
2009-05-29 | config.host: Add i386/${host_address}/t-fprules-softfp and t-softfp to ↵ | David Billinghurst | 2 | -2/+9 | |
tmake_file for... 2009-05-29 David Billinghurst <billingd@gcc.gnu.org> * config.host: Add i386/${host_address}/t-fprules-softfp and t-softfp to tmake_file for i[34567]86-*-cygwin*. 2009-05-29 David Billinghurst <billingd@gcc.gnu.org> * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for i[34567]86-*-cygwin*. From-SVN: r147972 | |||||
2009-05-29 | re PR target/40017 (stdbool.h/altivec.h) | Jakub Jelinek | 6 | -1/+86 | |
PR target/40017 * config/rs6000/rs6000-c.c (_Bool_keyword): New variable. (altivec_categorize_keyword, init_vector_keywords, rs6000_cpu_cpp_builtins): Define _Bool as conditional macro similar to bool. * gcc.target/powerpc/altivec-types-1.c: Don't expect error for __vector _Bool. * gcc.target/powerpc/altivec-30.c: New test. * gcc.target/powerpc/altivec-31.c: New test. From-SVN: r147970 | |||||
2009-05-29 | tree.c (handle_dll_attribute): Check if node is of kind FUNCTION_DECL for ↵ | Kai Tietz | 2 | -1/+7 | |
DECL_DECLARED_INLINE_P check. 2009-05-29 Kai Tietz <kai.tietz@onevision.com> * tree.c (handle_dll_attribute): Check if node is of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check. From-SVN: r147969 | |||||
2009-05-29 | Daily bump. | GCC Administrator | 1 | -1/+1 | |
From-SVN: r147965 | |||||
2009-05-28 | thumb2.md (thumb2_zero_extendsidi2): Add a split component. | Richard Earnshaw | 2 | -10/+30 | |
* config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split component. (thumb2_zero_extendqidi2): Likewise. From-SVN: r147962 | |||||
2009-05-28 | sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt instead of gen_movrt. | Kaz Kojima | 3 | -11/+7 | |
* config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt instead of gen_movrt. * config/sh/sh.md (movrt): Remove. From-SVN: r147961 | |||||
2009-05-28 | 2009-05-28 Steve Ellcey <sje@cup.hp.com> | Steve Ellcey | 2 | -43/+84 | |
* doc/invoke.texi (IA-64 Options) Add -msdata, -mfused-madd, -mno-inline-float-divide, -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc, -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns, -msched-prefer-non-control-spec-insns, -msched-stop-bits-after-every-cycle, -msched-count-spec-in-critical-path, -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost -msched-max-memory-insns-hard-limit, -msched-max-memory-insns Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc, and -msched-spec-verbose. From-SVN: r147960 | |||||
2009-05-28 | lib1funcs.asm (__clear_cache): Define if L_clear_cache. | Joseph Myers | 4 | -14/+35 | |
* config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache. * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an error if used. * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache. From-SVN: r147956 | |||||
2009-05-28 | tree-ssa-alias.c (ao_ref_init): New function. | Richard Guenther | 9 | -157/+487 | |
2009-05-28 Richard Guenther <rguenther@suse.de> * tree-ssa-alias.c (ao_ref_init): New function. (ao_ref_base): Likewise. (ao_ref_base_alias_set): Likewise. (ao_ref_alias_set): Likewise. (refs_may_alias_p_1): Change signature. (refs_may_alias_p): Adjust. (refs_anti_dependent_p): Likewise. (refs_output_dependent_p): Likewise. (call_may_clobber_ref_p_1): Change signature. (call_may_clobber_ref_p): Adjust. (stmt_may_clobber_ref_p_1): New function split out from ... (stmt_may_clobber_ref_p): ... here. (maybe_skip_until): Adjust signature. (get_continuation_for_phi): Likewise. (walk_non_aliased_vuses): Likewise. * tree-ssa-alias.h (struct ao_ref_s): New structure type. (ao_ref_init): Declare. (ao_ref_base): Likewise. (ao_ref_alias_set): Likewise. (stmt_may_clobber_ref_p_1): Likewise. (walk_non_aliased_vuses): Adjust. * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function. (get_ref_from_reference_ops): remove. (vn_reference_lookup_2): Adjust signature. (vn_reference_lookup_3): Do not re-build trees. Handle unions. (vn_reference_lookup_pieces): Adjust signature, do not re-build trees. (vn_reference_lookup): Adjust. (vn_reference_insert): Likewise. (vn_reference_insert_pieces): Adjust signature. (visit_reference_op_call): Adjust. * tree-ssa-pre.c (get_expr_type): Simplify. (phi_translate_1): Adjust. (compute_avail): Likewise. (translate_vuse_through_block): Do not re-build trees. (value_dies_in_block_x): Likewise. * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set fields. (vn_reference_lookup_pieces): Adjust declaration. (vn_reference_insert_pieces): Likewise. * gcc.dg/tree-ssa/ssa-fre-26.c: New testcase. * gcc.c-torture/execute/20090527-1.c: Likewise. From-SVN: r147953 | |||||
2009-05-28 | tree-ssa-copy.c (replace_exp_1): Move op for warning-free use with checking ↵ | Benjamin Kosnik | 2 | -2/+6 | |
disabled. 2009-05-28 Benjamin Kosnik <bkoz@redhat.com> * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use with checking disabled. From-SVN: r147952 | |||||
2009-05-28 | Fix for PR c++/PR39754 | Dodji Seketeli | 16 | -22/+286 | |
gcc/cp/ChangeLog: PR c++/39754 * cp-tree.h (canonical_type_variant): Remove this function declaration. (strip_typedefs): New function declaration. * tree.c (strip_typedefs): New function definition. (canonical_type_variant): Remove function definition. * cvt.c (convert_from_reference): No need to use canonical_type_variant. * typeck.c (cp_build_indirect_ref): Likewise. * error.c (dump_template_bindings): Use strip_typedefs instead of canonical_type_variant. * pt.c (convert_template_argument, unify): Likewise. * mangle.c (canonicalize_for_substitution): Don't use canonical_type_variant. gcc/testsuite/ChangeLog: PR c++/39754 * g++.dg/template/canon-type-1.C: New test. * g++.dg/template/canon-type-2.C: Likewise. * g++.dg/template/canon-type-3.C: Likewise. * g++.dg/template/canon-type-4.C: Likewise. * g++.dg/template/canon-type-5.C: Likewise. * g++.dg/template/canon-type-6.C: Likewise. * g++.dg/template/canon-type-7.C: Likewise. From-SVN: r147951 |