This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
Suppose I have two insns, one reserving (A|B|C), and the other reserving A. I'm observing that when the first one is scheduled in an otherwise empty state, it reserves the A unit and blocks the second one from being scheduled in the same cycle. This is a problem when there's an anti-dependence of cost 0 between the two instructions.
The scheduler can do what you want but if there is no dependence between the instructions. The first cycle multi-pass insn scheduler will try different order of ready insns to choose the best one. But if there is a dependence between the insns only one insn will be in the ready list. I think it is a lot of work to implement the same for dependent insns (and it probably will make the scheduler much slower).Vlad - two questions. Is this behaviour what you would expect to happen, and how much work do you think would be involved to fix it (i.e. make the first one transition to a state where we can still reserve any two out of the three units)?
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |