• Phillip Kuznetsov's avatar
    [PP-2059] Bypass Topological sort in rules and other prts of the compiler · 22b127d1
    Phillip Kuznetsov authored
    Summary:
    Topological sort was a huge contributor of execution time in the compiler, but we didn't need to use it in a lot of places. This diff reduces the compilers dependence on topo sort, especially in the rules defintiions.
    
    Most notably, added an argument ot the rules constructor so that Rule::Execute() can take the nodes in any order rather than TopologicalSorting before.
    
    Test Plan: Updated tests to match the changes, had to refactor some that assumed an order of nodes.
    
    Reviewers: nserrino, jamesbartlett, #engineering
    
    Reviewed By: jamesbartlett, #engineering
    
    JIRA Issues: PP-2059
    
    Differential Revision: https://phab.corp.pixielabs.ai/D5731
    
    GitOrigin-RevId: d30902087c772ecc86682834032a1e8f62f840bb
    22b127d1