diff options
author | Claudiu Zissulescu <claziss@synopsys.com> | 2018-01-31 11:01:34 +0100 |
---|---|---|
committer | Claudiu Zissulescu <claziss@gcc.gnu.org> | 2018-01-31 11:01:34 +0100 |
commit | 8180c03ff035fd70c4b8b1b4276dfce460d1e2bd (patch) | |
tree | 0b0908881e939c28f55e4d767bf88e4033f57b1b /gcc/config/arc/arc-protos.h | |
parent | 2f857e1b0750d79172031951ed22e538df7299f8 (diff) | |
download | gcc-8180c03ff035fd70c4b8b1b4276dfce460d1e2bd.zip gcc-8180c03ff035fd70c4b8b1b4276dfce460d1e2bd.tar.gz gcc-8180c03ff035fd70c4b8b1b4276dfce460d1e2bd.tar.bz2 |
[ARC] Add 'uncached' attribute.
The _Uncached type qualifier can be used to bypass the cache without
resorting to declaring variables as volatile.
gcc/
2018-01-31 Claudiu Zissulescu <claziss@synopsys.com>
* config/arc/arc-protos.h (arc_is_uncached_mem_p): Function proto.
* config/arc/arc.c (arc_handle_uncached_attribute): New function.
(arc_attribute_table): Add 'uncached' attribute.
(arc_print_operand): Print '.di' flag for uncached memory
accesses.
(arc_in_small_data_p): Do not consider for small data the uncached
types.
(arc_is_uncached_mem_p): New function.
* config/arc/predicates.md (compact_store_memory_operand): Check
for uncached memory accesses.
(nonvol_nonimm_operand): Likewise.
* gcc/doc/extend.texi (ARC Type Attribute): New subsection.
gcc/testsuite
2018-01-31 Claudiu Zissulescu <claziss@synopsys.com>
* gcc.target/arc/uncached.c: New test.
From-SVN: r257222
Diffstat (limited to 'gcc/config/arc/arc-protos.h')
-rw-r--r-- | gcc/config/arc/arc-protos.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/config/arc/arc-protos.h b/gcc/config/arc/arc-protos.h index 76b82bf..b469cfc 100644 --- a/gcc/config/arc/arc-protos.h +++ b/gcc/config/arc/arc-protos.h @@ -47,6 +47,7 @@ extern void arc_expand_compare_and_swap (rtx *); extern bool compact_memory_operand_p (rtx, machine_mode, bool, bool); extern int arc_return_address_register (unsigned int); extern unsigned int arc_compute_function_type (struct function *); +extern bool arc_is_uncached_mem_p (rtx); #endif /* RTX_CODE */ extern unsigned int arc_compute_frame_size (int); |