Tue Apr 25 18:58:26 1995  Torbjorn Granlund  <tege@adder.cygnus.com>

	* Makefile (superopt): Depend on INCFILES.
	(HDRS): Add many missing included files.
	(superopt-*): Depend on HDRS.
	(superopt.o): Delete rule.
	(superopt): Depend on SRCS, not OBJS.  Corresponding change to rule.

Sat Apr 22 18:51:59 1995  Torbjorn Granlund  <tege@adder.cygnus.com>

	* Version 2.4.1 released.

	* Makefile (FILES): Add ChangeLog (again).

	* superopt.c (CISC synth): Handle all immediate counts for MC68020
	(if -DSHIFTS), not just 31.

Wed Mar 15 09:20:46 1995  Michael Meissner  <meissner@tiktok.cygnus.com>

	* Makefile (CFLAGS): Add new macro MACHINE to override the machine
	desired.
	(superopt): New alternate name for gso.
	(install): New rule.
	(all, install-all): New rule to build superopt for all of the
	supported machines.

	* superopt.h (POWEPC): Define if _ARCH_PPC is defined.
	(I386): Also check __i386__.

	* superopt.c (random_word): Eliminate inline, since it was
	previously declared without it.
	(output_assembler): For PowerPC, use PowerPC instruction names,
	rather than Power.  Abort if Power only instructions used.
	(test_sequence): Print newline between patterns if -nl.
	(main): Recognize -nl switch.  If unknown switch, print a usage
	message, including all supported goal functions.

Sun Nov 13 22:59:42 1994  Torbjorn Granlund  (tege@tiny.cygnus.com)

	* superopt.c (CISC synth): Use SHIFTS macro here too, just like in
	RISC synth.
	* superopt.h (SHIFTS): Make sure it is defined to 1 or 0.

