Commit 9ede481a authored by stanisc's avatar stanisc Committed by Commit bot

Remove padding in v8::internal::compiler::Constant class.

This makes the size of the class smaller by 8 bytes on 64-bit. I looked at the usage
pattern. Even though it seems the number of instances doesn't get higher
than a few thousand, this class is still very hot because it is constructed and
passed by value a lot. So perhaps reducing the size would make passing this
class by value or growing arrays more optimal and might save some cycles.

Before:
    class v8::internal::compiler::Constant [sizeof = 24] {
      [sizeof=4] v8::internal::compiler::Constant::Type type_
      <padding> (4 bytes)
      [sizeof=8] __int64 value_
      [sizeof=4] v8::internal::RelocInfo::Mode rmode_
      <padding> (4 bytes)
    }

After:
    class v8::internal::compiler::Constant [sizeof = 16] {
      [sizeof=4] v8::internal::compiler::Constant::Type type_
      [sizeof=4] v8::internal::RelocInfo::Mode rmode_
      [sizeof=8] __int64 value_
    }

BUG=chromium:710933

Review-Url: https://codereview.chromium.org/2841343002
Cr-Commit-Position: refs/heads/master@{#45001}
parent e3207836
......@@ -1109,12 +1109,12 @@ class V8_EXPORT_PRIVATE Constant final {
private:
Type type_;
int64_t value_;
#if V8_TARGET_ARCH_32_BIT
RelocInfo::Mode rmode_ = RelocInfo::NONE32;
#else
RelocInfo::Mode rmode_ = RelocInfo::NONE64;
#endif
int64_t value_;
};
......
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