Comments (4)
Generally eliminating a bunch of load/stores ("mem -> reg") is future work. It does make an OpPhi for a do-while loop to handle continue, though that very special case might go away with an upcoming control-flow change to SPIR-V.
from glslang.
from glslang.
No, not significantly. Still the same CFG with the same concept of annotating nested structure on top of it. I shouldn't have made a future-looking statement.
The minor point is the current OpPhi generated is pretty special case and might change, and the major point is how/when/should glslang generally generate "in register" form of data flow, which would involve OpPhi in general when control flow is present. I don't have answers right now.
from glslang.
Update: The recent change (7c1aa10) to handle && and || short circuiting was done using OpPhi, so it is now pretty easy to get OpPhi to show up (use a non-trivial right operand to && or ||).
Example pseudo code:
r1 <- left operand
if (r1)
r2 <- right operand
r3 = phi(r1, r2)
from glslang.
Related Issues (20)
- Error compiling for MIPS HOT 2
- Access `TIntermediate` with public headers HOT 2
- Crash in glslang_program_SPIRV_generate_with_options in Android (arm64-v8a) HOT 2
- Incorrect SPIR-V generated when using a fixed-size array of sampler2D with -R (relaxed vulkan rules) HOT 3
- Compile warning on VS2022
- error in combination with preprocessor directives can obfuscate error location. HOT 4
- Glslang version output? HOT 1
- SPIR-V Validation Errors when using Vulkan Relaxed Rules
- Implement GL_NV_bindless_texture HOT 6
- Broken SPIRV generated if using ternary operator ( " a ? b : c " ) as a direct argument to a texelFetch call HOT 2
- Grammar railroad diagram
- nonuniformEXT not working correctly in conditionals HOT 3
- When will this be fixed? I have already sent PR HOT 2
- glslang must really warn when using uninitialized variables
- Conditional compilation is not handled correctly
- Crash on WebASM HOT 6
- error report when use GL_OES_EGL_image_external_essl3 HOT 2
- ABI break in glslang-14.2 HOT 1
- Incorrect SPIR-V can be generated when using samplers in structs with relaxed rules
- Miss glslang_shader_shader_set_entry_point HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from glslang.