Implement optional link-time cross stage optimization

This commit is contained in:
Daniel Story 2024-09-12 12:18:09 -07:00 committed by arcady-lunarg
parent 9d00d6d6ca
commit 05559a2963
6 changed files with 124 additions and 2 deletions

View file

@ -2055,7 +2055,7 @@ bool TProgram::linkStage(EShLanguage stage, EShMessages messages)
//
// Return true if no errors.
//
bool TProgram::crossStageCheck(EShMessages) {
bool TProgram::crossStageCheck(EShMessages messages) {
// make temporary intermediates to hold the linkage symbols for each linking interface
// while we do the checks
@ -2110,6 +2110,13 @@ bool TProgram::crossStageCheck(EShMessages) {
error |= (activeStages[i - 1]->getNumErrors() != 0);
}
// if requested, optimize cross stage IO
if (messages & EShMsgLinkTimeOptimization) {
for (unsigned int i = 1; i < activeStages.size(); ++i) {
activeStages[i - 1]->optimizeStageIO(*infoSink, *activeStages[i]);
}
}
return !error;
}