[go: up one dir, main page]

Revert "Add CHROMIUM_CXX_TWEAK_INLINES to reduce binary size (NDK r16)"

This reverts commit 50f4963776c431db65f21e92e4a5e67a4b715920.

Reason for revert: Causes linking issues on component builds.

Original change's description:
> Add CHROMIUM_CXX_TWEAK_INLINES to reduce binary size (NDK r16)
> 
> This patch is a port of Andrew´s original patch reviewed at:
> https://chromium-review.googlesource.com/c/android_ndk/+/683555
> 
> This should reduce the size of libchrome.so by about 700 KiB
> with little impact on performance.
> 
> R=​agrieve
> Bug: 738155
> Change-Id: If3d442ae37379585c516dc8acda54a88adc7f6da
> Reviewed-on: https://chromium-review.googlesource.com/797450
> Reviewed-by: agrieve <agrieve@chromium.org>
> Tested-by: agrieve <agrieve@chromium.org>

TBR=digit@chromium.org,agrieve@chromium.org,bsheedy@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 738155
Change-Id: Ia39beadaf61d974886443507d12c78dd343a9264
Reviewed-on: https://chromium-review.googlesource.com/832847
Reviewed-by: Brian Sheedy <bsheedy@chromium.org>
Reviewed-by: agrieve <agrieve@chromium.org>
Tested-by: agrieve <agrieve@chromium.org>
diff --git a/chromium-patches/CHROMIUM_CXX_TWEAK_INLINES.patch b/chromium-patches/CHROMIUM_CXX_TWEAK_INLINES.patch
index a64901b..85f3e18 100644
--- a/chromium-patches/CHROMIUM_CXX_TWEAK_INLINES.patch
+++ b/chromium-patches/CHROMIUM_CXX_TWEAK_INLINES.patch
@@ -1,41 +1,11 @@
-diff --git a/sources/cxx-stl/llvm-libc++/include/__config b/sources/cxx-stl/llvm-libc++/include/__config
-index b7acd667..b784e2a3 100644
---- a/sources/cxx-stl/llvm-libc++/include/__config
-+++ b/sources/cxx-stl/llvm-libc++/include/__config
-@@ -138,6 +138,46 @@
- #define __libcpp_has_include(__x) 0
+diff --git a/sources/cxx-stl/llvm-libc++/libcxx/include/__config b/sources/cxx-stl/llvm-libc++/libcxx/include/__config
+index b227522f..f153f6f3 100644
+--- a/sources/cxx-stl/llvm-libc++/libcxx/include/__config
++++ b/sources/cxx-stl/llvm-libc++/libcxx/include/__config
+@@ -203,6 +203,17 @@
+ #define _LIBCPP_ALWAYS_INLINE_EXCEPT_GCC49 _LIBCPP_ALWAYS_INLINE
  #endif
  
-+// When CHROMIUM_CXX_TWEAK_INLINES is defined, certain STL types will be tweaked
-+// to ensure that their constructor, or certain methods, are never inlined. This can
-+// surprisingly reduce the size of the Chrome binary by more than 3%, with little
-+// impact on performance.
-+//
-+// This is controlled by modifying some libc++ headers using the following macros:
-+//
-+//  CHROMIUM_LIBCPP_INLINE_VISIBILITY:
-+//     Replaces an _existing_ _LIBCPP_INLINE_VISIBILITY use on a target method.
-+//     I.e. this indicates libc++ methods that were already possibly inlined,
-+//     but that will never be when the tweak is active.
-+//
-+//     Equivalent to _LIBCPP_INLINE_VISIBILITY if the tweak is disabled.
-+//
-+//  CHROMIUM_LIBCPP_NEVER_INLINE:
-+//     This is added to ensure that a target method, which was _not_ already
-+//     tagged with _LIBCPP_INLINE_VISIBILITY, will never be inlined.
-+//
-+//     This is equivalent to adding CHROMIUM_LIBCPP_INLINE_VISIBILITY, except
-+//     that it helps spot the places where _LIBCPP_INLINE_VISIBILITY was not
-+//     used in the original libc++ header.
-+//
-+//     Empty if the tweak is disabled.
-+//
-+//  CHROMIUM_LIBCPP_ALWAYS_INLINE:
-+//     This is added to ensure that a target method, which is _not_ already
-+//     tagged with _LIBCPP_INLINE_VISIBILITY, will always be inlined.
-+//
-+//     Empty if the tweak is disabled.
-+//
 +#ifdef CHROMIUM_CXX_TWEAK_INLINES
 +#define CHROMIUM_LIBCPP_INLINE_VISIBILITY __attribute__ ((__visibility__("hidden"), noinline))
 +#define CHROMIUM_LIBCPP_ALWAYS_INLINE __attribute__ ((__visibility__("hidden"), __always_inline__))
@@ -45,15 +15,16 @@
 +#define CHROMIUM_LIBCPP_ALWAYS_INLINE
 +#define CHROMIUM_LIBCPP_NEVER_INLINE
 +#endif
++#define CHROMIUM_LIBCPP_INLINE_VISIBILITY_EXCEPT_GCC49 CHROMIUM_LIBCPP_INLINE_VISIBILITY
 +
  #if defined(__clang__)
- #define _LIBCPP_COMPILER_CLANG
- # ifndef __apple_build_version__
-diff --git a/sources/cxx-stl/llvm-libc++/include/string b/sources/cxx-stl/llvm-libc++/include/string
-index cf42f529..5a31af04 100644
---- a/sources/cxx-stl/llvm-libc++/include/string
-+++ b/sources/cxx-stl/llvm-libc++/include/string
-@@ -536,23 +536,28 @@ bool operator!=(const fpos<_StateT>& __x, const fpos<_StateT>& __y)
+ 
+ #if defined(__APPLE__) && !defined(__i386__) && !defined(__x86_64__) &&        \
+diff --git a/sources/cxx-stl/llvm-libc++/libcxx/include/string b/sources/cxx-stl/llvm-libc++/libcxx/include/string
+index ba83e22a..222567f5 100644
+--- a/sources/cxx-stl/llvm-libc++/libcxx/include/string
++++ b/sources/cxx-stl/llvm-libc++/libcxx/include/string
+@@ -1174,23 +1174,28 @@ size_t _LIBCPP_INLINE_VISIBILITY __do_string_hash(_Ptr __p, _Ptr __e)
  // basic_string
  
  template<class _CharT, class _Traits, class _Allocator>
@@ -82,79 +53,51 @@
  basic_string<_CharT, _Traits, _Allocator>
  operator+(const basic_string<_CharT, _Traits, _Allocator>& __x, _CharT __y);
  
-@@ -745,21 +750,24 @@ private:
+@@ -1368,54 +1373,59 @@ private:
  public:
      static const size_type npos = -1;
  
--    _LIBCPP_INLINE_VISIBILITY basic_string()
+-    _LIBCPP_INLINE_VISIBILITY_EXCEPT_GCC49 basic_string()
 +    // Adding CHROMIUM defines to constructors and operator+ saved 300kb (Sept 2017).
 +    // Made __init __always_inline__, and functions that call it (constructors and operator+) noinline.
 +    // For more context: https://crbug.com/738155
-+    CHROMIUM_LIBCPP_INLINE_VISIBILITY basic_string()
++    CHROMIUM_LIBCPP_INLINE_VISIBILITY_EXCEPT_GCC49 basic_string()
          _NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value);
- 
--    _LIBCPP_INLINE_VISIBILITY explicit basic_string(const allocator_type& __a)
-+    CHROMIUM_LIBCPP_INLINE_VISIBILITY explicit basic_string(const allocator_type& __a)
- #if _LIBCPP_STD_VER <= 14
-         _NOEXCEPT_(is_nothrow_copy_constructible<allocator_type>::value);
- #else
-         _NOEXCEPT;
- #endif
- 
+-    _LIBCPP_INLINE_VISIBILITY_EXCEPT_GCC49 explicit basic_string(const allocator_type& __a);
 -    basic_string(const basic_string& __str);
 -    basic_string(const basic_string& __str, const allocator_type& __a);
++    CHROMIUM_LIBCPP_INLINE_VISIBILITY_EXCEPT_GCC49 explicit basic_string(const allocator_type& __a);
 +    CHROMIUM_LIBCPP_NEVER_INLINE basic_string(const basic_string& __str);
 +    CHROMIUM_LIBCPP_NEVER_INLINE basic_string(const basic_string& __str, const allocator_type& __a);
- 
- #ifndef _LIBCPP_CXX03_LANG
--    _LIBCPP_INLINE_VISIBILITY
-+    CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
+-    _LIBCPP_INLINE_VISIBILITY_EXCEPT_GCC49
++    CHROMIUM_LIBCPP_INLINE_VISIBILITY_EXCEPT_GCC49
      basic_string(basic_string&& __str)
- #if _LIBCPP_STD_VER <= 14
          _NOEXCEPT_(is_nothrow_move_constructible<allocator_type>::value);
-@@ -767,23 +775,24 @@ public:
-         _NOEXCEPT;
- #endif
- 
 -    _LIBCPP_INLINE_VISIBILITY
 +    CHROMIUM_LIBCPP_INLINE_VISIBILITY
      basic_string(basic_string&& __str, const allocator_type& __a);
- #endif  // _LIBCPP_CXX03_LANG
--    _LIBCPP_INLINE_VISIBILITY basic_string(const _CharT* __s);
+ #endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES
+-    _LIBCPP_INLINE_VISIBILITY_EXCEPT_GCC49 basic_string(const value_type* __s);
 -    _LIBCPP_INLINE_VISIBILITY
-+    CHROMIUM_LIBCPP_INLINE_VISIBILITY basic_string(const _CharT* __s);
++    CHROMIUM_LIBCPP_INLINE_VISIBILITY_EXCEPT_GCC49 basic_string(const value_type* __s);
 +    CHROMIUM_LIBCPP_INLINE_VISIBILITY
-     basic_string(const _CharT* __s, const _Allocator& __a);
+     basic_string(const value_type* __s, const allocator_type& __a);
 -    _LIBCPP_INLINE_VISIBILITY
 +    CHROMIUM_LIBCPP_INLINE_VISIBILITY
-     basic_string(const _CharT* __s, size_type __n);
+     basic_string(const value_type* __s, size_type __n);
 -    _LIBCPP_INLINE_VISIBILITY
 +    CHROMIUM_LIBCPP_INLINE_VISIBILITY
-     basic_string(const _CharT* __s, size_type __n, const _Allocator& __a);
+     basic_string(const value_type* __s, size_type __n, const allocator_type& __a);
+-    _LIBCPP_INLINE_VISIBILITY_EXCEPT_GCC49
++    CHROMIUM_LIBCPP_INLINE_VISIBILITY_EXCEPT_GCC49
+     basic_string(size_type __n, value_type __c);
 -    _LIBCPP_INLINE_VISIBILITY
 +    CHROMIUM_LIBCPP_INLINE_VISIBILITY
