diff options
| author | simonmar <unknown> | 2002-04-29 14:04:11 +0000 |
|---|---|---|
| committer | simonmar <unknown> | 2002-04-29 14:04:11 +0000 |
| commit | b085ee40c7f265a5977ea6ec1c415e573be5ff8c (patch) | |
| tree | ab849b59a7eb6a57bc89559706cd71256b5898e4 /ghc/compiler/codeGen/CgTailCall.lhs | |
| parent | f6124b6ca2ec9820f7eb454dbcffbf4b8b790d4f (diff) | |
| download | haskell-b085ee40c7f265a5977ea6ec1c415e573be5ff8c.tar.gz | |
[project @ 2002-04-29 14:03:38 by simonmar]
FastString cleanup, stage 1.
The FastString type is no longer a mixture of hashed strings and
literal strings, it contains hashed strings only with O(1) comparison
(except for UnicodeStr, but that will also go away in due course). To
create a literal instance of FastString, use FSLIT("..").
By far the most common use of the old literal version of FastString
was in the pattern
ptext SLIT("...")
this combination still works, although it doesn't go via FastString
any more. The next stage will be to remove the need to use this
special combination at all, using a RULE.
To convert a FastString into an SDoc, now use 'ftext' instead of
'ptext'.
I've also removed all the FAST_STRING related macros from HsVersions.h
except for SLIT and FSLIT, just use the relevant functions from
FastString instead.
Diffstat (limited to 'ghc/compiler/codeGen/CgTailCall.lhs')
| -rw-r--r-- | ghc/compiler/codeGen/CgTailCall.lhs | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/ghc/compiler/codeGen/CgTailCall.lhs b/ghc/compiler/codeGen/CgTailCall.lhs index 73e7aaa93f..4468eead66 100644 --- a/ghc/compiler/codeGen/CgTailCall.lhs +++ b/ghc/compiler/codeGen/CgTailCall.lhs @@ -1,7 +1,7 @@ % % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998 % -% $Id: CgTailCall.lhs,v 1.32 2002/03/14 15:27:17 simonpj Exp $ +% $Id: CgTailCall.lhs,v 1.33 2002/04/29 14:03:42 simonmar Exp $ % %******************************************************** %* * @@ -147,7 +147,7 @@ mkStaticAlgReturnCode :: DataCon -- The constructor mkStaticAlgReturnCode con sequel = -- Generate profiling code if necessary (case return_convention of - VectoredReturn sz -> profCtrC SLIT("TICK_VEC_RETURN") [mkIntCLit sz] + VectoredReturn sz -> profCtrC FSLIT("TICK_VEC_RETURN") [mkIntCLit sz] other -> nopC ) `thenC` @@ -226,7 +226,7 @@ mkDynamicAlgReturnCode tycon dyn_tag sequel = case ctrlReturnConvAlg tycon of VectoredReturn sz -> - profCtrC SLIT("TICK_VEC_RETURN") [mkIntCLit sz] `thenC` + profCtrC FSLIT("TICK_VEC_RETURN") [mkIntCLit sz] `thenC` sequelToAmode sequel `thenFC` \ ret_addr -> absC (CReturn ret_addr (DynamicVectoredReturn dyn_tag)) @@ -308,7 +308,7 @@ returnUnboxedTuple amodes before_jump let (ret_regs, leftovers) = assignRegs [] (map getAmodeRep amodes) in - profCtrC SLIT("TICK_RET_UNBOXED_TUP") [mkIntCLit (length amodes)] `thenC` + profCtrC FSLIT("TICK_RET_UNBOXED_TUP") [mkIntCLit (length amodes)] `thenC` doTailCall amodes ret_regs mkUnboxedTupleReturnCode @@ -360,7 +360,7 @@ tailCallFun fun fun_amode lf_info arg_amodes pending_assts = case entry_conv of ViaNode -> ([], - profCtrC SLIT("TICK_ENT_VIA_NODE") [] `thenC` + profCtrC FSLIT("TICK_ENT_VIA_NODE") [] `thenC` absC (CJump (CMacroExpr CodePtrRep ENTRY_CODE [CVal (nodeRel 0) DataPtrRep])) , 0) @@ -518,7 +518,7 @@ doTailCall arg_amodes arg_regs finish_code arity pending_assts enter_jump -- Enter Node (we know infoptr will have the info ptr in it)! = mkAbstractCs [ - CCallProfCtrMacro SLIT("RET_SEMI_FAILED") + CCallProfCtrMacro FSLIT("RET_SEMI_FAILED") [CMacroExpr IntRep INFO_TAG [CReg infoptr]], CJump (CMacroExpr CodePtrRep ENTRY_CODE [CReg infoptr]) ] in |
