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] |
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] |