Update the Windows binary.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22604 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
John Kessenich 2013-08-05 17:09:24 +00:00
parent 8d2fe45334
commit acc55c2724
2 changed files with 11 additions and 7 deletions

Binary file not shown.

View File

@ -91,25 +91,29 @@ Basic Internal Operation
- Initial lexical analysis is done be the preprocessor in - Initial lexical analysis is done be the preprocessor in
MachineIndependent/Preprocessor, and then refined by a GLSL scanner MachineIndependent/Preprocessor, and then refined by a GLSL scanner
in MachineIndependent/Scan.cpp. There is currently no use of flex. in MachineIndependent/Scan.cpp. There is currently no use of flex.
- Code is parsed using bison, with the aid of a symbol table and an AST - Code is parsed using bison on MachineIndependent/glslang.y with the
intermediate representation. The symbol table is not passed on to aid of a symbol table and an AST. The symbol table is not passed on to
the back-end; the intermediate representation stands on its own. the back-end; the intermediate representation stands on its own.
The tree is built by the grammar productions, many of which are
offloaded into ParseHelper.cpp, and by Intermediate.cpp.
- The intermediate representation is very high-level, and represented - The intermediate representation is very high-level, and represented
as an in-memory tree. This serves to lose no information from the as an in-memory tree. This serves to lose no information from the
original program, and to have efficient transfer of the result from original program, and to have efficient transfer of the result from
parsing to the back-end. In the AST, constants are propogated and parsing to the back-end. In the AST, constants are propogated and
folded, and a very small amount of dead code is eliminated. folded, and a very small amount of dead code is eliminated.
To aid linking and reflection, the last top-level branch in the AST To aid linking and reflection, the last top-level branch in the AST
lists all global symbols. lists all global symbols.
- The primary algorithm of the back-end compiler is to traverse the - The primary algorithm of the back-end compiler is to traverse the
tree (high-level intermediate representation), and create an internal tree (high-level intermediate representation), and create an internal
object code representation. There is an example of how to do this object code representation. There is an example of how to do this
in MachineIndependent/intermOut.cpp. in MachineIndependent/intermOut.cpp.
- Reduction of the tree to a linear byte-code style low-level intermediate - Reduction of the tree to a linear byte-code style low-level intermediate
representation is likely a good way to generate fully optimized code. representation is likely a good way to generate fully optimized code.
- There is currently some dead linker-type code still lying around.