Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.compilers > #2740
| From | Philipp Klaus Krause <pkk@spth.de> |
|---|---|
| Newsgroups | comp.compilers |
| Subject | Re: Modern compilers for ye olde architectures |
| Date | 2021-10-18 08:35 +0200 |
| Organization | Compilers Central |
| Message-ID | <21-10-032@comp.compilers> (permalink) |
| References | <21-10-007@comp.compilers> <21-10-012@comp.compilers> <21-10-015@comp.compilers> <21-10-024@comp.compilers> |
Am 15.10.21 um 09:37 schrieb Anton Ertl: > Philipp Klaus Krause <pkk@spth.de> writes: > > I am wondering about one thing in the empirical results in your paper: > Why is the code size not monotonously falling with increased numbers > of assignments? Are these independent runs with different > (pseudo-random) assignments? The basic idea is that for some subsets of nodes in the control-flow graph, we try all possible assignments to registers. The tree-decomposition tells us which subsets that are, and how we can assemble the locally optimal solutions into globally optimal ones. Since the cost function gives us the real costs from code generation, we are optimal wrt. to the optimization goal, e.g. code size. However, thre ar three aspects, why code size might not fall monotonously with an increased number of tried assignments: 1) If the peephole optimizer is active: The register allocation approach can only consider code size after code generation, it doesn't know what the peephole optimizer might do with the result. 2) The register allocator considers variables / parts of variables as assigned to certain registers, or spilt. It doesn't know where spilt variables will end up on the stack. It can thus consider the benefits of coalescing for variables assigned to registers, but not for spilt variables. 3) We know that the number of assignments we need to consider to get a provably optimal result is polynomial if the input is a structured program. But the polynomial bound might be too big for practical compilation, so we limit the number of assignments considered (via the --max-allocs-per-node parameter to SDCC). In that case the allocator can not give a provably optimal result. In some cases, it needs to make a decision, on which assignments to condier further (and does so based on incomplete information using a heuristic). Here, considering more assignments can lead to a certain assignment considered previously no lonjger being considered. E.g. when going from --max-allocs-per-node 10 to --max-allocs-per-node 100, we will now consider 100 assignments instead of 10. But not all of the previously considered 10 might make it into the 100 considered now. And in the end it might turn out that one of the 10 might have given us a better result globally. The decision which assignments to consider further us not random, but based on a heuristic that mostly takes local information into account. Philipp
Back to comp.compilers | Previous | Next — Previous in thread | Next in thread | Find similar
Modern compilers for ye olde architectures "Luke A. Guest" <laguest@archeia.com> - 2021-10-05 13:22 +0100
Re: Modern compilers for ye olde architectures David Brown <david.brown@hesbynett.no> - 2021-10-05 19:59 +0200
Re: Modern compilers for ye olde architectures Hans-Peter Diettrich <DrDiettrich1@netscape.net> - 2021-10-05 22:12 +0200
Re: Modern compilers for ye olde architectures Derek Jones <derek@NOSPAM-knosof.co.uk> - 2021-10-06 01:26 +0100
Re: Modern compilers for ye olde architectures "Luke A. Guest" <laguest@archeia.com> - 2021-10-06 09:00 +0100
Re: Modern compilers for ye olde architectures anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2021-10-06 07:56 +0000
Re: Modern compilers for ye olde architectures Philipp Klaus Krause <pkk@spth.de> - 2021-10-06 18:20 +0200
Re: Modern compilers for ye olde architectures anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2021-10-15 07:37 +0000
Re: Modern compilers for ye olde architectures Philipp Klaus Krause <pkk@spth.de> - 2021-10-18 08:35 +0200
Re: Modern compilers for ye olde architectures Philipp Klaus Krause <pkk@spth.de> - 2021-10-18 08:56 +0200
Re: Modern compilers for ye olde architectures Philipp Klaus Krause <pkk@spth.de> - 2021-10-18 09:17 +0200
Re: Modern compilers for ye olde architectures gah4 <gah4@u.washington.edu> - 2021-10-21 21:53 -0700
Re: Modern compilers for ye olde architectures Kaz Kylheku <480-992-1380@kylheku.com> - 2021-10-22 17:28 +0000
Re: Modern compilers for ye olde architectures dave_thompson_2@comcast.net - 2021-11-14 15:04 -0500
Re: Modern compilers for ye olde architectures Theo <theom+news@chiark.greenend.org.uk> - 2021-10-06 10:36 +0100
Re: Modern compilers for ye olde architectures "Luke A. Guest" <laguest@archeia.com> - 2021-10-06 16:20 +0100
csiph-web