Deutsch English Français Italiano |
<v4v3sf$22gbc$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!feed.opticnetworks.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Thomas Koenig <tkoenig@netcologne.de> Newsgroups: comp.arch Subject: Re: Concertlina II: Full Circle Date: Wed, 19 Jun 2024 17:18:07 -0000 (UTC) Organization: A noiseless patient Spider Lines: 45 Message-ID: <v4v3sf$22gbc$1@dont-email.me> References: <mas07jhu9i876gsov2gh8tap17kem5n21p@4ax.com> <132536f47d1b160ad3ad0340fc479c1d@www.novabbs.org> <v4c17j5eo503i93fb7imjpom5jqs3oivtv@4ax.com> <50c85586e1aec0eef53e83cef7cb1d5d@www.novabbs.org> <4mb37jdb25571s1q1pjlc3ludaaks7tukr@4ax.com> <e4c37jd4l9spbi5b23b525unp9p60ird8q@4ax.com> <1401408dead0bbc0b1e2ea7e053c873a@www.novabbs.org> <fbn37jpc0banppburc1t6r4hnp3kih23ui@4ax.com> <adc60d6b4791061485b8290897609bb3@www.novabbs.org> <el047jt94n4eb0l3f829p1jnatncunm5dj@4ax.com> <b9790766475e970e390f6c88acba0577@www.novabbs.org> <v4uf97$1upbm$1@dont-email.me> Injection-Date: Wed, 19 Jun 2024 19:18:07 +0200 (CEST) Injection-Info: dont-email.me; posting-host="37742d36cd528af263d677a39e483ae4"; logging-data="2179436"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/zDlBjdN/k1Sfp4gmdgovVv6ALClvPM9k=" User-Agent: slrn/1.0.3 (Linux) Cancel-Lock: sha1:Hpm8AQwMqdhWgF7qXq9VFtgCk0Q= Bytes: 3466 Terje Mathisen <terje.mathisen@tmsw.no> schrieb: > 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 the >>> "live-in" bits - if the loop performs floating-point computation, it's >>> floating-point registers that I want to mark as forwarding nodes. >> >> See, I do not have this distinction, there is but one file. >> >>> And so you indicate this explicitly in VVM as well. I tended to assume >>> only a limited number of registers would be needed to live in, plus I >>> have both floating and integer register files, hence the differences. >> >> It ends up that the majority of register uses in a loop do not need to >> 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 the scaffolding > of the loop (i.e. for (i = 0; i < limit; i++) {}) is invisible as soon > as the loop terminates. This makes things more clear to anybody reading the code (and unambiguous to the compiler). However, lifetime analysis has also become very good, and if the value is not used afterwards, I expect no difference in practice. > 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 normal > (counting) exit, or an early exit due to some internal test. Hmm... do you mean for the programmer, or for the compiler?