Tue Nov  8 01:33:40 1994  Torbjorn Granlund  (tege@tiny.cygnus.com)

	* superopt.c (synth): Add missing SH conditional for "subc rx,ry"...
	(synth): Generate "add rx,ry" and "sub rx,ry" for SH...

	superopt.c (synth): Fix several SH-specific typos with prune hint
	setting.

	* superopt.h (EXTRA_SEQUENCE_TESTS): New macro; define for SH.
	* superopt.c (test_sequence): Use EXTRA_SEQUENCE_TESTS.

	* superopt.c (CISC synth): Generate ext[su].[bw], dt, swap.w, xtrct,
	and tst rx,ry for SH.
	(output_assembler): Print them.
	superopt.h: Handle immediates 0xff and 0xffff.
	(init_immediates): Initialize `values' with new immediates.

	superopt.c (synth): Shifts with count > 1 doesn't set T on the SH.
	(output_assembler, SH): Add support for carry-free shifts.

	* All files (EXTS8, EXTS16, CYAND, DECR_CYEQ, MERGE16): New opcodes.

Sat Nov  5 13:21:11 1994  Torbjorn Granlund  (tege@tiny.cygnus.com)

	* superopt.c (synth): Use ASHIFTR_CON for POWER consistently,
	never use ASHIFTR.

	superopt.c (synth): Delete ROTATEXL_CIO with count BITS_PER_WORD-1.
	(synth): Try ROTATEXR_CIO with count 1.
	superopt.h (PERFORM_ROTATEXR_CIO): New definition.
	(PERFORM_ROTATEXL_CIO): Rewrite.
	(PERFORM_ROTATEL_CIO): Make sure we use logical shifts.
	(PERFORM_ROTATER_CIO): New definition.
	insn.def, run_program.def: Add new instructions.
	(output_assembler, M68000): Handle rotate right instructions.

	* superopt.c (random_word): Use mrand48 for __svr4__.
	(operand_names): Merge I386 and PYR.
	(output_assembler, I386, ADD): Output "decl" here...
	(output_assembler, I386, SUB): ...not here.

	(synth): Bump shift cost for I386 from 2 to 1.
	(synth): Merge I386 shift patterns that now became identical to
	other patterns.

	(CISC synth): Don't try ROTATEXL_CIO with count 1; ADD_CIO performs
	the very same operation.

	* insn.def (CPEQ): Use 'c' for commutative.
	(CPNEQ, CMPEQ): Likewise.
	(COMCY): This is not a binary operation; use class 'x'.

	* superopt.c (main): Print target information for -v.
	* superopt.h (TARGET_STRING): New #define.

	* Ported to Hitatchi SH.  Most files affected.

Sun Jul 17 04:34:49 1994  Torbjorn Granlund  (tege@tiny.cygnus.com)

	* superopt.c (HPPA synth): Fix typos for shifting conditionalized on
	SHIFTS.

	* Makefile (FILES): Include ChangeLog.

Thu Jun 16 19:41:10 1994  Torbjorn Granlund  (tege@adder.cygnus.com)

	* superopt.c (output_assembler, I386, case AND_RC):
	Fix typo in condition for andb.
	(case IOR_RC): Likewise.
	(case XOR_RC): Likewise.
	(CISC synth): Try "movl $0,d" for I386.

Sun Jan 30 22:35:02 1994  Torbjorn Granlund  (tege@adder.cygnus.com)

	* superopt.c (ffs_internal): Initialize ci to silent compiler
	warning.
	* superopt.c (header): Declare random_word.

Sat Oct 16 21:21:51 1993  Torbjorn Granlund  (tege@adder.cygnus.com)

	* superopt.c (CISC synth): Fix typo, MC68020 was M68020.

Mon Jul 12 20:37:12 1993  Torbjorn Granlund  (tege@pde.nada.kth.se)

	* superopt.c (CISC synth): Try BSF86 for I386.
	* superopt.h, run_program.def, insn.def: Add defs for BSF86.

Fri May 28 11:59:43 1993  Torbjorn Granlund  (tege@pde.nada.kth.se)

	* superopt.c (RISC synth): Try subf on POWERPC.
	(output_assembler)[POWER]: Handle subf.

Mon May 24 09:46:56 1993  Torbjorn Granlund  (tege@pde.nada.kth.se)

	* All files: Conditionalize on POWER, not RS6000.
	* superopt.h: Add handling of POWERPC.
	* superopt.c: Exclude ABS, NABS, DOZ if POWERPC.

Sun Feb 21 14:21:20 1993  Torbjorn Granlund  (tege@pde.nada.kth.se)

	* superopt.h (struct insn_t): Make opcode field wider at expense of
	other fields.

	* superopt.c (HPPA synth): Make pruning less agressive after
	nullifying insn.
	* run_program.def: Special case for N_INSNS == 0.

	* superopt.c (ALPHA synth, CMOV*): Move pruning test inside DR loop.
	Add condition (DR != LAST_DEST).

	* superopt.c (outside of functions): Declare malloc and realloc.
	* Ported to HP-PA.  Most files affected.

Thu Feb 18 21:23:17 1993  Torbjorn Granlund  (tege@pde.nada.kth.se)

	* superopt.h (VALUE_MIN_SIGNED): Make it work for non 32-bit
	computers.
	(VALUE_MAX_SIGNED): Likewise.
	(__immediate_val): Use VALUE_MIN_SIGNED and VALUE_MAX_SIGNED.

Mon Feb 15 11:41:16 1993  Torbjorn Granlund  (tege@cyklop.nada.kth.se)

	* version.h: Now 2.2.

	* superopt.c (operand_names): Define constants up to 63 for ALPHA.
	(operand_names): Remove ...0,0,0... as array filler.

	* superopt.h (BITS_PER_WORD): Conditionalize on ALPHA.
	(unsigned_word, signed_word): Define depending on BITS_PER_WORD and
	compiler.

Sun Feb 14 20:25:05 1993  Torbjorn Granlund  (tege@cyklop.nada.kth.se)

	* superopt.c (output_assembler): Define Alpha asm syntax.
	* run_program.def: Special code for CMOVxx.

Sat Feb 13 01:10:06 1993  Torbjorn Granlund  (tege@cyklop.nada.kth.se)

	* Ported to Alpha.  Most files affected.

Sat Jan  2 15:50:40 1993  Torbjorn Granlund  (tege@sics.se)

	* superopt.h (PERFORM_FFS): New macro.
	* superopt.c (ffs_internal): New function.
	* goal.def (FFS): Use ffs_internal.

	* superopt.c (output_assembler)[I386]: Fix typo, %s -> %d, two
	places.

Thu Dec 17 13:58:33 1992  Torbjorn Granlund  (tege@sics.se)

	* superopt.c (output_assembler)[RS6000,AM29K]: Handle CLZ.

Sat Dec 12 15:40:05 1992  Torbjorn Granlund  (tege@sics.se)

	* version.h: Now 2.1.

	* Makefile (dist): Make sed command more robust.

	* superopt.h: Handle MC68000 and MC68020, not M68000.
	* superopt.h: Define M68000 #if MC68000 || MC68020.
	* superopt.h (SHIFT_COST): Define.  For MC68000 it's depends on
	count.
	* superopt.c (CISC synth): Use SHIFT_COST for all shifting on
	MC68000.
	* superopt.c (CISC synth): Try logical operation with #1.
	* superopt.c (output_assembler)[M68000 AND,IOR,XOR]: Output
	operation with small immediates using word (w) suffix.
	* superopt.c (output_assembler)[I386 AND,IOR,XOR]: Likewise.

	* superopt.c (output_assembler)[M88000 ADC_CI]: Output subu.ci, not
	subu.co.

	* superopt.c (RISC synth)[0-ary instructions]: Major enhancements.

	Next 3 from Paul Eggert:
	* goal.def (DIVIDE_BY_MINUS_2e31): New name flo DIVIDE_BY_2e31,
	better describing the operation.
	* goal.def (DEF_GOAL for GRAY, GRAY2, DIVIDE_BY_MINUS_2e31): Avoid
	overflow by shifting -1 instead of 1.
	* superopt.h (__immediate_val): Avoid overflow by casting 1 to word.
	overflow.)

	* superopt.c (timings): New name for 'time'.  (Clashed with defs in
	<time.h>).

	* superopt.c (recurse): Assign sequence[n_insn] using constructor
	#if __GNUC__.  (Gives better code.)

	* superopt.c: Update comments.

	* superopt.c (ARITH_BITS #define): Remove.  (Not used any more.)

	* superopt.c (cputime): #if USG, use clock() instead of getrusage.

	* superopt.c (init_test_sets): Remove #ifdef UDIV_WITH_SDIV code.
	(Obsolete.)

Wed Dec  9 14:58:17 1992  Torbjorn Granlund  (tege@sics.se)

	* superopt.c (init_test_sets): Remove unused label 'next'.

	* superopt.c (CISC synth, I386, PYR)[COPY 0 => v]: Cost is 1.
	Pass n_values for s1,s2,d operands.  (Bug fix.)

	* superopt.c (RISC synth, SPARC)[r1 + 1 - cy]: Try this, with and
	without generating carry out.  (Bug fix.)

	* superopt.h: Define __CLOBBER_CC and __AND_CLOBBER_CC.
	(sparc asm PERFORM macros): Use __CLOBBER_CC.  (Bug fixes.)

Sat Nov 28 13:50:09 1992  Torbjorn Granlund  (tege@sics.se)

	* version.h: Now 2.0.

	* superopt.c (init_test_sets): Remove code inside UDIV_WITH_SDIV
	conditional.

	* superopt.c (output_assembler): Output pyramid assembler.
	Output MUL for all CPUs that have it.
	* superopt.c (CISC synth): Fix many pyramid-related errors.
	* superopt.c (random_word): #ifdef hpux, use mrand48.

	* superopt.h, superopt.c (synth), insn.def, run_program.def:
	UMULWIDEN_LO => MUL, PERFORM_UMULWIDEN_LO => PERFORM_MUL.
	* superopt.h (PERFORM_MUL): Simply use (r1 * r2), don't call
	umul_ppmm.
	* superopt.h: Define all PERFORM_* macros unconditionally.
	* insn.def: Remove #ifdef DM conditionals.
	* goal.def (UMULH): New goal.
	* goal.def: Remove #ifdef DM conditionals.  Include some goals only
	with GCC.  Switch off division goals due to domain problems.
	* run_program.def: Remove #ifdef DM conditionals.

	* superopt.c (synth): Try shifts by 16, #if SHIFT16.

	* superopt.h: Include longlong.h unconditionally.

	* Makefile (FILES): Add longlong.h.
	(dist): Rewrite to have tar file creating a directory.

Tue Jul 28 15:05:09 1992  Torbjorn Granlund  (tege@sics.se)

	* goel.def: Add new goals for signed division.

	* Makefile: Create superopt-VERSION.tar.Z.

	* version.h: New file.
	* superopt.c: Include "version.h".
	* superopt.c (main): Handle `-version' option.

	* superopt.c (main): Better error messages.

	* superopt.c (main): Move initialization of goal_function to handle
	empty command lines.

	* superopt.c: Add timing per recursion level #ifdef TIMING.

