Liste des Groupes | Revenir à c arch |
MitchAlsup1 wrote:John Savard wrote:
On Tue, 18 Jun 2024 21:23:57 +0000, mitchalsup@aol.com (MitchAlsup1)
wrote:John Savard wrote:(1 bit) This indicates whether we're talking about the integer>
registers or the floating-point ones.
Loops controlled by floating point indexes do not vectorize, however
the body of the loop can be any mix of int, logical, memory, or FP
instructions.Oh no, my index is always an integer. This bit applies to theSee, I do not have this distinction, there is but one file.
"live-in" bits - if the loop performs floating-point computation, it's
floating-point registers that I want to mark as forwarding nodes.
And so you indicate this explicitly in VVM as well. I tended to assumeIt ends up that the majority of register uses in a loop do not need to
only a limited number of registers would be needed to live in, plus I
have both floating and integer register files, hence the differences.
be visible outside of the loop. This is almost the contrapositive of
annotating which registers are temporary in the loop. 90%+ of loops do not even need the index register to be live outside of the loop.
This is partly due to programming languages that applies lifetimes to variables, so that an index register which is defined in theThere are loops for which the last index and the last inbound data
scaffolding
of the loop (i.e. for (i = 0; i < limit; i++) {}) is invisible as soon as the loop terminates.
Without such a restriction, there are many times when it would be very natural to inspect the index in order to determine if this was a normalThe most important thing is that the live-outs of the loop are few
(counting) exit, or an early exit due to some internal test.
Personally, I have still not settled on my preferred way to handle
cases
like this, but I possibly will do so after I retire.
Terje
Les messages affichés proviennent d'usenet.