Re: Spilling in LCC

Chris Fraser <cwf@research.att.com>
Tue, 31 Oct 1995 15:09:12 GMT

          From comp.compilers

Related articles
Spilling in LCC mike@comlab.oxford.ac.uk (1995-10-25)
Re: Spilling in LCC cwf@research.att.com (Chris Fraser) (1995-10-31)
| List of all articles for this month |

Newsgroups: comp.compilers
From: Chris Fraser <cwf@research.att.com>
Keywords: C, registers
Organization: Compilers Central
References: 95-10-132
Date: Tue, 31 Oct 1995 15:09:12 GMT

>(1) the register spiller assumes that each temporary is assigned ONCE ...
>(2) (b ? e1 : e2) translates as
> if (not b) goto L1; tmp = e1; goto L2; L1: tmp = e2; L2:
> which contains TWO assignments to tmp ...


When a temporary holds the value of a conditional expr, it is NOT marked as
a a common subexpr (ie, with "u.t.cse"). When u.t.cse is set, LCC's register
allocator does indeed assume that it's assigned exactly once, but when
u.t.cse is clear, the temporary is a local variable, and typically a
register variable. The spiller cannot and does not assume that register
variables are assigned just once.


I'm happy to read and write about LCC in comp.compilers, but I don't want to
wear out our welcome there, so I'd post some such questions to the mailing
lists {lcc or lcc-bugs}@cs.princeton.edu instead.


Chris Fraser, AT&T Bell Laboratories
--


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.