This is the mail archive of the
mailing list for the GCC project.
[PATCH 0/2] Loop distribution for memset zero
- From: Sebastian Pop <sebpop at gmail dot com>
- To: gcc-patches at gcc dot gnu dot org
- Cc: matz at suse dot de, Sebastian Pop <sebpop at gmail dot com>
- Date: Fri, 30 Jul 2010 15:40:38 -0500
- Subject: [PATCH 0/2] Loop distribution for memset zero
Michael Matz proposed that it would be a good idea for some CPU2006
benchmarks to add a separate heuristic for the loop distribution pass
for the memset zero pattern, and to enable that at -O3 in order to
exercise the loop distribution code. The following two patches
implement on top of the current loop distribution pass the heuristic,
and enable it at -O3.
The new pass starts by adding to the partitions working list the data
references that are initialized to zero. These partitions are then
code generated in different loops, and the current loop distribution
detects the memset zero pattern.
Regstrapped on amd64-linux.
SPEC2006 passed with -O3 (except the dealII compile fail that I
haven't fixed in my sources yet...).
Bootstrap failed with BOOT_CFLAGS="-g -O3", but then when I tried also
without these two patches it also failed with the same miscompiled
files, so bootstrap of trunk is broken at -O3, see
Ok for trunk?
Enable flag_tree_loop_distribute_memset_zero at -O3.
gcc/common.opt | 4 ++
gcc/doc/invoke.texi | 23 ++++++++++++++-
gcc/opts.c | 1 +
gcc/passes.c | 1 +
gcc/tree-data-ref.c | 26 +++++++++++++++++
gcc/tree-data-ref.h | 1 +
gcc/tree-loop-distribution.c | 63 ++++++++++++++++++++++++++++++++++++++++++
gcc/tree-pass.h | 1 +
8 files changed, 119 insertions(+), 1 deletions(-)