diff --git a/src/ipa/libipa/pwl.cpp b/src/ipa/libipa/pwl.cpp
index d8ea92be0a86..8b437dd1a650 100644
--- a/src/ipa/libipa/pwl.cpp
+++ b/src/ipa/libipa/pwl.cpp
@@ -188,6 +188,12 @@ void Pwl::prepend(double x, double y, const double eps)
  * \return True if there are no points in the function, false otherwise
  */
 
+/**
+ * \fn Pwl::size() const
+ * \brief Retrieve the number of points in the piecewise linear function
+ * \return The number of points in the piecewise linear function
+ */
+
 /**
  * \brief Get the domain of the piecewise linear function
  * \return An interval representing the domain
diff --git a/src/ipa/libipa/pwl.h b/src/ipa/libipa/pwl.h
index b4de00cf88f0..028342314fca 100644
--- a/src/ipa/libipa/pwl.h
+++ b/src/ipa/libipa/pwl.h
@@ -52,6 +52,8 @@ public:
 	void append(double x, double y, double eps = 1e-6);
 
 	bool empty() const { return points_.empty(); }
+	size_t size() const { return points_.size(); }
+
 	Interval domain() const;
 	Interval range() const;
 
