aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2011-11-11i386-protos.h (ix86_maybe_emit_epilogue_vzeroupper): New prototype.Jakub Jelinek4-4/+23
* config/i386/i386-protos.h (ix86_maybe_emit_epilogue_vzeroupper): New prototype. * config/i386/i386.c (ix86_maybe_emit_epilogue_vzeroupper): New function. (ix86_expand_epilogue): Use it. * config/i386/i386.md (return, simple_return): Call it in the expanders. From-SVN: r181300
2011-11-11re PR tree-optimization/51091 (FAIL: gcc.dg/tree-ssa/stdarg-2.c ↵Jakub Jelinek2-2/+11
scan-tree-dump stdarg) PR tree-optimization/51091 * tree-stdarg.c (execute_optimize_stdarg): Ignore TREE_CLOBBER_P rhs also in the va_list_simple_ptr case. From-SVN: r181299
2011-11-11re PR tree-optimization/51058 (ICE: gimple check: expected ↵Jakub Jelinek6-4/+98
gimple_assign(error_mark), have gimple_call() in gimple_assign_rhs_code, at gimple.h:1992) PR tree-optimization/51058 * tree-vect-slp.c (vect_remove_slp_scalar_calls): New function. (vect_schedule_slp): Call it. * tree-vect-stmts.c (vectorizable_call): If slp_node != NULL, don't replace scalar calls with setting of their lhs to zero here. * gcc.dg/vect/fast-math-vect-call-1.c: Add f4 test. * gfortran.dg/vect/pr51058-2.f90: New test. From-SVN: r181298
2011-11-11re PR tree-optimization/51074 (No constant folding performed for ↵Jakub Jelinek4-1/+189
VEC_PERM_EXPR, VEC_INTERLEAVE*EXPR, VEC_EXTRACT*EXPR) PR tree-optimization/51074 * fold-const.c (vec_cst_ctor_to_array, fold_vec_perm): New functions. (fold_binary_loc): Handle VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR and VEC_INTERLEAVE_LOW_EXPR with VECTOR_CST or CONSTRUCTOR operands. (fold_ternary_loc): Handle VEC_PERM_EXPR with VECTOR_CST or CONSTRUCTOR operands. * tree-ssa-propagate.c (valid_gimple_rhs_p): Handle ternary expressions. * tree-vect-generic.c (lower_vec_perm): Mask sel_int elements to 0 .. 2 * elements - 1. From-SVN: r181297
2011-11-11Implement omp atomic load and store.Richard Henderson5-25/+160
* gimple-pretty-print.c (dump_gimple_omp_atomic_load): Dump needed. (dump_gimple_omp_atomic_store): Likewise. * optabs.c (can_atomic_exchange_p): New. * optabs.h (can_atomic_exchange_p): Declare. * omp-low.c (expand_omp_atomic_load): Implement. (expand_omp_atomic_store): Likewise. (expand_omp_atomic): Update for new arguments to load/store. From-SVN: r181296
2011-11-11re PR c++/50976 ([C++0x] literal operator with unsigned long long parameter ↵Ed Smith-Rowland2-23/+24
not accepted) PR c++/50976 * typeck.c (check_literal_operator_args): Reorganize test for string operators so size_t search depends on finding string first. From-SVN: r181292
2011-11-11Fix SPU libgcc buildRainer Orth2-1/+5
* config/spu/t-elf (LIB2ADD): Use LIB2FUNCS_EXCLUDE instead. From-SVN: r181291
2011-11-11PR 51090 Fix r181288 to conform to GNU styleJanne Blomqvist1-1/+1
From-SVN: r181290
2011-11-11cprop.c: Adjust outdated comments throughout.Eric Botcazou2-74/+100
* cprop.c: Adjust outdated comments throughout. (hash_scan_set): Rename PAT parameter into SET. (cprop_pavloc): Rename into... (cprop_avloc): ...this. (cprop_absaltered): Rename into... (cprop_kill): ...this. (alloc_cprop_mem): Adjust for above renaming. (free_cprop_mem): Likewise. (compute_cprop_data): Likewise. (compute_local_properties): Rename TRANSP parameter into KILL and adjust throughout. Rework comments. (try_replace_reg): Fix long line. (cprop_jump): Likewise. (constprop_register): Fix prototype and take INSN last. (cprop_insn): Adjust calls to above function. Fix long lines. (bypass_block): Likewise. (one_cprop_pass): Likewise. From-SVN: r181289
2011-11-11PR 51090 Check that getenv result != NULL before proceeding.Janne Blomqvist2-0/+7
2011-11-11 Janne Blomqvist <jb@gcc.gnu.org> PR libfortran/51090 * runtime/main.c (find_addr2line): NULL check before proceeding. From-SVN: r181288
2011-11-11elf.h (ELF_ASCII_ESCAPES): Rename from ESCAPES.Uros Bizjak2-4/+10
* config/alpha/elf.h (ELF_ASCII_ESCAPES): Rename from ESCAPES. (ELF_STRING_LIMIT): Rename from STRING_LIMIT. From-SVN: r181287
2011-11-11varasm.c (default_elf_asm_output_limited_string): #ifdef ELF_ASCII_ESCAPES.Jason Merrill2-0/+8
* varasm.c (default_elf_asm_output_limited_string): #ifdef ELF_ASCII_ESCAPES. (default_elf_asm_output_ascii): Likewise. From-SVN: r181286
2011-11-11re PR target/50762 (ICE: in extract_insn, at recog.c:2137 (unrecognizable insn))Uros Bizjak4-17/+27
PR target/50762 * config/i386/constraints.md (j): New address constraint. * config/i386/predicates.md (lea_address_operand): Redefine as special predicate. * config/i386/i386.md (*lea_3_zext): Use "j" constraint for operand 1. (*lea_4_zext): Ditto. From-SVN: r181285
2011-11-11MAINTAINERS (Selective Scheduling): Add myself as a reviewer.Andrey Belevantsev2-0/+5
2011-11-11 Andrey Belevantsev <abel@ispras.ru> * MAINTAINERS (Selective Scheduling): Add myself as a reviewer. From-SVN: r181284
2011-11-11Revert sparc vec_init improvements as they cause 64-bit regressions.David S. Miller3-394/+105
gcc/ Revert 2011-11-05 David S. Miller <davem@davemloft.net> From-SVN: r181283
2011-11-11opts-common.c (generate_canonical_option): Free opt_text it it has been ↵Jakub Jelinek2-0/+5
allocated here and not stored anywhere. * opts-common.c (generate_canonical_option): Free opt_text it it has been allocated here and not stored anywhere. From-SVN: r181282
2011-11-11tree-vect-slp.c (vect_free_slp_tree): Also free SLP_TREE_CHILDREN vector.Jakub Jelinek2-33/+50
* tree-vect-slp.c (vect_free_slp_tree): Also free SLP_TREE_CHILDREN vector. (vect_create_new_slp_node): Don't allocate node before checking stmt type. (vect_free_oprnd_info): Remove FREE_DEF_STMTS argument, always free def_stmts vectors and additionally free oprnd_info. (vect_build_slp_tree): Adjust callers. Call it even if stop_recursion. If vect_create_new_slp_node or vect_build_slp_tree fails, properly handle freeing memory. If it succeeded, clear def_stmts in oprnd_info. From-SVN: r181281
2011-11-10re PR c++/50372 ([C++0x] pointers to static functions should be valid ↵Jason Merrill7-12/+52
template parameters) PR c++/50372 * pt.c (convert_nontype_argument_function): Allow decls with internal linkage in C++11. (convert_nontype_argument): Likewise. From-SVN: r181280
2011-11-10final.c, output.h (fprint_whex, [...]): New functions serving as fast ↵Dimitrios Apostolou9-132/+353
replacements for fprintf() integer to string... * final.c, output.h (fprint_whex, fprint_w, fprint_ul, sprint_ul): New functions serving as fast replacements for fprintf() integer to string conversions. They were used in the following changes. * final.c (sprint_ul_rev): Internal helper for the above. (output_addr_const): case CONST_INT: don't use fprintf(). * elfos.h (ASM_GENERATE_INTERNAL_LABEL): Don't use sprintf("%u"), use sprint_ul() and stpcpy() which are much faster. (TARGET_ASM_INTERNAL_LABEL): Define as default_elf_internal_label. (ELF_ASCII_ESCAPES, ELF_STRING_LIMIT): Are the old ESCAPES and STRING_LIMIT macros. (ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII): Macros now just call respective functions that provide the same functionality. Those are default_elf_asm_output_limited_string() and default_elf_asm_output_ascii() in varasm.c. * varasm.c: Fixed some whitespace inconsistencies. (default_elf_asm_output_limited_string) (default_elf_asm_output_ascii): The above macros from elfos.h are implemented here as these functions, avoiding superfluous calls to fprintf(). (default_elf_internal_label): Hook for targetm.asm_out.internal_label and ASM_OUTPUT_DEBUG_LABEL. * i386.c: Don't call fprintf("%u") but fprint_ul() instead. * defaults.h (ASM_OUTPUT_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Expanded the macros on multiple lines for readability. (ASM_OUTPUT_LABELREF): Have two calls to fputs() instead of one to asm_fprintf(). * dwarf2asm.c (dw2_assemble_integer, dw2_asm_output_data) (dw2_asm_data_uleb128, dw2_asm_delta_uleb128) (dw2_asm_delta_sleb128): Convert fprintf() calls to the new faster functions. * dwarf2out.c (dwarf2out_source_line): Convert fprintf() calls to the new faster functions. From-SVN: r181279
2011-11-11Daily bump.GCC Administrator1-1/+1
From-SVN: r181278
2011-11-10extend.texi: Document __atomic_test_and_set and __atomic_clear.Andrew MacLeod2-0/+25
2011-11-10 Andrew MacLeod <amacleod@redhat.com> * doc/extend.texi: Document __atomic_test_and_set and __atomic_clear. From-SVN: r181273
2011-11-10re PR c++/50973 ([C++0x] internal compiler error defaulted destructor ↵Jason Merrill5-1/+52
virtual inheritance) PR c++/50973 * decl2.c (mark_used): Defer synthesis of virtual functions. * method.c (use_thunk): Make sure the target function has DECL_INTERFACE_KNOWN. From-SVN: r181272
2011-11-10re PR middle-end/51038 (29_atomics/atomic_flag/clear/1.cc ↵Andrew MacLeod8-52/+159
test_and_set/explicit.cc implicit.cc) PR middle-end/51038 libstdc++-v3 * include/bits/atomic_base.h (atomic_thread_fence): Call built-in. (atomic_signal_fence): Call built-in. (test_and_set, clear): Call new atomic built-ins. gcc * builtins.c (expand_builtin_atomic_clear): New. Expand atomic_clear. (expand_builtin_atomic_test_and_set): New. Expand atomic test_and_set. (expand_builtin): Add cases for test_and_set and clear. * sync-builtins.def (BUILT_IN_ATOMIC_TEST_AND_SET): New. (BUILT_IN_ATOMIC_CLEAR): New. testsuite * gcc.dg/atomic-invalid.c: Add test for invalid __atomic_clear models. * gcc.dg/atomic-flag.c: New. Test __atomic_test_and_set and __atomic_clear. From-SVN: r181271
2011-11-10PR c++/51079, DR 495Jason Merrill4-15/+50
PR c++/51079, DR 495 * call.c (joust): Check the second conversion sequence before checking templates. From-SVN: r181270
2011-11-10re PR debug/50983 (incorrect DW_LNS_negate_stmt)Jason Merrill4-0/+35
PR debug/50983 * dwarf2out.c (set_cur_line_info_table): Restore the last is_stmt value in the current line table. From-SVN: r181269
2011-11-10fe.h (Serious_Errors_Detected): New macro.Eric Botcazou16-25/+671
* fe.h (Serious_Errors_Detected): New macro. * gcc-interface/gigi.h (build_atomic_load): Declare. (build_atomic_store): Likewise. * gcc-interface/trans.c (atomic_sync_required_p): New predicate. (call_to_gnu): Add ATOMIC_SYNC parameter. Use local variable. Build an atomic load for an In or In Out parameter if needed. Build an atomic store for the assignment of an Out parameter if needed. Build an atomic store to the target if ATOMIC_SYNC is true. (present_in_lhs_or_actual_p): New predicate. (gnat_to_gnu) <N_Identifier>: Build an atomic load if needed. <N_Explicit_Dereference>: Likewise. <N_Indexed_Component>: Likewise. <N_Selected_Component>: Likewise. <N_Assignment_Statement>: Adjust call to call_to_gnu. Build an atomic store to the LHS if needed. <N_Function_Call>: Adjust call to call_to_gnu. * gcc-interface/utils2.c: Include toplev.h. (resolve_atomic_size): New static function. (build_atomic_load): New function. (build_atomic_store): Likewise. * gcc-interface/Make-lang.in (ada/utils2.o): Add toplev.h. From-SVN: r181267
2011-11-10configure.ac (GCC_AS_CFI_PSEUDO_OP): Use it instead of inline check.Richard Henderson4-19/+16
* configure.ac (GCC_AS_CFI_PSEUDO_OP): Use it instead of inline check. * configure, aclocal.m4: Rebuild. From-SVN: r181266
2011-11-10gcov.c (struct function_info): Make src an index, not a pointer.Nathan Sidwell2-164/+169
* gcov.c (struct function_info): Make src an index, not a pointer. (struct source_info): Remove index and next source fields. (fn_end): New static var. (sources_index): Remove. (sources): Now a pointer to an array, not a list. (n_sources, a_sources): New. (process_file): Adjust for changes to read_graph_file. Insert functions into source lists and check line numbers here. (generate_results): Only allocate lines for sources with contents. Adjust for source array. (release_structures): Likewise. (find_source): Return source index, adjust for source array. (read_graph_file): Return function list. Don't insert into source lists here. (read_count_file): Take list of functions. (solve_flow_graph): Reverse the arc lists here. (add_line_counts): Adjust for source array. From-SVN: r181265
2011-11-10re PR middle-end/51077 (Endless recursion with __builtin_object_size)Jakub Jelinek4-1/+25
PR middle-end/51077 * tree-object-size.c (addr_object_size): Check TREE_CODE of MEM_REF's operand rather than code of the MEM_REF itself. * gcc.c-torture/compile/pr51077.c: New test. From-SVN: r181263
2011-11-10libitm port to Tru64 UNIXRainer Orth8-0/+33
* config/alpha/sjlj.S (_ITM_beginTransaction) [!__ELF__]: Don't use .hidden. (.note.GNU-stack): Only use if __linux__. * alloc_cpp.cc [!__osf__] (_ZnaXRKSt9nothrow_t): Dummy function. * testsuite/libitm.c/notx.c: Use dg-options "-pthread". * testsuite/libitm.c/reentrant.c: Likewise. * testsuite/libitm.c/simple-2.c: Likewise. * testsuite/libitm.c/txrelease.c: Likewise. * testsuite/libitm.c++/static_ctor.C: Likewise. From-SVN: r181262
2011-11-10libitm: Don't add -mavx if the assembler doesn't support avx.Richard Henderson6-15/+35
* config/x86/x86_avx.cc: Remove #undef __AVX__ hack. Tidy comments. * Makefile.am (x86_avx.lo): Only add -mavx if ARCH_X86_AVX. * configure.ac (ARCH_X86_AVX): New conditional. * Makefile.in, configure: Rebuild. From-SVN: r181261
2011-11-10Let the compiler decide whether to inline.Janne Blomqvist10-37/+38
2011-11-10 Janne Blomqvist <jb@gcc.gnu.org> * intrinsics/cpu_time.c (__cpu_time_1): Don't force inlining. * intrinsics/random.c (rnumber_4): Remove inline attribute. (rnumber_8, rnumber_10, rnumber_16): Likewise. * intrinsics/system_clock.c (gf_gettime_mono): Likewise. * intrinsics/time_1.h (ATTRIBUTE_ALWAYS_INLINE): Remove macro. (gf_cputime): Add inline attribute for MingW version. * io/format.c (format_hash): Remove inline attribute. * io/io.h (memset4): Inline function from transfer.c and write.c moved here. * io/transfer.c (min_off): Remove inline attribute. (memset4): Move to io.h. * io/write.c (memset4): Likewise. (memcpy4): Remove inline attribute. * io/write_float.def (calculate_exp): Likewise. From-SVN: r181260
2011-11-10re PR rtl-optimization/51040 (ICE: RTL check: access of elt 1 of 'not' with ↵Andrew MacLeod5-5/+51
last elt 0 in gen_rtx_fmt_ee_stat, at ./genrtl.h:33 with __atomic_nand_fetch()) PR rtl-optimization/51040 * optabs.c (expand_atomic_fetch_op): Patchup code for NAND should be AND followed by NOT. * builtins.c (expand_builtin_atomic_fetch_op): Patchup code for NAND should be AND followed by NOT. * testsuite/gcc.dg/atomic-noinline[-aux].c: Test no-inline NAND and patchup code. From-SVN: r181259
2011-11-10vec.h (VEC_BASE): If base is at offset 0 in the structure, use &(P)->base ↵Jakub Jelinek2-0/+8
even if P is NULL. * vec.h (VEC_BASE): If base is at offset 0 in the structure, use &(P)->base even if P is NULL. From-SVN: r181258
2011-11-10re PR rtl-optimization/51023 (likely integer wrong code bug)Jakub Jelinek4-4/+40
PR rtl-optimization/51023 * combine.c (simplify_comparison) <case SIGN_EXTEND>: Don't use val_signbit_known_clear_p for signed comparison narrowing optimization. Don't check for non-VOIDmode, use HWI_COMPUTABLE_MODE_P macro. <case ZERO_EXTEND>: Don't check for non-VOIDmode. Optimize even when const_op is equal to GET_MODE_MASK (mode), don't optimize if const_op is negative. * gcc.c-torture/execute/pr51023.c: New test. From-SVN: r181257
2011-11-10re PR tree-optimization/51042 (endless recursion in phi_translate)Richard Guenther4-65/+81
2011-11-10 Richard Guenther <rguenther@suse.de> PR tree-optimization/51042 * tree-ssa-pre.c (phi_translate_1): Avoid recursing on self-referential expressions. Refactor code to avoid duplication. * gcc.dg/torture/pr51042.c: New testcase. From-SVN: r181256
2011-11-10re PR tree-optimization/51070 (ICE verify_gimple failed)Richard Guenther4-47/+103
2011-11-10 Richard Guenther <rguenther@suse.de> PR tree-optimization/51070 * tree-loop-distribution.c (generate_builtin): Do not replace the loop with a builtin if the partition contains statements which results are used outside of the loop. (pass_loop_distribution): Verify and collect. * gcc.dg/torture/pr51070.c: New testcase. From-SVN: r181255
2011-11-10re PR tree-optimization/51030 (PHI opt does not handle value-replacement ↵Richard Guenther4-2/+84
with a transfer function) 2011-11-10 Richard Guenther <rguenther@suse.de> PR tree-optimization/51030 * tree-ssa-phiopt.c (jump_function_from_stmt): New function. (value_replacement): Use it to handle trivial non-empty intermediate blocks. * gcc.dg/tree-ssa/phi-opt-6.c: New testcase. From-SVN: r181254
2011-11-10re PR middle-end/51071 (ICE in gimple_has_side_effects, at gimple.c:2513)Richard Guenther4-38/+48
2011-11-10 Richard Guenther <rguenther@suse.de> PR middle-end/51071 * gimple.c (gimple_has_side_effects): Remove checking code that doesn't belong here. * gcc.dg/torture/pr51071.c: New testcase. From-SVN: r181253
2011-11-10* gnat.dg/loop_optimization9.ad[sb]: New test.Eric Botcazou3-0/+146
From-SVN: r181252
2011-11-10re PR tree-optimization/51058 (ICE: gimple check: expected ↵Ira Rosen4-14/+53
gimple_assign(error_mark), have gimple_call() in gimple_assign_rhs_code, at gimple.h:1992) PR tree-optimization/51058 * tree-vect-slp.c (vect_get_constant_vectors): Handle CALL_EXPR. From-SVN: r181251
2011-11-10re PR tree-optimization/51000 (ICE: in vect_get_store_cost, at ↵Jakub Jelinek6-19/+68
tree-vect-stmts.c:923 on powerpc-apple-darwin9) PR tree-optimization/51000 * tree-vect-patterns.c (vect_recog_bool_pattern): If adding a pattern stmt for a bool store, adjust DR_STMT too. Don't handle bool conversions to single bit precision lhs. * tree-vect-stmts.c (vect_remove_stores): If next is a pattern stmt, remove its related stmt and free its stmt_vinfo. (free_stmt_vec_info): Free also pattern stmt's vinfo and pattern def stmt's vinfo. * tree-vect-loop.c (destroy_loop_vec_info): Don't try to free pattern stmt's vinfo here. (vect_transform_loop): When calling vect_remove_stores, do gsi_next first and don't call gsi_remove. If not strided store, free stmt vinfo for gsi_stmt (si) rather than stmt. * gcc.dg/vect/pr51000.c: New test. From-SVN: r181250
2011-11-10re PR c++/50837 ([c++0x] static_assert and constexpr in template class)Paolo Carlini5-3/+37
/cp 2011-11-09 Paolo Carlini <paolo.carlini@oracle.com> PR c++/50837 * pt.c (tsubst_copy_and_build) [IDENTIFIER_NODE]: In C++11 mode pass allow_non_integral_constant_expression_p = true to finish_id_expression. /testsuite 2011-11-09 Paolo Carlini <paolo.carlini@oracle.com> PR c++/50837 * g++.dg/cpp0x/static_assert5.C: New. * g++.dg/template/nontype13.C: Tweak. From-SVN: r181248
2011-11-09libitm: Work around assembler missing AVX insns.Richard Henderson6-0/+121
From-SVN: r181246
2011-11-10Daily bump.GCC Administrator1-1/+1
From-SVN: r181245
2011-11-09libitm: Remove unused code.Richard Henderson22-2668/+40
In particular, unused code that's presenting portability problems. From-SVN: r181241
2011-11-09re PR c++/50972 ([C++0x] ICE on undeclared identifier)Jason Merrill4-11/+153
PR c++/50972 * pt.c (maybe_instantiate_noexcept): Check the return value of push_tinst_level. From-SVN: r181240
2011-11-09re PR c++/51046 ([C++0x] ICE by unexpanded template param pack in ↵Jason Merrill4-0/+23
range-based for) PR c++/51046 * parser.c (cp_parser_range_for): check_for_bare_parameter_packs. From-SVN: r181239
2011-11-09re PR target/50911 (assertion failure in expand_vec_perm_interleave2 with -msse)Jakub Jelinek7-4/+28
PR target/50911 * config/i386/i386.c (expand_vec_perm_interleave2): If d->vmode is V4SImode, !TARGET_SSE2 and punpck[lh]* is needed, change dremap.vmode to V4SFmode. * gcc.dg/torture/vshuf-16.inc: Add interleave low and high permutations. * gcc.dg/torture/vshuf-32.inc: Likewise. * gcc.dg/torture/vshuf-4.inc: Likewise. * gcc.dg/torture/vshuf-8.inc: Likewise. From-SVN: r181238
2011-11-09* gcc.dg/tm/memopt-1.c: Fix up regexp.Jakub Jelinek2-1/+5
From-SVN: r181237