This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Compute all gimple statements in which a var is used
- From: Richard Biener <richard dot guenther at gmail dot com>
- To: Jeff Law <law at redhat dot com>,Cristina Georgiana Opriceana <cristina dot opriceana at gmail dot com>
- Cc: gcc at gcc dot gnu dot org
- Date: Tue, 05 Apr 2016 17:22:15 +0200
- Subject: Re: Compute all gimple statements in which a var is used
- Authentication-results: sourceware.org; auth=none
- References: <CAFA9rWNCv-vM8zHH-hvKA+e+5od3nPh1V8wEM9smiTS5i3LKEQ at mail dot gmail dot com> <30ACD33F-7CA8-40AF-AE2C-091199E7980D at gmail dot com> <CAFA9rWOKDfsPv=awEm9DAPsZbCVMGR_QLdE53P5_2_djzBGOuQ at mail dot gmail dot com> <5703D3DA dot 60609 at redhat dot com>
On April 5, 2016 5:03:54 PM GMT+02:00, Jeff Law <law@redhat.com> wrote:
>On 04/05/2016 08:59 AM, Cristina Georgiana Opriceana wrote:
>> On Mon, Mar 28, 2016 at 10:55 PM, Richard Biener
>> <richard.guenther@gmail.com> wrote:
>>> On March 28, 2016 7:23:26 PM GMT+02:00, Cristina Georgiana Opriceana
><cristina.opriceana@gmail.com> wrote:
>>>> Hello,
>>>>
>>>> In order to compute all the statements where a variable is used, is
>it
>>>> enough to rely on the SSA analysis? I tried to do something like
>this:
>>>>
>>>> FOR_EACH_LOCAL_DECL (cfun, i, var) {
>>>> for (unsigned int i = 0; i < num_ssa_names; i++) {
>>>> if (ssa_name(i) && SSA_NAME_VAR (ssa_name(i)) == var) {
>>>> tree ssa_node = ssa_name(i);
>>>> FOR_EACH_IMM_USE_FAST (use_op, imm_iter, ssa_node)
>{
>>>> gimple * use_stmt = USE_STMT(use_op);
>>>> ...
>>>> }
>>>
>>> No, you'll miss variables not in SSA form.
>>>
>>
>> Could you give me more details on this or maybe some reading
>material?
>> As far as I understand, all the VAR_DECL, PARAM_DECL and RESULT_DECL
>> will be in SSA form.
>Only non-addressable _DECL nodes will be in SSA form.
>
>ie, arrays, or objects which have had their address taken will not be
>in
>SSA form.
All aggregates will not be in SSA form.
Richard.
>jeff