Skip to content
Snippets Groups Projects
  1. Nov 30, 2020
  2. Nov 29, 2020
  3. Nov 28, 2020
  4. Nov 27, 2020
    • Ben Gamari's avatar
      rts: Allocate MBlocks with MAP_TOP_DOWN on Windows · a1a75aa9
      Ben Gamari authored and Marge Bot's avatar Marge Bot committed
      As noted in #18991, we would previously allocate heap in low memory.
      Due to this the linker, which typically *needs* low memory, would end up
      competing with the heap. In longer builds we end up running out of
      low memory entirely, leading to linking failures.
      a1a75aa9
  5. Nov 26, 2020
    • Andreas Klebinger's avatar
      RegAlloc: Add missing raPlatformfield to RegAllocStatsSpill · 3e3555cc
      Andreas Klebinger authored and Marge Bot's avatar Marge Bot committed
      Fixes #18994
      
      Co-Author: Benjamin Maurer <maurer.benjamin@gmail.com>
      3e3555cc
    • Matthew Pickering's avatar
      Split Up getClosureDataFromHeapRep · d9c8b5b4
      Matthew Pickering authored and Marge Bot's avatar Marge Bot committed
      Motivation
      
      1. Don't enforce the repeated decoding of an info table, when the client
      can cache it (ghc-debug)
      2. Allow the constructor information decoding to be overridden, this
      casues segfaults in ghc-debug
      d9c8b5b4
    • Matthew Pickering's avatar
      Remove special case for GHC.ByteCode.Instr · 5757e82b
      Matthew Pickering authored and Marge Bot's avatar Marge Bot committed
      This was added in
      https://github.com/nomeata/ghc-heap-view/commit/34935206e51b9c86902481d84d2f368a6fd93423
      
      GHC.ByteCode.Instr.BreakInfo no longer exists so the special case is dead code.
      
      Any check like this can be easily dealt with in client code.
      5757e82b
    • Ben Gamari's avatar
      rts: Use RTS_LIKELY in CHECK · 86a59d93
      Ben Gamari authored and Marge Bot's avatar Marge Bot committed
      Most compilers probably already infer that
      `barf` diverges but it nevertheless doesn't
      hurt to be explicit.
      86a59d93
    • Tim Barnes's avatar
      Set dynamic users-guide TOC spacing (fixes #18554) · a9378e69
      Tim Barnes authored and Marge Bot's avatar Marge Bot committed
      a9378e69
    • Sylvain Henry's avatar
      Fix toArgRep to support 64-bit reps on all systems · cdbd16f5
      Sylvain Henry authored and Marge Bot's avatar Marge Bot committed
      [This is @Ericson2314 writing a commit message for @hsyl20's patch.]
      
      (Progress towards #11953, #17377, #17375)
      
      `Int64Rep` and `Word64Rep` are currently broken on 64-bit systems.  This
      is because they should use "native arg rep" but instead use "large arg
      rep" as they do on 32-bit systems, which is either a non-concept or a
      128-bit rep depending on one's vantage point.
      
      Now, these reps currently aren't used during 64-bit compilation, so the
      brokenness isn't observed, but I don't think that constitutes reasons
      not to fix it. Firstly, the linked issues there is a clearly expressed
      desire to use explicit-bitwidth constructs in more places. Secondly, per
      [1], there are other bugs that *do* manifest from not threading
      explicit-bitwidth information all the way through the compilation
      pipeline. One can therefore view this as one piece of the larger effort
      to do that, improve ergnomics, and squash remaining bugs.
      
      Also, this is needed for !3658. I could just merge this as part of that,
      but I'm keen on merging fixes "as they are ready" so the fixes that
      aren't ready are isolated and easier to debug.
      
      [1]: https://mail.haskell.org/pipermail/ghc-devs/2020-October/019332.html
      cdbd16f5
    • Andreas Klebinger's avatar
      RTS: Fix failed inlining of copy_tag. · a84e53f9
      Andreas Klebinger authored and Marge Bot's avatar Marge Bot committed
      On windows using gcc-10 gcc failed to inline copy_tag into evacuate.
      
      To fix this we now set the always_inline attribute for the various
      copy* functions in Evac.c. The main motivation here is not the
      overhead of the function call, but rather that this allows the code
      to "specialize" for the size of the closure we copy which is often
      known at compile time.
      
      An earlier commit also tried to avoid evacuate_large inlining. But
      didn't quite succeed. So I also marked evacuate_large as noinline.
      
      Fixes #12416
      a84e53f9
    • Moritz Angermann's avatar
      [Sized Cmm] properly retain sizes. · be5d74ca
      Moritz Angermann authored and Marge Bot's avatar Marge Bot committed
      
      This replaces all Word<N> = W<N># Word# and Int<N> = I<N># Int#  with
      Word<N> = W<N># Word<N># and Int<N> = I<N># Int<N>#, thus providing us
      with properly sized primitives in the codegenerator instead of pretending
      they are all full machine words.
      
      This came up when implementing darwinpcs for arm64.  The darwinpcs reqires
      us to pack function argugments in excess of registers on the stack.  While
      most procedure call standards (pcs) assume arguments are just passed in
      8 byte slots; and thus the caller does not know the exact signature to make
      the call, darwinpcs requires us to adhere to the prototype, and thus have
      the correct sizes.  If we specify CInt in the FFI call, it should correspond
      to the C int, and not just be Word sized, when it's only half the size.
      
      This does change the expected output of T16402 but the new result is no
      less correct as it eliminates the narrowing (instead of the `and` as was
      previously done).
      
      Bumps the array, bytestring, text, and binary submodules.
      
      Co-Authored-By: default avatarBen Gamari <ben@well-typed.com>
      
      Metric Increase:
          T13701
          T14697
      be5d74ca
  6. Nov 24, 2020
  7. Nov 22, 2020
Loading