[llvm] 5b39387 - UpdateTestChecks: cleanup NamelessValues constructor

Nicolai Hähnle via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 25 01:06:49 PST 2023


Author: Nicolai Hähnle
Date: 2023-01-25T10:06:06+01:00
New Revision: 5b39387fb8aa6f8b755b633736f3548e348d0ee6

URL: https://github.com/llvm/llvm-project/commit/5b39387fb8aa6f8b755b633736f3548e348d0ee6
DIFF: https://github.com/llvm/llvm-project/commit/5b39387fb8aa6f8b755b633736f3548e348d0ee6.diff

LOG: UpdateTestChecks: cleanup NamelessValues constructor

Remove global_ir_{prefix,prefix_regexp} (one of which is misnamed),
since they are really quite redundant with ir_{prefix,regexp} and
default the is_before_functions argument, which basically just adds
noise to the table of NamelessValues.

Differential Revision: https://reviews.llvm.org/D142451

Added: 
    

Modified: 
    llvm/utils/UpdateTestChecks/common.py

Removed: 
    


################################################################################
diff  --git a/llvm/utils/UpdateTestChecks/common.py b/llvm/utils/UpdateTestChecks/common.py
index 0566d225e7849..cf382c0ff23fa 100644
--- a/llvm/utils/UpdateTestChecks/common.py
+++ b/llvm/utils/UpdateTestChecks/common.py
@@ -643,14 +643,12 @@ def get_failed_prefixes(self):
 # TODO: We should also derive check lines for global, debug, loop declarations, etc..
 
 class NamelessValue:
-  def __init__(self, check_prefix, check_key, ir_prefix, global_ir_prefix, global_ir_prefix_regexp,
-               ir_regexp, global_ir_rhs_regexp, is_before_functions, *,
-               is_number=False, replace_number_with_counter=False):
+  def __init__(self, check_prefix, check_key, ir_prefix, ir_regexp,
+               global_ir_rhs_regexp, *, is_before_functions=False, is_number=False,
+               replace_number_with_counter=False):
     self.check_prefix = check_prefix
     self.check_key = check_key
     self.ir_prefix = ir_prefix
-    self.global_ir_prefix = global_ir_prefix
-    self.global_ir_prefix_regexp = global_ir_prefix_regexp
     self.ir_regexp = ir_regexp
     self.global_ir_rhs_regexp = global_ir_rhs_regexp
     self.is_before_functions = is_before_functions
@@ -666,23 +664,19 @@ def is_local_def_ir_value_match(self, match):
 
   # Return true if this kind of IR value is "global", basically if it matches '#{{.*}}'.
   def is_global_scope_ir_value_match(self, match):
-    return self.global_ir_prefix is not None
+    return self.global_ir_rhs_regexp is not None
 
   # Return the IR prefix and check prefix we use for this kind or IR value,
   # e.g., (%, TMP) for locals.
   def get_ir_prefix_from_ir_value_match(self, match):
-    if self.ir_prefix and match.group(0).strip().startswith(self.ir_prefix):
-      return self.ir_prefix, self.check_prefix
-    return self.global_ir_prefix, self.check_prefix
+    return self.ir_prefix, self.check_prefix
 
   # Return the IR regexp we use for this kind or IR value, e.g., [\w.-]+? for locals
   def get_ir_regex_from_ir_value_re_match(self, match):
     # for backwards compatibility we check locals with '.*'
     if self.is_local_def_ir_value_match(match):
       return '.*'
-    if self.ir_prefix and match.group(0).strip().startswith(self.ir_prefix):
-      return self.ir_regexp
-    return self.global_ir_prefix_regexp
+    return self.ir_regexp
 
   # Create a FileCheck variable name based on an IR name.
   def get_value_name(self, var: str, check_prefix: str):
@@ -735,28 +729,27 @@ def get_value_use(self, var, match, var_prefix=None):
 # Description of the 
