- 20 May, 2008 1 commit
-
-
nr@eecs.harvard.edu authored
-
- 14 May, 2008 1 commit
-
-
Simon Marlow authored
This turned out not to be too hard, just a matter of figuring out the correct argument list size by peeking inside FunPtr's type argument, and in the C backend we have to emit an appropriate prototype for the label.
-
- 13 May, 2008 1 commit
-
-
Ian Lynagh authored
Needed in lieu of -XRelaxedPolyRec
-
- 12 May, 2008 2 commits
-
-
Simon Marlow authored
Previously we declared all external labels with type StgWord[], because the same label might be used at different types in the same file, e.g. if there are multiple foreign import declarations for the same function. However, we have to declare called functions with the right type on Windows, because this is the only way to make the compiler add the appropriate '@n' suffix for stdcall functions. Related to this is the reason we were getting mangler complaints (epilogue mangling) when compiling the RTS with -fvia-C. The function barf() doesn't return, but we had lost that information by declaring our own prototypes, and so gcc was generating extra code after the call to barf(). For more details see http://hackage.haskell.org/trac/ghc/wiki/Commentary/Compiler/Backends/PprC
-
Simon Marlow authored
-
- 07 May, 2008 1 commit
-
-
simonpj@microsoft.com authored
-
- 06 May, 2008 1 commit
-
-
simonpj@microsoft.com authored
-
- 03 May, 2008 4 commits
-
-
nr@eecs.harvard.edu authored
-
nr@eecs.harvard.edu authored
C-- no longer has 'hints'; to guide parameter passing, it has 'kinds'. Renamed type constructor, data constructor, and record fields accordingly
-
nr@eecs.harvard.edu authored
This version combines forward/backard into a type class (actually two classes) of analysis and transformation. These type classes will always be expanded away at the client, so SLPJ may wonder why they exist: it is because the interface to this module is already very broad, and by overloading the functions for forward and backward problems, we cut the cognitive load on the clients in half.
-
nr@eecs.harvard.edu authored
Nothing too deep here; primarily tinking with prettyprinting and names. Also eliminated some warnings. This patch covers most (but not all) of the code NR changed at the very end of September 2007, just before ICFP hit...
-
- 23 Apr, 2008 2 commits
-
-
Ian Lynagh authored
-
rl@cse.unsw.edu.au authored
-
- 22 Apr, 2008 1 commit
-
-
Ian Lynagh authored
-
- 12 Apr, 2008 8 commits
-
-
Ian Lynagh authored
-
Ian Lynagh authored
-
Ian Lynagh authored
-
Ian Lynagh authored
-
Ian Lynagh authored
-
Ian Lynagh authored
-
Ian Lynagh authored
-
Ian Lynagh authored
-
- 17 Apr, 2008 1 commit
-
-
Ian Lynagh authored
-
- 09 Apr, 2008 1 commit
-
-
Simon Marlow authored
-
- 02 Apr, 2008 1 commit
-
-
Simon Marlow authored
This has several advantages: - -fvia-C is consistent with -fasm with respect to FFI declarations: both bind to the ABI, not the API. - foreign calls can now be inlined freely across module boundaries, since a header file is not required when compiling the call. - bootstrapping via C will be more reliable, because this difference in behavour between the two backends has been removed. There is one disadvantage: - we get no checking by the C compiler that the FFI declaration is correct. So now, the c-includes field in a .cabal file is always ignored by GHC, as are header files specified in an FFI declaration. This was previously the case only for -fasm compilations, now it is also the case for -fvia-C too.
-
- 29 Mar, 2008 3 commits
-
-
Ian Lynagh authored
Modules that need it import it themselves instead.
-
Ian Lynagh authored
-
Ian Lynagh authored
-
- 08 Feb, 2008 1 commit
-
-
Simon Marlow authored
-
- 06 Feb, 2008 1 commit
-
-
Ian Lynagh authored
-
- 17 Jan, 2008 1 commit
-
-
Isaac Dupree authored
re-recording to avoid new conflicts was too hard, so I just put it all in one big patch :-( (besides, some of the changes depended on each other.) Here are what the component patches were: Fri Dec 28 11:02:55 EST 2007 Isaac Dupree <id@isaac.cedarswampstudios.org> * document BreakArray better Fri Dec 28 11:39:22 EST 2007 Isaac Dupree <id@isaac.cedarswampstudios.org> * properly ifdef BreakArray for GHCI Fri Jan 4 13:50:41 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> * change ifs on __GLASGOW_HASKELL__ to account for... (#1405) for it not being defined. I assume it being undefined implies a compiler with relatively modern libraries but without most unportable glasgow extensions. Fri Jan 4 14:21:21 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> * MyEither-->EitherString to allow Haskell98 instance Fri Jan 4 16:13:29 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> * re-portabilize Pretty, and corresponding changes Fri Jan 4 17:19:55 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> * Augment FastTypes to be much more complete Fri Jan 4 20:14:19 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> * use FastFunctions, cleanup FastString slightly Fri Jan 4 21:00:22 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> * Massive de-"#", mostly Int# --> FastInt (#1405) Fri Jan 4 21:02:49 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> * miscellaneous unnecessary-extension-removal Sat Jan 5 19:30:13 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> * add FastFunctions
-
- 04 Jan, 2008 2 commits
-
-
simonpj@microsoft.com authored
-
Isaac Dupree authored
This allows the instance of UserOfLocalRegs to be within Haskell98, and IMHO makes the code a little cleaner generally. This is one small (though tedious) step towards making GHC's code more portable...
-
- 26 Dec, 2007 3 commits
-
-
Isaac Dupree authored
-
Isaac Dupree authored
was instance Outputable CmmGraph type CmmGraph = LGraph Middle Last now instance (ctx) => Outputable (LGraph m l), in module with LGraph where it belongs This also let us reduce the context of DebugNodes to Haskell98, leaving that class's only extension being multi-parameter. (also Outputable (LGraph M Last) with M = ExtendWithSpills Middle was another redundant instance that was then removed)
-
Isaac Dupree authored
UserOfLocalRegs (ZLast Last) isn't Haskell98, but it was just as good an instance to be UserOfLocalRegs a => UserOfLocalRegs (ZLast a)
-
- 20 Dec, 2007 1 commit
-
-
Simon Marlow authored
cmmMiniInline counts the uses of local variables, so it can easily eliminate assigments to unused locals. This almost never gets triggered, as we don't generate any dead assignments, but it will be needed by a forthcoming cleanup in CgUtils.emitSwitch.
-
- 27 Dec, 2007 1 commit
-
-
Isaac Dupree authored
-
- 02 Dec, 2007 1 commit
-
-
Ian Lynagh authored
-
- 28 Nov, 2007 1 commit
-
-
Simon Marlow authored
-