aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2011-07-30re PR fortran/48876 (ICE when initializing character variable with ↵Thomas Koenig4-0/+21
zero-length string) 2011-07-30 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/48876 * expr.c (gfc_simplify_expr): If end of a string is less than zero, set it to zero. 2011-07-30 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/48876 * gfortran.dg/string_5.f90: New test. From-SVN: r176961
2011-07-30re PR middle-end/43513 (The stack pointer is adjusted twice)Tom de Vries2-0/+9
2011-07-30 Tom de Vries <tom@codesourcery.com> PR middle-end/43513 * tree-ssa-dce.c (ref_may_be_aliased): Add assert. (propagate_necessity): Handle WITH_SIZE_EXPR call arg. From-SVN: r176959
2011-07-30re PR c++/49867 ([C++0x] ICE on lambda inside switch with case labels in the ↵Jason Merrill4-0/+54
lambda) PR c++/49867 * parser.c (cp_parser_lambda_expression): Also clear in_statement and in_switch_statement_p. (cp_parser_class_specifier): Likewise. From-SVN: r176958
2011-07-30Daily bump.GCC Administrator1-1/+1
From-SVN: r176956
2011-07-29driver-native.c [__sgi__]: Include <invent.h>, <sys/sbd.h>.Rainer Orth4-4/+93
* config/mips/driver-native.c [__sgi__]: Include <invent.h>, <sys/sbd.h>. (cpu_types): New array. (cputype): New function. (host_detect_local_cpu): Only define buf, f if !__sgi__. Use scaninvent instead of /proc/cpuinfo if __sgi__. * config.host: Also use driver-native.o, mips/x-native on mips-sgi-irix*. * config/mips/iris6.h [__mips__] (host_detect_local_cpu): Declare. (EXTRA_SPEC_FUNCTIONS, MARCH_MTUNE_NATIVE_SPECS): Define. (DRIVER_SELF_SPECS): Add MARCH_MTUNE_NATIVE_SPECS. From-SVN: r176947
2011-07-29re PR middle-end/49897 (nesting lastprivate gives incorrect result)Jakub Jelinek2-2/+12
PR middle-end/49897 PR middle-end/49898 * omp-low.c (use_pointer_for_field): If disallowing copy-in/out in nested parallel and outer is a gimple_reg, mark it as addressable and set its bit in task_shared_vars bitmap too. * testsuite/libgomp.c/pr49897-1.c: New test. * testsuite/libgomp.c/pr49897-2.c: New test. * testsuite/libgomp.c/pr49898-1.c: New test. * testsuite/libgomp.c/pr49898-2.c: New test. From-SVN: r176945
2011-07-29predicates.md (tp_or_register_operand): Remove predicate.Uros Bizjak2-5/+4
* config/i386/predicates.md (tp_or_register_operand): Remove predicate. From-SVN: r176930
2011-07-29driver-alpha.c (IMPLVER_EV4_FAMILY, [...]): Define.Rainer Orth4-43/+75
* config/alpha/driver-alpha.c (IMPLVER_EV4_FAMILY, IMPLVER_EV5_FAMILY, IMPLVER_EV6_FAMILY, IMPLVER_EV7_FAMILY): Define. (AMASK_BWX, AMASK_FIX, AMASK_CIX, AMASK_MVI, AMASK_PRECISE, AMASK_LOCKPFTCHOK): Define. (host_detect_local_cpu): Remove buf, f, cpu_names. Define cpu_types, implver, amask. Use __builtin_alpha_implver, __builtin_alpha_amask to determine native CPU. * config.host: Also use driver-alpha.o, alpha/x-alpha on alpha*-dec-osf*. * config/alpha/osf5.h [__alpha__ || __alpha] (host_detect_local_cpu): Declare. (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS) (DRIVER_SELF_SPECS): Define. From-SVN: r176926
2011-07-29* function.c: Remove unwanted commit.Uros Bizjak1-10/+0
From-SVN: r176925
2011-07-29re PR target/47715 ([x32] TLS doesn't work)Uros Bizjak4-12/+81
PR target/47715 * config/i386/i386.md (*load_tp_x32): New. (*load_tp_x32_zext): Ditto. (*add_tp_x32): Ditto. (*add_tp_x32_zext): Ditto. (*load_tp_<mode>): Disable for TARGET_X32 targets. (*add_tp_<mode>): Ditto. * config/i386/i386.c (get_thread_pointer): Load thread pointer in ptr_mode and convert to Pmode if needed. From-SVN: r176924
2011-07-29re PR target/49687 ([avr] Missed optimization for widening MUL)Georg-Johann Lay2-0/+17
PR target/49687 * config/avr/avr.md (mulsi3, *mulsi3, mulu<mode>si3, muls<mode>si3, mulohisi3, mulhisi3, umulhisi3, usmulhisi3, *<any_extend:extend_prefix><any_extend2:extend_prefix>mul<QIHI:mode><QIHI2:mode>si3): Add X to register footprint: Clobber r26/r27. From-SVN: r176923
2011-07-29builtins.c (fold_builtin_signbit): Build the comparison with a proper type.Richard Guenther2-2/+8
2011-07-29 Richard Guenther <rguenther@suse.de> * builtins.c (fold_builtin_signbit): Build the comparison with a proper type. From-SVN: r176922
2011-07-29re PR middle-end/49893 (-O3 generates wrong code for volatile)Richard Guenther2-0/+7
2011-07-29 Richard Guenther <rguenther@suse.de> PR tree-optimization/49893 * tree-predcom.c (suitable_reference_p): Volatile references are not suitable. From-SVN: r176921
2011-07-29re PR target/49313 (Inefficient libgcc implementations for avr)Georg-Johann Lay3-19/+355
PR target/49313 * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction. (__ctzsi2): Result for 0 may be undefined. (__ctzhi2): Result for 0 may be undefined. (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail. (__popcountsi2): Ditto. And don't clobber r26. (__popcountdi2): Ditto. And don't clobber r27. * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum. (parityhi2): New expand. (paritysi2): New expand. (popcounthi2): New expand. (popcountsi2): New expand. (clzhi2): New expand. (clzsi2): New expand. (ctzhi2): New expand. (ctzsi2): New expand. (ffshi2): New expand. (ffssi2): New expand. (copysignsf3): New insn. (bswapsi2): New expand. (*parityhi2.libgcc): New insn. (*parityqihi2.libgcc): New insn. (*paritysihi2.libgcc): New insn. (*popcounthi2.libgcc): New insn. (*popcountsi2.libgcc): New insn. (*popcountqi2.libgcc): New insn. (*popcountqihi2.libgcc): New insn-and-split. (*clzhi2.libgcc): New insn. (*clzsihi2.libgcc): New insn. (*ctzhi2.libgcc): New insn. (*ctzsihi2.libgcc): New insn. (*ffshi2.libgcc): New insn. (*ffssihi2.libgcc): New insn. (*bswapsi2.libgcc): New insn. From-SVN: r176920
2011-07-29re PR tree-optimization/47407 (gcc.dg/tree-ssa/pr42585.c FAILs on Tru64 UNIX ↵Rainer Orth2-2/+9
V5.1B) PR tree-optimization/47407 * gcc.dg/tree-ssa/pr42585.c: XFAIL scan-tree-dump-times on alpha*-dec-osf*. Sort target list. From-SVN: r176919
2011-07-29tree-vrp.c (get_value_range): Only set parameter default definitions to ↵Richard Guenther5-9/+32
varying, leave others at undefined. 2011-07-29 Richard Guenther <rguenther@suse.de> * tree-vrp.c (get_value_range): Only set parameter default definitions to varying, leave others at undefined. (extract_range_from_binary_expr): Fix undefined handling. (vrp_visit_phi_node): Handle merged undefined state. * gcc.dg/uninit-suppress.c: Also disable VRP. * gcc.dg/uninit-suppress_2.c: Likewise. From-SVN: r176918
2011-07-29re PR c++/49808 (GCC adds an address-of somewhere!)Jason Merrill4-21/+56
PR c++/49808 * pt.c (tsubst) [TEMPLATE_PARM_INDEX]: Call convert_from_reference. (convert_nontype_argument, tsubst_template_arg): Handle its output. From-SVN: r176916
2011-07-28Add a testcase for PR rtl-optimization/47958.H.J. Lu2-0/+18
2011-07-28 H.J. Lu <hongjiu.lu@intel.com> PR rtl-optimization/47958 * gcc.dg/torture/pr47958-1.c: New. From-SVN: r176914
2011-07-29re PR rtl-optimization/49799 (gcc arm generates illegal sbfx instruction)Wei Guozhi4-0/+37
PR rtl-optimization/49799 * combine.c (make_compound_operation): Check if the bit field is valid before change it to bit field extraction. * gcc.dg/pr49799.c: New test case. From-SVN: r176911
2011-07-29Daily bump.GCC Administrator1-1/+1
From-SVN: r176910
2011-07-28re PR rtl-optimization/49891 (ICE in redirect_jump_1)Bernd Schmidt2-0/+7
PR rtl-optimization/49891 * cfgrtl.c (force_nonfallthru_and_redirect): Set JUMP_LABEL for newly created returnjumps. From-SVN: r176905
2011-07-28expr.c (expand_expr_addr_expr_1): Detect a user request for a local frame in ↵DJ Delorie2-1/+14
a naked function... * expr.c (expand_expr_addr_expr_1): Detect a user request for a local frame in a naked function, and produce a suitable error for that specific case. From-SVN: r176904
2011-07-28m32c.c (m32c_secondary_reload_class): Allow PSI registers to be reloaded in ↵DJ Delorie2-1/+6
HI classes when the target is HI. * config/m32c/m32c.c (m32c_secondary_reload_class): Allow PSI registers to be reloaded in HI classes when the target is HI. From-SVN: r176903
2011-07-28Replace v1, v2, lb, ub with bound_one, bound_twoSebastian Pop2-99/+116
2011-07-28 Sebastian Pop <sebastian.pop@amd.com> * graphite-clast-to-gimple.c: Replace v1, v2, lb, ub with bound_one, bound_two. From-SVN: r176902
2011-07-28Fix PR48648: Handle CLAST assignments.Sebastian Pop4-0/+79
The CLAST produced by CLooG-ISL contains an assignment and GCC chokes on it. The exact CLAST contains an assignment followed by an if: scat_1 = max(0,ceild(T_4-7,8)); if (scat_1 <= min(1,floord(T_4-1,8))) { S7(scat_1); } This is equivalent to a loop that iterates only once, and so CLooG generates an assignment followed by an if instead of a loop. This is an important optimization that was improved in ISL, that allows if-conversion: imagine GCC having to figure out that a loop like the following actually iterates only once, and can be converted to an if: for (scat_1 = max(0,ceild(T_4-7,8)); scat_1 <= min(1,floord(T_4-1,8)); scat_1++) S7(scat_1); This patch implements the translation of CLAST assignments. Bootstrapped and tested on amd64-linux. 2011-07-28 Sebastian Pop <sebastian.pop@amd.com> PR middle-end/48648 * graphite-clast-to-gimple.c (clast_get_body_of_loop): Handle CLAST assignments. (translate_clast): Same. (translate_clast_assignment): New. * gcc.dg/graphite/id-pr48648.c: New. From-SVN: r176901
2011-07-28Fix PR49876: Continue code generation with integer_zero_node on gloog_errorSebastian Pop2-10/+15
When setting gloog_error, graphite should continue code generation without early returns, as otherwise the SSA representation would not be complete. So set the new expression to integer_zero_node, that would not require more SSA updates, and continue code generation as nothing happened. Regstrapped on amd64-linux. 2011-07-28 Sebastian Pop <sebastian.pop@amd.com> PR tree-optimization/49876 * sese.c (rename_uses): Do not return false on gloog_error: set the new_expr to integer_zero_node and continue code generation. (graphite_copy_stmts_from_block): Remove early exit on gloog_error. From-SVN: r176900
2011-07-28re PR c++/49813 ([C++0x] sinh vs asinh vs constexpr)Paolo Carlini2-0/+12
2011-07-28 Paolo Carlini <paolo.carlini@oracle.com> PR c++/49813 * semantics.c (potential_constant_expression_1): Handle FMA_EXPR. Checking this in for Paolo. From-SVN: r176899
2011-07-28re PR fortran/31067 (MINLOC should sometimes be inlined (gas_dyn is sooooo ↵Jakub Jelinek9-1/+741
sloooow)) PR fortran/31067 * frontend-passes.c (optimize_minmaxloc): New function. (optimize_expr): Call it. * gfortran.dg/maxloc_2.f90: New test. * gfortran.dg/maxloc_3.f90: New test. * gfortran.dg/minloc_1.f90: New test. * gfortran.dg/minloc_2.f90: New test. * gfortran.dg/minloc_3.f90: New test. * gfortran.dg/minmaxloc_7.f90: New test. From-SVN: r176897
2011-07-28re PR debug/49846 (entryval: missing DW_TAG_GNU_call_site_parameter for ↵Jakub Jelinek2-0/+23
stack-passed `double' parameter) PR debug/49846 * var-tracking.c (prepare_call_arguments): For non-MODE_INT stack arguments also check if they aren't initialized with a MODE_INT mode of the same size. From-SVN: r176892
2011-07-28expr.c (get_bit_range): Handle *MEM_REF's.Aldy Hernandez2-1/+8
* expr.c (get_bit_range): Handle *MEM_REF's. From-SVN: r176891
2011-07-28rtlanal.c (tablejump_p): False for returns.Bernd Schmidt17-165/+227
* rtlanal.c (tablejump_p): False for returns. * reorg.c (first_active_target_insn): New static function. (find_end_label): Set JUMP_LABEL for a new returnjump. (optimize_skip, get_jump_flags, rare_destination, mostly_true_jump, get_branch_condition, steal_delay_list_from_target, own_thread_p, fill_simple_delay_slots, follow_jumps, fill_slots_from_thread, fill_eager_delay_slots, relax_delay_slots, make_return_insns, dbr_schedule): Adjust to handle ret_rtx in JUMP_LABELs. * jump.c (delete_related_insns): Likewise. (jump_to_label_p): New function. (redirect_target): New static function. (redirect_exp_1): Use it. Adjust to handle ret_rtx in JUMP_LABELS. (redirect_jump_1): Assert that the new label is nonnull. (redirect_jump): Likewise. (redirect_jump_2): Check for ANY_RETURN_P rather than NULL labels. * ifcvt.c (find_if_case_1): Take care when redirecting jumps to the exit block. (dead_or_predicable): Change NEW_DEST arg to DEST_EDGE. All callers changed. Ensure that the right label is passed to redirect_jump. * function.c (emit_return_into_block, thread_prologue_and_epilogue_insns): Ensure new returnjumps have ret_rtx in their JUMP_LABEL. * print-rtl.c (print_rtx): Handle ret_rtx in a JUMP_LABEL. * emit-rtl.c (skip_consecutive_labels): Allow the caller to pass ret_rtx as label. * cfglayout.c (fixup_reorder_chain): Use force_nonfallthru_and_redirect rather than force_nonfallthru. (duplicate_insn_chain): Copy JUMP_LABELs for returns. * rtl.h (ANY_RETURN_P): New macro. (jump_to_label_p): Declare. * resource.c (find_dead_or_set_registers): Handle ret_rtx in JUMP_LABELs. (mark_target_live_regs): Likewise. * basic-block.h (force_nonfallthru_and_redirect): Declare. * cfgrtl.c (force_nonfallthru_and_redirect): No longer static. * config/alpha/alpha.c (alpha_tablejump_addr_vec, alpha_tablejump_best_label): Remove functions. * config/alpha/alpha-protos.c (alpha_tablejump_addr_vec, alpha_tablejump_best_label): Remove declarations. * config/sh/sh.c (barrier_align, split_branches): Adjust for ret_rtx in JUMP_LABELs. * config/arm/arm.c (is_jump_table): Likewise. From-SVN: r176881
2011-07-28predicates.md (pic_32bit_opreand): Do not define as special predicate.Uros Bizjak2-11/+13
* config/i386/predicates.md (pic_32bit_opreand): Do not define as special predicate. Remove explicit mode checks. From-SVN: r176879
2011-07-28dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize ↵Jakub Jelinek2-7/+24
DW_AT_data_member_location containing just... * dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize DW_AT_data_member_location containing just DW_OP_plus_uconst. From-SVN: r176878
2011-07-28re PR debug/49871 (-gdwarf-3 creates invalid DWARF3 with ↵Jakub Jelinek4-3/+50
DW_AT_data_member_location attribute) PR debug/49871 * dwarf2out.c (size_of_die, value_format, output_die): Use DW_FORM_udata instead of DW_FORM_data[48] for dw_val_class_unsigned_const DW_AT_data_member_location for DWARF 3. * gcc.dg/debug/dwarf2/pr49871.c: New test. From-SVN: r176876
2011-07-28* ChangeLog: Remove mess.Uros Bizjak1-37/+2
From-SVN: r176874
2011-07-28Update length attribute on *tls_global_dynamic_64.H.J. Lu2-1/+7
2011-07-28 H.J. Lu <hongjiu.lu@intel.com> * config/i386/i386.md (*tls_global_dynamic_64): Update length attribute. From-SVN: r176873
2011-07-28re PR target/47715 ([x32] TLS doesn't work)Uros Bizjak2-15/+26
PR target/47715 * config/i386/i386.md (*tls_global_dynamic_64): Remove mode from tls_symbolic_operand check. Update code sequence for TARGET_X32. (tls_global_dynamic_64): Remove mode from tls_symbolic_operand check. (tls_dynamic_gnu2_64): Ditto. (*tls_dynamic_gnu2_lea_64): Ditto. (*tls_dynamic_gnu2_call_64): Ditto. (*tls_dynamic_gnu2_combine_64): Ditto. From-SVN: r176872
2011-07-28Set need_64bit_hwint to yes for x86 targets.H.J. Lu2-4/+5
gcc/ 2011-07-28 H.J. Lu <hongjiu.lu@intel.com> * config.gcc: Set need_64bit_hwint to yes for x86 targets. libcpp/ 2011-07-28 H.J. Lu <hongjiu.lu@intel.com> * configure.ac: Set need_64bit_hwint to yes for x86 targets. * configure: Regenerated. From-SVN: r176871
2011-07-28init.c (__gnat_error_handler): Cast reason to int.Rainer Orth2-2/+15
* init.c (__gnat_error_handler): Cast reason to int. (__gnat_install_handler): Explain sa_sigaction use. From-SVN: r176870
2011-07-28Only expand strlen to Pmode.H.J. Lu2-5/+10
2011-07-28 H.J. Lu <hongjiu.lu@intel.com> PR target/47364 * config/i386/i386.md (strlen<mode>): Replace SWI48x with P. From-SVN: r176868
2011-07-28vfp.md ("*movdf_vfp"): Handle the VFP constraints before the core constraints.Ramana Radhakrishnan2-14/+20
2011-07-28 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> * config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints before the core constraints. Adjust attributes. (*thumb2_movdf_vfp"): Likewise. From-SVN: r176867
2011-07-28tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case.Kai Tietz2-50/+42
2011-07-28 Kai Tietz <ktietz@redhat.com> * tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case. (simplify_truth_ops_using_ranges): Likewise. (build_assert_expr_for): Likewise. (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case and handle BIT_NOT_EXPR for truth-operation. From-SVN: r176866
2011-07-28re PR target/49313 (Inefficient libgcc implementations for avr)Georg-Johann Lay3-298/+25
PR target/49313 Undo r176835 from trunk 2011-07-27 Georg-Johann Lay From-SVN: r176865
2011-07-28re PR target/49687 ([avr] Missed optimization for widening MUL)Georg-Johann Lay6-242/+637
PR target/49687 * config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit. Add _muluhisi3, _mulshisi3, _usmulhisi3. * config/avr/libgcc.S (__mulsi3): Rewrite. (__mulhisi3): Rewrite. (__umulhisi3): Rewrite. (__usmulhisi3): New. (__muluhisi3): New. (__mulshisi3): New. (__mulohisi3): New. (__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to declare. * config/avr/predicates.md (pseudo_register_operand): Rewrite. (pseudo_register_or_const_int_operand): New. (combine_pseudo_register_operand): New. (u16_operand): New. (s16_operand): New. (o16_operand): New. * config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI. * config/avr/avr.md (QIHI, QIHI2): New mode iterators. (any_extend, any_extend2): New code iterators. (extend_prefix): New code attribute. (mulsi3): Rewrite. Turn insn to expander. (mulhisi3): Ditto. (umulhisi3): Ditto. (usmulhisi3): New expander. (*mulsi3): New insn-and-split. (mulu<mode>si3): New insn-and-split. (muls<mode>si3): New insn-and-split. (mulohisi3): New insn-and-split. (*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3, *usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3, *sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3, *ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New insn-and-split. (*mulsi3_call): Rewrite. (*mulhisi3_call): Rewrite. (*umulhisi3_call): Rewrite. (*usmulhisi3_call): New insn. (*muluhisi3_call): New insn. (*mulshisi3_call): New insn. (*mulohisi3_call): New insn. (extendqihi2): Use combine_pseudo_register_operand as predicate for operand 1. (extendqisi2): Ditto. (zero_extendqihi2): Ditto. (zero_extendqisi2): Ditto. (zero_extendhisi2): Ditto. (extendhisi2): Ditto. Don't early-clobber operand 0. From-SVN: r176862
2011-07-28i386.c (add->lea splitter): Add SWI mode to PLUS RTX.Uros Bizjak2-2/+6
* config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX. From-SVN: r176860
2011-07-28i386.exp (check_effective_target_bmi): Make sure the builtin isn't optimized ↵Jakub Jelinek2-2/+7
away. * gcc.target/i386/i386.exp (check_effective_target_bmi): Make sure the builtin isn't optimized away. From-SVN: r176859
2011-07-28Daily bump.GCC Administrator1-1/+1
From-SVN: r176856
2011-07-28re PR fortran/45586 (ICE non-trivial conversion at assignment)Tobias Burnus4-0/+48
2011-07-27 Tobias Burnus <burnus@net-b.de> PR fortran/45586 * trans-types.c (gfc_get_derived_type): Ensure that pointer component types are marked as nonrestricted. 2011-07-27 Tobias Burnus <burnus@net-b.de> PR fortran/45586 * gfortran.dg/lto/pr45586-2_0.f90: New. From-SVN: r176852
2011-07-27re PR middle-end/49875 (FAIL: c-c++-common/cxxbitfields-4.c)Aldy Hernandez3-2/+9
PR middle-end/49875 * c-c++-common/cxxbitfields-4.c: Check for smaller than long moves. * c-c++-common/cxxbitfields-5.c: Same. From-SVN: r176848
2011-07-27target-supports.exp (check_effective_target_mmap): Use check_function_available.Ulrich Weigand2-3/+6
* lib/target-supports.exp (check_effective_target_mmap): Use check_function_available. From-SVN: r176846