ghc.git
8 years agoMake .t files when running haddock
Ian Lynagh [Tue, 14 Aug 2012 17:24:01 +0000 (18:24 +0100)]
Make .t files when running haddock

These files contain the "+RTS -t --machin-readable" output, so that
we can spot performance regressions.

8 years agoMerge branch 'master' of darcs.haskell.org:/srv/darcs//ghc
Ian Lynagh [Mon, 13 Aug 2012 21:52:17 +0000 (22:52 +0100)]
Merge branch 'master' of darcs.haskell.org:/srv/darcs//ghc

8 years agoFix GHCi segfault during startup on linux-powerpc (#2972).
Erik de Castro Lopo [Mon, 30 Jul 2012 19:53:49 +0000 (05:53 +1000)]
Fix GHCi segfault during startup on linux-powerpc (#2972).

Slightly modified version of a patch from Ben Collins <bcollins@ubuntu.com>
who did the final debugging that showed the segfault was being caused the
memory protection mechanism.

Due to the requirement of "jump islands" to handle 24 bit relative jump
offsets, GHCi on PowerPC did not use mmap to load object files like the
other architectures. Instead, it allocated memory using malloc and fread
to load the object code. However there is a quirk in the GNU libc malloc
implementation. For memory regions over certain size (dynamic and
configurable), malloc will use mmap to obtain the required memory instead
of sbrk and malloc's call to mmap sets the memory readable and writable,
but not executable. That means when GHCi loads code into a memory region
that was mmapped instead of malloc-ed and tries to execute it we get a
segfault.

This solution drops the malloc/fread object loading in favour of using
mmap and then puts the jump island for each object code module at the
end of the mmaped region for that object.

This patch may also be a solution on other ELF based powerpc systems
but does not work on darwin-powerpc.

8 years agoFix environment update for type instance declarations in GHCi (#7117)
Paolo Capriotti [Mon, 13 Aug 2012 17:26:34 +0000 (18:26 +0100)]
Fix environment update for type instance declarations in GHCi (#7117)

Patch by Patrick Palka <patrick@parcs.ath.cx>

8 years agoGive suggestions for unrecognised command line arguments
Joachim Breitner [Thu, 9 Aug 2012 14:10:56 +0000 (16:10 +0200)]
Give suggestions for unrecognised command line arguments

8 years agoRespect verbosity for "flags changed" message (#7139)
Paolo Capriotti [Mon, 13 Aug 2012 12:36:38 +0000 (13:36 +0100)]
Respect verbosity for "flags changed" message (#7139)

Also, print that message on stdout.

8 years agoFix ambiguous flag resolution (#7138)
Paolo Capriotti [Mon, 13 Aug 2012 11:48:29 +0000 (12:48 +0100)]
Fix ambiguous flag resolution (#7138)

Pick longest flag when more than one matches in findArg.

This fixes an issue where -ignore-dot-ghci wasn't honored, because the
flag was parsed as "-i gnore-dot-ghci".

8 years agoUpdate 'unboxed tuples' section of users guide.
Austin Seipp [Sun, 5 Aug 2012 20:06:33 +0000 (15:06 -0500)]
Update 'unboxed tuples' section of users guide.

In particular, many of the restrictions on using unboxed tuples went
away thanks to Max Bolingbroke, and they can now be bound to variables
without pattern matching, and passed as arguments.

Also fix a little formatting in glasgow-exts.xml. Some other parts
of this section may be out of date.

Signed-off-by: Austin Seipp <mad.one@gmail.com>
8 years agoDon't pass -Wimplicit to the C++ compiler.
Austin Seipp [Sun, 5 Aug 2012 08:26:45 +0000 (03:26 -0500)]
Don't pass -Wimplicit to the C++ compiler.

Supresses an ugly warning from gcc 4.6+ saying this is a C/ObjC flag
only.

Signed-off-by: Austin Seipp <mad.one@gmail.com>
8 years agoUse the right arch name in the Windows installer filename
Ian Lynagh [Sun, 12 Aug 2012 18:43:51 +0000 (19:43 +0100)]
Use the right arch name in the Windows installer filename

8 years agoFollow RTS symbol changes in Linker.c
Ian Lynagh [Fri, 10 Aug 2012 22:21:09 +0000 (23:21 +0100)]
Follow RTS symbol changes in Linker.c

8 years agoMerge branch 'master' of darcs.haskell.org:/srv/darcs//ghc
Ian Lynagh [Fri, 10 Aug 2012 21:28:13 +0000 (22:28 +0100)]
Merge branch 'master' of darcs.haskell.org:/srv/darcs//ghc

8 years agoAlways define startProfTimer and stopProfTimer
Ian Lynagh [Fri, 10 Aug 2012 21:26:51 +0000 (22:26 +0100)]
Always define startProfTimer and stopProfTimer

This allows us to provide access to them in the base library.

8 years agoFix build failure on OS X (#7119)
Simon Marlow [Thu, 9 Aug 2012 10:41:06 +0000 (11:41 +0100)]
Fix build failure on OS X (#7119)

When refactoring this recently I accidentally put the
dead-strip-preventer symbol (only used on OS X) in the wrong section.

8 years agoRemove uses of fixC from the codeGen, and make the FCode monad strict
Simon Marlow [Wed, 8 Aug 2012 15:31:58 +0000 (16:31 +0100)]
Remove uses of fixC from the codeGen, and make the FCode monad strict

8 years agoOnly run the second round of control-flow optimisations when -O is on
Simon Marlow [Wed, 8 Aug 2012 15:06:31 +0000 (16:06 +0100)]
Only run the second round of control-flow optimisations when -O is on

8 years agoa couple of small optimisations
Simon Marlow [Wed, 8 Aug 2012 15:05:11 +0000 (16:05 +0100)]
a couple of small optimisations

8 years agoAdd cast to placate gcc 4.6 on linux-powerpc (#7113).
Erik de Castro Lopo [Fri, 3 Aug 2012 05:14:35 +0000 (15:14 +1000)]
Add cast to placate gcc 4.6 on linux-powerpc (#7113).

8 years agoMerge branch 'master' of darcs.haskell.org:/srv/darcs//ghc
Ian Lynagh [Wed, 8 Aug 2012 12:09:41 +0000 (13:09 +0100)]
Merge branch 'master' of darcs.haskell.org:/srv/darcs//ghc

8 years agoSet the value of Unregisterised in the bindist configure.ac
Ian Lynagh [Wed, 8 Aug 2012 12:08:03 +0000 (13:08 +0100)]
Set the value of Unregisterised in the bindist configure.ac

Now that it's included in settings, the bindist configure script needs
to know it.

8 years agoAdd missing flag for respecting EXTRA_LIBDIR
Gabor Pali [Sun, 22 Jul 2012 16:59:56 +0000 (16:59 +0000)]
Add missing flag for respecting EXTRA_LIBDIR

8 years agofix warning
Simon Marlow [Tue, 7 Aug 2012 13:51:44 +0000 (14:51 +0100)]
fix warning

8 years agoFix a bug in the handling of recent_activity
Simon Marlow [Tue, 7 Aug 2012 13:44:46 +0000 (14:44 +0100)]
Fix a bug in the handling of recent_activity

The problem occurred when the idle GC was turned off with +RTS -I0.
Then the scheduler would go into the state ACTIVITY_DONE_GC directly
without doing a GC, and a subsequent GC would put it back to
ACTIVITY_YES but without turning the timer back on.  Instead if the GC
finds the state is ACTIVITY_DONE_GC it should leave it there.

8 years agomaybeInvertComparison: remove floating-point comparisons
Simon Marlow [Tue, 7 Aug 2012 08:46:35 +0000 (09:46 +0100)]
maybeInvertComparison: remove floating-point comparisons

See comments.

8 years agoentryHeapCheck: fix calls to stg_gc_fun and stg_gc_enter_1
Simon Marlow [Tue, 7 Aug 2012 13:41:09 +0000 (14:41 +0100)]
entryHeapCheck: fix calls to stg_gc_fun and stg_gc_enter_1

We weren't passing the arguments correctly to the GC functions, which
usually happened to work because the arguments were in the right
registers already.

After this fix the profiling tests go through with the new code
generator.

8 years agoSmall optimisation
Simon Marlow [Tue, 7 Aug 2012 13:39:03 +0000 (14:39 +0100)]
Small optimisation

When calling newCAF, refer to the closure using its LocalReg rather
than R1.  Using R1 here was preventing the register allocator from
coalescing the assignment x=R1 at the beginning of the function.

8 years agofix a warning
Simon Marlow [Tue, 7 Aug 2012 13:37:17 +0000 (14:37 +0100)]
fix a warning

8 years agoEliminate "r = r" in mkAssign
Simon Marlow [Tue, 7 Aug 2012 13:04:08 +0000 (14:04 +0100)]
Eliminate "r = r" in mkAssign

8 years agoNode calling convs should use R1 even if it isn't a register
Simon Marlow [Tue, 7 Aug 2012 13:03:35 +0000 (14:03 +0100)]
Node calling convs should use R1 even if it isn't a register

8 years agoAdd missing cases in hand-coded instance Eq GlobalReg
Simon Marlow [Tue, 7 Aug 2012 10:55:44 +0000 (11:55 +0100)]
Add missing cases in hand-coded instance Eq GlobalReg

aargh.

8 years agofix maybeSaveCostCentre: cases were reversed
Simon Marlow [Tue, 7 Aug 2012 09:53:12 +0000 (10:53 +0100)]
fix maybeSaveCostCentre: cases were reversed

8 years agoFix update frames for profiling
Simon Marlow [Tue, 7 Aug 2012 09:28:27 +0000 (10:28 +0100)]
Fix update frames for profiling

8 years agoCleanup and fixes to profiling
Simon Marlow [Mon, 6 Aug 2012 15:52:49 +0000 (16:52 +0100)]
Cleanup and fixes to profiling

8 years agoA closure with void args only should be a function, not a thunk
Simon Marlow [Mon, 6 Aug 2012 15:52:19 +0000 (16:52 +0100)]
A closure with void args only should be a function, not a thunk

8 years agoMake lint check for undefined variables in Cmm
Simon Marlow [Mon, 6 Aug 2012 14:29:20 +0000 (15:29 +0100)]
Make lint check for undefined variables in Cmm

8 years agoGenerate one fewer temps per heap allocation
Simon Marlow [Mon, 6 Aug 2012 14:28:56 +0000 (15:28 +0100)]
Generate one fewer temps per heap allocation

This saves compile time and can make a big difference in some
pathological cases (T4801)

8 years agosmall cleanup
Simon Marlow [Mon, 6 Aug 2012 12:33:08 +0000 (13:33 +0100)]
small cleanup

8 years agoDefine callerSaves for all platforms
Ian Lynagh [Tue, 7 Aug 2012 01:37:46 +0000 (02:37 +0100)]
Define callerSaves for all platforms

This means that we now generate the same code whatever platform we are
on, which should help avoid changes on one platform breaking the build
on another.

It's also another step towards full cross-compilation.

8 years agoAdd "Unregisterised" as a field in the settings file
Ian Lynagh [Tue, 7 Aug 2012 00:27:44 +0000 (01:27 +0100)]
Add "Unregisterised" as a field in the settings file

To explicitly choose whether you want an unregisterised build you now
need to use the "--enable-unregisterised"/"--disable-unregisterised"
configure flags.

8 years agoMake tablesNextToCode "dynamic"
Ian Lynagh [Mon, 6 Aug 2012 21:51:28 +0000 (22:51 +0100)]
Make tablesNextToCode "dynamic"

This is a bit odd by itself, but it's a stepping stone on the way to
putting "target unregisterised" into the settings file.

8 years agoStart separating out the RTS and Haskell imports of MachRegs.h
Ian Lynagh [Mon, 6 Aug 2012 16:34:12 +0000 (17:34 +0100)]
Start separating out the RTS and Haskell imports of MachRegs.h

No functional differences yet

8 years agoDon't define STOLEN_X86_REGS in Cmm.h
Ian Lynagh [Mon, 6 Aug 2012 14:55:17 +0000 (15:55 +0100)]
Don't define STOLEN_X86_REGS in Cmm.h

We weren't defining it in the other places that MachRegs.h gets
imported, which seems a little suspicious. And if it's not defined
then it defaults to 4 anyway, so this define doesn't seem necessary.

8 years agofix warning
Simon Marlow [Fri, 3 Aug 2012 15:48:37 +0000 (16:48 +0100)]
fix warning

8 years agocomment
Simon Marlow [Fri, 3 Aug 2012 15:38:01 +0000 (16:38 +0100)]
comment

8 years agoMO_F_Mul and MO_F_Add are commutative
Simon Marlow [Fri, 3 Aug 2012 15:37:33 +0000 (16:37 +0100)]
MO_F_Mul and MO_F_Add are commutative

8 years agoFix two bugs in the sinker.
Simon Marlow [Fri, 3 Aug 2012 13:10:13 +0000 (14:10 +0100)]
Fix two bugs in the sinker.

The new code generator now apparently generates a working stage2
compiler.

8 years agoContinue by jumping to the top-of-stack after a safe foreign call
Simon Marlow [Fri, 3 Aug 2012 10:24:27 +0000 (11:24 +0100)]
Continue by jumping to the top-of-stack after a safe foreign call

8 years agoForeign calls may clobber caller-saves registers
Simon Marlow [Fri, 3 Aug 2012 10:23:44 +0000 (11:23 +0100)]
Foreign calls may clobber caller-saves registers

See Note [foreign calls clobber GlobalRegs]

8 years agoUse "ReturnedTo" when generating safe foreign calls
Simon Marlow [Thu, 2 Aug 2012 14:20:44 +0000 (15:20 +0100)]
Use "ReturnedTo" when generating safe foreign calls

8 years agoAdd a comment to explain why the FCode monad is lazy
Simon Marlow [Thu, 2 Aug 2012 12:37:57 +0000 (13:37 +0100)]
Add a comment to explain why the FCode monad is lazy

8 years agofinish a comment
Simon Marlow [Thu, 2 Aug 2012 12:37:30 +0000 (13:37 +0100)]
finish a comment

8 years agoDefine LdCmd in the bindist configure.ac
Ian Lynagh [Sun, 5 Aug 2012 23:12:41 +0000 (00:12 +0100)]
Define LdCmd in the bindist configure.ac

8 years agoWhitespace only in UniqFM
Ian Lynagh [Sun, 5 Aug 2012 20:46:18 +0000 (21:46 +0100)]
Whitespace only in UniqFM

8 years agoMore more ld-related settings into the settings file
Ian Lynagh [Sun, 5 Aug 2012 20:28:20 +0000 (21:28 +0100)]
More more ld-related settings into the settings file

Related to #4862

8 years agoImprove some code layout in SysTools
Ian Lynagh [Sun, 5 Aug 2012 19:44:38 +0000 (20:44 +0100)]
Improve some code layout in SysTools

8 years agoMerge branch 'master' of darcs.haskell.org:/srv/darcs//ghc
Ian Lynagh [Sun, 5 Aug 2012 18:51:42 +0000 (19:51 +0100)]
Merge branch 'master' of darcs.haskell.org:/srv/darcs//ghc

8 years agoRemove pprDefiniteTrace
Ian Lynagh [Sun, 5 Aug 2012 18:05:02 +0000 (19:05 +0100)]
Remove pprDefiniteTrace

All uses of it are now in an IO Monad, so we don't need to use
a trace-like function.

8 years agoRename trace_dump to dump
Ian Lynagh [Sun, 5 Aug 2012 17:54:48 +0000 (18:54 +0100)]
Rename trace_dump to dump

It's no longer a trace-like function.

8 years agoWhitespace only in compiler/simplCore/Simplify.lhs
Ian Lynagh [Sun, 5 Aug 2012 17:53:46 +0000 (18:53 +0100)]
Whitespace only in compiler/simplCore/Simplify.lhs

8 years agoBuild fix
Ian Lynagh [Sun, 5 Aug 2012 17:15:07 +0000 (18:15 +0100)]
Build fix

8 years agoRemove LD_X; it's no longer used
Ian Lynagh [Sun, 5 Aug 2012 17:11:09 +0000 (18:11 +0100)]
Remove LD_X; it's no longer used

8 years agoMove linker flags into the settings file; fixes #4862
Ian Lynagh [Sun, 5 Aug 2012 17:08:22 +0000 (18:08 +0100)]
Move linker flags into the settings file; fixes #4862

They were getting baked into Config.hs before.

8 years agoConvert prefix uses of (<>) to infix <>
Ian Lynagh [Sun, 5 Aug 2012 15:53:18 +0000 (16:53 +0100)]
Convert prefix uses of (<>) to infix <>

8 years agoRemove an unsafe use of head (#7118)
Paolo Capriotti [Sat, 4 Aug 2012 17:43:00 +0000 (18:43 +0100)]
Remove an unsafe use of head (#7118)

8 years agoDe-orphan the Outputable Fingerprint instance
Ian Lynagh [Sun, 5 Aug 2012 15:07:11 +0000 (16:07 +0100)]
De-orphan the Outputable Fingerprint instance

8 years agoRemove another unnecessary Platform argument
Ian Lynagh [Sun, 5 Aug 2012 15:03:38 +0000 (16:03 +0100)]
Remove another unnecessary Platform argument

8 years agoWhitespace only in utils/Outputable.lhs
Ian Lynagh [Sun, 5 Aug 2012 13:19:40 +0000 (14:19 +0100)]
Whitespace only in utils/Outputable.lhs

8 years agoWhitespace only in hsSyn/HsSyn.lhs
Ian Lynagh [Sun, 5 Aug 2012 13:19:03 +0000 (14:19 +0100)]
Whitespace only in hsSyn/HsSyn.lhs

8 years agoDe-orphan the Outputable Char instance
Ian Lynagh [Sun, 5 Aug 2012 13:18:22 +0000 (14:18 +0100)]
De-orphan the Outputable Char instance

8 years agoMerge branch 'master' of darcs.haskell.org:/srv/darcs//ghc
Ian Lynagh [Sun, 5 Aug 2012 12:35:34 +0000 (13:35 +0100)]
Merge branch 'master' of darcs.haskell.org:/srv/darcs//ghc

8 years agoFix references to repositories in the user guide
Paolo Capriotti [Fri, 3 Aug 2012 12:39:52 +0000 (13:39 +0100)]
Fix references to repositories in the user guide

8 years agocomments and refactoring
Simon Marlow [Thu, 2 Aug 2012 12:07:19 +0000 (13:07 +0100)]
comments and refactoring

8 years agoFloutOut.wrapTick: don't forget to tick the args of a constructor app
Simon Marlow [Thu, 2 Aug 2012 10:53:58 +0000 (11:53 +0100)]
FloutOut.wrapTick: don't forget to tick the args of a constructor app

Thanks to Peter Wortmann for pointing out this bug.

8 years agoapplying simonpj's fix from #7022 (with 80-col reformatting)
Simon Marlow [Thu, 2 Aug 2012 10:47:51 +0000 (11:47 +0100)]
applying simonpj's fix from #7022 (with 80-col reformatting)

8 years agocomment wibble
Simon Marlow [Wed, 1 Aug 2012 09:09:51 +0000 (10:09 +0100)]
comment wibble

8 years agofix a bug in the inliner
Simon Marlow [Thu, 2 Aug 2012 10:22:28 +0000 (11:22 +0100)]
fix a bug in the inliner

8 years agoEliminate "r = r" assignments.
Simon Marlow [Thu, 2 Aug 2012 09:36:58 +0000 (10:36 +0100)]
Eliminate "r = r" assignments.

Previously these were caught by removeDeadAssignments, but we aren't
doing that now.

8 years agoNo need to do removeDeadAssignments, just do cmmLiveness instead
Simon Marlow [Thu, 2 Aug 2012 09:35:44 +0000 (10:35 +0100)]
No need to do removeDeadAssignments, just do cmmLiveness instead

8 years agoDisable the mini-inliner when using the new codegen
Simon Marlow [Thu, 2 Aug 2012 08:38:40 +0000 (09:38 +0100)]
Disable the mini-inliner when using the new codegen

The new sinker is at least as powerful, and the mini-inliner sometimes
even makes things worse.

8 years agoImprove accuracy of memory conflict tracking
Simon Marlow [Thu, 2 Aug 2012 08:37:39 +0000 (09:37 +0100)]
Improve accuracy of memory conflict tracking

We now track stack regions, so that we can float a stack load past a
stack store if they don't conflict.  Also, we now use the CmmType to
more accurately identify heap addresses.

8 years agoInline into the last node
Simon Marlow [Wed, 1 Aug 2012 09:45:14 +0000 (10:45 +0100)]
Inline into the last node

Also lots of refactoring and tidyup

8 years agoCode reformatting
Simon Marlow [Wed, 1 Aug 2012 09:44:55 +0000 (10:44 +0100)]
Code reformatting

8 years agoadd a sinking pass before stack layout (currently disabled)
Simon Marlow [Wed, 1 Aug 2012 09:41:59 +0000 (10:41 +0100)]
add a sinking pass before stack layout (currently disabled)

8 years agoDon't shortcut call-returns when not splitting proc points
Simon Marlow [Wed, 1 Aug 2012 09:36:08 +0000 (10:36 +0100)]
Don't shortcut call-returns when not splitting proc points

See Note [shortcut call returns]

8 years agoExplicitly share some return continuations
Simon Marlow [Tue, 31 Jul 2012 10:19:03 +0000 (11:19 +0100)]
Explicitly share some return continuations

Instead of relying on common-block-elimination to share return
continuations in the common case (case-alternative heap checks) we do
it explicitly.  This isn't hard to do, is more robust, and saves some
compilation time.  Full commentary in Note [sharing continuations].

8 years agoImprove code generated when real registers are clobbered
Simon Marlow [Tue, 31 Jul 2012 14:48:42 +0000 (15:48 +0100)]
Improve code generated when real registers are clobbered

There was a long-standing ToDo here that I just did: if a real
register is clobbered by the current instruction, then we should move
it to another free register rather than spilling it to memory.  This
case crops up more often now that the register allocator can allocate
into the fixed Rn registers.

8 years agoFix #7087 (integer overflow in getDelayTarget())
Simon Marlow [Tue, 31 Jul 2012 08:06:43 +0000 (09:06 +0100)]
Fix #7087 (integer overflow in getDelayTarget())

8 years agoFix compile on linux-powerpc64. (#7084).
Erik de Castro Lopo [Fri, 20 Jul 2012 05:46:19 +0000 (15:46 +1000)]
Fix compile on linux-powerpc64. (#7084).

8 years agoMerge branch 'master' of darcs.haskell.org:/srv/darcs//ghc
Ian Lynagh [Mon, 30 Jul 2012 17:42:56 +0000 (18:42 +0100)]
Merge branch 'master' of darcs.haskell.org:/srv/darcs//ghc

8 years agofix haddock parse error
Simon Marlow [Mon, 30 Jul 2012 12:43:37 +0000 (13:43 +0100)]
fix haddock parse error

8 years agofix warnings
Simon Marlow [Mon, 30 Jul 2012 12:21:59 +0000 (13:21 +0100)]
fix warnings

8 years agofix merge bugs
Simon Marlow [Mon, 30 Jul 2012 12:16:37 +0000 (13:16 +0100)]
fix merge bugs

8 years agobug fix for control-flow optimisation
Simon Marlow [Mon, 30 Jul 2012 10:06:09 +0000 (11:06 +0100)]
bug fix for control-flow optimisation

8 years agobug fixes for the sinker
Simon Marlow [Mon, 30 Jul 2012 10:05:30 +0000 (11:05 +0100)]
bug fixes for the sinker

8 years agono need to removeUnreachableBlocks
Simon Marlow [Thu, 19 Jul 2012 10:54:41 +0000 (11:54 +0100)]
no need to removeUnreachableBlocks

We do this in lots of other places (blockConcat, CmmLayoutStack, etc.)

8 years agoSmall optimisation to the code generated for CAFs
Simon Marlow [Thu, 19 Jul 2012 10:32:45 +0000 (11:32 +0100)]
Small optimisation to the code generated for CAFs

8 years agooptimise away some unnecessary stack checks
Simon Marlow [Thu, 19 Jul 2012 09:03:49 +0000 (10:03 +0100)]
optimise away some unnecessary stack checks

8 years agoNew codegen: do not split proc-points when using the NCG
Simon Marlow [Thu, 19 Jul 2012 09:03:06 +0000 (10:03 +0100)]
New codegen: do not split proc-points when using the NCG

Proc-point splitting is only required by backends that do not support
having proc-points within a code block (that is, everything except the
native backend, i.e. LLVM and C).

Not doing proc-point splitting saves some compilation time, and might
produce slightly better code in some cases.

8 years agoMerge sinking and inlining to get better results.
Simon Marlow [Thu, 19 Jul 2012 08:45:56 +0000 (09:45 +0100)]
Merge sinking and inlining to get better results.

8 years agoFixes for the stack layout algorithm to handle join points
Simon Marlow [Thu, 19 Jul 2012 08:44:57 +0000 (09:44 +0100)]
Fixes for the stack layout algorithm to handle join points