aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/arc/arc-c.c
diff options
context:
space:
mode:
authorClaudiu Zissulescu <claziss@synopsys.com>2017-09-01 13:43:51 +0200
committerClaudiu Zissulescu <claziss@gcc.gnu.org>2017-09-01 13:43:51 +0200
commita2de90a45a9193cb19a5837110698fe59d6deb41 (patch)
treeefe25ca85f6d3a5f7496251262247e817b30cc0e /gcc/config/arc/arc-c.c
parent782bdf21895dc769cfd85a08c8c1b780924775f3 (diff)
downloadgcc-a2de90a45a9193cb19a5837110698fe59d6deb41.zip
gcc-a2de90a45a9193cb19a5837110698fe59d6deb41.tar.gz
gcc-a2de90a45a9193cb19a5837110698fe59d6deb41.tar.bz2
[ARC] Reimplement ZOL support.
2017-05-22 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc-c.c (__ARC_LPC_WIDTH__): Add builtin define. * config/arc/arc.c (ARC_MAX_LOOP_LENGTH): Define. (arc_conditional_register_usage): Remove ARC600 lp_count exception. (arc_file_start): Emit Tag_ARC_CPU_variation. (arc_can_use_doloop_p): New conditions to use ZOLs. (hwloop_fail): New function. (hwloop_optimize): Likewise. (hwloop_pattern_reg): Likewise. (arc_doloop_hooks): New struct, to be used with reorg_loops. (arc_reorg_loops): New function, calls reorg_loops. (arc_reorg): Call arc_reorg_loops. Remove old ZOL handling. (arc600_corereg_hazard): Remove ZOL checking, case handled by hwloop_optimize. (arc_loop_hazard): Remove function, functionality moved into hwloop_optimize. (arc_hazard): Remove arc_loop_hazard call. (arc_adjust_insn_length): Remove ZOL handling, functionality moved into hwloop_optimize. (arc_label_align): Remove ZOL handling. * config/arc/arc.h (LOOP_ALIGN): Changed to 0. * config/arc/arc.md (doloop_begin): Remove pattern. (doloop_begin_i): Likewise. (doloop_end_i): Likewise. (doloop_fallback): Likewise. (doloop_fallback_m): Likewise. (doloop_end): Reimplement expand. (arc_lp): New pattern for LP instruction. (loop_end): New pattern. (loop_fail): Likewise. (decrement_and_branch_until_zero): Likewise. * config/arc/arc.opt (mlpc-width): New option. * doc/invoke.texi (mlpc-width): Document option. testsuite/ 2017-05-22 Claudiu Zissulescu <claziss@synopsys.com> * gcc.target/arc/loop-1.c: Deleted. From-SVN: r251589
Diffstat (limited to 'gcc/config/arc/arc-c.c')
-rw-r--r--gcc/config/arc/arc-c.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/config/arc/arc-c.c b/gcc/config/arc/arc-c.c
index de877a1..44ff338 100644
--- a/gcc/config/arc/arc-c.c
+++ b/gcc/config/arc/arc-c.c
@@ -62,6 +62,8 @@ arc_cpu_cpp_builtins (cpp_reader * pfile)
builtin_define_with_int_value ("__ARC_TLS_REGNO__",
arc_tp_regno);
+ builtin_define_with_int_value ("__ARC_LPC_WIDTH__", arc_lpcwidth);
+
builtin_define (TARGET_BIG_ENDIAN
? "__BIG_ENDIAN__" : "__LITTLE_ENDIAN__");
if (TARGET_BIG_ENDIAN)