From: Arnaud Giersch Date: Sun, 10 Mar 2019 17:50:42 +0000 (+0100) Subject: Don't use pass-by-value for large parameters. X-Git-Tag: v3_22~126 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/08a29a4221dc5cec95b766cd9b25c95dcc361df9?ds=inline Don't use pass-by-value for large parameters. --- diff --git a/src/mc/mc_global.cpp b/src/mc/mc_global.cpp index f85660aa71..0dfb9f89b7 100644 --- a/src/mc/mc_global.cpp +++ b/src/mc/mc_global.cpp @@ -122,7 +122,7 @@ void MC_automaton_load(const char *file) namespace simgrid { namespace mc { -void dumpStack(FILE* file, unw_cursor_t cursor) +void dumpStack(FILE* file, unw_cursor_t&& cursor) { int nframe = 0; char buffer[100]; @@ -165,7 +165,7 @@ static void MC_dump_stacks(FILE* file) context.initialize(&mc_model_checker->process(), &raw_context); unw_cursor_t cursor = context.cursor(); - simgrid::mc::dumpStack(file, cursor); + simgrid::mc::dumpStack(file, std::move(cursor)); } } #endif diff --git a/src/mc/mc_unw.hpp b/src/mc/mc_unw.hpp index 4e949d4139..aedcf7e98d 100644 --- a/src/mc/mc_unw.hpp +++ b/src/mc/mc_unw.hpp @@ -75,7 +75,7 @@ public: static unw_addr_space_t createUnwindAddressSpace(); }; -void dumpStack(FILE* file, unw_cursor_t cursor); +void dumpStack(FILE* file, unw_cursor_t&& cursor); void dumpStack(FILE* file, pid_t pid); } } diff --git a/src/mc/remote/RemoteClient.cpp b/src/mc/remote/RemoteClient.cpp index 9275ec5dd4..9904e035cf 100644 --- a/src/mc/remote/RemoteClient.cpp +++ b/src/mc/remote/RemoteClient.cpp @@ -628,7 +628,7 @@ void RemoteClient::dumpStack() return; } - simgrid::mc::dumpStack(stderr, cursor); + simgrid::mc::dumpStack(stderr, std::move(cursor)); _UPT_destroy(context); unw_destroy_addr_space(as); diff --git a/src/mc/sosp/RegionSnapshot.hpp b/src/mc/sosp/RegionSnapshot.hpp index 4e051c4958..d1011aff9f 100644 --- a/src/mc/sosp/RegionSnapshot.hpp +++ b/src/mc/sosp/RegionSnapshot.hpp @@ -205,7 +205,7 @@ public: const Buffer& flat_data() const { return flat_data_; } Buffer& flat_data() { return flat_data_; } - void page_data(ChunkedData page_data) + void page_data(ChunkedData&& page_data) { storage_type_ = StorageType::Chunked; flat_data_.clear(); diff --git a/src/msg/msg_private.hpp b/src/msg/msg_private.hpp index adf3cc3c6f..ab765463f3 100644 --- a/src/msg/msg_private.hpp +++ b/src/msg/msg_private.hpp @@ -29,8 +29,8 @@ class Task { bool is_used_ = false; /* Indicates whether the task is used in SIMIX currently */ explicit Task(std::string name, double flops_amount, double bytes_amount, void* data); - explicit Task(std::string name, std::vector hosts, std::vector flops_amount, - std::vector bytes_amount, void* data); + explicit Task(std::string name, std::vector&& hosts, std::vector&& flops_amount, + std::vector&& bytes_amount, void* data); void report_multiple_use() const; diff --git a/src/msg/msg_task.cpp b/src/msg/msg_task.cpp index 5fa41d17db..8068a8d9eb 100644 --- a/src/msg/msg_task.cpp +++ b/src/msg/msg_task.cpp @@ -27,8 +27,8 @@ Task::Task(std::string name, double flops_amount, double bytes_amount, void* dat MC_ignore_heap(&(id_), sizeof(id_)); } -Task::Task(std::string name, std::vector hosts, std::vector flops_amount, - std::vector bytes_amount, void* data) +Task::Task(std::string name, std::vector&& hosts, std::vector&& flops_amount, + std::vector&& bytes_amount, void* data) : Task(std::move(name), 1.0, 0, data) { parallel_ = true;