From: Christiaan Baaij Date: Sat, 20 Mar 2010 21:18:43 +0000 (+0100) Subject: Move built_in names to different list within NormalizeTools X-Git-Url: https://git.stderr.nl/gitweb?p=matthijs%2Fmaster-project%2Fc%CE%BBash.git;a=commitdiff_plain;h=ba3fc1b305de424187b698b18a5facac799093f4 Move built_in names to different list within NormalizeTools --- diff --git "a/c\316\273ash/CLasH/Normalize/NormalizeTools.hs" "b/c\316\273ash/CLasH/Normalize/NormalizeTools.hs" index 7a187f8..633ac7a 100644 --- "a/c\316\273ash/CLasH/Normalize/NormalizeTools.hs" +++ "b/c\316\273ash/CLasH/Normalize/NormalizeTools.hs" @@ -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