diff --git a/utils/TableGen/DAGISelEmitter.cpp b/utils/TableGen/DAGISelEmitter.cpp
index bac99eb..b7aa558 100644
--- a/utils/TableGen/DAGISelEmitter.cpp
+++ b/utils/TableGen/DAGISelEmitter.cpp
@@ -145,6 +145,8 @@
     assert(DI && "Properties list must be list of defs!");
     if (DI->getDef()->getName() == "SDNPCommutative") {
       Properties |= 1 << SDNPCommutative;
+    } else if (DI->getDef()->getName() == "SDNPAssociative") {
+      Properties |= 1 << SDNPAssociative;
     } else {
       std::cerr << "Unknown SD Node property '" << DI->getDef()->getName()
                 << "' on node '" << R->getName() << "'!\n";
@@ -377,7 +379,7 @@
 /// used as a santity check for .td files (to prevent people from writing stuff
 /// that can never possibly work), and to prevent the pattern permuter from
 /// generating stuff that is useless.
-bool TreePatternNode::canPatternMatch(std::string &Reason, DAGISelEmitter &ISE) {
+bool TreePatternNode::canPatternMatch(std::string &Reason, DAGISelEmitter &ISE){
   if (isLeaf()) return true;
 
   for (unsigned i = 0, e = getNumChildren(); i != e; ++i)
@@ -1052,9 +1054,9 @@
 // GenerateVariants - Generate variants.  For example, commutative patterns can
 // match multiple ways.  Add them to PatternsToMatch as well.
 void DAGISelEmitter::GenerateVariants() {
-  
 }
 
+
 /// getPatternSize - Return the 'size' of this pattern.  We want to match large
 /// patterns before small ones.  This is used to determine the size of a
 /// pattern.
diff --git a/utils/TableGen/DAGISelEmitter.h b/utils/TableGen/DAGISelEmitter.h
index d169acf..f452901 100644
--- a/utils/TableGen/DAGISelEmitter.h
+++ b/utils/TableGen/DAGISelEmitter.h
@@ -87,7 +87,7 @@
     }
     
     // SelectionDAG node properties.
-    enum SDNP { SDNPCommutative };
+    enum SDNP { SDNPCommutative, SDNPAssociative };
 
     /// hasProperty - Return true if this node has the specified property.
     ///
@@ -205,8 +205,8 @@
       return false;
     }
     
-    /// canPatternMatch - Return false if it is impossible for this pattern to
-    /// match on this target.
+    /// canPatternMatch - If it is impossible for this pattern to match on this
+    /// target, fill in Reason and return false.  Otherwise, return true.
     bool canPatternMatch(std::string &Reason, DAGISelEmitter &ISE);
   };
   
