From: Aldy Hernandez <aldyh@redhat.com>
To: Jason Merrill <jason@redhat.com>
Cc: Jakub Jelinek <jakub@redhat.com>,
GCC Mailing List <gcc@gcc.gnu.org>,
"MacLeod, Andrew" <amacleod@redhat.com>
Subject: Re: 1.76% performance loss in VRP due to inlining
Date: Fri, 3 May 2024 10:55:16 +0200 [thread overview]
Message-ID: <CAGm3qMVFFmuFHqBC0FLqasD_EckH4OW+kj-U0VYdue_C-Ea3+w@mail.gmail.com> (raw)
In-Reply-To: <3b573664-e3f2-4be1-ac80-47b7a258aa4c@redhat.com>
[-- Attachment #1: Type: text/plain, Size: 6348 bytes --]
After some very painful analysis, I was able to reduce the degradation
we are experiencing in VRP to a handful of lines in the new
implementation of prange.
What happens is that any series of small changes to a new prange class
causes changes in the inlining of wide_int_storage elsewhere. With
the attached patch, one difference lies in irange::singleton_p(tree
*). Note that this is in irange, which is completely unrelated to the
new (unused) code.
Using trunk as the stage1 compiler, we can see the assembly for
irange::singleton_p(tree *) in value-range.cc is different with and
without my patch.
The number of calls into wide_int within irange::singleton_p(tree *) changes:
awk '/^_ZNK6irange11singleton_pEPP9tree_node/,/endproc/' value-range.s
| grep call.*wide_int
With mainline sources:
call _ZN16wide_int_storageC2ERKS_
call
_Z16wide_int_to_treeP9tree_nodeRK8poly_intILj1E16generic_wide_intI20wide_int_ref_storageILb0ELb1EEEE
With the attached patch:
call _ZN16wide_int_storageC2ERKS_
call _ZN16wide_int_storageC2ERKS_
call
_Z16wide_int_to_treeP9tree_nodeRK8poly_intILj1E16generic_wide_intI20wide_int_ref_storageILb0ELb1EEEE
call _ZN16wide_int_storageC2ERKS_
The additional calls correspond to the wide_int_storage constructor:
$ c++filt _ZN16wide_int_storageC2ERKS_
wide_int_storage::wide_int_storage(wide_int_storage const&)
Using -fno-semantic-interposition makes no difference.
Here are the relevant bits in the difference from -Winline with and
without my patch:
> inlined from ‘virtual bool irange::singleton_p(tree_node**) const’ at /home/aldyh/src/gcc/gcc/value-range.cc:1254:40:
> /home/aldyh/src/gcc/gcc/wide-int.h:1196:8: warning: inlining failed in call to ‘wide_int_storage::wide_int_storage(const wide_int_storage&)’: --param inline-unit-growth limit reached [-Winline]
> 1196 | inline wide_int_storage::wide_int_storage (const wide_int_storage &x)
> | ^~~~~~~~~~~~~~~~
> /home/aldyh/src/gcc/gcc/wide-int.h:775:7: note: called from here
> 775 | class GTY(()) generic_wide_int : public storage
> | ^~~~~~~~~~~~~~~~
> /home/aldyh/src/gcc/gcc/wide-int.h:1196:8: warning: inlining failed in call to ‘wide_int_storage::wide_int_storage(const wide_int_storage&)’: --param inline-unit-growth limit reached [-Winline]
> 1196 | inline wide_int_storage::wide_int_storage (const wide_int_storage &x)
> | ^~~~~~~~~~~~~~~~
> /home/aldyh/src/gcc/gcc/wide-int.h:775:7: note: called from here
> 775 | class GTY(()) generic_wide_int : public storage
> | ^~~~~~~~~~~~~~~~
> In copy constructor ‘generic_wide_int<wide_int_storage>::generic_wide_int(const generic_wide_int<wide_int_storage>&)’,
> inlined from ‘wide_int irange::lower_bound(unsigned int) const’ at /home/aldyh/src/gcc/gcc/value-range.h:1122:25,
Note that this is just one example. There are also inlining
differences to irange::get_bitmask(), irange::union_bitmask(),
irange::operator=, among others. Most of the inlining failures seem
to be related to wide_int_storage. I am attaching the difference in
-Winline for the curious.
Tracking this down is tricky because the slightest change in the patch
causes different inlining in irange. Even using a slightly different
stage1 compiler produces different changes. For example, using GCC 13
as the stage1 compiler, VRP exhibits a slowdown of 2% with the full
prange class. Although this is virtually identical to the slowdown
for using trunk as the stage1 compiler, the inlining failures are a
tad different.
I am tempted to commit the attached to mainline, which slows down VRP
by 0.3%, but is measurable enough to analyze, just so we have a base
commit-point from where to do the analysis. My wife is about to give
birth any day now, so I'm afraid if I drop off for a few months, we'll
lose the analysis and the point in time from where to do it.
One final thing. The full prange class patch, even when disabled,
slows VRP by 2%. I tried to implement the class in small increments,
and every small change caused a further slowdown. I don't know if
this 2% is final, or if further tweaks in this space will slow us down
more.
On a positive note, with the entirety of prange implemented (not just
the base class but range-ops implemented and prange enabled, there is
no overall change to VRP, and IPA-cp speeds up by 7%. This is because
holding pointers in prange is a net win that overcomes the 2% handicap
the inliner is hitting us with.
I would love to hear thoughts, and if y'all agree that committing a
small skeleton now can help us track this down in the future.
Aldy
On Tue, Apr 30, 2024 at 11:37 PM Jason Merrill <jason@redhat.com> wrote:
>
> On 4/30/24 12:22, Jakub Jelinek wrote:
> > On Tue, Apr 30, 2024 at 03:09:51PM -0400, Jason Merrill via Gcc wrote:
> >> On Fri, Apr 26, 2024 at 5:44 AM Aldy Hernandez via Gcc <gcc@gcc.gnu.org> wrote:
> >>>
> >>> In implementing prange (pointer ranges), I have found a 1.74% slowdown
> >>> in VRP, even without any code path actually using the code. I have
> >>> tracked this down to irange::get_bitmask() being compiled differently
> >>> with and without the bare bones patch. With the patch,
> >>> irange::get_bitmask() has a lot of code inlined into it, particularly
> >>> get_bitmask_from_range() and consequently the wide_int_storage code.
> >> ...
> >>> +static irange_bitmask
> >>> +get_bitmask_from_range (tree type,
> >>> + const wide_int &min, const wide_int &max)
> >> ...
> >>> -irange_bitmask
> >>> -irange::get_bitmask_from_range () const
> >>
> >> My guess is that this is the relevant change: the old function has
> >> external linkage, and is therefore interposable, which inhibits
> >> inlining. The new function has internal linkage, which allows
> >> inlining.
> >
> > Even when a function is exported, when not compiled with -fpic/-fPIC
> > if we know the function is defined in current TU, it can't be interposed,
>
> Ah, I was misremembering the effect of the change. Rather, it's that if
> we see that a function with internal linkage has only a single caller,
> we try harder to inline it.
>
> Jason
>
[-- Attachment #2: minimal-prange.diff --]
[-- Type: text/x-patch, Size: 2488 bytes --]
diff --git a/gcc/value-range.h b/gcc/value-range.h
index f1c638f8cd0..178a690f551 100644
--- a/gcc/value-range.h
+++ b/gcc/value-range.h
@@ -378,6 +378,39 @@ private:
wide_int m_ranges[N*2];
};
+class prange : public vrange
+{
+public:
+ static bool supports_p (const_tree) { return false; }
+ virtual bool supports_type_p (const_tree) const final override { return false; }
+ virtual void accept (const vrange_visitor &) const final override {}
+ virtual void set_undefined () final override {}
+ virtual void set_varying (tree) final override {}
+ virtual void set_nonzero (tree) final override {}
+ virtual void set_zero (tree) final override;
+ virtual void set_nonnegative (tree) final override {}
+ virtual bool contains_p (tree) const final override { return false; }
+ virtual bool fits_p (const vrange &) const final override { return false; }
+ virtual bool singleton_p (tree * = NULL) const final override { return false; }
+ virtual bool zero_p () const final override { return false; }
+ virtual bool nonzero_p () const final override { return false; }
+ virtual void set (tree, tree, value_range_kind = VR_RANGE) final override {}
+ virtual tree type () const final override { return NULL; }
+ virtual bool union_ (const vrange &) final override { return false; }
+ virtual bool intersect (const vrange &) final override { return false; }
+ virtual tree lbound () const final override { return NULL; }
+ virtual tree ubound () const final override { return NULL; }
+
+ wide_int lower_bound () const;
+ wide_int upper_bound () const;
+ irange_bitmask get_bitmask () const final override;
+ void update_bitmask (const irange_bitmask &) final override {}
+private:
+ wide_int m_min;
+ wide_int m_max;
+ irange_bitmask m_bitmask;
+};
+
// Unsupported temporaries may be created by ranger before it's known
// they're unsupported, or by vr_values::get_value_range.
@@ -1187,6 +1220,32 @@ irange_val_max (const_tree type)
return wi::max_value (TYPE_PRECISION (type), TYPE_SIGN (type));
}
+inline void
+prange::set_zero (tree type)
+{
+ wide_int zero = wi::zero (TYPE_PRECISION (type));
+ m_min = m_max = zero;
+ m_bitmask = irange_bitmask (zero, zero);
+}
+
+inline wide_int
+prange::lower_bound () const
+{
+ return m_min;
+}
+
+inline wide_int
+prange::upper_bound () const
+{
+ return m_max;
+}
+
+inline irange_bitmask
+prange::get_bitmask () const
+{
+ return m_bitmask;
+}
+
inline
frange::frange ()
: vrange (VR_FRANGE)
[-- Attachment #3: winline.diff --]
[-- Type: text/x-patch, Size: 37489 bytes --]
4c4
< inlined from ‘virtual void irange::set_varying(tree)’ at /home/aldyh/src/gcc/gcc/value-range.h:1074:115:
---
> inlined from ‘virtual void irange::set_varying(tree)’ at /home/aldyh/src/gcc/gcc/value-range.h:1107:115:
12,13c12,13
< inlined from ‘virtual void irange::set_varying(tree)’ at /home/aldyh/src/gcc/gcc/value-range.h:1075:115,
< inlined from ‘virtual void irange::set_varying(tree)’ at /home/aldyh/src/gcc/gcc/value-range.h:1063:1:
---
> inlined from ‘virtual void irange::set_varying(tree)’ at /home/aldyh/src/gcc/gcc/value-range.h:1108:115,
> inlined from ‘virtual void irange::set_varying(tree)’ at /home/aldyh/src/gcc/gcc/value-range.h:1096:1:
21c21,36
< inlined from ‘wide_int irange::lower_bound(unsigned int) const’ at /home/aldyh/src/gcc/gcc/value-range.h:1089:25,
---
> inlined from ‘wide_int irange::lower_bound(unsigned int) const’ at /home/aldyh/src/gcc/gcc/value-range.h:1122:25,
> inlined from ‘virtual bool irange::singleton_p(tree_node**) const’ at /home/aldyh/src/gcc/gcc/value-range.cc:1254:40:
> /home/aldyh/src/gcc/gcc/wide-int.h:1196:8: warning: inlining failed in call to ‘wide_int_storage::wide_int_storage(const wide_int_storage&)’: --param inline-unit-growth limit reached [-Winline]
> 1196 | inline wide_int_storage::wide_int_storage (const wide_int_storage &x)
> | ^~~~~~~~~~~~~~~~
> /home/aldyh/src/gcc/gcc/wide-int.h:775:7: note: called from here
> 775 | class GTY(()) generic_wide_int : public storage
> | ^~~~~~~~~~~~~~~~
> /home/aldyh/src/gcc/gcc/wide-int.h:1196:8: warning: inlining failed in call to ‘wide_int_storage::wide_int_storage(const wide_int_storage&)’: --param inline-unit-growth limit reached [-Winline]
> 1196 | inline wide_int_storage::wide_int_storage (const wide_int_storage &x)
> | ^~~~~~~~~~~~~~~~
> /home/aldyh/src/gcc/gcc/wide-int.h:775:7: note: called from here
> 775 | class GTY(()) generic_wide_int : public storage
> | ^~~~~~~~~~~~~~~~
> In copy constructor ‘generic_wide_int<wide_int_storage>::generic_wide_int(const generic_wide_int<wide_int_storage>&)’,
> inlined from ‘wide_int irange::lower_bound(unsigned int) const’ at /home/aldyh/src/gcc/gcc/value-range.h:1122:25,
30,31c45,46
< inlined from ‘wide_int irange::upper_bound(unsigned int) const’ at /home/aldyh/src/gcc/gcc/value-range.h:1100:29,
< inlined from ‘virtual bool irange::zero_p() const’ at /home/aldyh/src/gcc/gcc/value-range.h:953:19:
---
> inlined from ‘wide_int irange::upper_bound(unsigned int) const’ at /home/aldyh/src/gcc/gcc/value-range.h:1133:29,
> inlined from ‘virtual bool irange::zero_p() const’ at /home/aldyh/src/gcc/gcc/value-range.h:986:19:
215,217c230,235
< /home/aldyh/src/gcc/gcc/wide-int.h:1213:1: warning: inlining failed in call to ‘wide_int_storage& wide_int_storage::operator=(const wide_int_storage&)’: --param inline-unit-growth limit reached [-Winline]
< 1213 | wide_int_storage::operator = (const wide_int_storage &x)
< | ^~~~~~~~~~~~~~~~
---
> In copy constructor ‘generic_wide_int<wide_int_storage>::generic_wide_int(const generic_wide_int<wide_int_storage>&)’,
> inlined from ‘wide_int irange::lower_bound(unsigned int) const’ at /home/aldyh/src/gcc/gcc/value-range.h:1122:25,
> inlined from ‘bool irange::singleton_p(wide_int&) const’ at /home/aldyh/src/gcc/gcc/value-range.cc:1268:23:
> /home/aldyh/src/gcc/gcc/wide-int.h:1196:8: warning: inlining failed in call to ‘wide_int_storage::wide_int_storage(const wide_int_storage&)’: --param inline-unit-growth limit reached [-Winline]
> 1196 | inline wide_int_storage::wide_int_storage (const wide_int_storage &x)
> | ^~~~~~~~~~~~~~~~
222,223c240,241
< /home/aldyh/src/gcc/gcc/value-range.h:1063:1: warning: inlining failed in call to ‘virtual void irange::set_varying(tree)’: --param max-inline-insns-single limit reached [-Winline]
< 1063 | irange::set_varying (tree type)
---
> /home/aldyh/src/gcc/gcc/value-range.h:1096:1: warning: inlining failed in call to ‘virtual void irange::set_varying(tree)’: --param max-inline-insns-single limit reached [-Winline]
> 1096 | irange::set_varying (tree type)
225,226c243,244
< /home/aldyh/src/gcc/gcc/value-range.h:1029:15: note: called from here
< 1029 | set_varying (type);
---
> /home/aldyh/src/gcc/gcc/value-range.h:1062:15: note: called from here
> 1062 | set_varying (type);
229,230c247,248
< /home/aldyh/src/gcc/gcc/value-range.h:1063:1: warning: inlining failed in call to ‘virtual void irange::set_varying(tree)’: --param max-inline-insns-single limit reached [-Winline]
< 1063 | irange::set_varying (tree type)
---
> /home/aldyh/src/gcc/gcc/value-range.h:1096:1: warning: inlining failed in call to ‘virtual void irange::set_varying(tree)’: --param max-inline-insns-single limit reached [-Winline]
> 1096 | irange::set_varying (tree type)
232,233c250,251
< /home/aldyh/src/gcc/gcc/value-range.h:1029:15: note: called from here
< 1029 | set_varying (type);
---
> /home/aldyh/src/gcc/gcc/value-range.h:1062:15: note: called from here
> 1062 | set_varying (type);
236,237c254,255
< /home/aldyh/src/gcc/gcc/value-range.h:1063:1: warning: inlining failed in call to ‘virtual void irange::set_varying(tree)’: --param max-inline-insns-single limit reached [-Winline]
< 1063 | irange::set_varying (tree type)
---
> /home/aldyh/src/gcc/gcc/value-range.h:1096:1: warning: inlining failed in call to ‘virtual void irange::set_varying(tree)’: --param max-inline-insns-single limit reached [-Winline]
> 1096 | irange::set_varying (tree type)
239,240c257,258
< /home/aldyh/src/gcc/gcc/value-range.h:1029:15: note: called from here
< 1029 | set_varying (type);
---
> /home/aldyh/src/gcc/gcc/value-range.h:1062:15: note: called from here
> 1062 | set_varying (type);
243,244c261,262
< /home/aldyh/src/gcc/gcc/value-range.h:1063:1: warning: inlining failed in call to ‘virtual void irange::set_varying(tree)’: --param max-inline-insns-single limit reached [-Winline]
< 1063 | irange::set_varying (tree type)
---
> /home/aldyh/src/gcc/gcc/value-range.h:1096:1: warning: inlining failed in call to ‘virtual void irange::set_varying(tree)’: --param max-inline-insns-single limit reached [-Winline]
> 1096 | irange::set_varying (tree type)
246,247c264,265
< /home/aldyh/src/gcc/gcc/value-range.h:1029:15: note: called from here
< 1029 | set_varying (type);
---
> /home/aldyh/src/gcc/gcc/value-range.h:1062:15: note: called from here
> 1062 | set_varying (type);
278a297,311
> In copy constructor ‘generic_wide_int<wide_int_storage>::generic_wide_int(const generic_wide_int<wide_int_storage>&)’,
> inlined from ‘irange_bitmask get_bitmask_from_range(tree, const wide_int&, const wide_int&)’ at /home/aldyh/src/gcc/gcc/value-range.cc:46:24,
> inlined from ‘virtual irange_bitmask irange::get_bitmask() const’ at /home/aldyh/src/gcc/gcc/value-range.cc:2034:70:
> /home/aldyh/src/gcc/gcc/wide-int.h:1196:8: warning: inlining failed in call to ‘wide_int_storage::wide_int_storage(const wide_int_storage&)’: --param inline-unit-growth limit reached [-Winline]
> 1196 | inline wide_int_storage::wide_int_storage (const wide_int_storage &x)
> | ^~~~~~~~~~~~~~~~
> /home/aldyh/src/gcc/gcc/wide-int.h:775:7: note: called from here
> 775 | class GTY(()) generic_wide_int : public storage
> | ^~~~~~~~~~~~~~~~
> /home/aldyh/src/gcc/gcc/wide-int.h:1196:8: warning: inlining failed in call to ‘wide_int_storage::wide_int_storage(const wide_int_storage&)’: --param inline-unit-growth limit reached [-Winline]
> 1196 | inline wide_int_storage::wide_int_storage (const wide_int_storage &x)
> | ^~~~~~~~~~~~~~~~
> /home/aldyh/src/gcc/gcc/wide-int.h:775:7: note: called from here
> 775 | class GTY(()) generic_wide_int : public storage
> | ^~~~~~~~~~~~~~~~
351,352c384,385
< inlined from ‘bool irange::varying_compatible_p() const’ at /home/aldyh/src/gcc/gcc/value-range.h:931:11,
< inlined from ‘void irange::normalize_kind()’ at /home/aldyh/src/gcc/gcc/value-range.h:1155:33:
---
> inlined from ‘bool irange::varying_compatible_p() const’ at /home/aldyh/src/gcc/gcc/value-range.h:963:15,
> inlined from ‘void irange::normalize_kind()’ at /home/aldyh/src/gcc/gcc/value-range.h:1188:33:
358a392,418
> In function ‘typename wi::binary_traits<T1, T2>::predicate_result operator==(const T1&, const T2&) [with T1 = generic_wide_int<wide_int_storage>; T2 = generic_wide_int<wide_int_storage>]’,
> inlined from ‘bool irange::varying_compatible_p() const’ at /home/aldyh/src/gcc/gcc/value-range.h:964:11,
> inlined from ‘void irange::normalize_kind()’ at /home/aldyh/src/gcc/gcc/value-range.h:1188:33:
> /home/aldyh/src/gcc/gcc/wide-int.h:2246:1: warning: inlining failed in call to ‘bool wi::eq_p(const T1&, const T2&) [with T1 = generic_wide_int<wide_int_storage>; T2 = generic_wide_int<wide_int_storage>]’: --param inline-unit-growth limit reached [-Winline]
> 2246 | wi::eq_p (const T1 &x, const T2 &y)
> | ^~
> /home/aldyh/src/gcc/gcc/wide-int.h:3852:147: note: called from here
> 3852 | BINARY_PREDICATE (operator ==, eq_p)
> | ^
> In copy constructor ‘generic_wide_int<wide_int_storage>::generic_wide_int(const generic_wide_int<wide_int_storage>&)’,
> inlined from ‘irange_bitmask::irange_bitmask(const irange_bitmask&)’ at /home/aldyh/src/gcc/gcc/value-range.h:131:7,
> inlined from ‘bool irange::union_bitmask(const irange&)’ at /home/aldyh/src/gcc/gcc/value-range.cc:2106:25:
> /home/aldyh/src/gcc/gcc/wide-int.h:1196:8: warning: inlining failed in call to ‘wide_int_storage::wide_int_storage(const wide_int_storage&)’: --param inline-unit-growth limit reached [-Winline]
> 1196 | inline wide_int_storage::wide_int_storage (const wide_int_storage &x)
> | ^~~~~~~~~~~~~~~~
> /home/aldyh/src/gcc/gcc/wide-int.h:775:7: note: called from here
> 775 | class GTY(()) generic_wide_int : public storage
> | ^~~~~~~~~~~~~~~~
> In copy constructor ‘generic_wide_int<wide_int_storage>::generic_wide_int(const generic_wide_int<wide_int_storage>&)’,
> inlined from ‘irange_bitmask::irange_bitmask(const irange_bitmask&)’ at /home/aldyh/src/gcc/gcc/value-range.h:131:7,
> inlined from ‘bool irange::union_bitmask(const irange&)’ at /home/aldyh/src/gcc/gcc/value-range.cc:2106:25:
> /home/aldyh/src/gcc/gcc/wide-int.h:1196:8: warning: inlining failed in call to ‘wide_int_storage::wide_int_storage(const wide_int_storage&)’: --param inline-unit-growth limit reached [-Winline]
> 1196 | inline wide_int_storage::wide_int_storage (const wide_int_storage &x)
> | ^~~~~~~~~~~~~~~~
> /home/aldyh/src/gcc/gcc/wide-int.h:775:7: note: called from here
> 775 | class GTY(()) generic_wide_int : public storage
> | ^~~~~~~~~~~~~~~~
367a428,448
> In function ‘typename wi::binary_traits<T1, T2>::operator_result operator|(const T1&, const T2&) [with T1 = generic_wide_int<wide_int_storage>; T2 = generic_wide_int<wide_int_storage>]’,
> inlined from ‘void irange_bitmask::union_(const irange_bitmask&)’ at /home/aldyh/src/gcc/gcc/value-range.h:239:58,
> inlined from ‘bool irange::union_bitmask(const irange&)’ at /home/aldyh/src/gcc/gcc/value-range.cc:2107:13:
> /home/aldyh/src/gcc/gcc/wide-int.h:2798:1: warning: inlining failed in call to ‘typename wi::binary_traits<T1, T2>::result_type wi::bit_or(const T1&, const T2&) [with T1 = generic_wide_int<wide_int_storage>; T2 = generic_wide_int<wide_int_storage>]’: --param inline-unit-growth limit reached [-Winline]
> 2798 | wi::bit_or (const T1 &x, const T2 &y)
> | ^~
> /home/aldyh/src/gcc/gcc/wide-int.h:3855:152: note: called from here
> 3855 | BINARY_OPERATOR (operator |, bit_or)
> | ^
> In function ‘typename wi::binary_traits<T1, T2>::operator_result operator|(const T1&, const T2&) [with T1 = generic_wide_int<wide_int_storage>; T2 = generic_wide_int<wide_int_storage>]’,
> inlined from ‘void irange_bitmask::union_(const irange_bitmask&)’ at /home/aldyh/src/gcc/gcc/value-range.h:239:26,
> inlined from ‘bool irange::union_bitmask(const irange&)’ at /home/aldyh/src/gcc/gcc/value-range.cc:2107:13:
> /home/aldyh/src/gcc/gcc/wide-int.h:2798:1: warning: inlining failed in call to ‘typename wi::binary_traits<T1, T2>::result_type wi::bit_or(const T1&, const T2&) [with T1 = generic_wide_int<wide_int_storage>; T2 = generic_wide_int<wide_int_storage>]’: --param inline-unit-growth limit reached [-Winline]
> 2798 | wi::bit_or (const T1 &x, const T2 &y)
> | ^~
> /home/aldyh/src/gcc/gcc/wide-int.h:3855:152: note: called from here
> 3855 | BINARY_OPERATOR (operator |, bit_or)
> | ^
> In member function ‘generic_wide_int<wide_int_storage>& generic_wide_int<wide_int_storage>::operator=(generic_wide_int<wide_int_storage>&&)’,
> inlined from ‘void irange_bitmask::union_(const irange_bitmask&)’ at /home/aldyh/src/gcc/gcc/value-range.h:239:58,
> inlined from ‘bool irange::union_bitmask(const irange&)’ at /home/aldyh/src/gcc/gcc/value-range.cc:2107:13:
373a455,472
> In function ‘typename wi::binary_traits<T1, T2>::operator_result operator|(const T1&, const T2&) [with T1 = generic_wide_int<wide_int_storage>; T2 = generic_wide_int<wide_int_storage>]’,
> inlined from ‘void irange_bitmask::union_(const irange_bitmask&)’ at /home/aldyh/src/gcc/gcc/value-range.h:239:58,
> inlined from ‘bool irange::union_bitmask(const irange&)’ at /home/aldyh/src/gcc/gcc/value-range.cc:2107:13:
> /home/aldyh/src/gcc/gcc/wide-int.h:2798:1: warning: inlining failed in call to ‘typename wi::binary_traits<T1, T2>::result_type wi::bit_or(const T1&, const T2&) [with T1 = generic_wide_int<wide_int_storage>; T2 = generic_wide_int<wide_int_storage>]’: --param inline-unit-growth limit reached [-Winline]
> 2798 | wi::bit_or (const T1 &x, const T2 &y)
> | ^~
> /home/aldyh/src/gcc/gcc/wide-int.h:3855:152: note: called from here
> 3855 | BINARY_OPERATOR (operator |, bit_or)
> | ^
> In function ‘typename wi::binary_traits<T1, T2>::operator_result operator|(const T1&, const T2&) [with T1 = generic_wide_int<wide_int_storage>; T2 = generic_wide_int<wide_int_storage>]’,
> inlined from ‘void irange_bitmask::union_(const irange_bitmask&)’ at /home/aldyh/src/gcc/gcc/value-range.h:239:26,
> inlined from ‘bool irange::union_bitmask(const irange&)’ at /home/aldyh/src/gcc/gcc/value-range.cc:2107:13:
> /home/aldyh/src/gcc/gcc/wide-int.h:2798:1: warning: inlining failed in call to ‘typename wi::binary_traits<T1, T2>::result_type wi::bit_or(const T1&, const T2&) [with T1 = generic_wide_int<wide_int_storage>; T2 = generic_wide_int<wide_int_storage>]’: --param inline-unit-growth limit reached [-Winline]
> 2798 | wi::bit_or (const T1 &x, const T2 &y)
> | ^~
> /home/aldyh/src/gcc/gcc/wide-int.h:3855:152: note: called from here
> 3855 | BINARY_OPERATOR (operator |, bit_or)
> | ^
408,409c507,508
< /home/aldyh/src/gcc/gcc/value-range.h:1151:1: warning: inlining failed in call to ‘void irange::normalize_kind()’: --param max-inline-insns-single limit reached [-Winline]
< 1151 | irange::normalize_kind ()
---
> /home/aldyh/src/gcc/gcc/value-range.h:1184:1: warning: inlining failed in call to ‘void irange::normalize_kind()’: --param max-inline-insns-single limit reached [-Winline]
> 1184 | irange::normalize_kind ()
413a513,520
> In member function ‘generic_wide_int<wide_int_storage>& generic_wide_int<wide_int_storage>::operator=(const generic_wide_int<wide_int_storage>&)’,
> inlined from ‘irange& irange::operator=(const irange&)’ at /home/aldyh/src/gcc/gcc/value-range.cc:1022:56:
> /home/aldyh/src/gcc/gcc/wide-int.h:1213:1: warning: inlining failed in call to ‘wide_int_storage& wide_int_storage::operator=(const wide_int_storage&)’: --param inline-unit-growth limit reached [-Winline]
> 1213 | wide_int_storage::operator = (const wide_int_storage &x)
> | ^~~~~~~~~~~~~~~~
> /home/aldyh/src/gcc/gcc/wide-int.h:775:7: note: called from here
> 775 | class GTY(()) generic_wide_int : public storage
> | ^~~~~~~~~~~~~~~~
415,416c522,523
< /home/aldyh/src/gcc/gcc/value-range.h:1151:1: warning: inlining failed in call to ‘void irange::normalize_kind()’: --param max-inline-insns-single limit reached [-Winline]
< 1151 | irange::normalize_kind ()
---
> /home/aldyh/src/gcc/gcc/value-range.h:1184:1: warning: inlining failed in call to ‘void irange::normalize_kind()’: --param max-inline-insns-single limit reached [-Winline]
> 1184 | irange::normalize_kind ()
420a528,536
> In copy constructor ‘generic_wide_int<wide_int_storage>::generic_wide_int(const generic_wide_int<wide_int_storage>&)’,
> inlined from ‘wide_int irange::lower_bound(unsigned int) const’ at /home/aldyh/src/gcc/gcc/value-range.h:1122:25,
> inlined from ‘void irange::invert()’ at /home/aldyh/src/gcc/gcc/value-range.cc:1863:42:
> /home/aldyh/src/gcc/gcc/wide-int.h:1196:8: warning: inlining failed in call to ‘wide_int_storage::wide_int_storage(const wide_int_storage&)’: --param inline-unit-growth limit reached [-Winline]
> 1196 | inline wide_int_storage::wide_int_storage (const wide_int_storage &x)
> | ^~~~~~~~~~~~~~~~
> /home/aldyh/src/gcc/gcc/wide-int.h:775:7: note: called from here
> 775 | class GTY(()) generic_wide_int : public storage
> | ^~~~~~~~~~~~~~~~
429,430c545,546
< inlined from ‘void irange::maybe_resize(int)’ at /home/aldyh/src/gcc/gcc/value-range.h:655:22,
< inlined from ‘void irange::maybe_resize(int)’ at /home/aldyh/src/gcc/gcc/value-range.h:644:1,
---
> inlined from ‘void irange::maybe_resize(int)’ at /home/aldyh/src/gcc/gcc/value-range.h:688:22,
> inlined from ‘void irange::maybe_resize(int)’ at /home/aldyh/src/gcc/gcc/value-range.h:677:1,
437a554,562
> In copy constructor ‘generic_wide_int<wide_int_storage>::generic_wide_int(const generic_wide_int<wide_int_storage>&)’,
> inlined from ‘wide_int irange::lower_bound(unsigned int) const’ at /home/aldyh/src/gcc/gcc/value-range.h:1122:25,
> inlined from ‘void irange::invert()’ at /home/aldyh/src/gcc/gcc/value-range.cc:1863:42:
> /home/aldyh/src/gcc/gcc/wide-int.h:1196:8: warning: inlining failed in call to ‘wide_int_storage::wide_int_storage(const wide_int_storage&)’: --param inline-unit-growth limit reached [-Winline]
> 1196 | inline wide_int_storage::wide_int_storage (const wide_int_storage &x)
> | ^~~~~~~~~~~~~~~~
> /home/aldyh/src/gcc/gcc/wide-int.h:775:7: note: called from here
> 775 | class GTY(()) generic_wide_int : public storage
> | ^~~~~~~~~~~~~~~~
447c572
< inlined from ‘wide_int irange::lower_bound(unsigned int) const’ at /home/aldyh/src/gcc/gcc/value-range.h:1089:25,
---
> inlined from ‘wide_int irange::lower_bound(unsigned int) const’ at /home/aldyh/src/gcc/gcc/value-range.h:1122:25,
545a671,677
> /home/aldyh/src/gcc/gcc/value-range.h: In member function ‘void irange::invert()’:
> /home/aldyh/src/gcc/gcc/value-range.h:695:1: warning: inlining failed in call to ‘int_range<N, RESIZABLE>::~int_range() noexcept [with unsigned int N = 3; bool RESIZABLE = true]’: --param inline-unit-growth limit reached [-Winline]
> 695 | int_range<N, RESIZABLE>::~int_range ()
> | ^~~~~~~~~~~~~~~~~~~~~~~
> /home/aldyh/src/gcc/gcc/value-range.cc:1910:1: note: called from here
> 1910 | }
> | ^
576,577c708,709
< /home/aldyh/src/gcc/gcc/value-range.h:1151:1: warning: inlining failed in call to ‘void irange::normalize_kind()’: --param max-inline-insns-single limit reached [-Winline]
< 1151 | irange::normalize_kind ()
---
> /home/aldyh/src/gcc/gcc/value-range.h:1184:1: warning: inlining failed in call to ‘void irange::normalize_kind()’: --param max-inline-insns-single limit reached [-Winline]
> 1184 | irange::normalize_kind ()
704c836
< inlined from ‘wide_int irange::lower_bound(unsigned int) const’ at /home/aldyh/src/gcc/gcc/value-range.h:1089:25,
---
> inlined from ‘wide_int irange::lower_bound(unsigned int) const’ at /home/aldyh/src/gcc/gcc/value-range.h:1122:25,
713,714c845,846
< inlined from ‘wide_int irange::upper_bound(unsigned int) const’ at /home/aldyh/src/gcc/gcc/value-range.h:1100:29,
< inlined from ‘wide_int irange::upper_bound() const’ at /home/aldyh/src/gcc/gcc/value-range.h:1110:32,
---
> inlined from ‘wide_int irange::upper_bound(unsigned int) const’ at /home/aldyh/src/gcc/gcc/value-range.h:1133:29,
> inlined from ‘wide_int irange::upper_bound() const’ at /home/aldyh/src/gcc/gcc/value-range.h:1143:32,
723c855
< inlined from ‘wide_int irange::lower_bound(unsigned int) const’ at /home/aldyh/src/gcc/gcc/value-range.h:1089:25,
---
> inlined from ‘wide_int irange::lower_bound(unsigned int) const’ at /home/aldyh/src/gcc/gcc/value-range.h:1122:25,
740,741c872,873
< inlined from ‘wide_int irange::upper_bound(unsigned int) const’ at /home/aldyh/src/gcc/gcc/value-range.h:1100:29,
< inlined from ‘wide_int irange::upper_bound() const’ at /home/aldyh/src/gcc/gcc/value-range.h:1110:32,
---
> inlined from ‘wide_int irange::upper_bound(unsigned int) const’ at /home/aldyh/src/gcc/gcc/value-range.h:1133:29,
> inlined from ‘wide_int irange::upper_bound() const’ at /home/aldyh/src/gcc/gcc/value-range.h:1143:32,
750c882
< inlined from ‘wide_int irange::lower_bound(unsigned int) const’ at /home/aldyh/src/gcc/gcc/value-range.h:1089:25,
---
> inlined from ‘wide_int irange::lower_bound(unsigned int) const’ at /home/aldyh/src/gcc/gcc/value-range.h:1122:25,
765c897
< inlined from ‘wide_int irange::upper_bound(unsigned int) const’ at /home/aldyh/src/gcc/gcc/value-range.h:1100:29,
---
> inlined from ‘wide_int irange::upper_bound(unsigned int) const’ at /home/aldyh/src/gcc/gcc/value-range.h:1133:29,
774c906
< inlined from ‘wide_int irange::lower_bound(unsigned int) const’ at /home/aldyh/src/gcc/gcc/value-range.h:1089:25,
---
> inlined from ‘wide_int irange::lower_bound(unsigned int) const’ at /home/aldyh/src/gcc/gcc/value-range.h:1122:25,
783,784c915,916
< inlined from ‘wide_int irange::upper_bound(unsigned int) const’ at /home/aldyh/src/gcc/gcc/value-range.h:1100:29,
< inlined from ‘wide_int irange::upper_bound() const’ at /home/aldyh/src/gcc/gcc/value-range.h:1110:32,
---
> inlined from ‘wide_int irange::upper_bound(unsigned int) const’ at /home/aldyh/src/gcc/gcc/value-range.h:1133:29,
> inlined from ‘wide_int irange::upper_bound() const’ at /home/aldyh/src/gcc/gcc/value-range.h:1143:32,
862a995,1006
> In constructor ‘generic_wide_int<T>::generic_wide_int(const T&) [with T = wi::hwi_with_prec; storage = wide_int_storage]’,
> inlined from ‘bool contains_zero_p(const irange&)’ at /home/aldyh/src/gcc/gcc/value-range.h:1205:67,
> inlined from ‘bool irange::set_range_from_bitmask()’ at /home/aldyh/src/gcc/gcc/value-range.cc:1968:39:
> /home/aldyh/src/gcc/gcc/wide-int.h:1184:8: warning: inlining failed in call to ‘wide_int_storage::wide_int_storage(const T&) [with T = wi::hwi_with_prec]’: --param inline-unit-growth limit reached [-Winline]
> 1184 | inline wide_int_storage::wide_int_storage (const T &x)
> | ^~~~~~~~~~~~~~~~
> /home/aldyh/src/gcc/gcc/wide-int.h:847:15: note: called from here
> 847 | : storage (x)
> | ^
> In function ‘typename wi::binary_traits<T1, T2>::operator_result operator|(const T1&, const T2&) [with T1 = generic_wide_int<wide_int_storage>; T2 = generic_wide_int<wide_int_storage>]’,
> inlined from ‘wide_int irange_bitmask::get_nonzero_bits() const’ at /home/aldyh/src/gcc/gcc/value-range.h:200:20,
> inlined from ‘bool irange::set_range_from_bitmask()’ at /home/aldyh/src/gcc/gcc/value-range.cc:1969:49:
885,886c1029,1036
< /home/aldyh/src/gcc/gcc/value-range.h:1142:1: warning: inlining failed in call to ‘virtual void irange::set_zero(tree)’: --param inline-unit-growth limit reached [-Winline]
< 1142 | irange::set_zero (tree type)
---
> /home/aldyh/src/gcc/gcc/value-range.h:695:1: warning: inlining failed in call to ‘int_range<N, RESIZABLE>::~int_range() noexcept [with unsigned int N = 2; bool RESIZABLE = false]’: --param inline-unit-growth limit reached [-Winline]
> 695 | int_range<N, RESIZABLE>::~int_range ()
> | ^~~~~~~~~~~~~~~~~~~~~~~
> /home/aldyh/src/gcc/gcc/value-range.cc:1977:9: note: called from here
> 1977 | }
> | ^
> /home/aldyh/src/gcc/gcc/value-range.h:1175:1: warning: inlining failed in call to ‘virtual void irange::set_zero(tree)’: --param inline-unit-growth limit reached [-Winline]
> 1175 | irange::set_zero (tree type)
892,893c1042,1043
< /home/aldyh/src/gcc/gcc/value-range.h:1151:1: warning: inlining failed in call to ‘void irange::normalize_kind()’: --param max-inline-insns-single limit reached [-Winline]
< 1151 | irange::normalize_kind ()
---
> /home/aldyh/src/gcc/gcc/value-range.h:1184:1: warning: inlining failed in call to ‘void irange::normalize_kind()’: --param max-inline-insns-single limit reached [-Winline]
> 1184 | irange::normalize_kind ()
906a1057,1066
> In function ‘bool wi::les_p(const T1&, const T2&) [with T1 = generic_wide_int<wide_int_storage>; T2 = generic_wide_int<wide_int_storage>]’,
> inlined from ‘bool wi::le_p(const T1&, const T2&, signop) [with T1 = generic_wide_int<wide_int_storage>; T2 = generic_wide_int<wide_int_storage>]’ at /home/aldyh/src/gcc/gcc/wide-int.h:2381:18,
> inlined from ‘bool wi::le_p(const T1&, const T2&, signop) [with T1 = generic_wide_int<wide_int_storage>; T2 = generic_wide_int<wide_int_storage>]’ at /home/aldyh/src/gcc/gcc/wide-int.h:2378:1,
> inlined from ‘bool irange::irange_contains_p(const irange&) const’ at /home/aldyh/src/gcc/gcc/value-range.cc:1570:16:
> /home/aldyh/src/gcc/gcc/wide-int.h:2293:1: warning: inlining failed in call to ‘bool wi::lts_p(const T1&, const T2&) [with T1 = generic_wide_int<wide_int_storage>; T2 = generic_wide_int<wide_int_storage>]’: --param inline-unit-growth limit reached [-Winline]
> 2293 | wi::lts_p (const T1 &x, const T2 &y)
> | ^~
> /home/aldyh/src/gcc/gcc/wide-int.h:2364:17: note: called from here
> 2364 | return !lts_p (y, x);
> | ~~~~~~^~~~~~
957c1117
< inlined from ‘wide_int irange::lower_bound(unsigned int) const’ at /home/aldyh/src/gcc/gcc/value-range.h:1089:25,
---
> inlined from ‘wide_int irange::lower_bound(unsigned int) const’ at /home/aldyh/src/gcc/gcc/value-range.h:1122:25,
985,986c1145,1146
< inlined from ‘wide_int irange::upper_bound(unsigned int) const’ at /home/aldyh/src/gcc/gcc/value-range.h:1100:29,
< inlined from ‘wide_int irange::upper_bound() const’ at /home/aldyh/src/gcc/gcc/value-range.h:1110:32,
---
> inlined from ‘wide_int irange::upper_bound(unsigned int) const’ at /home/aldyh/src/gcc/gcc/value-range.h:1133:29,
> inlined from ‘wide_int irange::upper_bound() const’ at /home/aldyh/src/gcc/gcc/value-range.h:1143:32,
1079,1080c1239,1240
< /home/aldyh/src/gcc/gcc/value-range.h:662:1: warning: inlining failed in call to ‘int_range<N, RESIZABLE>::~int_range() noexcept [with unsigned int N = 3; bool RESIZABLE = true]’: --param inline-unit-growth limit reached [-Winline]
< 662 | int_range<N, RESIZABLE>::~int_range ()
---
> /home/aldyh/src/gcc/gcc/value-range.h:695:1: warning: inlining failed in call to ‘int_range<N, RESIZABLE>::~int_range() noexcept [with unsigned int N = 3; bool RESIZABLE = true]’: --param inline-unit-growth limit reached [-Winline]
> 695 | int_range<N, RESIZABLE>::~int_range ()
1085,1086c1245,1255
< /home/aldyh/src/gcc/gcc/value-range.h:662:1: warning: inlining failed in call to ‘int_range<N, RESIZABLE>::~int_range() noexcept [with unsigned int N = 3; bool RESIZABLE = true]’: --param inline-unit-growth limit reached [-Winline]
< 662 | int_range<N, RESIZABLE>::~int_range ()
---
> In constructor ‘generic_wide_int<T>::generic_wide_int(const T&) [with T = wi::hwi_with_prec; storage = wide_int_storage]’,
> inlined from ‘void irange_bitmask::adjust_range(irange&) const’ at /home/aldyh/src/gcc/gcc/value-range.cc:1929:54:
> /home/aldyh/src/gcc/gcc/wide-int.h:1184:8: warning: inlining failed in call to ‘wide_int_storage::wide_int_storage(const T&) [with T = wi::hwi_with_prec]’: --param inline-unit-growth limit reached [-Winline]
> 1184 | inline wide_int_storage::wide_int_storage (const T &x)
> | ^~~~~~~~~~~~~~~~
> /home/aldyh/src/gcc/gcc/wide-int.h:847:15: note: called from here
> 847 | : storage (x)
> | ^
> /home/aldyh/src/gcc/gcc/value-range.h: In member function ‘void irange_bitmask::adjust_range(irange&) const’:
> /home/aldyh/src/gcc/gcc/value-range.h:695:1: warning: inlining failed in call to ‘int_range<N, RESIZABLE>::~int_range() noexcept [with unsigned int N = 3; bool RESIZABLE = true]’: --param inline-unit-growth limit reached [-Winline]
> 695 | int_range<N, RESIZABLE>::~int_range ()
1091,1092c1260,1261
< /home/aldyh/src/gcc/gcc/value-range.h:662:1: warning: inlining failed in call to ‘int_range<N, RESIZABLE>::~int_range() noexcept [with unsigned int N = 3; bool RESIZABLE = true]’: --param inline-unit-growth limit reached [-Winline]
< 662 | int_range<N, RESIZABLE>::~int_range ()
---
> /home/aldyh/src/gcc/gcc/value-range.h:695:1: warning: inlining failed in call to ‘int_range<N, RESIZABLE>::~int_range() noexcept [with unsigned int N = 3; bool RESIZABLE = true]’: --param inline-unit-growth limit reached [-Winline]
> 695 | int_range<N, RESIZABLE>::~int_range ()
1097,1098c1266,1267
< /home/aldyh/src/gcc/gcc/value-range.h:662:1: warning: inlining failed in call to ‘int_range<N, RESIZABLE>::~int_range() noexcept [with unsigned int N = 3; bool RESIZABLE = true]’: --param inline-unit-growth limit reached [-Winline]
< 662 | int_range<N, RESIZABLE>::~int_range ()
---
> /home/aldyh/src/gcc/gcc/value-range.h:695:1: warning: inlining failed in call to ‘int_range<N, RESIZABLE>::~int_range() noexcept [with unsigned int N = 3; bool RESIZABLE = true]’: --param inline-unit-growth limit reached [-Winline]
> 695 | int_range<N, RESIZABLE>::~int_range ()
1135,1136c1304,1305
< /home/aldyh/src/gcc/gcc/value-range.h:1151:1: warning: inlining failed in call to ‘void irange::normalize_kind()’: --param max-inline-insns-single limit reached [-Winline]
< 1151 | irange::normalize_kind ()
---
> /home/aldyh/src/gcc/gcc/value-range.h:1184:1: warning: inlining failed in call to ‘void irange::normalize_kind()’: --param max-inline-insns-single limit reached [-Winline]
> 1184 | irange::normalize_kind ()
1142c1311
< inlined from ‘wide_int irange::lower_bound(unsigned int) const’ at /home/aldyh/src/gcc/gcc/value-range.h:1089:25,
---
> inlined from ‘wide_int irange::lower_bound(unsigned int) const’ at /home/aldyh/src/gcc/gcc/value-range.h:1122:25,
1151,1152c1320,1321
< inlined from ‘wide_int irange::upper_bound(unsigned int) const’ at /home/aldyh/src/gcc/gcc/value-range.h:1100:29,
< inlined from ‘wide_int irange::upper_bound() const’ at /home/aldyh/src/gcc/gcc/value-range.h:1110:32,
---
> inlined from ‘wide_int irange::upper_bound(unsigned int) const’ at /home/aldyh/src/gcc/gcc/value-range.h:1133:29,
> inlined from ‘wide_int irange::upper_bound() const’ at /home/aldyh/src/gcc/gcc/value-range.h:1143:32,
1161,1162c1330,1331
< /home/aldyh/src/gcc/gcc/value-range.h:1151:1: warning: inlining failed in call to ‘void irange::normalize_kind()’: --param max-inline-insns-single limit reached [-Winline]
< 1151 | irange::normalize_kind ()
---
> /home/aldyh/src/gcc/gcc/value-range.h:1184:1: warning: inlining failed in call to ‘void irange::normalize_kind()’: --param max-inline-insns-single limit reached [-Winline]
> 1184 | irange::normalize_kind ()
1168,1169c1337,1338
< inlined from ‘void irange::maybe_resize(int)’ at /home/aldyh/src/gcc/gcc/value-range.h:655:22,
< inlined from ‘void irange::maybe_resize(int)’ at /home/aldyh/src/gcc/gcc/value-range.h:644:1,
---
> inlined from ‘void irange::maybe_resize(int)’ at /home/aldyh/src/gcc/gcc/value-range.h:688:22,
> inlined from ‘void irange::maybe_resize(int)’ at /home/aldyh/src/gcc/gcc/value-range.h:677:1,
1308,1309c1477,1478
< /home/aldyh/src/gcc/gcc/value-range.h:1151:1: warning: inlining failed in call to ‘void irange::normalize_kind()’: --param max-inline-insns-single limit reached [-Winline]
< 1151 | irange::normalize_kind ()
---
> /home/aldyh/src/gcc/gcc/value-range.h:1184:1: warning: inlining failed in call to ‘void irange::normalize_kind()’: --param max-inline-insns-single limit reached [-Winline]
> 1184 | irange::normalize_kind ()
1314,1315c1483,1484
< /home/aldyh/src/gcc/gcc/value-range.h:662:1: warning: inlining failed in call to ‘int_range<N, RESIZABLE>::~int_range() noexcept [with unsigned int N = 3; bool RESIZABLE = true]’: --param inline-unit-growth limit reached [-Winline]
< 662 | int_range<N, RESIZABLE>::~int_range ()
---
> /home/aldyh/src/gcc/gcc/value-range.h:695:1: warning: inlining failed in call to ‘int_range<N, RESIZABLE>::~int_range() noexcept [with unsigned int N = 3; bool RESIZABLE = true]’: --param inline-unit-growth limit reached [-Winline]
> 695 | int_range<N, RESIZABLE>::~int_range ()
1414,1415c1583,1584
< /home/aldyh/src/gcc/gcc/value-range.h:1151:1: warning: inlining failed in call to ‘void irange::normalize_kind()’: --param max-inline-insns-single limit reached [-Winline]
< 1151 | irange::normalize_kind ()
---
> /home/aldyh/src/gcc/gcc/value-range.h:1184:1: warning: inlining failed in call to ‘void irange::normalize_kind()’: --param max-inline-insns-single limit reached [-Winline]
> 1184 | irange::normalize_kind ()
1428,1430c1597,1601
< /home/aldyh/src/gcc/gcc/wide-int.h:1213:1: warning: inlining failed in call to ‘wide_int_storage& wide_int_storage::operator=(const wide_int_storage&)’: --param inline-unit-growth limit reached [-Winline]
< 1213 | wide_int_storage::operator = (const wide_int_storage &x)
< | ^~~~~~~~~~~~~~~~
---
> In copy constructor ‘generic_wide_int<wide_int_storage>::generic_wide_int(const generic_wide_int<wide_int_storage>&)’,
> inlined from ‘bool irange::irange_single_pair_union(const irange&)’ at /home/aldyh/src/gcc/gcc/value-range.cc:1343:25:
> /home/aldyh/src/gcc/gcc/wide-int.h:1196:8: warning: inlining failed in call to ‘wide_int_storage::wide_int_storage(const wide_int_storage&)’: --param inline-unit-growth limit reached [-Winline]
> 1196 | inline wide_int_storage::wide_int_storage (const wide_int_storage &x)
> | ^~~~~~~~~~~~~~~~
1517,1518c1688,1689
< /home/aldyh/src/gcc/gcc/value-range.h:1151:1: warning: inlining failed in call to ‘void irange::normalize_kind()’: --param max-inline-insns-single limit reached [-Winline]
< 1151 | irange::normalize_kind ()
---
> /home/aldyh/src/gcc/gcc/value-range.h:1184:1: warning: inlining failed in call to ‘void irange::normalize_kind()’: --param max-inline-insns-single limit reached [-Winline]
> 1184 | irange::normalize_kind ()
1524c1695
< inlined from ‘wide_int irange::lower_bound(unsigned int) const’ at /home/aldyh/src/gcc/gcc/value-range.h:1089:25,
---
> inlined from ‘wide_int irange::lower_bound(unsigned int) const’ at /home/aldyh/src/gcc/gcc/value-range.h:1122:25,
1533,1534c1704,1705
< inlined from ‘wide_int irange::upper_bound(unsigned int) const’ at /home/aldyh/src/gcc/gcc/value-range.h:1100:29,
< inlined from ‘wide_int irange::upper_bound() const’ at /home/aldyh/src/gcc/gcc/value-range.h:1110:32,
---
> inlined from ‘wide_int irange::upper_bound(unsigned int) const’ at /home/aldyh/src/gcc/gcc/value-range.h:1133:29,
> inlined from ‘wide_int irange::upper_bound() const’ at /home/aldyh/src/gcc/gcc/value-range.h:1143:32,
1772,1773c1943,1944
< /home/aldyh/src/gcc/gcc/value-range.h:1151:1: warning: inlining failed in call to ‘void irange::normalize_kind()’: --param max-inline-insns-single limit reached [-Winline]
< 1151 | irange::normalize_kind ()
---
> /home/aldyh/src/gcc/gcc/value-range.h:1184:1: warning: inlining failed in call to ‘void irange::normalize_kind()’: --param max-inline-insns-single limit reached [-Winline]
> 1184 | irange::normalize_kind ()
prev parent reply other threads:[~2024-05-03 8:55 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-26 9:42 Aldy Hernandez
2024-04-30 7:57 ` Richard Biener
2024-04-30 8:21 ` Aldy Hernandez
2024-04-30 8:53 ` Martin Jambor
2024-04-30 19:09 ` Jason Merrill
2024-04-30 19:15 ` Richard Biener
2024-04-30 21:48 ` Building libgccjit with -fno-semantic-interposition? ( was Re: 1.76% performance loss in VRP due to inlining) David Malcolm
2024-05-02 7:40 ` Andrea Corallo
2024-04-30 19:22 ` 1.76% performance loss in VRP due to inlining Jakub Jelinek
2024-04-30 21:37 ` Jason Merrill
2024-05-03 8:55 ` Aldy Hernandez [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CAGm3qMVFFmuFHqBC0FLqasD_EckH4OW+kj-U0VYdue_C-Ea3+w@mail.gmail.com \
--to=aldyh@redhat.com \
--cc=amacleod@redhat.com \
--cc=gcc@gcc.gnu.org \
--cc=jakub@redhat.com \
--cc=jason@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).