Skip to content
Snippets Groups Projects
  1. Mar 31, 2011
  2. Mar 30, 2011
  3. Mar 29, 2011
  4. Mar 28, 2011
  5. Mar 29, 2011
  6. Mar 27, 2011
  7. Mar 26, 2011
  8. Mar 25, 2011
    • Ian Lynagh's avatar
      ff903cd0
    • Simon Marlow's avatar
      Fix #4914 (I hope) · 9c583846
      Simon Marlow authored
      Here's a bit of erroneous code:
      
      00000c5c <s1ad_info>:
           c5c:       8b 45 08                mov    0x8(%ebp),%eax
           c5f:       d9 46 03                flds   0x3(%esi)
           c62:       dd d9                   fstp   %st(1)
           c64:       d9 55 08                fsts   0x8(%ebp)
           c67:       89 c6                   mov    %eax,%esi
           c69:       c7 45 00 24 0c 00 00    movl   $0xc24,0x0(%ebp)
           c70:       f7 c6 03 00 00 00       test   $0x3,%esi
           c76:       75 ac                   jne    c24 <s1ac_info>
      
      So we should be doing some ffrees before the jne.  The code that
      inserts the ffrees wasn't expecting to do it for a conditional jump,
      because they are usually local, but we have a late optimisation that
      shortcuts jumps-to-jumps, and that can result in a non-local
      conditional jump.
      
      This at least fixes an instance of the bug that I was able to
      reproduce, let's hope there aren't any more.
      9c583846
    • Edward Z. Yang's avatar
      Ignore comments when inlining. · bf5882d2
      Edward Z. Yang authored
      bf5882d2
    • Simon Peyton Jones's avatar
      87c44113
  9. Mar 22, 2011
    • Edward Z. Yang's avatar
      Split out "Raw Cmm" dump to its own flag -ddump-raw-cmm · 419821c7
      Edward Z. Yang authored
      Previously, -ddump-cmmz was used to dump out the "Raw Cmm" right
      before it gets passed to the backends, as well as all of the
      intermediate phases in the new code generator.  Unfortunately,
      there are a lot of intermediate phases, which means -ddump-cmmz
      takes a very long time with -fnew-codegen for large programs,
      even if you're only interested in the final result.
      
      Here we split up -ddump-cmmz into -ddump-cmmz (now exclusively for
      the new code generator) and -ddump-raw-cmm (for both code generation
      paths.) The old flag was not documented in the manual, so hopefully
      not too many people will be surprised by this change.
      419821c7
    • Edward Z. Yang's avatar
  10. Mar 23, 2011
    • Edward Z. Yang's avatar
      Immediately tag initialization code to prevent untagged spills. · cb5260d4
      Edward Z. Yang authored
      When allocating new objects on the heap, we previously returned
      a CmmExpr containing the heap pointer as well as the tag expression,
      which would be added to the code graph upon first usage.  Unfortunately,
      this meant that untagged heap pointers living in registers might
      be spilled to the stack, where they interacted poorly with garbage
      collection (we saw this bug specifically with the compacting garbage
      collector.)
      
      This fix immediately tags the register containing the heap pointer,
      so that unless we have extremely unfriendly spill code, the new pointer
      will never be spilled to the stack untagged.
      
      An alternate solution might have been to modify allocDynClosure to
      tag the pointer upon the initial register allocation, but not all
      invocations of allocDynClosure tag the resulting pointer, and
      threading the consequent CgIdInfo for the cases that did would have
      been annoying.
      cb5260d4
  11. Mar 21, 2011
  12. Mar 18, 2011
  13. Mar 23, 2011
  14. Mar 22, 2011
    • Ian Lynagh's avatar
      bindist checker improvements · 90d7a88f
      Ian Lynagh authored
      * Some refactoring
      * Support for Windows filenames
      * Some support for installed trees (as Windows "bindists" are really
        install trees)
      90d7a88f
  15. Mar 21, 2011
  16. Mar 09, 2011
  17. Mar 20, 2011
    • batterseapower's avatar
    • Ian Lynagh's avatar
      Change how we compute install paths on cygwin · b1fff745
      Ian Lynagh authored
      We used to have
          MK_INSTALL_DEST = "$(shell cygpath $1)"
      but this meant we ended up with
          "$(shell cygpath "[...]/html/`basename $$i`")"
      and the $(...) gets evaluated before the makefile rule, so the for loop
      hasn't been run, and so $i isn't defined. So we were taking the basename
      of the empty string, meaning docs weren't being installed in the right
      place.
      
      Now we have
          MK_INSTALL_DEST = $$(cygpath $1)
      so the evaluation happens in the shell, while the for loop is running.
      b1fff745
  18. Mar 17, 2011
  19. Mar 16, 2011
Loading