Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use std::optional instead of dmlc::optional, NFC #12443

Merged
merged 5 commits into from
Aug 16, 2022
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 8 additions & 5 deletions src/relay/transforms/fold_explicit_padding.cc
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
* \brief A pass for folding explicit pads into other ops.
*/

#include <dmlc/optional.h>
#include <tvm/relay/dataflow_matcher.h>
#include <tvm/relay/expr.h>
#include <tvm/relay/expr_functor.h>
Expand All @@ -35,6 +34,10 @@
#include "../op/tensor/transform.h"
#include "pattern_utils.h"

#include <optional>
#include <set>
#include <string>

namespace tvm {
namespace relay {

Expand Down Expand Up @@ -180,10 +183,10 @@ class SimplifyExplicitPad {
return attrs;
}

static const Optional<Array<PrimExpr>> get_padding(const PadAttrs* param,
std::string data_layout) {
static const std::optional<Array<PrimExpr>> get_padding(const PadAttrs* param,
std::string data_layout) {
// Gets spatial axes padding from the given PadAttrs `param`. If padding
// is non-zero on non-spatial axes, return NullOpt.
// is non-zero on non-spatial axes, return std::nullopt.
ICHECK(param);
ICHECK(data_layout.size() == param->pad_width.size())
<< "Data Layout and padding attributes should have the same extent";
Expand All @@ -196,7 +199,7 @@ class SimplifyExplicitPad {
if (!image_dims.count(data_layout[i])) {
for (size_t j = 0; j < param->pad_width[i].size(); ++j) {
if (param->pad_width[i][j] != 0) {
return NullOpt;
return std::nullopt;
}
}
}
Expand Down
35 changes: 17 additions & 18 deletions src/relay/transforms/pattern_utils.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
#define TVM_RELAY_TRANSFORMS_PATTERN_UTILS_H_

#include <builtin_fp16.h>
#include <dmlc/optional.h>
#include <tvm/node/structural_equal.h>
#include <tvm/relay/analysis.h>
#include <tvm/relay/attrs/nn.h>
Expand All @@ -40,6 +39,7 @@
#include <tvm/tir/data_layout.h>

#include <limits>
#include <optional>
#include <string>
#include <utility>
#include <vector>
Expand Down Expand Up @@ -405,48 +405,47 @@ inline bool IsEqualScalar(const Expr& a, const Expr& b) {
* \param i element index
* \return Converted scalar value, or None if conversion failed
*/
static inline dmlc::optional<long double> TryToScalar(const runtime::NDArray& array, size_t i = 0) {
static inline std::optional<long double> TryToScalar(const runtime::NDArray& array, size_t i = 0) {
if (array->dtype.code == kDLInt) {
if (array->dtype.bits == 8) {
return dmlc::optional<long double>(reinterpret_cast<int8_t*>(array->data)[i]);
return std::optional<long double>(reinterpret_cast<int8_t*>(array->data)[i]);
} else if (array->dtype.bits == 16) {
return dmlc::optional<long double>(reinterpret_cast<int16_t*>(array->data)[i]);
return std::optional<long double>(reinterpret_cast<int16_t*>(array->data)[i]);
} else if (array->dtype.bits == 32) {
return dmlc::optional<long double>(reinterpret_cast<int32_t*>(array->data)[i]);
return std::optional<long double>(reinterpret_cast<int32_t*>(array->data)[i]);
} else if (array->dtype.bits == 64) {
return dmlc::optional<long double>(reinterpret_cast<int64_t*>(array->data)[i]);
return std::optional<long double>(reinterpret_cast<int64_t*>(array->data)[i]);
}
} else if (array->dtype.code == kDLUInt) {
if (array->dtype.bits == 1) { // bool
return dmlc::optional<long double>(reinterpret_cast<uint8_t*>(array->data)[i]);
return std::optional<long double>(reinterpret_cast<uint8_t*>(array->data)[i]);
} else if (array->dtype.bits == 8) {
return dmlc::optional<long double>(reinterpret_cast<uint8_t*>(array->data)[i]);
return std::optional<long double>(reinterpret_cast<uint8_t*>(array->data)[i]);
} else if (array->dtype.bits == 16) {
return dmlc::optional<long double>(reinterpret_cast<uint16_t*>(array->data)[i]);
return std::optional<long double>(reinterpret_cast<uint16_t*>(array->data)[i]);
} else if (array->dtype.bits == 32) {
return dmlc::optional<long double>(reinterpret_cast<uint32_t*>(array->data)[i]);
return std::optional<long double>(reinterpret_cast<uint32_t*>(array->data)[i]);
} else if (array->dtype.bits == 64) {
return dmlc::optional<long double>(reinterpret_cast<uint64_t*>(array->data)[i]);
return std::optional<long double>(reinterpret_cast<uint64_t*>(array->data)[i]);
}
} else if (array->dtype.code == kDLFloat) {
if (array->dtype.bits == 16) {
return dmlc::optional<long double>(
return std::optional<long double>(
__extendXfYf2__<uint16_t, uint16_t, 10, float, uint32_t, 23>(
reinterpret_cast<uint16_t*>(array->data)[i]));
}
if (array->dtype.bits == 32) {
return dmlc::optional<long double>(reinterpret_cast<float*>(array->data)[i]);
return std::optional<long double>(reinterpret_cast<float*>(array->data)[i]);
} else if (array->dtype.bits == 64) {
return dmlc::optional<long double>(reinterpret_cast<double*>(array->data)[i]);
return std::optional<long double>(reinterpret_cast<double*>(array->data)[i]);
}
} else if (array->dtype.code == kDLBfloat) {
if (array->dtype.bits == 16) {
return dmlc::optional<long double>(
__extendXfYf2__<uint16_t, uint16_t, 7, float, uint32_t, 23>(
reinterpret_cast<uint16_t*>(array->data)[i]));
return std::optional<long double>(__extendXfYf2__<uint16_t, uint16_t, 7, float, uint32_t, 23>(
reinterpret_cast<uint16_t*>(array->data)[i]));
}
}
return dmlc::optional<long double>();
return std::nullopt;
}

/*!
Expand Down
Loading