diff options
Diffstat (limited to 'gcc/cp/pt.c')
| -rw-r--r-- | gcc/cp/pt.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index 29047d7..cc18eef 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -3962,10 +3962,14 @@ lookup_template_class (d1, arglist, in_decl, context, entering_scope) if (comp_template_args (TREE_PURPOSE (*tp), arglist)) { found = *tp; + + /* Use the move-to-front heuristic to speed up future + searches. */ *tp = TREE_CHAIN (*tp); TREE_CHAIN (found) = DECL_TEMPLATE_INSTANTIATIONS (template); DECL_TEMPLATE_INSTANTIATIONS (template) = found; + return TREE_VALUE (found); } |
