1. 08 Jun, 2011 5 commits
  2. 07 Jun, 2011 1 commit
  3. 05 Jun, 2011 1 commit
    • Ian Lynagh's avatar
      Make dumpIfSet_dyn_or use dumpSDoc · 86add45d
      Ian Lynagh authored
      This means that for example
          ghc -ddump-simpl -ddump-to-file ...
      now puts the simpl output in a file, rather htan sending it to stdout.
      86add45d
  4. 04 Jun, 2011 2 commits
  5. 03 Jun, 2011 3 commits
  6. 01 Jun, 2011 2 commits
    • tibbe's avatar
      Fold constants during forward substitution in the Cmm mini-inliner · e97f2980
      tibbe authored and Simon Marlow's avatar Simon Marlow committed
      This exposes new constants that can be propagated.
      e97f2980
    • tibbe's avatar
      Implement forward substitution of constants in the Cmm mini-inliner · ea44eadf
      tibbe authored and Simon Marlow's avatar Simon Marlow committed
      Currently the mini-inliner would only forward substitute assignments
      to registers that were used exactly once, to not risk duplicating
      computation.  For constants there's no such risk so we always
      substitute.  Prior to the change the Cmm
      
          fn
          {
              bits64 a, b;
      
              a = 1;
              b = a + a;
              RET_N(b);
          }
      
      would be optimized as
      
          fn()    { []
                  }
              ca: _cb::I64 = 1;
                  R1 = _cb::I64 + _cb::I64;
                  jump (I64[Sp + 0]) ();
          }
      
      but after it would be optimized as
      
          fn()    { []
                  }
              ca: R1 = 2;
                  jump (I64[Sp + 0]) ();
          }
      
      Note that this pass does not deal with the now dead assignment.
      ea44eadf
  7. 31 May, 2011 19 commits
  8. 30 May, 2011 1 commit
    • tibbe's avatar
      Make assignTemp_ less pessimistic · 18691d44
      tibbe authored
      assignTemp_ is intended to make sure that the expression gets assigned
      to a temporary in case that's needed in order to avoid a register
      getting trashed due to a function call.
      18691d44
  9. 29 May, 2011 1 commit
    • Ian Lynagh's avatar
      Remove most of the CPP from AsmCodeGen · 622c3cfe
      Ian Lynagh authored
      In particular, the "#error" for platforms without a NCG is gone,
      which means the module should now build on all platforms again.
      
      I'm not sure if this is the nicest way to handle multiple platforms
      here, but it works for now.
      622c3cfe
  10. 26 May, 2011 5 commits