Re: Spilling in LCC

Chris Fraser <>
Tue, 31 Oct 1995 15:09:12 GMT

          From comp.compilers

Related articles
Spilling in LCC (1995-10-25)
Re: Spilling in LCC (Chris Fraser) (1995-10-31)
| List of all articles for this month |

Newsgroups: comp.compilers
From: Chris Fraser <>
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} 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.