diff --git a/loopy/kernel/tools.py b/loopy/kernel/tools.py
index 2033425236836ecf000d6c341c46dcb8b087a29a..51dd472d6244e3b92a290a87b3693f834f7c1fb4 100644
--- a/loopy/kernel/tools.py
+++ b/loopy/kernel/tools.py
@@ -316,10 +316,16 @@ class SetOperationCacheManager:
         return result
 
     def dim_min(self, set, *args):
+        if set.plain_is_empty():
+            raise LoopyError("domain '%s' is empty" % set)
+
         from loopy.isl_helpers import dim_min_with_elimination
         return self.op(set, "dim_min", dim_min_with_elimination, args)
 
     def dim_max(self, set, *args):
+        if set.plain_is_empty():
+            raise LoopyError("domain '%s' is empty" % set)
+
         from loopy.isl_helpers import dim_max_with_elimination
         return self.op(set, "dim_max", dim_max_with_elimination, args)