diff --git a/mlir/include/mlir/ExecutionEngine/CRunnerUtils.h b/mlir/include/mlir/ExecutionEngine/CRunnerUtils.h --- a/mlir/include/mlir/ExecutionEngine/CRunnerUtils.h +++ b/mlir/include/mlir/ExecutionEngine/CRunnerUtils.h @@ -45,9 +45,7 @@ constexpr bool isPowerOf2(int N) { return (!(N & (N - 1))); } constexpr unsigned nextPowerOf2(int N) { - if (N <= 1) - return 1; - return isPowerOf2(N) ? N : 2 * nextPowerOf2((N + 1) / 2); + return (N <= 1) ? 1 : (isPowerOf2(N) ? N : 2 * nextPowerOf2((N + 1) / 2)); } template @@ -59,8 +57,8 @@ static_assert(detail::nextPowerOf2(sizeof(T[Dim])) == sizeof(T[Dim]), "size error"); } - constexpr T &operator[](unsigned i) { return vector[i]; } - constexpr const T &operator[](unsigned i) const { return vector[i]; } + inline T &operator[](unsigned i) { return vector[i]; } + inline const T &operator[](unsigned i) const { return vector[i]; } private: T vector[Dim]; @@ -76,8 +74,8 @@ static_assert(detail::nextPowerOf2(sizeof(T[Dim])) < 2 * sizeof(T[Dim]), "size error"); } - constexpr T &operator[](unsigned i) { return vector[i]; } - constexpr const T &operator[](unsigned i) const { return vector[i]; } + inline T &operator[](unsigned i) { return vector[i]; } + inline const T &operator[](unsigned i) const { return vector[i]; } private: T vector[Dim]; @@ -88,8 +86,8 @@ // N-D vectors recurse down to 1-D. template struct Vector { - constexpr Vector &operator[](unsigned i) { return vector[i]; } - constexpr const Vector &operator[](unsigned i) const { + inline Vector &operator[](unsigned i) { return vector[i]; } + inline const Vector &operator[](unsigned i) const { return vector[i]; }