Path: csiph.com!weretis.net!feeder6.news.weretis.net!news.misty.com!news.iecc.com!.POSTED.news.iecc.com!nerds-end From: Thomas Koenig Newsgroups: comp.compilers Subject: Re: What is the meaning of an expression? Date: Sat, 22 Jan 2022 20:46:29 -0000 (UTC) Organization: news.netcologne.de Lines: 40 Sender: news@iecc.com Approved: comp.compilers@iecc.com Message-ID: <22-01-093@comp.compilers> References: <22-01-052@comp.compilers> <22-01-060@comp.compilers> <22-01-066@comp.compilers> <22-01-067@comp.compilers> <22-01-068@comp.compilers> <22-01-069@comp.compilers> <22-01-071@comp.compilers> Injection-Info: gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="72249"; mail-complaints-to="abuse@iecc.com" Keywords: code, optimize Posted-Date: 22 Jan 2022 18:49:35 EST X-submission-address: compilers@iecc.com X-moderator-address: compilers-request@iecc.com X-FAQ-and-archives: http://compilers.iecc.com Xref: csiph.com comp.compilers:2858 Christopher F Clark schrieb: > The second one was from my own experience working on the Alpha > optimizer at DEC. The C++ compiler was one of the last pieces of > software to use the one based upon Fred Chow's work. That was my > responsibility at the time (the optimizer, not the C++ compiler). In > any case, the front end writers were very aggressive in inlining > subroutines and doing whole-program optimization by that trick. When to inline and when not to inline is still a major issue today. > The result was very massive files of the intermediate representation. The > result, for certain large (and important) C++ programs the compiler > would work for days before it had filled up all the paging space on > the engineering cluster at DEC, which was multiple disks of paging and > as a result crashed not only the compiler, but in some cases the > entire cluster. This made for some very unhappy users, because they > had waited days and they still didn't get a successful compilation. https://xkcd.com/303/ and https://dilbert.com/strip/1998-06-04 come to mind :-) > Fortunately, a small amount of analysis on my part allowed me to > realize that most of the optimizers data structures while N-squared in > size, were actually filled with mostly zero values. Quadratic algorithms (if in space or in time) are a progressively bad idea. Programs are getting bigger, and anybody who thinkis a quadratic algrorithm is OK, will be hit sooner or later with a (real-life) test case which brings it out into the open. Just a random example: Some time ago, a test case for gcc was submitted which used up hours and Gigabytes for compiliation. It consisted of a single basic block in a subroutine, with thousands of variables and thousands of assignments (getting translated into ten thousands of SSA statements). This code was not written by a human, but by a computer algrebra system expanding some complicated formula.