Index: lib/Target/AArch64/AArch64SchedA57.td =================================================================== --- lib/Target/AArch64/AArch64SchedA57.td +++ lib/Target/AArch64/AArch64SchedA57.td @@ -60,7 +60,12 @@ // Cortex-A57. The Cortex-A57 types are directly associated with resources, so // defining the aliases precludes the need for mapping them using WriteRes. The // aliases are sufficient for creating a coarse, working model. As the model -// evolves, InstRWs will be used to override these SchedAliases. +// evolves, InstRWs will be used to override some of these SchedAliases. +// +// WARNING: Using SchedAliases is convenient and works well for latency and +// resource lookup for instructions. However, this creates an entry in +// AArch64WriteLatencyTable with a WriteResourceID of 0, breaking +// any SchedReadAdvance since the lookup will fail. def : SchedAlias; def : SchedAlias; @@ -70,8 +75,8 @@ def : SchedAlias; def : SchedAlias; def : SchedAlias; -def : SchedAlias; -def : SchedAlias; +def : WriteRes { let Latency = 3; } +def : WriteRes { let Latency = 5; } def : SchedAlias; def : SchedAlias; def : SchedAlias;