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 <ja...@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 >
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)
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 ()