compiler: Add precise type information on the heap.

	* go-gcc.cc (Gcc_backend::implicit_variable): Remove init
	parameter.  Add is_hidden parameter.
	(Gcc_backend::implicit_variable_set_init): New method.
	(Gcc_backend::implicit_variable_reference): New method.


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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214897 138bc75d-0d04-0410-961f-82ee72b054a4
Add target hook to override DWARF2 frame register size

gcc/

	* target.def (TARGET_DWARF_FRAME_REG_MODE): New target hook.
	* targhooks.c (default_dwarf_frame_reg_mode): New function.
	* targhooks.h (default_dwarf_frame_reg_mode): New prototype.
	* doc/tm.texi.in (TARGET_DWARF_FRAME_REG_MODE): Document.
	* doc/tm.texi: Regenerate.
	* dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Abstract mode
	selection logic to default_dwarf_frame_reg_mode.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214898 138bc75d-0d04-0410-961f-82ee72b054a4
	PR debug/60655
	* dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend
	can't be output.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214899 138bc75d-0d04-0410-961f-82ee72b054a4
	PR ipa/61659
	* decl.c (duplicate_decls): Check DECL_DECLARED_INLINE_P on
	newdecl, not olddecl.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214900 138bc75d-0d04-0410-961f-82ee72b054a4
2014-09-04  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* config/rx/rx.h (HARD_REGNO_MODE_OK): Add braces.

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

2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/vsx.md (*vsx_extract_<mode>_load): Always match
	selection of 0th memory doubleword, regardless of endianness.

[gcc/testsuite]

2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gcc.target/powerpc/vsx-extract-1.c:  Test 0th doubleword
	regardless of endianness.




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

2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (special_handling_values): Add
	SH_EXTRACT.
	(rtx_is_swappable_p): Look for patterns with a VEC_SELECT, perhaps
	wrapped in a VEC_DUPLICATE, representing an extract.  Mark these
	as swappable with special handling SH_EXTRACT.  Remove
	UNSPEC_VSX_XXSPLTW from the list of disallowed unspecs for the
	optimization.
	(adjust_extract): New function.
	(handle_special_swappables): Add default to case statement; add
	case for SH_EXTRACT that calls adjust_extract.
	(dump_swap_insn_table): Handle SH_EXTRACT.

[gcc/testsuite]

2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gcc.target/powerpc/swaps-p8-13.c: New test.
	* gcc.target/powerpc/swaps-p8-14.c: New test.
	* gcc.target/powerpc/swaps-p8-15.c: New test.




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

2014-09-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* doc/options.texi: Document that Var and Init are required if CPP
	is given.
	* optc-gen.awk: Require Var and Init if CPP is given.
	* common.opt (Wpedantic): Use Init.

libcpp/ChangeLog:

2014-09-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* macro.c (replace_args): Use cpp_pedwarning, cpp_warning and
	CPP_W flags.
	* include/cpplib.h: Add CPP_W_C90_C99_COMPAT and CPP_W_PEDANTIC.
	* init.c (cpp_create_reader): Do not init to -1 here.
	* expr.c (num_binary_op): Use cpp_pedwarning.

gcc/c-family/ChangeLog:

