From 31de7dd4f91ef95fa0aafdd4c10fb3342a99b655 Mon Sep 17 00:00:00 2001 From: Arno Date: Thu, 10 Oct 2024 10:42:29 +0200 Subject: [PATCH] gpuav: Devirtualize Run and PrintDebugInfo They are never used through their base class, so might as well remove the added complexity --- layers/gpu/spirv/bindless_descriptor_pass.h | 2 +- layers/gpu/spirv/buffer_device_address_pass.h | 2 +- layers/gpu/spirv/debug_printf_pass.h | 4 ++-- layers/gpu/spirv/inject_conditional_function_pass.h | 2 +- layers/gpu/spirv/inject_function_pass.h | 2 +- layers/gpu/spirv/non_bindless_oob_buffer_pass.h | 4 ++-- layers/gpu/spirv/non_bindless_oob_texel_buffer_pass.h | 4 ++-- layers/gpu/spirv/pass.h | 4 ---- layers/gpu/spirv/ray_query_pass.h | 2 +- 9 files changed, 11 insertions(+), 15 deletions(-) diff --git a/layers/gpu/spirv/bindless_descriptor_pass.h b/layers/gpu/spirv/bindless_descriptor_pass.h index a5e5abad6c4..8ac13d488f2 100644 --- a/layers/gpu/spirv/bindless_descriptor_pass.h +++ b/layers/gpu/spirv/bindless_descriptor_pass.h @@ -28,7 +28,7 @@ class BindlessDescriptorPass : public InjectConditionalFunctionPass { public: BindlessDescriptorPass(Module& module) : InjectConditionalFunctionPass(module) {} const char* Name() const final { return "BindlessDescriptorPass"; } - void PrintDebugInfo() final; + void PrintDebugInfo(); private: bool AnalyzeInstruction(const Function& function, const Instruction& inst) final; diff --git a/layers/gpu/spirv/buffer_device_address_pass.h b/layers/gpu/spirv/buffer_device_address_pass.h index 676ec1d01c8..576a968eff0 100644 --- a/layers/gpu/spirv/buffer_device_address_pass.h +++ b/layers/gpu/spirv/buffer_device_address_pass.h @@ -27,7 +27,7 @@ class BufferDeviceAddressPass : public InjectConditionalFunctionPass { public: BufferDeviceAddressPass(Module& module) : InjectConditionalFunctionPass(module) {} const char* Name() const final { return "BufferDeviceAddressPass"; } - void PrintDebugInfo() final; + void PrintDebugInfo(); private: bool AnalyzeInstruction(const Function& function, const Instruction& inst) final; diff --git a/layers/gpu/spirv/debug_printf_pass.h b/layers/gpu/spirv/debug_printf_pass.h index 45a3ba38a77..4ed66d8f11f 100644 --- a/layers/gpu/spirv/debug_printf_pass.h +++ b/layers/gpu/spirv/debug_printf_pass.h @@ -28,8 +28,8 @@ class DebugPrintfPass : public Pass { DebugPrintfPass(Module& module, uint32_t binding_slot = 0) : Pass(module), binding_slot_(binding_slot) {} const char* Name() const final { return "DebugPrintfPass"; } - bool Run() final; - void PrintDebugInfo() final; + bool Run(); + void PrintDebugInfo(); private: bool AnalyzeInstruction(const Instruction& inst); diff --git a/layers/gpu/spirv/inject_conditional_function_pass.h b/layers/gpu/spirv/inject_conditional_function_pass.h index 01c4283e385..67779a02f0b 100644 --- a/layers/gpu/spirv/inject_conditional_function_pass.h +++ b/layers/gpu/spirv/inject_conditional_function_pass.h @@ -46,7 +46,7 @@ namespace spirv { // } class InjectConditionalFunctionPass : public Pass { public: - bool Run() final; + bool Run(); protected: InjectConditionalFunctionPass(Module& module); diff --git a/layers/gpu/spirv/inject_function_pass.h b/layers/gpu/spirv/inject_function_pass.h index bfbf26db4cf..e6d0051b5df 100644 --- a/layers/gpu/spirv/inject_function_pass.h +++ b/layers/gpu/spirv/inject_function_pass.h @@ -25,7 +25,7 @@ namespace spirv { // value = original_value; class InjectFunctionPass : public Pass { public: - bool Run() final; + bool Run(); protected: InjectFunctionPass(Module& module); diff --git a/layers/gpu/spirv/non_bindless_oob_buffer_pass.h b/layers/gpu/spirv/non_bindless_oob_buffer_pass.h index 309a021072a..3f59d367acc 100644 --- a/layers/gpu/spirv/non_bindless_oob_buffer_pass.h +++ b/layers/gpu/spirv/non_bindless_oob_buffer_pass.h @@ -25,9 +25,9 @@ namespace spirv { class NonBindlessOOBBufferPass : public Pass { public: NonBindlessOOBBufferPass(Module& module); - void PrintDebugInfo() final; + void PrintDebugInfo(); const char* Name() const final { return "NonBindlessOOBBufferPass"; } - bool Run() final; + bool Run(); private: bool AnalyzeInstruction(const Function& function, const Instruction& inst); diff --git a/layers/gpu/spirv/non_bindless_oob_texel_buffer_pass.h b/layers/gpu/spirv/non_bindless_oob_texel_buffer_pass.h index e717d5bfefe..174f02f45a2 100644 --- a/layers/gpu/spirv/non_bindless_oob_texel_buffer_pass.h +++ b/layers/gpu/spirv/non_bindless_oob_texel_buffer_pass.h @@ -25,9 +25,9 @@ namespace spirv { class NonBindlessOOBTexelBufferPass : public Pass { public: NonBindlessOOBTexelBufferPass(Module& module); - void PrintDebugInfo() final; + void PrintDebugInfo(); const char* Name() const final { return "NonBindlessOOBTexelBufferPass"; } - bool Run() final; + bool Run(); private: bool AnalyzeInstruction(const Function& function, const Instruction& inst); diff --git a/layers/gpu/spirv/pass.h b/layers/gpu/spirv/pass.h index 3efdd2494b2..c0525b37575 100644 --- a/layers/gpu/spirv/pass.h +++ b/layers/gpu/spirv/pass.h @@ -35,10 +35,6 @@ struct InjectionData { class Pass { public: virtual const char* Name() const = 0; - // Return false if nothing was changed - virtual bool Run() { return false; } - - virtual void PrintDebugInfo() {} // Finds (and creates if needed) decoration and returns the OpVariable it points to const Variable& GetBuiltinVariable(uint32_t built_in); diff --git a/layers/gpu/spirv/ray_query_pass.h b/layers/gpu/spirv/ray_query_pass.h index 3a72c15ac68..97800917a1e 100644 --- a/layers/gpu/spirv/ray_query_pass.h +++ b/layers/gpu/spirv/ray_query_pass.h @@ -25,7 +25,7 @@ class RayQueryPass : public InjectConditionalFunctionPass { public: RayQueryPass(Module& module) : InjectConditionalFunctionPass(module) {} const char* Name() const final { return "RayQueryPass"; } - void PrintDebugInfo() final; + void PrintDebugInfo(); private: bool AnalyzeInstruction(const Function& function, const Instruction& inst) final;