diff options
author | Manuel M T Chakravarty <chak@cse.unsw.edu.au> | 2012-12-05 15:28:19 +1100 |
---|---|---|
committer | Manuel M T Chakravarty <chak@cse.unsw.edu.au> | 2012-12-05 15:28:19 +1100 |
commit | b77da25ef0d95e776a43779bbb4843eb01d33552 (patch) | |
tree | 4aeb4d158a5e66d033bca83f2a804b2ce394b5ad /compiler/iface/MkIface.lhs | |
parent | 2a7217e3fa39410ac61e17f5c8e2ce3976bec1a9 (diff) | |
download | haskell-b77da25ef0d95e776a43779bbb4843eb01d33552.tar.gz |
Rewrote vectorisation avoidance (based on the HS paper)
* Vectorisation avoidance is now the default
* Types and values from unvectorised modules are permitted in scalar code
* Simplified the VECTORISE pragmas (see http://hackage.haskell.org/trac/ghc/wiki/DataParallel/VectPragma for the spec)
* Vectorisation information is now included in the annotated Core AST
Diffstat (limited to 'compiler/iface/MkIface.lhs')
-rw-r--r-- | compiler/iface/MkIface.lhs | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/compiler/iface/MkIface.lhs b/compiler/iface/MkIface.lhs index ce07b375b3..6aed1b2be4 100644 --- a/compiler/iface/MkIface.lhs +++ b/compiler/iface/MkIface.lhs @@ -373,17 +373,17 @@ mkIface_ hsc_env maybe_old_fingerprint ifFamInstTcName = ifFamInstFam - flattenVectInfo (VectInfo { vectInfoVar = vVar - , vectInfoTyCon = vTyCon - , vectInfoScalarVars = vScalarVars - , vectInfoScalarTyCons = vScalarTyCons + flattenVectInfo (VectInfo { vectInfoVar = vVar + , vectInfoTyCon = vTyCon + , vectInfoParallelVars = vParallelVars + , vectInfoParallelTyCons = vParallelTyCons }) = IfaceVectInfo - { ifaceVectInfoVar = [Var.varName v | (v, _ ) <- varEnvElts vVar] - , ifaceVectInfoTyCon = [tyConName t | (t, t_v) <- nameEnvElts vTyCon, t /= t_v] - , ifaceVectInfoTyConReuse = [tyConName t | (t, t_v) <- nameEnvElts vTyCon, t == t_v] - , ifaceVectInfoScalarVars = [Var.varName v | v <- varSetElems vScalarVars] - , ifaceVectInfoScalarTyCons = nameSetToList vScalarTyCons + { ifaceVectInfoVar = [Var.varName v | (v, _ ) <- varEnvElts vVar] + , ifaceVectInfoTyCon = [tyConName t | (t, t_v) <- nameEnvElts vTyCon, t /= t_v] + , ifaceVectInfoTyConReuse = [tyConName t | (t, t_v) <- nameEnvElts vTyCon, t == t_v] + , ifaceVectInfoParallelVars = [Var.varName v | v <- varSetElems vParallelVars] + , ifaceVectInfoParallelTyCons = nameSetToList vParallelTyCons } ----------------------------- |