diff options
author | simonpj@microsoft.com <unknown> | 2006-06-05 11:49:00 +0000 |
---|---|---|
committer | simonpj@microsoft.com <unknown> | 2006-06-05 11:49:00 +0000 |
commit | f2dcf256399e9a2de6343c625630b51f8abf4863 (patch) | |
tree | 947b7f3b00bd7ba91332550311f9e22e9beaa7f3 /compiler/simplCore/FloatIn.lhs | |
parent | 8382f3ad690ab5c26bc3866f9b024bc7a2bc6308 (diff) | |
download | haskell-f2dcf256399e9a2de6343c625630b51f8abf4863.tar.gz |
Remove InlinePlease and add inline function and RULE
For a long time GHC has had some internal mechanism designed to support
a call-site inline directive, thus
inline f xs
makes f be inlined at the call site even if f is big.
However, the surface syntax seems to have gone, and in any case it
can be done more neatly using a RULE.
This commit:
* Removes the InlineCall constructor for Note
and InlinePlease for SimplCont
* Adds a new known-key Id called 'inline', whose definition in
GHC.Base is just the identity function
* Adds a built-in RULE in PrelRules that rewrites (inline f) to
the body of f, if possible
* Adds documentation
NOTE: I have not tested this (aeroplane work). Give it a try!
Diffstat (limited to 'compiler/simplCore/FloatIn.lhs')
-rw-r--r-- | compiler/simplCore/FloatIn.lhs | 5 |
1 files changed, 0 insertions, 5 deletions
diff --git a/compiler/simplCore/FloatIn.lhs b/compiler/simplCore/FloatIn.lhs index 0e8edb5930..0d4e397e29 100644 --- a/compiler/simplCore/FloatIn.lhs +++ b/compiler/simplCore/FloatIn.lhs @@ -208,11 +208,6 @@ fiExpr to_drop (_, AnnNote note@(SCC cc) expr) = -- Wimp out for now mkCoLets' to_drop (Note note (fiExpr [] expr)) -fiExpr to_drop (_, AnnNote InlineCall expr) - = -- Wimp out for InlineCall; keep it close - -- the the call it annotates - mkCoLets' to_drop (Note InlineCall (fiExpr [] expr)) - fiExpr to_drop (_, AnnNote InlineMe expr) = -- Ditto... don't float anything into an INLINE expression mkCoLets' to_drop (Note InlineMe (fiExpr [] expr)) |