mirror of git://gcc.gnu.org/git/gcc.git
i386.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Move to...
* config/i386/i386.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Move to... * config/i386/i386.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): ...here. * config/ia64/ia64.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Move to... * config/ia64/ia64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): ...here. * config/rs6000/rs6000.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Move to. * config/rs6000/rs6000.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): ...here. (rs6000_option_override_internal): Clear it if ABI_AIX. * config/sparc/sparc.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Move to... * config/sparc/sparc.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): ... here. From-SVN: r241285
This commit is contained in:
parent
806696ebd2
commit
86f980870a
|
|
@ -1,3 +1,15 @@
|
||||||
|
2016-10-17 Eric Botcazou <ebotcazou@adacore.com>
|
||||||
|
|
||||||
|
* config/i386/i386.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Move to...
|
||||||
|
* config/i386/i386.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): ...here.
|
||||||
|
* config/ia64/ia64.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Move to...
|
||||||
|
* config/ia64/ia64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): ...here.
|
||||||
|
* config/rs6000/rs6000.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Move to.
|
||||||
|
* config/rs6000/rs6000.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): ...here.
|
||||||
|
(rs6000_option_override_internal): Clear it if ABI_AIX.
|
||||||
|
* config/sparc/sparc.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Move to...
|
||||||
|
* config/sparc/sparc.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): ... here.
|
||||||
|
|
||||||
2016-10-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
2016-10-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||||||
|
|
||||||
* gimple-ssa-strength-reduction.c (record_increment): Remove
|
* gimple-ssa-strength-reduction.c (record_increment): Remove
|
||||||
|
|
|
||||||
|
|
@ -50833,6 +50833,9 @@ ix86_addr_space_zero_address_valid (addr_space_t as)
|
||||||
#undef TARGET_HARD_REGNO_SCRATCH_OK
|
#undef TARGET_HARD_REGNO_SCRATCH_OK
|
||||||
#define TARGET_HARD_REGNO_SCRATCH_OK ix86_hard_regno_scratch_ok
|
#define TARGET_HARD_REGNO_SCRATCH_OK ix86_hard_regno_scratch_ok
|
||||||
|
|
||||||
|
#undef TARGET_CUSTOM_FUNCTION_DESCRIPTORS
|
||||||
|
#define TARGET_CUSTOM_FUNCTION_DESCRIPTORS 1
|
||||||
|
|
||||||
struct gcc_target targetm = TARGET_INITIALIZER;
|
struct gcc_target targetm = TARGET_INITIALIZER;
|
||||||
|
|
||||||
#include "gt-i386.h"
|
#include "gt-i386.h"
|
||||||
|
|
|
||||||
|
|
@ -2666,9 +2666,6 @@ extern void debug_dispatch_window (int);
|
||||||
|
|
||||||
#define TARGET_SUPPORTS_WIDE_INT 1
|
#define TARGET_SUPPORTS_WIDE_INT 1
|
||||||
|
|
||||||
/* Use custom descriptors instead of trampolines when possible. */
|
|
||||||
#define TARGET_CUSTOM_FUNCTION_DESCRIPTORS 1
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Local variables:
|
Local variables:
|
||||||
version-control: t
|
version-control: t
|
||||||
|
|
|
||||||
|
|
@ -649,6 +649,9 @@ static const struct attribute_spec ia64_attribute_table[] =
|
||||||
#undef TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P
|
#undef TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P
|
||||||
#define TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P ia64_attribute_takes_identifier_p
|
#define TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P ia64_attribute_takes_identifier_p
|
||||||
|
|
||||||
|
#undef TARGET_CUSTOM_FUNCTION_DESCRIPTORS
|
||||||
|
#define TARGET_CUSTOM_FUNCTION_DESCRIPTORS 0
|
||||||
|
|
||||||
struct gcc_target targetm = TARGET_INITIALIZER;
|
struct gcc_target targetm = TARGET_INITIALIZER;
|
||||||
|
|
||||||
/* Returns TRUE iff the target attribute indicated by ATTR_ID takes a plain
|
/* Returns TRUE iff the target attribute indicated by ATTR_ID takes a plain
|
||||||
|
|
|
||||||
|
|
@ -1715,7 +1715,4 @@ struct GTY(()) machine_function
|
||||||
/* Switch on code for querying unit reservations. */
|
/* Switch on code for querying unit reservations. */
|
||||||
#define CPU_UNITS_QUERY 1
|
#define CPU_UNITS_QUERY 1
|
||||||
|
|
||||||
/* IA-64 already uses descriptors for its standard calling sequence. */
|
|
||||||
#define TARGET_CUSTOM_FUNCTION_DESCRIPTORS 0
|
|
||||||
|
|
||||||
/* End of ia64.h */
|
/* End of ia64.h */
|
||||||
|
|
|
||||||
|
|
@ -1867,6 +1867,9 @@ static const struct attribute_spec rs6000_attribute_table[] =
|
||||||
|
|
||||||
#undef TARGET_OPTAB_SUPPORTED_P
|
#undef TARGET_OPTAB_SUPPORTED_P
|
||||||
#define TARGET_OPTAB_SUPPORTED_P rs6000_optab_supported_p
|
#define TARGET_OPTAB_SUPPORTED_P rs6000_optab_supported_p
|
||||||
|
|
||||||
|
#undef TARGET_CUSTOM_FUNCTION_DESCRIPTORS
|
||||||
|
#define TARGET_CUSTOM_FUNCTION_DESCRIPTORS 1
|
||||||
|
|
||||||
|
|
||||||
/* Processor table. */
|
/* Processor table. */
|
||||||
|
|
@ -4862,6 +4865,10 @@ rs6000_option_override_internal (bool global_init_p)
|
||||||
Linux and Darwin ABIs at the moment. For now, only AIX is fixed. */
|
Linux and Darwin ABIs at the moment. For now, only AIX is fixed. */
|
||||||
if (DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_DARWIN)
|
if (DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_DARWIN)
|
||||||
targetm.calls.split_complex_arg = NULL;
|
targetm.calls.split_complex_arg = NULL;
|
||||||
|
|
||||||
|
/* The AIX and ELFv1 ABIs define standard function descriptors. */
|
||||||
|
if (DEFAULT_ABI == ABI_AIX)
|
||||||
|
targetm.calls.custom_function_descriptors = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Initialize rs6000_cost with the appropriate target costs. */
|
/* Initialize rs6000_cost with the appropriate target costs. */
|
||||||
|
|
|
||||||
|
|
@ -2922,9 +2922,6 @@ extern GTY(()) tree rs6000_builtin_decls[RS6000_BUILTIN_COUNT];
|
||||||
|
|
||||||
#define TARGET_SUPPORTS_WIDE_INT 1
|
#define TARGET_SUPPORTS_WIDE_INT 1
|
||||||
|
|
||||||
/* Use custom descriptors instead of trampolines if not AIX or ELFv1. */
|
|
||||||
#define TARGET_CUSTOM_FUNCTION_DESCRIPTORS (DEFAULT_ABI != ABI_AIX)
|
|
||||||
|
|
||||||
#if (GCC_VERSION >= 3000)
|
#if (GCC_VERSION >= 3000)
|
||||||
#pragma GCC poison TARGET_FLOAT128 OPTION_MASK_FLOAT128 MASK_FLOAT128
|
#pragma GCC poison TARGET_FLOAT128 OPTION_MASK_FLOAT128 MASK_FLOAT128
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -866,6 +866,9 @@ char sparc_hard_reg_printed[8];
|
||||||
#undef TARGET_FIXED_CONDITION_CODE_REGS
|
#undef TARGET_FIXED_CONDITION_CODE_REGS
|
||||||
#define TARGET_FIXED_CONDITION_CODE_REGS sparc_fixed_condition_code_regs
|
#define TARGET_FIXED_CONDITION_CODE_REGS sparc_fixed_condition_code_regs
|
||||||
|
|
||||||
|
#undef TARGET_CUSTOM_FUNCTION_DESCRIPTORS
|
||||||
|
#define TARGET_CUSTOM_FUNCTION_DESCRIPTORS 1
|
||||||
|
|
||||||
struct gcc_target targetm = TARGET_INITIALIZER;
|
struct gcc_target targetm = TARGET_INITIALIZER;
|
||||||
|
|
||||||
/* Return the memory reference contained in X if any, zero otherwise. */
|
/* Return the memory reference contained in X if any, zero otherwise. */
|
||||||
|
|
|
||||||
|
|
@ -1813,6 +1813,3 @@ extern int sparc_indent_opcode;
|
||||||
#define SPARC_LOW_FE_EXCEPT_VALUES 0
|
#define SPARC_LOW_FE_EXCEPT_VALUES 0
|
||||||
|
|
||||||
#define TARGET_SUPPORTS_WIDE_INT 1
|
#define TARGET_SUPPORTS_WIDE_INT 1
|
||||||
|
|
||||||
/* Use custom descriptors instead of trampolines when possible. */
|
|
||||||
#define TARGET_CUSTOM_FUNCTION_DESCRIPTORS 1
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,8 @@
|
||||||
|
2016-10-17 Eric Botcazou <ebotcazou@adacore.com>
|
||||||
|
|
||||||
|
* gcc.dg/Wtrampolines.c: XFAIL warning on ia64-*-* and powerpc64-*-*.
|
||||||
|
* gnat.dg/trampoline4.adb: Minor tweak.
|
||||||
|
|
||||||
2016-10-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
2016-10-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||||||
|
|
||||||
PR tree-optimization/77916
|
PR tree-optimization/77916
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ void foo (void)
|
||||||
|
|
||||||
double a (int k, pfun x1, pfun x2, pfun x3, pfun x4, pfun x5)
|
double a (int k, pfun x1, pfun x2, pfun x3, pfun x4, pfun x5)
|
||||||
{
|
{
|
||||||
double b (void) /* { dg-warning "trampoline generated for nested function 'b'" } */
|
double b (void) /* { dg-warning "trampoline generated for nested function 'b'" "standard descriptors" { xfail ia64-*-* powerpc64-*-* } } */
|
||||||
{
|
{
|
||||||
k = k - 1;
|
k = k - 1;
|
||||||
return a (k, b, x1, x2, x3, x4 );
|
return a (k, b, x1, x2, x3, x4 );
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
-- { dg-do compile { target *-*-linux* } }
|
-- { dg-do compile { target *-*-linux* } }
|
||||||
-- { dg-options "-ftrampolines -gnatws" }
|
-- { dg-options "-ftrampolines -gnatws" }
|
||||||
-- { dg-skip-if "native descriptors" { ia64-*-* powerpc64-*-* } }
|
-- { dg-skip-if "standard descriptors" { ia64-*-* powerpc64-*-* } }
|
||||||
|
|
||||||
procedure Trampoline4 is
|
procedure Trampoline4 is
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue