Enhancement of call graph API

	* cgraph.h (expand_thunk): New argument added.
	(address_taken_from_non_vtable_p): New global function.
	* ipa-visibility.c (address_taken_from_non_vtable_p): Likewise.
	* cgraphclones.c (duplicate_thunk_for_node): Argument added to call.
	* cgraphunit.c (analyze_function): Likewise.
	(assemble_thunks_and_aliases): Argument added to call.
	(expand_thunk): New argument forces to produce GIMPLE thunk.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211218 138bc75d-0d04-0410-961f-82ee72b054a4
New attribute lookup function addition

	* tree.h (private_lookup_attribute_starting): New function.
	(lookup_attribute_starting): Likewise.
	* tree.c (private_lookup_attribute_starting): Likewise.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211219 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/c/
	PR c/58942
	* c-array-notation.c (fix_builtin_array_notation_fn): Handle the case
	with a pointer.

gcc/cp/
	PR c/58942
	* cp-array-notation.c (expand_sec_reduce_builtin): Handle the case
	with a pointer.

gcc/testsuite/
	PR c/58942
	* c-c++-common/cilk-plus/AN/pr58942.c: Check for correct handling of
	the case with a pointer.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211220 138bc75d-0d04-0410-961f-82ee72b054a4
New callgraph wrapper function creation added

	* cgraph.h (cgraph_make_wrapper): New function introduced.
	* cgraphunit.c (cgraph_make_wrapper): The function implementation.
	* ipa-inline.h (inline_analyze_function): The function is global.
	* ipa-inline-analysis.c (inline_analyze_function): Likewise.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211222 138bc75d-0d04-0410-961f-82ee72b054a4
2014-06-04  Richard Biener  <rguenther@suse.de>

	* tree-ssa-alias.c (stmt_may_clobber_ref_p): Improve handling
	of accesses with non-invariant address.

	* gcc.dg/tree-ssa/ssa-dse-16.c: New testcase.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211223 138bc75d-0d04-0410-961f-82ee72b054a4
2014-06-04  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/60098
	* tree-ssa-dse.c (dse_possible_dead_store_p): Walk until
	we hit a kill.
	(dse_optimize_stmt): Simplify, now that we found a kill
	earlier.

	* gcc.dg/tree-ssa/ssa-dse-15.c: New testcase.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211224 138bc75d-0d04-0410-961f-82ee72b054a4
