Remove dependency on private absl/base:endian.

PiperOrigin-RevId: 825772784
This commit is contained in:
A. Unique TensorFlower 2025-10-29 17:18:28 -07:00 committed by TensorFlower Gardener
parent d4b7f15aee
commit 9511b51e61
3 changed files with 21 additions and 12 deletions

View File

@ -86,7 +86,6 @@ cc_library(
"@com_google_absl//absl/algorithm:container",
"@com_google_absl//absl/base",
"@com_google_absl//absl/base:core_headers",
"@com_google_absl//absl/base:endian",
"@com_google_absl//absl/cleanup",
"@com_google_absl//absl/container:flat_hash_map",
"@com_google_absl//absl/container:inlined_vector",
@ -167,9 +166,9 @@ xla_cc_test(
"//xla/tsl/platform:test_benchmark",
"//xla/tsl/platform:test_main", # fixdeps: keep
"@com_google_absl//absl/algorithm:container",
"@com_google_absl//absl/base:endian",
"@com_google_absl//absl/container:flat_hash_set",
"@com_google_absl//absl/log:check",
"@com_google_absl//absl/numeric:bits",
"@com_google_absl//absl/status",
"@com_google_absl//absl/status:statusor",
"@com_google_absl//absl/strings",

View File

@ -35,7 +35,6 @@ limitations under the License.
#include <vector>
#include "absl/algorithm/container.h"
#include "absl/base/internal/endian.h"
#include "absl/cleanup/cleanup.h"
#include "absl/container/flat_hash_map.h"
#include "absl/container/inlined_vector.h"
@ -236,10 +235,15 @@ absl::Status MakeEvalErrorDueToParamOrInfeed(
eval_instruction.parent()->name(), ")."));
std::string error_payload;
error_payload.resize(sizeof(internal::EvalErrorDetail));
absl::little_endian::Store32(
const_cast<char*>(error_payload.data()),
static_cast<uint32_t>(
internal::EvalErrorDetail::kDynamicValueDependence));
uint32_t error_detail =
static_cast<uint32_t>(internal::EvalErrorDetail::kDynamicValueDependence);
// Ensure that the error detail is also in little endian.
if constexpr (absl::endian::native != absl::endian::little) {
DCHECK(absl::endian::native == absl::endian::big);
error_detail = absl::byteswap(error_detail);
}
(*error_payload.data()) = error_detail;
error.SetPayload(internal::kEvalErrorDetailUrl, absl::Cord(error_payload));
return error;
}

View File

@ -27,9 +27,9 @@ limitations under the License.
#include <vector>
#include "absl/algorithm/container.h"
#include "absl/base/internal/endian.h"
#include "absl/container/flat_hash_set.h"
#include "absl/log/check.h"
#include "absl/numeric/bits.h"
#include "absl/status/status.h"
#include "absl/status/statusor.h"
#include "absl/strings/str_format.h"
@ -7662,10 +7662,16 @@ TEST(EvalErrorTest, Payload) {
absl::Status s = absl::InternalError("hmm");
std::string payload;
payload.resize(sizeof(internal::EvalErrorDetail));
absl::little_endian::Store32(
const_cast<char*>(payload.data()),
static_cast<uint32_t>(
internal::EvalErrorDetail::kDynamicValueDependence));
uint32_t error_detail =
static_cast<uint32_t>(internal::EvalErrorDetail::kDynamicValueDependence);
// Ensure that the error detail is also in little endian.
if constexpr (absl::endian::native != absl::endian::little) {
DCHECK(absl::endian::native == absl::endian::big);
error_detail = absl::byteswap(error_detail);
}
(*payload.data()) = error_detail;
s.SetPayload(internal::kEvalErrorDetailUrl, absl::Cord(payload));
EXPECT_EQ(internal::ParseEvalErrorDetail(s),