|
|
@ -127,14 +127,14 @@ struct EOFException : public std::exception {
|
|
|
|
#define UNLIKELY(condition) __builtin_expect(static_cast<bool>(condition), 0)
|
|
|
|
#define UNLIKELY(condition) __builtin_expect(static_cast<bool>(condition), 0)
|
|
|
|
#else
|
|
|
|
#else
|
|
|
|
// there is no equivalent intrinsics in msvc.
|
|
|
|
// there is no equivalent intrinsics in msvc.
|
|
|
|
#define UNLIKELY(condition) (condition == 0)
|
|
|
|
#define UNLIKELY(condition) (condition)
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#if !defined(_WIN32)
|
|
|
|
#if !defined(_WIN32)
|
|
|
|
#define LIKELY(condition) __builtin_expect(static_cast<bool>(condition), 1)
|
|
|
|
#define LIKELY(condition) __builtin_expect(static_cast<bool>(condition), 1)
|
|
|
|
#else
|
|
|
|
#else
|
|
|
|
// there is no equivalent intrinsics in msvc.
|
|
|
|
// there is no equivalent intrinsics in msvc.
|
|
|
|
#define LIKELY(condition) (condition != 0)
|
|
|
|
#define LIKELY(condition) !(condition)
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
template <typename... Args>
|
|
|
|
template <typename... Args>
|
|
|
@ -248,7 +248,6 @@ inline void throw_on_error(T e) {
|
|
|
|
throw_on_error(e, "");
|
|
|
|
throw_on_error(e, "");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#if !defined(_WIN32)
|
|
|
|
|
|
|
|
#define PADDLE_THROW(...) \
|
|
|
|
#define PADDLE_THROW(...) \
|
|
|
|
do { \
|
|
|
|
do { \
|
|
|
|
throw ::paddle::platform::EnforceNotMet( \
|
|
|
|
throw ::paddle::platform::EnforceNotMet( \
|
|
|
@ -272,17 +271,6 @@ inline void throw_on_error(T e) {
|
|
|
|
#define PADDLE_ENFORCE(...) ::paddle::platform::throw_on_error(__VA_ARGS__);
|
|
|
|
#define PADDLE_ENFORCE(...) ::paddle::platform::throw_on_error(__VA_ARGS__);
|
|
|
|
#endif // REPLACE_ENFORCE_GLOG
|
|
|
|
#endif // REPLACE_ENFORCE_GLOG
|
|
|
|
|
|
|
|
|
|
|
|
#else // !_WIN32
|
|
|
|
|
|
|
|
// disable enforce, caused by the varardic macro exception error
|
|
|
|
|
|
|
|
#define PADDLE_THROW(x) \
|
|
|
|
|
|
|
|
do { \
|
|
|
|
|
|
|
|
throw std::make_exception_ptr( \
|
|
|
|
|
|
|
|
std::runtime_error("Windows disable the enforce.")); \
|
|
|
|
|
|
|
|
} while (false)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define PADDLE_ENFORCE(x, ...) x
|
|
|
|
|
|
|
|
#endif // !_WIN32
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define PADDLE_THROW_EOF() \
|
|
|
|
#define PADDLE_THROW_EOF() \
|
|
|
|
do { \
|
|
|
|
do { \
|
|
|
|
throw ::paddle::platform::EOFException("There is no next data.", __FILE__, \
|
|
|
|
throw ::paddle::platform::EOFException("There is no next data.", __FILE__, \
|
|
|
@ -302,20 +290,6 @@ inline void throw_on_error(T e) {
|
|
|
|
* extra messages is also supported, for example:
|
|
|
|
* extra messages is also supported, for example:
|
|
|
|
* PADDLE_ENFORCE(a, b, "some simple enforce failed between %d numbers", 2)
|
|
|
|
* PADDLE_ENFORCE(a, b, "some simple enforce failed between %d numbers", 2)
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
#if !defined(_WIN32)
|
|
|
|
|
|
|
|
#define PADDLE_ENFORCE_EQ(__VAL0, __VAL1, ...) \
|
|
|
|
|
|
|
|
__PADDLE_BINARY_COMPARE(__VAL0, __VAL1, ==, !=, __VA_ARGS__)
|
|
|
|
|
|
|
|
#define PADDLE_ENFORCE_NE(__VAL0, __VAL1, ...) \
|
|
|
|
|
|
|
|
__PADDLE_BINARY_COMPARE(__VAL0, __VAL1, !=, ==, __VA_ARGS__)
|
|
|
|
|
|
|
|
#define PADDLE_ENFORCE_GT(__VAL0, __VAL1, ...) \
|
|
|
|
|
|
|
|
__PADDLE_BINARY_COMPARE(__VAL0, __VAL1, >, <=, __VA_ARGS__)
|
|
|
|
|
|
|
|
#define PADDLE_ENFORCE_GE(__VAL0, __VAL1, ...) \
|
|
|
|
|
|
|
|
__PADDLE_BINARY_COMPARE(__VAL0, __VAL1, >=, <, __VA_ARGS__)
|
|
|
|
|
|
|
|
#define PADDLE_ENFORCE_LT(__VAL0, __VAL1, ...) \
|
|
|
|
|
|
|
|
__PADDLE_BINARY_COMPARE(__VAL0, __VAL1, <, >=, __VA_ARGS__)
|
|
|
|
|
|
|
|
#define PADDLE_ENFORCE_LE(__VAL0, __VAL1, ...) \
|
|
|
|
|
|
|
|
__PADDLE_BINARY_COMPARE(__VAL0, __VAL1, <=, >, __VA_ARGS__)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define PADDLE_ENFORCE_NOT_NULL(__VAL, ...) \
|
|
|
|
#define PADDLE_ENFORCE_NOT_NULL(__VAL, ...) \
|
|
|
|
do { \
|
|
|
|
do { \
|
|
|
|
if (UNLIKELY(nullptr == (__VAL))) { \
|
|
|
|
if (UNLIKELY(nullptr == (__VAL))) { \
|
|
|
@ -335,27 +309,19 @@ inline void throw_on_error(T e) {
|
|
|
|
paddle::string::Sprintf("" __VA_ARGS__)); \
|
|
|
|
paddle::string::Sprintf("" __VA_ARGS__)); \
|
|
|
|
} \
|
|
|
|
} \
|
|
|
|
} while (0)
|
|
|
|
} while (0)
|
|
|
|
#else
|
|
|
|
|
|
|
|
#define PADDLE_ENFORCE_EQ(__VAL0, __VAL1, ...) ((__VAL0) == (__VAL1))
|
|
|
|
#define PADDLE_ENFORCE_EQ(__VAL0, __VAL1, ...) \
|
|
|
|
#define PADDLE_ENFORCE_NE(__VAL0, __VAL1, ...) ((__VAL0) != (__VAL1))
|
|
|
|
__PADDLE_BINARY_COMPARE(__VAL0, __VAL1, ==, !=, __VA_ARGS__)
|
|
|
|
#define PADDLE_ENFORCE_GT(__VAL0, __VAL1, ...) ((__VAL0) > (__VAL1))
|
|
|
|
#define PADDLE_ENFORCE_NE(__VAL0, __VAL1, ...) \
|
|
|
|
#define PADDLE_ENFORCE_GE(__VAL0, __VAL1, ...) ((__VAL0) >= (__VAL1))
|
|
|
|
__PADDLE_BINARY_COMPARE(__VAL0, __VAL1, !=, ==, __VA_ARGS__)
|
|
|
|
#define PADDLE_ENFORCE_LT(__VAL0, __VAL1, ...) ((__VAL0) < (__VAL1))
|
|
|
|
#define PADDLE_ENFORCE_GT(__VAL0, __VAL1, ...) \
|
|
|
|
#define PADDLE_ENFORCE_LE(__VAL0, __VAL1, ...) ((__VAL0) <= (__VAL1))
|
|
|
|
__PADDLE_BINARY_COMPARE(__VAL0, __VAL1, >, <=, __VA_ARGS__)
|
|
|
|
|
|
|
|
#define PADDLE_ENFORCE_GE(__VAL0, __VAL1, ...) \
|
|
|
|
#define __PADDLE_BINARY_COMPARE(__VAL0, __VAL1, __CMP, __INV_CMP, ...) \
|
|
|
|
__PADDLE_BINARY_COMPARE(__VAL0, __VAL1, >=, <, __VA_ARGS__)
|
|
|
|
do { \
|
|
|
|
#define PADDLE_ENFORCE_LT(__VAL0, __VAL1, ...) \
|
|
|
|
if (!((__VAL0)__CMP(__VAL1))) { \
|
|
|
|
__PADDLE_BINARY_COMPARE(__VAL0, __VAL1, <, >=, __VA_ARGS__)
|
|
|
|
PADDLE_THROW("Windows disable the enforce. Enforce failed."); \
|
|
|
|
#define PADDLE_ENFORCE_LE(__VAL0, __VAL1, ...) \
|
|
|
|
} \
|
|
|
|
__PADDLE_BINARY_COMPARE(__VAL0, __VAL1, <=, >, __VA_ARGS__)
|
|
|
|
} while (0)
|
|
|
|
|
|
|
|
#define PADDLE_ENFORCE_NOT_NULL(__VAL1, ...) \
|
|
|
|
|
|
|
|
do { \
|
|
|
|
|
|
|
|
if (nullptr == (__VAL1)) { \
|
|
|
|
|
|
|
|
PADDLE_THROW("Windows disable the enforce. Enforce failed"); \
|
|
|
|
|
|
|
|
} \
|
|
|
|
|
|
|
|
} while (0)
|
|
|
|
|
|
|
|
#endif // !_WIN32
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} // namespace platform
|
|
|
|
} // namespace platform
|
|
|
|
} // namespace paddle
|
|
|
|
} // namespace paddle
|
|
|
|