Warning: mysqli::__construct(): (HY000/1203): User howardkn already has more than 'max_user_connections' active connections in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\includes\artfuncs.php on line 21
Failed to connect to MySQL: (1203) User howardkn already has more than 'max_user_connections' active connections
Warning: mysqli::query(): Couldn't fetch mysqli in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\index.php on line 66
Article <2024Jun19.095808@mips.complang.tuwien.ac.at>
Deutsch   English   Français   Italiano  
<2024Jun19.095808@mips.complang.tuwien.ac.at>

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: anton@mips.complang.tuwien.ac.at (Anton Ertl)
Newsgroups: comp.arch
Subject: return for loop-back edges (Re: Concertlina II: Full Circle)
Date: Wed, 19 Jun 2024 07:58:08 GMT
Organization: Institut fuer Computersprachen, Technische Universitaet Wien
Lines: 28
Message-ID: <2024Jun19.095808@mips.complang.tuwien.ac.at>
References: <mas07jhu9i876gsov2gh8tap17kem5n21p@4ax.com> <132536f47d1b160ad3ad0340fc479c1d@www.novabbs.org> <v4c17j5eo503i93fb7imjpom5jqs3oivtv@4ax.com> <50c85586e1aec0eef53e83cef7cb1d5d@www.novabbs.org>
Injection-Date: Wed, 19 Jun 2024 10:12:22 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="dda0c2635aeed12ea387e8721fb90af7";
	logging-data="1975969"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX18AyekjMrwPmp3dqOEeyVfw"
Cancel-Lock: sha1:PGABN1y++IEU7oTUKR8Cm1youxM=
X-newsreader: xrn 10.11
Bytes: 2437

mitchalsup@aol.com (MitchAlsup1) writes:
[the instruction that ends the loop]
>No, it is not a memref--it is a return ! using the register from the 
>VEC  instruction. You "return" to the top of the loop. There is no 
>reason to use IP+Disp, and the fact there is no register nor disp-
>lacement in LOOP enables it all to fit. In addition, when VEC executes,
>
>IP is pointing at the top of the loop, requiring no calculation 
>whatsoever.

On a related note, about a year ago I have started research on the
performance effect of (programming language) virtual-machine IP
updates in interpreters.  The dependence chains of these IP updates
create a lower bound for the execution time of the program, and it
turns out that, if the interpreter is otherwise efficient enough, this
lower bound determines performance, and that we see speedups by up to
a factor of 3 (depending on benchmark and microarchitecture) by
optimizing these IP updates.

One of the optimizations we tried out was to break the dependence
chain be saving the IP on loop entry, and using that IP when starting
the next iteration; this eliminates the IP updates of one iteration
from the dependence chain of the next iteration.

- anton
-- 
'Anyone trying for "industrial quality" ISA should avoid undefined behavior.'
  Mitch Alsup, <c17fcd89-f024-40e7-a594-88a85ac10d20o@googlegroups.com>