diff erent "unnamed" values we match in the IR, e.g.,
 # (local) ssa values, (debug) metadata, etc.
 ir_nameless_values = [
-    NamelessValue(r'TMP'        , '%' , r'%'                   , None            , None                   , r'[\w$.-]+?' , None                 , False) ,
-    NamelessValue(r'ATTR'       , '#' , r'#'                   , None            , None                   , r'[0-9]+'    , None                 , False) ,
-    NamelessValue(r'ATTR'       , '#' , None                   , r'attributes #' , r'[0-9]+'              , None         , r'{[^}]*}'           , False) ,
-    NamelessValue(r'GLOB'       , '@' , r'@'                   , None            , None                   , r'[0-9]+'    , None                 , False) ,
-    NamelessValue(r'GLOB'       , '@' , None                   , r'@'            , r'[a-zA-Z0-9_$"\\.-]+' , None         , r'.+'                , True)  ,
-    NamelessValue(r'DBG'        , '!' , r'!dbg '               , None            , None                   , r'![0-9]+'   , None                 , False) ,
-    NamelessValue(r'DIASSIGNID' , '!' , r'!DIAssignID '               , None            , None                   , r'![0-9]+'   , None                 , False) ,
-    NamelessValue(r'PROF'       , '!' , r'!prof '              , None            , None                   , r'![0-9]+'   , None                 , False) ,
-    NamelessValue(r'TBAA'       , '!' , r'!tbaa '              , None            , None                   , r'![0-9]+'   , None                 , False) ,
-    NamelessValue(r'TBAA_STRUCT', '!' , r'!tbaa.struct '       , None            , None                   , r'![0-9]+'   , None                 , False) ,
-    NamelessValue(r'RNG'        , '!' , r'!range '             , None            , None                   , r'![0-9]+'   , None                 , False) ,
-    NamelessValue(r'LOOP'       , '!' , r'!llvm.loop '         , None            , None                   , r'![0-9]+'   , None                 , False) ,
-    NamelessValue(r'META'       , '!' , r'metadata '           , None            , None                   , r'![0-9]+'   , None                 , False) ,
-    NamelessValue(r'META'       , '!' , None                   , r''             , r'![0-9]+'             , None         , r'(?:distinct |)!.*' , False) ,
-    NamelessValue(r'ACC_GRP'    , '!' , r'!llvm.access.group ' , None            , None                   , r'![0-9]+'   , None                 , False) ,
+    #            check_prefix   check_key  ir_prefix           ir_regexp                global_ir_rhs_regexp
+    NamelessValue(r'TMP'        , '%' , r'%'                   , r'[\w$.-]+?'           , None                 ) ,
+    NamelessValue(r'ATTR'       , '#' , r'#'                   , r'[0-9]+'              , None                 ) ,
+    NamelessValue(r'ATTR'       , '#' , r'attributes #'        , r'[0-9]+'              , r'{[^}]*}'           ) ,
+    NamelessValue(r'GLOB'       , '@' , r'@'                   , r'[0-9]+'              , None                 ) ,
+    NamelessValue(r'GLOB'       , '@' , r'@'                   , r'[a-zA-Z0-9_$"\\.-]+' , r'.+'                , is_before_functions=True)  ,
+    NamelessValue(r'DBG'        , '!' , r'!dbg '               , r'![0-9]+'             , None                 ) ,
+    NamelessValue(r'DIASSIGNID' , '!' , r'!DIAssignID '        , r'![0-9]+'             , None                 ) ,
+    NamelessValue(r'PROF'       , '!' , r'!prof '              , r'![0-9]+'             , None                 ) ,
+    NamelessValue(r'TBAA'       , '!' , r'!tbaa '              , r'![0-9]+'             , None                 ) ,
+    NamelessValue(r'TBAA_STRUCT', '!' , r'!tbaa.struct '       , r'![0-9]+'             , None                 ) ,
+    NamelessValue(r'RNG'        , '!' , r'!range '             , r'![0-9]+'             , None                 ) ,
+    NamelessValue(r'LOOP'       , '!' , r'!llvm.loop '         , r'![0-9]+'             , None                 ) ,
+    NamelessValue(r'META'       , '!' , r'metadata '           , r'![0-9]+'             , None                 ) ,
+    NamelessValue(r'META'       , '!' , r''                    , r'![0-9]+'             , r'(?:distinct |)!.*' ) ,
+    NamelessValue(r'ACC_GRP'    , '!' , r'!llvm.access.group ' , r'![0-9]+'             , None                 ) ,
 ]
 
 asm_nameless_values = [
- NamelessValue(r'MCINST', 'Inst#', None, '<MCInst #', r'\d+', None, r'.+',
-               False, is_number=True, replace_number_with_counter=True),
- NamelessValue(r'MCREG',  'Reg:', None, '<MCOperand Reg:', r'\d+', None, r'.+',
-               False, is_number=True, replace_number_with_counter=True),
+    NamelessValue(r'MCINST'     , 'Inst#' , '<MCInst #'        , r'\d+'                 , r'.+', is_number=True, replace_number_with_counter=True),
+    NamelessValue(r'MCREG'      , 'Reg:'  , '<MCOperand Reg:'  , r'\d+'                 , r'.+', is_number=True, replace_number_with_counter=True),
 ]
 
 def createOrRegexp(old, new):