2014-06-04  Richard Biener  <rguenther@suse.de>

	* configure.ac: Check whether the underlying type of int64_t
	is long or long long.
	* configure: Regenerate.
	* config.in: Likewise.
	* hwint.h (HOST_WIDE_INT): Match the underlying type of int64_t.
	(HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211228 138bc75d-0d04-0410-961f-82ee72b054a4
2014-06-04  Matthew Fortune  <matthew.fortune@imgtec.com>

gcc/
	* regcprop.c (copyprop_hardreg_forward_1): Account for 
	HARD_REGNO_CALL_PART_CLOBBERED.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211230 138bc75d-0d04-0410-961f-82ee72b054a4
2014-06-04  Richard Biener  <rguenther@suse.de>

	* tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
	TREE_PUBLIC and DECL_EXTERNAL decls.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211233 138bc75d-0d04-0410-961f-82ee72b054a4
	PR c++/51253
	PR c++/61382
gcc/
	* gimplify.c (gimplify_arg): Non-static.
	* gimplify.h: Declare it.
gcc/cp/
	* cp-gimplify.c (cp_gimplify_expr): Handle CALL_EXPR_LIST_INIT_P here.
	* semantics.c (simplify_aggr_init_expr): Not here, just copy it.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211235 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/
	* recog.h (recog_op_alt): Convert to a flat array.
	(which_op_alt): New function.
	* recog.c (recog_op_alt): Convert to a flat array.
	(preprocess_constraints): Update accordingly, grouping all
	operands of the same alternative together, rather than the
	other way around.
	* ira-lives.c (check_and_make_def_conflict): Likewise.
	(make_early_clobber_and_input_conflicts): Likewise.
	* config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
	* reg-stack.c (check_asm_stack_operands): Use which_op_alt.
	(subst_asm_stack_regs): Likewise.
	* regcprop.c (copyprop_hardreg_forward_1): Likewise.
	* regrename.c (hide_operands, record_out_operands): Likewise.
	(build_def_use): Likewise.
	* sel-sched.c (get_reg_class): Likewise.
	* config/arm/arm.c (note_invalid_constants): Likewise.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211237 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/
	* recog.h (alternative_class): New function.
	(which_op_alt): Return a const recog_op_alt.
	* reg-stack.c (check_asm_stack_operands): Update type accordingly.
	(subst_asm_stack_regs): Likewise.
	* config/arm/arm.c (note_invalid_constants): Likewise.
	* regcprop.c (copyprop_hardreg_forward_1): Likewise.  Don't modify
	the operand_alternative; use alternative class instead.
	* sel-sched.c (get_reg_class): Likewise.
	* regrename.c (build_def_use): Likewise.
	(hide_operands, restore_operands, record_out_operands): Update type
	accordingly.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211238 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/
	* recog.c (preprocess_constraints): Don't skip disabled alternatives.
	* ira-lives.c (check_and_make_def_conflict): Check for disabled
	alternatives.
	(make_early_clobber_and_input_conflicts): Likewise.
	* config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211239 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/
	* recog.h (operand_alternative): Convert reg_class, reject,
	matched and matches into bitfields.
	(preprocess_constraints): New overload.
	(preprocess_insn_constraints): New function.
	(preprocess_constraints): Take the insn as parameter.
	(recog_op_alt): Change into a pointer.
	(target_recog): Add x_op_alt.
	* recog.c (asm_op_alt): New variable.
	(recog_op_alt): Change into a pointer.
	(preprocess_constraints): New overload, replacing the old function
	definition with one that doesn't use global state.
	(preprocess_insn_constraints): New function.
	(preprocess_constraints): Use them.  Take the insn as parameter.
	Use asm_op_alt for asms.
	(recog_init): Free existing x_op_alt entries.
	* ira-lives.c (check_and_make_def_conflict): Make operand_alternative
	pointer const.
	(make_early_clobber_and_input_conflicts): Likewise.
	(process_bb_node_lives): Pass the insn to process_constraints.
	* reg-stack.c (check_asm_stack_operands): Likewise.
	(subst_asm_stack_regs): Likewise.
	* regcprop.c (copyprop_hardreg_forward_1): Likewise.
	* regrename.c (build_def_use): Likewise.
	* sched-deps.c (sched_analyze_insn): Likewise.
	* sel-sched.c (get_reg_class, implicit_clobber_conflict_p): Likewise.
	* config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
	(note_invalid_constants): Likewise.
	* config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
	(ix86_legitimate_combined_insn): Make operand_alternative pointer
	const.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211240 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/
	* lra-int.h (lra_static_insn_data): Make operand_alternative a
	const pointer.
	(target_lra_int, default_target_lra_int, this_target_lra_int)
	(op_alt_data): Delete.
	* lra.h (lra_init): Delete.
	* lra.c (default_target_lra_int, this_target_lra_int): Delete.
	(init_insn_code_data_once): Remove op_alt_data handling.
	(finish_insn_code_data_once): Likewise.
	(init_op_alt_data): Delete.
	(get_static_insn_data): Initialize operand_alternative to null.
	(free_insn_recog_data): Cast operand_alternative before freeing it.
	(setup_operand_alternative): Take the operand_alternative as
	parameter and assume it isn't already cached in the static
	insn data.
	(lra_set_insn_recog_data): Update accordingly.
	(lra_init): Delete.
	* ira.c (ira_init): Don't call lra_init.
	* target-globals.h (this_target_lra_int): Declare.
	(target_globals): Remove lra_int.
	(restore_target_globals): Update accordingly.
	* target-globals.c: Don't include lra-int.h.
	(default_target_globals, save_target_globals): Remove lra_int.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211241 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/
	* lra-constraints.c (valid_address_p): Move earlier in file.
	(address_eliminator): New structure.
	(satisfies_memory_constraint_p): New function.
	(satisfies_address_constraint_p): Likewise.
	(process_alt_operands, process_address, curr_insn_transform): Use them.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211242 138bc75d-0d04-0410-961f-82ee72b054a4
	* lto-wrapper.c (fatal, fatal_perror): Remove functions.  All callers
	changed to use fatal_error.
	(main): Ensure lto_wrapper_cleanup is run atexit.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211243 138bc75d-0d04-0410-961f-82ee72b054a4
2014-06-04  Marc Glisse  <marc.glisse@inria.fr>

	PR tree-optimization/61385
gcc/
	* tree-ssa-phiopt.c (value_replacement): Punt if there are PHI nodes.
gcc/testsuite/
	* gcc.dg/tree-ssa/pr61385.c: New file.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211245 138bc75d-0d04-0410-961f-82ee72b054a4
Use INTVAL only on CONST_INT in addptrdi3 and addptrsi3

2014-06-04  Tom de Vries  <tom@codesourcery.com>

	* config/s390/s390.md ("addptrdi3", "addptrsi3"): Use INTVAL only on
	CONST_INT.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211246 138bc75d-0d04-0410-961f-82ee72b054a4
/cp
2014-06-04  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/43453
	* typeck.c (cp_build_modify_expr): Handle array of characters
	initialized by a string literal.
	* decl.c (check_initializer): Handle parenthesized string literal
	as initializer.
	* typeck2.c (store_init_value): Remove redundant check.

/testsuite
2014-06-04  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/43453
	* g++.dg/init/pr43453.C: New.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211248 138bc75d-0d04-0410-961f-82ee72b054a4