[PATCH] Refactor VariantMatcher::MatcherOps to reduce the amount of generated code.

Samuel Benzaquen sbenza at google.com
Tue Sep 2 08:34:48 PDT 2014


I did try splitting it up. It doesn't scale much.
Each part contains duplicate template instantiations, so splitting in N pieces will not make each one 1/Nth of the total.
Tried 1-5 pieces. These are the results:
# parts | # symbols | total #
        |  per part | symbols
    1   |    ~19k   |  ~19k
    2   |    ~13k   |  ~26k
    3   |    ~10k   |  ~30k
    4   |    ~9k    |  ~36k
    5   |    ~8k    |  ~40k

Note that I did not try to group similar matchers together (which would be a maintenance nightmare), so each part ends up instantiating most of the common templates for a lot (most?) of the node types.

http://reviews.llvm.org/D5124






More information about the cfe-commits mailing list