On 8/3/22 17:25, Eugene Rozenfeld wrote:
One more ping for this patch 
https://gcc.gnu.org/pipermail/gcc-patches/2022-June/596065.html

CC Jason since this changes discriminators emitted in dwarf.

Thanks,

Eugene

-----Original Message-----
From: Eugene Rozenfeld
Sent: Monday, June 27, 2022 12:45 PM
To: gcc-patches@gcc.gnu.org; Andi Kleen <a...@linux.intel.com>; Jan Hubicka 
<hubi...@ucw.cz>
Subject: RE: [PING][PATCH] Add instruction level discriminator support.

Another ping for 
https://gcc.gnu.org/pipermail/gcc-patches/2022-June/596065.html .

I got a review from Andi 
(https://gcc.gnu.org/pipermail/gcc-patches/2022-June/596549.html) but I also 
need a review from someone who can approve the changes.

Thanks,

Eugene

-----Original Message-----
From: Eugene Rozenfeld
Sent: Friday, June 10, 2022 12:03 PM
To: gcc-patches@gcc.gnu.org; Andi Kleen <a...@linux.intel.com>; Jan Hubicka 
<hubi...@ucw.cz>
Subject: [PING][PATCH] Add instruction level discriminator support.

Hello,

I'd like to ping this patch: 
https://gcc.gnu.org/pipermail/gcc-patches/2022-June/596065.html

Thanks,

Eugene

-----Original Message-----
From: Gcc-patches <gcc-patches-bounces+erozen=microsoft....@gcc.gnu.org> On 
Behalf Of Eugene Rozenfeld via Gcc-patches
Sent: Thursday, June 02, 2022 12:22 AM
To: gcc-patches@gcc.gnu.org; Andi Kleen <a...@linux.intel.com>; Jan Hubicka 
<hubi...@ucw.cz>
Subject: [EXTERNAL] [PATCH] Add instruction level discriminator support.

This is the first in a series of patches to enable discriminator support in 
AutoFDO.

This patch switches to tracking discriminators per statement/instruction 
instead of per basic block. Tracking per basic block was problematic since not 
all statements in a basic block needed a discriminator and, also, later 
optimizations could move statements between basic blocks making correlation 
during AutoFDO compilation unreliable. Tracking per statement also allows us to 
assign different discriminators to multiple function calls in the same basic 
block. A subsequent patch will add that support.

The idea of this patch is based on commit 
4c311d95cf6d9519c3c20f641cc77af7df491fdf
by Dehao Chen in vendors/google/heads/gcc-4_8 but uses a slightly different 
approach. In Dehao's work special (normally unused) location ids and side 
tables were used to keep track of locations with discriminators. Things have 
changed since then and I don't think we have unused location ids anymore. 
Instead, I made discriminators a part of ad-hoc locations.

The difference from Dehao's work also includes support for discriminator 
reading/writing in lto streaming and in modules.

Tested on x86_64-pc-linux-gnu.

@@ -1190,12 +1217,12 @@ assign_discriminators (void)
              || (last && same_line_p (locus, &locus_e,
                                       gimple_location (last))))
            {
-             if (e->dest->discriminator != 0 && bb->discriminator == 0)
-               bb->discriminator
-                 = next_discriminator_for_locus (locus_e.line);
+             if (((first && has_discriminator (gimple_location (first)))
+                  || (last && has_discriminator (gimple_location (last))))

I think you want to check has_discriminator only for the one of first or last that we find to have the same line as locus above?

Incidentally, I wonder why we ignore column number here, but that's not an issue for this patch.

Jason

Reply via email to