diff options
author | Martin Jambor <mjambor@suse.cz> | 2017-12-22 18:03:16 +0100 |
---|---|---|
committer | Martin Jambor <jamborm@gcc.gnu.org> | 2017-12-22 18:03:16 +0100 |
commit | a50e9b2f5d4be81e7da7cf55e6ade4c6c575de03 (patch) | |
tree | 24dc8c5619b99187259be97646cc81c8b04e937d | |
parent | d7b24d5556b2dae71e1ed3c907d33db21cd2ce72 (diff) | |
download | gcc-a50e9b2f5d4be81e7da7cf55e6ade4c6c575de03.zip gcc-a50e9b2f5d4be81e7da7cf55e6ade4c6c575de03.tar.gz gcc-a50e9b2f5d4be81e7da7cf55e6ade4c6c575de03.tar.bz2 |
[PR 82027] Also stream opt_info of former_clones
2017-12-22 Martin Jambor <mjambor@suse.cz>
PR lto/82027
* lto-cgraph.c (output_cgraph_opt_summary_p): Also check former
clones.
testsuite/
* g++.dg/lto/pr82027_0.C: New test.
From-SVN: r255978
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/lto-cgraph.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/lto/pr82027_0.C | 73 |
4 files changed, 85 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0847188..fed24f7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2017-12-22 Martin Jambor <mjambor@suse.cz> + + PR lto/82027 + * lto-cgraph.c (output_cgraph_opt_summary_p): Also check former + clones. + 2017-12-22 Julia Koval <julia.koval@intel.com> Sebastian Peryt <sebastian.peryt@intel.com> diff --git a/gcc/lto-cgraph.c b/gcc/lto-cgraph.c index a19f8a1..ed3df15 100644 --- a/gcc/lto-cgraph.c +++ b/gcc/lto-cgraph.c @@ -1958,7 +1958,7 @@ input_offload_tables (bool do_force_output) static int output_cgraph_opt_summary_p (struct cgraph_node *node) { - return (node->clone_of + return ((node->clone_of || node->former_clone_of) && (node->clone.tree_map || node->clone.args_to_skip || node->clone.combined_args_to_skip)); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index fb9c339..209d4fc 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2017-12-22 Martin Jambor <mjambor@suse.cz> + + PR lto/82027 + * g++.dg/lto/pr82027_0.C: New test. + 2017-12-22 Julia Koval <julia.koval@intel.com> Sebastian Peryt <sebastian.peryt@intel.com> diff --git a/gcc/testsuite/g++.dg/lto/pr82027_0.C b/gcc/testsuite/g++.dg/lto/pr82027_0.C new file mode 100644 index 0000000..70cc776 --- /dev/null +++ b/gcc/testsuite/g++.dg/lto/pr82027_0.C @@ -0,0 +1,73 @@ +// { dg-lto-do run } +// { dg-lto-options { { -O3 -flto } } } + +class Position +{ + public: + Position( void ) {} + virtual ~Position() {} + + virtual void calcPercent( const char *name,int pos,int size ) {} +}; + + +class Looper +{ + public: + Looper( Position *cc,int size ) + : m_cc(cc), m_size(size) {} + virtual ~Looper() {} + + void loop( void ) + { + for( int pos=0; pos<m_size; pos++ ) + { + m_cc->calcPercent( "",pos,m_size ); + } + } + + private: + Position *m_cc; + int m_size; +}; + + +class EmptyClass +{ + public: + EmptyClass( void ) {} + virtual ~EmptyClass() {} +}; + + +class Combined : public EmptyClass, public Position +{ + public: + Combined( void ) : m_percent(0) {} + ~Combined() {} + + void calcPercent( const char *name,int pos,int size ) + { + int percent = 100*pos/size; + if( percent!=m_percent ) + m_percent = percent; + } + + private: + int m_percent; +}; + + + +int main( int argc,char **argv ) +{ + Combined *comb = new Combined(); + Looper *looper = new Looper( comb,argc ); + + looper->loop(); + + delete comb; + delete looper; + + return( 0 ); +} |