You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@systemml.apache.org by mb...@apache.org on 2018/07/31 02:08:08 UTC
systemml git commit: [SYSTEMML-2473] Fix robustness IPA wrt updates
of function call graph
Repository: systemml
Updated Branches:
refs/heads/master 50ddddb90 -> 827d73bd5
[SYSTEMML-2473] Fix robustness IPA wrt updates of function call graph
Project: http://git-wip-us.apache.org/repos/asf/systemml/repo
Commit: http://git-wip-us.apache.org/repos/asf/systemml/commit/827d73bd
Tree: http://git-wip-us.apache.org/repos/asf/systemml/tree/827d73bd
Diff: http://git-wip-us.apache.org/repos/asf/systemml/diff/827d73bd
Branch: refs/heads/master
Commit: 827d73bd58087f2c774697bb6114ccf23d768bb1
Parents: 50ddddb
Author: Matthias Boehm <mb...@gmail.com>
Authored: Mon Jul 30 18:55:13 2018 -0700
Committer: Matthias Boehm <mb...@gmail.com>
Committed: Mon Jul 30 18:55:13 2018 -0700
----------------------------------------------------------------------
src/main/java/org/apache/sysml/hops/ipa/FunctionCallGraph.java | 6 ++++--
.../org/apache/sysml/hops/ipa/InterProceduralAnalysis.java | 5 ++++-
2 files changed, 8 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/systemml/blob/827d73bd/src/main/java/org/apache/sysml/hops/ipa/FunctionCallGraph.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/ipa/FunctionCallGraph.java b/src/main/java/org/apache/sysml/hops/ipa/FunctionCallGraph.java
index 74ee056..76029d8 100644
--- a/src/main/java/org/apache/sysml/hops/ipa/FunctionCallGraph.java
+++ b/src/main/java/org/apache/sysml/hops/ipa/FunctionCallGraph.java
@@ -179,8 +179,10 @@ public class FunctionCallGraph
* @param sb source statement block
*/
public void removeFunctionCall(String fkey, FunctionOp fop, StatementBlock sb) {
- _fCalls.get(fkey).remove(fop);
- _fCallsSB.get(fkey).remove(sb);
+ if( _fCalls.containsKey(fkey) )
+ _fCalls.get(fkey).remove(fop);
+ if( _fCallsSB.containsKey(fkey) )
+ _fCallsSB.get(fkey).remove(sb);
}
/**
http://git-wip-us.apache.org/repos/asf/systemml/blob/827d73bd/src/main/java/org/apache/sysml/hops/ipa/InterProceduralAnalysis.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/ipa/InterProceduralAnalysis.java b/src/main/java/org/apache/sysml/hops/ipa/InterProceduralAnalysis.java
index 77cc3e2..72aa9cb 100644
--- a/src/main/java/org/apache/sysml/hops/ipa/InterProceduralAnalysis.java
+++ b/src/main/java/org/apache/sysml/hops/ipa/InterProceduralAnalysis.java
@@ -136,9 +136,12 @@ public class InterProceduralAnalysis
_passes.add(new IPAPassRemoveUnnecessaryCheckpoints());
_passes.add(new IPAPassRemoveConstantBinaryOps());
_passes.add(new IPAPassPropagateReplaceLiterals());
- _passes.add(new IPAPassApplyStaticHopRewrites());
_passes.add(new IPAPassInlineFunctions());
_passes.add(new IPAPassEliminateDeadCode());
+ //note: apply rewrites last because statement block rewrites
+ //might merge relevant statement blocks in special cases, which
+ //would require an update of the function call graph
+ _passes.add(new IPAPassApplyStaticHopRewrites());
}
public InterProceduralAnalysis(StatementBlock sb) {