|
|
DescriptionSplit BindStateBase ctor for non-cancellable Bind
http://crrev.com/59aa6bb1162b31d2 added a parameter of BindStateBase,
and that causes 0.8% (40kB) binary size bloat on cronet, by adding
a new instruction to the constructor invocation at BindState ctor.
To reduce the binary size, this CL splits BindStateBase into two: one
for cancellable bind and another for non-cancellable one, so that
non-cancellable bind doesn't need to pass an extra argument to
BindStateBase.
This reduces the stripped binary size of chrome on Linux by 56kB.
Committed: https://crrev.com/1fdcca3da07639548c7f37fab1c9d6c93541e4a9
Cr-Commit-Position: refs/heads/master@{#418502}
Patch Set 1 #
Total comments: 2
Patch Set 2 : +comment #Patch Set 3 : s/IsCancellable/IsCancellableType/ #Patch Set 4 : revert to PS2 #
Messages
Total messages: 32 (19 generated)
The CQ bit was checked by tzik@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Description was changed from ========== Split BindStateBase ctor for non-cancellable Bind ========== to ========== Split BindStateBase ctor for non-cancellable Bind http://crrev.com/59aa6bb1162b31d2 added a parameter of BindStateBase, and that causes 0.8% (40kB) binary size bloat on cronet, by adding a new instruction to the constructor invocation at BindState ctor. To reduce the binary size, this CL splits BindStateBase into two: one for cancellable bind and another for non-cancellable one, so that non-cancellable bind doesn't need to pass an extra argument to BindStateBase. This reduces the stripped binary size of chrome on Linux by 56kB. ==========
tzik@chromium.org changed reviewers: + dcheng@chromium.org, kapishnikov@chromium.org
PTAL
LGTM but I don't think I am an owner. It would be good if somebody else can take a look.
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
https://codereview.chromium.org/2322313002/diff/1/base/bind_internal.h File base/bind_internal.h (right): https://codereview.chromium.org/2322313002/diff/1/base/bind_internal.h#newcod... base/bind_internal.h:423: : BindState(IsCancellable(), Is this a C++14ism? How does it work with our toolchain? =)
https://codereview.chromium.org/2322313002/diff/1/base/bind_internal.h File base/bind_internal.h (right): https://codereview.chromium.org/2322313002/diff/1/base/bind_internal.h#newcod... base/bind_internal.h:423: : BindState(IsCancellable(), On 2016/09/09 20:39:01, dcheng wrote: > Is this a C++14ism? How does it work with our toolchain? =) Also, see https://github.com/llvm-mirror/libcxx/blob/master/include/type_traits#L505
It's not operator() call in C++14. Just a instantiation by a constructor call, which is in C++11. 2016/09/10 5:39 <dcheng@chromium.org>: https://codereview.chromium.org/2322313002/diff/1/base/bind_internal.h File base/bind_internal.h (right): https://codereview.chromium.org/2322313002/diff/1/base/ bind_internal.h#newcode423 base/bind_internal.h:423: : BindState(IsCancellable(), On 2016/09/09 20:39:01, dcheng wrote: > Is this a C++14ism? How does it work with our toolchain? =) Also, see https://github.com/llvm-mirror/libcxx/blob/master/include/type_traits#L505 https://codereview.chromium.org/2322313002/ -- You received this message because you are subscribed to the Google Groups "Chromium-reviews" group. To unsubscribe from this group and stop receiving emails from it, send an email to chromium-reviews+unsubscribe@chromium.org.
On 2016/09/09 23:51:16, tzik wrote: > It's not operator() call in C++14. Just a instantiation by a constructor > call, which is in C++11. Ahh... it's not an actual function object. Can we name this something that doesn't suggest it's a function object then and that it's an actual type that we're instantiating? > > 2016/09/10 5:39 <mailto:dcheng@chromium.org>: > > > https://codereview.chromium.org/2322313002/diff/1/base/bind_internal.h > File base/bind_internal.h (right): > > https://codereview.chromium.org/2322313002/diff/1/base/ > bind_internal.h#newcode423 > base/bind_internal.h:423: : BindState(IsCancellable(), > On 2016/09/09 20:39:01, dcheng wrote: > > Is this a C++14ism? How does it work with our toolchain? =) > > Also, see > https://github.com/llvm-mirror/libcxx/blob/master/include/type_traits#L505 > > https://codereview.chromium.org/2322313002/ > > -- > You received this message because you are subscribed to the Google Groups > "Chromium-reviews" group. > To unsubscribe from this group and stop receiving emails from it, send an email > to mailto:chromium-reviews+unsubscribe@chromium.org.
On 2016/09/10 00:09:13, dcheng wrote: > On 2016/09/09 23:51:16, tzik wrote: > > It's not operator() call in C++14. Just a instantiation by a constructor > > call, which is in C++11. > > Ahh... it's not an actual function object. Can we name this something that > doesn't suggest it's a function object then and that it's an actual type that > we're instantiating? I have no idea for a good and consistent name for this. Can we just use the uniform initialization syntax (IsCancellable{}) and add a comment here? > > > > > 2016/09/10 5:39 <mailto:dcheng@chromium.org>: > > > > > > https://codereview.chromium.org/2322313002/diff/1/base/bind_internal.h > > File base/bind_internal.h (right): > > > > https://codereview.chromium.org/2322313002/diff/1/base/ > > bind_internal.h#newcode423 > > base/bind_internal.h:423: : BindState(IsCancellable(), > > On 2016/09/09 20:39:01, dcheng wrote: > > > Is this a C++14ism? How does it work with our toolchain? =) > > > > Also, see > > https://github.com/llvm-mirror/libcxx/blob/master/include/type_traits#L505 > > > > https://codereview.chromium.org/2322313002/ > > > > -- > > You received this message because you are subscribed to the Google Groups > > "Chromium-reviews" group. > > To unsubscribe from this group and stop receiving emails from it, send an > email > > to mailto:chromium-reviews+unsubscribe@chromium.org.
The CQ bit was checked by tzik@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
On 2016/09/12 08:28:41, tzik wrote: > On 2016/09/10 00:09:13, dcheng wrote: > > On 2016/09/09 23:51:16, tzik wrote: > > > It's not operator() call in C++14. Just a instantiation by a constructor > > > call, which is in C++11. > > > > Ahh... it's not an actual function object. Can we name this something that > > doesn't suggest it's a function object then and that it's an actual type that > > we're instantiating? > > I have no idea for a good and consistent name for this. > Can we just use the uniform initialization syntax (IsCancellable{}) and add a > comment here? > > > > > > > > > 2016/09/10 5:39 <mailto:dcheng@chromium.org>: > > > > > > > > > https://codereview.chromium.org/2322313002/diff/1/base/bind_internal.h > > > File base/bind_internal.h (right): > > > > > > https://codereview.chromium.org/2322313002/diff/1/base/ > > > bind_internal.h#newcode423 > > > base/bind_internal.h:423: : BindState(IsCancellable(), > > > On 2016/09/09 20:39:01, dcheng wrote: > > > > Is this a C++14ism? How does it work with our toolchain? =) > > > > > > Also, see > > > https://github.com/llvm-mirror/libcxx/blob/master/include/type_traits#L505 > > > > > > https://codereview.chromium.org/2322313002/ > > > > > > -- > > > You received this message because you are subscribed to the Google Groups > > > "Chromium-reviews" group. > > > To unsubscribe from this group and stop receiving emails from it, send an > > email > > > to mailto:chromium-reviews+unsubscribe@chromium.org. Would it be bad to just call it IsCancellableType? =)
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
On 2016/09/12 10:09:45, dcheng wrote: > On 2016/09/12 08:28:41, tzik wrote: > > On 2016/09/10 00:09:13, dcheng wrote: > > > On 2016/09/09 23:51:16, tzik wrote: > > > > It's not operator() call in C++14. Just a instantiation by a constructor > > > > call, which is in C++11. > > > > > > Ahh... it's not an actual function object. Can we name this something that > > > doesn't suggest it's a function object then and that it's an actual type > that > > > we're instantiating? > > > > I have no idea for a good and consistent name for this. > > Can we just use the uniform initialization syntax (IsCancellable{}) and add a > > comment here? > > > > > > > > > > > > > 2016/09/10 5:39 <mailto:dcheng@chromium.org>: > > > > > > > > > > > > https://codereview.chromium.org/2322313002/diff/1/base/bind_internal.h > > > > File base/bind_internal.h (right): > > > > > > > > https://codereview.chromium.org/2322313002/diff/1/base/ > > > > bind_internal.h#newcode423 > > > > base/bind_internal.h:423: : BindState(IsCancellable(), > > > > On 2016/09/09 20:39:01, dcheng wrote: > > > > > Is this a C++14ism? How does it work with our toolchain? =) > > > > > > > > Also, see > > > > https://github.com/llvm-mirror/libcxx/blob/master/include/type_traits#L505 > > > > > > > > https://codereview.chromium.org/2322313002/ > > > > > > > > -- > > > > You received this message because you are subscribed to the Google Groups > > > > "Chromium-reviews" group. > > > > To unsubscribe from this group and stop receiving emails from it, send an > > > email > > > > to mailto:chromium-reviews+unsubscribe@chromium.org. > > Would it be bad to just call it IsCancellableType? =) IsCancellableType sounds like "check if the given type is a cancellable type"...
Patchset #3 (id:40001) has been deleted
The CQ bit was checked by tzik@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
On 2016/09/12 11:09:46, tzik wrote: > On 2016/09/12 10:09:45, dcheng wrote: > > On 2016/09/12 08:28:41, tzik wrote: > > > On 2016/09/10 00:09:13, dcheng wrote: > > > > On 2016/09/09 23:51:16, tzik wrote: > > > > > It's not operator() call in C++14. Just a instantiation by a constructor > > > > > call, which is in C++11. > > > > > > > > Ahh... it's not an actual function object. Can we name this something that > > > > doesn't suggest it's a function object then and that it's an actual type > > that > > > > we're instantiating? > > > > > > I have no idea for a good and consistent name for this. > > > Can we just use the uniform initialization syntax (IsCancellable{}) and add > a > > > comment here? > > > > > > > > > > > > > > > > > 2016/09/10 5:39 <mailto:dcheng@chromium.org>: > > > > > > > > > > > > > > > https://codereview.chromium.org/2322313002/diff/1/base/bind_internal.h > > > > > File base/bind_internal.h (right): > > > > > > > > > > https://codereview.chromium.org/2322313002/diff/1/base/ > > > > > bind_internal.h#newcode423 > > > > > base/bind_internal.h:423: : BindState(IsCancellable(), > > > > > On 2016/09/09 20:39:01, dcheng wrote: > > > > > > Is this a C++14ism? How does it work with our toolchain? =) > > > > > > > > > > Also, see > > > > > > https://github.com/llvm-mirror/libcxx/blob/master/include/type_traits#L505 > > > > > > > > > > https://codereview.chromium.org/2322313002/ > > > > > > > > > > -- > > > > > You received this message because you are subscribed to the Google > Groups > > > > > "Chromium-reviews" group. > > > > > To unsubscribe from this group and stop receiving emails from it, send > an > > > > email > > > > > to mailto:chromium-reviews+unsubscribe@chromium.org. > > > > Would it be bad to just call it IsCancellableType? =) > > IsCancellableType sounds like "check if the given type is a cancellable type"... Yeah, I think I agree that PS2 is better than PS3. A name like is_cancellable_t might make it clear, but that wouldn't follow our naming conventions either than. So... let's just go with PS2. LGTM
The CQ bit was checked by tzik@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from kapishnikov@chromium.org, dcheng@chromium.org Link to the patchset: https://codereview.chromium.org/2322313002/#ps80001 (title: "revert to PS2")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Message was sent while issue was closed.
Description was changed from ========== Split BindStateBase ctor for non-cancellable Bind http://crrev.com/59aa6bb1162b31d2 added a parameter of BindStateBase, and that causes 0.8% (40kB) binary size bloat on cronet, by adding a new instruction to the constructor invocation at BindState ctor. To reduce the binary size, this CL splits BindStateBase into two: one for cancellable bind and another for non-cancellable one, so that non-cancellable bind doesn't need to pass an extra argument to BindStateBase. This reduces the stripped binary size of chrome on Linux by 56kB. ========== to ========== Split BindStateBase ctor for non-cancellable Bind http://crrev.com/59aa6bb1162b31d2 added a parameter of BindStateBase, and that causes 0.8% (40kB) binary size bloat on cronet, by adding a new instruction to the constructor invocation at BindState ctor. To reduce the binary size, this CL splits BindStateBase into two: one for cancellable bind and another for non-cancellable one, so that non-cancellable bind doesn't need to pass an extra argument to BindStateBase. This reduces the stripped binary size of chrome on Linux by 56kB. ==========
Message was sent while issue was closed.
Committed patchset #4 (id:80001)
Message was sent while issue was closed.
Description was changed from ========== Split BindStateBase ctor for non-cancellable Bind http://crrev.com/59aa6bb1162b31d2 added a parameter of BindStateBase, and that causes 0.8% (40kB) binary size bloat on cronet, by adding a new instruction to the constructor invocation at BindState ctor. To reduce the binary size, this CL splits BindStateBase into two: one for cancellable bind and another for non-cancellable one, so that non-cancellable bind doesn't need to pass an extra argument to BindStateBase. This reduces the stripped binary size of chrome on Linux by 56kB. ========== to ========== Split BindStateBase ctor for non-cancellable Bind http://crrev.com/59aa6bb1162b31d2 added a parameter of BindStateBase, and that causes 0.8% (40kB) binary size bloat on cronet, by adding a new instruction to the constructor invocation at BindState ctor. To reduce the binary size, this CL splits BindStateBase into two: one for cancellable bind and another for non-cancellable one, so that non-cancellable bind doesn't need to pass an extra argument to BindStateBase. This reduces the stripped binary size of chrome on Linux by 56kB. Committed: https://crrev.com/1fdcca3da07639548c7f37fab1c9d6c93541e4a9 Cr-Commit-Position: refs/heads/master@{#418502} ==========
Message was sent while issue was closed.
Patchset 4 (id:??) landed as https://crrev.com/1fdcca3da07639548c7f37fab1c9d6c93541e4a9 Cr-Commit-Position: refs/heads/master@{#418502} |