8000 temp buffers · Issue #28 · nickg/nvc · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
temp buffers #28
Closed
Closed
@hiyuh

Description

@hiyuh

im pondering followings about temp buffers in src/.

$ git log -n 1
commit e77d021827b7c7079e41cd45e1f61f21dac386b9
Merge: 0ea04df 0448366
Author: Nick Gasson <nick@nickg.me.uk>
Date:   Tue Jan 21 12:55:04 2014 -0800

    Merge pull request #27 from hiyuh/nosignal

    NO_STACK_TRACE for cygwin

$ find src/ -name '*.[chly]' -and -not -name 'lexer.c' -and -not -name 'parse.c' \
    | xargs grep -n -e '[a-zA-Z0-9_]\+ [a-zA-Z0-9_]\+*\[[0-9]\+\]'
src/bounds.c:647:         char buf[1024];
src/cgen.c:376:   static char buf[1024];
src/cgen.c:539:   LLVMValueRef params[1][3] = { { left, right, kind } };
src/cgen.c:1187:   static char name[64];
src/cgen.c:1579:      char buf[256];
src/cgen.c:3347:      LLVMValueRef dims[1][3] = {
src/cgen.c:4944:   char name[256];
src/cgen.c:5087:   char state_name[256];
src/cgen.c:5181:   char name[256];
src/cgen.c:5253:         char buf[256];
src/cgen.c:5262:         char buf[256];
src/cgen.c:5272:      char buf[256];
src/cgen.c:5622:   char name[128];
src/cgen.c:6256:   char fname[256];
src/common.c:69:   char name[64];
src/elab.c:933:      tree_t formals[1] = { genvar };
src/elab.c:934:      tree_t actuals[1] = { get_int_lit(genvar, i) };
src/group.c:399:   char name[256];
src/lib.c:324:         char buf[2048];
src/link.c:86:   char so_name[256];
src/link.c:366:   char deps_name[256];
src/link.c:389:   char tmp[128] = "";
src/link.c:456:   char name[128];
src/nvc.c:388:      char tmp[256];
src/parse.y:2754:   char buf[128];
src/rt/cover.c:213:         char buf[1024];
src/rt/cover.c:376:   static char buf[256];
src/rt/cover.c:430:   char buf[256];
src/rt/cover.c:455:   static char buf[256];
src/rt/cover.c:475:   char buf[256];
src/rt/cover.c:523:   char dir[256];
src/rt/cover.c:537:   char buf[1024];
src/rt/fst.c:92:   char buf[128];
src/rt/jit.c:89:   char dlname[1024];
src/rt/jit.c:168:   char deps_name[256];
src/rt/jit.c:207:   char bc_fname[64], so_fname[64];;
src/rt/netdb.c:26:   char name[256];
src/rt/pprint.c:99:   static char buf[1024];
src/rt/rtkern.c:524:   char suffix[128] = "";
src/rt/rtkern.c:969:   char buf[64];
src/rt/rtkern.c:1091:         int8_t args[2] = { i, j };
src/rt/rtkern.c:1101:      int8_t args[1] = { i };
src/rt/rtkern.c:1286:   char buf[128];
src/rt/rtkern.c:1506:         int driving[2] = { p0[j], p1[j] };
src/rt/rtkern.c:1669:   char buf[2048];
src/rt/rtkern.c:2134:   uint64_t value[1];
src/rt/rtkern.c:2137:   uint64_t last[1];
src/rt/rtkern.c:2174:      char buf[256];
src/rt/shell.c:61:   char buf[1024];
src/rt/slave.c:116:   int socks[2];
src/rt/slave.h:65:   uint64_t values[0];
src/rt/vcd.c:97:   char tmbuf[64];
src/rt/wave.c:71:   char line[1024];
src/rt/wave.c:82:      char glob[1024];
src/rt/wave.c:96:   char buf[256];
src/sem.c:388:   static char buf[1024];
src/sem.c:426:   char argname[16];
src/sem.c:3195:      char buf[1024];
src/sem.c:3225:      char fn[512];
src/sem.c:3320:      char buf[1024];
src/sem.c:3334:      char fn[512];
src/sem.c:4402:      char buf[32];
src/type.c:332:      char buf[128];
src/util.c:429:   char buf[80];
src/util.c:576:   int mib[4];
src/util.c:594:      char buf[1024];
src/util.c:656:   char exe[256];
src/util.c:660:   char pid[16];
  • purge temp buffers w/ hard-coded length
    use standard functions, malloc bits or bgw-gc?
  • add GC for temp buffers
    use standard functions, malloc bits or bdw-gc?
  • add built-in memory checker
    valgrind has some issues b/c libc optimized functions on some arch, IIRC.
    efence is not thread-safe.
    DUMA looks thread-safe.
    if bdw-gc is used for above things, it looks best choice to me (of course, other than adding new lib dep), if the modified code has execution speed issue.

any thoughts?

update from first post:

  • fix a markdown typo for line breaking.
  • add list of temp buffers.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0