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]

Re: Note handling in haifa-sched.


On Thu, May 11, 2000 at 12:20:55PM +0300, Virgil Palanciuc wrote:
> Though, if I am to consider what you said as true( " We already set
> the mode of the insn beginning a new cycle. ") I would consider
> these three instructions in the same execution set - and this is wrong.

Well, I can't help you without a whale load more information.
My suggestion *is* correct.  I wrote the code myself, and make
use of that mode bit to do instruction bundling on Alpha.

To wit:

	long foo(long x)
	{
	  x += 1;
	  return x >> 1 | x << 2;
	}

  ;;   clock     ev5_ebox                 ev5_ebox
  ;;   =====     ====================     ====================
  ;;   0         10   $16=$16+0x1         --------------------
  ;;   1         13   $0=$16<<0x2         12   $16=$16>>0x1
  ;;   2         16   $0=$16|$0           30   return
  
  (insn 10 29 13 (set (reg/v:DI 16 $16)
  (insn:TI 13 10 12 (set (reg:DI 0 $0)
  (insn 12 13 16 (set (reg:DI 16 $16)
  (insn:TI 16 12 24 (set (reg/i:DI 0 $0)

And would you look at that.  TI is set on every insn that
begins a new cycle.

The only thing I can suppose is that your machine description
is not quite correct.

>    Another thing: no jump_insn has the TImode set (and obviously the jump
> cannot be groupped with the test before it). Still, this might be treaded as
> a 'special case'. But the above can't.

Well, not "obviously".  Many machines have special bypasses between
compare and branch.  But Haifa never looks at the jump at all, and
doesn't try to schedule it.


r~

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]