Put a list of builtin functions in VHDL.Constants
authorMatthijs Kooijman <matthijs@stdin.nl>
Wed, 10 Mar 2010 12:32:07 +0000 (13:32 +0100)
committerMatthijs Kooijman <matthijs@stdin.nl>
Wed, 10 Mar 2010 12:32:07 +0000 (13:32 +0100)
This will allow normalization to use this list, without creating
circular dependencies by using VHDL.Generate.globalNameTable.

cλash/CLasH/VHDL/Constants.hs
cλash/CLasH/VHDL/Generate.hs

index 22bf14aabaac4e047905c5b8d7cf916fc9cc6768..b9cbb0b1853b0949ebac5be513f1418151f5ddcb 100644 (file)
@@ -3,6 +3,20 @@ module CLasH.VHDL.Constants where
 -- VHDL Imports  
 import qualified Language.VHDL.AST as AST
 
+-- | A list of all builtin functions. Partly duplicates the name table
+-- in VHDL.Generate, but we can't use that map everywhere due to
+-- circular dependencie.
+builtinIds = [ exId, replaceId, headId, lastId, tailId, initId, takeId, dropId
+             , selId, plusgtId, ltplusId, plusplusId, mapId, zipWithId, foldlId
+             , foldrId, zipId, unzipId, shiftlId, shiftrId, rotlId, rotrId
+             , concatId, reverseId, iteratenId, iterateId, generatenId, generateId
+             , emptyId, singletonId, copynId, copyId, lengthTId, nullId
+             , hwxorId, hwandId, hworId, hwnotId, equalityId, inEqualityId, ltId
+             , lteqId, gtId, gteqId, boolOrId, boolAndId, plusId, timesId
+             , negateId, minusId, fromSizedWordId, fromIntegerId, resizeWordId
+             , resizeIntId, sizedIntId, smallIntegerId, fstId, sndId, blockRAMId
+             , splitId, minimumId 
+             ]
 --------------
 -- Identifiers
 --------------
@@ -376,4 +390,4 @@ stringTM = AST.unsafeVHDLBasicId "string"
 
 -- | tup VHDLName suffix
 tupVHDLSuffix :: AST.VHDLId -> AST.Suffix
-tupVHDLSuffix id = AST.SSimple id
\ No newline at end of file
+tupVHDLSuffix id = AST.SSimple id
index a9947a2ddacc58508262976a4dfa723893c5e93f..61e95b450d10313901b973f402717f7ba9656c69 100644 (file)
@@ -1554,7 +1554,8 @@ type BuiltinBuilder =
 type NameTable = Map.Map String (Int, BuiltinBuilder )
 
 -- | The builtin functions we support. Maps a name to an argument count and a
--- builder function.
+-- builder function. If you add a name to this map, don't forget to add
+-- it to VHDL.Constants/builtinIds as well.
 globalNameTable :: NameTable
 globalNameTable = Map.fromList
   [ (exId             , (2, genFCall True          ) )