Ed Smith-Rowland [Sat, 29 Jun 2013 03:41:58 +0000 (03:41 +0000)]
lex.c (lex_raw_string(), [...]): Constrain suffixes treated as concatenated literal and macro to just the...
libcpp:
2013-06-28 Ed Smith-Rowland <3dw4rd@verizon.net>
* lex.c (lex_raw_string(), lex_string()): Constrain suffixes treated
as concatenated literal and macro to just the patterns found in
inttypes.h; (is_macro()): New.
Paolo Carlini [Sat, 29 Jun 2013 00:11:03 +0000 (00:11 +0000)]
re PR c++/57645 (Explicitly-declared destructor with no exception specification is always noexcept(true))
/cp
2013-06-28 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/57645
* class.c (deduce_noexcept_on_destructors): Save, set, and restore
TYPE_HAS_NONTRIVIAL_DESTRUCTOR (t) around the main loop over the
destructors.
/testsuite
2013-06-28 Paolo Carlini <paolo.carlini@oracle.com>
Jakub Jelinek [Fri, 28 Jun 2013 20:25:35 +0000 (22:25 +0200)]
re PR target/57736 (ICE in emit_move_insn with __builtin_ia32_rdtsc)
PR target/57736
* config/i386/i386.c (ix86_expand_builtin): If target == NULL
and mode is VOIDmode, don't create a VOIDmode pseudo to copy result
into.
Balaji V. Iyer [Fri, 28 Jun 2013 20:04:36 +0000 (20:04 +0000)]
Implemented Jason Merrill's suggestions on Array Notation C++.
gcc/ChangeLog
2013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
* builtins.def: Fixed the function type of CILKPLUS_BUILTIN.
gcc/c/ChangeLog
2013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
* c-parser.c (c_parser_array_notation): Removed rejection of array
notations in an array of function pointers.
gcc/c-family/ChangeLog
2013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
* array-notation-common.c (length_mismatch_in_expr_p): Collapsed two
if-statements and compared the trees directly using tree_int_cst_equal.
(find_rank): Checked for array notations in function name to handle
array notations in function pointers.
(extract_array_notation_exprs): Likewise.
(replace_array_notations): Likewise.
(cilkplus_extract_an_triplets): Replaced safe_push with
safe_grow_cleared. Also removed an unnecessary check to see if the
node is of type ARRAY_NOTATION_REF.
(fix_sec_implicit_args): Removed an unnecessary check for ADDR_EXPR.
Also switched two if-statements to remove an unnecessary comparison.
gcc/cp/ChangeLog
2013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
* parser.c (cp_parser_array_notation): Removed rejection array notation
of type function pointers. Added handling of array expressions when
Cilk Plus is enabled. Took out type-checking.
(cp_parser_postfix_open_square_expression): Moved normal array expr.
parsing into cp_parser_array_notation when cilkplus is enabled.
(cp_parser_compound_statement): Removed expansion of array notations.
(cp_parser_ctor_initializer_opt_and_function_body): Likewise.
(cp_parser_function_definition_after_declarator): Likewise.
(cp_parser_selection_statement): Removed error reporting.
(cp_parser_iteration_statement): Likewise.
(cp_parser_direct_declarator): Removed error checking/reporting if
array notations are used in the declarator.
* pt.c (instantiate_decl): Likewise.
(type_unification_real): Removed a check for ARRAY_NOTATION_REF.
(cxx_eval_constant_expression): Removed ARRAY_NOTATION_REF case.
(potential_constant_expression_1): Returned false for ARRAY_NOTATION_REF
case.
* cp-gimplify.c (cp_genericize): Added expansion of array notation
expressions here.
* cp-array-notation.c (make_triplet_val_inv): Removed loc and cry
parameters. Replaced build_decls with get_temp_regvar with type as
ptrdiff.
(create_array_refs): Made the type-casting to ptrdiff_type.
(replace_invariant_var): Added a check for void return type before
creating new var. Replaced build_decl and build_min_nt_loc with
get_temp_regvar.
(expand_an_in_modify_expr): Ditto. Replaced body of redundant else with
gcc_unreachable. Removed few unwanted checks. Made induction variable
type as ptrdiff_type. Removed loc and complain arguments passed into
make_triplet_val_inv. Replaced all modify expression's code from NOP
EXPR to INIT EXPR. Replaced all forceful appending into stmt. list
with the non-forceful one. Replaced some integer conversion and
equality-checking to using tree_int_cst_equal.
(expand_sec_reduce_builtin): All changes mentioned in above function
expand_an_in_modify_expr. Made the new variable type of
SEC_REDUCE_ANY/ALL_{NON}ZERO intrinsic functions as bool.
(expand_array_notation_exprs): Removed SWITCH_EXPR case. Moved all
the error reporting from parser to this function. Removed unwanted
statements and checks from SWITCH_STMT, WHILE_STMT, and DO_STMT cases.
(cilkplus_an_triplet_types_ok_p): Removed rejection of array notation
in function pointers.
(cp_expand_cond_array_notations): Added a new if statements to check
if condition has a zero rank. If so, then just return.
(expand_return_expr): Added a check for return expressions with a rank.
Replaced get_tmp_regvar with a create_temporary_var.
(build_array_notation_ref): Simplified and removed unwanted if-stmts.
Moved common code outside if-statements. Moved type-checking from
parser to here.
* semantics.c (finish_return_stmt): Removed a check for return exprs.
with a rank.
* call.c (convert_like_real): Removed a check for array notation
expression in a function.
(build_over_call): Likewise.
(magic_varargs_p): Added a check for builtin array notation function.
Made this function non-static and removed its prototype.
* cp-tree.h (magic_varargs_p): New prototype.
* typeck.c (cp_build_function_call_vec): Removed automatic setting of
nargs to the param->length when builtin reduction function is used.
(convert_arguments): Replaced check for a constant_p function with
margic_varargs_p function call.
(cp_build_binary_op): Removed calling of the function
find_correct_array_notation_type.
(cp_build_addr_expr_1): Removed an unwanted if-statement.
(convert_for_assignment): Removed automatic return of rhs when array
notation builtin function is used.
gcc/testsuite/ChangeLog
2013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
* c-c++-common/cilk-plus/AN/decl-ptr-colon.c (main): Made this testcase
c specific.
* c-c++-common/cilk-plus/AN/decl-ptr-colon.c (main): Changed dg-error
strings to match the fixed error messages.
* c-c++-common/cilk-plus/AN/misc.c (main): Likewise.
* c-c++-common/cilk-plus/AN/rank_mismatch.c (main): Added a new error
message check.
Michael Meissner [Fri, 28 Jun 2013 16:15:17 +0000 (16:15 +0000)]
re PR target/57744 (Power8 support has problems with quad word atomic instructions)
[gcc]
2013-06-28 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/57744
* config/rs6000/rs6000.h (MODES_TIEABLE_P): Do not allow PTImode
to tie with any other modes. Eliminate Altivec vector mode tests,
since these are a subset of ALTIVEC or VSX vector modes. Simplify
code, to return 0 if testing MODE2 for a condition, if we've
already tested MODE1 for the same condition.
[gcc/testsuite]
2013-06-28 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/57744
* gcc.target/powerpc/pr57744.c: New test to make sure lqarx and
stqcx. get even registers.
Jakub Jelinek [Thu, 27 Jun 2013 16:44:17 +0000 (18:44 +0200)]
re PR target/57623 (BEXTR intrinsic has memory operands switched around (fails to compile code))
PR target/57623
* config/i386/i386.md (bmi2_bzhi_<mode>3): Swap AND arguments
to match RTL canonicalization. Swap predicates and
constraints of operand 1 and 2.
Jakub Jelinek [Thu, 27 Jun 2013 15:35:57 +0000 (17:35 +0200)]
tree-vect-stmts.c (vectorizable_store): Move ptr_incr var decl before the loop, initialize to NULL.
* tree-vect-stmts.c (vectorizable_store): Move ptr_incr var
decl before the loop, initialize to NULL.
(vectorizable_load): Initialize ptr_incr to NULL.
Yufeng Zhang [Thu, 27 Jun 2013 12:32:07 +0000 (12:32 +0000)]
aarch64.c (aarch64_force_temporary): Add an extra parameter 'mode' of type 'enum machine_mode mode'...
gcc/
* config/aarch64/aarch64.c (aarch64_force_temporary): Add an extra
parameter 'mode' of type 'enum machine_mode mode'; change to pass
'mode' to force_reg.
(aarch64_add_offset): Update calls to aarch64_force_temporary.
(aarch64_expand_mov_immediate): Likewise.
David Holsgrove [Wed, 26 Jun 2013 23:55:52 +0000 (23:55 +0000)]
Add sync_compare_and_swapsi and sync_test_and_setsi.
2013-06-16 David Holsgrove <david.holsgrove@xilinx.com>
Add sync_compare_and_swapsi and sync_test_and_setsi.
* gcc/config/microblaze/sync.md: New file.
* gcc/config/microblaze/microblaze.md: Add UNSPEC_SYNC_CAS,
UNSPEC_SYNC_XCHG and include sync.md.
* gcc/config/microblaze/microblaze.c: Add print_operand 'y'.
* gcc/config/microblaze/constraints.md: Add memory_contraint
'Q' which is a single register.
Greta Yorsh [Wed, 26 Jun 2013 09:40:40 +0000 (10:40 +0100)]
arm.h (MAX_CONDITIONAL_EXECUTE): Define macro.
2013-06-26 Greta Yorsh <Greta.Yorsh@arm.com>
* config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Define macro.
* config/arm/arm-protos.h (arm_max_conditional_execute): New
declaration.
(tune_params): Update comment.
* config/arm/arm.c (arm_cortex_a15_tune): Set max_cond_insns to 2.
(arm_max_conditional_execute): New function.
(thumb2_final_prescan_insn): Use max_insn_skipped and
MAX_INSN_PER_IT_BLOCK to compute maximum instructions in a block.
Balaji V. Iyer [Wed, 26 Jun 2013 02:31:27 +0000 (02:31 +0000)]
+2013-06-25 Balaji V.
+2013-06-25 Balaji V. Iyer <balaji.v.iyer@intel.com>
+
+ * c-c++-common/cilk-plus/AN/gather_scatter.c: Fixed a bug of stack
+ overflow due to size of arrays.
+
Ed Smith-Rowland [Wed, 26 Jun 2013 01:24:25 +0000 (01:24 +0000)]
Status page for C++2014 library features
2013-06-25 Ed Smith-Rowland <3dw4rd@verizon.net>
Status page for C++2014 library features
* doc/xml/faq.xml: Add link to new C++14 status page.
* doc/xml/manual/intro.xml: Ditto.
* doc/xml/manual/status_cxx2014.xml: New.
Balaji V. Iyer [Tue, 25 Jun 2013 20:41:21 +0000 (20:41 +0000)]
Replaced Dynamic arrays with vec trees in Array Notation for C.
gcc/c-family/ChangeLog
2013-06-21 Balaji V. Iyer <balaji.v.iyer@intel.com>
* array-notation-common.c (length_mismatch_in_expr): Changed the
parameter type's from a dynamic array to a vec_tree. Also removed
the size parameters.
* c-common.h (length_mismatch_in_expr_p): Fixed prototype's as per
the change above.
gcc/cp/ChangeLog
2013-06-21 Balaji V. Iyer <balaji.v.iyer@intel.com>
* cp-array-notation.c (cp_length_mismatch_in_expr_p): Remove.
(expand_an_in_modify_expr): Changed a function call from the above
removed function to length_mismatch_in_expr_p.
gcc/c/ChangeLog
2013-06-21 Balaji V. Iyer <balaji.v.iyer@intel.com>
* c-array-notation.c (make_triplet_val_inv): New function.
(create_cmp_incr): Likewise.
(create_array_refs): Likewise.
(fix_builtin_array_notation_fn): Replaced all mallocs with tree vec.
Also modularized common parts between functions and called the function.
(build_array_notation_expr): Likewise.
(fix_conditional_array_notations_1): Likewise.
(fix_array_notation_expr): Likewise.
(fix_array_notation_call_expr): Likewise.
Jakub Jelinek [Tue, 25 Jun 2013 12:35:21 +0000 (14:35 +0200)]
re PR tree-optimization/57705 (Non-constant step induction vars not vectorized)
PR tree-optimization/57705
* tree-vect-loop.c (vect_is_simple_iv_evolution): Allow
SSA_NAME step, provided that it is not defined inside the loop.
(vect_analyze_scalar_cycles_1): Disallow SSA_NAME step in nested
loop.
(get_initial_def_for_induction): Handle SSA_NAME IV step.
Martin Jambor [Tue, 25 Jun 2013 11:09:21 +0000 (13:09 +0200)]
re PR middle-end/57670 (Member-pointer calls should not be redirected to builtin_unreachable)
2013-06-25 Martin Jambor <mjambor@suse.cz>
PR middle-end/57670
* cgraph.h (cgraph_indirect_call_info): New flag member_ptr.
* ipa-prop.c (ipa_print_node_jump_functions): Mark member pointer
calls in the dump.
(ipa_note_param_call): Initialize member_ptr flag.
(ipa_analyze_indirect_call_uses): Set member_ptr flag.
(ipa_make_edge_direct_to_target): Bail out if member_ptr is set.
(ipa_write_indirect_edge_info): Stream member_ptr flag.
(ipa_read_indirect_edge_info): Likewise.
PR libstdc++/57691
* include/c_global/cstdlib (atexit, at_quick_exit): If !_GLIBCC_HOSTED,
declare per the letter of the C++ standard in terms of void.
* include/c_std/cstdlib: Likewise.
Martin Jambor [Mon, 24 Jun 2013 12:51:43 +0000 (14:51 +0200)]
re PR tree-optimization/57358 (segmentation fault with attribute(optimize(O0)))
2013-06-24 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/57358
* ipa-prop.c (ipa_func_spec_opts_forbid_analysis_p): New function.
(ipa_compute_jump_functions_for_edge): Bail out if it returns true.
(ipa_analyze_params_uses): Generate pessimistic info when true.
Martin Jambor [Mon, 24 Jun 2013 12:40:17 +0000 (14:40 +0200)]
re PR tree-optimization/57539 (ice in ipa_edge_duplication_hook)
2013-06-24 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/57539
* cgraphclones.c (cgraph_clone_node): Add parameter new_inlined_to, set
global.inlined_to of the new node to it. All callers changed.
* ipa-inline-transform.c (clone_inlined_nodes): New variable
inlining_into, pass it to cgraph_clone_node.
* ipa-prop.c (ipa_propagate_indirect_call_infos): Do not call
ipa_free_edge_args_substructures.
(ipa_edge_duplication_hook): Only add edges from inlined nodes to
rdesc linked list. Do not assert rdesc edges have inlined caller.
Assert we have found an rdesc in the rdesc list.
Richard Biener [Mon, 24 Jun 2013 12:17:16 +0000 (12:17 +0000)]
pointer-set.h (struct pointer_set_t): Move here from pointer-set.c.
2013-06-24 Richard Biener <rguenther@suse.de>
* pointer-set.h (struct pointer_set_t): Move here from
pointer-set.c.
(pointer_set_lookup): Declare.
(class pointer_map): New template class implementing a
generic pointer to T map.
(pointer_map<T>::pointer_map, pointer_map<T>::~pointer_map,
pointer_map<T>::contains, pointer_map<T>::insert,
pointer_map<T>::traverse): New functions.
* pointer-set.c (struct pointer_set_t): Moved to pointer-set.h.
(pointer_set_lookup): New function.
(pointer_set_contains): Use pointer_set_lookup.
(pointer_set_insert): Likewise.
(insert_aux): Remove.
(struct pointer_map_t): Embed a pointer_set_t.
(pointer_map_create): Adjust.
(pointer_map_destroy): Likewise.
(pointer_map_contains): Likewise.
(pointer_map_insert): Likewise.
(pointer_map_traverse): Likewise.
* tree-streamer.h (struct streamer_tree_cache_d): Use a
pointer_map<unsigned> instead of a pointer_map_t.
* tree-streamer.c (streamer_tree_cache_insert_1): Adjust.
(streamer_tree_cache_lookup): Likewise.
(streamer_tree_cache_create): Likewise.
(streamer_tree_cache_delete): Likewise.
* lto-streamer.h (struct lto_tree_ref_encoder): Use a
pointer_map<unsigned> instead of a pointer_map_t.
(lto_init_tree_ref_encoder): Adjust.
(lto_destroy_tree_ref_encoder): Likewise.
* lto-section-out.c (lto_output_decl_index): Likewise.
(lto_record_function_out_decl_state): Likewise.
* dominance.c (iterate_fix_dominators): Use pointer_map<int>.
Tobias Burnus [Mon, 24 Jun 2013 08:34:05 +0000 (10:34 +0200)]
configure.ac: Check for fp_except and fp_except_t.
2013-06-24 Tobias Burnus <burnus@net-b.de>
* configure.ac: Check for fp_except and fp_except_t.
* config/fpu-sysv.h: Conditionally use either type.
* configure: Regenerate.
* config.h.in: Regenerate.
Oleg Endo [Sun, 23 Jun 2013 08:39:55 +0000 (08:39 +0000)]
re PR target/52483 (SH Target: Loads from volatile memory leave redundant sign/zero extensions)
PR target/52483
* config/sh/predicates.md (general_extend_operand): Invoke
general_movsrc_operand for memory operands.
(general_movsrc_operand): Allow reg+reg addressing, do not use
general_operand for memory operands.
Gabriel Dos Reis [Sun, 23 Jun 2013 02:27:03 +0000 (02:27 +0000)]
c-common.c (c_common_nodes_and_builtins): Use cxx11 in lieu of cxx0x.
2013-06-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
* c-common.c (c_common_nodes_and_builtins): Use cxx11 in lieu of cxx0x.
* c-cppbuiltin.c (c_cpp_builtins): Likewise.
* c-opts.c (c_common_post_options): Likewise.
cp/
2013-06-22 Gabriel Dos Reis <gdr@integrable-solutions.net>