From 8eca68d2dee9940cfcfe627ffc1b0b8d118428a3 Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Wed, 17 Jan 2024 11:24:17 -0800 Subject: [PATCH] freedreno/registers: Don't re-parse files Track the files we've parsed, and skip ones we have already seen, if (for example) we see the same paths imported from imported files. Additionally having the list of files we have parsed will be useful to generate a headergen-like top-of-file license comment. Signed-off-by: Rob Clark Part-of: --- src/freedreno/registers/gen_header.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/freedreno/registers/gen_header.py b/src/freedreno/registers/gen_header.py index 02468fd9ce9..54bfe27c963 100644 --- a/src/freedreno/registers/gen_header.py +++ b/src/freedreno/registers/gen_header.py @@ -335,6 +335,7 @@ class Parser(object): self.enums = {} self.variants = set() self.file = [] + self.xml_files = [] def error(self, message): parser, filename = self.stack[-1] @@ -460,6 +461,10 @@ class Parser(object): print("lxml not found, skipping validation", file=sys.stderr) def do_parse(self, filename): + filepath = os.path.abspath(filename) + if filepath in self.xml_files: + return + self.xml_files.append(filepath) file = open(filename, "rb") parser = xml.parsers.expat.ParserCreate() self.stack.append((parser, filename))