This is the mail archive of the gcc-patches@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]

Re: [PATCH] Clean up early inliner


> Yeah, but then recursive inlining is basically an interprocedural
> tracer - and we shouldn't need to fully inline recursive calls but
> only the interesting parts.  Maybe something that can be considered
> when implementing partial inlining?

Yep, we need to get partial inlining in place before playing with this.  I
would like to work on this soon, but I think this should be an excuse to
cleanup tree-inline.c that would be best started by removing the generic bit
for C++ clonning that is ugly thing to do :(

I would also take this as an excuse for moving profiler to SSA so we avoid need
for non-SSA inlining.  THis is not big deal, as non-SSA inlining is essentially
same as SSA inlining modulo very few tests.

> + /* When to run IPA inlining.  Inlining of always-inline functions
> +    happens during early inlining.  */
> + 
> + static bool
> + gate_cgraph_decide_inlining (void)
> + {
> +   /* We'd like to skip this if not optimizing or not inlining as
> +      all always-inline functions have been processed by early
> +      inlining already.  But this breaks EH with C++ somehow with

Update the comment that we need to call fixup_cfg pass in every case and this is currently part of inlining.

> + 
> +      g++.dg/torture/pr31863.C: In destructor 'Serializer<unsigned int, Loki::Typelist<ClassSpec<unsigned int, A040, 40u>, Loki::NullType> >::~Serializer()':
> +      g++.dg/torture/pr31863.C:231:7: error: statement marked for throw, but doesn't
> +      Serializer<unsigned int, ClassSpec<unsigned int, A040, 40u> >::~Serializer (this.18352_8, D.118411_7);

The problem here is that we are still making some functions as nothrow at -O0.  THis is good thing to do as it saves
codegen very cheaply and does not affect debugging quality.

OK.

Honza


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