liveRegs copied when it could be moved
Categories
(Core :: JavaScript Engine: JIT, enhancement, P3)
Tracking
()
People
(Reporter: jesup, Unassigned)
References
(Blocks 1 open bug)
Details
** CID 1547070: Performance inefficiencies (COPY_INSTEAD_OF_MOVE)
/js/src/jit/CodeGenerator.cpp: 13776 in js::jit::CodeGenerator::visitOptimizeGetIteratorCache(js::jit::LOptimizeGetIteratorCache *)()
*** CID 1547070: Performance inefficiencies (COPY_INSTEAD_OF_MOVE)
/js/src/jit/CodeGenerator.cpp: 13776 in js::jit::CodeGenerator::visitOptimizeGetIteratorCache(js::jit::LOptimizeGetIteratorCache )()
13770 LOptimizeGetIteratorCache lir) {
13771 LiveRegisterSet liveRegs = lir->safepoint()->liveRegs();
13772 ValueOperand val = ToValue(lir, LOptimizeGetIteratorCache::ValueIndex);
13773 Register output = ToRegister(lir->output());
13774 Register temp = ToRegister(lir->temp0());
13775
CID 1547070: Performance inefficiencies (COPY_INSTEAD_OF_MOVE) "liveRegs" is copied in call to copy constructor "js::jit::LiveSet<js::jit::RegisterSet>", when it could be moved instead.
13776 IonOptimizeGetIteratorIC ic(liveRegs, val, output, temp);
13777 addIC(lir, allocateIC(ic));
13778 }
13779
13780 void CodeGenerator::visitIteratorMore(LIteratorMore* lir) {
13781 const Register obj = ToRegister(lir->iterator());
** CID 1547069: Performance inefficiencies (COPY_INSTEAD_OF_MOVE)
/js/src/jit/IonIC.h: 676 in js::jit::IonOptimizeGetIteratorIC::IonOptimizeGetIteratorIC(js::jit::LiveSet<js::jit::RegisterSet>, js::jit::ValueOperand, js::jit::Register, js::jit::Register)()
*** CID 1547069: Performance inefficiencies (COPY_INSTEAD_OF_MOVE)
/js/src/jit/IonIC.h: 676 in js::jit::IonOptimizeGetIteratorIC::IonOptimizeGetIteratorIC(js::jit::LiveSet<js::jit::RegisterSet>, js::jit::ValueOperand, js::jit::Register, js::jit::Register)()
670 Register temp_;
671
672 public:
673 IonOptimizeGetIteratorIC(LiveRegisterSet liveRegs, ValueOperand value,
674 Register output, Register temp)
675 : IonIC(CacheKind::OptimizeGetIterator),
CID 1547069: Performance inefficiencies (COPY_INSTEAD_OF_MOVE) "liveRegs" is copied in call to copy constructor "js::jit::LiveSet<js::jit::RegisterSet>", when it could be moved instead.
676 liveRegs_(liveRegs),
677 value_(value),
678 output_(output),
679 temp_(temp) {}
680
681 ValueOperand value() const { return value_; }
Updated•2 years ago
|
Updated•2 years ago
|
Description
•