Move built_in names to different list within NormalizeTools
authorChristiaan Baaij <baaijcpr@toors-MacBook-Pro-2.local>
Sat, 20 Mar 2010 21:18:43 +0000 (22:18 +0100)
committerChristiaan Baaij <baaijcpr@toors-MacBook-Pro-2.local>
Sat, 20 Mar 2010 21:18:43 +0000 (22:18 +0100)
cλash/CLasH/Normalize/NormalizeTools.hs

index 7a187f859468076873cd5601849793bd2a3bc057..633ac7af44c0294c02a5e6d071e9cd19e0c81df1 100644 (file)
@@ -196,13 +196,33 @@ isUserDefined :: CoreSyn.CoreBndr -> Bool
 -- System names are certain to not be user defined
 isUserDefined bndr | Name.isSystemName (Id.idName bndr) = False
 -- Check a list of typical compiler-defined names
-isUserDefined bndr = str `notElem` compiler_names
+isUserDefined bndr = str `notElem` (compiler_names ++ builtin_names)
   where
     str = Name.getOccString bndr
     -- These are names of bindings usually generated by the compiler. For some
     -- reason these are not marked as system, probably because the name itself
     -- is not made up by the compiler, just this particular binding is.
-    compiler_names = ["fromInteger", "head", "tail", "init", "last", "+", "*", "-", "!"]
+    compiler_names = ["fromInteger"]
+    builtin_names = [ "!", "replace", "head", "last", "tail", "take", "drop"
+                    , "select", "+>", "<+", "++", "map", "zipWith", "foldl"
+                    , "foldr", "zip", "unzip", "shiftl", "shiftr", "rotl"
+                    , "rotr", "concat", "reverse", "iteraten", "iterate"
+                    , "generaten", "generate", "empty", "singleton", "copyn"
+                    , "copy", "lengthT", "null", "hwxor", "hwand", "hwor"
+                    , "hwnot", "not", "+", "*", "-", "fromSizedWord"
+                    , "resizeWord", "resizeInt", "fst", "snd", "blockRAM"
+                    , "split", "==", "/="
+                    ]
+
+    -- , (ltId             , (2, genOperator2 (AST.:<:)  ) )
+    -- , (lteqId           , (2, genOperator2 (AST.:<=:) ) )
+    -- , (gtId             , (2, genOperator2 (AST.:>:)  ) )
+    -- , (gteqId           , (2, genOperator2 (AST.:>=:) ) )
+    -- , (boolOrId         , (2, genOperator2 AST.Or     ) )
+    -- , (boolAndId        , (2, genOperator2 AST.And    ) )
+    -- , (negateId         , (1, genNegation             ) )
+    -- , (sizedIntId       , (1, genSizedInt             ) )
+    -- , (smallIntegerId   , (1, genFromInteger          ) )
 
 -- Is the given binder normalizable? This means that its type signature can be
 -- represented in hardware, which should (?) guarantee that it can be made