From 4de031adb16019295d67fe02e515f9982b32a74b Mon Sep 17 00:00:00 2001 From: Michael Drake Date: Sat, 15 May 2021 19:41:55 +0100 Subject: Treebuilder: Massively optimise element type from name with gperf. Loading the html5 single page spec: * We were spending 10.81% of total runtime in element_type_from_name. Now it takes 0.66% of total runtime. * Total instruction fetch cost is reduced from 5,660,475,511 to 4,523,112,517. --- src/treebuilder/Makefile | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/treebuilder/Makefile') diff --git a/src/treebuilder/Makefile b/src/treebuilder/Makefile index 31feae1..ce00a4c 100644 --- a/src/treebuilder/Makefile +++ b/src/treebuilder/Makefile @@ -6,6 +6,12 @@ DIR_SOURCES := treebuilder.c \ in_cell.c in_select.c in_select_in_table.c \ in_foreign_content.c after_body.c in_frameset.c \ after_frameset.c after_after_body.c after_after_frameset.c \ - generic_rcdata.c + generic_rcdata.c element-type.c + +$(DIR)element-type.c: $(DIR)element-type.gperf + $(VQ)$(ECHO) " GPERF: $<" + $(Q)gperf --output-file=$@ $< + +CLEAN_ITEMS := $(DIR)element-type.c include $(NSBUILD)/Makefile.subdir -- cgit v1.2.3