An unsupported_range temporary is instantiated in every Value_Range
for completeness sake and should be mostly a NOP. However, it's
showing up in the callgrind stats, because it's not inline. This
fixes the oversight.
PR tree-optimization/106514
gcc/ChangeLog:
* value-range.cc (unsupported_range::unsupported_range): Move...
* value-range.h (unsupported_range::unsupported_range): ...here.
(unsupported_range::set_undefined): New.
set (build_int_cst (type, 0), TYPE_MAX_VALUE (type));
}
-unsupported_range::unsupported_range ()
-{
- m_discriminator = VR_UNKNOWN;
- set_undefined ();
-}
-
void
frange::accept (const vrange_visitor &v) const
{
class unsupported_range : public vrange
{
public:
- unsupported_range ();
+ unsupported_range ()
+ {
+ m_discriminator = VR_UNKNOWN;
+ set_undefined ();
+ }
+ virtual void set_undefined () final override
+ {
+ m_kind = VR_UNDEFINED;
+ }
virtual void accept (const vrange_visitor &v) const override;
};