Implement optional link-time cross stage optimization
This commit is contained in:
parent
9d00d6d6ca
commit
05559a2963
6 changed files with 124 additions and 2 deletions
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue