Package org.apache.sysds.hops.rewrite
Class RewriteRemoveReadAfterWrite
java.lang.Object
org.apache.sysds.hops.rewrite.HopRewriteRule
org.apache.sysds.hops.rewrite.RewriteRemoveReadAfterWrite
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 Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionrewriteHopDAG(Hop root, ProgramRewriteStatus state) Handle a predicate hop DAG with exactly one root.rewriteHopDAGs(ArrayList<Hop> roots, ProgramRewriteStatus state) Handle a generic (last-level) hop DAG with multiple roots.
-
Constructor Details
-
RewriteRemoveReadAfterWrite
public RewriteRemoveReadAfterWrite()
-
-
Method Details
-
rewriteHopDAGs
Description copied from class:HopRewriteRuleHandle a generic (last-level) hop DAG with multiple roots.- Specified by:
rewriteHopDAGsin classHopRewriteRule- Parameters:
roots- high-level operator rootsstate- program rewrite status- Returns:
- list of high-level operators
-
rewriteHopDAG
Description copied from class:HopRewriteRuleHandle a predicate hop DAG with exactly one root.- Specified by:
rewriteHopDAGin classHopRewriteRule- Parameters:
root- high-level operator rootstate- program rewrite status- Returns:
- high-level operator
-