Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Glasgow Haskell Compiler
GHC
Commits
16643862
Commit
16643862
authored
Aug 23, 2007
by
rl@cse.unsw.edu.au
Browse files
Remove dead code
parent
3b962ce8
Changes
1
Hide whitespace changes
Inline
Side-by-side
compiler/vectorise/VectType.hs
View file @
16643862
...
...
@@ -467,98 +467,6 @@ paMethods = [(FSLIT("toPRepr"), buildToPRepr),
(
FSLIT
(
"fromArrPRepr"
),
buildFromArrPRepr
),
(
FSLIT
(
"dictPRepr"
),
buildPRDict
)]
buildLengthPA
::
Shape
->
TyCon
->
TyCon
->
TyCon
->
VM
CoreExpr
buildLengthPA
shape
vect_tc
_
arr_tc
=
do
parr_ty
<-
mkPArrayType
(
mkTyConApp
vect_tc
arg_tys
)
arg
<-
newLocalVar
FSLIT
(
"xs"
)
parr_ty
shapes
<-
mapM
(
newLocalVar
FSLIT
(
"sh"
))
shape_tys
wilds
<-
mapM
newDummyVar
repr_tys
let
scrut
=
unwrapFamInstScrut
arr_tc
arg_tys
(
Var
arg
)
scrut_ty
=
exprType
scrut
body
<-
shapeLength
shape
(
map
Var
shapes
)
return
.
Lam
arg
$
Case
scrut
(
mkWildId
scrut_ty
)
intPrimTy
[(
DataAlt
repr_dc
,
shapes
++
wilds
,
body
)]
where
arg_tys
=
mkTyVarTys
$
tyConTyVars
arr_tc
[
repr_dc
]
=
tyConDataCons
arr_tc
shape_tys
=
shapeReprTys
shape
repr_tys
=
drop
(
length
shape_tys
)
(
dataConRepArgTys
repr_dc
)
-- data T = C0 t1 ... tm
-- ...
-- Ck u1 ... un
--
-- data [:T:] = A ![:Int:] [:t1:] ... [:un:]
--
-- replicatePA :: Int# -> T -> [:T:]
-- replicatePA n# t
-- = let c = case t of
-- C0 _ ... _ -> 0
-- ...
-- Ck _ ... _ -> k
--
-- xs1 = case t of
-- C0 x1 _ ... _ -> replicatePA @t1 n# x1
-- _ -> emptyPA @t1
--
-- ...
--
-- ysn = case t of
-- Ck _ ... _ yn -> replicatePA @un n# yn
-- _ -> emptyPA @un
-- in
-- A (replicatePA @Int n# c) xs1 ... ysn
--
--
buildReplicatePA
::
Shape
->
TyCon
->
TyCon
->
TyCon
->
VM
CoreExpr
buildReplicatePA
shape
vect_tc
_
arr_tc
=
do
len_var
<-
newLocalVar
FSLIT
(
"n"
)
intPrimTy
val_var
<-
newLocalVar
FSLIT
(
"x"
)
val_ty
let
len
=
Var
len_var
val
=
Var
val_var
shape_reprs
<-
shapeReplicate
shape
len
(
ctr_num
val
)
reprs
<-
liftM
concat
$
mapM
(
mk_comp_arrs
len
val
)
vect_dcs
return
.
mkLams
[
len_var
,
val_var
]
.
wrapFamInstBody
arr_tc
arg_tys
$
mkConApp
arr_dc
(
map
Type
arg_tys
++
shape_reprs
++
reprs
)
where
arg_tys
=
mkTyVarTys
(
tyConTyVars
arr_tc
)
val_ty
=
mkTyConApp
vect_tc
arg_tys
wild
=
mkWildId
val_ty
vect_dcs
=
tyConDataCons
vect_tc
[
arr_dc
]
=
tyConDataCons
arr_tc
ctr_num
val
=
Case
val
wild
intTy
(
zipWith
ctr_num_alt
vect_dcs
[
0
..
])
ctr_num_alt
dc
i
=
(
DataAlt
dc
,
map
mkWildId
(
dataConRepArgTys
dc
),
mkConApp
intDataCon
[
mkIntLitInt
i
])
mk_comp_arrs
len
val
dc
=
let
tys
=
dataConRepArgTys
dc
wilds
=
map
mkWildId
tys
in
sequence
(
zipWith3
(
mk_comp_arr
len
val
dc
)
tys
(
inits
wilds
)
(
tails
wilds
))
mk_comp_arr
len
val
dc
ty
pre
(
_
:
post
)
=
do
var
<-
newLocalVar
FSLIT
(
"x"
)
ty
rep
<-
replicatePA
len
(
Var
var
)
empty
<-
emptyPA
ty
arr_ty
<-
mkPArrayType
ty
return
$
Case
val
wild
arr_ty
[(
DEFAULT
,
[]
,
empty
),
(
DataAlt
dc
,
pre
++
(
var
:
post
),
rep
)]
-- | Split the given tycons into two sets depending on whether they have to be
-- converted (first list) or not (second list). The first argument contains
-- information about the conversion status of external tycons:
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment