1. 12 Jul, 2018 1 commit
    • Add a shared traverse() function for most node types · c9c259cc
      Olli Etuaho authored
      The traversal logic for many node types is essentially the same. Use
      a single traverse() function for all simple node types instead of
      having different ones for each node type. Special traversal code is
      only needed for those node types where the traversal logic is
      overridden in specific traversers or which do special bookkeeping.
      
      This makes traverser behavior a bit more consistent: InVisit calls are
      now done for all node types, including if/else, ternary and loop
      nodes. Also false returned from visit function will always skip
      traversing the next children of that node.
      
      This reduces shader_translator binary size on Windows by 8 kilobytes.
      The added helper functions will also make it easier to implement
      alternative more efficient traversers.
      
      Unfortunately this also regresses compiler perf tests by around 2-3%.
      
      BUG=angleproject:2662
      TEST=angle_unittests, angle_end2end_tests
      
      Change-Id: I3cb1256297b66e1db4b133b8fb84a24c349a9e29
      Reviewed-on: https://chromium-review.googlesource.com/1133009Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
  2. 11 Jul, 2018 10 commits
  3. 10 Jul, 2018 18 commits
  4. 09 Jul, 2018 11 commits