2014-09-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* c.opt (Wc90-c99-compat,Wc++-compat,Wcomment,Wendif-labels,
	Winvalid-pch,Wlong-long,Wmissing-include-dirs,Wmultichar,Wpedantic,
	(Wdate-time,Wtraditional,Wundef,Wvariadic-macros): Add CPP, Var
	and Init.
	* c-opts.c (c_common_handle_option): Do not handle here.
	(sanitize_cpp_opts): Likewise.
	* c-common.c (struct reason_option_codes_t): Handle
	CPP_W_C90_C99_COMPAT and CPP_W_PEDANTIC.

gcc/testsuite/ChangeLog:

2014-09-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* gcc.dg/cpp/endif-pedantic2.c: More general options do not
	override specific ones, but specific ones do.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214904 138bc75d-0d04-0410-961f-82ee72b054a4
	PR target/62040
	* config/aarch64/iterators.md (VQ_NO2E, VQ_2E): New iterators.
	* config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Split
	it into two patterns.
	(move_lo_quad_internal_be_<mode>): Likewise.
	
	* gcc.target/aarch64/pr62040.c: New test.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214905 138bc75d-0d04-0410-961f-82ee72b054a4
dearly: Emit DIEs for decls early in the compilation process.

This is the original patch from Michael Matz, ported to a more recent
mainline.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214906 138bc75d-0d04-0410-961f-82ee72b054a4
Make gen_formal_parameter_die() merge DIEs from a previous execution.

Do not set DW_AT_inline incorrectly on all functions.

Do not remove formal parameters when a previous DIE has been found.
Instead, augment the missing bits later.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214907 138bc75d-0d04-0410-961f-82ee72b054a4
Make output_die() output the parent DIE for each DIE.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214908 138bc75d-0d04-0410-961f-82ee72b054a4
	* dwarf2out.c (struct die_struct): Add dumped_early field.
	(reparent_child): New.
	(splice_child_die): Use reparent_child.
	(gen_subprogram_die): Do not regenerate parameters if previously
	dumped.
	(gen_variable_die): Fix parent of decls that have been dumped
	early to reflect correct context.
	Do not regenerate decls if previously dumped.
	(dwarf2out_decl): Add return value.
	(dwarf2out_early_decl): Set dumped_early bit.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214909 138bc75d-0d04-0410-961f-82ee72b054a4
Add missing ChangeLog entries for last commit.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214910 138bc75d-0d04-0410-961f-82ee72b054a4
+       * c/c-decl.c (write_global_declarations_1): Call global_decl()
+       with early=true.
+       (write_global_declarations_2): Call global_decl() with
+       early=false.
+       * dbxout.c (dbxout_global_decl): New argument.
+       * debug.c (do_nothing_debug_hooks): Use debug_nothing_tree_bool
+       for global_decl hook.
+       (debug_nothing_tree_bool): New.
+       (struct gcc_debug_hooks): New argument to global_decl.
+       * dwarf2out.c (output_die): Add misc debugging information.
+       (gen_variable_die): Do not reparent children.
+       (dwarf2out_global_decl): Add new documentation.  Add EARLY
+       argument.
+       (dwarf2out_decl): Make sure we don't generate new DIEs if we
+       already have a DIE.
+       * cp/name-lookup.c (do_namespace_alias): New argument to
+       global_decl debug hook.
+       * fortran/trans-decl.c (gfc_emit_parameter_debug_info): Same.
+       * godump.c (go_global_decl): Same.
+       * lto/lto-lang.c (lto_write_globals): Same.
+       * sdbout.c (sdbout_global_decl): Same.
+       * toplev.c (emit_debug_global_declarations): Same.
+       * vmsdbgout.c (vmsdbgout_global_decl): Same.
+       * tree.c (free_lang_data_in_decl): Do not call
+       dwarf2out_early_decl from here.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214911 138bc75d-0d04-0410-961f-82ee72b054a4
Merge remote-tracking branch 'origin/aldyh/debug-early' into debug-early

Conflicts:
	gcc/ChangeLog.debug-early
	gcc/dwarf2out.c

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214912 138bc75d-0d04-0410-961f-82ee72b054a4
Revert incorrect merging of debug-early branch.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214914 138bc75d-0d04-0410-961f-82ee72b054a4
Merge remote-tracking branch 'origin/aldyh/debug-early' into debug-early

Conflicts:
	gcc/ChangeLog.debug-early
	gcc/dwarf2out.c

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214915 138bc75d-0d04-0410-961f-82ee72b054a4
Remove file that was mistakenly added.

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