-
- Downloads
arc: Avoid store/load pipeline hazard
ARC700 targets have a store/load pipeline hazard, if we load within 2 cycles of a store, and the load/store are at the same address, then we pay a multi-cycle penalty. This commit avoids this by inserting nop instructions between the store and the load. gcc/ChangeLog: * config/arc/arc-protos.h (arc_store_addr_hazard_p): Declare. * config/arc/arc.c (arc_store_addr_hazard_p): New function. (workaround_arc_anomaly): Call arc_store_addr_hazard_p for ARC700. * config/arc/arc700.md: Add define_bypass for store/load. gcc/testsuite/ChangeLog: * gcc.target/arc/arc700-stld-hazard.c: New file. From-SVN: r243007
Showing
- gcc/ChangeLog 8 additions, 0 deletionsgcc/ChangeLog
- gcc/config/arc/arc-protos.h 1 addition, 0 deletionsgcc/config/arc/arc-protos.h
- gcc/config/arc/arc.c 75 additions, 0 deletionsgcc/config/arc/arc.c
- gcc/config/arc/arc700.md 2 additions, 0 deletionsgcc/config/arc/arc700.md
- gcc/testsuite/ChangeLog 4 additions, 0 deletionsgcc/testsuite/ChangeLog
- gcc/testsuite/gcc.target/arc/arc700-stld-hazard.c 14 additions, 0 deletionsgcc/testsuite/gcc.target/arc/arc700-stld-hazard.c
Loading
Please register or sign in to comment