On Sat, May 30, 2020 at 12:18 AM Jan Hubicka <hubi...@ucw.cz> wrote: > > > > > --- > > gcc/tree.h | 11 +++++++++++ > > 1 file changed, 11 insertions(+) > > > > diff --git a/gcc/tree.h b/gcc/tree.h > > index bd0c51b2a18..86a4542f58b 100644 > > --- a/gcc/tree.h > > +++ b/gcc/tree.h > > @@ -6156,6 +6156,17 @@ int_bit_position (const_tree field) > > + wi::to_offset (DECL_FIELD_BIT_OFFSET (field))).to_shwi (); > > } > > > > +/* Determine if tree code is a constant */ > > +inline bool > > +tree_code_is_cst (tree op) > > +{ > > + int code = TREE_CODE (op); > > + if (code == INTEGER_CST || code == REAL_CST || code == COMPLEX_CST > > + || code == VECTOR_CST) > > + return true; > > + return false; > > We have is_gimple_ip_invariant which I think should suit your purpose - > it return true if tree is a constant, it also accepts things like > addresses of (global) variables, functions and labels.
And otherwise there's CONSTANT_CLASS_P (). Richard. > > +} > > + > > /* Return true if it makes sense to consider alias set for a type T. */ > > > > inline bool > > -- > > 2.18.1 > >