1. 14 Jun, 2000 5 commits
  2. 13 Jun, 2000 35 commits
    • simonmar's avatar
      [project @ 2000-06-13 16:10:00 by simonmar] · 0a423b55
      simonmar authored
      forgot one file
      0a423b55
    • simonmar's avatar
      [project @ 2000-06-13 16:07:20 by simonmar] · 877aad48
      simonmar authored
      New Driver
      ==========
      
      Most things work now, so I'm committing this for a shake down.
      Doubtless there'll be some breakage but things should be back to
      normal by the end of the week.
      
      NOTE: GHC 4.06 won't work to build this driver at the moment, due to a
      bug in its parser.  I'll commit a workaround shortly.
      
      There are several improvements here:
      
      	- the driver is written in Haskell, so is allegedly
      	  more maintainable than the previous one.  It's a bit shorter,
      	  at any rate.
      
      	- the package system has been generalised, so that eg.
      	  the RTS is a package, as is GMP and the prelude.  Packages
      	  are now configured via a configuration file, package.conf.
      	  Two versions of package.conf are automatically generated by
      	  PackageSrc.hs, one for ghc-inplace and one for the installed ghc.
      
      	- So that we only have to build the driver once, there's some
      	  special hackery to deal with locations of utilities, and
      	  other configuration stuff:
      
      	  ghc now has a -B option, which is used in a similar way
      	  to gcc's.  eg.
      
      		ghc -B/home/blah/fptools
      
      	  will run ghc in-place in the specified fptools tree, using
      	  /home/blah/fptools/ghc/utils/mkdependHS to find mkdependHS
      	  for example.  ghc-inplace is now a small shell script that
      	  simply invokes the above.  Whereas
      
      		ghc -B/usr/local/lib/ghc-4.07
      
      	  also works, for an installed copy of ghc in
      	  /usr/local/lib/ghc-4.07.
      
      	- the mangler, object splitter and GC stats gatherer are separate
      	  scripts in subdirectories of ghc/driver.  ghc-asm.lprl and
      	  ghc-split.lprl have been copied in the CVS repository to maintain
      	  the history (fingers crossed; I've never done this before)
      
      
      Other notes:
      
      	- Java support isn't there yet.  Andy: don't update for the time
      	  being until I can sort this.
      
      	- Windows support is also broken, but will be fixed in due course.
      877aad48
    • sof's avatar
      [project @ 2000-06-13 15:35:29 by sof] · eab8ac17
      sof authored
      x86: Relativise register table offsets for Hp, R1, R2 and SpA
      eab8ac17
    • sof's avatar
      [project @ 2000-06-13 15:35:29 by sof] · 8da2e6d8
      sof authored
      x86: Catch fast entry points fallthroughs via %esi and %edi
      8da2e6d8
    • sof's avatar
      [project @ 2000-06-13 15:35:29 by sof] · 56f7d139
      sof authored
      m68k-*-nextstep3 updates
      56f7d139
    • sof's avatar
      [project @ 2000-06-13 15:35:29 by sof] · 64d3966d
      sof authored
      When doing -monly-x-regs, fix up entry and exit from PerformGC_wrapper
      64d3966d
    • sof's avatar
      [project @ 2000-06-13 15:35:29 by sof] · 8ef57b89
      sof authored
      Tweaked __fexp regexps
      8ef57b89
    • sof's avatar
      [project @ 2000-06-13 15:35:29 by sof] · fe4c050b
      sof authored
      PPC updates
      fe4c050b
    • sof's avatar
      [project @ 2000-06-13 15:35:29 by sof] · 90840304
      sof authored
      On mingw32, which is the only 'platform' where we support producing
      DLLs, prefix each static closure with a zero word. This is needed so
      that we can distinguish between pointers to (reversed!) info tables
      and static closures just by checking whether there's a zero word just
      above the pointed-to entity. Wish there was a better way..
      90840304
    • sof's avatar
      [project @ 2000-06-13 15:35:29 by sof] · 54077fbc
      sof authored
      HPUX fix to allow non-empty consistency chunks pass through OK
      54077fbc
    • sof's avatar
      [project @ 2000-06-13 15:35:29 by sof] · cc962601
      sof authored
      Groks output from cygwin32-gcc
      cc962601
    • sof's avatar
      [project @ 2000-06-13 15:35:29 by sof] · 7f4068af
      sof authored
      Fixed consist pattern for cygwin32
      7f4068af
    • sof's avatar
      [project @ 2000-06-13 15:35:29 by sof] · c625c85f
      sof authored
      - include mingw32 in the list of x86 platforms supported.
      - weed out ecoff debug information.
      c625c85f
    • simonpj's avatar
      [project @ 2000-06-13 15:35:29 by simonpj] · 77bdc0d1
      simonpj authored
      More small changes towards 2.02
      77bdc0d1
    • simonmar's avatar
      [project @ 2000-06-13 15:35:29 by simonmar] · c87a6127
      simonmar authored
      put SRTs in the text section.
      c87a6127
    • simonmar's avatar
      [project @ 2000-06-13 15:35:29 by simonmar] · a18ef0ff
      simonmar authored
      gcc 2.95 on Sparc changed the assembly output slightly.  This should
      fix it.
      a18ef0ff
    • simonmar's avatar
      [project @ 2000-06-13 15:35:29 by simonmar] · aa2cadf5
      simonmar authored
      freebsd3 ==> freebsd
      aa2cadf5
    • simonmar's avatar
      [project @ 2000-06-13 15:35:29 by simonmar] · 4ccbb70f
      simonmar authored
      Push directives over literal chunks when attempting to move them to
      the following chunk on x86.  Occasionally gcc generates a .glob
      directive some distance before the symbol it refers to, and we were
      ending up with a whole load of .glob directives attached to strings,
      and duplicated in each .o file when splitting.
      
      This change reduces the size of my libHSstd_p.a from 43M (!!!) to 9M.
      I think this problem must have appeared with gcc 2.95.2, but it's a
      little strange that I didn't notice it until now.
      4ccbb70f
    • simonmar's avatar
      [project @ 2000-06-13 15:35:29 by simonmar] · c71969ee
      simonmar authored
      Oops, back out most of last revision.  Other changes crept in by mistake.
      c71969ee
    • simonmar's avatar
      [project @ 2000-06-13 15:35:29 by simonmar] · cd7b1451
      simonmar authored
      Make object file splitting simpler, in preparation for conversion to
      the new driver.
      
      The "inject split markers" phase is now omitted, instead we generate
      the split markers directly.
      
      Driver: also removed now-defunct -fpedantic-bottoms flag.
      cd7b1451
    • simonmar's avatar
      [project @ 2000-06-13 15:35:29 by simonmar] · a25cf6cb
      simonmar authored
      Fix a bug in previous commit, some .globls were getting thrown away.
      a25cf6cb
    • simonmar's avatar
      [project @ 2000-06-13 15:35:29 by simonmar] · 06862d5c
      simonmar authored
      Fix -monly-3-regs problem.
      06862d5c
    • simonmar's avatar
      [project @ 2000-06-13 15:35:29 by simonmar] · 65b0474c
      simonmar authored
      Crude allocation-counting extension to ticky-ticky profiling.
      
      Allocations are counted against the closest lexically enclosing
      function closure, so you need to map the output back to the STG code.
      65b0474c
    • simonmar's avatar
      [project @ 2000-06-13 15:35:29 by simonmar] · 266047a8
      simonmar authored
      Change the convention for cost-centre labels to be <name>_cc and
      cost-centre stacks to be <name>_ccs.  This makes cost-centre labels
      more consistent with our other naming conventions, and fixes some
      problems caused by cost-centre labels being misinterpreted by the
      mangler.
      
      This fixes one cause of profiled programs crashing; if you're seeing
      this symptom then this patch may help.
      266047a8
    • simonmar's avatar
      [project @ 2000-06-13 15:35:29 by simonmar] · 9feccdde
      simonmar authored
      Add NetBSD/x86 support.
      9feccdde
    • simonmar's avatar
      [project @ 2000-06-13 15:35:29 by simonmar] · 8884f5c9
      simonmar authored
      - generalise the per-module initialisation stubs so that we use it
        in normal (non-profiled) code too.  The initialisation stubs are
        now called '__init_<module>' rather than '_reg<module>'.
      
      - Register foreign exported functions as stable pointers in the
        initialisation code for the module.  This fixes the foreign export
        problems reported by several people.
      
      - remove the concept of "module groups" from the profiling subsystem.
      
      - change the profiling semantics slightly; it should be unnecessary
        to use '-caf-all' to get reasonable profiles now.
      8884f5c9
    • simonm's avatar
      [project @ 2000-06-13 15:35:29 by simonm] · 60d1ad9a
      simonm authored
      sparc-sun-solaris2 uses .LLC<n> to refer to local string constants.
      60d1ad9a
    • simonm's avatar
      [project @ 2000-06-13 15:35:29 by simonm] · 7934685d
      simonm authored
      mangler fix.
      7934685d
    • simonm's avatar
      [project @ 2000-06-13 15:35:29 by simonm] · 3c241678
      simonm authored
      fixup problem with '.' at the front of a local label.
      3c241678
    • simonm's avatar
      [project @ 2000-06-13 15:35:29 by simonm] · 4b820508
      simonm authored
      egcs sometimes leaves a 'popl %ecx' in the epilogue, it seems.
      4b820508
    • simonm's avatar
      [project @ 2000-06-13 15:35:29 by simonm] · ce757093
      simonm authored
      Reduce alignment for info tables on x86 to 1 word.  It was previously
      4 words, which meant that the entry code was wrongly aligned all the
      time (because info tables are either 2 or 3 words).  At least this way
      we've got a 1 in 4 chance of being properly aligned.
      ce757093
    • simonm's avatar
      [project @ 2000-06-13 15:35:29 by simonm] · b7d9c3ac
      simonm authored
      Move 4.01 onto the main trunk.
      b7d9c3ac
    • simonm's avatar
      [project @ 2000-06-13 15:35:29 by simonm] · da06df9b
      simonm authored
      Miraculously, the same bug exists on sparc-sun-solaris2.
      da06df9b
    • simonm's avatar
      [project @ 2000-06-13 15:35:29 by simonm] · 3d10574e
      simonm authored
      HPPA tweaks.
      3d10574e
    • simonm's avatar
      [project @ 2000-06-13 15:35:29 by simonm] · 95ef475e
      simonm authored
      Fix splitting on i386-unknwon-linux: string constants were being
      duplicated in each object, leading to large increases in binary
      sizes.
      95ef475e