From: Ian Romanick Date: Thu, 1 Sep 2016 01:38:57 +0000 (-0700) Subject: glsl: Add ir_function_signature::is_intrinsic() method X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=acfcc7bbfac132b0c362819d7c734ef80cae289e;p=mesa.git glsl: Add ir_function_signature::is_intrinsic() method This necessetated renaming the is_intrinsic field to _is_intrinsic. The next commit will remove the field. text data bss dec hex filename 6036507 283160 28608 6348275 60ddf3 lib64/i965_dri.so before 6036491 283160 28608 6348259 60dde3 lib64/i965_dri.so after Signed-off-by: Ian Romanick Acked-by: Ilia Mirkin --- diff --git a/src/compiler/glsl/builtin_functions.cpp b/src/compiler/glsl/builtin_functions.cpp index daaa3a69e61..84b416d3749 100644 --- a/src/compiler/glsl/builtin_functions.cpp +++ b/src/compiler/glsl/builtin_functions.cpp @@ -3266,7 +3266,7 @@ builtin_builder::new_sig(const glsl_type *return_type, #define MAKE_INTRINSIC(return_type, id, avail, ...) \ ir_function_signature *sig = \ new_sig(return_type, avail, __VA_ARGS__); \ - sig->is_intrinsic = true; \ + sig->_is_intrinsic = true; \ sig->intrinsic_id = id; ir_function_signature * @@ -5601,7 +5601,7 @@ builtin_builder::_image(image_prototype_ctr prototype, sig->is_defined = true; } else { - sig->is_intrinsic = true; + sig->_is_intrinsic = true; sig->intrinsic_id = id; } diff --git a/src/compiler/glsl/glsl_to_nir.cpp b/src/compiler/glsl/glsl_to_nir.cpp index 7ecbfe079a1..eecd9053fe5 100644 --- a/src/compiler/glsl/glsl_to_nir.cpp +++ b/src/compiler/glsl/glsl_to_nir.cpp @@ -449,7 +449,7 @@ nir_function_visitor::visit_enter(ir_function *ir) void nir_visitor::create_function(ir_function_signature *ir) { - if (ir->is_intrinsic) + if (ir->is_intrinsic()) return; nir_function *func = nir_function_create(shader, ir->function_name()); @@ -470,7 +470,7 @@ nir_visitor::visit(ir_function *ir) void nir_visitor::visit(ir_function_signature *ir) { - if (ir->is_intrinsic) + if (ir->is_intrinsic()) return; struct hash_entry *entry = @@ -607,7 +607,7 @@ nir_visitor::visit(ir_return *ir) void nir_visitor::visit(ir_call *ir) { - if (ir->callee->is_intrinsic) { + if (ir->callee->is_intrinsic()) { nir_intrinsic_op op; switch (ir->callee->intrinsic_id) { diff --git a/src/compiler/glsl/ir.cpp b/src/compiler/glsl/ir.cpp index e633018ff68..e576f9b2873 100644 --- a/src/compiler/glsl/ir.cpp +++ b/src/compiler/glsl/ir.cpp @@ -1617,7 +1617,7 @@ ir_variable::get_extension_warning() const ir_function_signature::ir_function_signature(const glsl_type *return_type, builtin_available_predicate b) : ir_instruction(ir_type_function_signature), - return_type(return_type), is_defined(false), is_intrinsic(false), + return_type(return_type), is_defined(false), _is_intrinsic(false), intrinsic_id(ir_intrinsic_invalid), builtin_avail(b), _function(NULL) { this->origin = NULL; diff --git a/src/compiler/glsl/ir.h b/src/compiler/glsl/ir.h index 7333a53d215..241d31f918f 100644 --- a/src/compiler/glsl/ir.h +++ b/src/compiler/glsl/ir.h @@ -1187,11 +1187,17 @@ public: /** Whether or not this function signature is a built-in. */ bool is_builtin() const; + /** Whehter or not this function signautre is an intrinsic. */ + inline bool is_intrinsic() const + { + return _is_intrinsic; + } + /** * Whether or not this function is an intrinsic to be implemented * by the driver. */ - bool is_intrinsic; + bool _is_intrinsic; /** Indentifier for this intrinsic. */ enum ir_intrinsic_id intrinsic_id; diff --git a/src/compiler/glsl/link_functions.cpp b/src/compiler/glsl/link_functions.cpp index 00dc345d751..3b669cc9203 100644 --- a/src/compiler/glsl/link_functions.cpp +++ b/src/compiler/glsl/link_functions.cpp @@ -75,7 +75,7 @@ public: const char *const name = callee->function_name(); /* We don't actually need to find intrinsics; they're not real */ - if (callee->is_intrinsic) + if (callee->is_intrinsic()) return visit_continue; /* Determine if the requested function signature already exists in the @@ -161,7 +161,7 @@ public: linked_sig->replace_parameters(&formal_parameters); - linked_sig->is_intrinsic = sig->is_intrinsic; + linked_sig->_is_intrinsic = sig->_is_intrinsic; linked_sig->intrinsic_id = sig->intrinsic_id; if (sig->is_defined) { @@ -323,7 +323,7 @@ find_matching_signature(const char *name, const exec_list *actual_parameters, ir_function_signature *sig = f->matching_signature(NULL, actual_parameters, false); - if (sig && (sig->is_defined || sig->is_intrinsic)) + if (sig && (sig->is_defined || sig->is_intrinsic())) return sig; } diff --git a/src/compiler/glsl/lower_shared_reference.cpp b/src/compiler/glsl/lower_shared_reference.cpp index a7e738e8fc4..8f134b6eda6 100644 --- a/src/compiler/glsl/lower_shared_reference.cpp +++ b/src/compiler/glsl/lower_shared_reference.cpp @@ -284,7 +284,7 @@ lower_shared_reference_visitor::shared_store(void *mem_ctx, ir_function_signature(glsl_type::void_type, compute_shader_enabled); assert(sig); sig->replace_parameters(&sig_params); - sig->is_intrinsic = true; + sig->_is_intrinsic = true; sig->intrinsic_id = ir_intrinsic_shared_store; ir_function *f = new(mem_ctx) ir_function("__intrinsic_store_shared"); @@ -312,7 +312,7 @@ lower_shared_reference_visitor::shared_load(void *mem_ctx, new(mem_ctx) ir_function_signature(type, compute_shader_enabled); assert(sig); sig->replace_parameters(&sig_params); - sig->is_intrinsic = true; + sig->_is_intrinsic = true; sig->intrinsic_id = ir_intrinsic_shared_load; ir_function *f = new(mem_ctx) ir_function("__intrinsic_load_shared"); @@ -406,7 +406,7 @@ lower_shared_reference_visitor::lower_shared_atomic_intrinsic(ir_call *ir) compute_shader_enabled); assert(sig); sig->replace_parameters(&sig_params); - sig->is_intrinsic = true; + sig->_is_intrinsic = true; assert(ir->callee->intrinsic_id >= ir_intrinsic_generic_load); assert(ir->callee->intrinsic_id <= ir_intrinsic_generic_atomic_comp_swap); diff --git a/src/compiler/glsl/lower_ubo_reference.cpp b/src/compiler/glsl/lower_ubo_reference.cpp index 276e77fbc82..71919fbb4ee 100644 --- a/src/compiler/glsl/lower_ubo_reference.cpp +++ b/src/compiler/glsl/lower_ubo_reference.cpp @@ -453,7 +453,7 @@ lower_ubo_reference_visitor::ssbo_store(void *mem_ctx, ir_function_signature(glsl_type::void_type, shader_storage_buffer_object); assert(sig); sig->replace_parameters(&sig_params); - sig->is_intrinsic = true; + sig->_is_intrinsic = true; sig->intrinsic_id = ir_intrinsic_ssbo_store; ir_function *f = new(mem_ctx) ir_function("__intrinsic_store_ssbo"); @@ -491,7 +491,7 @@ lower_ubo_reference_visitor::ssbo_load(void *mem_ctx, new(mem_ctx) ir_function_signature(type, shader_storage_buffer_object); assert(sig); sig->replace_parameters(&sig_params); - sig->is_intrinsic = true; + sig->_is_intrinsic = true; sig->intrinsic_id = ir_intrinsic_ssbo_load; ir_function *f = new(mem_ctx) ir_function("__intrinsic_load_ssbo"); @@ -1018,7 +1018,7 @@ lower_ubo_reference_visitor::lower_ssbo_atomic_intrinsic(ir_call *ir) shader_storage_buffer_object); assert(sig); sig->replace_parameters(&sig_params); - sig->is_intrinsic = true; + sig->_is_intrinsic = true; assert(ir->callee->intrinsic_id >= ir_intrinsic_generic_load); assert(ir->callee->intrinsic_id <= ir_intrinsic_generic_atomic_comp_swap);