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]

[PATCH] A pass which merges constant stores to bitfields


Hi,
  I know we are in stage3, I thought I would send this out now for
review as I finally have it ready for consumption as I finally got
around to removing the limitation of it only working on big-endian.
This pass was originally written by Adam Nemet while he was at Cavium.
 I modified it to work on little-endian and also update the code to
use the aliasing oracle and some of the new VEC interface.

Yes I know I forgot to add documentation for the new option and for
the new pass.  I will add it soon.

Thanks,
Andrew Pinski

ChangeLog:
* tree-merge-const-bfstores.c: New file.
* tree-pass.h (pass_merge_const_bfstores): Add pass.
* opts.c (default_options_table): Add OPT_fmerge_const_bfstores at -O2
and above.
* timevar.def (TV_MERGE_CONST_BFSTORES): New timevar.
* common.opt (fmerge-const-bfstores): New option.
* Makefile.in (OBJS): Add tree-merge-const-bfstores.o.
(tree-merge-const-bfstores.o): New target.
* passes.c (init_optimization_passes): Add pass_merge_const_bfstores
right after the last pass_phiopt.

Attachment: add_merge_const_bfstores_pass.diff.txt
Description: Text document


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