FWIW, I would have just allocated the bitmap instead of the multipass. The bitmap is ...
11 years, 8 months ago
(2013-07-24 04:47:25 UTC)
#3
FWIW, I would have just allocated the bitmap instead of the multipass. The
bitmap is smaller than the instructions being generated, and it would give
an opportunity to trim nptrs if the function ends with lots of
non-pointers. However, these aren't going to matter much in the C we have
in the runtime. (I guess packages can have C too, though.) Anyway, it's
fine as is too.
just a small typo https://codereview.appspot.com/11683043/diff/23001/src/cmd/cc/pgen.c File src/cmd/cc/pgen.c (right): https://codereview.appspot.com/11683043/diff/23001/src/cmd/cc/pgen.c#newcode642 src/cmd/cc/pgen.c:642: // Makes a bitmap marking ...
11 years, 8 months ago
(2013-07-25 09:25:34 UTC)
#8
Aha, I knew there was a reason I put the FUNCDATA at the bottom of ...
11 years, 8 months ago
(2013-07-25 13:40:22 UTC)
#9
Aha, I knew there was a reason I put the FUNCDATA at the bottom of the
function. It was that if you put it at the top you get inscrutable errors
from 5l.
What was the reason you moved it to the top?
Russ
At the bottom it often gets lost somehow. I'm not sure why, maybe without control ...
11 years, 8 months ago
(2013-07-25 19:28:35 UTC)
#10
At the bottom it often gets lost somehow. I'm not sure why, maybe without
control flow to it is gets elided? I'll investigate some more...
On Thu, Jul 25, 2013 at 6:40 AM, Russ Cox <rsc@golang.org> wrote:
> Aha, I knew there was a reason I put the FUNCDATA at the bottom of the
> function. It was that if you put it at the top you get inscrutable errors
> from 5l.
>
> What was the reason you moved it to the top?
>
> Russ
>
On Thu, Jul 25, 2013 at 9:28 PM, Keith Randall <khr@google.com> wrote: > At the ...
11 years, 8 months ago
(2013-07-25 22:09:15 UTC)
#12
On Thu, Jul 25, 2013 at 9:28 PM, Keith Randall <khr@google.com> wrote:
> At the bottom it often gets lost somehow. I'm not sure why, maybe without
> control flow to it is gets elided? I'll investigate some more...
>
Could very well be. The register optimizer doesn't know about metadata
instructions and will remove dead branches. Only reason it worked
previously was because we inserted metadata instructions at the entry
point.
Some things got were missed when the new symbol table instructions
were added. We skip the TYPE instruction in the peephole optimizer and
regopt, but not FUNCDATA and PCDATA.
Issue 11683043: code review 11683043: cc: generate argument pointer maps for C functions.
(Closed)
Created 11 years, 8 months ago by khr
Modified 11 years, 8 months ago
Reviewers: dave_cheney.net, khr1, binet, DMorsing
Base URL:
Comments: 4