This is the mail archive of the gcc-bugs@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] | |
Both of these issues show up with -mcpu=ev5, with the patch attached,
on the fortran test case also attached.
(1) Exponential behaviour in max_issue.
While compiling (iirc) iqtest_, we have 18 instructions ready at
the beginning of the block, which as far as I can see causes us
to try 2**18 alternatives. Certainly the compiler hangs for
longer than I cared to wait.
I think the algorithm here is wrong, but I don't know how to fix
it exactly. The hack attached prevents the exponential runaway,
but I think we should not be trying alternatives with instructions
of the same type. That is, once we've tried an instruction of
type TYPE_IADD at position 0, we should not try a different insn
of type TYPE_IADD there, since it won't help produce a better
sloting.
(2) Too many instructions issued per cycle.
The .28.sched2 dump contains for MAIN__
16--> 1144 $29=unspec[$29,0x3e] 10 :ev5_e01
16--> 34 $16=$9 :ev5_e01
16--> 38 $18=0x18 :ev5_e01
16--> 40 $19=0x18 :ev5_e01
which has overcommitted both E0 and E1. The issue rate is
set to 4 because we can issue to E0,E1,FA,FM in one cycle,
but that is not the case here. I'm not sure what is going on.
r~
Attachment:
lfk537m.f.gz
Description: GNU Zip compressed data
Attachment:
z
Description: Text document
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |