https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121095

Segher Boessenkool <segher at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |segher at gcc dot gnu.org

--- Comment #8 from Segher Boessenkool <segher at gcc dot gnu.org> ---
Hi!

(In reply to lucier from comment #2)
> My take, without having any serious knowledge of what's going on, is:
> 
> If a C function doesn't involve (set, read, manipulate, ...) FP8 values or
> the fpmr register in any way, then this PRE pass shouldn't be run, because
> this PRE pass only deals with the fpmr register, and I don't see how any
> relevant code can be affected by, or can affect, the fpmr register if no FP8
> manipulations are involved in a routine.

Yup.  Andrew's patch does pretty much this, right?

> And I suggest that this should be true even if the architecture supports FP8
> arithmetic in general.
> 
> I am ignorant of the details of what's going on here, so my expectation may
> very well be incorrect.
> 
> This PRE pass wasn't run on this example function because more than 128MB of
> memory would have been needed, but when building the Gambit Scheme system
> there are many relatively large routines where this PRE pass is run.

The hardreg PRE pass makes a lot of garbage, just because of how it works
(nested loops, a loop per reg, it could be coded a bit smarter).

> In another large file where this PRE pass was run, the dump file contained:
> 
> PRE GCSE of ___H___num, 31567 basic blocks, 2524104 bytes needed, 0 substs,
> 0 insns created
> 
> Does "0 substs, 0 insns created" mean that running the pass had no effect on
> the code?

Pretty much, yes.

Reply via email to