• Kevin Modzelewski's avatar
    Remove mallocs for our lambda passing · 841234f6
    Kevin Modzelewski authored
    This commit works by adding a SmallFunction class that behaves
    like std::function, but allocates its data inline rather than through
    a separate allocation.  It probably could have also worked by taking
    a custom allocator and using the new RegionAllocator.
    
    It adds a bit more restrictions than std::function does (the types
    caught by the closure have to be more "trivial" than std::function
    supports), so some of this change is marking some types as trivial,
    or copying data into a trivial format from things that aren't (ex SmallVector).
    841234f6
rewriter.h 26.5 KB