diff options
author | Claudiu Zissulescu <claziss@gmail.com> | 2020-12-11 18:27:21 +0200 |
---|---|---|
committer | Claudiu Zissulescu <claziss@synopsys.com> | 2020-12-11 18:29:56 +0200 |
commit | 78e9cfe1e29902a887853142a5e417500fe90fc8 (patch) | |
tree | 36ae57bb66f481e7b2737b8ca284f665fa95e37a /gcc/hash-table.c | |
parent | a412be00c49406889a84791935194fc54a89ff79 (diff) | |
download | gcc-78e9cfe1e29902a887853142a5e417500fe90fc8.zip gcc-78e9cfe1e29902a887853142a5e417500fe90fc8.tar.gz gcc-78e9cfe1e29902a887853142a5e417500fe90fc8.tar.bz2 |
arc: Update ARC700 cache hazard detection.
Replace/update ARC700 cache hazard detection. The next situations are
handled:
- There are 2 stores back2back, then 3 loads in next 3 or 4 instructions.
if 3 loads in 3 instructions then we insert 2 nops after stores.
if 3 loads in 4 instructions then we insert 1 nop after stores
- 2 back to back stores, followed by at least 3 loads in next 4 instructions.
st st ld ld ld ##
st st ## ld ld ld
st st ld ## ld ld
st st ld ld ## ld
## - any instruction
- store between non-store instructions, followed by 3 loads
$$ st SS ld ld ld
$$ - non-store instruction, even load.
gcc/
2020-12-11 Claudiu Zissulescu <claziss@synopsys.com>
* config/arc/arc.c (arc_active_insn): Ignore all non essential
instructions when getting the next active instruction.
(check_store_cacheline_hazard): Update.
(workaround_arc_anomaly): Remove obsolete cache hazard code.
Signed-off-by: Claudiu Zissulescu <claziss@gmail.com>
Diffstat (limited to 'gcc/hash-table.c')
0 files changed, 0 insertions, 0 deletions