summaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config')
-rw-r--r--gcc/config/alpha/alpha.c3
-rw-r--r--gcc/config/arm/arm.c10
-rw-r--r--gcc/config/arm/arm.h1
-rw-r--r--gcc/config/avr/avr.h3
-rw-r--r--gcc/config/c4x/c4x.c3
-rw-r--r--gcc/config/cris/cris.c3
-rw-r--r--gcc/config/frv/frv.h3
-rw-r--r--gcc/config/h8300/h8300.c2
-rw-r--r--gcc/config/ia64/ia64.c16
-rw-r--r--gcc/config/ia64/ia64.h25
-rw-r--r--gcc/config/ip2k/ip2k.h3
-rw-r--r--gcc/config/m32r/m32r.c2
-rw-r--r--gcc/config/mips/mips.c3
-rw-r--r--gcc/config/mmix/mmix.c1
-rw-r--r--gcc/config/pa/pa.c3
-rw-r--r--gcc/config/pa/pa.h4
-rw-r--r--gcc/config/rs6000/aix.h25
-rw-r--r--gcc/config/rs6000/rs6000.c13
-rw-r--r--gcc/config/rs6000/t-rs600020
-rw-r--r--gcc/config/s390/s390.c42
-rw-r--r--gcc/config/sh/sh.c4
-rw-r--r--gcc/config/sparc/sparc.c4
-rw-r--r--gcc/config/v850/v850.c1
-rw-r--r--gcc/config/xtensa/xtensa.c8
24 files changed, 92 insertions, 110 deletions
diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c
index b1d1a54f20d..1f78205771c 100644
--- a/gcc/config/alpha/alpha.c
+++ b/gcc/config/alpha/alpha.c
@@ -801,9 +801,6 @@ input_operand (rtx op, enum machine_mode mode)
case CONST_INT:
return mode == QImode || mode == HImode || add_operand (op, mode);
- case CONSTANT_P_RTX:
- return 1;
-
default:
break;
}
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index 371ffe8e1c0..ae9ff3a1b80 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -1116,7 +1116,7 @@ arm_compute_func_type (void)
&& TREE_THIS_VOLATILE (current_function_decl))
type |= ARM_FT_VOLATILE;
- if (current_function_needs_context)
+ if (cfun->static_chain_decl != NULL)
type |= ARM_FT_NESTED;
attr = DECL_ATTRIBUTES (current_function_decl);
@@ -10227,10 +10227,10 @@ arm_compute_initial_elimination_offset (unsigned int from, unsigned int to)
frame pointer and the arg pointer coincide. */
if (offsets->frame == offsets->saved_regs)
return 0;
- /* FIXME: Not sure about this. Maybe we should always return 0 ? */
- return (frame_pointer_needed
- && current_function_needs_context
- && ! cfun->machine->uses_anonymous_args) ? 4 : 0;
+ /* FIXME: Not sure about this. Maybe we should always return 0 ? */
+ return (frame_pointer_needed
+ && cfun->static_chain_decl != NULL
+ && ! cfun->machine->uses_anonymous_args) ? 4 : 0;
case STACK_POINTER_REGNUM:
/* If nothing has been pushed on the stack at all
diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h
index 724a0d15646..518e387bba8 100644
--- a/gcc/config/arm/arm.h
+++ b/gcc/config/arm/arm.h
@@ -2046,7 +2046,6 @@ typedef struct
#define THUMB_LEGITIMATE_CONSTANT_P(X) \
( GET_CODE (X) == CONST_INT \
|| GET_CODE (X) == CONST_DOUBLE \
- || GET_CODE (X) == CONSTANT_P_RTX \
|| CONSTANT_ADDRESS_P (X) \
|| flag_pic)
diff --git a/gcc/config/avr/avr.h b/gcc/config/avr/avr.h
index 79e3e585897..a78b42be449 100644
--- a/gcc/config/avr/avr.h
+++ b/gcc/config/avr/avr.h
@@ -765,9 +765,6 @@ extern int avr_case_values_threshold;
#define FUNCTION_MODE HImode
- /* 1 3 */
-#define INTEGRATE_THRESHOLD(DECL) (1 + (3 * list_length (DECL_ARGUMENTS (DECL)) / 2))
-
#define DOLLARS_IN_IDENTIFIERS 0
#define NO_DOLLAR_IN_LABEL 1
diff --git a/gcc/config/c4x/c4x.c b/gcc/config/c4x/c4x.c
index 0dad6a4c97c..850bcef44b9 100644
--- a/gcc/config/c4x/c4x.c
+++ b/gcc/config/c4x/c4x.c
@@ -2940,9 +2940,6 @@ const_operand (register rtx op, register enum machine_mode mode)
case Pmode:
#endif
case QImode:
- if (GET_CODE (op) == CONSTANT_P_RTX)
- return 1;
-
if (GET_CODE (op) != CONST_INT
|| (GET_MODE (op) != VOIDmode && GET_MODE (op) != mode)
|| GET_MODE_CLASS (mode) != MODE_INT)
diff --git a/gcc/config/cris/cris.c b/gcc/config/cris/cris.c
index a975f0b8509..9ca9d2d3551 100644
--- a/gcc/config/cris/cris.c
+++ b/gcc/config/cris/cris.c
@@ -2488,7 +2488,6 @@ cris_symbol (rtx x)
case CONST_INT:
case CONST_DOUBLE:
- case CONSTANT_P_RTX:
return 0;
default:
@@ -2550,7 +2549,6 @@ cris_gotless_symbol (rtx x)
case CONST_INT:
case CONST_DOUBLE:
- case CONSTANT_P_RTX:
return 0;
default:
@@ -2595,7 +2593,6 @@ cris_got_symbol (rtx x)
case CONST_INT:
case CONST_DOUBLE:
- case CONSTANT_P_RTX:
return 0;
default:
diff --git a/gcc/config/frv/frv.h b/gcc/config/frv/frv.h
index e6baec07973..9c62e36ed40 100644
--- a/gcc/config/frv/frv.h
+++ b/gcc/config/frv/frv.h
@@ -2639,8 +2639,7 @@ fixup_section (void) \
( GET_CODE (X) == CONST_INT \
|| GET_CODE (X) == CONST_DOUBLE \
|| (GET_CODE (X) == HIGH && GET_CODE (XEXP (X, 0)) == CONST_INT) \
- || got12_operand (X, VOIDmode) \
- || GET_CODE (X) == CONSTANT_P_RTX)
+ || got12_operand (X, VOIDmode)) \
/* The Overall Framework of an Assembler File. */
diff --git a/gcc/config/h8300/h8300.c b/gcc/config/h8300/h8300.c
index 789bb00c537..9efa140c23b 100644
--- a/gcc/config/h8300/h8300.c
+++ b/gcc/config/h8300/h8300.c
@@ -384,7 +384,7 @@ h8300_emit_stack_adjustment (int sign, unsigned int size)
if (TARGET_H8300
&& size > 4
&& !h8300_current_function_interrupt_function_p ()
- && !(current_function_needs_context && sign < 0))
+ && !(cfun->static_chain_decl != NULL && sign < 0))
{
rtx r3 = gen_rtx_REG (Pmode, 3);
emit_insn (gen_movhi (r3, GEN_INT (sign * size)));
diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c
index e27ca031fb4..e15a8a7c8d5 100644
--- a/gcc/config/ia64/ia64.c
+++ b/gcc/config/ia64/ia64.c
@@ -715,7 +715,6 @@ int
gr_reg_or_5bit_operand (rtx op, enum machine_mode mode)
{
return ((GET_CODE (op) == CONST_INT && INTVAL (op) >= 0 && INTVAL (op) < 32)
- || GET_CODE (op) == CONSTANT_P_RTX
|| gr_register_operand (op, mode));
}
@@ -725,7 +724,6 @@ int
gr_reg_or_6bit_operand (rtx op, enum machine_mode mode)
{
return ((GET_CODE (op) == CONST_INT && CONST_OK_FOR_M (INTVAL (op)))
- || GET_CODE (op) == CONSTANT_P_RTX
|| gr_register_operand (op, mode));
}
@@ -735,7 +733,6 @@ int
gr_reg_or_8bit_operand (rtx op, enum machine_mode mode)
{
return ((GET_CODE (op) == CONST_INT && CONST_OK_FOR_K (INTVAL (op)))
- || GET_CODE (op) == CONSTANT_P_RTX
|| gr_register_operand (op, mode));
}
@@ -745,7 +742,6 @@ int
grfr_reg_or_8bit_operand (rtx op, enum machine_mode mode)
{
return ((GET_CODE (op) == CONST_INT && CONST_OK_FOR_K (INTVAL (op)))
- || GET_CODE (op) == CONSTANT_P_RTX
|| grfr_register_operand (op, mode));
}
@@ -756,7 +752,6 @@ int
gr_reg_or_8bit_adjusted_operand (rtx op, enum machine_mode mode)
{
return ((GET_CODE (op) == CONST_INT && CONST_OK_FOR_L (INTVAL (op)))
- || GET_CODE (op) == CONSTANT_P_RTX
|| gr_register_operand (op, mode));
}
@@ -770,7 +765,6 @@ gr_reg_or_8bit_and_adjusted_operand (rtx op, enum machine_mode mode)
{
return ((GET_CODE (op) == CONST_INT && CONST_OK_FOR_K (INTVAL (op))
&& CONST_OK_FOR_L (INTVAL (op)))
- || GET_CODE (op) == CONSTANT_P_RTX
|| gr_register_operand (op, mode));
}
@@ -780,7 +774,6 @@ int
gr_reg_or_14bit_operand (rtx op, enum machine_mode mode)
{
return ((GET_CODE (op) == CONST_INT && CONST_OK_FOR_I (INTVAL (op)))
- || GET_CODE (op) == CONSTANT_P_RTX
|| gr_register_operand (op, mode));
}
@@ -790,7 +783,6 @@ int
gr_reg_or_22bit_operand (rtx op, enum machine_mode mode)
{
return ((GET_CODE (op) == CONST_INT && CONST_OK_FOR_J (INTVAL (op)))
- || GET_CODE (op) == CONSTANT_P_RTX
|| gr_register_operand (op, mode));
}
@@ -799,8 +791,7 @@ gr_reg_or_22bit_operand (rtx op, enum machine_mode mode)
int
shift_count_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
{
- return ((GET_CODE (op) == CONST_INT && CONST_OK_FOR_M (INTVAL (op)))
- || GET_CODE (op) == CONSTANT_P_RTX);
+ return (GET_CODE (op) == CONST_INT && CONST_OK_FOR_M (INTVAL (op)));
}
/* Return 1 if OP is a 5 bit immediate operand. */
@@ -808,9 +799,8 @@ shift_count_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
int
shift_32bit_count_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
{
- return ((GET_CODE (op) == CONST_INT
- && (INTVAL (op) >= 0 && INTVAL (op) < 32))
- || GET_CODE (op) == CONSTANT_P_RTX);
+ return (GET_CODE (op) == CONST_INT
+ && (INTVAL (op) >= 0 && INTVAL (op) < 32));
}
/* Return 1 if OP is a 2, 4, 8, or 16 immediate operand. */
diff --git a/gcc/config/ia64/ia64.h b/gcc/config/ia64/ia64.h
index 29f78c43a0e..b0f4dc64bce 100644
--- a/gcc/config/ia64/ia64.h
+++ b/gcc/config/ia64/ia64.h
@@ -2178,7 +2178,7 @@ do { \
{ "destination_operand", {SUBREG, REG, MEM}}, \
{ "not_postinc_memory_operand", {MEM}}, \
{ "move_operand", {SUBREG, REG, MEM, CONST_INT, CONST_DOUBLE, \
- CONSTANT_P_RTX, SYMBOL_REF, CONST, LABEL_REF}}, \
+ SYMBOL_REF, CONST, LABEL_REF}}, \
{ "gr_register_operand", {SUBREG, REG}}, \
{ "fr_register_operand", {SUBREG, REG}}, \
{ "grfr_register_operand", {SUBREG, REG}}, \
@@ -2186,19 +2186,16 @@ do { \
{ "fr_nonimmediate_operand", {SUBREG, REG, MEM}}, \
{ "grfr_nonimmediate_operand", {SUBREG, REG, MEM}}, \
{ "gr_reg_or_0_operand", {SUBREG, REG, CONST_INT}}, \
-{ "gr_reg_or_5bit_operand", {SUBREG, REG, CONST_INT, CONSTANT_P_RTX}}, \
-{ "gr_reg_or_6bit_operand", {SUBREG, REG, CONST_INT, CONSTANT_P_RTX}}, \
-{ "gr_reg_or_8bit_operand", {SUBREG, REG, CONST_INT, CONSTANT_P_RTX}}, \
-{ "grfr_reg_or_8bit_operand", {SUBREG, REG, CONST_INT, CONSTANT_P_RTX}}, \
-{ "gr_reg_or_8bit_adjusted_operand", {SUBREG, REG, CONST_INT, \
- CONSTANT_P_RTX}}, \
-{ "gr_reg_or_8bit_and_adjusted_operand", {SUBREG, REG, CONST_INT, \
- CONSTANT_P_RTX}}, \
-{ "gr_reg_or_14bit_operand", {SUBREG, REG, CONST_INT, CONSTANT_P_RTX}}, \
-{ "gr_reg_or_22bit_operand", {SUBREG, REG, CONST_INT, CONSTANT_P_RTX}}, \
-{ "shift_count_operand", {SUBREG, REG, CONST_INT, CONSTANT_P_RTX}}, \
-{ "shift_32bit_count_operand", {SUBREG, REG, CONST_INT, \
- CONSTANT_P_RTX}}, \
+{ "gr_reg_or_5bit_operand", {SUBREG, REG, CONST_INT}}, \
+{ "gr_reg_or_6bit_operand", {SUBREG, REG, CONST_INT}}, \
+{ "gr_reg_or_8bit_operand", {SUBREG, REG, CONST_INT}}, \
+{ "grfr_reg_or_8bit_operand", {SUBREG, REG, CONST_INT}}, \
+{ "gr_reg_or_8bit_adjusted_operand", {SUBREG, REG, CONST_INT}}, \
+{ "gr_reg_or_8bit_and_adjusted_operand", {SUBREG, REG, CONST_INT}}, \
+{ "gr_reg_or_14bit_operand", {SUBREG, REG, CONST_INT}}, \
+{ "gr_reg_or_22bit_operand", {SUBREG, REG, CONST_INT}}, \
+{ "shift_count_operand", {SUBREG, REG, CONST_INT}}, \
+{ "shift_32bit_count_operand", {SUBREG, REG, CONST_INT}}, \
{ "shladd_operand", {CONST_INT}}, \
{ "fetchadd_operand", {CONST_INT}}, \
{ "fr_reg_or_fp01_operand", {SUBREG, REG, CONST_DOUBLE}}, \
diff --git a/gcc/config/ip2k/ip2k.h b/gcc/config/ip2k/ip2k.h
index 4685d030c1c..a069bf21d18 100644
--- a/gcc/config/ip2k/ip2k.h
+++ b/gcc/config/ip2k/ip2k.h
@@ -767,9 +767,6 @@ do { \
#define FUNCTION_MODE HImode
-#define INTEGRATE_THRESHOLD(DECL) \
- (1 + (3 * list_length (DECL_ARGUMENTS (DECL)) / 2))
-
#define DOLLARS_IN_IDENTIFIERS 0
extern int ip2k_reorg_in_progress;
diff --git a/gcc/config/m32r/m32r.c b/gcc/config/m32r/m32r.c
index 734d75743c1..fa898bcd189 100644
--- a/gcc/config/m32r/m32r.c
+++ b/gcc/config/m32r/m32r.c
@@ -771,8 +771,6 @@ move_src_operand (rtx op, enum machine_mode mode)
}
else
return 1;
- case CONSTANT_P_RTX:
- return 1;
case CONST_DOUBLE :
if (mode == SFmode)
return 1;
diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c
index 2925ffd3d96..5bcdbd938bc 100644
--- a/gcc/config/mips/mips.c
+++ b/gcc/config/mips/mips.c
@@ -1277,9 +1277,6 @@ mips_const_insns (rtx x)
switch (GET_CODE (x))
{
- case CONSTANT_P_RTX:
- return 1;
-
case HIGH:
if (TARGET_MIPS16
|| !mips_symbolic_constant_p (XEXP (x, 0), &symbol_type)
diff --git a/gcc/config/mmix/mmix.c b/gcc/config/mmix/mmix.c
index 8bf8e0eae5e..5c3014c4731 100644
--- a/gcc/config/mmix/mmix.c
+++ b/gcc/config/mmix/mmix.c
@@ -1008,7 +1008,6 @@ mmix_constant_address_p (rtx x)
case SYMBOL_REF:
return 1;
- case CONSTANT_P_RTX:
case HIGH:
/* FIXME: Don't know how to dissect these. Avoid them for now,
except we know they're constants. */
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c
index d4a286d4d8f..0cc1ed7eb99 100644
--- a/gcc/config/pa/pa.c
+++ b/gcc/config/pa/pa.c
@@ -592,9 +592,6 @@ move_src_operand (rtx op, enum machine_mode mode)
if (register_operand (op, mode))
return 1;
- if (GET_CODE (op) == CONSTANT_P_RTX)
- return 1;
-
if (GET_CODE (op) == CONST_INT)
return cint_ok_for_move (INTVAL (op));
diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h
index 200936e8e49..b08021dd472 100644
--- a/gcc/config/pa/pa.h
+++ b/gcc/config/pa/pa.h
@@ -1987,7 +1987,7 @@ do { \
#define PREDICATE_CODES \
{"reg_or_0_operand", {SUBREG, REG, CONST_INT, CONST_DOUBLE}}, \
{"call_operand_address", {LABEL_REF, SYMBOL_REF, CONST_INT, \
- CONST_DOUBLE, CONST, HIGH, CONSTANT_P_RTX}}, \
+ CONST_DOUBLE, CONST, HIGH}}, \
{"indexed_memory_operand", {SUBREG, MEM}}, \
{"symbolic_operand", {SYMBOL_REF, LABEL_REF, CONST}}, \
{"symbolic_memory_operand", {SUBREG, MEM}}, \
@@ -1995,7 +1995,7 @@ do { \
{"reg_or_0_or_nonsymb_mem_operand", {SUBREG, REG, MEM, CONST_INT, \
CONST_DOUBLE}}, \
{"move_dest_operand", {SUBREG, REG, MEM}}, \
- {"move_src_operand", {SUBREG, REG, CONSTANT_P_RTX, CONST_INT, MEM}}, \
+ {"move_src_operand", {SUBREG, REG, CONST_INT, MEM}}, \
{"reg_or_cint_move_operand", {SUBREG, REG, CONST_INT}}, \
{"pic_label_operand", {LABEL_REF, CONST}}, \
{"fp_reg_operand", {REG}}, \
diff --git a/gcc/config/rs6000/aix.h b/gcc/config/rs6000/aix.h
index c530f988e25..88752079772 100644
--- a/gcc/config/rs6000/aix.h
+++ b/gcc/config/rs6000/aix.h
@@ -51,12 +51,37 @@
#define REAL_NM_FILE_NAME "/usr/ucb/nm"
#define USER_LABEL_PREFIX ""
+
/* Don't turn -B into -L if the argument specifies a relative file name. */
#define RELATIVE_PREFIX_NOT_LINKDIR
/* Because of the above, we must have gcc search itself to find libgcc.a. */
#define LINK_LIBGCC_SPECIAL_1
+#define MFWRAP_SPEC " %{static: %{fmudflap|fmudflapth: \
+ -brename:malloc,__wrap_malloc -brename:__real_malloc,malloc \
+ -brename:free,__wrap_free -brename:__real_free,free \
+ -brename:calloc,__wrap_calloc -brename:__real_calloc,calloc \
+ -brename:realloc,__wrap_realloc -brename:__real_realloc,realloc \
+ -brename:mmap,__wrap_mmap -brename:__real_mmap,mmap \
+ -brename:munmap,__wrap_munmap -brename:__real_munmap,munmap \
+ -brename:alloca,__wrap_alloca -brename:__real_alloca,alloca \
+} %{fmudflapth: \
+ -brename:pthread_create,__wrap_pthread_create \
+ -brename:__real_pthread_create,pthread_create \
+ -brename:pthread_join,__wrap_pthread_join \
+ -brename:__real_pthread_join,pthread_join \
+ -brename:pthread_exit,__wrap_pthread_exit \
+ -brename:__real_pthread_exit,pthread_exit \
+}} %{fmudflap|fmudflapth: \
+ -brename:main,__wrap_main -brename:__real_main,main \
+}"
+
+#define MFLIB_SPEC " %{fmudflap: -lmudflap \
+ %{static:%(link_gcc_c_sequence) -lmudflap}} \
+ %{fmudflapth: -lmudflapth -lpthread \
+ %{static:%(link_gcc_c_sequence) -lmudflapth}} "
+
/* Names to predefine in the preprocessor for this target machine. */
#define TARGET_OS_AIX_CPP_BUILTINS() \
do \
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 235e704014a..9f6301b3910 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -2419,10 +2419,6 @@ input_operand (rtx op, enum machine_mode mode)
if (memory_operand (op, mode))
return 1;
- /* Only a tiny bit of handling for CONSTANT_P_RTX is necessary. */
- if (GET_CODE (op) == CONSTANT_P_RTX)
- return 1;
-
/* For floating-point, easy constants are valid. */
if (GET_MODE_CLASS (mode) == MODE_FLOAT
&& CONSTANT_P (op)
@@ -3753,10 +3749,6 @@ rs6000_emit_move (rtx dest, rtx source, enum machine_mode mode)
|| ! nonimmediate_operand (operands[0], mode)))
goto emit_set;
- /* Handle the case of CONSTANT_P_RTX. */
- if (GET_CODE (operands[1]) == CONSTANT_P_RTX)
- goto emit_set;
-
/* 128-bit constant floating-point values on Darwin should really be
loaded as two parts. */
if ((DEFAULT_ABI == ABI_AIX || DEFAULT_ABI == ABI_DARWIN)
@@ -13125,7 +13117,8 @@ rs6000_output_function_epilogue (FILE *file,
Java is 13. Objective-C is 14. */
if (! strcmp (language_string, "GNU C"))
i = 0;
- else if (! strcmp (language_string, "GNU F77"))
+ else if (! strcmp (language_string, "GNU F77")
+ || ! strcmp (language_string, "GNU F95"))
i = 1;
else if (! strcmp (language_string, "GNU Pascal"))
i = 2;
@@ -14120,7 +14113,7 @@ output_function_profiler (FILE *file, int labelno)
asm_fprintf (file, "\tmflr %s\n", reg_names[0]);
asm_fprintf (file, "\tstd %s,16(%s)\n", reg_names[0], reg_names[1]);
- if (current_function_needs_context)
+ if (cfun->static_chain_decl != NULL)
{
asm_fprintf (file, "\tstd %s,24(%s)\n",
reg_names[STATIC_CHAIN_REGNUM], reg_names[1]);
diff --git a/gcc/config/rs6000/t-rs6000 b/gcc/config/rs6000/t-rs6000
index caa07153ad3..9546461e57d 100644
--- a/gcc/config/rs6000/t-rs6000
+++ b/gcc/config/rs6000/t-rs6000
@@ -18,3 +18,23 @@ rs6000-c.o: $(srcdir)/config/rs6000/rs6000-c.c \
# The rs6000 backend doesn't cause warnings in these files.
insn-conditions.o-warn =
+# The files below trigger warnings in tree-ssa because of the gimplifier
+# emitting code that confuse the compiler into thinking that some variables
+# are used uninitialized.
+jump.o-warn = -Wno-error
+regmove.o-warn = -Wno-error
+c-typeck.o-warn = -Wno-error
+cfgrtl.o-warn = -Wno-error
+combine.o-warn = -Wno-error
+fold-const.o-warn = -Wno-error
+ifcvt.o-warn = -Wno-error
+reload1.o-warn = -Wno-error
+rtlanal.o-warn = -Wno-error
+cp/decl2.o-warn = -Wno-error
+cp/pt.o-warn = -Wno-error
+f/where.o-warn = -Wno-error
+java/expr.o-warn = -Wno-error
+objc/objc-act.o-warn = -Wno-error
+rs6000.o-warn = -Wno-error
+insn-emit.o-warn = -Wno-error
+simplify-rtx.o-warn = -Wno-error
diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c
index e5850957bfe..9e786bfdf70 100644
--- a/gcc/config/s390/s390.c
+++ b/gcc/config/s390/s390.c
@@ -2956,18 +2956,14 @@ s390_expand_movstr (rtx dst, rtx src, rtx len)
else
{
rtx dst_addr, src_addr, count, blocks, temp;
+ rtx loop_end_label = gen_label_rtx ();
rtx end_label = gen_label_rtx ();
enum machine_mode mode;
- tree type;
mode = GET_MODE (len);
if (mode == VOIDmode)
mode = Pmode;
- type = lang_hooks.types.type_for_mode (mode, 1);
- if (!type)
- abort ();
-
dst_addr = gen_reg_rtx (Pmode);
src_addr = gen_reg_rtx (Pmode);
count = gen_reg_rtx (mode);
@@ -2990,10 +2986,9 @@ s390_expand_movstr (rtx dst, rtx src, rtx len)
if (temp != blocks)
emit_move_insn (blocks, temp);
+ emit_cmp_and_jump_insns (blocks, const0_rtx,
+ EQ, NULL_RTX, mode, 1, loop_end_label);
expand_start_loop (1);
- expand_exit_loop_top_cond (0, build (NE_EXPR, type,
- make_tree (type, blocks),
- make_tree (type, const0_rtx)));
emit_insn (gen_movstr_short (dst, src, GEN_INT (255)));
s390_load_address (dst_addr,
@@ -3005,7 +3000,10 @@ s390_expand_movstr (rtx dst, rtx src, rtx len)
if (temp != blocks)
emit_move_insn (blocks, temp);
+ emit_cmp_and_jump_insns (blocks, const0_rtx,
+ EQ, NULL_RTX, mode, 1, loop_end_label);
expand_end_loop ();
+ emit_label (loop_end_label);
emit_insn (gen_movstr_short (dst, src,
convert_to_mode (Pmode, count, 1)));
@@ -3032,18 +3030,14 @@ s390_expand_clrstr (rtx dst, rtx len)
else
{
rtx dst_addr, src_addr, count, blocks, temp;
+ rtx loop_end_label = gen_label_rtx ();
rtx end_label = gen_label_rtx ();
enum machine_mode mode;
- tree type;
mode = GET_MODE (len);
if (mode == VOIDmode)
mode = Pmode;
- type = lang_hooks.types.type_for_mode (mode, 1);
- if (!type)
- abort ();
-
dst_addr = gen_reg_rtx (Pmode);
src_addr = gen_reg_rtx (Pmode);
count = gen_reg_rtx (mode);
@@ -3064,10 +3058,9 @@ s390_expand_clrstr (rtx dst, rtx len)
if (temp != blocks)
emit_move_insn (blocks, temp);
+ emit_cmp_and_jump_insns (blocks, const0_rtx,
+ EQ, NULL_RTX, mode, 1, loop_end_label);
expand_start_loop (1);
- expand_exit_loop_top_cond (0, build (NE_EXPR, type,
- make_tree (type, blocks),
- make_tree (type, const0_rtx)));
emit_insn (gen_clrstr_short (dst, GEN_INT (255)));
s390_load_address (dst_addr,
@@ -3077,7 +3070,10 @@ s390_expand_clrstr (rtx dst, rtx len)
if (temp != blocks)
emit_move_insn (blocks, temp);
+ emit_cmp_and_jump_insns (blocks, const0_rtx,
+ EQ, NULL_RTX, mode, 1, loop_end_label);
expand_end_loop ();
+ emit_label (loop_end_label);
emit_insn (gen_clrstr_short (dst, convert_to_mode (Pmode, count, 1)));
emit_label (end_label);
@@ -3120,18 +3116,14 @@ s390_expand_cmpmem (rtx target, rtx op0, rtx op1, rtx len)
else
{
rtx addr0, addr1, count, blocks, temp;
+ rtx loop_end_label = gen_label_rtx ();
rtx end_label = gen_label_rtx ();
enum machine_mode mode;
- tree type;
mode = GET_MODE (len);
if (mode == VOIDmode)
mode = Pmode;
- type = lang_hooks.types.type_for_mode (mode, 1);
- if (!type)
- abort ();
-
addr0 = gen_reg_rtx (Pmode);
addr1 = gen_reg_rtx (Pmode);
count = gen_reg_rtx (mode);
@@ -3154,10 +3146,9 @@ s390_expand_cmpmem (rtx target, rtx op0, rtx op1, rtx len)
if (temp != blocks)
emit_move_insn (blocks, temp);
+ emit_cmp_and_jump_insns (blocks, const0_rtx,
+ EQ, NULL_RTX, mode, 1, loop_end_label);
expand_start_loop (1);
- expand_exit_loop_top_cond (0, build (NE_EXPR, type,
- make_tree (type, blocks),
- make_tree (type, const0_rtx)));
emit_insn (gen_cmpmem_short (op0, op1, GEN_INT (255)));
temp = gen_rtx_NE (VOIDmode, gen_rtx_REG (CCSmode, 33), const0_rtx);
@@ -3175,7 +3166,10 @@ s390_expand_cmpmem (rtx target, rtx op0, rtx op1, rtx len)
if (temp != blocks)
emit_move_insn (blocks, temp);
+ emit_cmp_and_jump_insns (blocks, const0_rtx,
+ EQ, NULL_RTX, mode, 1, loop_end_label);
expand_end_loop ();
+ emit_label (loop_end_label);
emit_insn (gen_cmpmem_short (op0, op1,
convert_to_mode (Pmode, count, 1)));
diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c
index 5b44f1be03c..30526c2e694 100644
--- a/gcc/config/sh/sh.c
+++ b/gcc/config/sh/sh.c
@@ -4704,7 +4704,7 @@ output_stack_adjust (int size, rtx reg, int epilogue_p,
for (i = FIRST_PARM_REG;
i < FIRST_PARM_REG + NPARM_REGS (SImode); i++)
CLEAR_HARD_REG_BIT (temps, i);
- if (current_function_needs_context)
+ if (cfun->static_chain_decl != NULL)
CLEAR_HARD_REG_BIT (temps, STATIC_CHAIN_REGNUM);
}
temp = scavenge_reg (&temps);
@@ -5161,7 +5161,7 @@ sh5_schedule_saves (HARD_REG_SET *live_regs_mask, save_schedule *schedule,
if (call_used_regs[i] && ! fixed_regs[i] && i != PR_MEDIA_REG
&& ! FUNCTION_ARG_REGNO_P (i)
&& i != FIRST_RET_REG
- && ! (current_function_needs_context && i == STATIC_CHAIN_REGNUM)
+ && ! (cfun->static_chain_decl != NULL && i == STATIC_CHAIN_REGNUM)
&& ! (current_function_calls_eh_return
&& (i == EH_RETURN_STACKADJ_REGNO
|| ((unsigned) i <= EH_RETURN_DATA_REGNO (0)
diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c
index 2192d967224..278ca9a26b0 100644
--- a/gcc/config/sparc/sparc.c
+++ b/gcc/config/sparc/sparc.c
@@ -1280,10 +1280,6 @@ input_operand (rtx op, enum machine_mode mode)
if (mode != VOIDmode && GET_MODE (op) != VOIDmode && mode != GET_MODE (op))
return 0;
- /* Accept CONSTANT_P_RTX, since it will be gone by CSE1 and result in 0/1. */
- if (GET_CODE (op) == CONSTANT_P_RTX)
- return 1;
-
/* Allow any one instruction integer constant, and all CONST_INT
variants when we are working in DImode and !arch64. */
if (GET_MODE_CLASS (mode) == MODE_INT
diff --git a/gcc/config/v850/v850.c b/gcc/config/v850/v850.c
index 83372624309..f9e54cc2df9 100644
--- a/gcc/config/v850/v850.c
+++ b/gcc/config/v850/v850.c
@@ -1136,7 +1136,6 @@ movsi_source_operand (rtx op, enum machine_mode mode)
must be done with HIGH & LO_SUM patterns. */
if (CONSTANT_P (op)
&& GET_CODE (op) != HIGH
- && GET_CODE (op) != CONSTANT_P_RTX
&& !(GET_CODE (op) == CONST_INT
&& (CONST_OK_FOR_J (INTVAL (op))
|| CONST_OK_FOR_K (INTVAL (op))
diff --git a/gcc/config/xtensa/xtensa.c b/gcc/config/xtensa/xtensa.c
index d1103681345..89d8c9ddf3d 100644
--- a/gcc/config/xtensa/xtensa.c
+++ b/gcc/config/xtensa/xtensa.c
@@ -627,11 +627,6 @@ move_operand (rtx op, enum machine_mode mode)
case HImode:
case QImode:
- /* Accept CONSTANT_P_RTX, since it will be gone by CSE1 and
- result in 0/1. */
- if (GET_CODE (op) == CONSTANT_P_RTX)
- return TRUE;
-
if (GET_CODE (op) == CONST_INT && xtensa_simm12b (INTVAL (op)))
return TRUE;
break;
@@ -1252,7 +1247,6 @@ int
xtensa_emit_move_sequence (rtx *operands, enum machine_mode mode)
{
if (CONSTANT_P (operands[1])
- && GET_CODE (operands[1]) != CONSTANT_P_RTX
&& (GET_CODE (operands[1]) != CONST_INT
|| !xtensa_simm12b (INTVAL (operands[1]))))
{
@@ -2229,7 +2223,7 @@ long
compute_frame_size (int size)
{
/* Add space for the incoming static chain value. */
- if (current_function_needs_context)
+ if (cfun->static_chain_decl != NULL)
size += (1 * UNITS_PER_WORD);
xtensa_current_frame_size =