Skip to content
  1. Aug 07, 2013
  2. Aug 06, 2013
  3. Aug 05, 2013
    • Eric Christopher's avatar
      Change parent hashing algorithm to be non-recursive and elaborate · 0369ad70
      Eric Christopher authored
      greatly on many comments in the code.
      
      llvm-svn: 187742
      0369ad70
    • Peter Collingbourne's avatar
      Introduce an optimisation for special case lists with large numbers of literal entries. · bace6066
      Peter Collingbourne authored
      Our internal regex implementation does not cope with large numbers
      of anchors very efficiently.  Given a ~3600-entry special case list,
      regex compilation can take on the order of seconds.  This patch solves
      the problem for the special case of patterns matching literal global
      names (i.e. patterns with no regex metacharacters).  Rather than
      forming regexes from literal global name patterns, add them to
      a StringSet which is checked before matching against the regex.
      This reduces regex compilation time by an order of roughly thousands
      when reading the aforementioned special case list, according to a
      completely unscientific study.
      
      No test cases.  I figure that any new tests for this code should
      check that regex metacharacters are properly recognised.  However,
      I could not find any documentation which documents the fact that the
      syntax of global names in special case lists is based on regexes.
      The extent to which regex syntax is supported in special case lists
      should probably be decided on/documented before writing tests.
      
      Differential Revision: http://llvm-reviews.chandlerc.com/D1150
      
      llvm-svn: 187732
      bace6066
Loading