Thu Jun 25 20:10:23 1992  Torbjorn Granlund  (tege@sics.se)

	* superopt.c (test_sequence): Remove STATISTICS.
	(recurse): Put it here.

	* superopt.c (random_word): Back to random.

	* superopt.c (recurse): Make it static.

	* superopt.c (RISC synth): Don't copy 0 on sparc and 88k.

Fri Jun 12 17:16:54 1992  Tom Wood  (wood@gen-rtx.rtp.dg.com)

	* superopt.c (test_sequence): Make n_test_operands const to avoid
	re-computation.

Thu Jun 11 23:23:26 1992  Torbjorn Granlund  (tege@sics.se)

	* Version 1.91.

	* superopt.c (main): Check argc before calling atoi.

Thu Jun 11 20:38:20 1992  Tom Wood  (wood@gen-rtx.rtp.dg.com)

	* goal.def: New file.
	* superopt.[ch]: Use goal.def.

Thu Jun 11 19:19:37 1992  Torbjorn Granlund  (tege@sics.se)

	* Version 1.90.

Thu Jun 11 10:38:20 1992  Tom Wood  (wood@gen-rtx.rtp.dg.com)

	* insn.def: New file.
	* superopt.[ch]: Use insn.def.

	* superopt.c (output_assembler, m88k COPY): Specify use of r0 and
	print small constants right.

	* superopt.c (synth): Correct indentation.

	* superopt.c (main): Add -all option to run thorough all know goal
	functions.  This can be done quickly with -max-cost 2.

	* superopt.h (IMMEDIATE_VAL): Evaluate sparse values properly.

	* superopt.h (PERFORM_ADD_CIO, PERFORM_ADC_CIO): Operand 0 is
	written before the inputs are read.

	* superopt.h (PERFORM_CMPPAR): Add m88110 bits and don't check
	with the native cmp instruction.