-     basic_string(size_type __n, _CharT __c);
--    _LIBCPP_INLINE_VISIBILITY
-+    CHROMIUM_LIBCPP_INLINE_VISIBILITY
-     basic_string(size_type __n, _CharT __c, const _Allocator& __a);
-+    CHROMIUM_LIBCPP_NEVER_INLINE
-     basic_string(const basic_string& __str, size_type __pos, size_type __n,
-                  const _Allocator& __a = _Allocator());
--    _LIBCPP_INLINE_VISIBILITY
-+    CHROMIUM_LIBCPP_INLINE_VISIBILITY
-     basic_string(const basic_string& __str, size_type __pos,
-                  const _Allocator& __a = _Allocator());
-     template<class _Tp>
-@@ -791,20 +800,20 @@ public:
-         basic_string(const _Tp& __t, size_type __pos, size_type __n,
-                      const allocator_type& __a = allocator_type(),
-                      typename enable_if<__can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value, void>::type* = 0);
--    _LIBCPP_INLINE_VISIBILITY explicit
-+    CHROMIUM_LIBCPP_INLINE_VISIBILITY explicit
-     basic_string(__self_view __sv);
--    _LIBCPP_INLINE_VISIBILITY
-+    CHROMIUM_LIBCPP_INLINE_VISIBILITY
-     basic_string(__self_view __sv, const _Allocator& __a);
+     basic_string(size_type __n, value_type __c, const allocator_type& __a);
+-    basic_string(const basic_string& __str, size_type __pos, size_type __n = npos,
++    CHROMIUM_LIBCPP_NEVER_INLINE basic_string(const basic_string& __str, size_type __pos, size_type __n = npos,
+                  const allocator_type& __a = allocator_type());
      template<class _InputIterator>
 -        _LIBCPP_INLINE_VISIBILITY
 +        CHROMIUM_LIBCPP_INLINE_VISIBILITY
@@ -163,49 +106,45 @@
 -        _LIBCPP_INLINE_VISIBILITY
 +        CHROMIUM_LIBCPP_INLINE_VISIBILITY
          basic_string(_InputIterator __first, _InputIterator __last, const allocator_type& __a);
- #ifndef _LIBCPP_CXX03_LANG
+ #ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
 -    _LIBCPP_INLINE_VISIBILITY
 +    CHROMIUM_LIBCPP_INLINE_VISIBILITY
-     basic_string(initializer_list<_CharT> __il);
+     basic_string(initializer_list<value_type> __il);
 -    _LIBCPP_INLINE_VISIBILITY
 +    CHROMIUM_LIBCPP_INLINE_VISIBILITY
-     basic_string(initializer_list<_CharT> __il, const _Allocator& __a);
- #endif  // _LIBCPP_CXX03_LANG
+     basic_string(initializer_list<value_type> __il, const allocator_type& __a);
+ #endif  // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
  
-@@ -818,13 +827,13 @@ public:
- #ifndef _LIBCPP_CXX03_LANG
-     template <class = void>
- #endif
--    _LIBCPP_INLINE_VISIBILITY
-+    CHROMIUM_LIBCPP_INLINE_VISIBILITY
-     basic_string& operator=(__self_view __sv)  {return assign(__sv);}
- #ifndef _LIBCPP_CXX03_LANG
+     ~basic_string();
+ 
+-    basic_string& operator=(const basic_string& __str);
++    // Adding noinline to operator= saved 100kb (Sept 2017).
++    CHROMIUM_LIBCPP_NEVER_INLINE basic_string& operator=(const basic_string& __str);
+ #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
 -    _LIBCPP_INLINE_VISIBILITY
 +    CHROMIUM_LIBCPP_INLINE_VISIBILITY
      basic_string& operator=(basic_string&& __str)
-         _NOEXCEPT_((__noexcept_move_assign_container<_Allocator, __alloc_traits>::value));
--     _LIBCPP_INLINE_VISIBILITY
-+    _LIBCPP_INLINE_VISIBILITY
-     basic_string& operator=(initializer_list<value_type> __il) {return assign(__il.begin(), __il.size());}
+         _NOEXCEPT_(__alloc_traits::propagate_on_container_move_assignment::value &&
+                    is_nothrow_move_assignable<allocator_type>::value);
  #endif
      _LIBCPP_INLINE_VISIBILITY basic_string& operator=(const value_type* __s) {return assign(__s);}
-@@ -1084,13 +1093,13 @@ public:
++    CHROMIUM_LIBCPP_NEVER_INLINE
+     basic_string& operator=(value_type __c);
+ #ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
+     _LIBCPP_INLINE_VISIBILITY
+@@ -1612,11 +1622,9 @@ public:
      basic_string& replace(size_type __pos, size_type __n1, const value_type* __s, size_type __n2);
      basic_string& replace(size_type __pos, size_type __n1, const value_type* __s);
      basic_string& replace(size_type __pos, size_type __n1, size_type __n2, value_type __c);
 -    _LIBCPP_INLINE_VISIBILITY
-+    CHROMIUM_LIBCPP_INLINE_VISIBILITY
      basic_string& replace(const_iterator __i1, const_iterator __i2, const basic_string& __str);
      _LIBCPP_INLINE_VISIBILITY
-     basic_string& replace(const_iterator __i1, const_iterator __i2, __self_view __sv) { return replace(__i1 - begin(), __i2 - __i1, __sv); }
-     _LIBCPP_INLINE_VISIBILITY
      basic_string& replace(const_iterator __i1, const_iterator __i2, const value_type* __s, size_type __n);
 -    _LIBCPP_INLINE_VISIBILITY
-+    CHROMIUM_LIBCPP_INLINE_VISIBILITY
      basic_string& replace(const_iterator __i1, const_iterator __i2, const value_type* __s);
      _LIBCPP_INLINE_VISIBILITY
      basic_string& replace(const_iterator __i1, const_iterator __i2, size_type __n, value_type __c);
-@@ -1133,67 +1142,77 @@ public:
+@@ -1650,59 +1658,69 @@ public:
      _LIBCPP_INLINE_VISIBILITY
      allocator_type get_allocator() const _NOEXCEPT {return __alloc();}
  
@@ -213,133 +152,104 @@
 +    // Adding CHROMIUM defines to find methods saved 20kb (Sept 2017).
 +    CHROMIUM_LIBCPP_INLINE_VISIBILITY
      size_type find(const basic_string& __str, size_type __pos = 0) const _NOEXCEPT;
--    _LIBCPP_INLINE_VISIBILITY
-+    CHROMIUM_LIBCPP_INLINE_VISIBILITY
-     size_type find(__self_view __sv, size_type __pos = 0) const _NOEXCEPT;
 +    CHROMIUM_LIBCPP_NEVER_INLINE
      size_type find(const value_type* __s, size_type __pos, size_type __n) const _NOEXCEPT;
 -    _LIBCPP_INLINE_VISIBILITY
 +    CHROMIUM_LIBCPP_INLINE_VISIBILITY
      size_type find(const value_type* __s, size_type __pos = 0) const _NOEXCEPT;
-+    CHROMIUM_LIBCPP_NEVER_INLINE
++    // Adding noinline to this overload saved only 1kb (Sept 2017).
      size_type find(value_type __c, size_type __pos = 0) const _NOEXCEPT;
  
 -    _LIBCPP_INLINE_VISIBILITY
 +    CHROMIUM_LIBCPP_INLINE_VISIBILITY
      size_type rfind(const basic_string& __str, size_type __pos = npos) const _NOEXCEPT;
--    _LIBCPP_INLINE_VISIBILITY
-+    CHROMIUM_LIBCPP_INLINE_VISIBILITY
-     size_type rfind(__self_view __sv, size_type __pos = 0) const _NOEXCEPT;
 +    CHROMIUM_LIBCPP_NEVER_INLINE
      size_type rfind(const value_type* __s, size_type __pos, size_type __n) const _NOEXCEPT;
 -    _LIBCPP_INLINE_VISIBILITY
 +    CHROMIUM_LIBCPP_INLINE_VISIBILITY
      size_type rfind(const value_type* __s, size_type __pos = npos) const _NOEXCEPT;
-+    CHROMIUM_LIBCPP_NEVER_INLINE
      size_type rfind(value_type __c, size_type __pos = npos) const _NOEXCEPT;
  
 -    _LIBCPP_INLINE_VISIBILITY
 +    CHROMIUM_LIBCPP_INLINE_VISIBILITY
      size_type find_first_of(const basic_string& __str, size_type __pos = 0) const _NOEXCEPT;
--    _LIBCPP_INLINE_VISIBILITY
-+    CHROMIUM_LIBCPP_INLINE_VISIBILITY
-     size_type find_first_of(__self_view __sv, size_type __pos = 0) const _NOEXCEPT;
 +    CHROMIUM_LIBCPP_NEVER_INLINE
      size_type find_first_of(const value_type* __s, size_type __pos, size_type __n) const _NOEXCEPT;
 -    _LIBCPP_INLINE_VISIBILITY
 +    CHROMIUM_LIBCPP_INLINE_VISIBILITY
      size_type find_first_of(const value_type* __s, size_type __pos = 0) const _NOEXCEPT;
--    _LIBCPP_INLINE_VISIBILITY
-+    CHROMIUM_LIBCPP_INLINE_VISIBILITY
+     _LIBCPP_INLINE_VISIBILITY
      size_type find_first_of(value_type __c, size_type __pos = 0) const _NOEXCEPT;
  
 -    _LIBCPP_INLINE_VISIBILITY
 +    CHROMIUM_LIBCPP_INLINE_VISIBILITY
      size_type find_last_of(const basic_string& __str, size_type __pos = npos) const _NOEXCEPT;
--    _LIBCPP_INLINE_VISIBILITY
-+    CHROMIUM_LIBCPP_INLINE_VISIBILITY
-     size_type find_last_of(__self_view __sv, size_type __pos = 0) const _NOEXCEPT;
 +    CHROMIUM_LIBCPP_NEVER_INLINE
      size_type find_last_of(const value_type* __s, size_type __pos, size_type __n) const _NOEXCEPT;
 -    _LIBCPP_INLINE_VISIBILITY
 +    CHROMIUM_LIBCPP_INLINE_VISIBILITY
      size_type find_last_of(const value_type* __s, size_type __pos = npos) const _NOEXCEPT;
--    _LIBCPP_INLINE_VISIBILITY
-+    CHROMIUM_LIBCPP_INLINE_VISIBILITY
+     _LIBCPP_INLINE_VISIBILITY
      size_type find_last_of(value_type __c, size_type __pos = npos) const _NOEXCEPT;
  
 -    _LIBCPP_INLINE_VISIBILITY
 +    CHROMIUM_LIBCPP_INLINE_VISIBILITY
      size_type find_first_not_of(const basic_string& __str, size_type __pos = 0) const _NOEXCEPT;
--    _LIBCPP_INLINE_VISIBILITY
-+    CHROMIUM_LIBCPP_INLINE_VISIBILITY
-     size_type find_first_not_of(__self_view __sv, size_type __pos = 0) const _NOEXCEPT;
 +    CHROMIUM_LIBCPP_NEVER_INLINE
      size_type find_first_not_of(const value_type* __s, size_type __pos, size_type __n) const _NOEXCEPT;
 -    _LIBCPP_INLINE_VISIBILITY
 +    CHROMIUM_LIBCPP_INLINE_VISIBILITY
      size_type find_first_not_of(const value_type* __s, size_type __pos = 0) const _NOEXCEPT;
--    _LIBCPP_INLINE_VISIBILITY
-+    CHROMIUM_LIBCPP_INLINE_VISIBILITY
+     _LIBCPP_INLINE_VISIBILITY
      size_type find_first_not_of(value_type __c, size_type __pos = 0) const _NOEXCEPT;
  
 -    _LIBCPP_INLINE_VISIBILITY
 +    CHROMIUM_LIBCPP_INLINE_VISIBILITY
      size_type find_last_not_of(const basic_string& __str, size_type __pos = npos) const _NOEXCEPT;
--    _LIBCPP_INLINE_VISIBILITY
-+    CHROMIUM_LIBCPP_INLINE_VISIBILITY
-     size_type find_last_not_of(__self_view __sv, size_type __pos = 0) const _NOEXCEPT;
 +    CHROMIUM_LIBCPP_NEVER_INLINE
      size_type find_last_not_of(const value_type* __s, size_type __pos, size_type __n) const _NOEXCEPT;
 -    _LIBCPP_INLINE_VISIBILITY
 +    CHROMIUM_LIBCPP_INLINE_VISIBILITY
      size_type find_last_not_of(const value_type* __s, size_type __pos = npos) const _NOEXCEPT;
--    _LIBCPP_INLINE_VISIBILITY
-+    CHROMIUM_LIBCPP_INLINE_VISIBILITY
+     _LIBCPP_INLINE_VISIBILITY
      size_type find_last_not_of(value_type __c, size_type __pos = npos) const _NOEXCEPT;
  
 -    _LIBCPP_INLINE_VISIBILITY
 +    // Adding CHROMIUM defines to compare and operator== saved 100kb (Sept 2017).
 +    CHROMIUM_LIBCPP_INLINE_VISIBILITY
      int compare(const basic_string& __str) const _NOEXCEPT;
--    _LIBCPP_INLINE_VISIBILITY
-+    CHROMIUM_LIBCPP_INLINE_VISIBILITY
-     int compare(__self_view __sv) const _NOEXCEPT;
      _LIBCPP_INLINE_VISIBILITY
-     int compare(size_type __pos1, size_type __n1, __self_view __sv) const;
-@@ -1210,6 +1229,7 @@ public:
-         compare(size_type __pos1, size_type __n1, const _Tp& __t, size_type __pos2, size_type __n2=npos) const;
+     int compare(size_type __pos1, size_type __n1, const basic_string& __str) const;
+     int compare(size_type __pos1, size_type __n1, const basic_string& __str, size_type __pos2, size_type __n2=npos) const;
      int compare(const value_type* __s) const _NOEXCEPT;
      int compare(size_type __pos1, size_type __n1, const value_type* __s) const;
 +    CHROMIUM_LIBCPP_NEVER_INLINE
      int compare(size_type __pos1, size_type __n1, const value_type* __s, size_type __n2) const;
  
      _LIBCPP_INLINE_VISIBILITY bool __invariants() const;
-@@ -1331,11 +1351,11 @@ private:
+@@ -1824,9 +1842,9 @@ private:
                   __align_it<sizeof(value_type) < __alignment ?
                              __alignment/sizeof(value_type) : 1 > (__s+1)) - 1;}
  
--    inline
-+    inline CHROMIUM_LIBCPP_NEVER_INLINE
-     void __init(const value_type* __s, size_type __sz, size_type __reserve);
--    inline
-+    inline CHROMIUM_LIBCPP_NEVER_INLINE
-     void __init(const value_type* __s, size_type __sz);
--    inline
-+    inline CHROMIUM_LIBCPP_NEVER_INLINE
-     void __init(size_type __n, value_type __c);
+-    void __init(const value_type* __s, size_type __sz, size_type __reserve);
+-    void __init(const value_type* __s, size_type __sz);
+-    void __init(size_type __n, value_type __c);
++    CHROMIUM_LIBCPP_ALWAYS_INLINE void __init(const value_type* __s, size_type __sz, size_type __reserve);
++    CHROMIUM_LIBCPP_ALWAYS_INLINE void __init(const value_type* __s, size_type __sz);
++    CHROMIUM_LIBCPP_ALWAYS_INLINE void __init(size_type __n, value_type __c);
  
      template <class _InputIterator>
-@@ -1345,7 +1365,7 @@ private:
-         __is_exactly_input_iterator<_InputIterator>::value,
+     typename enable_if
+@@ -1835,7 +1853,7 @@ private:
+         !__is_forward_iterator<_InputIterator>::value,
          void
      >::type
 -    __init(_InputIterator __first, _InputIterator __last);
 +    CHROMIUM_LIBCPP_ALWAYS_INLINE __init(_InputIterator __first, _InputIterator __last);
  
      template <class _ForwardIterator>
-     inline
-@@ -1354,7 +1374,7 @@ private:
+     typename enable_if
+@@ -1843,7 +1861,7 @@ private:
          __is_forward_iterator<_ForwardIterator>::value,
          void
      >::type
@@ -348,188 +258,158 @@
  
      void __grow_by(size_type __old_cap, size_type __delta_cap, size_type __old_sz,
                     size_type __n_copy,  size_type __n_del,     size_type __n_add = 0);
