Add early-out for the common case where kwds is NULL (gives 1.1% speedup).
diff --git a/Objects/setobject.c b/Objects/setobject.c
index 8cb3f36..c9834a8 100644
--- a/Objects/setobject.c
+++ b/Objects/setobject.c
@@ -1088,7 +1088,8 @@
 {
     PyObject *iterable = NULL, *result;
 
-    if (type == &PyFrozenSet_Type && !_PyArg_NoKeywords("frozenset()", kwds))
+    if (kwds != NULL && type == &PyFrozenSet_Type
+        && !_PyArg_NoKeywords("frozenset()", kwds))
         return NULL;
 
     if (!PyArg_UnpackTuple(args, type->tp_name, 0, 1, &iterable))
@@ -1130,7 +1131,7 @@
 static PyObject *
 set_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
 {
-    if (type == &PySet_Type && !_PyArg_NoKeywords("set()", kwds))
+    if (kwds != NULL && type == &PySet_Type && !_PyArg_NoKeywords("set()", kwds))
         return NULL;
 
     return make_new_set(type, NULL);