Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.compilers > #309

Re: How to eliminate redundant constant move instructions

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>

Show all headers | View raw


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 | NextPrevious in thread | Next in thread | Find similar


Thread

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