Thu Jun 11 02:37:01 1992  Torbjorn Granlund  (tege@sics.se)

	* Version 1.16.

	* superopt.h: Hack PERFORM_{CLZ,FF1} to be faster.
	* superopt.c (clz_tab): Corresponding changes.
	* superopt.c (ff1_tab): New table for PERFORM_FF1.

	* superopt.c (RISC synth): Try ADD_CI(x,x).

	* superopt.c (main_synth): Always pass NO_PRUNE to synth.

	* superopt.c (output_assembler): Generalize "cmp" output.

	* superopt.c (synth): Rename cy_in to ci, and cy_out to co.

	* superopt.h (sparc asm): Clobber "cc".
	* superopt.h: Include asm iff USE_ASM is defined.  Off by default.

Wed Jun 10 15:40:45 1992  Tom Wood  (wood@gen-rtx.rtp.dg.com)

	* superopt.c (output_assembler): Fix typos in 88k assembler.
	* superopt.c (operand_names): Make the constant names agree with
	the new values.

	* run_program.def (run_program): Have this return the value of the
	carry flag or -1 if the flag was never set.
	* superopt.h: run_program now returns an int.
	* superopt.c (main_synth): Allow the specification of an initial
	sequence of instructions and provide an example sequence.

	* superopt.h (PERFORM_FF1, PERFORM_CMPPAR): When running native,
	compare the native instruction's output to the generic
	computation.

