This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
loop.c patch and PowerPC fixes
- To: egcs-patches at cygnus dot com
- Subject: loop.c patch and PowerPC fixes
- From: David Edelsohn <dje at watson dot ibm dot com>
- Date: Sat, 19 Sep 1998 00:03:49 -0400
* toplev.c (rest_of_compilation): Set bct_p on second call to
loop_optimize.
* loop.c (loop_optimize, scan_loop, strength_reduce): New argument
bct_p.
(strength_reduce): Only call analyze_loop_iterations and
insert_bct if bct_p set.
(check_dbra_loop): Fix typo.
(insert_bct): Use word_mode instead of SImode.
(instrument_loop_bct): Likewise. Do not delete iteration count
condition code generation insn. Initialize iteration count before
loop start.
* rtl.h (loop_optimize): Update prototype.
* ginclude/va-ppc.h (va_arg): longlong types in overflow area are
not doubleword aligned.
* rs6000.c (optimization_options): New function.
(secondary_reload_class): Only call true_regnum for PSEUDO_REGs.
* rs6000.h (OPTIMIZATION_OPTIONS): Define.
(REG_ALLOC_ORDER): Allocate highest numbered condition regsiters
first; cr1 can be used for FP record condition insns.
Although loop.c:check_dbra_loop() is broken, now that I have
isolated that failure, I bootstrapped with my patches and the
check_dbra_loop() breakage reverted.
Enabling flag_branch_on_count in rs6000.c:optimization_options()
is ifdef'ed out until that optimization is fully correct. One now can
bootstrap the compiler with that optimization enabled, but
execute/{loop-3c.c,loop-4.c,loop-4b.c} in the testsuite fail, so things
still are not quite right.
David