-
Notifications
You must be signed in to change notification settings - Fork 7
Open
Labels
Description
From the nucleic benchmark's TODO, there seems to be an issue with allocating a large list in the heap from a literal. I believe this is a problem regardless of what backend is used.
I think this program hits a segfault because it tries to allocate too much in
the local heap (aka, a lot of allocation within one function). In particular,
take a look at how huge the list literals are in this program.
In addition, it seems compiling this program can cause LLC to hang for a
very long time (over 2 minutes).
I see two solutions:
(1) Try adding a test to see how much allocation is checked for by
add-alloc-checks in CFG. If the value is too high, maybe we should split
the block or insert an additional heap test.
(2) [preferred] move the data stored in the list constant into a file, and
read it in line-by-line to build the list up.
See the TODO file in: https://github.com/ManticoreProject/benchmark/tree/master/benchmarks/programs/seq-nucleic