Package org.apache.sysds.hops.rewrite
Class RewriteRemoveReadAfterWrite
- java.lang.Object
- 
- org.apache.sysds.hops.rewrite.HopRewriteRule
- 
- org.apache.sysds.hops.rewrite.RewriteRemoveReadAfterWrite
 
 
- 
 public class RewriteRemoveReadAfterWrite extends HopRewriteRule Rule: RemoveReadAfterWrite. If there is a persistent read with the same filename as a persistent write, and read has a higher line number than the write, we remove the read and consume the write input directly. This is important for two reasons (1) correctness and (2) performance. Without this rewrite, we could not guarantee the order of read-after-write because there is not data dependency
- 
- 
Constructor SummaryConstructors Constructor Description RewriteRemoveReadAfterWrite()
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description HoprewriteHopDAG(Hop root, ProgramRewriteStatus state)Handle a predicate hop DAG with exactly one root.ArrayList<Hop>rewriteHopDAGs(ArrayList<Hop> roots, ProgramRewriteStatus state)Handle a generic (last-level) hop DAG with multiple roots.
 
- 
- 
- 
Method Detail- 
rewriteHopDAGspublic ArrayList<Hop> rewriteHopDAGs(ArrayList<Hop> roots, ProgramRewriteStatus state) Description copied from class:HopRewriteRuleHandle a generic (last-level) hop DAG with multiple roots.- Specified by:
- rewriteHopDAGsin class- HopRewriteRule
- Parameters:
- roots- high-level operator roots
- state- program rewrite status
- Returns:
- list of high-level operators
 
 - 
rewriteHopDAGpublic Hop rewriteHopDAG(Hop root, ProgramRewriteStatus state) Description copied from class:HopRewriteRuleHandle a predicate hop DAG with exactly one root.- Specified by:
- rewriteHopDAGin class- HopRewriteRule
- Parameters:
- root- high-level operator root
- state- program rewrite status
- Returns:
- high-level operator
 
 
- 
 
-