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]

Re: Swap optimization pass



  In message <199801140158.OAA25142@ongaonga.chch.cri.nz>you write:
  > It seems like GCC requires an optional pass to combine insns that
  > don't appear to be directly related by data flow, such as the swap
  > insn.  This pass would be especially useful to combine seemingly 
  > independent insns for targets that have multi-pack instructions.
Yup -- this is the basic idea behind my idea of using reorg to combine
unrelated insns after reload.

  > Why is this test for the REG_LIBCALL note necessary since i3 won't
  > be deleted by the combiner?  Alternatively, could we allow i2 to be
  > combined with i3 having a REG_LIBCALL note if i1 is 0 and i2 is
  > PREV_INSN(i3) (or even prev_active_insn(i3))?  This would provide
  > better register allocation for targets where arguments are passed
  > in registers.
Good question.  I really don't know.

Note that introducing "foreign" insns into a libcall block tends to
do bad things in the register allocator, and I guess this might happen
in that case.

jeff


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