summaryrefslogtreecommitdiff
path: root/ghc/includes/TailCalls.h
Commit message (Collapse)AuthorAgeFilesLines
* Reorganisation of the source treeSimon Marlow2006-04-071-272/+0
| | | | | | | | | | | | | | | Most of the other users of the fptools build system have migrated to Cabal, and with the move to darcs we can now flatten the source tree without losing history, so here goes. The main change is that the ghc/ subdir is gone, and most of what it contained is now at the top level. The build system now makes no pretense at being multi-project, it is just the GHC build system. No doubt this will break many things, and there will be a period of instability while we fix the dependencies. A straightforward build should work, but I haven't yet fixed binary/source distributions. Changes to the Building Guide will follow, too.
* [project @ 2005-12-02 14:09:21 by simonmar]simonmar2005-12-021-12/+2
| | | | | revert rev. 1.22 again, just in case this is the cause of the segfaults reported on OpenBSD and SuSE.
* [project @ 2005-11-23 14:28:52 by simonmar]simonmar2005-11-231-2/+12
| | | | un-revert rev. 1.22, it wasn't the cause of last weekend's breakage
* [project @ 2005-11-19 11:44:32 by simonmar]simonmar2005-11-191-12/+2
| | | | | something has gone wrong; I don't have time right now to find out exactly what, so revert rev. 1.22 in an attempt to fix it.
* [project @ 2005-11-18 15:23:09 by simonmar]simonmar2005-11-181-3/+1
| | | | cosmetic
* [project @ 2005-11-18 14:24:47 by simonmar]simonmar2005-11-181-2/+12
| | | | | Omit the __DISCARD__() call in FB_ if __GNUC__ >= 3. It doesn't appear to be necessary now, and it prevents some gcc optimisations.
* [project @ 2005-03-27 13:41:13 by panne]panne2005-03-271-1/+0
| | | | | | | | | | * Some preprocessors don't like the C99/C++ '//' comments after a directive, so use '/* */' instead. For consistency, a lot of '//' in the include files were converted, too. * UnDOSified libraries/base/cbits/runProcess.c. * My favourite sport: Killed $Id$s.
* [project @ 2005-03-08 09:01:20 by simonmar]simonmar2005-03-081-3/+2
| | | | Update comment
* [project @ 2005-03-08 08:59:58 by simonmar]simonmar2005-03-081-1/+24
| | | | | x86_64: Add __DISCARD__() function call to the tailcall sequence to work around bugs in gcc (see comment for details).
* [project @ 2005-01-28 12:55:17 by simonmar]simonmar2005-01-281-13/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rationalise the BUILD,HOST,TARGET defines. Recall that: - build is the platform we're building on - host is the platform we're running on - target is the platform we're generating code for The change is that now we take these definitions as applying from the point of view of the particular source code being built, rather than the point of view of the whole build tree. For example, in RTS and library code, we were previously testing the TARGET platform. But under the new rule, the platform on which this code is going to run is the HOST platform. TARGET only makes sense in the compiler sources. In practical terms, this means that the values of BUILD, HOST & TARGET may vary depending on which part of the build tree we are in. Actual changes: - new file: includes/ghcplatform.h contains platform defines for the RTS and library code. - new file: includes/ghcautoconf.h contains the autoconf settings only (HAVE_BLAH). This is so that we can get hold of these settings independently of the platform defines when necessary (eg. in GHC). - ghcconfig.h now #includes both ghcplatform.h and ghcautoconf.h. - MachRegs.h, which is included into both the compiler and the RTS, now has to cope with the fact that it might need to test either _TARGET_ or _HOST_ depending on the context. - the compiler's Makefile now generates stage{1,2,3}/ghc_boot_platform.h which contains platform defines for the compiler. These differ depending on the stage, of course: in stage2, the HOST is the TARGET of stage1. This was wrong before. - The compiler doesn't get platform info from Config.hs any more. Previously it did (sometimes), but unless we want to generate a new Config.hs for each stage we can't do this. - GHC now helpfully defines *_{BUILD,HOST}_{OS,ARCH} automatically in CPP'd Haskell source. - ghcplatform.h defines *_TARGET_* for backwards compatibility (ghcplatform.h is included by ghcconfig.h, which is included by config.h, so code which still #includes config.h will get the TARGET settings as before). - The Users's Guide is updated to mention *_HOST_* rather than *_TARGET_*. - coding-style.html in the commentary now contains a section on platform defines. There are further doc updates to come. Thanks to Wolfgang Thaller for pointing me in the right direction.
* [project @ 2004-11-21 22:25:23 by desrt]desrt2004-11-211-1/+5
| | | | | | | rtsconfig, smrep: fixes to not put info next to code (like ia64) machregs: define registers for powerpc64 - same as ppc32 tailcalls: for now do tailcalls as normal calls. (ok on powerpc since calls don't grow the stack and we don't care about LR anyway)
* [project @ 2004-08-13 13:04:50 by simonmar]simonmar2004-08-131-2/+2
| | | | Merge backend-hacking-branch onto HEAD. Yay!
* [project @ 2003-10-12 13:24:52 by igloo]igloo2003-10-121-2/+2
| | | | #ifdef IN_STG_CODE -> #if IN_STG_CODE
* [project @ 2003-09-21 13:22:01 by igloo]igloo2003-09-211-1/+3
| | | | Alpha fixes.
* [project @ 2003-08-29 16:00:25 by simonmar]simonmar2003-08-291-1/+16
| | | | | | | | | | | | | | | | | | | | | | Initial x86-64 (aka amd64) support. Unregisterised it works perfectly. Registerised, I think it's almost there, except that I seem to be running into the known codegen bug in GCC with register variables (bug #7871 in the gcc bugzilla), which means registerised support is basically hosed until the GCC folks can get their act together. We get 8 more registers on amd64, but only 2 more callee-saves registers. The calling convention seems to pass args in registers by default, using the previously-callee-saves %rsi and %rdi as two of the new arg registers. I think GHCi should work, since we already have 64-bit ELF support thanks to Mat Chapman's work on the IA64 port. I haven't tried GHCi, though. The native code generator should be a breeze, because it's so similar to plain x86.
* [project @ 2003-01-06 13:11:26 by simonmar]simonmar2003-01-061-4/+4
| | | | Prefix a double-underscore to a variable in a macro, to avoid conflicts.
* [project @ 2002-08-21 22:06:02 by ken]ken2002-08-211-4/+5
| | | | | Use __DISCARD__ to prevent overly aggressive optimization by certain gcc versions on the Alpha. Thanks to Jeffrey Lewis!
* [project @ 2002-06-03 13:08:37 by matthewc]matthewc2002-06-031-1/+16
| | | | | | | | | Initial mangling and tailcalls support for IA64. Function prologues and epilogues are deleted and we use a single register stack frame throughout (with a little register renaming in the mangler...) Dropthrough from fast to slow entry point is also implemented. Tailcalls are marked and converted into jumps at mangle time.
* [project @ 2002-05-28 09:22:08 by wolfgang]wolfgang2002-05-281-5/+15
| | | | Preliminary support for GCC 3.1 on MacOS X
* [project @ 2002-03-26 10:30:44 by simonmar]simonmar2002-03-261-3/+28
| | | | | | Changes to support powerpc-apple-macosx From: Wolfgang Thaller <wolfgang.thaller@gmx.net>
* [project @ 2001-02-14 10:33:05 by simonmar]simonmar2001-02-141-4/+46
| | | | | Fix for tail-calling on HP-UX, and a lengthy explanation, thanks to Andy Bennet <andy_bennet@hp.com>.
* [project @ 2000-11-07 10:42:55 by simonmar]simonmar2000-11-071-2/+18
| | | | | merge before-ghci -> before-ghci-branch-merged into the ghc (non-compiler) parts of the tree.
* [project @ 2000-04-05 14:26:31 by panne]panne2000-04-051-6/+5
| | | | | | Changed a bunch of `#endif FOO' to `#endif /* FOO */', the former is not strictly ANSI (don't know if the latter is, but `gcc -Wall -ansi -pedantic' is silent then).
* [project @ 1999-03-01 17:40:55 by simonm]simonm1999-03-011-3/+16
| | | | hppa1.1 support, first cut.
* [project @ 1999-02-05 16:02:18 by simonm]simonm1999-02-051-1/+3
| | | | Copyright police.
* [project @ 1998-12-02 13:17:09 by simonm]simonm1998-12-021-0/+109
Move 4.01 onto the main trunk.