@@ -2012,30 +2012,22 @@ cleanExp e =
20122012 oth -> []
20132013 in (Ext (LetLocE loc lex e'), S. delete loc (S. union s' $ S. fromList ls))
20142014 else (e',s')
2015- Ext (LetLocE s@ (SoA dloc flcs) lex @ (GenSoALoc _ _ ) e) -> let (e',s') = cleanExp e
2015+ Ext (LetLocE s@ (SoA dloc flcs) lex @ (GenSoALoc dcloc flocs ) e) -> let (e',s') = cleanExp e
20162016 in if S. member s s'
2017- then let ls = case lex of
2018- GenSoALoc dcloc flocs -> [dcloc] ++ P. map (\ (_, ll) -> ll) flocs
2017+ then let ls = [dcloc] ++ P. map (\ (_, ll) -> ll) flocs
20192018 in (Ext (LetLocE s lex e'), S. delete s (S. union s' $ S. fromList ls))
20202019 else (e',s')
2021- Ext (LetLocE s@ (SoA dloc flcs) lex @ (AssignLE _ ) e) -> let (e',s') = cleanExp e
2020+ Ext (LetLocE s@ (SoA dloc flcs) lex @ (AssignLE loc ) e) -> let (e',s') = cleanExp e
20222021 in if S. member s s'
2023- then let ls = case lex of
2024- AssignLE loc -> [loc]
2025- in (Ext (LetLocE s lex e'), S. delete s (S. union s' $ S. fromList ls))
2022+ then (Ext (LetLocE s lex e'), S. delete s (loc `S.insert` s'))
20262023 else (e' ,s')
20272024 Ext (LetLocE s@ (SoA dloc flcs) lex @ (GetFieldLocSoA _ loc) e) -> let (e',s') = cleanExp e
20282025 in if S. member s s'
2029- then let ls = case lex of
2030- GetFieldLocSoA _ loc -> [loc]
2031- in (Ext (LetLocE s lex e'), S. delete s (S. union s' $ S. fromList ls))
2026+ then (Ext (LetLocE s lex e'), S. delete s (loc `S.insert` s'))
20322027 else (e' ,s')
20332028 Ext (LetLocE s@ (SoA dloc flcs) lex e) -> let (e',s') = cleanExp e
20342029 in if S. member s s'
2035- then let ls = case lex of
2036- oth -> []
2037- in (Ext (LetLocE s lex e'),
2038- S. delete s (S. union s' $ S. fromList ls))
2030+ then (Ext (LetLocE s lex e'), S. delete s s')
20392031 else (e',s')
20402032 -- Ext (LetSoALocE loc e) -> let (e',s') = cleanExp e
20412033 -- in (Ext $ LetSoALocE loc e',s')
0 commit comments