On Sat, May 7, 2011 at 5:46 AM, Richard Guenther
<richard.guent...@gmail.com> wrote:
> On Fri, May 6, 2011 at 7:57 PM, Xinliang David Li <davi...@google.com> wrote:
>>>> I want propose a more general solution.
>>>>
>>>> 1) Generic Annotation Support for gcc IR -- it is used attach to
>>>> application/optimization specific annotation to gimple statements and
>>>> annotations can be passed around across passes. In gcc, I only see
>>>> HISTOGRAM annotation for value profiling, which is not general enough
>>>> 2) Support of CallInfo for each callsite. This is an annotation, but
>>>> more standardized. The callinfo can be used to record information such
>>>> as call attributes, call side effects, mod-ref information etc ---
>>>> current gimple_call_flags can be folded into this Info structure.
>>>
>>> I don't like generic annotation facilities.  What should passes to with
>>> annotated stmts that are a) transformed, b) removed?  See RTL notes
>>> and all the interesting issues they cause.
>>
>>
>> Then how do you store information that needs to be passed across
>> optimization passes -- you can not possibly dump all of them into the
>> core IR. In fact, anything that is derived from (via analysis) but not
>> part of the core IR need to worry about update and maintenance. In
>> current GIMPLE, we can find many such instances -- DU chains, Memory
>> SSA, control flow information, as well as flags like visited,
>> no_warning, PLF (?), etc. Have a unified way of representing them is a
>> good thing so that 1) make the IR lean and mean; 2) avoid too many
>> different side data structures.  The important thing is to have a good
>> verifier to catch insanity and inconsistency of the annotation after
>> each pass.
>
> Well, as soon as you have a verifier it's no longer generic but _is_
> part of the "core IL".  Similar to how EH info is part of the "core IL",
> or alias info, or loop information.

The difference is that no-core IL can be thrown away anytime and be
recomputed if needed.

David


>
> Richard.
>

Reply via email to