This is the mail archive of the gcc-patches@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]
Other format: [Raw text]

Re: [patch] Split RTL constant/copy propagation off from gcse.c to new cprop.c


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 03/28/11 10:25, Steven Bosscher wrote:
> Hello,
> 
> This patch splits the CPROP pass (constant/copy propagation for RTL)
> out of gcse.c into a new file cprop.c. Originally all the
> "Muchnick-passes" (GCSE, PRE, CPROP, HOIST, store motion, ...) lived
> in gcse.c and a lot of code was shared, but these days much of that
> shared code is just common infrastructure (DF and a CFG, for instance)
> and the amount of shared code between the passes is much less than it
> used to be. I already moved out store motion a few years ago, and this
> patch continues my split-up-gcse efforts.
> 
> With this patch, I end up with about 450 lines of shared code between
> gcse.c and the new cprop.c, but that number will go down to almost
> nothing once I'm done with cprop.c.
> 
> The main reason for me to spilt CPROP out of gcse.c is because a lot
> of the shared code really shouldn't be shared anymore. For instance,
> the internal dataflow engine of GCSE handles registers and memory, but
> this is completely unnecessary for CPROP because it only looks at
> registers. So there is a lot of overhead for CPROP memory tracking
> that just consumes time and isn't actually used by the pass.
> 
> My plan is to change the dataflow stuff in cprop.c to be DF-based,
> including the use of the DF solver which should be much faster and
> scales better than the lcm.c/gcse.c solvers. This is the first step.
> 
> During the split, I cleaned up the table->set_p stuff and a few other
> really minor things like comments, but there are no functional changes
> for now. The asm output before and after this patch is the same.
> 
> Bootstrapped and tested on x86_64-unknown-linux-gnu. OK?
OK.
jeff
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJNkNUWAAoJEBRtltQi2kC7/50H/j//zFNU9180/i2EZOeQLb1E
wq0raoDiGuO8fl58JnSmEhHpTB03UztsGeRM3wYOLo95908lPNgGWGBYbM/a4ZPh
90e1FiNz7Y9vot6rqG9AI4+Iuw6LlglM2vAB+MNQ9UpcqwdaSCoxG/c6Ycjo9kpN
KqqJYiqYc2i6gpBWoIWZI2oBCmPaM2eJEwpZ2yQuzm/BvdltHZouR1z6q2DmERbl
NtKUFM37998cZLcTpEk0aw7bb0XtAWMRALz+4kiYu6HpBMsSn5sTzhIqtuz4mPXH
dyapzqbp/oL+pMg0GpzlMKeli0vgdYZaSyTwMtLbz9sly+kSAv0qp9NUWKWjGro=
=YNVz
-----END PGP SIGNATURE-----


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