mirror of
https://github.com/KhronosGroup/SPIRV-Tools
synced 2024-11-25 21:10:04 +00:00
Temporarily add EmptyPass to prevent glslang from failing (#4004)
Removing PropagateLineInfoPass and RedundantLineInfoElimPass from
56d0f5035
makes unit tests of many open source projects fail.
It will happen before submitting this glslang PR
https://github.com/KhronosGroup/glslang/pull/2440. This commit will be
git-reverted after merging the glslang PR.
This commit is contained in:
parent
82b378d671
commit
f7da527757
1
BUILD.gn
1
BUILD.gn
@ -561,6 +561,7 @@ static_library("spvtools_opt") {
|
|||||||
"source/opt/eliminate_dead_functions_util.h",
|
"source/opt/eliminate_dead_functions_util.h",
|
||||||
"source/opt/eliminate_dead_members_pass.cpp",
|
"source/opt/eliminate_dead_members_pass.cpp",
|
||||||
"source/opt/eliminate_dead_members_pass.h",
|
"source/opt/eliminate_dead_members_pass.h",
|
||||||
|
"source/opt/empty_pass.h",
|
||||||
"source/opt/feature_manager.cpp",
|
"source/opt/feature_manager.cpp",
|
||||||
"source/opt/feature_manager.h",
|
"source/opt/feature_manager.h",
|
||||||
"source/opt/fix_storage_class.cpp",
|
"source/opt/fix_storage_class.cpp",
|
||||||
|
@ -536,6 +536,18 @@ Optimizer::PassToken CreateDeadInsertElimPass();
|
|||||||
// eliminated with standard dead code elimination.
|
// eliminated with standard dead code elimination.
|
||||||
Optimizer::PassToken CreateAggressiveDCEPass();
|
Optimizer::PassToken CreateAggressiveDCEPass();
|
||||||
|
|
||||||
|
// Creates an empty pass.
|
||||||
|
// This is deprecated and will be removed.
|
||||||
|
// TODO(jaebaek): remove this pass after handling glslang's broken unit tests.
|
||||||
|
// https://github.com/KhronosGroup/glslang/pull/2440
|
||||||
|
Optimizer::PassToken CreatePropagateLineInfoPass();
|
||||||
|
|
||||||
|
// Creates an empty pass.
|
||||||
|
// This is deprecated and will be removed.
|
||||||
|
// TODO(jaebaek): remove this pass after handling glslang's broken unit tests.
|
||||||
|
// https://github.com/KhronosGroup/glslang/pull/2440
|
||||||
|
Optimizer::PassToken CreateRedundantLineInfoElimPass();
|
||||||
|
|
||||||
// Creates a compact ids pass.
|
// Creates a compact ids pass.
|
||||||
// The pass remaps result ids to a compact and gapless range starting from %1.
|
// The pass remaps result ids to a compact and gapless range starting from %1.
|
||||||
Optimizer::PassToken CreateCompactIdsPass();
|
Optimizer::PassToken CreateCompactIdsPass();
|
||||||
|
@ -43,6 +43,7 @@ set(SPIRV_TOOLS_OPT_SOURCES
|
|||||||
eliminate_dead_functions_pass.h
|
eliminate_dead_functions_pass.h
|
||||||
eliminate_dead_functions_util.h
|
eliminate_dead_functions_util.h
|
||||||
eliminate_dead_members_pass.h
|
eliminate_dead_members_pass.h
|
||||||
|
empty_pass.h
|
||||||
feature_manager.h
|
feature_manager.h
|
||||||
fix_storage_class.h
|
fix_storage_class.h
|
||||||
flatten_decoration_pass.h
|
flatten_decoration_pass.h
|
||||||
|
36
source/opt/empty_pass.h
Normal file
36
source/opt/empty_pass.h
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
// Copyright (c) 2020 Google LLC
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
#ifndef SOURCE_OPT_EMPTY_PASS_H_
|
||||||
|
#define SOURCE_OPT_EMPTY_PASS_H_
|
||||||
|
|
||||||
|
#include "source/opt/pass.h"
|
||||||
|
|
||||||
|
namespace spvtools {
|
||||||
|
namespace opt {
|
||||||
|
|
||||||
|
// Documented in optimizer.hpp
|
||||||
|
class EmptyPass : public Pass {
|
||||||
|
public:
|
||||||
|
EmptyPass() {}
|
||||||
|
|
||||||
|
const char* name() const override { return "empty-pass"; }
|
||||||
|
|
||||||
|
Status Process() override { return Status::SuccessWithoutChange; }
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace opt
|
||||||
|
} // namespace spvtools
|
||||||
|
|
||||||
|
#endif // SOURCE_OPT_EMPTY_PASS_H_
|
@ -753,6 +753,14 @@ Optimizer::PassToken CreateAggressiveDCEPass() {
|
|||||||
MakeUnique<opt::AggressiveDCEPass>());
|
MakeUnique<opt::AggressiveDCEPass>());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Optimizer::PassToken CreatePropagateLineInfoPass() {
|
||||||
|
return MakeUnique<Optimizer::PassToken::Impl>(MakeUnique<opt::EmptyPass>());
|
||||||
|
}
|
||||||
|
|
||||||
|
Optimizer::PassToken CreateRedundantLineInfoElimPass() {
|
||||||
|
return MakeUnique<Optimizer::PassToken::Impl>(MakeUnique<opt::EmptyPass>());
|
||||||
|
}
|
||||||
|
|
||||||
Optimizer::PassToken CreateCompactIdsPass() {
|
Optimizer::PassToken CreateCompactIdsPass() {
|
||||||
return MakeUnique<Optimizer::PassToken::Impl>(
|
return MakeUnique<Optimizer::PassToken::Impl>(
|
||||||
MakeUnique<opt::CompactIdsPass>());
|
MakeUnique<opt::CompactIdsPass>());
|
||||||
|
@ -35,6 +35,7 @@
|
|||||||
#include "source/opt/eliminate_dead_constant_pass.h"
|
#include "source/opt/eliminate_dead_constant_pass.h"
|
||||||
#include "source/opt/eliminate_dead_functions_pass.h"
|
#include "source/opt/eliminate_dead_functions_pass.h"
|
||||||
#include "source/opt/eliminate_dead_members_pass.h"
|
#include "source/opt/eliminate_dead_members_pass.h"
|
||||||
|
#include "source/opt/empty_pass.h"
|
||||||
#include "source/opt/fix_storage_class.h"
|
#include "source/opt/fix_storage_class.h"
|
||||||
#include "source/opt/flatten_decoration_pass.h"
|
#include "source/opt/flatten_decoration_pass.h"
|
||||||
#include "source/opt/fold_spec_constant_op_and_composite_pass.h"
|
#include "source/opt/fold_spec_constant_op_and_composite_pass.h"
|
||||||
|
Loading…
Reference in New Issue
Block a user