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 >
Text File  |  1996-09-28  |  26KB  |  752 lines

  1. Sat Jun  3 01:28:17 1995  Torbjorn Granlund  <tege@matematik.su.se>
  2.  
  3.     * superopt.c (random_word): Delete unused variable tot_bits.
  4.  
  5. Thu Jun  1 04:05:25 1995  Torbjorn Granlund  <tege@matematik.su.se>
  6.  
  7.     * superopt.c (init_random_word): Make state1 have char type.
  8.     Use random() on alpha, since srand48 doesn't work there.
  9.  
  10. Wed May 31 17:08:12 1995  Torbjorn Granlund  <tege@matematik.su.se>
  11.  
  12.     * superopt.c (test_operands): Add -3, -2, 3, 30, 31, 32, 63, 64.
  13.     (random_word): Return small numbers with high probability.
  14.  
  15. Sat May 27 18:32:03 1995  Torbjorn Granlund  <tege@matematik.su.se>
  16.  
  17.     * superopt.c (N_RANDOM_TEST_OPERANDS): Set to 25000.
  18.     (random_word): Rewrite.
  19.     (RANDOM): New macro, internal to random_word.
  20.  
  21.     * goal.def (DBL_SHIFT_LO, DBL_SHIFT_LO_TRUNC): Arity is 2.
  22.  
  23. Wed May 24 07:40:49 1995  Torbjorn Granlund  <tege@phydeaux.cygnus.com>
  24.  
  25.     * superopt.c (N_RANDOM_TEST_OPERANDS): New macro.
  26.     (init_test_sets): Use N_RANDOM_TEST_OPERANDS.
  27.     Also, zero n_words when in declarator.
  28.     (random_word): Conditionally complement x before loop.
  29.  
  30.     * synth.def (synth_skip): Loop over dr also for unary operations.
  31.     * superopt.c (recurse): Delete inline declaration.
  32.  
  33. Tue May 23 01:35:16 1995  Torbjorn Granlund  <tege@rtl.cygnus.com>
  34.  
  35.     * goal.def: Add *_SEL goals.
  36.  
  37. Mon May 22 23:00:31 1995  Torbjorn Granlund  <tege@rtl.cygnus.com>
  38.  
  39.     * Makefile (*.res rules): Use "./" when running superoptimizers.
  40.     Delete spurious tab after rule.
  41.     (ALL_MACHINES): Put hppa last.
  42.  
  43. Thu May 18 22:36:58 1995  Torbjorn Granlund  <tege@rtl.cygnus.com>
  44.  
  45.     * synth.def (I960 synth): Break out conditional add and subtract
  46.     instructions into separate loops, and get the pruning conditions
  47.     right.
  48.  
  49.     * synth.def (ALPHA synth): Try CMOVcc with (1) as 2:nd operand.
  50.     * synth.def (ALPHA synth): Read v every time before executing
  51.         CMOVcc.  Also, don't do CMOVcc with any immediate 1:st operands.
  52.     (I960 synth): Likewise, but for ADDO_cc_960 and SUBO_cc_960.
  53.     * run_program.def: Read v every time before executing ADDO_cc_960
  54.         and SUBO_cc_960.
  55.  
  56.     * superopt.c (ALPHA output_assembly): Fix typo in CMPLEU and CMPLTU.
  57.  
  58.     * synth.def (I960 synth): Pass CY_0 in insn that sets cc to 100b.
  59.  
  60. Wed May 17 09:19:13 1995  Torbjorn Granlund  <tege@adder.cygnus.com>
  61.  
  62.     * synth.def (I960 synth): Use CRECURSE_2OP for CHKBIT.
  63.     * superopt.c (I960 output_assembly): Output two operands for CHKBIT.
  64.  
  65.     * superopt.c (output_assembly): Use new PERFORM_CONCMPx_960
  66.     name here too.
  67.  
  68. Tue May 16 00:07:12 1995  Torbjorn Granlund  <tege@rtl.cygnus.com>
  69.  
  70.     * superopt.c (main_synth): Print C code for goal sequence before
  71.     outputtting the sequences.
  72.     (all functions): Print to stdout, not stderr, unless an error occured.
  73.  
  74.     * superopt.h (PERFORM_CONCMPx_960): New name for
  75.         PERFORM_CONCMPx_NO_960.  Rewrite, they were completely wrong.
  76.     * synth.def, run_program.def, insn.def:
  77.     Use new name PERFORM_CONCMPx_960.
  78.  
  79.     * synth.def (I960 synth): Delete I960_1_1 condition on CONCMPcc.
  80.  
  81.     * Makefile: For i960 build, pass -DI960_1_1.
  82.  
  83.     * superopt.c (recurse):  Change test of HPPA to HAS_NULLIFICATION
  84.     in search for goal_value in values array.  Also compare v to
  85.     goal_value, since it is not yet stored in values array.
  86.  
  87.     * superopt.h, synth.def: Handle i960 1.1 instructions specifically.
  88.     (POWER): Fix typo testing for POWERPC.
  89.  
  90. Mon May 15 23:49:56 1995  Torbjorn Granlund  <tege@rtl.cygnus.com>
  91.  
  92.     * synth.def (I960 synth): Fix typos for CONCMPcc instructions.
  93.     Try SELcc, CONCMPcc, ADDOcc, SUBOcc with immediate arguments.
  94.     Try LSHUFTR_NT with op1 being 1.
  95.  
  96. Mon May 15 19:10:36 1995  Torbjorn Granlund  <tege@adder.cygnus.com>
  97.  
  98.     * synth.def (I960 synth): Pass correct prune hint for SELcc.
  99.     Try SELcc with immediate 0 and 1.
  100.  
  101. Mon May 15 10:28:20 1995  Torbjorn Granlund  <tege@cygnus.com>
  102.  
  103.     * superopt.c (init_random_word): New function.
  104.     (main_synth): Call init_random_word.
  105.  
  106.     * Update copyright headers.
  107.  
  108.     * superopt.c: Use "assembly", not "assembler" consistently.
  109.     (main): Default maxmax_cost to 4 (was 5).
  110.  
  111. Sun May 14 12:24:44 1995  Torbjorn Granlund  <tege@rtl.cygnus.com>
  112.  
  113.     * insn.def: Add `<' and `=' as instruction classes.
  114.     (test_sequence): Use new sequences for suppresion of destination
  115.     register printing.
  116.  
  117.     * Fold in i960 port.  All files affected.
  118.  
  119.     * superopt.h (PERFORM_LSHIFT*): Cast r1 to unsigned_word,
  120.     not signed_word.
  121.  
  122.     * superopt.c (recurse): In loop to find goal value when the last insn
  123.     is nullified, loop from 0, not from goal_function_arity.
  124.  
  125. Sat May 13 12:00:46 1995  Torbjorn Granlund  <tege@rtl.cygnus.com>
  126.  
  127.     * synth.def: New file, move all synth functions here.
  128.  
  129.     * superopt.c: Include synth.def twice, once for generating non-leaf
  130.     synth functions, once for generating leaf synth functions, with
  131.     different definitions of the various RECURSE macros.
  132.     (SYNTH): New macro.
  133.     (recurse): Use SYNTH.
  134.     (main_synth): Likewise.
  135.     (recurse_last): New function, called by the leaf synth variants.
  136.  
  137. Sun May  7 11:46:50 1995  Torbjorn Granlund  <tege@rtl.cygnus.com>
  138.  
  139.     * superopt.c (HPPA synth): Split into several smaller functions.
  140.     (synth_nonskip, synth_condskip, synth_skip): New functions.
  141.  
  142. Sat May  6 10:35:25 1995  Torbjorn Granlund  <tege@rtl.cygnus.com>
  143.  
  144.     * superopt.c (ALL synth): Split extract-of-1 and extract-of-2 into
  145.     separate loops; make latter loops terminate at BITS_PER_WORD-2.
  146.     (ALL synth): Delete SHIFTS and EXTRACTS macros; use run-time
  147.     conditionals instead.
  148.     (flag_shifts, flag_extracts): New variables.
  149.     (main): Set new variables.
  150.     * superopt.h (SHIFTS): Delete.
  151.  
  152. Wed May  3 15:35:23 1995  Torbjorn Granlund  <tege@rtl.cygnus.com>
  153.  
  154.     * superopt.c (HPPA synth): Do comiclr with -1 and 1, not just 0.
  155.     (output_assembler, PYR): Handle rsubw in ADC_CO case.
  156.  
  157. Tue May  2 21:09:37 1995  Torbjorn Granlund  <tege@rtl.cygnus.com>
  158.  
  159.     * superopt.h (EXTRA_SEQUENCE_TESTS, SH): Only detect non-zero immediate
  160.     values.  Also allow sequences that twice (or more) demand the *same*
  161.     variable to be allocated to r0.
  162.  
  163. Tue May  2 10:39:22 1995  Torbjorn Granlund  <tege@adder.cygnus.com>
  164.  
  165.     * superopt.c (PA_RECURSE): Don't increment N_VALUES unconditionally;
  166.     make it depend in if D equals N_VALUES.
  167.  
  168. Mon May  1 23:04:17 1995  Torbjorn Granlund  <tege@chestnut.cygnus.com>
  169.  
  170.     * superopt.h (word typedefs):
  171.     Use long long also when _LONGLONG is defined.
  172.  
  173. Mon May  1 17:59:11 1995  Torbjorn Granlund  <tege@adder.cygnus.com>
  174.  
  175.     * superopt.c (output_assembler, POWER): For SUB, use INS_SUBF
  176.     when not immediate operand.
  177.     (INS_SUBF): New #define.
  178.  
  179. Mon May  1 09:17:25 1995  Torbjorn Granlund  <tege@rtl.cygnus.com>
  180.  
  181.     * superopt.c (main): Use exit instead of return consistently.
  182.     (output_assembler, HPPA): Handle EXT[SU][12]_S and ROTATEL_S.
  183.  
  184. Sun Apr 30 00:14:14 1995  Torbjorn Granlund  <tege@rtl.cygnus.com>
  185.  
  186.     * superopt.c (output_assembler, ALPHA, case ADD): Cast immediate
  187.     value to int.
  188.  
  189.     * superopt.c (RISC synth): Try COPY of registers for ALPHA.
  190.  
  191.     * superopt.c (HPPA synth): Also COPY 0 (it might be nullified).
  192.     (HPPA synth): Correct several typos for COPY_S variants.
  193.  
  194.     * superopt.h (PSTR): Define as appropriate.
  195.     * superopt.c (print_operand): New function.  Use PSTR.
  196.     (test_sequence): Move operand printing code to print_operand.
  197.  
  198.     * superopt.c (RISC synth): Try COPY of immediates also for ALPHA.
  199.     (output_assembler, ALPHA): Handle COPY.
  200.     (RISC synth): Don't do cmpltu(r,0) or cmpleu(0,r) or cmplt(r,0).
  201.  
  202.     * superopt.h (TRUNC_CNT): Use % instead of & for portability.
  203.     (inline): Define to empty also if DEBUG.
  204.  
  205.     * superopt.c (synth): Add TIMING stuff to all variants of synth.
  206.     Also, make type of time_start agree with type of cputime().
  207.  
  208. Sat Apr 29 09:32:58 1995  Torbjorn Granlund  <tege@rtl.cygnus.com>
  209.  
  210.     * longlong.h (C umul_ppmm): Use UWtype, not USItype for temps.
  211.     (udiv_qrnnd): For cases implemented with call to __udiv_qrnnd,
  212.     protect with new symbol LONGLONG_STANDALONE.
  213.  
  214.     * goal.def (CLEAR_LSB): Fix typo.
  215.  
  216.     * longlong.h: Replace with version from GNU MP.
  217.     * superopt.h: Set up #defines for new longlong.h.
  218.  
  219. Sat Apr 29 01:43:25 1995  Torbjorn Granlund  <tege@phydeaux.cygnus.com>
  220.  
  221.     * superopt.h (FF1_CHECK): Delete.
  222.     (PERFORM_FF1): Don't use FF1_CHECK.
  223.     (PERFORM_CLZ): Rewrite to handle 64 bit words.
  224.     (PERFORM_FFS): Use BITS_PER_WORD, not the constant 32.
  225.  
  226.     * superopt.c (main): When printing list of goals, terminate with \n.
  227.  
  228.     * superopt.c (RISC synth): Try ADD with immediate -1.
  229.     (output_assembler, ALPHA): Handle ADD with negative s2.
  230.  
  231.     * goal.def: Delete redundant goal divide_by_minus_2e31.
  232.  
  233. Fri Apr 28 11:39:51 1995  Torbjorn Granlund  <tege@adder.cygnus.com>
  234.  
  235.     * superopt.c (HPPA synth): In code protected by #if EXTRACTS,
  236.     loop to 30, not 31.
  237.     (RISC synth): Likewise.
  238.     (output_assembler, HPPA): Handle EXT[SU][12].
  239.  
  240. Thu Apr 27 10:46:24 1995  Torbjorn Granlund  <tege@rtl.cygnus.com>
  241.  
  242.     * run_program.def (run_program): Use memset, not bzero.
  243.  
  244.     * superopt.c (output_assembler, HPPA): Handle COPY_S.
  245.     Rearrange code for plain COPY.  Enable unconditionally nullifying
  246.     shift/rotate/extract.
  247.     (HPPA synth): Delete spurious duplicate code within #if SHIFTS
  248.     in the conditional-nullify block.  Delete spurious 0-ary and copy code
  249.     in the same block.  Add systematically missing _S to
  250.     shift/rotate/extract instruction names in unconditional-nullify block;
  251.     Correct and enable 0-ary instructions and variants of COPY_S.
  252.  
  253.     * superopt.h (PERFORM_ROTATEL): Check TRUNC_CNT(r2), not plain r2.
  254.     (PERFORM_ROTATEL_S): Likewise.
  255.  
  256.     * superopt.h (PERFORM_COPY_S): Define.
  257.     (PERFORM_*SHIFT*_S, PERFORM_ROTATEL_S, PERFORM_EXT*_S): Define
  258.     * insn.def: Corresponding changes.
  259.     * run_program.def: Corresponding changes.
  260.  
  261. Tue Apr 25 18:58:26 1995  Torbjorn Granlund  <tege@adder.cygnus.com>
  262.  
  263.     * Makefile (superopt): Depend on HDRS.
  264.     (HDRS): Add many missing included files.
  265.     (superopt-*): Depend on HDRS.
  266.     (superopt.o): Delete rule.
  267.     (superopt): Depend on SRCS, not OBJS.  Corresponding change to rule.
  268.  
  269. Sat Apr 22 18:51:59 1995  Torbjorn Granlund  <tege@adder.cygnus.com>
  270.  
  271.     * Makefile (FILES): Add ChangeLog (again).
  272.  
  273.     * superopt.c (CISC synth): Handle all immediate counts for MC68020
  274.     (if -DSHIFTS), not just 31.
  275.  
  276. Wed Mar 15 09:20:46 1995  Michael Meissner  <meissner@tiktok.cygnus.com>
  277.  
  278.     * Makefile (CFLAGS): Add new macro MACHINE to override the machine
  279.     desired.
  280.     (superopt): New alternate name for gso.
  281.     (install): New rule.
  282.     (all, install-all): New rule to build superopt for all of the
  283.     supported machines.
  284.  
  285.     * superopt.h (POWEPC): Define if _ARCH_PPC is defined.
  286.     (I386): Also check __i386__.
  287.  
  288.     * superopt.c (random_word): Eliminate inline, since it was
  289.     previously declared without it.
  290.     (output_assembler): For PowerPC, use PowerPC instruction names,
  291.     rather than Power.  Abort if Power only instructions used.
  292.     (test_sequence): Print newline between patterns if -nl.
  293.     (main): Recognize -nl switch.  If unknown switch, print a usage
  294.     message, including all supported goal functions.
  295.  
  296. Sun Nov 13 22:59:42 1994  Torbjorn Granlund  (tege@tiny.cygnus.com)
  297.  
  298.     * superopt.c (CISC synth): Use SHIFTS macro here too, just like in
  299.     RISC synth.
  300.     * superopt.h (SHIFTS): Make sure it is defined to 1 or 0.
  301.  
  302. Tue Nov  8 01:33:40 1994  Torbjorn Granlund  (tege@tiny.cygnus.com)
  303.  
  304.     * superopt.c (synth): Add missing SH conditional for "subc rx,ry"...
  305.     (synth): Generate "add rx,ry" and "sub rx,ry" for SH...
  306.  
  307.     superopt.c (synth): Fix several SH-specific typos with prune hint
  308.     setting.
  309.  
  310.     * superopt.h (EXTRA_SEQUENCE_TESTS): New macro; define for SH.
  311.     * superopt.c (test_sequence): Use EXTRA_SEQUENCE_TESTS.
  312.  
  313.     * superopt.c (CISC synth): Generate ext[su].[bw], dt, swap.w, xtrct,
  314.     and tst rx,ry for SH.
  315.     (output_assembler): Print them.
  316.     superopt.h: Handle immediates 0xff and 0xffff.
  317.     (init_immediates): Initialize `values' with new immediates.
  318.  
  319.     superopt.c (synth): Shifts with count > 1 doesn't set T on the SH.
  320.     (output_assembler, SH): Add support for carry-free shifts.
  321.  
  322.     * All files (EXTS8, EXTS16, CYAND, DECR_CYEQ, MERGE16): New opcodes.
  323.  
  324. Sat Nov  5 13:21:11 1994  Torbjorn Granlund  (tege@tiny.cygnus.com)
  325.  
  326.     * superopt.c (synth): Use ASHIFTR_CON for POWER consistently,
  327.     never use ASHIFTR.
  328.  
  329.     superopt.c (synth): Delete ROTATEXL_CIO with count BITS_PER_WORD-1.
  330.     (synth): Try ROTATEXR_CIO with count 1.
  331.     superopt.h (PERFORM_ROTATEXR_CIO): New definition.
  332.     (PERFORM_ROTATEXL_CIO): Rewrite.
  333.     (PERFORM_ROTATEL_CIO): Make sure we use logical shifts.
  334.     (PERFORM_ROTATER_CIO): New definition.
  335.     insn.def, run_program.def: Add new instructions.
  336.     (output_assembler, M68000): Handle rotate right instructions.
  337.  
  338.     * superopt.c (random_word): Use mrand48 for __svr4__.
  339.     (operand_names): Merge I386 and PYR.
  340.     (output_assembler, I386, ADD): Output "decl" here...
  341.     (output_assembler, I386, SUB): ...not here.
  342.  
  343.     (synth): Bump shift cost for I386 from 2 to 1.
  344.     (synth): Merge I386 shift patterns that now became identical to
  345.     other patterns.
  346.  
  347.     (CISC synth): Don't try ROTATEXL_CIO with count 1; ADD_CIO performs
  348.     the very same operation.
  349.  
  350.     * insn.def (CPEQ): Use 'c' for commutative.
  351.     (CPNEQ, CMPEQ): Likewise.
  352.     (COMCY): This is not a binary operation; use class 'x'.
  353.  
  354.     * superopt.c (main): Print target information for -v.
  355.     * superopt.h (TARGET_STRING): New #define.
  356.  
  357.     * Ported to Hitatchi SH.  Most files affected.
  358.  
  359. Sun Jul 17 04:34:49 1994  Torbjorn Granlund  (tege@tiny.cygnus.com)
  360.  
  361.     * superopt.c (HPPA synth): Fix typos for shifting conditionalized on
  362.     SHIFTS.
  363.  
  364.     * Makefile (FILES): Include ChangeLog.
  365.  
  366. Thu Jun 16 19:41:10 1994  Torbjorn Granlund  (tege@adder.cygnus.com)
  367.  
  368.     * superopt.c (output_assembler, I386, case AND_RC):
  369.     Fix typo in condition for andb.
  370.     (case IOR_RC): Likewise.
  371.     (case XOR_RC): Likewise.
  372.     (CISC synth): Try "movl $0,d" for I386.
  373.  
  374. Sun Jan 30 22:35:02 1994  Torbjorn Granlund  (tege@adder.cygnus.com)
  375.  
  376.     * superopt.c (ffs_internal): Initialize ci to silent compiler
  377.     warning.
  378.     * superopt.c (header): Declare random_word.
  379.  
  380. Sat Oct 16 21:21:51 1993  Torbjorn Granlund  (tege@adder.cygnus.com)
  381.  
  382.     * superopt.c (CISC synth): Fix typo, MC68020 was M68020.
  383.  
  384. Mon Jul 12 20:37:12 1993  Torbjorn Granlund  (tege@pde.nada.kth.se)
  385.  
  386.     * superopt.c (CISC synth): Try BSF86 for I386.
  387.     * superopt.h, run_program.def, insn.def: Add defs for BSF86.
  388.  
  389. Fri May 28 11:59:43 1993  Torbjorn Granlund  (tege@pde.nada.kth.se)
  390.  
  391.     * superopt.c (RISC synth): Try subf on POWERPC.
  392.     (output_assembler)[POWER]: Handle subf.
  393.  
  394. Mon May 24 09:46:56 1993  Torbjorn Granlund  (tege@pde.nada.kth.se)
  395.  
  396.     * All files: Conditionalize on POWER, not RS6000.
  397.     * superopt.h: Add handling of POWERPC.
  398.     * superopt.c: Exclude ABS, NABS, DOZ if POWERPC.
  399.  
  400. Sun Feb 21 14:21:20 1993  Torbjorn Granlund  (tege@pde.nada.kth.se)
  401.  
  402.     * superopt.h (struct insn_t): Make opcode field wider at expense of
  403.     other fields.
  404.  
  405.     * superopt.c (HPPA synth): Make pruning less agressive after
  406.     nullifying insn.
  407.     * run_program.def: Special case for N_INSNS == 0.
  408.  
  409.     * superopt.c (ALPHA synth, CMOV*): Move pruning test inside DR loop.
  410.     Add condition (DR != LAST_DEST).
  411.  
  412.     * superopt.c (outside of functions): Declare malloc and realloc.
  413.     * Ported to HP-PA.  Most files affected.
  414.  
  415. Thu Feb 18 21:23:17 1993  Torbjorn Granlund  (tege@pde.nada.kth.se)
  416.  
  417.     * superopt.h (VALUE_MIN_SIGNED): Make it work for non 32-bit
  418.     computers.
  419.     (VALUE_MAX_SIGNED): Likewise.
  420.     (__immediate_val): Use VALUE_MIN_SIGNED and VALUE_MAX_SIGNED.
  421.  
  422. Mon Feb 15 11:41:16 1993  Torbjorn Granlund  (tege@cyklop.nada.kth.se)
  423.  
  424.     * version.h: Now 2.2.
  425.  
  426.     * superopt.c (operand_names): Define constants up to 63 for ALPHA.
  427.     (operand_names): Remove ...0,0,0... as array filler.
  428.  
  429.     * superopt.h (BITS_PER_WORD): Conditionalize on ALPHA.
  430.     (unsigned_word, signed_word): Define depending on BITS_PER_WORD and
  431.     compiler.
  432.  
  433. Sun Feb 14 20:25:05 1993  Torbjorn Granlund  (tege@cyklop.nada.kth.se)
  434.  
  435.     * superopt.c (output_assembler): Define Alpha asm syntax.
  436.     * run_program.def: Special code for CMOVxx.
  437.  
  438. Sat Feb 13 01:10:06 1993  Torbjorn Granlund  (tege@cyklop.nada.kth.se)
  439.  
  440.     * Ported to Alpha.  Most files affected.
  441.  
  442. Sat Jan  2 15:50:40 1993  Torbjorn Granlund  (tege@sics.se)
  443.  
  444.     * superopt.h (PERFORM_FFS): New macro.
  445.     * superopt.c (ffs_internal): New function.
  446.     * goal.def (FFS): Use ffs_internal.
  447.  
  448.     * superopt.c (output_assembler)[I386]: Fix typo, %s -> %d, two
  449.     places.
  450.  
  451. Thu Dec 17 13:58:33 1992  Torbjorn Granlund  (tege@sics.se)
  452.  
  453.     * superopt.c (output_assembler)[RS6000,AM29K]: Handle CLZ.
  454.  
  455. Sat Dec 12 15:40:05 1992  Torbjorn Granlund  (tege@sics.se)
  456.  
  457.     * version.h: Now 2.1.
  458.  
  459.     * Makefile (dist): Make sed command more robust.
  460.  
  461.     * superopt.h: Handle MC68000 and MC68020, not M68000.
  462.     * superopt.h: Define M68000 #if MC68000 || MC68020.
  463.     * superopt.h (SHIFT_COST): Define.  For MC68000 it's depends on
  464.     count.
  465.     * superopt.c (CISC synth): Use SHIFT_COST for all shifting on
  466.     MC68000.
  467.     * superopt.c (CISC synth): Try logical operation with #1.
  468.     * superopt.c (output_assembler)[M68000 AND,IOR,XOR]: Output
  469.     operation with small immediates using word (w) suffix.
  470.     * superopt.c (output_assembler)[I386 AND,IOR,XOR]: Likewise.
  471.  
  472.     * superopt.c (output_assembler)[M88000 ADC_CI]: Output subu.ci, not
  473.     subu.co.
  474.  
  475.     * superopt.c (RISC synth)[0-ary instructions]: Major enhancements.
  476.  
  477.     Next 3 from Paul Eggert:
  478.     * goal.def (DIVIDE_BY_MINUS_2e31): New name flo DIVIDE_BY_2e31,
  479.     better describing the operation.
  480.     * goal.def (DEF_GOAL for GRAY, GRAY2, DIVIDE_BY_MINUS_2e31): Avoid
  481.     overflow by shifting -1 instead of 1.
  482.     * superopt.h (__immediate_val): Avoid overflow by casting 1 to word.
  483.     overflow.)
  484.  
  485.     * superopt.c (timings): New name for 'time'.  (Clashed with defs in
  486.     <time.h>).
  487.  
  488.     * superopt.c (recurse): Assign sequence[n_insn] using constructor
  489.     #if __GNUC__.  (Gives better code.)
  490.  
  491.     * superopt.c: Update comments.
  492.  
  493.     * superopt.c (ARITH_BITS #define): Remove.  (Not used any more.)
  494.  
  495.     * superopt.c (cputime): #if USG, use clock() instead of getrusage.
  496.  
  497.     * superopt.c (init_test_sets): Remove #ifdef UDIV_WITH_SDIV code.
  498.     (Obsolete.)
  499.  
  500. Wed Dec  9 14:58:17 1992  Torbjorn Granlund  (tege@sics.se)
  501.  
  502.     * superopt.c (init_test_sets): Remove unused label 'next'.
  503.  
  504.     * superopt.c (CISC synth, I386, PYR)[COPY 0 => v]: Cost is 1.
  505.     Pass n_values for s1,s2,d operands.  (Bug fix.)
  506.  
  507.     * superopt.c (RISC synth, SPARC)[r1 + 1 - cy]: Try this, with and
  508.     without generating carry out.  (Bug fix.)
  509.  
  510.     * superopt.h: Define __CLOBBER_CC and __AND_CLOBBER_CC.
  511.     (sparc asm PERFORM macros): Use __CLOBBER_CC.  (Bug fixes.)
  512.  
  513. Sat Nov 28 13:50:09 1992  Torbjorn Granlund  (tege@sics.se)
  514.  
  515.     * version.h: Now 2.0.
  516.  
  517.     * superopt.c (init_test_sets): Remove code inside UDIV_WITH_SDIV
  518.     conditional.
  519.  
  520.     * superopt.c (output_assembler): Output pyramid assembler.
  521.     Output MUL for all CPUs that have it.
  522.     * superopt.c (CISC synth): Fix many pyramid-related errors.
  523.     * superopt.c (random_word): #ifdef hpux, use mrand48.
  524.  
  525.     * superopt.h, superopt.c (synth), insn.def, run_program.def:
  526.     UMULWIDEN_LO => MUL, PERFORM_UMULWIDEN_LO => PERFORM_MUL.
  527.     * superopt.h (PERFORM_MUL): Simply use (r1 * r2), don't call
  528.     umul_ppmm.
  529.     * superopt.h: Define all PERFORM_* macros unconditionally.
  530.     * insn.def: Remove #ifdef DM conditionals.
  531.     * goal.def (UMULH): New goal.
  532.     * goal.def: Remove #ifdef DM conditionals.  Include some goals only
  533.     with GCC.  Switch off division goals due to domain problems.
  534.     * run_program.def: Remove #ifdef DM conditionals.
  535.  
  536.     * superopt.c (synth): Try shifts by 16, #if SHIFT16.
  537.  
  538.     * superopt.h: Include longlong.h unconditionally.
  539.  
  540.     * Makefile (FILES): Add longlong.h.
  541.     (dist): Rewrite to have tar file creating a directory.
  542.  
  543. Tue Jul 28 15:05:09 1992  Torbjorn Granlund  (tege@sics.se)
  544.  
  545.     * goel.def: Add new goals for signed division.
  546.  
  547.     * Makefile: Create superopt-VERSION.tar.Z.
  548.  
  549.     * version.h: New file.
  550.     * superopt.c: Include "version.h".
  551.     * superopt.c (main): Handle `-version' option.
  552.  
  553.     * superopt.c (main): Better error messages.
  554.  
  555.     * superopt.c (main): Move initialization of goal_function to handle
  556.     empty command lines.
  557.  
  558.     * superopt.c: Add timing per recursion level #ifdef TIMING.
  559.  
  560. Thu Jun 25 20:10:23 1992  Torbjorn Granlund  (tege@sics.se)
  561.  
  562.     * superopt.c (test_sequence): Remove STATISTICS.
  563.     (recurse): Put it here.
  564.  
  565.     * superopt.c (random_word): Back to random.
  566.  
  567.     * superopt.c (recurse): Make it static.
  568.  
  569.     * superopt.c (RISC synth): Don't copy 0 on sparc and 88k.
  570.  
  571. Fri Jun 12 17:16:54 1992  Tom Wood  (wood@gen-rtx.rtp.dg.com)
  572.  
  573.     * superopt.c (test_sequence): Make n_test_operands const to avoid
  574.     re-computation.
  575.  
  576. Thu Jun 11 23:23:26 1992  Torbjorn Granlund  (tege@sics.se)
  577.  
  578.     * Version 1.91.
  579.  
  580.     * superopt.c (main): Check argc before calling atoi.
  581.  
  582. Thu Jun 11 20:38:20 1992  Tom Wood  (wood@gen-rtx.rtp.dg.com)
  583.  
  584.     * goal.def: New file.
  585.     * superopt.[ch]: Use goal.def.
  586.  
  587. Thu Jun 11 19:19:37 1992  Torbjorn Granlund  (tege@sics.se)
  588.  
  589.     * Version 1.90.
  590.  
  591. Thu Jun 11 10:38:20 1992  Tom Wood  (wood@gen-rtx.rtp.dg.com)
  592.  
  593.     * insn.def: New file.
  594.     * superopt.[ch]: Use insn.def.
  595.  
  596.     * superopt.c (output_assembler, m88k COPY): Specify use of r0 and
  597.     print small constants right.
  598.  
  599.     * superopt.c (synth): Correct indentation.
  600.  
  601.     * superopt.c (main): Add -all option to run thorough all know goal
  602.     functions.  This can be done quickly with -max-cost 2.
  603.  
  604.     * superopt.h (IMMEDIATE_VAL): Evaluate sparse values properly.
  605.  
  606.     * superopt.h (PERFORM_ADD_CIO, PERFORM_ADC_CIO): Operand 0 is
  607.     written before the inputs are read.
  608.  
  609.     * superopt.h (PERFORM_CMPPAR): Add m88110 bits and don't check
  610.     with the native cmp instruction.
  611.  
  612. Thu Jun 11 02:37:01 1992  Torbjorn Granlund  (tege@sics.se)
  613.  
  614.     * Version 1.16.
  615.  
  616.     * superopt.h: Hack PERFORM_{CLZ,FF1} to be faster.
  617.     * superopt.c (clz_tab): Corresponding changes.
  618.     * superopt.c (ff1_tab): New table for PERFORM_FF1.
  619.  
  620.     * superopt.c (RISC synth): Try ADD_CI(x,x).
  621.  
  622.     * superopt.c (main_synth): Always pass NO_PRUNE to synth.
  623.  
  624.     * superopt.c (output_assembler): Generalize "cmp" output.
  625.  
  626.     * superopt.c (synth): Rename cy_in to ci, and cy_out to co.
  627.  
  628.     * superopt.h (sparc asm): Clobber "cc".
  629.     * superopt.h: Include asm iff USE_ASM is defined.  Off by default.
  630.  
  631. Wed Jun 10 15:40:45 1992  Tom Wood  (wood@gen-rtx.rtp.dg.com)
  632.  
  633.     * superopt.c (output_assembler): Fix typos in 88k assembler.
  634.     * superopt.c (operand_names): Make the constant names agree with
  635.     the new values.
  636.  
  637.     * run_program.def (run_program): Have this return the value of the
  638.     carry flag or -1 if the flag was never set.
  639.     * superopt.h: run_program now returns an int.
  640.     * superopt.c (main_synth): Allow the specification of an initial
  641.     sequence of instructions and provide an example sequence.
  642.  
  643.     * superopt.h (PERFORM_FF1, PERFORM_CMPPAR): When running native,
  644.     compare the native instruction's output to the generic
  645.     computation.
  646.  
  647. Thu Jun 10 02:00:22 1992  Torbjorn Granlund  (tege@sics.se)
  648.  
  649.     * Version 1.15.
  650.  
  651.     * Add for CLZ, CTZ, and 88k's FF0, FF1, EXT*, and CMPPAR.
  652.     * superopt.[ch]: Rewrite handling of immediates to allow arbitrary
  653.     shifts.
  654.  
  655. Sat Jun  6 20:04:03 1992  Torbjorn Granlund  (tege@sics.se)
  656.  
  657.     * Version 1.14.
  658.  
  659.     * superopt.c: 88k subu.c* and addu.c* insn were incorrectly asumed
  660.     to accept immediate values.
  661.  
  662. Wed Apr  1 22:03:04 1992  Torbjorn Granlund  (tege@sics.se)
  663.  
  664.     * superopt.[ch], run_program.def: ROTATEXL_CIO, new name for
  665.     ROTATEXL_CO.
  666.     * superopt.c: Only use ROTATEXL_CIO when carry is defined.
  667.  
  668.     * superopt.c (test_sequence): Add some values to test_operands
  669.     vector.
  670.     * superopt.c (RISC synth): Try add of immediate 1.
  671.     * superopt.[ch]: Add new goals for GS paper.
  672.  
  673. Thu Mar  5 05:56:12 1992  Torbjorn Granlund  (tege@sics.se)
  674.  
  675.     * superopt.[ch], run_program.def: Ported to pyramid.  Added
  676.     <LOGICAL>_CC internal insns.
  677.  
  678. Fri Feb 14 23:19:11 1992  Torbjorn Granlund  (tege@sics.se)
  679.  
  680.     * superopt.c (output_assembler M88100): Handle negative values for
  681.     ADD_CIO, by outputting subu.
  682.     * superopt.c (RISC synth): Fix comment add ADD_CIO (..., -1).
  683.  
  684. Thu Dec 12 21:54:14 1991  Torbjorn Granlund  (tege@sics.se)
  685.  
  686.     * superopt.c (test_sequence): Add comments.
  687.  
  688. Tue Dec 10 21:37:01 1991  Torbjorn Granlund  (tege@sics.se)
  689.  
  690.     * superopt.c (main_synth): Make nested for loops have different
  691.     induction variables...
  692.  
  693. Thu Dec  5 19:33:40 1991  Torbjorn Granlund  (tege@sics.se)
  694.  
  695.     * superopt.c (output_assembler several places): Cast IMMEDIATE_VAL
  696.     to signed_word when comparing to zero.
  697.  
  698. Wed Nov 13 21:20:11 1991  Torbjorn Granlund  (tege@sics.se)
  699.  
  700.     * superopt.c (main_synth): Hack to generate the initial random
  701.     arguments such that the goal function take a value != 0.
  702.  
  703. Mon Nov 11 11:41:50 1991  Torbjorn Granlund  (tege@sics.se)
  704.  
  705.     * superopt.c (output_assembler RS6000 and M88000):  Handle (op1 & 1).
  706.     * superopt.c (RISC synth): Try (op1 & 1) on all machines.
  707.  
  708. Sat Nov  2 16:24:35 1991  Torbjorn Granlund  (tege@sics.se)
  709.  
  710.     * superopt.c (RISC synth): Try 29k CPXX insns with immediate 0.
  711.  
  712.     * superopt.c (test_sequence): Output small negative operands in
  713.     decimal.
  714.  
  715. Fri Oct 25 01:01:54 1991  Torbjorn Granlund  (tege@sics.se)
  716.  
  717.     * superopt.c (test_sequence): Test with VALUE_MAX_SIGNED too.
  718.  
  719.     * superopt.c (CISC synth): Try CMP operation for VALUE_MAX_SIGNED
  720.     and VALUE_MIN_SIGNED on '386.
  721.  
  722.     * superopt.c, superopt.h, run_program.def: Add new operation
  723.     ROTATEXL_CO.  Try it for CISCs.
  724.     * ROTATEL new name for ROTATE.
  725.  
  726.     * superopt.c (output_assembler I386): Fix syntax for if statement.
  727.  
  728.     * superopt.h (PERFORM_*SHIFT*, PERFORM_ROTATE*): Truncate shift
  729.     counts with BITS_PER_WORD.
  730.     * superopt.h (TRUNC_CNT): New macro for shift count truncation.
  731.  
  732.     * superopt.c (output_assembler M68000 COPY): Output "moveq" for
  733.     negative numbers as intended, by casting operands to signed_word.
  734.  
  735.     * superopt.c (RISC synth): Try SUB for two regs even on M88000.
  736.  
  737.     * superopt.c (RISC synth, CISC synth): Try rotate and shift
  738.     instruction with count 1.
  739.     * superopt.c (output_assembler): Output rotate instructions.
  740.  
  741.     * superopt.c, superopt.h, run_program.def: Add new operation
  742.     "ASHIFTR_CON" for RS/6000 arithmetic right shifts.  (The
  743.     arithmetic shift insns used to be incorrectly described as not
  744.     affecting carry.)
  745.  
  746. Local Variables:
  747. mode: indented-text
  748. left-margin: 8
  749. fill-column: 76
  750. version-control: never
  751. End:
  752.