Only save normalized tfp integers in the tfp-cache
[matthijs/master-project/cλash.git] / VHDLTools.hs
index 1e6e5bc1d09e6a956bb5b53fc7039e2985afb406..e7c598d498d322222821bdaf091422ca778e5f96 100644 (file)
@@ -473,9 +473,8 @@ mkHType ty = do
               case elem_htype_either of
                 -- Could create element type
                 Right elem_htype -> do
-                  env <- getA vsHscEnv
-                  let norm_ty = normalise_tfp_int env (tfvec_len_ty ty)
-                  return $ Right $ VecType (OrdType norm_ty) elem_htype
+                  len <- tfp_to_int (tfvec_len_ty ty)
+                  return $ Right $ VecType len elem_htype
                 -- Could not create element type
                 Left err -> return $ Left $ 
                   "VHDLTools.mkHType: Can not construct vectortype for elementtype: " ++ pprString el_ty  ++ "\n"
@@ -527,10 +526,12 @@ isReprType ty = do
 tfp_to_int :: Type.Type -> TypeSession Int
 tfp_to_int ty = do
   lens <- getA vsTfpInts
-  let existing_len = Map.lookup (OrdType ty) lens
+  hscenv <- getA vsHscEnv
+  let norm_ty = normalise_tfp_int hscenv ty
+  let existing_len = Map.lookup (OrdType norm_ty) lens
   case existing_len of
     Just len -> return len
     Nothing -> do
-      let new_len = eval_tfp_int ty
-      modA vsTfpInts (Map.insert (OrdType ty) (new_len))
+      let new_len = eval_tfp_int hscenv ty
+      modA vsTfpInts (Map.insert (OrdType norm_ty) (new_len))
       return new_len
\ No newline at end of file