1. 01 Mar, 2000 6 commits
    • keithw's avatar
      [project @ 2000-03-01 18:38:45 by keithw] · fcbd96e3
      keithw authored
      Display (overall) averages for per-module statistics as well as for
      per-program statistics.
      Also, with `-d' (default; `-n' to turn off) compute geometric standard
      deviations and display +/- 1 s.d. points as well as average.  Note that
      since these are *geometric*, the lower point will appear closer to the
      average than the upper.  This is correct behaviour.
    • lewie's avatar
      [project @ 2000-03-01 18:10:43 by lewie] · a61b7e6e
      lewie authored
      Filled in some missing support for importing defs w/ implicit params.
      Fixed bug in improvement w/ implicit params.
    • sewardj's avatar
      [project @ 2000-03-01 16:57:57 by sewardj] · c4574ceb
      sewardj authored
      forceIO_ret_entry, when #ifndef REG_R1: remember to load Node.
    • panne's avatar
      [project @ 2000-03-01 15:20:54 by panne] · 0db5d781
      panne authored
      Because of the previous HaXml-"improvement" :-}, syslib text now
      depends on syslib data.
    • sewardj's avatar
      [project @ 2000-03-01 12:31:22 by sewardj] · 9fa0c8cb
      sewardj authored
      Temporarily disable Stix inlining whilst we figure out how to fix
      obscure bugs in the register allocator.  With inlining off, everything
      seems to work, and the compiler can boot itself, but when enabled,
      inlining exposes a register allocation bug which causes
      ghc/compiler/utils/FastString.lhs to be miscompiled on Linux (the big
      arithmetic expressions for computing hash values).
    • simonmar's avatar
      [project @ 2000-03-01 11:09:05 by simonmar] · 1347c4fe
      simonmar authored
      oops, remove assigment to non-existent "emitted" field in a CCS.
  2. 29 Feb, 2000 7 commits
    • sof's avatar
      [project @ 2000-02-29 19:59:38 by sof] · e19ffca9
      sof authored
      Added removeIndirections() and make use of it in lookupStableName() -- increases
      the possibilities of StableName sharing.
    • simonmar's avatar
      [project @ 2000-02-29 16:58:08 by simonmar] · 426fa533
      simonmar authored
      Change the behaviour of the cost-centre stack profiler for recursive
      sccs.  Before, we used to remove the old copy of the CC from the stack
      and push the new one on.  Now, we record back-edges in the graph when
      a recursive scc is detected.
      This should give saner-looking cost-centre stacks for heavily
      recursive code.  Indeed, it reduces the number of stacks in the
      profile for some examples considerably.
    • simonmar's avatar
      [project @ 2000-02-29 14:38:19 by simonmar] · 2edb4793
      simonmar authored
      Ctrl-C now interrupts the RTS safely.  Previously it called
      shutdownHaskellAndExit() from the signal handler directly, which isn't
      safe because we may have been interrupted during GC or whatever.  Now
      we set the interrupted flag and wait for the RTS to shut down by
    • sewardj's avatar
      [project @ 2000-02-29 12:54:51 by sewardj] · 8b64c2c5
      sewardj authored
      Make foreign import work in combined mode:
      -- Allow interpreter to do ccall primops even in combined mode
      -- Implement hugsprimMkIO in combined mode, so as to wrap up a
         an IO value created by Hugs in a form compatible with GHC's IO
    • sewardj's avatar
      [project @ 2000-02-29 12:27:35 by sewardj] · bb772b27
      sewardj authored
      The GHC Prelude doesn't seem to export Addr.  Make it do so in combined
      mode for compatibility with standalone mode.
    • simonmar's avatar
      [project @ 2000-02-29 12:08:55 by simonmar] · cd9d822e
      simonmar authored
      Fix boundary cases for quotInteger, remInteger & a few others.  These
      changes somehow escaped 4.06 and have been sitting in my tree for a
    • sewardj's avatar
      [project @ 2000-02-29 11:36:46 by sewardj] · 8c670eaa
      sewardj authored
      Update sparc-specific parts of NCG to use new infrastructure, so they
      will at least compile under Solaris.  Won't work (yet) tho.
  3. 28 Feb, 2000 8 commits
    • lewie's avatar
      [project @ 2000-02-28 21:59:32 by lewie] · f8e67a2c
      lewie authored
      Fix signatures w/ implicit parameter types in them (in particular,
      correctly handle the case where there are no type variables).  Also
      made a few more things Outputable.  Nuke outdated comment in Parser.y.
    • simonmar's avatar
      [project @ 2000-02-28 16:54:29 by simonmar] · 58b3e315
      simonmar authored
      Add haxml/lib to imports for -syslib text.
    • simonmar's avatar
      [project @ 2000-02-28 13:59:43 by simonmar] · 187e9eb5
      simonmar authored
      Only fill in the ARG_TAG when DEBUG is on, for unregisterised.
    • sewardj's avatar
      [project @ 2000-02-28 12:02:31 by sewardj] · 4070b105
      sewardj authored
      Many changes to improve the quality and correctness of generated code,
      both for x86 and all-platforms.  The intent is that the x86 NCG will
      now be good enough for general use.
      -- Add an almost-trivial Stix (generic) peephole optimiser, whose sole
         purpose is elide assignments to temporaries used only once, in the
         very next tree.  This generates substantially better code for
         conditionals on all platforms.  Enhance Stix constant folding to
         take advantage of the inlining.
         The inlining presents subsequent insn selection phases with more
         complex trees than would have previously been used to.  This has
         shown up several bugs in the x86 insn selectors, now fixed.
         (assumptions that data size is Word, when could be Byte,
          assumptions that an operand will always be in a temp reg, etc)
      -- x86: Use the FLDZ and FLD1 insns.
      -- x86: spill FP registers with 80-bit loads/stores so that
         Intel's extra 16 bits of accuracy are not lost.  If this isn't
         done, FP spills are not suitably transparent.  Increase the
         number of spill words available to 2048.
      -- x86: give the register allocator more flexibility in choosing
         spill temporaries.
      -- x86, RegAllocInfo.regUsage: fix error for GST, and rewrite to
         make it clearer.
      -- Correctly track movements in the C stack pointer, and generate
         correct spill code for archs which spill against the stack pointer
         even when the stack pointer moves.  Redo the x86 ccall mechanism
         to push args on the C stack in the normal way.  Rather than have
         the spiller have to analyse code sequences to determine the current
         stack offset, the insn selectors communicate the current offset
         whenever it changes by inserting a DELTA pseudo-insn.  Then the
         spiller only has to spot DELTAs.
         This means having a new native-code-generator monad (Stix.NatM)
         which carries both a UniqSupply and the current stack offset.
      -- Remove the asmPar/asmSeq ways of grouping insns together.
         In the presence of fixed registers, it is hard to demonstrate
         that insn selectors using asmPar always give correct code, and
         the extra complication doesn't help any.
         Also, directly construct code sequences using tree-based ordered
         lists (utils/OrdList.lhs) for linear-time appends, rather than
         the bizarrely complex method using fns and fn composition.
      -- Inline some hcats in printing of x86 address modes.
      -- Document more of the hidden assumptions which insn selection relies
         on, particular wrt addressing modes.
    • simonmar's avatar
      [project @ 2000-02-28 11:53:44 by simonmar] · e0e07f52
      simonmar authored
      oops, back out local patch that accidentally got committed with rev. 1.139.
    • simonmar's avatar
      [project @ 2000-02-28 10:57:44 by simonmar] · bbe3617e
      simonmar authored
      fix = vs. == in conditional
    • simonmar's avatar
      [project @ 2000-02-28 10:14:27 by simonmar] · 33fd067b
      simonmar authored
      document the -recomp option explicitly.
    • simonmar's avatar
      [project @ 2000-02-28 09:17:54 by simonmar] · c5535e01
      simonmar authored
      'IPVARID :: type' moved from btype to type, to reduce conflicts.
  4. 25 Feb, 2000 10 commits
  5. 24 Feb, 2000 8 commits
  6. 23 Feb, 2000 1 commit
    • lewie's avatar
      [project @ 2000-02-23 19:41:50 by lewie] · e87d56ce
      lewie authored
      Handle `with' more cleverly.  I was generating partially applied methods
      for the case where the `with' expression was also overloaded, but this
      was buggy, and completely unnecessary.  Instead, simply force the method
      binding at the point of the `with' expression (we reap no benefits from
      pushing the sharing further out anyway), and release the remainder of
      the method's context into the LIE.