On Mon, Sep 23, 2013 at 7:16 PM, Andrew MacLeod <amacl...@redhat.com> wrote:
> On 09/23/2013 01:05 PM, David Malcolm wrote:
>>
>> On Mon, 2013-09-23 at 12:21 -0400, Andrew MacLeod wrote:
>>>
>>> On 09/20/2013 04:08 AM, Richard Biener wrote:
>>>>
>>>> On Thu, Sep 19, 2013 at 6:56 PM, Andrew MacLeod <amacl...@redhat.com>
>>>> wrote:
>>>>>
>>>>> On 09/19/2013 09:24 AM, Andrew MacLeod wrote:
>>>>>>
>>>>>> I think this is of most use to ssa passes that need to construct code
>>>>>> snippets, so I propose we make this ssa specific and put it in
>>>>>> tree-ssa.c
>>>>>> (renaming it ssa_build_assign),  *OR* we could leave it general
>>>>>> purpose and
>>>>>> put it in its own set of files, gimple-ssa-build.[ch] or something
>>>>>> that
>>>>>> crosses the border between the two representations.
>>>>>>
>>>>>> I'd also suggest that the final optional parameter be changed to tree
>>>>>> *lhs
>>>>>> = NULL_TREE,  which would allow the caller to specify the LHS if they
>>>>>> want,
>>>>>> otherwise make_ssa_name would be called. If we want to leave it
>>>>>> supporting
>>>>>> both gimple and ssa, then anyone from gimple land could pass in a
>>>>>> gimple LHS
>>>>>> variable thus avoiding the call to make_ssa_name....
>>>>>>
>>>>>> Thoughts?
>>>>>> Andrew
>>>>>
>>>>> Anyway, here is a patch which does that and a bit more.  I didn't
>>>>> rename
>>>>> build_assign() to ssa_build_assign()..   even though those are the only
>>>>> kind
>>>>> actually created right now.   we can leave that for the day someone
>>>>> actually
>>>>> decides to flush this interface out, and maybe we'll want to pass in
>>>>> gimple_tmps and call them from front ends or other places... then it
>>>>> would
>>>>> have to be renamed again. So I just left it as is for the moment, but
>>>>> that
>>>>> could be changed.
>>>>>
>>>>> I also moved gimple_replace_lhs() to tree-ssa.c and renamed it
>>>>> ssa_replace_lhs(). It calls insert_debug_temp_for_var_def() from
>>>>> tree-ssa.c
>>>>> and that only works with the immediate use operands.. so that is an SSA
>>>>> specific routine, which makes this one SSA specific as well.
>>>>>
>>>>> Those 2 changes allow tree-ssa.h to no longer be included, it is
>>>>> replaced
>>>>> with tree-flow.h.   Some preliminary work to enable removing immediate
>>>>> use
>>>>> routines out of tree-flow.h include:
>>>>>
>>>>> struct count_ptr_d, count_ptr_derefs(), count_uses_and_derefs() also
>>>>> get
>>>>> moved to tree-ssa.c since those are also require the immediate use
>>>>> mechanism, and thus is also SSA dependent.
>>>>>
>>>>> This bootstraps on x86_64-unknown-linux-gnu and has no new regressions.
>>>>> OK?
>>>>
>>>> Can you move the builders to asan.c please?  From a quick glance it
>>>> seems
>>>> to have various issues so it shouldn't be used (I wonder who approved
>>>> them
>>>> in the end ... maybe it was even me).
>>>>
>>>> ssa_replace_lhs sounds odd (a 'SSA' has a lhs?), but maybe it's just me.
>>>> I'd have chosen gimple_replace_ssa_lhs?
>>>
>>> That sounds better.  done.
>>>
>>> And I also think a seperate file for those builders is probably best...
>>> here's a patch with those changes.. New files called
>>> gimple-builder.[ch]...    Then diego can eventually do whatever his
>>> grand vision for them is.  I minimized the includes.
>>>
>>> bootstraps and rerunning tests.  OK?
>>
>> Did you forget to attach the patch?
>>
> Of course not!  :-P
>
> Oh how I hate mondays.

Old patch attached?

Richard.

> Andrew

Reply via email to