compiler, runtime: Use function descriptors.

This changes the representation of a Go value of function type
from being a pointer to function code (like a C function
pointer) to being a pointer to a struct.  The first field of
the struct points to the function code.  The remaining fields,
if any, are the addresses of variables referenced in enclosing
functions.  For each call to a function, the address of the
function descriptor is passed as the last argument.

This lets us avoid generating trampolines, and removes the use
of writable/executable sections of the heap.


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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200185 138bc75d-0d04-0410-961f-82ee72b054a4
	* config/fpu-387.h: Use __asm__ and __volatile__ consistently.
	(get_fpu_except_flags): Initialize result.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200187 138bc75d-0d04-0410-961f-82ee72b054a4
2013-06-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	Revert:
	2013-06-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
	
	PR target/57609
	* config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
	with next_active_insn.



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


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

	* expr.c (expand_expr_real_1): Use SCOPE_FILE_SCOPE_P to check
	for global context.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200190 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/testsuite
2013-06-19  Sebastian Huber  <sebastian.huber@embedded-brains.de>

        PR target/55033
        * gcc.target/powerpc/pr55033.c: Fix options.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200191 138bc75d-0d04-0410-961f-82ee72b054a4
/cp
2013-06-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR c++/57638
	* pt.c (unify, [TEMPLATE_PARM_INDEX]): Pass to unify_type_mismatch
	TREE_TYPE (arg), not arg itself.

/testsuite
2013-06-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR c++/57638
	* g++.dg/template/error53.C: New.


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

	PR c++/56544
	* doc/cpp.texi [Standard Predefined Macros, __cplusplus]: Document
	that now in C++ the value is correct per the C++ standards.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200193 138bc75d-0d04-0410-961f-82ee72b054a4
2013-06-19  Steven Bosscher  <steven@gcc.gnu.org>

	PR target/57609
	* config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
	with NEXT_INSN.  Use tablejump_p to check for jump table data
	insns.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200196 138bc75d-0d04-0410-961f-82ee72b054a4
	arm.md (split for eq(reg, 0)): Add variants for ARMv5 and Thumb2.
	(peepholes for eq(reg, not-0)): Ensure condition register is dead after
	pattern.  Use more efficient sequences on ARMv5 and Thumb2.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200197 138bc75d-0d04-0410-961f-82ee72b054a4
	* config/arm/vfp.md: Move VFP instruction classification documentation
	to ...
	* config/arm/arm.md: ... here.  Update instruction classification
	documentation.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200199 138bc75d-0d04-0410-961f-82ee72b054a4
	* tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): New function.
	(simplify_bitwise_binary): Use it to simpify certain binary ops on
	booleans.

	* gcc.dg/tree-ssa/forwprop-28.c: New test.

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

	* gcc.dg/torture/stackalign/builtin-apply-2.c: set
	STACK_ARGUMENTS_SIZE with 0 if __aarch64__ is defined.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200204 138bc75d-0d04-0410-961f-82ee72b054a4
Replace array size in Array Notation testcode with #define.
2013-06-19  Balaji V. Iyer  <balaji.v.iyer@intel.com>

       * c-c++-common/cilk-plus/AN/builtin_fn_custom.c: Replaced all the
       hard-coded values of array sizes with a #define.
       * c-c++-common/cilk-plus/AN/builtin_fn_mutating.c: Likewise.
       * c-c++-common/cilk-plus/AN/builtin_func_double2.c: Likewise.
       * c-c++-common/cilk-plus/AN/gather_scatter.c: Likewise.
       * c-c++-common/cilk-plus/AN/pr57577.c: Likewise.
       * c-c++-common/cilk-plus/AN/sec_implicit_ex.c: Likewise.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200205 138bc75d-0d04-0410-961f-82ee72b054a4
        * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): Fix typo
        in comment.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200208 138bc75d-0d04-0410-961f-82ee72b054a4
	PR driver/57651
	* gcc-ar.c (main): If not CROSS_DIRECTORY_STRUCTURE, look for
	PERSONALITY in $PATH derived prefixes.


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

	* cgraph.h (const_value_known_p): Replace by ...
	(ctor_for_folding): .. this one.
	* cgraphunit.c (process_function_and_variable_attributes): Use it.
	* lto-cgraph.c (compute_ltrans_boundary): Use ctor_for_folding.
	* expr.c (expand_expr_real_1): Likewise.
	(string_constant): Likewise.
	* tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
	* ipa.c (process_references): Likewise.
	(symtab_remove_unreachable_nodes): Likewise.
	* ipa-inline-analysis.c (param_change_prob): Likewise.
	* gimple-fold.c (canonicalize_constructor_val): Likewise.
	(get_base_constructor): Likwise.
	* varpool.c (varpool_remove_node): Likewise.
	(varpool_remove_initializer): LIkewise.
	(dump_varpool_node): LIkwise.
	(const_value_known_p): Rewrite to ...
	(ctor_for_folding): ... this one.

	* lto-partition.c (add_references_to_partition): Use
	ctor_for_folding.

	* gcc.dg/tree-ssa/attr-alias-2.c: New testcase.


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

        * gcc.dg/tree-ssa/loop-19.c: Add -fno-common.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200213 138bc75d-0d04-0410-961f-82ee72b054a4
2013-06-19  Steve Ellcey  <sellcey@mips.com>

	PR target/56942
	* config/mips/mips.md (casesi_internal_mips16_<mode>):
	Use NEXT_INSN instead of next_real_insn.


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