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]

loop.c patch and PowerPC fixes


	* 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


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