Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.compilers > #309
| From | amker <can.finner@gmail.com> |
|---|---|
| Newsgroups | comp.compilers |
| Subject | Re: How to eliminate redundant constant move instructions |
| Date | 2011-11-01 19:01 -0700 |
| Organization | Compilers Central |
| Message-ID | <11-11-007@comp.compilers> (permalink) |
| References | <11-10-019@comp.compilers> <11-11-002@comp.compilers> |
On Nov 1, 1:08 am, Kaz Kylheku <k...@kylheku.com> wrote: > On 2011-10-31, Amker.Cheng <amker.ch...@gmail.com> wrote: > > > I found following intermediate codes are generated in gcc > > > rx <- 0 > > ... > > use rx > > ... > > ry <- 0 > > use ry > > ... > > > It's normally a result of const propagation. > > After register allocation, It is likely rx/ry get allocated into > > different hard registers. > > Thus in final codes, there would be a redundant "move 0" instruction. > > Surely you mean, if they get allocated into the SAME register, there > will be a redundant initialization? Something like that. In register allocation, if there is no register pressure issue, the program should be converted into rx <- 0 ... use rx ... rx <- 0 <----which is redundant and can be removed use rx > > The story even stands for Os compiling, so the question is: > > Is there any optimization technique dedicates to this kind of case? > > It's a variant of ``common subexpression elimination''. This should > be done early on. You have two different instances of 0 in the code, > which should be recognized as a common subexpression, sharing the same > intermediate code, and virtual registers. Yes, I just found gcc's cse pass can handle such cases in extended basic block, but not globally. Another question is, if we do it before register allocation, the live range of rx would be extended and might cause spill in register allocation. Thanks
Back to comp.compilers | Previous | Next — Previous in thread | Next in thread | Find similar
How to eliminate redundant constant move instructions "Amker.Cheng" <amker.cheng@gmail.com> - 2011-10-31 17:53 +0800
Re: How to eliminate redundant constant move instructions Kaz Kylheku <kaz@kylheku.com> - 2011-10-31 17:08 +0000
Re: How to eliminate redundant constant move instructions amker <can.finner@gmail.com> - 2011-11-01 19:01 -0700
Re: How to eliminate redundant constant move instructions mac <acolvin@efunct.com> - 2011-11-03 02:20 +0000
Re: How to eliminate redundant constant move instructions George Neuner <gneuner2@comcast.net> - 2011-11-01 14:32 -0400
Re: How to eliminate redundant constant move instructions glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2011-11-01 22:35 +0000
Re: How to eliminate redundant constant move instructions amker <can.finner@gmail.com> - 2011-11-01 19:35 -0700
Re: How to eliminate redundant constant move instructions amker <amker.cheng@gmail.com> - 2011-11-01 21:04 -0700
Re: How to eliminate redundant constant move instructions George Neuner <gneuner2@comcast.net> - 2011-11-02 12:38 -0400
Re: How to eliminate redundant constant move instructions Kaz Kylheku <kaz@kylheku.com> - 2011-11-03 03:20 +0000
Re: How to eliminate redundant constant move instructions George Neuner <gneuner2@comcast.net> - 2011-11-04 13:27 -0400
Re: How to eliminate redundant constant move instructions glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2011-11-04 21:19 +0000
Re: How to eliminate redundant constant move instructions glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2011-11-03 03:32 +0000
Re: How to eliminate redundant constant move instructions amker <can.finner@gmail.com> - 2011-11-01 19:21 -0700
Re: How to eliminate redundant constant move instructions George Neuner <gneuner2@comcast.net> - 2011-11-04 17:26 -0400
Re: How to eliminate redundant constant move instructions amker <amker.cheng@gmail.com> - 2011-11-07 17:33 -0800
Re: How to eliminate redundant constant move instructions Wei-Jen Chen <chenwj@cs.NCTU.edu.tw> - 2011-11-10 08:04 +0000
Re: How to eliminate redundant constant move instructions George Neuner <gneuner2@comcast.net> - 2011-11-10 18:18 -0500
Re: How to eliminate redundant constant move instructions amker <amker.cheng@gmail.com> - 2011-11-01 20:58 -0700
csiph-web