mirror of
https://github.com/zebrajr/tensorflow.git
synced 2025-12-07 12:20:24 +01:00
Change function parameters to references to avoid copying, or otherwise move from function parameters when moving reduces the amount of copying.
PiperOrigin-RevId: 157867333
This commit is contained in:
parent
4905c0eae4
commit
f4b8d21b8e
|
|
@ -15,6 +15,8 @@ limitations under the License.
|
||||||
|
|
||||||
#include "tensorflow/cc/framework/testutil.h"
|
#include "tensorflow/cc/framework/testutil.h"
|
||||||
|
|
||||||
|
#include <utility>
|
||||||
|
|
||||||
#include "tensorflow/cc/client/client_session.h"
|
#include "tensorflow/cc/client/client_session.h"
|
||||||
#include "tensorflow/core/framework/tensor_testutil.h"
|
#include "tensorflow/core/framework/tensor_testutil.h"
|
||||||
#include "tensorflow/core/graph/default_device.h"
|
#include "tensorflow/core/graph/default_device.h"
|
||||||
|
|
@ -30,7 +32,7 @@ void GetTensors(const Scope& scope, OutputList tensors,
|
||||||
|
|
||||||
void GetTensor(const Scope& scope, Output tensor, Tensor* out) {
|
void GetTensor(const Scope& scope, Output tensor, Tensor* out) {
|
||||||
std::vector<Tensor> outputs;
|
std::vector<Tensor> outputs;
|
||||||
GetTensors(scope, {tensor}, &outputs);
|
GetTensors(scope, {std::move(tensor)}, &outputs);
|
||||||
*out = outputs[0];
|
*out = outputs[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,8 @@ See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
==============================================================================*/
|
==============================================================================*/
|
||||||
|
|
||||||
|
#include <utility>
|
||||||
|
|
||||||
#include "tensorflow/compiler/jit/encapsulate_subgraphs_pass.h"
|
#include "tensorflow/compiler/jit/encapsulate_subgraphs_pass.h"
|
||||||
|
|
||||||
#include "tensorflow/cc/framework/ops.h"
|
#include "tensorflow/cc/framework/ops.h"
|
||||||
|
|
@ -101,12 +103,12 @@ Node* Input(const GraphDefBuilder::Options& opts) {
|
||||||
}
|
}
|
||||||
|
|
||||||
Node* Unary(ops::NodeOut a, const GraphDefBuilder::Options& opts) {
|
Node* Unary(ops::NodeOut a, const GraphDefBuilder::Options& opts) {
|
||||||
return ops::UnaryOp("UnaryTest", a, opts);
|
return ops::UnaryOp("UnaryTest", std::move(a), opts);
|
||||||
}
|
}
|
||||||
|
|
||||||
Node* Binary(ops::NodeOut a, ops::NodeOut b,
|
Node* Binary(ops::NodeOut a, ops::NodeOut b,
|
||||||
const GraphDefBuilder::Options& opts) {
|
const GraphDefBuilder::Options& opts) {
|
||||||
return ops::BinaryOp("BinaryTest", a, b, opts);
|
return ops::BinaryOp("BinaryTest", std::move(a), std::move(b), opts);
|
||||||
}
|
}
|
||||||
|
|
||||||
Node* AddNLike(const std::vector<ops::NodeOut>& inputs,
|
Node* AddNLike(const std::vector<ops::NodeOut>& inputs,
|
||||||
|
|
@ -127,7 +129,7 @@ Node* RetOp(int index, ops::NodeOut a, const GraphDefBuilder::Options& opts) {
|
||||||
if (opts.HaveError()) return nullptr;
|
if (opts.HaveError()) return nullptr;
|
||||||
NodeBuilder node_builder(opts.GetNameForOp("Retval"), "_Retval",
|
NodeBuilder node_builder(opts.GetNameForOp("Retval"), "_Retval",
|
||||||
opts.op_registry());
|
opts.op_registry());
|
||||||
node_builder.Input(a).Attr("index", index);
|
node_builder.Input(std::move(a)).Attr("index", index);
|
||||||
return opts.FinalizeBuilder(&node_builder);
|
return opts.FinalizeBuilder(&node_builder);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ limitations under the License.
|
||||||
#include "tensorflow/compiler/xla/client/global_data.h"
|
#include "tensorflow/compiler/xla/client/global_data.h"
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include <utility>
|
||||||
|
|
||||||
#include "tensorflow/compiler/xla/types.h"
|
#include "tensorflow/compiler/xla/types.h"
|
||||||
#include "tensorflow/core/platform/logging.h"
|
#include "tensorflow/core/platform/logging.h"
|
||||||
|
|
@ -23,7 +24,7 @@ limitations under the License.
|
||||||
namespace xla {
|
namespace xla {
|
||||||
|
|
||||||
GlobalData::GlobalData(ServiceInterface* parent, GlobalDataHandle handle)
|
GlobalData::GlobalData(ServiceInterface* parent, GlobalDataHandle handle)
|
||||||
: handle_(handle), parent_(parent) {}
|
: handle_(std::move(handle)), parent_(parent) {}
|
||||||
|
|
||||||
GlobalData::~GlobalData() {
|
GlobalData::~GlobalData() {
|
||||||
UnregisterRequest request;
|
UnregisterRequest request;
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ limitations under the License.
|
||||||
#include "tensorflow/compiler/xla/reference_util.h"
|
#include "tensorflow/compiler/xla/reference_util.h"
|
||||||
|
|
||||||
#include <array>
|
#include <array>
|
||||||
|
#include <utility>
|
||||||
|
|
||||||
#include "tensorflow/compiler/xla/client/computation_builder.h"
|
#include "tensorflow/compiler/xla/client/computation_builder.h"
|
||||||
#include "tensorflow/compiler/xla/service/cpu/runtime_single_threaded_matmul.h"
|
#include "tensorflow/compiler/xla/service/cpu/runtime_single_threaded_matmul.h"
|
||||||
|
|
@ -331,7 +332,8 @@ ReferenceUtil::ConvArray4DGeneralDimensions(
|
||||||
std::pair<int64, int64> kernel_stride, Padding padding,
|
std::pair<int64, int64> kernel_stride, Padding padding,
|
||||||
ConvolutionDimensionNumbers dimension_numbers) {
|
ConvolutionDimensionNumbers dimension_numbers) {
|
||||||
return ConvArray4DGeneralDimensionsDilated(lhs, rhs, kernel_stride, padding,
|
return ConvArray4DGeneralDimensionsDilated(lhs, rhs, kernel_stride, padding,
|
||||||
{1, 1}, {1, 1}, dimension_numbers);
|
{1, 1}, {1, 1},
|
||||||
|
std::move(dimension_numbers));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* static */ std::unique_ptr<Array4D<float>>
|
/* static */ std::unique_ptr<Array4D<float>>
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ AsyncExecution::AsyncExecution(Backend* backend,
|
||||||
: backend_(CHECK_NOTNULL(backend)),
|
: backend_(CHECK_NOTNULL(backend)),
|
||||||
streams_(std::move(streams)),
|
streams_(std::move(streams)),
|
||||||
profile_(profile),
|
profile_(profile),
|
||||||
result_(result) {
|
result_(std::move(result)) {
|
||||||
for (const auto& stream : streams_) {
|
for (const auto& stream : streams_) {
|
||||||
CHECK(stream != nullptr);
|
CHECK(stream != nullptr);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -122,7 +122,7 @@ bool CompareShapes(const Shape& lhs, const Shape& rhs, bool compare_layouts) {
|
||||||
for (const auto& shape : parameters) {
|
for (const auto& shape : parameters) {
|
||||||
*program_shape.add_parameters() = shape;
|
*program_shape.add_parameters() = shape;
|
||||||
}
|
}
|
||||||
*program_shape.mutable_result() = result;
|
*program_shape.mutable_result() = std::move(result);
|
||||||
return program_shape;
|
return program_shape;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -375,8 +375,8 @@ class NearestNeighborsOp : public OpKernel {
|
||||||
const Eigen::Ref<const Eigen::VectorXf>& points_half_squared_norm,
|
const Eigen::Ref<const Eigen::VectorXf>& points_half_squared_norm,
|
||||||
const Eigen::Ref<const MatrixXfRowMajor>& centers,
|
const Eigen::Ref<const MatrixXfRowMajor>& centers,
|
||||||
const Eigen::Ref<const Eigen::VectorXf>& centers_half_squared_norm,
|
const Eigen::Ref<const Eigen::VectorXf>& centers_half_squared_norm,
|
||||||
Eigen::Ref<MatrixXi64RowMajor> nearest_center_indices,
|
const Eigen::Ref<MatrixXi64RowMajor>& nearest_center_indices,
|
||||||
Eigen::Ref<MatrixXfRowMajor> nearest_center_distances) {
|
const Eigen::Ref<MatrixXfRowMajor>& nearest_center_distances) {
|
||||||
CHECK_LE(k, centers.rows());
|
CHECK_LE(k, centers.rows());
|
||||||
if (centers.rows() <= kNearestNeighborsCentersMaxBlockSize) {
|
if (centers.rows() <= kNearestNeighborsCentersMaxBlockSize) {
|
||||||
FindKNearestCentersOneBlock(k, points, points_half_squared_norm, centers,
|
FindKNearestCentersOneBlock(k, points, points_half_squared_norm, centers,
|
||||||
|
|
|
||||||
|
|
@ -270,7 +270,7 @@ class SessionBundleTest : public ::testing::Test {
|
||||||
// MetaGraphDef.
|
// MetaGraphDef.
|
||||||
// Returns the path of the export.
|
// Returns the path of the export.
|
||||||
// ** Should only be called once per test **
|
// ** Should only be called once per test **
|
||||||
string SetupExport(MetaGraphDefTwiddler twiddler) {
|
string SetupExport(const MetaGraphDefTwiddler& twiddler) {
|
||||||
return SetupExport(twiddler, kVariablesFilename, kMetaGraphDefFilename);
|
return SetupExport(twiddler, kVariablesFilename, kMetaGraphDefFilename);
|
||||||
}
|
}
|
||||||
// SetupExport that allows for the variables and meta_graph_def filenames
|
// SetupExport that allows for the variables and meta_graph_def filenames
|
||||||
|
|
|
||||||
|
|
@ -456,7 +456,8 @@ class OpKernelBuilderTest : public ::testing::Test {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
string GetKernelClassName(const string& op_type, DeviceType device_type,
|
string GetKernelClassName(const string& op_type,
|
||||||
|
const DeviceType& device_type,
|
||||||
const std::vector<string>& attrs,
|
const std::vector<string>& attrs,
|
||||||
DataTypeSlice input_types = {}) {
|
DataTypeSlice input_types = {}) {
|
||||||
NodeDef def = CreateNodeDef(op_type, attrs);
|
NodeDef def = CreateNodeDef(op_type, attrs);
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,8 @@ limitations under the License.
|
||||||
|
|
||||||
#include "tensorflow/core/graph/graph_def_builder.h"
|
#include "tensorflow/core/graph/graph_def_builder.h"
|
||||||
|
|
||||||
|
#include <utility>
|
||||||
|
|
||||||
#include "tensorflow/core/graph/graph_constructor.h"
|
#include "tensorflow/core/graph/graph_constructor.h"
|
||||||
#include "tensorflow/core/graph/tensor_id.h"
|
#include "tensorflow/core/graph/tensor_id.h"
|
||||||
#include "tensorflow/core/lib/core/errors.h"
|
#include "tensorflow/core/lib/core/errors.h"
|
||||||
|
|
@ -119,7 +121,7 @@ Node* UnaryOp(const string& op_name, NodeOut input,
|
||||||
if (opts.HaveError()) return nullptr;
|
if (opts.HaveError()) return nullptr;
|
||||||
NodeBuilder node_builder(opts.GetNameForOp(op_name), op_name,
|
NodeBuilder node_builder(opts.GetNameForOp(op_name), op_name,
|
||||||
opts.op_registry());
|
opts.op_registry());
|
||||||
node_builder.Input(input);
|
node_builder.Input(std::move(input));
|
||||||
return opts.FinalizeBuilder(&node_builder);
|
return opts.FinalizeBuilder(&node_builder);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -128,7 +130,7 @@ Node* BinaryOp(const string& op_name, NodeOut a, NodeOut b,
|
||||||
if (opts.HaveError()) return nullptr;
|
if (opts.HaveError()) return nullptr;
|
||||||
NodeBuilder node_builder(opts.GetNameForOp(op_name), op_name,
|
NodeBuilder node_builder(opts.GetNameForOp(op_name), op_name,
|
||||||
opts.op_registry());
|
opts.op_registry());
|
||||||
node_builder.Input(a).Input(b);
|
node_builder.Input(std::move(a)).Input(std::move(b));
|
||||||
return opts.FinalizeBuilder(&node_builder);
|
return opts.FinalizeBuilder(&node_builder);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@ limitations under the License.
|
||||||
|
|
||||||
#include <deque>
|
#include <deque>
|
||||||
#include <unordered_map>
|
#include <unordered_map>
|
||||||
|
#include <utility>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "tensorflow/core/framework/memory_types.h"
|
#include "tensorflow/core/framework/memory_types.h"
|
||||||
|
|
@ -392,7 +393,8 @@ Node* AddControlMerge(const string& in_name1, const string& in_name2, Graph* g,
|
||||||
Node* AddControlSwitch(NodeBuilder::NodeOut input1, NodeBuilder::NodeOut input2,
|
Node* AddControlSwitch(NodeBuilder::NodeOut input1, NodeBuilder::NodeOut input2,
|
||||||
const string& device_name,
|
const string& device_name,
|
||||||
const GraphDefBuilder::Options& bopts) {
|
const GraphDefBuilder::Options& bopts) {
|
||||||
Node* res_node = ops::BinaryOp("Switch", input1, input2, bopts);
|
Node* res_node =
|
||||||
|
ops::BinaryOp("Switch", std::move(input1), std::move(input2), bopts);
|
||||||
if (bopts.HaveError()) return nullptr;
|
if (bopts.HaveError()) return nullptr;
|
||||||
res_node->set_assigned_device_name(device_name);
|
res_node->set_assigned_device_name(device_name);
|
||||||
return res_node;
|
return res_node;
|
||||||
|
|
@ -401,7 +403,7 @@ Node* AddControlSwitch(NodeBuilder::NodeOut input1, NodeBuilder::NodeOut input2,
|
||||||
// A next_iteration node for control flow.
|
// A next_iteration node for control flow.
|
||||||
Node* AddControlNext(NodeBuilder::NodeOut input, const string& device_name,
|
Node* AddControlNext(NodeBuilder::NodeOut input, const string& device_name,
|
||||||
const GraphDefBuilder::Options& bopts) {
|
const GraphDefBuilder::Options& bopts) {
|
||||||
Node* res_node = ops::UnaryOp("NextIteration", input, bopts);
|
Node* res_node = ops::UnaryOp("NextIteration", std::move(input), bopts);
|
||||||
if (bopts.HaveError()) return nullptr;
|
if (bopts.HaveError()) return nullptr;
|
||||||
res_node->set_assigned_device_name(device_name);
|
res_node->set_assigned_device_name(device_name);
|
||||||
return res_node;
|
return res_node;
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ limitations under the License.
|
||||||
#include "tensorflow/core/graph/graph_partition.h"
|
#include "tensorflow/core/graph/graph_partition.h"
|
||||||
|
|
||||||
#include <unordered_map>
|
#include <unordered_map>
|
||||||
|
#include <utility>
|
||||||
|
|
||||||
#include "tensorflow/cc/ops/array_ops.h"
|
#include "tensorflow/cc/ops/array_ops.h"
|
||||||
#include "tensorflow/cc/ops/const_op.h"
|
#include "tensorflow/cc/ops/const_op.h"
|
||||||
|
|
@ -159,7 +160,7 @@ Output BoolInput(const Scope& scope) {
|
||||||
}
|
}
|
||||||
|
|
||||||
Output Combine(const Scope& scope, Input a, Input b) {
|
Output Combine(const Scope& scope, Input a, Input b) {
|
||||||
return ConstructOp(scope, "Combine", {a, b});
|
return ConstructOp(scope, "Combine", {std::move(a), std::move(b)});
|
||||||
}
|
}
|
||||||
|
|
||||||
class GraphPartitionTest : public ::testing::Test {
|
class GraphPartitionTest : public ::testing::Test {
|
||||||
|
|
|
||||||
|
|
@ -86,7 +86,7 @@ class OptimizerCSETest : public ::testing::Test {
|
||||||
str_util::Join(edges, ";"));
|
str_util::Join(edges, ";"));
|
||||||
}
|
}
|
||||||
|
|
||||||
string DoCSE(std::function<bool(const Node*)> consider_fn = nullptr) {
|
string DoCSE(const std::function<bool(const Node*)>& consider_fn = nullptr) {
|
||||||
string before = CanonicalGraphString(&graph_);
|
string before = CanonicalGraphString(&graph_);
|
||||||
LOG(ERROR) << "Before rewrites: " << before;
|
LOG(ERROR) << "Before rewrites: " << before;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,8 @@ See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
==============================================================================*/
|
==============================================================================*/
|
||||||
|
|
||||||
|
#include <utility>
|
||||||
|
|
||||||
#include "tensorflow/core/util/equal_graph_def.h"
|
#include "tensorflow/core/util/equal_graph_def.h"
|
||||||
|
|
||||||
#include "tensorflow/core/framework/node_def_util.h"
|
#include "tensorflow/core/framework/node_def_util.h"
|
||||||
|
|
@ -40,7 +42,7 @@ Node* Alternate(const GraphDefBuilder::Options& opts) {
|
||||||
|
|
||||||
Node* Combine(ops::NodeOut a, ops::NodeOut b,
|
Node* Combine(ops::NodeOut a, ops::NodeOut b,
|
||||||
const GraphDefBuilder::Options& opts) {
|
const GraphDefBuilder::Options& opts) {
|
||||||
return ops::BinaryOp("Combine", a, b, opts);
|
return ops::BinaryOp("Combine", std::move(a), std::move(b), opts);
|
||||||
}
|
}
|
||||||
|
|
||||||
class EqualGraphDefTest : public ::testing::Test {
|
class EqualGraphDefTest : public ::testing::Test {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user