home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Geek Gadgets 1
/
ADE-1.bin
/
ade-dist
/
superopt-2.5-src.tgz
/
tar.out
/
fsf
/
superopt
/
ChangeLog
next >
Wrap
Text File
|
1996-09-28
|
26KB
|
752 lines
Sat Jun 3 01:28:17 1995 Torbjorn Granlund <tege@matematik.su.se>
* superopt.c (random_word): Delete unused variable tot_bits.
Thu Jun 1 04:05:25 1995 Torbjorn Granlund <tege@matematik.su.se>
* superopt.c (init_random_word): Make state1 have char type.
Use random() on alpha, since srand48 doesn't work there.
Wed May 31 17:08:12 1995 Torbjorn Granlund <tege@matematik.su.se>
* superopt.c (test_operands): Add -3, -2, 3, 30, 31, 32, 63, 64.
(random_word): Return small numbers with high probability.
Sat May 27 18:32:03 1995 Torbjorn Granlund <tege@matematik.su.se>
* superopt.c (N_RANDOM_TEST_OPERANDS): Set to 25000.
(random_word): Rewrite.
(RANDOM): New macro, internal to random_word.
* goal.def (DBL_SHIFT_LO, DBL_SHIFT_LO_TRUNC): Arity is 2.
Wed May 24 07:40:49 1995 Torbjorn Granlund <tege@phydeaux.cygnus.com>
* superopt.c (N_RANDOM_TEST_OPERANDS): New macro.
(init_test_sets): Use N_RANDOM_TEST_OPERANDS.
Also, zero n_words when in declarator.
(random_word): Conditionally complement x before loop.
* synth.def (synth_skip): Loop over dr also for unary operations.
* superopt.c (recurse): Delete inline declaration.
Tue May 23 01:35:16 1995 Torbjorn Granlund <tege@rtl.cygnus.com>
* goal.def: Add *_SEL goals.
Mon May 22 23:00:31 1995 Torbjorn Granlund <tege@rtl.cygnus.com>
* Makefile (*.res rules): Use "./" when running superoptimizers.
Delete spurious tab after rule.
(ALL_MACHINES): Put hppa last.
Thu May 18 22:36:58 1995 Torbjorn Granlund <tege@rtl.cygnus.com>
* synth.def (I960 synth): Break out conditional add and subtract
instructions into separate loops, and get the pruning conditions
right.
* synth.def (ALPHA synth): Try CMOVcc with (1) as 2:nd operand.
* synth.def (ALPHA synth): Read v every time before executing
CMOVcc. Also, don't do CMOVcc with any immediate 1:st operands.
(I960 synth): Likewise, but for ADDO_cc_960 and SUBO_cc_960.
* run_program.def: Read v every time before executing ADDO_cc_960
and SUBO_cc_960.
* superopt.c (ALPHA output_assembly): Fix typo in CMPLEU and CMPLTU.
* synth.def (I960 synth): Pass CY_0 in insn that sets cc to 100b.
Wed May 17 09:19:13 1995 Torbjorn Granlund <tege@adder.cygnus.com>
* synth.def (I960 synth): Use CRECURSE_2OP for CHKBIT.
* superopt.c (I960 output_assembly): Output two operands for CHKBIT.
* superopt.c (output_assembly): Use new PERFORM_CONCMPx_960
name here too.
Tue May 16 00:07:12 1995 Torbjorn Granlund <tege@rtl.cygnus.com>
* superopt.c (main_synth): Print C code for goal sequence before
outputtting the sequences.
(all functions): Print to stdout, not stderr, unless an error occured.
* superopt.h (PERFORM_CONCMPx_960): New name for
PERFORM_CONCMPx_NO_960. Rewrite, they were completely wrong.
* synth.def, run_program.def, insn.def:
Use new name PERFORM_CONCMPx_960.
* synth.def (I960 synth): Delete I960_1_1 condition on CONCMPcc.
* Makefile: For i960 build, pass -DI960_1_1.
* superopt.c (recurse): Change test of HPPA to HAS_NULLIFICATION
in search for goal_value in values array. Also compare v to
goal_value, since it is not yet stored in values array.
* superopt.h, synth.def: Handle i960 1.1 instructions specifically.
(POWER): Fix typo testing for POWERPC.
Mon May 15 23:49:56 1995 Torbjorn Granlund <tege@rtl.cygnus.com>
* synth.def (I960 synth): Fix typos for CONCMPcc instructions.
Try SELcc, CONCMPcc, ADDOcc, SUBOcc with immediate arguments.
Try LSHUFTR_NT with op1 being 1.
Mon May 15 19:10:36 1995 Torbjorn Granlund <tege@adder.cygnus.com>
* synth.def (I960 synth): Pass correct prune hint for SELcc.
Try SELcc with immediate 0 and 1.
Mon May 15 10:28:20 1995 Torbjorn Granlund <tege@cygnus.com>
* superopt.c (init_random_word): New function.
(main_synth): Call init_random_word.
* Update copyright headers.
* superopt.c: Use "assembly", not "assembler" consistently.
(main): Default maxmax_cost to 4 (was 5).
Sun May 14 12:24:44 1995 Torbjorn Granlund <tege@rtl.cygnus.com>
* insn.def: Add `<' and `=' as instruction classes.
(test_sequence): Use new sequences for suppresion of destination
register printing.
* Fold in i960 port. All files affected.
* superopt.h (PERFORM_LSHIFT*): Cast r1 to unsigned_word,
not signed_word.
* superopt.c (recurse): In loop to find goal value when the last insn
is nullified, loop from 0, not from goal_function_arity.
Sat May 13 12:00:46 1995 Torbjorn Granlund <tege@rtl.cygnus.com>
* synth.def: New file, move all synth functions here.
* superopt.c: Include synth.def twice, once for generating non-leaf
synth functions, once for generating leaf synth functions, with
different definitions of the various RECURSE macros.
(SYNTH): New macro.
(recurse): Use SYNTH.
(main_synth): Likewise.
(recurse_last): New function, called by the leaf synth variants.
Sun May 7 11:46:50 1995 Torbjorn Granlund <tege@rtl.cygnus.com>
* superopt.c (HPPA synth): Split into several smaller functions.
(synth_nonskip, synth_condskip, synth_skip): New functions.
Sat May 6 10:35:25 1995 Torbjorn Granlund <tege@rtl.cygnus.com>
* superopt.c (ALL synth): Split extract-of-1 and extract-of-2 into
separate loops; make latter loops terminate at BITS_PER_WORD-2.
(ALL synth): Delete SHIFTS and EXTRACTS macros; use run-time
conditionals instead.
(flag_shifts, flag_extracts): New variables.
(main): Set new variables.
* superopt.h (SHIFTS): Delete.
Wed May 3 15:35:23 1995 Torbjorn Granlund <tege@rtl.cygnus.com>
* superopt.c (HPPA synth): Do comiclr with -1 and 1, not just 0.
(output_assembler, PYR): Handle rsubw in ADC_CO case.
Tue May 2 21:09:37 1995 Torbjorn Granlund <tege@rtl.cygnus.com>
* superopt.h (EXTRA_SEQUENCE_TESTS, SH): Only detect non-zero immediate
values. Also allow sequences that twice (or more) demand the *same*
variable to be allocated to r0.
Tue May 2 10:39:22 1995 Torbjorn Granlund <tege@adder.cygnus.com>
* superopt.c (PA_RECURSE): Don't increment N_VALUES unconditionally;
make it depend in if D equals N_VALUES.
Mon May 1 23:04:17 1995 Torbjorn Granlund <tege@chestnut.cygnus.com>
* superopt.h (word typedefs):
Use long long also when _LONGLONG is defined.
Mon May 1 17:59:11 1995 Torbjorn Granlund <tege@adder.cygnus.com>
* superopt.c (output_assembler, POWER): For SUB, use INS_SUBF
when not immediate operand.
(INS_SUBF): New #define.
Mon May 1 09:17:25 1995 Torbjorn Granlund <tege@rtl.cygnus.com>
* superopt.c (main): Use exit instead of return consistently.
(output_assembler, HPPA): Handle EXT[SU][12]_S and ROTATEL_S.
Sun Apr 30 00:14:14 1995 Torbjorn Granlund <tege@rtl.cygnus.com>
* superopt.c (output_assembler, ALPHA, case ADD): Cast immediate
value to int.
* superopt.c (RISC synth): Try COPY of registers for ALPHA.
* superopt.c (HPPA synth): Also COPY 0 (it might be nullified).
(HPPA synth): Correct several typos for COPY_S variants.
* superopt.h (PSTR): Define as appropriate.
* superopt.c (print_operand): New function. Use PSTR.
(test_sequence): Move operand printing code to print_operand.
* superopt.c (RISC synth): Try COPY of immediates also for ALPHA.
(output_assembler, ALPHA): Handle COPY.
(RISC synth): Don't do cmpltu(r,0) or cmpleu(0,r) or cmplt(r,0).
* superopt.h (TRUNC_CNT): Use % instead of & for portability.
(inline): Define to empty also if DEBUG.
* superopt.c (synth): Add TIMING stuff to all variants of synth.
Also, make type of time_start agree with type of cputime().
Sat Apr 29 09:32:58 1995 Torbjorn Granlund <tege@rtl.cygnus.com>
* longlong.h (C umul_ppmm): Use UWtype, not USItype for temps.
(udiv_qrnnd): For cases implemented with call to __udiv_qrnnd,
protect with new symbol LONGLONG_STANDALONE.
* goal.def (CLEAR_LSB): Fix typo.
* longlong.h: Replace with version from GNU MP.
* superopt.h: Set up #defines for new longlong.h.
Sat Apr 29 01:43:25 1995 Torbjorn Granlund <tege@phydeaux.cygnus.com>
* superopt.h (FF1_CHECK): Delete.
(PERFORM_FF1): Don't use FF1_CHECK.
(PERFORM_CLZ): Rewrite to handle 64 bit words.
(PERFORM_FFS): Use BITS_PER_WORD, not the constant 32.
* superopt.c (main): When printing list of goals, terminate with \n.
* superopt.c (RISC synth): Try ADD with immediate -1.
(output_assembler, ALPHA): Handle ADD with negative s2.
* goal.def: Delete redundant goal divide_by_minus_2e31.
Fri Apr 28 11:39:51 1995 Torbjorn Granlund <tege@adder.cygnus.com>
* superopt.c (HPPA synth): In code protected by #if EXTRACTS,
loop to 30, not 31.
(RISC synth): Likewise.
(output_assembler, HPPA): Handle EXT[SU][12].
Thu Apr 27 10:46:24 1995 Torbjorn Granlund <tege@rtl.cygnus.com>
* run_program.def (run_program): Use memset, not bzero.
* superopt.c (output_assembler, HPPA): Handle COPY_S.
Rearrange code for plain COPY. Enable unconditionally nullifying
shift/rotate/extract.
(HPPA synth): Delete spurious duplicate code within #if SHIFTS
in the conditional-nullify block. Delete spurious 0-ary and copy code
in the same block. Add systematically missing _S to
shift/rotate/extract instruction names in unconditional-nullify block;
Correct and enable 0-ary instructions and variants of COPY_S.
* superopt.h (PERFORM_ROTATEL): Check TRUNC_CNT(r2), not plain r2.
(PERFORM_ROTATEL_S): Likewise.
* superopt.h (PERFORM_COPY_S): Define.
(PERFORM_*SHIFT*_S, PERFORM_ROTATEL_S, PERFORM_EXT*_S): Define
* insn.def: Corresponding changes.
* run_program.def: Corresponding changes.
Tue Apr 25 18:58:26 1995 Torbjorn Granlund <tege@adder.cygnus.com>
* Makefile (superopt): Depend on HDRS.
(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>
* 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: