From 60daa07b934f31bc823f5f301160960edace624b Mon Sep 17 00:00:00 2001 From: Neil Brown Date: Sat, 1 Mar 2008 20:22:34 +0000 Subject: [PATCH] Renamed one of the array functions in the function table to be clearer --- backends/GenerateC.hs | 16 ++++++++-------- backends/GenerateCBased.hs | 2 +- backends/GenerateCTest.hs | 6 +++--- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/backends/GenerateC.hs b/backends/GenerateC.hs index 2203f82..4b8d8cd 100644 --- a/backends/GenerateC.hs +++ b/backends/GenerateC.hs @@ -67,7 +67,7 @@ cgenOps = GenOps { genAlt = cgenAlt, genAllocMobile = cgenAllocMobile, genArrayLiteralElems = cgenArrayLiteralElems, - genArraySize = cgenArraySize, + genArraySizeDecl = cgenArraySizeDecl, genArraySizesLiteral = cgenArraySizesLiteral, genArrayStoreName = genName, genArraySubscript = cgenArraySubscript, @@ -1003,7 +1003,7 @@ cgenSlice v@(A.SubscriptedVariable _ _ (A.Variable _ on)) start count ds -- We need to disable the index check here because we might be taking -- element 0 of a 0-length array -- which is valid. = (tell ["&"] >> call genVariableUnchecked v, - call genArraySize False + call genArraySizeDecl False (do genLeftB tell ["occam_check_slice("] call genExpression start @@ -1021,8 +1021,8 @@ cgenSlice v@(A.SubscriptedVariable _ _ (A.Variable _ on)) start count ds genRightB )) -cgenArraySize :: Bool -> CGen () -> A.Name -> CGen () -cgenArraySize isPtr size n +cgenArraySizeDecl :: Bool -> CGen () -> A.Name -> CGen () +cgenArraySizeDecl isPtr size n = if isPtr then do tell ["const int*"] genName n @@ -1052,7 +1052,7 @@ abbrevVariable am (A.Array _ _) v@(A.SubscriptedVariable _ (A.Subscript _ _) _) genAASize (A.SubscriptedVariable _ (A.Subscript _ _) v) arg = genAASize v (arg + 1) genAASize (A.Variable _ on) arg - = call genArraySize True + = call genArraySizeDecl True (tell ["&"] >> genName on >> tell ["_sizes[", show arg, "]"]) genAASize (A.DirectedVariable _ _ v) arg = const $ call genMissing "Cannot abbreviate a directed variable as an array" @@ -1064,7 +1064,7 @@ abbrevVariable am (A.Array ds _) v@(A.SubscriptedVariable m (A.SubscriptFrom _ s abbrevVariable am (A.Array ds _) v@(A.SubscriptedVariable m (A.SubscriptFor _ count) _) = call genSlice v (makeConstant m 0) count ds abbrevVariable am (A.Array _ _) v - = (call genVariable v, call genArraySize True (call genVariable v >> tell ["_sizes"])) + = (call genVariable v, call genArraySizeDecl True (call genVariable v >> tell ["_sizes"])) abbrevVariable am (A.Chan {}) v = (call genVariable v, noSize) abbrevVariable am (A.Record _) v @@ -1106,7 +1106,7 @@ cgenRetypeSizes m destT destN srcT srcV dieP m "genRetypeSizes expecting free dimension" A.Dimension n -> tell [show n] | d <- destDS] - call genArraySize False (genLeftB >> seqComma dims >> genRightB) destN + call genArraySizeDecl False (genLeftB >> seqComma dims >> genRightB) destN -- Not array; just check the size is 1. _ -> @@ -1181,7 +1181,7 @@ cgenFlatArraySize ds -- | Declare an _sizes array for a variable. cdeclareArraySizes :: A.Type -> A.Name -> CGen () cdeclareArraySizes t name - = call genArraySize False (call genArraySizesLiteral name t) name + = call genArraySizeDecl False (call genArraySizesLiteral name t) name -- | Generate a C literal to initialise an _sizes array with, where all the -- dimensions are fixed. diff --git a/backends/GenerateCBased.hs b/backends/GenerateCBased.hs index aa559fc..53f6fa3 100644 --- a/backends/GenerateCBased.hs +++ b/backends/GenerateCBased.hs @@ -87,7 +87,7 @@ data GenOps = GenOps { -- | Generates the given array element expressions as a flattened (one-dimensional) list of literals genArrayLiteralElems :: [A.ArrayElem] -> CGen (), -- | Declares a constant array for the sizes (dimensions) of a C array. - genArraySize :: Bool -> CGen () -> A.Name -> CGen (), + genArraySizeDecl :: Bool -> CGen () -> A.Name -> CGen (), -- | Writes out the dimensions of an array, that can be used to initialise the sizes of an array. Fails if there is an 'A.UnknownDimension' present. genArraySizesLiteral :: A.Name -> A.Type -> CGen (), -- | Writes out the actual data storage array name. diff --git a/backends/GenerateCTest.hs b/backends/GenerateCTest.hs index 0789bad..f789b8a 100644 --- a/backends/GenerateCTest.hs +++ b/backends/GenerateCTest.hs @@ -293,8 +293,8 @@ testArraySizes = TestList testBoth "genArraySizesLiteral 0" "{3}" "tockArrayView(foo_actual,tockDims(3))" (tcall2 genArraySizesLiteral foo $ A.Array [A.Dimension 3] A.Int) ,testBoth "genArraySizesLiteral 1" "{3,6,8}" "tockArrayView(foo_actual,tockDims(3,6,8))" (tcall2 genArraySizesLiteral foo $ A.Array [A.Dimension 3, A.Dimension 6, A.Dimension 8] A.Int) ,testBothFail "genArraySizesLiteral 2" (tcall2 genArraySizesLiteral foo $ A.Array [A.Dimension 6, A.UnknownDimension] A.Int) - ,testBothSame "genArraySize 0" "const int*foo_sizes=@;" (tcall3 genArraySize True at foo) - ,testBothSame "genArraySize 1" "const int foo_sizes[]=@;" (tcall3 genArraySize False at foo) + ,testBothSame "genArraySizeDecl 0" "const int*foo_sizes=@;" (tcall3 genArraySizeDecl True at foo) + ,testBothSame "genArraySizeDecl 1" "const int foo_sizes[]=@;" (tcall3 genArraySizeDecl False at foo) ,testBothSame "genArrayLiteralElems 0" "$" $ unfolded (tcall genArrayLiteralElems [A.ArrayElemExpr undefined]) ,testBothSame "genArrayLiteralElems 1" "$,$,$" $ unfolded (tcall genArrayLiteralElems [A.ArrayElemExpr undefined, A.ArrayElemExpr undefined, A.ArrayElemExpr undefined]) ,testBothSame "genArrayLiteralElems 2" "$,$,$" $ unfolded (tcall genArrayLiteralElems [A.ArrayElemExpr undefined, A.ArrayElemArray [A.ArrayElemExpr undefined, A.ArrayElemExpr undefined]]) @@ -737,7 +737,7 @@ testRetypeSizes = TestList showBytesInParams _ t v = tell ["$(" ++ show t ++ " " ++ show v ++ ")"] showArrSize _ sz _ = tell ["^("] >> sz >> tell [")"] over :: Override - over = local $ \ops -> ops {genBytesIn = showBytesInParams, genStop = override2 at, genArraySize = showArrSize} + over = local $ \ops -> ops {genBytesIn = showBytesInParams, genStop = override2 at, genArraySizeDecl = showArrSize} defRecord :: String -> String -> A.Type -> State CompState () defRecord rec mem t = defineName (simpleName rec) $ A.NameDef emptyMeta rec rec A.RecordName (A.RecordType emptyMeta False [(simpleName mem,t)]) A.Original A.Unplaced