add some more functions, ignore setcc for constraints!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20917 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Analysis/IPA/Andersens.cpp b/lib/Analysis/IPA/Andersens.cpp
index c665038..9c17cab 100644
--- a/lib/Analysis/IPA/Andersens.cpp
+++ b/lib/Analysis/IPA/Andersens.cpp
@@ -328,6 +328,7 @@
     void visitGetElementPtrInst(GetElementPtrInst &GEP);
     void visitPHINode(PHINode &PN);
     void visitCastInst(CastInst &CI);
+    void visitSetCondInst(SetCondInst &SCI) {} // NOOP!
     void visitSelectInst(SelectInst &SI);
     void visitVANext(VANextInst &I);
     void visitVAArg(VAArgInst &I);
@@ -609,16 +610,20 @@
 
   // These functions don't induce any points-to constraints.
   if (F->getName() == "printf" || F->getName() == "fprintf" ||
+      F->getName() == "sprintf" ||
       F->getName() == "fgets" ||
       F->getName() == "open" || F->getName() == "fopen" ||
       F->getName() == "fclose" || F->getName() == "fflush" ||
-      F->getName() == "atoi" || F->getName() == "sscanf" ||
+      F->getName() == "rewind" ||
+      F->getName() == "atoi" || F->getName() == "unlink" ||
+      F->getName() == "sscanf" || F->getName() == "fscanf" ||
       F->getName() == "llvm.memset" || F->getName() == "memcmp" ||
       F->getName() == "read" || F->getName() == "write")
     return true;
 
   // These functions do induce points-to edges.
-  if (F->getName() == "llvm.memcpy" || F->getName() == "llvm.memmove") {
+  if (F->getName() == "llvm.memcpy" || F->getName() == "llvm.memmove" ||
+      F->getName() == "memmove") {
     // Note: this is a poor approximation, this says Dest = Src, instead of
     // *Dest = *Src.
     Constraints.push_back(Constraint(Constraint::Copy,
@@ -647,8 +652,8 @@
 void Andersens::CollectConstraints(Module &M) {
   // First, the universal set points to itself.
   GraphNodes[UniversalSet].addPointerTo(&GraphNodes[UniversalSet]);
-  Constraints.push_back(Constraint(Constraint::Load, &GraphNodes[UniversalSet],
-                                   &GraphNodes[UniversalSet]));
+  //Constraints.push_back(Constraint(Constraint::Load, &GraphNodes[UniversalSet],
+  //                                 &GraphNodes[UniversalSet]));
   Constraints.push_back(Constraint(Constraint::Store, &GraphNodes[UniversalSet],
                                    &GraphNodes[UniversalSet]));