@@ -28,7 +28,6 @@ import qualified Gibbon.L3.Syntax as L3
2828import Gibbon.NewL2.Syntax
2929import Gibbon.Passes.AddRAN (numRANsDataCon )
3030import Text.PrettyPrint.GenericPretty
31- import Safe (fromJustDef )
3231
3332{-
3433
@@ -1527,13 +1526,13 @@ cursorizePackedExp freeVarToVarEnv lenv ddfs fundefs denv tenv senv ex =
15271526 -- Vidush: This indexing is actually wrong.
15281527 -- I should make a function that given a position of a loc
15291528 -- get the exact index.
1530- let (start, end, _) = getIndexPositionOfSoALocVar aft_flocs floc
1529+ -- let (start, end, _) = getIndexPositionOfSoALocVar aft_flocs floc
15311530 (vars, bnds) <- foldlM (\ (v, b) i -> do
15321531 new_var <- gensym " unpack_var"
15331532 let bnds = [(new_var, [] , CursorTy , Ext $ IndexCursorArray var_name i)]
15341533 return $ (v ++ [new_var], b ++ bnds)
15351534
1536- ) ([] , [] ) [start .. (end - 1 )]
1535+ ) ([] , [] ) [0 .. (sz - 1 )]
15371536 return $ res ++ [(vars, bnds)]
15381537 ) [] aft_flocs
15391538 let after_flocs_to_vars = concatMap fst res
@@ -2375,12 +2374,13 @@ cursorizeLocExp freeVarToVarEnv denv tenv senv lvar locExp =
23752374 Single {} -> return $ (Ext $ IndexCursorArray loc_var (1 + elem_idx), [] )
23762375 SoA _ fregs -> do
23772376 let CursorArrayTy sz = getCursorizeTyFromLocVar field_loc
2378- let start = L. elemIndex (i, field_loc) field_locs
2379- let start_val = fromJustDef (- 1 ) start
2377+ let (start, end, _) = getIndexPositionOfSoALocVar field_locs field_loc
2378+ -- let start = L.elemIndex (i, field_loc) field_locs
2379+ -- let start_val = fromJustDef (-1) start
23802380 res <- foldlM (\ bnds i -> do
23812381 new_var <- gensym " unpack_loc"
23822382 return $ bnds ++ [ (new_var, (new_var, [] , CursorTy , Ext $ IndexCursorArray loc_var i)) ]
2383- ) [] [(start_val + 1 ).. (start_val + sz )]
2383+ ) [] [(start ).. (end - 1 )]
23842384 let vars = map fst res
23852385 let bnds = map snd res
23862386 return $ (Ext $ MakeCursorArray (length vars) vars, bnds)
@@ -2462,12 +2462,13 @@ cursorizeRegExp freeVarToVarEnv denv tenv senv lvar regExp =
24622462 Single {} -> return $ (Ext $ IndexCursorArray loc_var (1 + elem_idx), [] )
24632463 SoA _ fregs -> do
24642464 let CursorArrayTy sz = getCursorizeTyFromLocVar field_loc
2465- let start = L. elemIndex (i, field_loc) field_locs
2466- let start_val = fromJustDef (- 1 ) start
2465+ let (start, end, _) = getIndexPositionOfSoALocVar field_locs field_loc
2466+ -- let start = L.elemIndex (i, field_loc) field_locs
2467+ -- let start_val = fromJustDef (-1) start
24672468 res <- foldlM (\ bnds i -> do
24682469 new_var <- gensym " unpack_loc"
24692470 return $ bnds ++ [ (new_var, (new_var, [] , CursorTy , Ext $ IndexCursorArray loc_var i)) ]
2470- ) [] [(start_val + 1 ).. (start_val + sz )]
2471+ ) [] [(start ).. (end - 1 )]
24712472 let vars = map fst res
24722473 let bnds = map snd res
24732474 return $ (Ext $ MakeCursorArray (length vars) vars, bnds)
@@ -2628,12 +2629,13 @@ cursorizeAppE freeVarToVarEnv lenv ddfs fundefs denv tenv senv ex =
26282629 let (idx, _, _) = getIndexPositionOfSoARegVar fieldRegions field_reg
26292630 pure (vs ++ [v], bds ++ [(v, [] , CursorTy , Ext $ IndexCursorArray v idx)])
26302631 SoARv {} -> do
2631- let (start, end, _) = getIndexPositionOfSoARegVar fieldRegions field_reg
2632+ -- let (start, end, _) = getIndexPositionOfSoARegVar fieldRegions field_reg
2633+ let CursorArrayTy _sz = getCursorizeTyFromRegVar field_reg
26322634 (nvars, bnds) <- foldlM (\ (nv, bnd) i -> do
26332635 var_n <- gensym " unpack"
26342636 return (nv ++ [var_n], bnd ++ [(var_n, [] , CursorTy , Ext $ IndexCursorArray v i)])
26352637
2636- ) ([] , [] ) [start .. (end - 1 )]
2638+ ) ([] , [] ) [0 .. (_sz - 1 )]
26372639 pure (vs ++ nvars, bds ++ bnds)
26382640 )
26392641 ([] , [] )
0 commit comments