| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This was done as part of an honours thesis at UNSW, the paper describing the
work and results can be found at:
http://www.cse.unsw.edu.au/~pls/thesis/davidt-thesis.pdf
A Homepage for the backend can be found at:
http://hackage.haskell.org/trac/ghc/wiki/Commentary/Compiler/Backends/LLVM
Quick summary of performance is that for the 'nofib' benchmark suite, runtimes
are within 5% slower than the NCG and generally better than the C code
generator. For some code though, such as the DPH projects benchmark, the LLVM
code generator outperforms the NCG and C code generator by about a 25%
reduction in run times.
|
| |
|
|
|
| |
We now regenerate them when installing, which means the path for perl
doesn't get baked in
|
| |
|
|
|
|
| |
Patches from Goetz Isenmann <info@goetz-isenmann.de>, slightly updated
for HEAD (the method for configuring platforms in configure.ac has
changed).
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
# -----------------------------------------------------------------------------
#
# (c) 2009 The University of Glasgow
#
# This file is part of the GHC build system.
#
# To understand how the build system works and how to modify it, see
# http://hackage.haskell.org/trac/ghc/wiki/Building/Architecture
# http://hackage.haskell.org/trac/ghc/wiki/Building/Modifying
#
# -----------------------------------------------------------------------------
|
| | |
|
| |
|
|
|
| |
It was getting confused by lines like:
# 9 "C:\Temp\/ghc620_0/ghc620_0.hc" 1
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
Perhaps in the past '.align 2' meant align to 4 bytes, but nowadays it
means align to 2 bytes. The compacting collector requires info tables
to be aligned to 4 bytes, because it stores tag bits in the low 2
bits.
This only affects -fvia-C - the native code generator was already
emitting the correct alignment. The incorrect alignment might well
have been adversely affecting performance with -fvia-C on Windows.
|
| | |
|
| | |
|
| |
|
|
| |
by appending /m to all regexes.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
Perl 4's special variable $* controls multi-line matching; it's been
deprecated from Perl 5's inception, and is finally removed in Perl
versions 5.9 (soon to be 5.10).
Since GHC depends on Perl 5.6+ anyway, this patch introduces an
equivalent effect to $* without using that special variable, by
hooking into Perl's regex parsing process to add the /m flag.
|
| | |
|
| |
|
|
|
| |
Bindists should now work again, when doing "make install" at least.
"make in-place" is probably still broken.
|
| |
|
|
|
|
| |
Key changes:
* Always build as if BIN_DIST is 1. BIN_DIST is thus removed.
* Libraries are configured with prefix set to $$topdir rather than $(prefix)
|
| | |
|
| | |
|
| |
|
|
|
|
| |
Save/restore two more registers in StgCRun(). The extra
registers are used by ffi009.hs, when compiling with gcc 4.1.2.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Gcc 4 is doing more clever optimizations than earlier gccs.
These changes let ghc compile and run on ia64 with gcc 4.0.3.
Register stack frames are enlarged so that all functions use the
same size stack frame.
The code to mangle tail calls has been cleaned up and made more
general.
Additional floating-point and special-purpose registers used by
GCC are saved upon entering the STG runtime.
More general handling of NOP instructions.
Handling of functions with multiple epilogues or no epilogue.
|
| |
|
|
|
|
|
|
|
|
| |
Info tables, like everything else in the text section, MUST NOT contain
pointers. A pointer is, by definition, position dependent and is therefore
fundamentally incompatible with generating position independent code.
Therefore, we have to store an offset from the info label to the string
instead of the pointer, just as we already did for other things referred
to by the info table (SRTs, large bitmaps, etc.)
|
| |
|
|
| |
From heatsink, in trac #1150.
|
| | |
|
| |
|
|
|
|
| |
This has the undesitrable effect that stg_gc_gen_hp in the RTS was
caught as an HPC symbol and put in the data segment.
|
| |
|
|
|
|
| |
Patch by Ferris McCormick <fmccor@gentoo.org>
This patch has been tested with GHC-6.4.2 where it fixes a
huge number of testsuite failures (down from 406 to 17)
|
| |
|
|
| |
Basic -fvia-C code generation is there, not much testing.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This large checkin is the new ghc version of Haskell
Program Coverage, an expression-level coverage tool for Haskell.
Parts:
- Hpc.[ch] - small runtime support for Hpc; reading/writing *.tix files.
- Coverage.lhs - Annotates the HsSyn with coverage tickboxes.
- New Note's in Core,
- TickBox -- ticked on entry to sub-expression
- BinaryTickBox -- ticked on exit to sub-expression, depending
-- on the boolean result.
- New Stg level TickBox (no BinaryTickBoxes, though)
You can run the coverage tool with -fhpc at compile time.
Main must be compiled with -fhpc.
|
|
|
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.
|