Thu Jun 10 02:00:22 1992  Torbjorn Granlund  (tege@sics.se)

	* Version 1.15.

	* Add for CLZ, CTZ, and 88k's FF0, FF1, EXT*, and CMPPAR.
	* superopt.[ch]: Rewrite handling of immediates to allow arbitrary
	shifts.

Sat Jun  6 20:04:03 1992  Torbjorn Granlund  (tege@sics.se)

	* Version 1.14.

	* superopt.c: 88k subu.c* and addu.c* insn were incorrectly asumed
	to accept immediate values.

Wed Apr  1 22:03:04 1992  Torbjorn Granlund  (tege@sics.se)

	* superopt.[ch], run_program.def: ROTATEXL_CIO, new name for
	ROTATEXL_CO.
	* superopt.c: Only use ROTATEXL_CIO when carry is defined.

	* superopt.c (test_sequence): Add some values to test_operands
	vector.
	* superopt.c (RISC synth): Try add of immediate 1.
	* superopt.[ch]: Add new goals for GS paper.

Thu Mar  5 05:56:12 1992  Torbjorn Granlund  (tege@sics.se)

	* superopt.[ch], run_program.def: Ported to pyramid.  Added
	<LOGICAL>_CC internal insns.

Fri Feb 14 23:19:11 1992  Torbjorn Granlund  (tege@sics.se)

	* superopt.c (output_assembler M88100): Handle negative values for
	ADD_CIO, by outputting subu.
	* superopt.c (RISC synth): Fix comment add ADD_CIO (..., -1).

Thu Dec 12 21:54:14 1991  Torbjorn Granlund  (tege@sics.se)

	* superopt.c (test_sequence): Add comments.

Tue Dec 10 21:37:01 1991  Torbjorn Granlund  (tege@sics.se)

	* superopt.c (main_synth): Make nested for loops have different
	induction variables...

Thu Dec  5 19:33:40 1991  Torbjorn Granlund  (tege@sics.se)

	* superopt.c (output_assembler several places): Cast IMMEDIATE_VAL
	to signed_word when comparing to zero.

Wed Nov 13 21:20:11 1991  Torbjorn Granlund  (tege@sics.se)

	* superopt.c (main_synth): Hack to generate the initial random
	arguments such that the goal function take a value != 0.

Mon Nov 11 11:41:50 1991  Torbjorn Granlund  (tege@sics.se)

	* superopt.c (output_assembler RS6000 and M88000):  Handle (op1 & 1).
	* superopt.c (RISC synth): Try (op1 & 1) on all machines.

Sat Nov  2 16:24:35 1991  Torbjorn Granlund  (tege@sics.se)

	* superopt.c (RISC synth): Try 29k CPXX insns with immediate 0.

	* superopt.c (test_sequence): Output small negative operands in
	decimal.

Fri Oct 25 01:01:54 1991  Torbjorn Granlund  (tege@sics.se)

	* superopt.c (test_sequence): Test with VALUE_MAX_SIGNED too.

	* superopt.c (CISC synth): Try CMP operation for VALUE_MAX_SIGNED
	and VALUE_MIN_SIGNED on '386.

	* superopt.c, superopt.h, run_program.def: Add new operation
	ROTATEXL_CO.  Try it for CISCs.
	* ROTATEL new name for ROTATE.

	* superopt.c (output_assembler I386): Fix syntax for if statement.

	* superopt.h (PERFORM_*SHIFT*, PERFORM_ROTATE*): Truncate shift
	counts with BITS_PER_WORD.
	* superopt.h (TRUNC_CNT): New macro for shift count truncation.

	* superopt.c (output_assembler M68000 COPY): Output "moveq" for
	negative numbers as intended, by casting operands to signed_word.

	* superopt.c (RISC synth): Try SUB for two regs even on M88000.

	* superopt.c (RISC synth, CISC synth): Try rotate and shift
	instruction with count 1.
	* superopt.c (output_assembler): Output rotate instructions.

	* superopt.c, superopt.h, run_program.def: Add new operation
	"ASHIFTR_CON" for RS/6000 arithmetic right shifts.  (The
	arithmetic shift insns used to be incorrectly described as not
	affecting carry.)

Local Variables:
mode: indented-text
left-margin: 8
fill-column: 76
version-control: never
End:
