Skip to content
Snippets Groups Projects
  1. Mar 01, 2000
  2. Feb 29, 2000
    • 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.
      e19ffca9
    • Simon Marlow's avatar
      [project @ 2000-02-29 16:58:08 by simonmar] · 426fa533
      Simon Marlow 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.
      426fa533
    • Simon Marlow's avatar
      [project @ 2000-02-29 14:38:19 by simonmar] · 2edb4793
      Simon Marlow 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
      itself.
      2edb4793
    • Julian Seward's avatar
      [project @ 2000-02-29 12:54:51 by sewardj] · 8b64c2c5
      Julian Seward 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
         representation.
      8b64c2c5
    • Julian Seward's avatar
      [project @ 2000-02-29 12:27:35 by sewardj] · bb772b27
      Julian Seward authored
      The GHC Prelude doesn't seem to export Addr.  Make it do so in combined
      mode for compatibility with standalone mode.
      bb772b27
    • Simon Marlow's avatar
      [project @ 2000-02-29 12:08:55 by simonmar] · cd9d822e
      Simon Marlow 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
      while.
      cd9d822e
    • Julian Seward's avatar
      [project @ 2000-02-29 11:36:46 by sewardj] · 8c670eaa
      Julian Seward authored
      Update sparc-specific parts of NCG to use new infrastructure, so they
      will at least compile under Solaris.  Won't work (yet) tho.
      8c670eaa
  3. Feb 28, 2000
    • Jeff Lewis's avatar
      [project @ 2000-02-28 21:59:32 by lewie] · f8e67a2c
      Jeff Lewis 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.
      f8e67a2c
    • Simon Marlow's avatar
      [project @ 2000-02-28 16:54:29 by simonmar] · 58b3e315
      Simon Marlow authored
      Add haxml/lib to imports for -syslib text.
      58b3e315
    • Simon Marlow's avatar
      [project @ 2000-02-28 13:59:43 by simonmar] · 187e9eb5
      Simon Marlow authored
      Only fill in the ARG_TAG when DEBUG is on, for unregisterised.
      187e9eb5
    • Julian Seward's avatar
      [project @ 2000-02-28 12:02:31 by sewardj] · 4070b105
      Julian Seward 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.
      4070b105
    • Simon Marlow's avatar
      [project @ 2000-02-28 11:53:44 by simonmar] · e0e07f52
      Simon Marlow authored
      oops, back out local patch that accidentally got committed with rev. 1.139.
      e0e07f52
    • Simon Marlow's avatar
      [project @ 2000-02-28 10:57:44 by simonmar] · bbe3617e
      Simon Marlow authored
      fix = vs. == in conditional
      bbe3617e
    • Simon Marlow's avatar
      [project @ 2000-02-28 10:14:27 by simonmar] · 33fd067b
      Simon Marlow authored
      document the -recomp option explicitly.
      33fd067b
    • Simon Marlow's avatar
      [project @ 2000-02-28 09:17:54 by simonmar] · c5535e01
      Simon Marlow authored
      'IPVARID :: type' moved from btype to type, to reduce conflicts.
      c5535e01
  4. Feb 25, 2000
  5. Feb 24, 2000
  6. Feb 23, 2000
    • Jeff Lewis's avatar
      [project @ 2000-02-23 19:41:50 by lewie] · e87d56ce
      Jeff Lewis 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.
      e87d56ce
Loading