This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug tree-optimization/54776] [4.8 Regression] tramp3d-v4: 20% performance regression using -O3


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54776

--- Comment #4 from Markus Trippelsdorf <markus at trippelsdorf dot de> 2012-10-04 15:57:19 UTC ---

> I will take a look how LTO can help us.  I believe part of the problem should
> be fixed by dropping the COMDAT hack for V1 API that is on my TODO list for
> this week.

The reported numbers above were taken with the COMDAT hack
dropped already. I always use this patch:

diff --git a/gcc/lto-streamer-out.c b/gcc/lto-streamer-out.c
index afe4951..71b9d57 100644
--- a/gcc/lto-streamer-out.c
+++ b/gcc/lto-streamer-out.c
@@ -1308,7 +1308,7 @@ produce_symtab (struct output_block *ob)
       if (DECL_EXTERNAL (node->symbol.decl))
        continue;
       if (DECL_COMDAT (node->symbol.decl)
-         && cgraph_comdat_can_be_unshared_p (node))
+         && cgraph_comdat_can_be_unshared_p (node) && 0)
        continue;
       if ((node->alias && !node->thunk.alias) || node->global.inlined_to)
        continue;
@@ -1327,7 +1327,7 @@ produce_symtab (struct output_block *ob)
       if (!node->symbol.address_taken && !node->callers)
        continue;
       if (DECL_COMDAT (node->symbol.decl)
-         && cgraph_comdat_can_be_unshared_p (node))
+         && cgraph_comdat_can_be_unshared_p (node) && 0)
        continue;
       if ((node->alias && !node->thunk.alias) || node->global.inlined_to)
        continue;
@@ -1348,7 +1348,7 @@ produce_symtab (struct output_block *ob)
       if (DECL_COMDAT (vnode->symbol.decl)
          && !vnode->symbol.force_output
          && vnode->finalized 
-         && DECL_VIRTUAL_P (vnode->symbol.decl))
+         && DECL_VIRTUAL_P (vnode->symbol.decl) && 0)
        continue;
       if (vnode->alias && !vnode->alias_of)
        continue;
@@ -1364,7 +1364,7 @@ produce_symtab (struct output_block *ob)
       if (DECL_COMDAT (vnode->symbol.decl)
          && !vnode->symbol.force_output
          && vnode->finalized 
-         && DECL_VIRTUAL_P (vnode->symbol.decl))
+         && DECL_VIRTUAL_P (vnode->symbol.decl) && 0)
        continue;
       if (vnode->alias && !vnode->alias_of)
        continue;


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]