+2012-11-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/54630
+ * tree-ssa-coalesce.c (coalesce_ssa_name): Remove static
+ keyword from ssa_name_hash var.
+
2012-11-19 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
Kirill Yukhin <kirill.yukhin@intel.com>
Michael Zolotukhin <michael.v.zolotukhin@intel.com>
+2012-11-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/54630
+ * class.c (fixed_type_or_null_ref_ht): New variable.
+ (fixed_type_or_null): Use it instead of local static ht.
+
2012-11-17 Diego Novillo <dnovillo@google.com>
Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)
return t;
}
\f
+/* Hash table to avoid endless recursion when handling references. */
+static hash_table <pointer_hash <tree_node> > fixed_type_or_null_ref_ht;
+
/* Return the dynamic type of INSTANCE, if known.
Used to determine whether the virtual function table is needed
or not.
else if (TREE_CODE (TREE_TYPE (instance)) == REFERENCE_TYPE)
{
/* We only need one hash table because it is always left empty. */
- static hash_table <pointer_hash <tree_node> > ht;
- if (!ht.is_created ())
- ht.create (37);
+ if (!fixed_type_or_null_ref_ht.is_created ())
+ fixed_type_or_null_ref_ht.create (37);
/* Reference variables should be references to objects. */
if (nonnull)
if (TREE_CODE (instance) == VAR_DECL
&& DECL_INITIAL (instance)
&& !type_dependent_expression_p_push (DECL_INITIAL (instance))
- && !ht.find (instance))
+ && !fixed_type_or_null_ref_ht.find (instance))
{
tree type;
tree_node **slot;
- slot = ht.find_slot (instance, INSERT);
+ slot = fixed_type_or_null_ref_ht.find_slot (instance, INSERT);
*slot = instance;
type = RECUR (DECL_INITIAL (instance));
- ht.remove_elt (instance);
+ fixed_type_or_null_ref_ht.remove_elt (instance);
return type;
}
2012-11-19 Tom de Vries <tom@codesourcery.com>
PR rtl-optimization/55315
-
* gcc.target/mips/pr55315.c: New test.
2012-11-17 Jakub Jelinek <jakub@redhat.com>
/* Coalesce SSA_NAMES together for the out-of-ssa pass.
- Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
+ Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
Free Software Foundation, Inc.
Contributed by Andrew MacLeod <amacleod@redhat.com>
bitmap used_in_copies = BITMAP_ALLOC (NULL);
var_map map;
unsigned int i;
- static hash_table <ssa_name_var_hash> ssa_name_hash;
cl = create_coalesce_list ();
map = create_outofssa_var_map (cl, used_in_copies);
so debug info remains undisturbed. */
if (!optimize)
{
+ hash_table <ssa_name_var_hash> ssa_name_hash;
+
ssa_name_hash.create (10);
for (i = 1; i < num_ssa_names; i++)
{