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) |
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
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.