From d8d6ab12cc6d4d4c4288d36f5e6382c008adece2 Mon Sep 17 00:00:00 2001 From: Adam Sampson Date: Mon, 26 May 2008 17:19:25 +0000 Subject: [PATCH] Generate size arrays using IsExpr rather than Is. This wasn't actually wrong, but everywhere else uses IsExpr for Val abbreviations. --- backends/BackendPasses.hs | 10 +++++----- backends/BackendPassesTest.hs | 11 ++++++----- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/backends/BackendPasses.hs b/backends/BackendPasses.hs index 2f53ba3..d34ce92 100644 --- a/backends/BackendPasses.hs +++ b/backends/BackendPasses.hs @@ -164,12 +164,12 @@ declareSizesArray = applyDepthSM doStructured let sizeDiff = length srcDs - length ds subSrcSizeVar = A.SubscriptedVariable m (A.SubscriptFromFor m (makeConstant m sizeDiff) (makeConstant m $ length ds)) varSrcSizes sizeType = A.Array [makeDimension m $ length ds] A.Int - sizeSpecType = case sliceSize of + sizeExpr = case sliceSize of Just exp -> let subDims = [A.SubscriptedVariable m (A.Subscript m A.NoCheck $ makeConstant m n) varSrcSizes | n <- [1 .. (length srcDs - 1)]] in - A.IsExpr m A.ValAbbrev sizeType $ - A.Literal m sizeType $ A.ArrayLiteral m $ - [A.ArrayElemExpr exp] ++ map (A.ArrayElemExpr . A.ExprVariable m) subDims - Nothing -> A.Is m A.ValAbbrev sizeType subSrcSizeVar + A.Literal m sizeType $ A.ArrayLiteral m $ + [A.ArrayElemExpr exp] ++ map (A.ArrayElemExpr . A.ExprVariable m) subDims + Nothing -> A.ExprVariable m subSrcSizeVar + sizeSpecType = A.IsExpr m A.ValAbbrev sizeType sizeExpr defineSizesName m n_sizes sizeSpecType return $ A.Specification m n_sizes sizeSpecType diff --git a/backends/BackendPassesTest.hs b/backends/BackendPassesTest.hs index 80d073e..46092c3 100644 --- a/backends/BackendPassesTest.hs +++ b/backends/BackendPassesTest.hs @@ -257,11 +257,12 @@ qcTestDeclareSizes = (foldr (A.SubscriptedVariable emptyMeta) (variable "src") subs) ,specSizes, defSrc) where - specSizes = A.Is emptyMeta A.ValAbbrev (A.Array [dimension $ length destDims] A.Int) $ - A.SubscriptedVariable emptyMeta (A.SubscriptFromFor emptyMeta - (intLiteral $ toInteger $ length srcDims - length destDims) - (intLiteral $ toInteger $ length destDims) - ) (variable "src_sizes") + specSizes = A.IsExpr emptyMeta A.ValAbbrev (A.Array [dimension $ length destDims] A.Int) $ + A.ExprVariable m $ + A.SubscriptedVariable emptyMeta (A.SubscriptFromFor emptyMeta + (intLiteral $ toInteger $ length srcDims - length destDims) + (intLiteral $ toInteger $ length destDims) + ) (variable "src_sizes") defSrc = do defineTestName "src" (A.Declaration emptyMeta (A.Array srcDims A.Byte)) A.Original defineTestName "src_sizes" (A.IsExpr emptyMeta A.ValAbbrev (A.Array srcDims A.Byte) dummyExpr) A.ValAbbrev dummyExpr = A.True emptyMeta