From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-io1-xd33.google.com (mail-io1-xd33.google.com [IPv6:2607:f8b0:4864:20::d33]) by sourceware.org (Postfix) with ESMTPS id 2FB50384B010 for ; Thu, 18 Feb 2021 03:12:43 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 2FB50384B010 Received: by mail-io1-xd33.google.com with SMTP id s17so604452ioj.4 for ; Wed, 17 Feb 2021 19:12:43 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=W5xV2K/5qkkGXAGmscGliTZF1mlDlBdcpuO7OfF9QGI=; b=uBG3e/82At5ytOVcWzaqD2fiAuUElY7quL3S33OxJTncIsIk8DBIWelqws8CheD+5t 2N2wNKWHFrDK+zWiBp9bVbEijyjjZN3YwAdsZQ+sQNOvN6U3u535Trd93CSEJsmYFPst 4OeCyuv6tXXzu2XaGsl9H5KaIIHdm5tvyIM4o5CWarXFTHTvQyBXAtUMY8xVxnBlr0vH PDbeVTVaSIFc2afa0BdMHdw8JPiblFV+feKR+lewJTQZvGHKKZUginutKXbYXOdvTACc 4k9xr9NhWYw6bdCSAafChwhqMEMv641mDGLCVAM6Lxj9p6rqIswXyel1DxQ59ZEP8loe 9ZSA== X-Gm-Message-State: AOAM531uHVSTsIIqBoWYqI1589Xdx0Q3QHNuJmvsdHsE/KhOaG93Rv8Y w5Tef09qeod238/BrNlhvJf4tf77EOHLv/vCdyKwv0Mnd+I= X-Google-Smtp-Source: ABdhPJzyQOv6etoN1kysidt22/bIHVMIt/nmhAdTBprJZgQoNnSHEWmipY2r6SPIxCk0g2BQkMkRxK79MWCsSXkkAug= X-Received: by 2002:a6b:6f04:: with SMTP id k4mr1974834ioc.2.1613617962148; Wed, 17 Feb 2021 19:12:42 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Shuai Wang Date: Thu, 18 Feb 2021 11:12:30 +0800 Message-ID: Subject: Re: Performing inter-procedural dataflow analysis To: GCC Development X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM, HTML_MESSAGE, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: gcc@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Feb 2021 03:12:44 -0000 By saying a_2(D) originated from parameter "a", what I mean is that I obtain the tree pointer of "a" given the tree pointer of a_2(D). Is that possible? I can somehow image to first get the string name of these variables and do a clumsy (?) comparison. But that seems not very handy... Thank you! On Thu, Feb 18, 2021 at 11:09 AM Shuai Wang wrote: > Hello, > > I am doing interprocedural dataflow analysis and countered the following > issue. Suppose I have an GIMPLE IR code as follows, which is after the > "simdclone" pass while before my own SIMPLE IPA pass: > > > foo (int a, int b) > { > int c; > int d; > int D.2425; > int _5; > > : > * c_4 = a_2(D) + b_3(D); * > * _5 = c_4;* > .... > > As you can see, while propagating certain dataflow facts among local > variables are smooth (e.g., from c_4 --> c_4 --> _5), I can hardly > somehow "link" function parameter "a" (or "b") with its first local usage > "a_2(D)" or "b_3(D)". > > So my question is, when traversing the GIMPLE statements and encounter SSA > variables like "a_2(D)" or "b_3(D)", how do I know they originate from > parameter "a" and "b"? > > Thank you! > > Best, > Shuai > > > >