summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Remove OldCmm, convert backends to consume new CmmSimon Marlow2012-11-1259-1483/+678
| | | | | | | | | | | | | | | | | | This removes the OldCmm data type and the CmmCvt pass that converts new Cmm to OldCmm. The backends (NCGs, LLVM and C) have all been converted to consume new Cmm. The main difference between the two data types is that conditional branches in new Cmm have both true/false successors, whereas in OldCmm the false case was a fallthrough. To generate slightly better code we occasionally need to invert a conditional to ensure that the branch-not-taken becomes a fallthrough; this was previously done in CmmCvt, and it is now done in CmmContFlowOpt. We could go further and use the Hoopl Block representation for native code, which would mean that we could use Hoopl's postorderDfs and analyses for native code, but for now I've left it as is, using the old ListGraph representation for native code.
* Merge branch 'master' of ssh://darcs.haskell.org/srv/darcs/ghcIavor S. Diatchki2012-11-10130-2278/+3133
|\
| * add note about compilation safety to safe haskell docsDavid Terei2012-11-091-0/+52
| |
| * Give an error if we can't find a suitable value for PRIdPTRIan Lynagh2012-11-081-1/+3
| |
| * define own version of PRIdPTR on platform where its not availableKarel Gardas2012-11-081-0/+10
| | | | | | | | | | | | Note that PRIdPTR is considered as linux-ism so it's not available on platforms like Solaris, although some other free Unix(-like) OSes apparently supports it too.
| * Give dynamic libraries, as well as programs, RPATHsIan Lynagh2012-11-083-15/+26
| | | | | | | | Based on a patch from markwright in #3072.
| * Add a comment about why we use nextWrapperNum rather than a uniqueIan Lynagh2012-11-081-1/+13
| |
| * Merge branch 'master' of darcs.haskell.org:/srv/darcs//ghcIan Lynagh2012-11-0815-105/+155
| |\
| | * fix typo, courtesy of Jon Cave, thanks!Gabor Greif2012-11-081-1/+1
| | |
| | * another typoGabor Greif2012-11-071-1/+1
| | |
| | * typosGabor Greif2012-11-072-2/+2
| | |
| | * Merge branch 'master' of http://darcs.haskell.org/ghcSimon Peyton Jones2012-11-0645-1580/+1603
| | |\
| | | * loadThreadState should set HpAlloc=0Simon Marlow2012-11-051-1/+7
| | | |
| | | * small optimisation: inline stmNewTVar()Simon Marlow2012-11-054-25/+12
| | | |
| | | * fix 'return' in cmm code when tablesNextToCode==FalseSimon Marlow2012-11-052-7/+7
| | | |
| | | * Save R1/R2/.. across foreign callsSimon Marlow2012-11-051-6/+15
| | | |
| | | * typoGabor Greif2012-11-051-1/+1
| | | |
| | * | Refine the "kick-out" predicate for CTyVarEqSimon Peyton Jones2012-11-061-28/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Consider Work item: k ~ * Inert item: (a::k) ~ Int Then we must kick out the inert item! We weren't doing that, something I discovered when fixing Trac #7384. Discussed with Dimitrios, and we wrote a long comment Note [Delicate equality kick-out] to explain.
| | * | Make rewriteCtFlavor lazy in the coercion for Derived evidenceSimon Peyton Jones2012-11-061-29/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I think I accidentally introduced this bug a month ago when refactoring. It's a bit non-obvious, but since Derived constraints have no evidence, we mustn't be strict in it. Now there's a big comment to prevent this bug happening again. This fixes Trac #7384.
| | * | Fix the instantiation of data constructors in the GHCi debuggerSimon Peyton Jones2012-11-061-5/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This bug caused Trac #7386, because in the (rather tricky) "type inference" (aka run time type reconstruction) done by the GHCi debugger, we were failing to instantiate a data type family correctly. When that code was written we didn't *have* data families. I wrote Note [Constructor arg types] to explain the new scheme.
| | * | Comments onlySimon Peyton Jones2012-11-061-1/+1
| | | |
| * | | Remove getModuleDs; we now just use getModuleIan Lynagh2012-11-067-12/+12
| | |/ | |/|
| * | Avoid putting uniqs in specconstr rules; part of #4012Ian Lynagh2012-11-021-3/+7
| | | | | | | | | | | | | | | There's no need to have the uniq in the rule, but its presence can cause spurious ABI changes.
| * | Whitespace only in basicTypes/Id.lhsIan Lynagh2012-11-021-167/+160
| | |
| * | Whitespace only in specialise/SpecConstr.lhsIan Lynagh2012-11-021-591/+584
| | |
| * | Remove an -fno-cse flagIan Lynagh2012-11-021-3/+0
| | | | | | | | | | | | There are no longer any GLOBAL_VARs in main/DriverMkDepend.hs.
| * | Change how dependency generation works; fixes #7381Ian Lynagh2012-11-024-29/+31
| | | | | | | | | | | | | | | | | | We now do the initial dependency generation for the vanilla way regardless of what way flags and hisuf/osuf flags are given. This makes it easier to generate the right dependency info in the end.
| * | Remove unused function fmapM_maybeIan Lynagh2012-11-021-9/+0
| | |
| * | Refactoring: Make a HasModule class for getModuleIan Lynagh2012-11-0213-21/+41
| | |
| * | Whitespace only in typecheck/TcRnTypes.lhsIan Lynagh2012-11-021-388/+381
| | |
| * | Don't use a unique in the stable name of a foreign exportIan Lynagh2012-11-022-16/+28
| | | | | | | | | | | | | | | | | | These names end up in the ABI, and hence part of the ABI hash. We don't want uniques in them so that we don't get spurious ABI hash changes.
| * | Whitespace only in basicTypes/Name.lhsIan Lynagh2012-11-021-136/+129
| | |
| * | Don't put uniqs in ghc wrapper function names; part of #4012Ian Lynagh2012-11-022-8/+23
| | | | | | | | | | | | | | | | | | The wrapper functions can end up in interface files, and thus are part of the ABI hash. But uniqs easily change for no good reason when recompiling, which can lead to an ABI hash needlessly changing.
| * | Merge branch 'master' of darcs.haskell.org:/srv/darcs//ghcIan Lynagh2012-11-0112-23/+50
| |\ \
| | * | Fix bug in stg_enter_checkbhSimon Marlow2012-11-011-1/+5
| | | | | | | | | | | | | | | | | | | | This was causing crashes in stm050(ghci), throwto001(ghci), and possibly more.
| | * | The shape of StgTVar should not depend on THREADED_RTSSimon Marlow2012-11-011-2/+0
| | | | | | | | | | | | | | | | | | | | By shear luck I think this didn't lead to any actual runtime crashes, but it did cause some problems for debugging.
| | * | Add -fghci-hist-size=N to set the number of previous steps stored by :traceSimon Marlow2012-11-014-10/+25
| | | |
| | * | Turn on -O2 for the RTS by defaultSimon Marlow2012-11-011-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Optimisation now makes a difference when compiling .cmm code, because it enables the optimisation passes in CmmPipeline. Recently validate has not been optimising the .cmm code because it uses SRC_HC_OPTS=-O0, which explains why I couldn't reproduce #7366 in validate (the bug miscompiled rts/PrimOps.cmm).
| | * | turn off cmm optimisation for the debug waySimon Marlow2012-11-011-1/+1
| | | |
| | * | Fix bug in stg_ctoi_R1n (could cause GHCi crashes)Simon Marlow2012-11-011-1/+1
| | | |
| | * | A couple of W_s should be P_s (not an actual bug, I think)Simon Marlow2012-11-011-2/+2
| | | |
| | * | Don't clearNurseries() in parallel with -debugSimon Marlow2012-11-012-3/+11
| | |/ | | | | | | | | | It makes sanity-checking fail.
| * | Fix popcnt callsIan Lynagh2012-11-011-10/+5
| | | | | | | | | | | | | | | We don't want to narrow the argument size before making the foreign call: Word8 still gets passed as a Word-sized argument
| * | Whitespace only in codeGen/StgCmmPrim.hsIan Lynagh2012-11-011-90/+83
| | |
| * | Fix typosIan Lynagh2012-11-013-4/+4
| | |
| * | Whitespace only in nativeGen/NCGMonad.hsIan Lynagh2012-11-011-71/+64
| |/
| * Add notes about type-family overlap in GHCi (see Trac #7102)Simon Peyton Jones2012-10-312-1/+6
| |
| * Merge branch 'master' of darcs.haskell.org:/home/darcs/ghcSimon Peyton Jones2012-10-313-12/+13
| |\
| | * Fix C macro bug that was causing some stack checks to erroneously succeedSimon Marlow2012-10-311-8/+8
| | |
| | * Retainer prof: immutable arrays are not retainers, and fix the docsSimon Marlow2012-10-312-4/+5
| | |