Skip to content

Latest commit

 

History

History
6 lines (6 loc) · 940 Bytes

2025-04-25-improve-type-comparison-performance.md

File metadata and controls

6 lines (6 loc) · 940 Bytes
  • RULE-8-3, RULE-8-4, DCL40-C, RULE-23-5: DeclarationsOfAFunctionSameNameAndType.ql, DeclarationsOfAnObjectSameNameAndType.ql, CompatibleDeclarationOfFunctionDefined.ql, CompatibleDeclarationObjectDefined.ql, IncompatibleFunctionDeclarations.ql, DangerousDefaultSelectionForPointerInGeneric.ql:
    • Added pragmas to alter join order on function parameter equivalence (names and types).
    • Refactored expression which the optimizer was confused by, and compiled into a cartesian product.
    • Altered the module Compatible.qll to only perform expensive equality checks on types that are compared to a non identical other type, and those reachable from those types in the type graph. Types that are identical will trivially be considered equivalent.
  • RULE-23-5: DangerousDefaultSelectionForPointerInGeneric.ql:
    • Altered the module SimpleAssignment.qll in accordance with the changes to Compatible.qll.