-@@ -1486,7 +1506,7 @@ basic_string<_CharT, _Traits, _Allocator>::__invalidate_iterators_past(size_type
+@@ -1972,7 +1990,7 @@ basic_string<_CharT, _Traits, _Allocator>::__invalidate_iterators_past(size_type
  }
  
  template <class _CharT, class _Traits, class _Allocator>
--inline _LIBCPP_INLINE_VISIBILITY
-+inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+-inline _LIBCPP_INLINE_VISIBILITY_EXCEPT_GCC49
++inline CHROMIUM_LIBCPP_INLINE_VISIBILITY_EXCEPT_GCC49
  basic_string<_CharT, _Traits, _Allocator>::basic_string()
      _NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value)
  {
-@@ -1497,7 +1517,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string()
+@@ -1983,7 +2001,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string()
  }
  
  template <class _CharT, class _Traits, class _Allocator>
--inline _LIBCPP_INLINE_VISIBILITY
-+inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+-inline _LIBCPP_INLINE_VISIBILITY_EXCEPT_GCC49
++inline CHROMIUM_LIBCPP_INLINE_VISIBILITY_EXCEPT_GCC49
  basic_string<_CharT, _Traits, _Allocator>::basic_string(const allocator_type& __a)
- #if _LIBCPP_STD_VER <= 14
-         _NOEXCEPT_(is_nothrow_copy_constructible<allocator_type>::value)
-@@ -1513,6 +1533,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(const allocator_type& __
+     : __r_(__a)
+ {
+@@ -1994,7 +2012,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(const allocator_type& __
  }
  
  template <class _CharT, class _Traits, class _Allocator>
-+CHROMIUM_LIBCPP_ALWAYS_INLINE
- void basic_string<_CharT, _Traits, _Allocator>::__init(const value_type* __s,
-                                                        size_type __sz,
-                                                        size_type __reserve)
-@@ -1538,6 +1559,7 @@ void basic_string<_CharT, _Traits, _Allocator>::__init(const value_type* __s,
+-void
++CHROMIUM_LIBCPP_ALWAYS_INLINE void
+ basic_string<_CharT, _Traits, _Allocator>::__init(const value_type* __s, size_type __sz, size_type __reserve)
+ {
+     if (__reserve > max_size())
+@@ -2018,7 +2036,7 @@ basic_string<_CharT, _Traits, _Allocator>::__init(const value_type* __s, size_ty
  }
  
  template <class _CharT, class _Traits, class _Allocator>
-+CHROMIUM_LIBCPP_ALWAYS_INLINE
- void
+-void
++CHROMIUM_LIBCPP_ALWAYS_INLINE void
  basic_string<_CharT, _Traits, _Allocator>::__init(const value_type* __s, size_type __sz)
  {
-@@ -1562,7 +1584,7 @@ basic_string<_CharT, _Traits, _Allocator>::__init(const value_type* __s, size_ty
+     if (__sz > max_size())
+@@ -2042,7 +2060,7 @@ basic_string<_CharT, _Traits, _Allocator>::__init(const value_type* __s, size_ty
  }
  
  template <class _CharT, class _Traits, class _Allocator>
--inline _LIBCPP_INLINE_VISIBILITY
-+inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
- basic_string<_CharT, _Traits, _Allocator>::basic_string(const _CharT* __s)
+-inline _LIBCPP_INLINE_VISIBILITY_EXCEPT_GCC49
++inline CHROMIUM_LIBCPP_INLINE_VISIBILITY_EXCEPT_GCC49
+ basic_string<_CharT, _Traits, _Allocator>::basic_string(const value_type* __s)
  {
      _LIBCPP_ASSERT(__s != nullptr, "basic_string(const char*) detected nullptr");
-@@ -1573,7 +1595,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(const _CharT* __s)
+@@ -2053,7 +2071,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(const value_type* __s)
  }
  
  template <class _CharT, class _Traits, class _Allocator>
 -inline _LIBCPP_INLINE_VISIBILITY
 +inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
- basic_string<_CharT, _Traits, _Allocator>::basic_string(const _CharT* __s, const _Allocator& __a)
-     : __r_(__second_tag(), __a)
+ basic_string<_CharT, _Traits, _Allocator>::basic_string(const value_type* __s, const allocator_type& __a)
+     : __r_(__a)
  {
-@@ -1585,7 +1607,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(const _CharT* __s, const
+@@ -2065,7 +2083,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(const value_type* __s, c
  }
  
  template <class _CharT, class _Traits, class _Allocator>
 -inline _LIBCPP_INLINE_VISIBILITY
 +inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
- basic_string<_CharT, _Traits, _Allocator>::basic_string(const _CharT* __s, size_type __n)
+ basic_string<_CharT, _Traits, _Allocator>::basic_string(const value_type* __s, size_type __n)
  {
      _LIBCPP_ASSERT(__n == 0 || __s != nullptr, "basic_string(const char*, n) detected nullptr");
-@@ -1596,7 +1618,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(const _CharT* __s, size_
+@@ -2076,7 +2094,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(const value_type* __s, s
  }
  
  template <class _CharT, class _Traits, class _Allocator>
 -inline _LIBCPP_INLINE_VISIBILITY
 +inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
- basic_string<_CharT, _Traits, _Allocator>::basic_string(const _CharT* __s, size_type __n, const _Allocator& __a)
-     : __r_(__second_tag(), __a)
+ basic_string<_CharT, _Traits, _Allocator>::basic_string(const value_type* __s, size_type __n, const allocator_type& __a)
+     : __r_(__a)
  {
-@@ -1608,6 +1630,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(const _CharT* __s, size_
+@@ -2088,7 +2106,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(const value_type* __s, s
  }
  
  template <class _CharT, class _Traits, class _Allocator>
-+CHROMIUM_LIBCPP_NEVER_INLINE
- basic_string<_CharT, _Traits, _Allocator>::basic_string(const basic_string& __str)
-     : __r_(__second_tag(), __alloc_traits::select_on_container_copy_construction(__str.__alloc()))
+-basic_string<_CharT, _Traits, _Allocator>::basic_string(const basic_string& __str)
++CHROMIUM_LIBCPP_NEVER_INLINE basic_string<_CharT, _Traits, _Allocator>::basic_string(const basic_string& __str)
+     : __r_(__alloc_traits::select_on_container_copy_construction(__str.__alloc()))
  {
-@@ -1621,6 +1644,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(const basic_string& __st
+     if (!__str.__is_long())
+@@ -2101,7 +2119,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(const basic_string& __st
  }
  
  template <class _CharT, class _Traits, class _Allocator>
-+CHROMIUM_LIBCPP_NEVER_INLINE
- basic_string<_CharT, _Traits, _Allocator>::basic_string(
-     const basic_string& __str, const allocator_type& __a)
-     : __r_(__second_tag(), __a)
-@@ -1637,7 +1661,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(
- #ifndef _LIBCPP_CXX03_LANG
+-basic_string<_CharT, _Traits, _Allocator>::basic_string(const basic_string& __str, const allocator_type& __a)
++CHROMIUM_LIBCPP_NEVER_INLINE basic_string<_CharT, _Traits, _Allocator>::basic_string(const basic_string& __str, const allocator_type& __a)
+     : __r_(__a)
+ {
+     if (!__str.__is_long())
+@@ -2116,7 +2134,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(const basic_string& __st
+ #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
  
  template <class _CharT, class _Traits, class _Allocator>
--inline _LIBCPP_INLINE_VISIBILITY
-+inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+-inline _LIBCPP_INLINE_VISIBILITY_EXCEPT_GCC49
++inline CHROMIUM_LIBCPP_INLINE_VISIBILITY_EXCEPT_GCC49
  basic_string<_CharT, _Traits, _Allocator>::basic_string(basic_string&& __str)
- #if _LIBCPP_STD_VER <= 14
          _NOEXCEPT_(is_nothrow_move_constructible<allocator_type>::value)
-@@ -1655,7 +1679,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(basic_string&& __str)
+     : __r_(_VSTD::move(__str.__r_))
+@@ -2130,7 +2148,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(basic_string&& __str)
  }
  
  template <class _CharT, class _Traits, class _Allocator>
 -inline _LIBCPP_INLINE_VISIBILITY
 +inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
  basic_string<_CharT, _Traits, _Allocator>::basic_string(basic_string&& __str, const allocator_type& __a)
-     : __r_(__second_tag(), __a)
+     : __r_(__a)
  {
-@@ -1676,6 +1700,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(basic_string&& __str, co
- #endif  // _LIBCPP_CXX03_LANG
+@@ -2149,6 +2167,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(basic_string&& __str, co
+ #endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES
  
  template <class _CharT, class _Traits, class _Allocator>
 +CHROMIUM_LIBCPP_ALWAYS_INLINE
  void
  basic_string<_CharT, _Traits, _Allocator>::__init(size_type __n, value_type __c)
  {
-@@ -1700,7 +1725,7 @@ basic_string<_CharT, _Traits, _Allocator>::__init(size_type __n, value_type __c)
+@@ -2173,7 +2192,7 @@ basic_string<_CharT, _Traits, _Allocator>::__init(size_type __n, value_type __c)
  }
  
  template <class _CharT, class _Traits, class _Allocator>
--inline _LIBCPP_INLINE_VISIBILITY
-+inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
- basic_string<_CharT, _Traits, _Allocator>::basic_string(size_type __n, _CharT __c)
+-inline _LIBCPP_INLINE_VISIBILITY_EXCEPT_GCC49
++inline CHROMIUM_LIBCPP_INLINE_VISIBILITY_EXCEPT_GCC49
+ basic_string<_CharT, _Traits, _Allocator>::basic_string(size_type __n, value_type __c)
  {
      __init(__n, __c);
-@@ -1710,7 +1735,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(size_type __n, _CharT __
+@@ -2183,7 +2202,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(size_type __n, value_typ
  }
  
  template <class _CharT, class _Traits, class _Allocator>
 -inline _LIBCPP_INLINE_VISIBILITY
 +inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
- basic_string<_CharT, _Traits, _Allocator>::basic_string(size_type __n, _CharT __c, const _Allocator& __a)
-     : __r_(__second_tag(), __a)
+ basic_string<_CharT, _Traits, _Allocator>::basic_string(size_type __n, value_type __c, const allocator_type& __a)
+     : __r_(__a)
  {
-@@ -1721,6 +1746,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(size_type __n, _CharT __
+@@ -2194,7 +2213,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(size_type __n, value_typ
  }
  
  template <class _CharT, class _Traits, class _Allocator>
-+CHROMIUM_LIBCPP_NEVER_INLINE
- basic_string<_CharT, _Traits, _Allocator>::basic_string(const basic_string& __str,
-                                                         size_type __pos, size_type __n,
-                                                         const _Allocator& __a)
-@@ -1736,7 +1762,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(const basic_string& __st
- }
- 
- template <class _CharT, class _Traits, class _Allocator>
--inline _LIBCPP_INLINE_VISIBILITY
-+inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
- basic_string<_CharT, _Traits, _Allocator>::basic_string(const basic_string& __str, size_type __pos,
-                                                         const _Allocator& __a)
-     : __r_(__second_tag(), __a)
-@@ -1752,6 +1778,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(const basic_string& __st
- 
- template <class _CharT, class _Traits, class _Allocator>
- template <class _Tp>
-+CHROMIUM_LIBCPP_NEVER_INLINE
- basic_string<_CharT, _Traits, _Allocator>::basic_string(
-              const _Tp& __t, size_type __pos, size_type __n, const allocator_type& __a,
- 			 typename enable_if<__can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value, void>::type *)
-@@ -1765,7 +1792,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(
- }
- 
- template <class _CharT, class _Traits, class _Allocator>
--inline _LIBCPP_INLINE_VISIBILITY
-+inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
- basic_string<_CharT, _Traits, _Allocator>::basic_string(__self_view __sv)
+-basic_string<_CharT, _Traits, _Allocator>::basic_string(const basic_string& __str, size_type __pos, size_type __n,
++CHROMIUM_LIBCPP_NEVER_INLINE basic_string<_CharT, _Traits, _Allocator>::basic_string(const basic_string& __str, size_type __pos, size_type __n,
+                                                         const allocator_type& __a)
+     : __r_(__a)
  {
-     __init(__sv.data(), __sv.size());
-@@ -1775,7 +1802,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(__self_view __sv)
- }
- 
- template <class _CharT, class _Traits, class _Allocator>
--inline _LIBCPP_INLINE_VISIBILITY
-+inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
- basic_string<_CharT, _Traits, _Allocator>::basic_string(__self_view __sv, const _Allocator& __a)
-     : __r_(__second_tag(), __a)
- {
-@@ -1787,6 +1814,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(__self_view __sv, const
+@@ -2209,6 +2228,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(const basic_string& __st
  
  template <class _CharT, class _Traits, class _Allocator>
  template <class _InputIterator>
 +CHROMIUM_LIBCPP_ALWAYS_INLINE
  typename enable_if
  <
-     __is_exactly_input_iterator<_InputIterator>::value,
-@@ -1814,6 +1842,7 @@ basic_string<_CharT, _Traits, _Allocator>::__init(_InputIterator __first, _Input
+      __is_input_iterator  <_InputIterator>::value &&
+@@ -2237,6 +2257,7 @@ basic_string<_CharT, _Traits, _Allocator>::__init(_InputIterator __first, _Input
  
  template <class _CharT, class _Traits, class _Allocator>
  template <class _ForwardIterator>
@@ -537,7 +417,7 @@
  typename enable_if
  <
      __is_forward_iterator<_ForwardIterator>::value,
-@@ -1845,7 +1874,7 @@ basic_string<_CharT, _Traits, _Allocator>::__init(_ForwardIterator __first, _For
+@@ -2268,7 +2289,7 @@ basic_string<_CharT, _Traits, _Allocator>::__init(_ForwardIterator __first, _For
  
  template <class _CharT, class _Traits, class _Allocator>
  template<class _InputIterator>
@@ -546,7 +426,7 @@
  basic_string<_CharT, _Traits, _Allocator>::basic_string(_InputIterator __first, _InputIterator __last)
  {
      __init(__first, __last);
-@@ -1856,7 +1885,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(_InputIterator __first,
+@@ -2279,7 +2300,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(_InputIterator __first,
  
  template <class _CharT, class _Traits, class _Allocator>
  template<class _InputIterator>
@@ -554,27 +434,26 @@
 +inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
  basic_string<_CharT, _Traits, _Allocator>::basic_string(_InputIterator __first, _InputIterator __last,
                                                          const allocator_type& __a)
-     : __r_(__second_tag(), __a)
-@@ -1870,7 +1899,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(_InputIterator __first,
- #ifndef _LIBCPP_CXX03_LANG
+     : __r_(__a)
+@@ -2293,7 +2314,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(_InputIterator __first,
+ #ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
  
  template <class _CharT, class _Traits, class _Allocator>
 -inline _LIBCPP_INLINE_VISIBILITY
 +inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
- basic_string<_CharT, _Traits, _Allocator>::basic_string(
-     initializer_list<_CharT> __il)
+ basic_string<_CharT, _Traits, _Allocator>::basic_string(initializer_list<value_type> __il)
  {
-@@ -1881,8 +1910,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(
+     __init(__il.begin(), __il.end());
+@@ -2303,7 +2324,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(initializer_list<value_t
  }
  
  template <class _CharT, class _Traits, class _Allocator>
 -inline _LIBCPP_INLINE_VISIBILITY
--
 +inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
- basic_string<_CharT, _Traits, _Allocator>::basic_string(
-     initializer_list<_CharT> __il, const _Allocator& __a)
-     : __r_(__second_tag(), __a)
-@@ -2010,6 +2038,7 @@ basic_string<_CharT, _Traits, _Allocator>::assign(size_type __n, value_type __c)
+ basic_string<_CharT, _Traits, _Allocator>::basic_string(initializer_list<value_type> __il, const allocator_type& __a)
+     : __r_(__a)
+ {
+@@ -2430,6 +2451,7 @@ basic_string<_CharT, _Traits, _Allocator>::assign(size_type __n, value_type __c)
  }
  
  template <class _CharT, class _Traits, class _Allocator>
@@ -582,7 +461,7 @@
  basic_string<_CharT, _Traits, _Allocator>&
  basic_string<_CharT, _Traits, _Allocator>::operator=(value_type __c)
  {
-@@ -2031,6 +2060,7 @@ basic_string<_CharT, _Traits, _Allocator>::operator=(value_type __c)
+@@ -2451,6 +2473,7 @@ basic_string<_CharT, _Traits, _Allocator>::operator=(value_type __c)
  }
  
  template <class _CharT, class _Traits, class _Allocator>
@@ -590,7 +469,7 @@
  basic_string<_CharT, _Traits, _Allocator>&
  basic_string<_CharT, _Traits, _Allocator>::operator=(const basic_string& __str)
  {
-@@ -2074,7 +2104,7 @@ basic_string<_CharT, _Traits, _Allocator>::__move_assign(basic_string& __str, tr
+@@ -2489,7 +2512,7 @@ basic_string<_CharT, _Traits, _Allocator>::__move_assign(basic_string& __str, tr
  }
  
  template <class _CharT, class _Traits, class _Allocator>
@@ -598,8 +477,8 @@
 +inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
  basic_string<_CharT, _Traits, _Allocator>&
  basic_string<_CharT, _Traits, _Allocator>::operator=(basic_string&& __str)
-     _NOEXCEPT_((__noexcept_move_assign_container<_Allocator, __alloc_traits>::value))
-@@ -3068,6 +3098,7 @@ struct _LIBCPP_HIDDEN __traits_eq
+     _NOEXCEPT_(__alloc_traits::propagate_on_container_move_assignment::value &&
+@@ -3421,6 +3444,7 @@ struct _LIBCPP_HIDDEN __traits_eq
  };
  
  template<class _CharT, class _Traits, class _Allocator>
@@ -607,7 +486,7 @@
  typename basic_string<_CharT, _Traits, _Allocator>::size_type
  basic_string<_CharT, _Traits, _Allocator>::find(const value_type* __s,
                                                  size_type __pos,
-@@ -3079,7 +3110,7 @@ basic_string<_CharT, _Traits, _Allocator>::find(const value_type* __s,
+@@ -3432,7 +3456,7 @@ basic_string<_CharT, _Traits, _Allocator>::find(const value_type* __s,
  }
  
  template<class _CharT, class _Traits, class _Allocator>
@@ -616,7 +495,7 @@
  typename basic_string<_CharT, _Traits, _Allocator>::size_type
  basic_string<_CharT, _Traits, _Allocator>::find(const basic_string& __str,
                                                  size_type __pos) const _NOEXCEPT
-@@ -3099,7 +3130,7 @@ basic_string<_CharT, _Traits, _Allocator>::find(__self_view __sv,
+@@ -3442,7 +3466,7 @@ basic_string<_CharT, _Traits, _Allocator>::find(const basic_string& __str,
  }
  
  template<class _CharT, class _Traits, class _Allocator>
@@ -625,7 +504,7 @@
  typename basic_string<_CharT, _Traits, _Allocator>::size_type
  basic_string<_CharT, _Traits, _Allocator>::find(const value_type* __s,
                                                  size_type __pos) const _NOEXCEPT
-@@ -3121,6 +3152,7 @@ basic_string<_CharT, _Traits, _Allocator>::find(value_type __c,
+@@ -3464,6 +3488,7 @@ basic_string<_CharT, _Traits, _Allocator>::find(value_type __c,
  // rfind
  
  template<class _CharT, class _Traits, class _Allocator>
@@ -633,7 +512,7 @@
  typename basic_string<_CharT, _Traits, _Allocator>::size_type
  basic_string<_CharT, _Traits, _Allocator>::rfind(const value_type* __s,
                                                   size_type __pos,
-@@ -3132,7 +3164,7 @@ basic_string<_CharT, _Traits, _Allocator>::rfind(const value_type* __s,
+@@ -3475,7 +3500,7 @@ basic_string<_CharT, _Traits, _Allocator>::rfind(const value_type* __s,
  }
  
  template<class _CharT, class _Traits, class _Allocator>
@@ -642,16 +521,7 @@
  typename basic_string<_CharT, _Traits, _Allocator>::size_type
  basic_string<_CharT, _Traits, _Allocator>::rfind(const basic_string& __str,
                                                   size_type __pos) const _NOEXCEPT
-@@ -3142,7 +3174,7 @@ basic_string<_CharT, _Traits, _Allocator>::rfind(const basic_string& __str,
- }
- 
- template<class _CharT, class _Traits, class _Allocator>
--inline _LIBCPP_INLINE_VISIBILITY
-+inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
- typename basic_string<_CharT, _Traits, _Allocator>::size_type
- basic_string<_CharT, _Traits, _Allocator>::rfind(__self_view __sv,
-                                                 size_type __pos) const _NOEXCEPT
-@@ -3152,7 +3184,7 @@ basic_string<_CharT, _Traits, _Allocator>::rfind(__self_view __sv,
+@@ -3485,7 +3510,7 @@ basic_string<_CharT, _Traits, _Allocator>::rfind(const basic_string& __str,
  }
  
  template<class _CharT, class _Traits, class _Allocator>
@@ -660,7 +530,7 @@
  typename basic_string<_CharT, _Traits, _Allocator>::size_type
  basic_string<_CharT, _Traits, _Allocator>::rfind(const value_type* __s,
                                                   size_type __pos) const _NOEXCEPT
-@@ -3174,6 +3206,7 @@ basic_string<_CharT, _Traits, _Allocator>::rfind(value_type __c,
+@@ -3507,6 +3532,7 @@ basic_string<_CharT, _Traits, _Allocator>::rfind(value_type __c,
  // find_first_of
  
  template<class _CharT, class _Traits, class _Allocator>
@@ -668,7 +538,7 @@
  typename basic_string<_CharT, _Traits, _Allocator>::size_type
  basic_string<_CharT, _Traits, _Allocator>::find_first_of(const value_type* __s,
                                                           size_type __pos,
-@@ -3185,7 +3218,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_first_of(const value_type* __s,
+@@ -3518,7 +3544,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_first_of(const value_type* __s,
  }
  
  template<class _CharT, class _Traits, class _Allocator>
@@ -677,16 +547,7 @@
  typename basic_string<_CharT, _Traits, _Allocator>::size_type
  basic_string<_CharT, _Traits, _Allocator>::find_first_of(const basic_string& __str,
                                                           size_type __pos) const _NOEXCEPT
-@@ -3195,7 +3228,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_first_of(const basic_string& __s
- }
- 
- template<class _CharT, class _Traits, class _Allocator>
--inline _LIBCPP_INLINE_VISIBILITY
-+inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
- typename basic_string<_CharT, _Traits, _Allocator>::size_type
- basic_string<_CharT, _Traits, _Allocator>::find_first_of(__self_view __sv,
-                                                 size_type __pos) const _NOEXCEPT
-@@ -3205,7 +3238,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_first_of(__self_view __sv,
+@@ -3528,7 +3554,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_first_of(const basic_string& __s
  }
  
  template<class _CharT, class _Traits, class _Allocator>
@@ -695,7 +556,7 @@
  typename basic_string<_CharT, _Traits, _Allocator>::size_type
  basic_string<_CharT, _Traits, _Allocator>::find_first_of(const value_type* __s,
                                                           size_type __pos) const _NOEXCEPT
-@@ -3227,6 +3260,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_first_of(value_type __c,
+@@ -3550,6 +3576,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_first_of(value_type __c,
  // find_last_of
  
  template<class _CharT, class _Traits, class _Allocator>
@@ -703,7 +564,7 @@
  typename basic_string<_CharT, _Traits, _Allocator>::size_type
  basic_string<_CharT, _Traits, _Allocator>::find_last_of(const value_type* __s,
                                                          size_type __pos,
-@@ -3238,7 +3272,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_last_of(const value_type* __s,
+@@ -3561,7 +3588,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_last_of(const value_type* __s,
  }
  
  template<class _CharT, class _Traits, class _Allocator>
@@ -712,7 +573,7 @@
  typename basic_string<_CharT, _Traits, _Allocator>::size_type
  basic_string<_CharT, _Traits, _Allocator>::find_last_of(const basic_string& __str,
                                                          size_type __pos) const _NOEXCEPT
-@@ -3258,7 +3292,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_last_of(__self_view __sv,
+@@ -3571,7 +3598,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_last_of(const basic_string& __st
  }
  
  template<class _CharT, class _Traits, class _Allocator>
@@ -721,7 +582,7 @@
  typename basic_string<_CharT, _Traits, _Allocator>::size_type
  basic_string<_CharT, _Traits, _Allocator>::find_last_of(const value_type* __s,
                                                          size_type __pos) const _NOEXCEPT
-@@ -3280,6 +3314,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_last_of(value_type __c,
+@@ -3593,6 +3620,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_last_of(value_type __c,
  // find_first_not_of
  
  template<class _CharT, class _Traits, class _Allocator>
@@ -729,7 +590,7 @@
  typename basic_string<_CharT, _Traits, _Allocator>::size_type
  basic_string<_CharT, _Traits, _Allocator>::find_first_not_of(const value_type* __s,
                                                               size_type __pos,
-@@ -3291,7 +3326,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_first_not_of(const value_type* _
+@@ -3604,7 +3632,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_first_not_of(const value_type* _
  }
  
  template<class _CharT, class _Traits, class _Allocator>
@@ -738,7 +599,7 @@
  typename basic_string<_CharT, _Traits, _Allocator>::size_type
  basic_string<_CharT, _Traits, _Allocator>::find_first_not_of(const basic_string& __str,
                                                               size_type __pos) const _NOEXCEPT
-@@ -3311,7 +3346,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_first_not_of(__self_view __sv,
+@@ -3614,7 +3642,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_first_not_of(const basic_string&
  }
  
  template<class _CharT, class _Traits, class _Allocator>
@@ -747,7 +608,7 @@
  typename basic_string<_CharT, _Traits, _Allocator>::size_type
  basic_string<_CharT, _Traits, _Allocator>::find_first_not_of(const value_type* __s,
                                                               size_type __pos) const _NOEXCEPT
-@@ -3334,6 +3369,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_first_not_of(value_type __c,
+@@ -3637,6 +3665,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_first_not_of(value_type __c,
  // find_last_not_of
  
  template<class _CharT, class _Traits, class _Allocator>
@@ -755,7 +616,7 @@
  typename basic_string<_CharT, _Traits, _Allocator>::size_type
  basic_string<_CharT, _Traits, _Allocator>::find_last_not_of(const value_type* __s,
                                                              size_type __pos,
-@@ -3345,7 +3381,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_last_not_of(const value_type* __
+@@ -3648,7 +3677,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_last_not_of(const value_type* __
  }
  
  template<class _CharT, class _Traits, class _Allocator>
@@ -764,7 +625,7 @@
  typename basic_string<_CharT, _Traits, _Allocator>::size_type
  basic_string<_CharT, _Traits, _Allocator>::find_last_not_of(const basic_string& __str,
                                                              size_type __pos) const _NOEXCEPT
-@@ -3365,7 +3401,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_last_not_of(__self_view __sv,
+@@ -3658,7 +3687,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_last_not_of(const basic_string&
  }
  
  template<class _CharT, class _Traits, class _Allocator>
@@ -773,33 +634,16 @@
  typename basic_string<_CharT, _Traits, _Allocator>::size_type
  basic_string<_CharT, _Traits, _Allocator>::find_last_not_of(const value_type* __s,
                                                              size_type __pos) const _NOEXCEPT
-@@ -3388,7 +3424,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_last_not_of(value_type __c,
+@@ -3681,7 +3710,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_last_not_of(value_type __c,
  // compare
  
  template <class _CharT, class _Traits, class _Allocator>
 -inline _LIBCPP_INLINE_VISIBILITY
 +inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
  int
- basic_string<_CharT, _Traits, _Allocator>::compare(__self_view __sv) const _NOEXCEPT
- {
-@@ -3406,7 +3442,7 @@ basic_string<_CharT, _Traits, _Allocator>::compare(__self_view __sv) const _NOEX
- }
- 
- template <class _CharT, class _Traits, class _Allocator>
--inline _LIBCPP_INLINE_VISIBILITY
-+inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
- int
  basic_string<_CharT, _Traits, _Allocator>::compare(const basic_string& __str) const _NOEXCEPT
  {
-@@ -3458,6 +3494,7 @@ basic_string<_CharT, _Traits, _Allocator>::compare(size_type __pos1,
- 
- template <class _CharT, class _Traits, class _Allocator>
- template <class _Tp>
-+CHROMIUM_LIBCPP_NEVER_INLINE
- typename enable_if
- <
- 	__can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value,
-@@ -3474,6 +3511,7 @@ basic_string<_CharT, _Traits, _Allocator>::compare(size_type __pos1,
+@@ -3742,6 +3771,7 @@ basic_string<_CharT, _Traits, _Allocator>::compare(size_type __pos1,
  }
  
  template <class _CharT, class _Traits, class _Allocator>
@@ -807,23 +651,7 @@
  int
  basic_string<_CharT, _Traits, _Allocator>::compare(size_type __pos1,
                                                     size_type __n1,
-@@ -3485,6 +3523,7 @@ basic_string<_CharT, _Traits, _Allocator>::compare(size_type __pos1,
- }
- 
- template <class _CharT, class _Traits, class _Allocator>
-+CHROMIUM_LIBCPP_NEVER_INLINE
- int
- basic_string<_CharT, _Traits, _Allocator>::compare(const value_type* __s) const _NOEXCEPT
- {
-@@ -3493,6 +3532,7 @@ basic_string<_CharT, _Traits, _Allocator>::compare(const value_type* __s) const
- }
- 
- template <class _CharT, class _Traits, class _Allocator>
-+CHROMIUM_LIBCPP_NEVER_INLINE
- int
- basic_string<_CharT, _Traits, _Allocator>::compare(size_type __pos1,
-                                                    size_type __n1,
-@@ -3523,7 +3563,7 @@ basic_string<_CharT, _Traits, _Allocator>::__invariants() const
+@@ -3785,7 +3815,7 @@ basic_string<_CharT, _Traits, _Allocator>::__invariants() const
  // operator==
  
  template<class _CharT, class _Traits, class _Allocator>
@@ -832,7 +660,7 @@
  bool
  operator==(const basic_string<_CharT, _Traits, _Allocator>& __lhs,
             const basic_string<_CharT, _Traits, _Allocator>& __rhs) _NOEXCEPT
-@@ -3535,7 +3575,7 @@ operator==(const basic_string<_CharT, _Traits, _Allocator>& __lhs,
+@@ -3797,7 +3827,7 @@ operator==(const basic_string<_CharT, _Traits, _Allocator>& __lhs,
  }
  
  template<class _Allocator>
@@ -841,25 +669,7 @@
  bool
  operator==(const basic_string<char, char_traits<char>, _Allocator>& __lhs,
             const basic_string<char, char_traits<char>, _Allocator>& __rhs) _NOEXCEPT
-@@ -3554,7 +3594,7 @@ operator==(const basic_string<char, char_traits<char>, _Allocator>& __lhs,
- }
- 
- template<class _CharT, class _Traits, class _Allocator>
--inline _LIBCPP_INLINE_VISIBILITY
-+inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
- bool
- operator==(const _CharT* __lhs,
-            const basic_string<_CharT, _Traits, _Allocator>& __rhs) _NOEXCEPT
-@@ -3567,7 +3607,7 @@ operator==(const _CharT* __lhs,
- }
- 
- template<class _CharT, class _Traits, class _Allocator>
--inline _LIBCPP_INLINE_VISIBILITY
-+inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
- bool
- operator==(const basic_string<_CharT,_Traits,_Allocator>& __lhs,
-            const _CharT* __rhs) _NOEXCEPT
-@@ -3725,6 +3765,7 @@ operator>=(const _CharT* __lhs,
+@@ -3981,6 +4011,7 @@ operator>=(const _CharT* __lhs,
  // operator +
  
  template<class _CharT, class _Traits, class _Allocator>
@@ -867,7 +677,7 @@
  basic_string<_CharT, _Traits, _Allocator>
  operator+(const basic_string<_CharT, _Traits, _Allocator>& __lhs,
            const basic_string<_CharT, _Traits, _Allocator>& __rhs)
-@@ -3738,6 +3779,7 @@ operator+(const basic_string<_CharT, _Traits, _Allocator>& __lhs,
+@@ -3994,6 +4025,7 @@ operator+(const basic_string<_CharT, _Traits, _Allocator>& __lhs,
  }
  
  template<class _CharT, class _Traits, class _Allocator>
@@ -875,7 +685,7 @@
  basic_string<_CharT, _Traits, _Allocator>
  operator+(const _CharT* __lhs , const basic_string<_CharT,_Traits,_Allocator>& __rhs)
  {
-@@ -3750,6 +3792,7 @@ operator+(const _CharT* __lhs , const basic_string<_CharT,_Traits,_Allocator>& _
+@@ -4006,6 +4038,7 @@ operator+(const _CharT* __lhs , const basic_string<_CharT,_Traits,_Allocator>& _
  }
  
  template<class _CharT, class _Traits, class _Allocator>
@@ -883,7 +693,7 @@
  basic_string<_CharT, _Traits, _Allocator>
  operator+(_CharT __lhs, const basic_string<_CharT,_Traits,_Allocator>& __rhs)
  {
-@@ -3761,6 +3804,7 @@ operator+(_CharT __lhs, const basic_string<_CharT,_Traits,_Allocator>& __rhs)
+@@ -4017,6 +4050,7 @@ operator+(_CharT __lhs, const basic_string<_CharT,_Traits,_Allocator>& __rhs)
  }
  
  template<class _CharT, class _Traits, class _Allocator>
@@ -891,7 +701,7 @@
  basic_string<_CharT, _Traits, _Allocator>
  operator+(const basic_string<_CharT, _Traits, _Allocator>& __lhs, const _CharT* __rhs)
  {
-@@ -3773,6 +3817,7 @@ operator+(const basic_string<_CharT, _Traits, _Allocator>& __lhs, const _CharT*
+@@ -4029,6 +4063,7 @@ operator+(const basic_string<_CharT, _Traits, _Allocator>& __lhs, const _CharT*
  }
  
  template<class _CharT, class _Traits, class _Allocator>
@@ -899,47 +709,11 @@
  basic_string<_CharT, _Traits, _Allocator>
  operator+(const basic_string<_CharT, _Traits, _Allocator>& __lhs, _CharT __rhs)
  {
-@@ -3786,7 +3831,7 @@ operator+(const basic_string<_CharT, _Traits, _Allocator>& __lhs, _CharT __rhs)
- #ifndef _LIBCPP_CXX03_LANG
- 
- template<class _CharT, class _Traits, class _Allocator>
--inline _LIBCPP_INLINE_VISIBILITY
-+inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
- basic_string<_CharT, _Traits, _Allocator>
- operator+(basic_string<_CharT, _Traits, _Allocator>&& __lhs, const basic_string<_CharT, _Traits, _Allocator>& __rhs)
- {
-@@ -3794,7 +3839,7 @@ operator+(basic_string<_CharT, _Traits, _Allocator>&& __lhs, const basic_string<
- }
- 
- template<class _CharT, class _Traits, class _Allocator>
--inline _LIBCPP_INLINE_VISIBILITY
-+inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
- basic_string<_CharT, _Traits, _Allocator>
- operator+(const basic_string<_CharT, _Traits, _Allocator>& __lhs, basic_string<_CharT, _Traits, _Allocator>&& __rhs)
- {
-@@ -3802,7 +3847,7 @@ operator+(const basic_string<_CharT, _Traits, _Allocator>& __lhs, basic_string<_
- }
- 
- template<class _CharT, class _Traits, class _Allocator>
--inline _LIBCPP_INLINE_VISIBILITY
-+inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
- basic_string<_CharT, _Traits, _Allocator>
- operator+(basic_string<_CharT, _Traits, _Allocator>&& __lhs, basic_string<_CharT, _Traits, _Allocator>&& __rhs)
- {
-@@ -3810,7 +3855,7 @@ operator+(basic_string<_CharT, _Traits, _Allocator>&& __lhs, basic_string<_CharT
- }
- 
- template<class _CharT, class _Traits, class _Allocator>
--inline _LIBCPP_INLINE_VISIBILITY
-+inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
- basic_string<_CharT, _Traits, _Allocator>
- operator+(const _CharT* __lhs , basic_string<_CharT,_Traits,_Allocator>&& __rhs)
- {
-diff --git a/sources/cxx-stl/llvm-libc++/include/vector b/sources/cxx-stl/llvm-libc++/include/vector
-index 6e9920a0..a7211e6d 100644
---- a/sources/cxx-stl/llvm-libc++/include/vector
-+++ b/sources/cxx-stl/llvm-libc++/include/vector
-@@ -358,7 +358,9 @@ protected:
+diff --git a/sources/cxx-stl/llvm-libc++/libcxx/include/vector b/sources/cxx-stl/llvm-libc++/libcxx/include/vector
+index 2cc23e5c..78e53671 100644
+--- a/sources/cxx-stl/llvm-libc++/libcxx/include/vector
++++ b/sources/cxx-stl/llvm-libc++/libcxx/include/vector
+@@ -374,7 +374,9 @@ protected:
      size_type capacity() const _NOEXCEPT
          {return static_cast<size_type>(__end_cap() - __begin_);}
  
@@ -950,7 +724,7 @@
      void __destruct_at_end(pointer __new_last) _NOEXCEPT;
  
      _LIBCPP_INLINE_VISIBILITY
-@@ -404,7 +406,7 @@ private:
+@@ -440,7 +442,7 @@ private:
  };
  
  template <class _Tp, class _Allocator>
@@ -959,7 +733,7 @@
  void
  __vector_base<_Tp, _Allocator>::__destruct_at_end(pointer __new_last) _NOEXCEPT
  {
-@@ -674,13 +676,15 @@ public:
+@@ -698,12 +700,15 @@ public:
      const value_type* data() const _NOEXCEPT
          {return _VSTD::__to_raw_pointer(this->__begin_);}
  
@@ -967,18 +741,18 @@
 +    // push_back and emplace_back saved 270kb (Sept 2017).
 +    // For more context: https://crbug.com/738155
 +    CHROMIUM_LIBCPP_INLINE_VISIBILITY void push_back(const_reference __x);
- 
- #ifndef _LIBCPP_CXX03_LANG
+ #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
 -    _LIBCPP_INLINE_VISIBILITY void push_back(value_type&& __x);
 +    CHROMIUM_LIBCPP_INLINE_VISIBILITY void push_back(value_type&& __x);
- 
+ #ifndef _LIBCPP_HAS_NO_VARIADICS
      template <class... _Args>
--        _LIBCPP_INLINE_VISIBILITY
-+        CHROMIUM_LIBCPP_INLINE_VISIBILITY
- #if _LIBCPP_STD_VER > 14
-         reference emplace_back(_Args&&... __args);
- #else
-@@ -1572,7 +1576,7 @@ vector<_Tp, _Allocator>::__push_back_slow_path(_Up& __x)
+-        void emplace_back(_Args&&... __args);
++    CHROMIUM_LIBCPP_INLINE_VISIBILITY
++    void emplace_back(_Args&&... __args);
+ #endif  // _LIBCPP_HAS_NO_VARIADICS
+ #endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES
+     void pop_back();
+@@ -1576,7 +1581,7 @@ vector<_Tp, _Allocator>::__push_back_slow_path(_Up& __x)
  }
  
  template <class _Tp, class _Allocator>
@@ -987,8 +761,8 @@
  void
  vector<_Tp, _Allocator>::push_back(const_reference __x)
  {
-@@ -1591,7 +1595,7 @@ vector<_Tp, _Allocator>::push_back(const_reference __x)
- #ifndef _LIBCPP_CXX03_LANG
+@@ -1594,7 +1599,7 @@ vector<_Tp, _Allocator>::push_back(const_reference __x)
+ #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
  
  template <class _Tp, class _Allocator>
 -inline _LIBCPP_INLINE_VISIBILITY
@@ -996,15 +770,15 @@
  void
  vector<_Tp, _Allocator>::push_back(value_type&& __x)
  {
-@@ -1623,7 +1627,7 @@ vector<_Tp, _Allocator>::__emplace_back_slow_path(_Args&&... __args)
+@@ -1627,7 +1632,7 @@ vector<_Tp, _Allocator>::__emplace_back_slow_path(_Args&&... __args)
  
  template <class _Tp, class _Allocator>
  template <class... _Args>
--inline
+-inline _LIBCPP_INLINE_VISIBILITY
 +inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
- #if _LIBCPP_STD_VER > 14
- typename vector<_Tp, _Allocator>::reference
- #else
+ void
+ vector<_Tp, _Allocator>::emplace_back(_Args&&... __args)
+ {
 -- 
-2.15.0.531.g2ccb3012c9-goog
+2.14.1.821.g8fa685d3b7-goog
 
diff --git a/sources/cxx-stl/llvm-libc++/include/__config b/sources/cxx-stl/llvm-libc++/include/__config
index b784e2a..b7acd66 100644
--- a/sources/cxx-stl/llvm-libc++/include/__config
+++ b/sources/cxx-stl/llvm-libc++/include/__config
@@ -138,46 +138,6 @@
 #define __libcpp_has_include(__x) 0
 #endif
 
-// When CHROMIUM_CXX_TWEAK_INLINES is defined, certain STL types will be tweaked
-// to ensure that their constructor, or certain methods, are never inlined. This can
-// surprisingly reduce the size of the Chrome binary by more than 3%, with little
-// impact on performance.
-//
-// This is controlled by modifying some libc++ headers using the following macros:
-//
-//  CHROMIUM_LIBCPP_INLINE_VISIBILITY:
-//     Replaces an _existing_ _LIBCPP_INLINE_VISIBILITY use on a target method.
-//     I.e. this indicates libc++ methods that were already possibly inlined,
-//     but that will never be when the tweak is active.
-//
-//     Equivalent to _LIBCPP_INLINE_VISIBILITY if the tweak is disabled.
-//
-//  CHROMIUM_LIBCPP_NEVER_INLINE:
-//     This is added to ensure that a target method, which was _not_ already
-//     tagged with _LIBCPP_INLINE_VISIBILITY, will never be inlined.
-//
-//     This is equivalent to adding CHROMIUM_LIBCPP_INLINE_VISIBILITY, except
-//     that it helps spot the places where _LIBCPP_INLINE_VISIBILITY was not
-//     used in the original libc++ header.
-//
-//     Empty if the tweak is disabled.
-//
-//  CHROMIUM_LIBCPP_ALWAYS_INLINE:
-//     This is added to ensure that a target method, which is _not_ already
-//     tagged with _LIBCPP_INLINE_VISIBILITY, will always be inlined.
-//
-//     Empty if the tweak is disabled.
-//
-#ifdef CHROMIUM_CXX_TWEAK_INLINES
-#define CHROMIUM_LIBCPP_INLINE_VISIBILITY __attribute__ ((__visibility__("hidden"), noinline))
-#define CHROMIUM_LIBCPP_ALWAYS_INLINE __attribute__ ((__visibility__("hidden"), __always_inline__))
-#define CHROMIUM_LIBCPP_NEVER_INLINE __attribute__ ((__visibility__("hidden"), noinline))
-#else
-#define CHROMIUM_LIBCPP_INLINE_VISIBILITY _LIBCPP_INLINE_VISIBILITY
-#define CHROMIUM_LIBCPP_ALWAYS_INLINE
-#define CHROMIUM_LIBCPP_NEVER_INLINE
-#endif
-
 #if defined(__clang__)
 #define _LIBCPP_COMPILER_CLANG
 # ifndef __apple_build_version__
diff --git a/sources/cxx-stl/llvm-libc++/include/string b/sources/cxx-stl/llvm-libc++/include/string
index 5a31af0..cf42f52 100644
--- a/sources/cxx-stl/llvm-libc++/include/string
+++ b/sources/cxx-stl/llvm-libc++/include/string
@@ -536,28 +536,23 @@
 // basic_string
 
 template<class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
 basic_string<_CharT, _Traits, _Allocator>
 operator+(const basic_string<_CharT, _Traits, _Allocator>& __x,
           const basic_string<_CharT, _Traits, _Allocator>& __y);
 
 template<class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
 basic_string<_CharT, _Traits, _Allocator>
 operator+(const _CharT* __x, const basic_string<_CharT,_Traits,_Allocator>& __y);
 
 template<class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
 basic_string<_CharT, _Traits, _Allocator>
 operator+(_CharT __x, const basic_string<_CharT,_Traits,_Allocator>& __y);
 
 template<class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
 basic_string<_CharT, _Traits, _Allocator>
 operator+(const basic_string<_CharT, _Traits, _Allocator>& __x, const _CharT* __y);
 
 template<class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
 basic_string<_CharT, _Traits, _Allocator>
 operator+(const basic_string<_CharT, _Traits, _Allocator>& __x, _CharT __y);
 
@@ -750,24 +745,21 @@
 public:
     static const size_type npos = -1;
 
-    // Adding CHROMIUM defines to constructors and operator+ saved 300kb (Sept 2017).
-    // Made __init __always_inline__, and functions that call it (constructors and operator+) noinline.
-    // For more context: https://crbug.com/738155
-    CHROMIUM_LIBCPP_INLINE_VISIBILITY basic_string()
+    _LIBCPP_INLINE_VISIBILITY basic_string()
         _NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value);
 
-    CHROMIUM_LIBCPP_INLINE_VISIBILITY explicit basic_string(const allocator_type& __a)
+    _LIBCPP_INLINE_VISIBILITY explicit basic_string(const allocator_type& __a)
 #if _LIBCPP_STD_VER <= 14
         _NOEXCEPT_(is_nothrow_copy_constructible<allocator_type>::value);
 #else
         _NOEXCEPT;
 #endif
 
-    CHROMIUM_LIBCPP_NEVER_INLINE basic_string(const basic_string& __str);
-    CHROMIUM_LIBCPP_NEVER_INLINE basic_string(const basic_string& __str, const allocator_type& __a);
+    basic_string(const basic_string& __str);
+    basic_string(const basic_string& __str, const allocator_type& __a);
 
 #ifndef _LIBCPP_CXX03_LANG
-    CHROMIUM_LIBCPP_INLINE_VISIBILITY
+    _LIBCPP_INLINE_VISIBILITY
     basic_string(basic_string&& __str)
 #if _LIBCPP_STD_VER <= 14
         _NOEXCEPT_(is_nothrow_move_constructible<allocator_type>::value);
@@ -775,24 +767,23 @@
         _NOEXCEPT;
 #endif
 
-    CHROMIUM_LIBCPP_INLINE_VISIBILITY
+    _LIBCPP_INLINE_VISIBILITY
     basic_string(basic_string&& __str, const allocator_type& __a);
 #endif  // _LIBCPP_CXX03_LANG
-    CHROMIUM_LIBCPP_INLINE_VISIBILITY basic_string(const _CharT* __s);
-    CHROMIUM_LIBCPP_INLINE_VISIBILITY
+    _LIBCPP_INLINE_VISIBILITY basic_string(const _CharT* __s);
+    _LIBCPP_INLINE_VISIBILITY
     basic_string(const _CharT* __s, const _Allocator& __a);
-    CHROMIUM_LIBCPP_INLINE_VISIBILITY
+    _LIBCPP_INLINE_VISIBILITY
     basic_string(const _CharT* __s, size_type __n);
-    CHROMIUM_LIBCPP_INLINE_VISIBILITY
+    _LIBCPP_INLINE_VISIBILITY
     basic_string(const _CharT* __s, size_type __n, const _Allocator& __a);
-    CHROMIUM_LIBCPP_INLINE_VISIBILITY
+    _LIBCPP_INLINE_VISIBILITY
     basic_string(size_type __n, _CharT __c);
-    CHROMIUM_LIBCPP_INLINE_VISIBILITY
+    _LIBCPP_INLINE_VISIBILITY
     basic_string(size_type __n, _CharT __c, const _Allocator& __a);
-    CHROMIUM_LIBCPP_NEVER_INLINE
     basic_string(const basic_string& __str, size_type __pos, size_type __n,
                  const _Allocator& __a = _Allocator());
-    CHROMIUM_LIBCPP_INLINE_VISIBILITY
+    _LIBCPP_INLINE_VISIBILITY
     basic_string(const basic_string& __str, size_type __pos,
                  const _Allocator& __a = _Allocator());
     template<class _Tp>
@@ -800,20 +791,20 @@
         basic_string(const _Tp& __t, size_type __pos, size_type __n,
                      const allocator_type& __a = allocator_type(),
                      typename enable_if<__can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value, void>::type* = 0);
-    CHROMIUM_LIBCPP_INLINE_VISIBILITY explicit
+    _LIBCPP_INLINE_VISIBILITY explicit
     basic_string(__self_view __sv);
-    CHROMIUM_LIBCPP_INLINE_VISIBILITY
+    _LIBCPP_INLINE_VISIBILITY
     basic_string(__self_view __sv, const _Allocator& __a);
     template<class _InputIterator>
-        CHROMIUM_LIBCPP_INLINE_VISIBILITY
+        _LIBCPP_INLINE_VISIBILITY
         basic_string(_InputIterator __first, _InputIterator __last);
     template<class _InputIterator>
-        CHROMIUM_LIBCPP_INLINE_VISIBILITY
+        _LIBCPP_INLINE_VISIBILITY
         basic_string(_InputIterator __first, _InputIterator __last, const allocator_type& __a);
 #ifndef _LIBCPP_CXX03_LANG
-    CHROMIUM_LIBCPP_INLINE_VISIBILITY
+    _LIBCPP_INLINE_VISIBILITY
     basic_string(initializer_list<_CharT> __il);
-    CHROMIUM_LIBCPP_INLINE_VISIBILITY
+    _LIBCPP_INLINE_VISIBILITY
     basic_string(initializer_list<_CharT> __il, const _Allocator& __a);
 #endif  // _LIBCPP_CXX03_LANG
 
@@ -827,13 +818,13 @@
 #ifndef _LIBCPP_CXX03_LANG
     template <class = void>
 #endif
-    CHROMIUM_LIBCPP_INLINE_VISIBILITY
+    _LIBCPP_INLINE_VISIBILITY
     basic_string& operator=(__self_view __sv)  {return assign(__sv);}
 #ifndef _LIBCPP_CXX03_LANG
-    CHROMIUM_LIBCPP_INLINE_VISIBILITY
+    _LIBCPP_INLINE_VISIBILITY
     basic_string& operator=(basic_string&& __str)
         _NOEXCEPT_((__noexcept_move_assign_container<_Allocator, __alloc_traits>::value));
-    _LIBCPP_INLINE_VISIBILITY
+     _LIBCPP_INLINE_VISIBILITY
     basic_string& operator=(initializer_list<value_type> __il) {return assign(__il.begin(), __il.size());}
 #endif
     _LIBCPP_INLINE_VISIBILITY basic_string& operator=(const value_type* __s) {return assign(__s);}
@@ -1093,13 +1084,13 @@
     basic_string& replace(size_type __pos, size_type __n1, const value_type* __s, size_type __n2);
     basic_string& replace(size_type __pos, size_type __n1, const value_type* __s);
     basic_string& replace(size_type __pos, size_type __n1, size_type __n2, value_type __c);
-    CHROMIUM_LIBCPP_INLINE_VISIBILITY
+    _LIBCPP_INLINE_VISIBILITY
     basic_string& replace(const_iterator __i1, const_iterator __i2, const basic_string& __str);
     _LIBCPP_INLINE_VISIBILITY
     basic_string& replace(const_iterator __i1, const_iterator __i2, __self_view __sv) { return replace(__i1 - begin(), __i2 - __i1, __sv); }
     _LIBCPP_INLINE_VISIBILITY
     basic_string& replace(const_iterator __i1, const_iterator __i2, const value_type* __s, size_type __n);
-    CHROMIUM_LIBCPP_INLINE_VISIBILITY
+    _LIBCPP_INLINE_VISIBILITY
     basic_string& replace(const_iterator __i1, const_iterator __i2, const value_type* __s);
     _LIBCPP_INLINE_VISIBILITY
     basic_string& replace(const_iterator __i1, const_iterator __i2, size_type __n, value_type __c);
@@ -1142,77 +1133,67 @@
     _LIBCPP_INLINE_VISIBILITY
     allocator_type get_allocator() const _NOEXCEPT {return __alloc();}
 
-    // Adding CHROMIUM defines to find methods saved 20kb (Sept 2017).
-    CHROMIUM_LIBCPP_INLINE_VISIBILITY
+    _LIBCPP_INLINE_VISIBILITY
     size_type find(const basic_string& __str, size_type __pos = 0) const _NOEXCEPT;
-    CHROMIUM_LIBCPP_INLINE_VISIBILITY
+    _LIBCPP_INLINE_VISIBILITY
     size_type find(__self_view __sv, size_type __pos = 0) const _NOEXCEPT;
-    CHROMIUM_LIBCPP_NEVER_INLINE
     size_type find(const value_type* __s, size_type __pos, size_type __n) const _NOEXCEPT;
-    CHROMIUM_LIBCPP_INLINE_VISIBILITY
+    _LIBCPP_INLINE_VISIBILITY
     size_type find(const value_type* __s, size_type __pos = 0) const _NOEXCEPT;
-    CHROMIUM_LIBCPP_NEVER_INLINE
     size_type find(value_type __c, size_type __pos = 0) const _NOEXCEPT;
 
-    CHROMIUM_LIBCPP_INLINE_VISIBILITY
+    _LIBCPP_INLINE_VISIBILITY
     size_type rfind(const basic_string& __str, size_type __pos = npos) const _NOEXCEPT;
-    CHROMIUM_LIBCPP_INLINE_VISIBILITY
+    _LIBCPP_INLINE_VISIBILITY
     size_type rfind(__self_view __sv, size_type __pos = 0) const _NOEXCEPT;
-    CHROMIUM_LIBCPP_NEVER_INLINE
     size_type rfind(const value_type* __s, size_type __pos, size_type __n) const _NOEXCEPT;
-    CHROMIUM_LIBCPP_INLINE_VISIBILITY
+    _LIBCPP_INLINE_VISIBILITY
     size_type rfind(const value_type* __s, size_type __pos = npos) const _NOEXCEPT;
-    CHROMIUM_LIBCPP_NEVER_INLINE
     size_type rfind(value_type __c, size_type __pos = npos) const _NOEXCEPT;
 
-    CHROMIUM_LIBCPP_INLINE_VISIBILITY
+    _LIBCPP_INLINE_VISIBILITY
     size_type find_first_of(const basic_string& __str, size_type __pos = 0) const _NOEXCEPT;
-    CHROMIUM_LIBCPP_INLINE_VISIBILITY
+    _LIBCPP_INLINE_VISIBILITY
     size_type find_first_of(__self_view __sv, size_type __pos = 0) const _NOEXCEPT;
-    CHROMIUM_LIBCPP_NEVER_INLINE
     size_type find_first_of(const value_type* __s, size_type __pos, size_type __n) const _NOEXCEPT;
-    CHROMIUM_LIBCPP_INLINE_VISIBILITY
+    _LIBCPP_INLINE_VISIBILITY
     size_type find_first_of(const value_type* __s, size_type __pos = 0) const _NOEXCEPT;
-    CHROMIUM_LIBCPP_INLINE_VISIBILITY
+    _LIBCPP_INLINE_VISIBILITY
     size_type find_first_of(value_type __c, size_type __pos = 0) const _NOEXCEPT;
 
-    CHROMIUM_LIBCPP_INLINE_VISIBILITY
+    _LIBCPP_INLINE_VISIBILITY
     size_type find_last_of(const basic_string& __str, size_type __pos = npos) const _NOEXCEPT;
-    CHROMIUM_LIBCPP_INLINE_VISIBILITY
+    _LIBCPP_INLINE_VISIBILITY
     size_type find_last_of(__self_view __sv, size_type __pos = 0) const _NOEXCEPT;
-    CHROMIUM_LIBCPP_NEVER_INLINE
     size_type find_last_of(const value_type* __s, size_type __pos, size_type __n) const _NOEXCEPT;
-    CHROMIUM_LIBCPP_INLINE_VISIBILITY
+    _LIBCPP_INLINE_VISIBILITY
     size_type find_last_of(const value_type* __s, size_type __pos = npos) const _NOEXCEPT;
-    CHROMIUM_LIBCPP_INLINE_VISIBILITY
+    _LIBCPP_INLINE_VISIBILITY
     size_type find_last_of(value_type __c, size_type __pos = npos) const _NOEXCEPT;
 
-    CHROMIUM_LIBCPP_INLINE_VISIBILITY
+    _LIBCPP_INLINE_VISIBILITY
     size_type find_first_not_of(const basic_string& __str, size_type __pos = 0) const _NOEXCEPT;
-    CHROMIUM_LIBCPP_INLINE_VISIBILITY
+    _LIBCPP_INLINE_VISIBILITY
     size_type find_first_not_of(__self_view __sv, size_type __pos = 0) const _NOEXCEPT;
-    CHROMIUM_LIBCPP_NEVER_INLINE
     size_type find_first_not_of(const value_type* __s, size_type __pos, size_type __n) const _NOEXCEPT;
-    CHROMIUM_LIBCPP_INLINE_VISIBILITY
+    _LIBCPP_INLINE_VISIBILITY
     size_type find_first_not_of(const value_type* __s, size_type __pos = 0) const _NOEXCEPT;
-    CHROMIUM_LIBCPP_INLINE_VISIBILITY
+    _LIBCPP_INLINE_VISIBILITY
     size_type find_first_not_of(value_type __c, size_type __pos = 0) const _NOEXCEPT;
 
-    CHROMIUM_LIBCPP_INLINE_VISIBILITY
+    _LIBCPP_INLINE_VISIBILITY
     size_type find_last_not_of(const basic_string& __str, size_type __pos = npos) const _NOEXCEPT;
-    CHROMIUM_LIBCPP_INLINE_VISIBILITY
+    _LIBCPP_INLINE_VISIBILITY
     size_type find_last_not_of(__self_view __sv, size_type __pos = 0) const _NOEXCEPT;
-    CHROMIUM_LIBCPP_NEVER_INLINE
     size_type find_last_not_of(const value_type* __s, size_type __pos, size_type __n) const _NOEXCEPT;
-    CHROMIUM_LIBCPP_INLINE_VISIBILITY
+    _LIBCPP_INLINE_VISIBILITY
     size_type find_last_not_of(const value_type* __s, size_type __pos = npos) const _NOEXCEPT;
-    CHROMIUM_LIBCPP_INLINE_VISIBILITY
+    _LIBCPP_INLINE_VISIBILITY
     size_type find_last_not_of(value_type __c, size_type __pos = npos) const _NOEXCEPT;
 
-    // Adding CHROMIUM defines to compare and operator== saved 100kb (Sept 2017).
-    CHROMIUM_LIBCPP_INLINE_VISIBILITY
+    _LIBCPP_INLINE_VISIBILITY
     int compare(const basic_string& __str) const _NOEXCEPT;
-    CHROMIUM_LIBCPP_INLINE_VISIBILITY
+    _LIBCPP_INLINE_VISIBILITY
     int compare(__self_view __sv) const _NOEXCEPT;
     _LIBCPP_INLINE_VISIBILITY
     int compare(size_type __pos1, size_type __n1, __self_view __sv) const;
@@ -1229,7 +1210,6 @@
         compare(size_type __pos1, size_type __n1, const _Tp& __t, size_type __pos2, size_type __n2=npos) const;
     int compare(const value_type* __s) const _NOEXCEPT;
     int compare(size_type __pos1, size_type __n1, const value_type* __s) const;
-    CHROMIUM_LIBCPP_NEVER_INLINE
     int compare(size_type __pos1, size_type __n1, const value_type* __s, size_type __n2) const;
 
     _LIBCPP_INLINE_VISIBILITY bool __invariants() const;
@@ -1351,11 +1331,11 @@
                  __align_it<sizeof(value_type) < __alignment ?
                             __alignment/sizeof(value_type) : 1 > (__s+1)) - 1;}
 
-    inline CHROMIUM_LIBCPP_NEVER_INLINE
+    inline
     void __init(const value_type* __s, size_type __sz, size_type __reserve);
-    inline CHROMIUM_LIBCPP_NEVER_INLINE
+    inline
     void __init(const value_type* __s, size_type __sz);
-    inline CHROMIUM_LIBCPP_NEVER_INLINE
+    inline
     void __init(size_type __n, value_type __c);
 
     template <class _InputIterator>
@@ -1365,7 +1345,7 @@
         __is_exactly_input_iterator<_InputIterator>::value,
         void
     >::type
-    CHROMIUM_LIBCPP_ALWAYS_INLINE __init(_InputIterator __first, _InputIterator __last);
+    __init(_InputIterator __first, _InputIterator __last);
 
     template <class _ForwardIterator>
     inline
@@ -1374,7 +1354,7 @@
         __is_forward_iterator<_ForwardIterator>::value,
         void
     >::type
-    CHROMIUM_LIBCPP_ALWAYS_INLINE __init(_ForwardIterator __first, _ForwardIterator __last);
+    __init(_ForwardIterator __first, _ForwardIterator __last);
 
     void __grow_by(size_type __old_cap, size_type __delta_cap, size_type __old_sz,
                    size_type __n_copy,  size_type __n_del,     size_type __n_add = 0);
@@ -1506,7 +1486,7 @@
 }
 
 template <class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
 basic_string<_CharT, _Traits, _Allocator>::basic_string()
     _NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value)
 {
@@ -1517,7 +1497,7 @@
 }
 
 template <class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
 basic_string<_CharT, _Traits, _Allocator>::basic_string(const allocator_type& __a)
 #if _LIBCPP_STD_VER <= 14
         _NOEXCEPT_(is_nothrow_copy_constructible<allocator_type>::value)
@@ -1533,7 +1513,6 @@
 }
 
 template <class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_ALWAYS_INLINE
 void basic_string<_CharT, _Traits, _Allocator>::__init(const value_type* __s,
                                                        size_type __sz,
                                                        size_type __reserve)
@@ -1559,7 +1538,6 @@
 }
 
 template <class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_ALWAYS_INLINE
 void
 basic_string<_CharT, _Traits, _Allocator>::__init(const value_type* __s, size_type __sz)
 {
@@ -1584,7 +1562,7 @@
 }
 
 template <class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
 basic_string<_CharT, _Traits, _Allocator>::basic_string(const _CharT* __s)
 {
     _LIBCPP_ASSERT(__s != nullptr, "basic_string(const char*) detected nullptr");
@@ -1595,7 +1573,7 @@
 }
 
 template <class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
 basic_string<_CharT, _Traits, _Allocator>::basic_string(const _CharT* __s, const _Allocator& __a)
     : __r_(__second_tag(), __a)
 {
@@ -1607,7 +1585,7 @@
 }
 
 template <class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
 basic_string<_CharT, _Traits, _Allocator>::basic_string(const _CharT* __s, size_type __n)
 {
     _LIBCPP_ASSERT(__n == 0 || __s != nullptr, "basic_string(const char*, n) detected nullptr");
@@ -1618,7 +1596,7 @@
 }
 
 template <class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
 basic_string<_CharT, _Traits, _Allocator>::basic_string(const _CharT* __s, size_type __n, const _Allocator& __a)
     : __r_(__second_tag(), __a)
 {
@@ -1630,7 +1608,6 @@
 }
 
 template <class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
 basic_string<_CharT, _Traits, _Allocator>::basic_string(const basic_string& __str)
     : __r_(__second_tag(), __alloc_traits::select_on_container_copy_construction(__str.__alloc()))
 {
@@ -1644,7 +1621,6 @@
 }
 
 template <class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
 basic_string<_CharT, _Traits, _Allocator>::basic_string(
     const basic_string& __str, const allocator_type& __a)
     : __r_(__second_tag(), __a)
@@ -1661,7 +1637,7 @@
 #ifndef _LIBCPP_CXX03_LANG
 
 template <class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
 basic_string<_CharT, _Traits, _Allocator>::basic_string(basic_string&& __str)
 #if _LIBCPP_STD_VER <= 14
         _NOEXCEPT_(is_nothrow_move_constructible<allocator_type>::value)
@@ -1679,7 +1655,7 @@
 }
 
 template <class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
 basic_string<_CharT, _Traits, _Allocator>::basic_string(basic_string&& __str, const allocator_type& __a)
     : __r_(__second_tag(), __a)
 {
@@ -1700,7 +1676,6 @@
 #endif  // _LIBCPP_CXX03_LANG
 
 template <class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_ALWAYS_INLINE
 void
 basic_string<_CharT, _Traits, _Allocator>::__init(size_type __n, value_type __c)
 {
@@ -1725,7 +1700,7 @@
 }
 
 template <class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
 basic_string<_CharT, _Traits, _Allocator>::basic_string(size_type __n, _CharT __c)
 {
     __init(__n, __c);
@@ -1735,7 +1710,7 @@
 }
 
 template <class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
 basic_string<_CharT, _Traits, _Allocator>::basic_string(size_type __n, _CharT __c, const _Allocator& __a)
     : __r_(__second_tag(), __a)
 {
@@ -1746,7 +1721,6 @@
 }
 
 template <class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
 basic_string<_CharT, _Traits, _Allocator>::basic_string(const basic_string& __str,
                                                         size_type __pos, size_type __n,
                                                         const _Allocator& __a)
@@ -1762,7 +1736,7 @@
 }
 
 template <class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
 basic_string<_CharT, _Traits, _Allocator>::basic_string(const basic_string& __str, size_type __pos,
                                                         const _Allocator& __a)
     : __r_(__second_tag(), __a)
@@ -1778,7 +1752,6 @@
 
 template <class _CharT, class _Traits, class _Allocator>
 template <class _Tp>
-CHROMIUM_LIBCPP_NEVER_INLINE
 basic_string<_CharT, _Traits, _Allocator>::basic_string(
              const _Tp& __t, size_type __pos, size_type __n, const allocator_type& __a,
 			 typename enable_if<__can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value, void>::type *)
@@ -1792,7 +1765,7 @@
 }
 
 template <class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
 basic_string<_CharT, _Traits, _Allocator>::basic_string(__self_view __sv)
 {
     __init(__sv.data(), __sv.size());
@@ -1802,7 +1775,7 @@
 }
 
 template <class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
 basic_string<_CharT, _Traits, _Allocator>::basic_string(__self_view __sv, const _Allocator& __a)
     : __r_(__second_tag(), __a)
 {
@@ -1814,7 +1787,6 @@
 
 template <class _CharT, class _Traits, class _Allocator>
 template <class _InputIterator>
-CHROMIUM_LIBCPP_ALWAYS_INLINE
 typename enable_if
 <
     __is_exactly_input_iterator<_InputIterator>::value,
@@ -1842,7 +1814,6 @@
 
 template <class _CharT, class _Traits, class _Allocator>
 template <class _ForwardIterator>
-CHROMIUM_LIBCPP_ALWAYS_INLINE
 typename enable_if
 <
     __is_forward_iterator<_ForwardIterator>::value,
@@ -1874,7 +1845,7 @@
 
 template <class _CharT, class _Traits, class _Allocator>
 template<class _InputIterator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
 basic_string<_CharT, _Traits, _Allocator>::basic_string(_InputIterator __first, _InputIterator __last)
 {
     __init(__first, __last);
@@ -1885,7 +1856,7 @@
 
 template <class _CharT, class _Traits, class _Allocator>
 template<class _InputIterator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
 basic_string<_CharT, _Traits, _Allocator>::basic_string(_InputIterator __first, _InputIterator __last,
                                                         const allocator_type& __a)
     : __r_(__second_tag(), __a)
@@ -1899,7 +1870,7 @@
 #ifndef _LIBCPP_CXX03_LANG
 
 template <class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
 basic_string<_CharT, _Traits, _Allocator>::basic_string(
     initializer_list<_CharT> __il)
 {
@@ -1910,7 +1881,8 @@
 }
 
 template <class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
+
 basic_string<_CharT, _Traits, _Allocator>::basic_string(
     initializer_list<_CharT> __il, const _Allocator& __a)
     : __r_(__second_tag(), __a)
@@ -2038,7 +2010,6 @@
 }
 
 template <class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
 basic_string<_CharT, _Traits, _Allocator>&
 basic_string<_CharT, _Traits, _Allocator>::operator=(value_type __c)
 {
@@ -2060,7 +2031,6 @@
 }
 
 template <class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
 basic_string<_CharT, _Traits, _Allocator>&
 basic_string<_CharT, _Traits, _Allocator>::operator=(const basic_string& __str)
 {
@@ -2104,7 +2074,7 @@
 }
 
 template <class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
 basic_string<_CharT, _Traits, _Allocator>&
 basic_string<_CharT, _Traits, _Allocator>::operator=(basic_string&& __str)
     _NOEXCEPT_((__noexcept_move_assign_container<_Allocator, __alloc_traits>::value))
@@ -3098,7 +3068,6 @@
 };
 
 template<class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
 typename basic_string<_CharT, _Traits, _Allocator>::size_type
 basic_string<_CharT, _Traits, _Allocator>::find(const value_type* __s,
                                                 size_type __pos,
@@ -3110,7 +3079,7 @@
 }
 
 template<class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
 typename basic_string<_CharT, _Traits, _Allocator>::size_type
 basic_string<_CharT, _Traits, _Allocator>::find(const basic_string& __str,
                                                 size_type __pos) const _NOEXCEPT
@@ -3130,7 +3099,7 @@
 }
 
 template<class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
 typename basic_string<_CharT, _Traits, _Allocator>::size_type
 basic_string<_CharT, _Traits, _Allocator>::find(const value_type* __s,
                                                 size_type __pos) const _NOEXCEPT
@@ -3152,7 +3121,6 @@
 // rfind
 
 template<class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
 typename basic_string<_CharT, _Traits, _Allocator>::size_type
 basic_string<_CharT, _Traits, _Allocator>::rfind(const value_type* __s,
                                                  size_type __pos,
@@ -3164,7 +3132,7 @@
 }
 
 template<class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
 typename basic_string<_CharT, _Traits, _Allocator>::size_type
 basic_string<_CharT, _Traits, _Allocator>::rfind(const basic_string& __str,
                                                  size_type __pos) const _NOEXCEPT
@@ -3174,7 +3142,7 @@
 }
 
 template<class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
 typename basic_string<_CharT, _Traits, _Allocator>::size_type
 basic_string<_CharT, _Traits, _Allocator>::rfind(__self_view __sv,
                                                 size_type __pos) const _NOEXCEPT
@@ -3184,7 +3152,7 @@
 }
 
 template<class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
 typename basic_string<_CharT, _Traits, _Allocator>::size_type
 basic_string<_CharT, _Traits, _Allocator>::rfind(const value_type* __s,
                                                  size_type __pos) const _NOEXCEPT
@@ -3206,7 +3174,6 @@
 // find_first_of
 
 template<class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
 typename basic_string<_CharT, _Traits, _Allocator>::size_type
 basic_string<_CharT, _Traits, _Allocator>::find_first_of(const value_type* __s,
                                                          size_type __pos,
@@ -3218,7 +3185,7 @@
 }
 
 template<class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
 typename basic_string<_CharT, _Traits, _Allocator>::size_type
 basic_string<_CharT, _Traits, _Allocator>::find_first_of(const basic_string& __str,
                                                          size_type __pos) const _NOEXCEPT
@@ -3228,7 +3195,7 @@
 }
 
 template<class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
 typename basic_string<_CharT, _Traits, _Allocator>::size_type
 basic_string<_CharT, _Traits, _Allocator>::find_first_of(__self_view __sv,
                                                 size_type __pos) const _NOEXCEPT
@@ -3238,7 +3205,7 @@
 }
 
 template<class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
 typename basic_string<_CharT, _Traits, _Allocator>::size_type
 basic_string<_CharT, _Traits, _Allocator>::find_first_of(const value_type* __s,
                                                          size_type __pos) const _NOEXCEPT
@@ -3260,7 +3227,6 @@
 // find_last_of
 
 template<class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
 typename basic_string<_CharT, _Traits, _Allocator>::size_type
 basic_string<_CharT, _Traits, _Allocator>::find_last_of(const value_type* __s,
                                                         size_type __pos,
@@ -3272,7 +3238,7 @@
 }
 
 template<class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
 typename basic_string<_CharT, _Traits, _Allocator>::size_type
 basic_string<_CharT, _Traits, _Allocator>::find_last_of(const basic_string& __str,
                                                         size_type __pos) const _NOEXCEPT
@@ -3292,7 +3258,7 @@
 }
 
 template<class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
 typename basic_string<_CharT, _Traits, _Allocator>::size_type
 basic_string<_CharT, _Traits, _Allocator>::find_last_of(const value_type* __s,
                                                         size_type __pos) const _NOEXCEPT
@@ -3314,7 +3280,6 @@
 // find_first_not_of
 
 template<class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
 typename basic_string<_CharT, _Traits, _Allocator>::size_type
 basic_string<_CharT, _Traits, _Allocator>::find_first_not_of(const value_type* __s,
                                                              size_type __pos,
@@ -3326,7 +3291,7 @@
 }
 
 template<class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
 typename basic_string<_CharT, _Traits, _Allocator>::size_type
 basic_string<_CharT, _Traits, _Allocator>::find_first_not_of(const basic_string& __str,
                                                              size_type __pos) const _NOEXCEPT
@@ -3346,7 +3311,7 @@
 }
 
 template<class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
 typename basic_string<_CharT, _Traits, _Allocator>::size_type
 basic_string<_CharT, _Traits, _Allocator>::find_first_not_of(const value_type* __s,
                                                              size_type __pos) const _NOEXCEPT
@@ -3369,7 +3334,6 @@
 // find_last_not_of
 
 template<class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
 typename basic_string<_CharT, _Traits, _Allocator>::size_type
 basic_string<_CharT, _Traits, _Allocator>::find_last_not_of(const value_type* __s,
                                                             size_type __pos,
@@ -3381,7 +3345,7 @@
 }
 
 template<class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
 typename basic_string<_CharT, _Traits, _Allocator>::size_type
 basic_string<_CharT, _Traits, _Allocator>::find_last_not_of(const basic_string& __str,
                                                             size_type __pos) const _NOEXCEPT
@@ -3401,7 +3365,7 @@
 }
 
 template<class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
 typename basic_string<_CharT, _Traits, _Allocator>::size_type
 basic_string<_CharT, _Traits, _Allocator>::find_last_not_of(const value_type* __s,
                                                             size_type __pos) const _NOEXCEPT
@@ -3424,7 +3388,7 @@
 // compare
 
 template <class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
 int
 basic_string<_CharT, _Traits, _Allocator>::compare(__self_view __sv) const _NOEXCEPT
 {
@@ -3442,7 +3406,7 @@
 }
 
 template <class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
 int
 basic_string<_CharT, _Traits, _Allocator>::compare(const basic_string& __str) const _NOEXCEPT
 {
@@ -3494,7 +3458,6 @@
 
 template <class _CharT, class _Traits, class _Allocator>
 template <class _Tp>
-CHROMIUM_LIBCPP_NEVER_INLINE
 typename enable_if
 <
 	__can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value,
@@ -3511,7 +3474,6 @@
 }
 
 template <class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
 int
 basic_string<_CharT, _Traits, _Allocator>::compare(size_type __pos1,
                                                    size_type __n1,
@@ -3523,7 +3485,6 @@
 }
 
 template <class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
 int
 basic_string<_CharT, _Traits, _Allocator>::compare(const value_type* __s) const _NOEXCEPT
 {
@@ -3532,7 +3493,6 @@
 }
 
 template <class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
 int
 basic_string<_CharT, _Traits, _Allocator>::compare(size_type __pos1,
                                                    size_type __n1,
@@ -3563,7 +3523,7 @@
 // operator==
 
 template<class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
 bool
 operator==(const basic_string<_CharT, _Traits, _Allocator>& __lhs,
            const basic_string<_CharT, _Traits, _Allocator>& __rhs) _NOEXCEPT
@@ -3575,7 +3535,7 @@
 }
 
 template<class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
 bool
 operator==(const basic_string<char, char_traits<char>, _Allocator>& __lhs,
            const basic_string<char, char_traits<char>, _Allocator>& __rhs) _NOEXCEPT
@@ -3594,7 +3554,7 @@
 }
 
 template<class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
 bool
 operator==(const _CharT* __lhs,
            const basic_string<_CharT, _Traits, _Allocator>& __rhs) _NOEXCEPT
@@ -3607,7 +3567,7 @@
 }
 
 template<class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
 bool
 operator==(const basic_string<_CharT,_Traits,_Allocator>& __lhs,
            const _CharT* __rhs) _NOEXCEPT
@@ -3765,7 +3725,6 @@
 // operator +
 
 template<class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
 basic_string<_CharT, _Traits, _Allocator>
 operator+(const basic_string<_CharT, _Traits, _Allocator>& __lhs,
           const basic_string<_CharT, _Traits, _Allocator>& __rhs)
@@ -3779,7 +3738,6 @@
 }
 
 template<class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
 basic_string<_CharT, _Traits, _Allocator>
 operator+(const _CharT* __lhs , const basic_string<_CharT,_Traits,_Allocator>& __rhs)
 {
@@ -3792,7 +3750,6 @@
 }
 
 template<class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
 basic_string<_CharT, _Traits, _Allocator>
 operator+(_CharT __lhs, const basic_string<_CharT,_Traits,_Allocator>& __rhs)
 {
@@ -3804,7 +3761,6 @@
 }
 
 template<class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
 basic_string<_CharT, _Traits, _Allocator>
 operator+(const basic_string<_CharT, _Traits, _Allocator>& __lhs, const _CharT* __rhs)
 {
@@ -3817,7 +3773,6 @@
 }
 
 template<class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
 basic_string<_CharT, _Traits, _Allocator>
 operator+(const basic_string<_CharT, _Traits, _Allocator>& __lhs, _CharT __rhs)
 {
@@ -3831,7 +3786,7 @@
 #ifndef _LIBCPP_CXX03_LANG
 
 template<class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
 basic_string<_CharT, _Traits, _Allocator>
 operator+(basic_string<_CharT, _Traits, _Allocator>&& __lhs, const basic_string<_CharT, _Traits, _Allocator>& __rhs)
 {
@@ -3839,7 +3794,7 @@
 }
 
 template<class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
 basic_string<_CharT, _Traits, _Allocator>
 operator+(const basic_string<_CharT, _Traits, _Allocator>& __lhs, basic_string<_CharT, _Traits, _Allocator>&& __rhs)
 {
@@ -3847,7 +3802,7 @@
 }
 
 template<class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
 basic_string<_CharT, _Traits, _Allocator>
 operator+(basic_string<_CharT, _Traits, _Allocator>&& __lhs, basic_string<_CharT, _Traits, _Allocator>&& __rhs)
 {
@@ -3855,7 +3810,7 @@
 }
 
 template<class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
 basic_string<_CharT, _Traits, _Allocator>
 operator+(const _CharT* __lhs , basic_string<_CharT,_Traits,_Allocator>&& __rhs)
 {
diff --git a/sources/cxx-stl/llvm-libc++/include/vector b/sources/cxx-stl/llvm-libc++/include/vector
index a7211e6..6e9920a 100644
--- a/sources/cxx-stl/llvm-libc++/include/vector
+++ b/sources/cxx-stl/llvm-libc++/include/vector
@@ -358,9 +358,7 @@
     size_type capacity() const _NOEXCEPT
         {return static_cast<size_type>(__end_cap() - __begin_);}
 
-    // Saved 33kb (Sept 2017).
-    // For more context: https://crbug.com/738155
-    CHROMIUM_LIBCPP_INLINE_VISIBILITY
+    _LIBCPP_INLINE_VISIBILITY
     void __destruct_at_end(pointer __new_last) _NOEXCEPT;
 
     _LIBCPP_INLINE_VISIBILITY
@@ -406,7 +404,7 @@
 };
 
 template <class _Tp, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
 void
 __vector_base<_Tp, _Allocator>::__destruct_at_end(pointer __new_last) _NOEXCEPT
 {
@@ -676,15 +674,13 @@
     const value_type* data() const _NOEXCEPT
         {return _VSTD::__to_raw_pointer(this->__begin_);}
 
-    // push_back and emplace_back saved 270kb (Sept 2017).
-    // For more context: https://crbug.com/738155
-    CHROMIUM_LIBCPP_INLINE_VISIBILITY void push_back(const_reference __x);
+    _LIBCPP_INLINE_VISIBILITY void push_back(const_reference __x);
 
 #ifndef _LIBCPP_CXX03_LANG
-    CHROMIUM_LIBCPP_INLINE_VISIBILITY void push_back(value_type&& __x);
+    _LIBCPP_INLINE_VISIBILITY void push_back(value_type&& __x);
 
     template <class... _Args>
-        CHROMIUM_LIBCPP_INLINE_VISIBILITY
+        _LIBCPP_INLINE_VISIBILITY
 #if _LIBCPP_STD_VER > 14
         reference emplace_back(_Args&&... __args);
 #else
@@ -1576,7 +1572,7 @@
 }
 
 template <class _Tp, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
 void
 vector<_Tp, _Allocator>::push_back(const_reference __x)
 {
@@ -1595,7 +1591,7 @@
 #ifndef _LIBCPP_CXX03_LANG
 
 template <class _Tp, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
 void
 vector<_Tp, _Allocator>::push_back(value_type&& __x)
 {
@@ -1627,7 +1623,7 @@
 
 template <class _Tp, class _Allocator>
 template <class... _Args>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline
 #if _LIBCPP_STD_VER > 14
 typename vector<_Tp, _Allocator>::reference
 #else