@@ -767,8 +760,6 @@ def createOrRegexp(old, new):
   return old + '|' + new
 
 def createPrefixMatch(prefix_str, prefix_re):
-  if prefix_str is None or prefix_re is None:
-    return ''
   return '(?:' + prefix_str + '(' + prefix_re + '))'
 
 # Build the regexp that matches an "IR value". This can be a local variable,
@@ -778,22 +769,18 @@ def createPrefixMatch(prefix_str, prefix_re):
 IR_VALUE_REGEXP_PREFIX = r'(\s*)'
 IR_VALUE_REGEXP_STRING = r''
 for nameless_value in ir_nameless_values:
-  lcl_match = createPrefixMatch(nameless_value.ir_prefix, nameless_value.ir_regexp)
-  glb_match = createPrefixMatch(nameless_value.global_ir_prefix, nameless_value.global_ir_prefix_regexp)
-  assert((lcl_match or glb_match) and not (lcl_match and glb_match))
-  if lcl_match:
-    IR_VALUE_REGEXP_STRING = createOrRegexp(IR_VALUE_REGEXP_STRING, lcl_match)
-  elif glb_match:
-    IR_VALUE_REGEXP_STRING = createOrRegexp(IR_VALUE_REGEXP_STRING, '^' + glb_match)
+  match = createPrefixMatch(nameless_value.ir_prefix, nameless_value.ir_regexp)
+  if nameless_value.global_ir_rhs_regexp is not None:
+    match = '^' + match
+  IR_VALUE_REGEXP_STRING = createOrRegexp(IR_VALUE_REGEXP_STRING, match)
 IR_VALUE_REGEXP_SUFFIX = r'([,\s\(\)]|\Z)'
 IR_VALUE_RE = re.compile(IR_VALUE_REGEXP_PREFIX + r'(' + IR_VALUE_REGEXP_STRING + r')' + IR_VALUE_REGEXP_SUFFIX)
 
 # Build the regexp that matches an "ASM value" (currently only for --asm-show-inst comments).
 ASM_VALUE_REGEXP_STRING = ''
 for nameless_value in asm_nameless_values:
-  glb_match = createPrefixMatch(nameless_value.global_ir_prefix, nameless_value.global_ir_prefix_regexp)
-  assert not nameless_value.ir_prefix and not nameless_value.ir_regexp
-  ASM_VALUE_REGEXP_STRING = createOrRegexp(ASM_VALUE_REGEXP_STRING, glb_match)
+  match = createPrefixMatch(nameless_value.ir_prefix, nameless_value.ir_regexp)
+  ASM_VALUE_REGEXP_STRING = createOrRegexp(ASM_VALUE_REGEXP_STRING, match)
 ASM_VALUE_REGEXP_SUFFIX = r'([>\s]|\Z)'
 ASM_VALUE_RE = re.compile(r'((?:#|//)\s*)' + '(' + ASM_VALUE_REGEXP_STRING + ')' + ASM_VALUE_REGEXP_SUFFIX)
 
@@ -1045,10 +1032,10 @@ def add_analyze_checks(output_lines, comment_marker, prefix_list, func_dict, fun
 
 def build_global_values_dictionary(glob_val_dict, raw_tool_output, prefixes):
   for nameless_value in itertools.chain(ir_nameless_values, asm_nameless_values):
-    if nameless_value.global_ir_prefix is None:
+    if nameless_value.global_ir_rhs_regexp is None:
       continue
 
-    lhs_re_str = nameless_value.global_ir_prefix + nameless_value.global_ir_prefix_regexp
+    lhs_re_str = nameless_value.ir_prefix + nameless_value.ir_regexp
     rhs_re_str = nameless_value.global_ir_rhs_regexp
 
     global_ir_value_re_str = r'^' + lhs_re_str + r'\s=\s' + rhs_re_str + r'$'
@@ -1073,7 +1060,7 @@ def build_global_values_dictionary(glob_val_dict, raw_tool_output, prefixes):
 def add_global_checks(glob_val_dict, comment_marker, prefix_list, output_lines, global_vars_seen_dict, is_analyze, is_before_functions):
   printed_prefixes = set()
   for nameless_value in ir_nameless_values:
-    if nameless_value.global_ir_prefix is None:
+    if nameless_value.global_ir_rhs_regexp is None:
       continue
     if nameless_value.is_before_functions != is_before_functions:
       continue


        


More information about the llvm-commits mailing list