summaryrefslogtreecommitdiff
path: root/gcc/config/epiphany
diff options
context:
space:
mode:
authorbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2016-02-10 15:13:54 +0000
committerbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2016-02-10 15:13:54 +0000
commit8cff878b277f9af6c2827a87581baac5f768e12a (patch)
treed4e178503efd243eed24ff3b753cd998370d75d4 /gcc/config/epiphany
parent9610b14f8599a9db94822d3f0923b58b2f1177dc (diff)
downloadgcc-8cff878b277f9af6c2827a87581baac5f768e12a.tar.gz
[./]
2016-02-10 Basile Starynkevitch <basile@starynkevitch.net> {{merging with some of GCC 6, using svn merge -r222130:226090 ^/trunk ; UNSTABLE}} [gcc/] 2016-02-10 Basile Starynkevitch <basile@starynkevitch.net> {{ merging with trunk 226090 ; UNSTABLE }} * melt-run.proto.h: include tree-ssa-scopedtables.h * tree-ssa-dom.c: skip second record_edge_info git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@233272 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/epiphany')
-rw-r--r--gcc/config/epiphany/epiphany.c48
-rw-r--r--gcc/config/epiphany/epiphany.h6
-rw-r--r--gcc/config/epiphany/epiphany.md10
-rw-r--r--gcc/config/epiphany/mode-switch-use.c16
-rw-r--r--gcc/config/epiphany/resolve-sw-modes.c19
5 files changed, 31 insertions, 68 deletions
diff --git a/gcc/config/epiphany/epiphany.c b/gcc/config/epiphany/epiphany.c
index 12aac13c268..593c9a19124 100644
--- a/gcc/config/epiphany/epiphany.c
+++ b/gcc/config/epiphany/epiphany.c
@@ -21,37 +21,25 @@ along with GCC; see the file COPYING3. If not see
#include "config.h"
#include "system.h"
#include "coretypes.h"
-#include "tm.h"
-#include "hash-set.h"
-#include "machmode.h"
-#include "vec.h"
-#include "double-int.h"
-#include "input.h"
-#include "alias.h"
-#include "symtab.h"
-#include "wide-int.h"
-#include "inchash.h"
+#include "backend.h"
+#include "cfghooks.h"
#include "tree.h"
+#include "rtl.h"
+#include "df.h"
+#include "alias.h"
#include "fold-const.h"
#include "stor-layout.h"
#include "varasm.h"
#include "calls.h"
#include "stringpool.h"
-#include "rtl.h"
#include "regs.h"
-#include "hard-reg-set.h"
-#include "real.h"
#include "insn-config.h"
#include "conditions.h"
#include "output.h"
#include "insn-attr.h"
#include "flags.h"
-#include "function.h"
#include "insn-codes.h"
#include "optabs.h"
-#include "hashtab.h"
-#include "statistics.h"
-#include "fixed-value.h"
#include "expmed.h"
#include "dojump.h"
#include "explow.h"
@@ -63,18 +51,12 @@ along with GCC; see the file COPYING3. If not see
#include "toplev.h"
#include "tm_p.h"
#include "target.h"
-#include "dominance.h"
-#include "cfg.h"
#include "cfgrtl.h"
#include "cfganal.h"
#include "lcm.h"
#include "cfgbuild.h"
#include "cfgcleanup.h"
-#include "predict.h"
-#include "basic-block.h"
-#include "df.h"
#include "langhooks.h"
-#include "ggc.h"
#include "tm-constrs.h"
#include "tree-pass.h" /* for current_pass */
#include "context.h"
@@ -590,7 +572,7 @@ sfunc_symbol (const char *name)
}
/* X and Y are two things to compare using CODE in IN_MODE.
- Emit the compare insn, construct the the proper cc reg in the proper
+ Emit the compare insn, construct the proper cc reg in the proper
mode, and return the rtx for the cc reg comparison in CMODE. */
rtx
@@ -669,7 +651,7 @@ gen_compare_reg (machine_mode cmode, enum rtx_code code,
else
x = force_reg (in_mode, x);
- pat = gen_rtx_SET (VOIDmode, cc_reg, gen_rtx_COMPARE (mode, x, y));
+ pat = gen_rtx_SET (cc_reg, gen_rtx_COMPARE (mode, x, y));
if (mode == CC_FP_EQmode || mode == CC_FP_GTEmode)
{
const char *name = mode == CC_FP_EQmode ? "__eqsf2" : "__gtesf2";
@@ -784,9 +766,12 @@ epiphany_arg_partial_bytes (cumulative_args_t cum, machine_mode mode,
scanned. In either case, *TOTAL contains the cost result. */
static bool
-epiphany_rtx_costs (rtx x, int code, int outer_code, int opno ATTRIBUTE_UNUSED,
+epiphany_rtx_costs (rtx x, machine_mode mode, int outer_code,
+ int opno ATTRIBUTE_UNUSED,
int *total, bool speed ATTRIBUTE_UNUSED)
{
+ int code = GET_CODE (x);
+
switch (code)
{
/* Small integers in the right context are as cheap as registers. */
@@ -827,7 +812,7 @@ epiphany_rtx_costs (rtx x, int code, int outer_code, int opno ATTRIBUTE_UNUSED,
return true;
case COMPARE:
- switch (GET_MODE (x))
+ switch (mode)
{
/* There are a number of single-insn combiner patterns that use
the flag side effects of arithmetic. */
@@ -1570,7 +1555,7 @@ frame_subreg_note (rtx set, int offset)
rtx src = simplify_gen_subreg (SImode, SET_SRC (set), DImode, offset);
rtx dst = simplify_gen_subreg (SImode, SET_DEST (set), DImode, offset);
- set = gen_rtx_SET (VOIDmode, dst ,src);
+ set = gen_rtx_SET (dst ,src);
RTX_FRAME_RELATED_P (set) = 1;
return set;
}
@@ -1625,7 +1610,7 @@ frame_insn (rtx x)
static rtx_insn *
frame_move_insn (rtx to, rtx from)
{
- return frame_insn (gen_rtx_SET (VOIDmode, to, from));
+ return frame_insn (gen_rtx_SET (to, from));
}
/* Generate a MEM referring to a varargs argument slot. */
@@ -1867,11 +1852,10 @@ epiphany_expand_prologue (void)
/* Instruction scheduling can separate the instruction setting IP from
INSN so that dwarf2out_frame_debug_expr becomes confused what the
temporary register is. Example: _gcov.o */
- note = gen_rtx_SET (VOIDmode, stack_pointer_rtx,
+ note = gen_rtx_SET (stack_pointer_rtx,
gen_rtx_PLUS (Pmode, stack_pointer_rtx, off));
note = gen_rtx_PARALLEL (VOIDmode,
- gen_rtvec (2, gen_rtx_SET (VOIDmode, mem2, reg),
- note));
+ gen_rtvec (2, gen_rtx_SET (mem2, reg), note));
add_reg_note (insn, REG_FRAME_RELATED_EXPR, note);
}
/* If there is only one or no register to save, yet we have a large frame,
diff --git a/gcc/config/epiphany/epiphany.h b/gcc/config/epiphany/epiphany.h
index ca8fa197892..62a3d9d7ee6 100644
--- a/gcc/config/epiphany/epiphany.h
+++ b/gcc/config/epiphany/epiphany.h
@@ -467,7 +467,7 @@ typedef struct GTY (()) machine_function
/* Define this macro if pushing a word onto the stack moves the stack
pointer to a smaller address. */
-#define STACK_GROWS_DOWNWARD
+#define STACK_GROWS_DOWNWARD 1
/* Define this to nonzero if the nominal address of the stack frame
is at the high-address end of the local variables;
@@ -692,7 +692,7 @@ typedef struct GTY (()) machine_function
/* Define this macro if it is as good or better to call a constant
function address than to call an address kept in a register. */
/* On the EPIPHANY, calling through registers is slow. */
-#define NO_FUNCTION_CSE
+#define NO_FUNCTION_CSE 1
/* Section selection. */
/* WARNING: These section names also appear in dwarf2out.c. */
@@ -845,7 +845,7 @@ do \
/* Define if operations between registers always perform the operation
on the full register even if a narrower mode is specified. */
-#define WORD_REGISTER_OPERATIONS
+#define WORD_REGISTER_OPERATIONS 1
/* Define if loading in MODE, an integral mode narrower than BITS_PER_WORD
will either zero-extend or sign-extend. The value of this macro should
diff --git a/gcc/config/epiphany/epiphany.md b/gcc/config/epiphany/epiphany.md
index 5dfde21190c..428092601c0 100644
--- a/gcc/config/epiphany/epiphany.md
+++ b/gcc/config/epiphany/epiphany.md
@@ -1870,7 +1870,7 @@
{
if (operands[3] != const0_rtx)
operands[2] = gen_rtx_MINUS (SImode, operands[2], operands[3]);
- operands[2] = gen_rtx_SET (VOIDmode, operands[0], operands[2]);
+ operands[2] = gen_rtx_SET (operands[0], operands[2]);
operands[3] = operands[0];
}
operands[4] = gen_rtx_fmt_ee (cmp_code, SImode,
@@ -2269,7 +2269,7 @@
(gen_rtx_PARALLEL
(VOIDmode,
gen_rtvec (2, gen_rtx_SET
- (VOIDmode, operands[0],
+ (operands[0],
gen_rtx_CALL (VOIDmode, operands[1], operands[2])),
gen_rtx_CLOBBER (VOIDmode,
gen_rtx_REG (SImode, GPR_LR)))));
@@ -2312,7 +2312,7 @@
(gen_rtx_PARALLEL
(VOIDmode,
gen_rtvec (2, gen_rtx_SET
- (VOIDmode, operands[0],
+ (operands[0],
gen_rtx_CALL (VOIDmode, operands[1], operands[2])),
ret_rtx)));
emit_insn (target_uninterruptible ? gen_gie (): gen_gid ());
@@ -2628,7 +2628,7 @@
(VOIDmode,
gen_rtvec
(4,
- gen_rtx_SET (VOIDmode, operands[5],
+ gen_rtx_SET (operands[5],
gen_rtx_MULT (SImode, operands[6], operands[4])),
gen_rtx_CLOBBER (VOIDmode, gen_rtx_REG (CC_FPmode, CCFP_REGNUM)),
operands[9], operands[10])));
@@ -2640,7 +2640,7 @@
(VOIDmode,
gen_rtvec
(4,
- gen_rtx_SET (VOIDmode, operands[7],
+ gen_rtx_SET (operands[7],
gen_rtx_MULT (SImode, operands[8], operands[4])),
gen_rtx_CLOBBER (VOIDmode, gen_rtx_REG (CC_FPmode, CCFP_REGNUM)),
operands[9], operands[10])));
diff --git a/gcc/config/epiphany/mode-switch-use.c b/gcc/config/epiphany/mode-switch-use.c
index ad107157738..e6d3dce2987 100644
--- a/gcc/config/epiphany/mode-switch-use.c
+++ b/gcc/config/epiphany/mode-switch-use.c
@@ -22,31 +22,21 @@ along with GCC; see the file COPYING3. If not see
#include "config.h"
#include "system.h"
#include "coretypes.h"
-#include "tm.h"
+#include "backend.h"
+#include "cfghooks.h"
#include "rtl.h"
-#include "hashtab.h"
-#include "hash-set.h"
-#include "vec.h"
-#include "machmode.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
+#include "df.h"
#include "emit-rtl.h"
#include "tree-pass.h"
#include "insn-attr.h"
#include "insn-config.h"
#include "recog.h"
#include "tm_p.h"
-#include "dominance.h"
-#include "cfg.h"
#include "cfgrtl.h"
#include "cfganal.h"
#include "lcm.h"
#include "cfgbuild.h"
#include "cfgcleanup.h"
-#include "predict.h"
-#include "basic-block.h"
-#include "df.h"
#ifndef TARGET_INSERT_MODE_SWITCH_USE
#define TARGET_INSERT_MODE_SWITCH_USE NULL
diff --git a/gcc/config/epiphany/resolve-sw-modes.c b/gcc/config/epiphany/resolve-sw-modes.c
index fc8ccf94b9c..de3204e5223 100644
--- a/gcc/config/epiphany/resolve-sw-modes.c
+++ b/gcc/config/epiphany/resolve-sw-modes.c
@@ -21,27 +21,16 @@ along with GCC; see the file COPYING3. If not see
#include "config.h"
#include "system.h"
#include "coretypes.h"
-#include "machmode.h"
-#include "tm.h"
-#include "hard-reg-set.h"
+#include "backend.h"
+#include "cfghooks.h"
+#include "rtl.h"
+#include "df.h"
#include "tm_p.h"
-#include "vec.h"
-#include "sbitmap.h"
-#include "predict.h"
-#include "hashtab.h"
-#include "hash-set.h"
-#include "input.h"
-#include "function.h"
-#include "dominance.h"
-#include "cfg.h"
#include "cfgrtl.h"
#include "cfganal.h"
#include "lcm.h"
#include "cfgbuild.h"
#include "cfgcleanup.h"
-#include "basic-block.h"
-#include "df.h"
-#include "rtl.h"
#include "insn-config.h"
#include "insn-codes.h"
#include "emit-rtl.h"