diff --git a/llvm/lib/Analysis/DataStructure/Local.cpp b/llvm/lib/Analysis/DataStructure/Local.cpp index d56ad01f0aec..559d79aa8fac 100644 --- a/llvm/lib/Analysis/DataStructure/Local.cpp +++ b/llvm/lib/Analysis/DataStructure/Local.cpp @@ -50,6 +50,9 @@ namespace { DisableDirectCallOpt("disable-direct-call-dsopt", cl::Hidden, cl::desc("Disable direct call optimization in " "DSGraph construction")); + cl::opt + DisableFieldSensitivity("disable-ds-field-sensitivity", cl::Hidden, + cl::desc("Disable field sensitivity in DSGraphs")); //===--------------------------------------------------------------------===// // GraphBuilder Class @@ -108,6 +111,8 @@ namespace { DSNode *createNode(DSNode::NodeTy NodeType, const Type *Ty = 0) { DSNode *N = new DSNode(NodeType, Ty); // Create the node Nodes.push_back(N); // Add node to nodes list + if (DisableFieldSensitivity) + N->foldNodeCompletely(); return N; }