- 25 Jul, 2015 1 commit
-
-
Felix Kaaman authored
-
- 24 Jul, 2015 2 commits
-
-
John Kessenich authored
-
John Kessenich authored
Preprocessing line number handling
-
- 23 Jul, 2015 5 commits
-
-
Lei Zhang authored
Everytime we switch to a new source string, the line are reset. We need to reset lastLine and also output newlines appropriately.
-
Lei Zhang authored
SourceLineSynchronizer is added for keeping track of the last line number and output newlines appropriately if we switch to a new line in the preprocessor.
-
John Kessenich authored
AST -> SPV testing: Update test for using new TbdFunctionality() that is non-fatal and uniquifies printed TBDs.
-
John Kessenich authored
-
John Kessenich authored
-
- 22 Jul, 2015 7 commits
-
-
John Kessenich authored
-
John Kessenich authored
-
John Kessenich authored
-
John Kessenich authored
Only output explicit extension directives in preprocessing.
-
John Kessenich authored
-
John Kessenich authored
spv::Builder::Loop constructor inits all members.
-
David Neto authored
After construction, the Loop is effectively const. This perturbs the IDs in SPIR-V tests because the body block is created before generating any of the loop code, rather than only when the body is first referenced.
-
- 21 Jul, 2015 7 commits
-
-
John Kessenich authored
Issue #28: Correctly handle a single input argument conversion when the input argument is an aggregate.
-
Lei Zhang authored
Preprocessing output shouldn't contain extensions enabled as dependencies.
-
John Kessenich authored
-
John Kessenich authored
-
John Kessenich authored
-
John Kessenich authored
-
John Kessenich authored
Generate correctly structured do-while loops.
-
- 20 Jul, 2015 5 commits
-
-
John Kessenich authored
-
John Kessenich authored
-
John Kessenich authored
-
John Kessenich authored
Fix g++ build break (portibility problems with stl hash). This partly turns off the stl improvements. It also removes some old code that ancient compilers used to need. However, the main issue is getting access to hash functions for unordered_map in portable way.
-
John Kessenich authored
Preprocessor: 1) Rationalize the "fixed atom" scheme, 2) remove redundant lookups when the text is already available. This simplification is a prelude to eliminating what I appear unnecessary symbol inserts into tables when tokenizing in the preprecessor, which show up as taking notable time. (Performance issue.) It also simply makes the preprocessor easier to understand, which it is badly in need of.
-
- 19 Jul, 2015 1 commit
-
-
John Kessenich authored
-
- 18 Jul, 2015 2 commits
-
-
John Kessenich authored
-
John Kessenich authored
Front-end: Add error-recovery code for a switch statement that ends with a case/default that has no statements.
-
- 17 Jul, 2015 5 commits
-
-
David Neto authored
The loop test is always emitted before the loop body. For do-while loops, use a phi node to track whether we're on the first loop iteration, and only check the loop test on the second and subsequent iterations. For do-while loops, the loop test branch no longer occurs at the top of the loop, so it must get its own selection merge instruction. A block can't be the target of more than one merge instruction. So when the loop test executes after the body (as in do-while in GLSL) we need to introduce a dummy block to be the target of the selection merge just before the loop test conditional branch. The other arm of the branch exits the loop and hence is the "break block" exception in the structured control flow rules.
-
John Kessenich authored
Added a setStringsWithLengths() method to TShader.
-
John Kessenich authored
Removed the single usage of exceptions in all of glslang.
-
Andrew Woloszyn authored
This allows us to pass through non null-terminated strings.
-
Andrew Woloszyn authored
-
- 16 Jul, 2015 1 commit
-
-
John Kessenich authored
-
- 15 Jul, 2015 4 commits
-
-
John Kessenich authored
Comment out some dead assignments per suggestion from static analysis…
-
Steve authored
Code is left in as comments for clarity to humans.
-
John Kessenich authored
Protect location setting methods from writing to non-existing strings.
-
Lei Zhang authored
TInputScanner advances its internal indices to the next character at the end of get(), which means, after reading in the last character in the user-provided shader string, internal index (currentSource) will point to the next shader string (currentSource == numSources), which doesn't exist. Then if a location setting method is called, we will write to some out-of-bound memory. A test case for this is "#line 10000\n". The eval() method in CPPline() will evaluate 10000, but at the same time it reads in the next token, '\n', and the currentSource will be numSources in TInputScanner. Then a parseContext.setCurrentLine() is called, we are writing to out-of-bound memory. Another test case will be "#line 10000 0\n".
-