From fe2654b086fbd65404d02ad88f8e525d6bcf624c Mon Sep 17 00:00:00 2001 From: Justin Viiret Date: Tue, 20 Jun 2017 13:49:46 +1000 Subject: [PATCH] ng_small_literal_set: pre-check for narrow reach --- src/nfagraph/ng_small_literal_set.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/nfagraph/ng_small_literal_set.cpp b/src/nfagraph/ng_small_literal_set.cpp index 1d7be65b..fb191efa 100644 --- a/src/nfagraph/ng_small_literal_set.cpp +++ b/src/nfagraph/ng_small_literal_set.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2016, Intel Corporation + * Copyright (c) 2015-2017, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -33,8 +33,8 @@ #include "ng_small_literal_set.h" #include "grey.h" -#include "ng_util.h" #include "ng_holder.h" +#include "ng_util.h" #include "rose/rose_build.h" #include "util/compare.h" #include "util/compile_context.h" @@ -222,6 +222,11 @@ bool handleSmallLiteralSets(RoseBuild &rose, const NGHolder &g, return false; } + if (!hasNarrowReachVertex(g, MAX_LITERAL_SET_SIZE * 2 + 1)) { + DEBUG_PRINTF("vertex with wide reach found\n"); + return false; + } + DEBUG_PRINTF("looking for literals\n"); map> literals;