Commit fcfd711c authored by Kevin Modzelewski's avatar Kevin Modzelewski

Reduce std::function copies

parent bbc95869
...@@ -278,7 +278,7 @@ class RewriterAction { ...@@ -278,7 +278,7 @@ class RewriterAction {
public: public:
std::function<void()> action; std::function<void()> action;
RewriterAction(std::function<void()> f) : action(f) {} RewriterAction(std::function<void()> f) : action(std::move(f)) {}
}; };
enum class ActionType { NORMAL, GUARD, MUTATION }; enum class ActionType { NORMAL, GUARD, MUTATION };
...@@ -349,7 +349,7 @@ protected: ...@@ -349,7 +349,7 @@ protected:
Rewriter(std::unique_ptr<ICSlotRewrite> rewrite, int num_args, const std::vector<int>& live_outs); Rewriter(std::unique_ptr<ICSlotRewrite> rewrite, int num_args, const std::vector<int>& live_outs);
std::vector<RewriterAction> actions; std::vector<RewriterAction> actions;
void addAction(const std::function<void()>& action, std::vector<RewriterVar*> const& vars, ActionType type) { void addAction(std::function<void()> action, std::vector<RewriterVar*> const& vars, ActionType type) {
assertPhaseCollecting(); assertPhaseCollecting();
for (RewriterVar* var : vars) { for (RewriterVar* var : vars) {
assert(var != NULL); assert(var != NULL);
...@@ -368,7 +368,7 @@ protected: ...@@ -368,7 +368,7 @@ protected:
assert(!added_changing_action); assert(!added_changing_action);
last_guard_action = (int)actions.size(); last_guard_action = (int)actions.size();
} }
actions.emplace_back(action); actions.emplace_back(std::move(action));
} }
bool added_changing_action; bool added_changing_action;
bool marked_inside_ic; bool marked_inside_ic;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment