PR tree-optimization/62091
	* g++.dg/ipa/devirt-37.C: Update template.
	* g++.dg/ipa/devirt-40.C: New testcase.
	* ipa-devirt.c (ipa_polymorphic_call_context::restrict_to_inner_type):
	handle correctly arrays.
	(extr_type_from_vtbl_ptr_store): Add debug output; handle multiple
	inheritance binfos.
	(record_known_type): Walk into inner type.
	(ipa_polymorphic_call_context::get_dynamic_type): Likewise; strenghten
	condition on no type changes.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214271 138bc75d-0d04-0410-961f-82ee72b054a4
define_bypass guard functions take a pair of rtx_insn

2014-08-21  David Malcolm  <dmalcolm@redhat.com>

	* genautomata.c (output_internal_insn_latency_func): When writing
	the function "internal_insn_latency" to insn-automata.c,
	strengthen params "insn" and "insn2" from rtx to rtx_insn *, thus
	allowing the optional guard function of (define_bypass) clauses to
	expect a pair of rtx_insn *, rather than a pair of rtx.
	(output_insn_latency_func): When writing the function
	"insn_latency", add an "uncast_" prefix to params "insn" and
	"insn2", reintroducing "insn" and "insn2" as rtx_insn * locals
	using checked casts from the params, thus enabling the above
	change to the generated "internal_insn_latency" function.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214273 138bc75d-0d04-0410-961f-82ee72b054a4
2014-08-21  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/testsuite/
	* lib/target-supports.exp
	(check_effective_target_logical_op_short_circuit): Add nios2.
	* gcc.dg/tree-ssa/reassoc-33.c: Skip for nios2.
	* gcc.dg/tree-ssa/reassoc-34.c: Likewise.
	* gcc.dg/tree-ssa/reassoc-35.c: Likewise.
	* gcc.dg/tree-ssa/reassoc-36.c: Likewise.
	* gcc.dg/tree-ssa/interposition.c: Require fpic effective target
	for test using -fPIC.
	* gcc.dg/lto/pr61526_0.c: Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214274 138bc75d-0d04-0410-961f-82ee72b054a4
delete_related_insns returns an rtx_insn

2014-08-21  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (delete_related_insns): Strengthen return type from rtx to
	rtx_insn *.

	* jump.c (delete_related_insns): Likewise, also for locals "next"
	and "prev".



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214275 138bc75d-0d04-0410-961f-82ee72b054a4
PHASE 2: Per-file commits in main source directory

/
2014-08-21  David Malcolm  <dmalcolm@redhat.com>

	* rtx-classes-status.txt: Phase 1 ("scaffolding") is done; begin
	phase 2 (per-file commits in main source dir).



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214276 138bc75d-0d04-0410-961f-82ee72b054a4
2014-08-21  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (print_operand, 'y' case): Fix code that
	generated a warning and prevented bootstrapping the compiler.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214280 138bc75d-0d04-0410-961f-82ee72b054a4
2014-08-21  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/62214
	* frontend-passes.c (optimize_binop_array_assignment):
	Do not try to optimize the array assignment for string
	concatenation.

2014-08-21  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/62214
	* gfortran.dg/array_assignment_5.f90:  New test.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214281 138bc75d-0d04-0410-961f-82ee72b054a4
alias.c: Use rtx_insn

gcc/
2014-08-21  David Malcolm  <dmalcolm@redhat.com>

	* alias.c (init_alias_analysis): Strengthen local "insn" from rtx
	to rtx_insn *.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214283 138bc75d-0d04-0410-961f-82ee72b054a4
asan.c: strengthen some rtx locals

gcc/
2014-08-21  David Malcolm  <dmalcolm@redhat.com>

	* asan.c (asan_clear_shadow): Strengthen locals "insn", "insns"
	and "jump" from rtx to rtx_insn *.  Strengthen local "top_label"
	from rtx to rtx_code_label *.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214284 138bc75d-0d04-0410-961f-82ee72b054a4
auto-inc-dec.c: strengthen various rtx to rtx_insn *

gcc/
2014-08-21  David Malcolm  <dmalcolm@redhat.com>

	* auto-inc-dec.c (struct inc_insn): Strengthen field "insn" from
	rtx to rtx_insn *.
	(struct mem_insn): Likewise for field "insn".
	(reg_next_use): Strengthen from rtx * to rtx_insn **.
	(reg_next_inc_use): Likewise.
	(reg_next_def): Likewise.
	(move_dead_notes): Strengthen params "to_insn" and "from_insn"
	from rtx to rtx_insn *.
	(move_insn_before): Likewise for param "next_insn" and local "insns".
	(attempt_change): Likewise for local "mov_insn".
	(try_merge): Likewise for param "last_insn".
	(get_next_ref): Likewise for return type and local "insn".
	Strengthen param "next_array" from rtx * to rtx_insn **.
	(parse_add_or_inc): Strengthen param "insn" from rtx to
	rtx_insn *.
	(find_inc): Likewise for locals "insn" and "other_insn" (three of
	the latter).
	(merge_in_block): Likewise for locals "insn", "curr",
	"other_insn".
	(pass_inc_dec::execute): Update allocations of the arrays to
	reflect the stronger types.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214285 138bc75d-0d04-0410-961f-82ee72b054a4
Merge remote-tracking branch 'parent/master' into symbol-table-refactoring

Jan's notes applied.

Conflicts:
	gcc/lto/lto.c