tree 52e02b0f6cfdb543cb6020a209245c309e8257ec
parent 8ce3dbabb8b54e0cf6d44ebc57019001448a187f
author Steven Perron <stevenperron@google.com> 1543519498 -0500
committer GitHub <noreply@github.com> 1543519498 -0500
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJcAD0KCRBK7hj4Ov3rIwAAdHIIAHjMaldlEwzdcDJ9n7Pbc2J2
 QQ1ZSASay46XVQasjwfIZTUBPbqYd7S9g7/oN4N3NfcZ74HfeOSNl23b29AJ6cBm
 IvQ3xXpykhhvBIglKBTrWhlyF2H+stZw2flWEbPFBTTssWq8oGKnun+Rm8wN+dK3
 qeUTWXXXKf3TTAd8LEyWzqHHRFozWAHnYe5IjWJSunEatceQ49XNeKoHXlkwLPFH
 dgP3nir80cQE21aBcBp1LqclxpkblGDXTgLD1+Xrpgo8oc3Zn6cVsk34DYNKfzow
 ulwdJ9ffnlKH/z6xTlIsOu3gog2K+9U0Wu1HSlrYBW3KYtypVE6mYluhgfh8CyI=
 =ePYd
 -----END PGP SIGNATURE-----
 

Don't inline recursive functions. (#2130)

* Move ProcessFunction* function from pass to the context.

There are a few functions that are used to traverse the call tree.
They currently live in the Pass class, but they have nothing to do with
a pass, and may be needed outside of a pass.  They would be better in
the ir context, or in a specific call tree class if we ever have a need
for it.

* Don't inline recursive functions.

Inlining does not check if a function is recursive or not.  This has
been fine as long as the shader was a Vulkan shader, which forbid
recursive functions.  However, not all shaders are vulkan, so either
we limit inlining to Vulkan shaders or we teach it to look for recursive
functions.

I prefer to keep the passes as general as is reasonable.  The change
does not require much new code in inlining and gives a reason to refactor
some other code.

The changes are to add a member function to the Function class that
checks if that function is recursive or not.

Then this is used in inlining to not inlining a function call if it calls
a recursive function.

* Add id to function analysis

There are a few places that build a map from ids to Function whose
result is that id.  I decided to add an analysis to the context for this
to reduce that code, and simplify some of the functions.

* Add missing file.
