aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
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-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-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-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 MacLeod6-2/+138
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-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-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-10Daily bump.GCC Administrator1-1/+1
From-SVN: r181245
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
2011-11-09function.h (requires_stack_frame_p): New prototype.Jakub Jelinek4-5/+74
* function.h (requires_stack_frame_p): New prototype. * function.c (requires_stack_frame_p): No longer static. * config/i386/i386.c (ix86_finalize_stack_realign_flags): If stack_realign_fp was just a conservative guess for a function which doesn't use sp/fp/argp at all, clear frame_pointer_needed and stack realignment. From-SVN: r181236
2011-11-09generic-morestack.c: Include <string.h>.Ian Lance Taylor3-0/+185
libgcc/: * generic-morestack.c: Include <string.h>. (uintptr_type): Define. (struct initial_sp): Add dont_block_signals field. Reduce size of extra array by 1. (allocate_segment): Set prev field to NULL. Don't set __morestack_current_segment or __morestack_segments. (__generic_morestack): Update current->prev and *pp after calling allocate_segment. (__morestack_block_signals): Don't do anything if dont_block_signals is set. (__morestack_unblock_signals): Likewise. (__generic_findstack): Check for initial_sp == NULL. Add casts to uintptr_type. (__splitstack_block_signals): New function. (enum __splitstack_content_offsets): Define. (__splitstack_getcontext, __splitstack_setcontext): New functions. (__splitstack_makecontext): New function. (__splitstack_block_signals_context): New function. (__splitstack_find_context): New function. * config/i386/morestack.S (__morestack_get_guard): New function. (__morestack_set_guard, __morestack_make_guard): New functions. * libgcc-std.ver.in: Add new functions to GCC_4.7.0. gcc/testsuite/: * lib/target-supports.exp (check_effective_target_ucontext_h): New procedure. * gcc.dg/split-5.c: New test. From-SVN: r181234
2011-11-09symbol.c (clear_sym_mark, [...]): Remove functions.Tobias Burnus2-28/+66
2011-11-09 Tobias Burnus <burnus@net-b.de> * symbol.c (clear_sym_mark, traverse_ns): Remove functions. (count_st_nodes, do_traverse_symtree, fill_st_vector): New functions. (gfc_traverse_symtree, gfc_traverse_ns): Call do_traverse_symtree. From-SVN: r181232
2011-11-09PR c++/51043 - ICE in LTODodji Seketeli2-11/+16
* cp-tree.h (TYPE_ALIAS_P, TYPE_TEMPLATE_INFO): Don't crash on NULL TYPE_NAME. From-SVN: r181231
2011-11-09* gcc.dg/tm/memopt-1.c: Adjust regexp.Patrick Marlier2-1/+5
From-SVN: r181226
2011-11-09re PR c++/51029 ([C++0x] [4.7 Regression] ICE with -std=c++0x)Jason Merrill4-0/+27
PR c++/51029 * class.c (build_base_path): Don't ICE in fold_non_dependent_expr. From-SVN: r181225
2011-11-09Run most tests in both C++98 and C++11 modes.Jason Merrill48-98/+190
gcc/testsuite/ * lib/target-supports.exp (check_effective_target_c++11): New. (check_effective_target_c++98): New. * lib/g++-dg.exp (g++-dg-runtest): New. * [various.exp]: Use g++-dg-runtest. * [various.C]: Fix for C++11 mode. gcc/cp/ * Make-lang.in (check_g++_parallelize): Add dg-torture.exp. (check-c++0x): Obsolete. / * Makefile.def (language=c++): Remove check-c++0x. * Makefile.in (check-gcc-c++): Regenerate. From-SVN: r181222
2011-11-09* [various.C]: Adjust for C++11 mode.Jason Merrill21-17/+89
From-SVN: r181221
2011-11-09* pt.c (invalid_nontype_parm_type_p): Avoid printing "<type error>".Jason Merrill6-5/+19
From-SVN: r181220
2011-11-09pt.c (convert_nontype_argument): Only integral arguments get early folding.Jason Merrill2-4/+21
* pt.c (convert_nontype_argument): Only integral arguments get early folding. From-SVN: r181219
2011-11-09parser.c (cp_parser_alias_declaration): Don't do semantic processing if ↵Jason Merrill2-0/+8
parsing failed. * parser.c (cp_parser_alias_declaration): Don't do semantic processing if parsing failed. From-SVN: r181218
2011-11-09re PR preprocessor/51061 (Deprecated -I- option causes segfault)Paolo Carlini2-2/+10
2011-11-09 Paolo Carlini <paolo.carlini@oracle.com> PR preprocessor/51061 * incpath.c (merge_include_chains): Make sure to not pass null pointers to free_path. From-SVN: r181216
2011-11-09re PR c++/51045 (erroneous zero as null pointer constant warning at delete)Paolo Carlini1-0/+5
/cp 2011-11-09 Paolo Carlini <paolo.carlini@oracle.com> PR c++/51045 * init.c (build_new_1, build_vec_delete_1, build_delete): Use nullptr_node. /testsuite 2011-11-09 Paolo Carlini <paolo.carlini@oracle.com> PR c++/51045 * g++.dg/warn/Wzero-as-null-pointer-constant-2.C: New. 2011-11-09 Paolo Carlini <paolo.carlini@oracle.com> * doc/invoke.texi ([Option Summary, C++ Language Options]): Add -Wzero-as-null-pointer-constant. From-SVN: r181215
2011-11-09re PR c++/51045 (erroneous zero as null pointer constant warning at delete)Paolo Carlini5-4/+83
/cp 2011-11-09 Paolo Carlini <paolo.carlini@oracle.com> PR c++/51045 * init.c (build_new_1, build_vec_delete_1, build_delete): Use nullptr_node. /testsuite 2011-11-09 Paolo Carlini <paolo.carlini@oracle.com> PR c++/51045 * g++.dg/warn/Wzero-as-null-pointer-constant-2.C: New. 2011-11-09 Paolo Carlini <paolo.carlini@oracle.com> * doc/invoke.texi ([Option Summary, C++ Language Options]): Add -Wzero-as-null-pointer-constant. From-SVN: r181214