glsl: Remove ir_call::get_callee() and set_callee().
Previously, set_callee() performed some assertions about the type of the ir_call; protecting the bare pointer ensured these checks would be run. However, ir_call no longer has a type, so the getter and setter methods don't actually do anything useful. Remove them in favor of accessing callee directly, as is done with most other fields in our IR. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Eric Anholt <eric@anholt.net> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
This commit is contained in:
@@ -1467,11 +1467,6 @@ ir_rvalue::error_value(void *mem_ctx)
|
|||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
ir_call::set_callee(ir_function_signature *sig)
|
|
||||||
{
|
|
||||||
this->callee = sig;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
visit_exec_list(exec_list *list, ir_visitor *visitor)
|
visit_exec_list(exec_list *list, ir_visitor *visitor)
|
||||||
|
@@ -1071,19 +1071,6 @@ public:
|
|||||||
return callee->function_name();
|
return callee->function_name();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the function signature bound to this function call
|
|
||||||
*/
|
|
||||||
ir_function_signature *get_callee()
|
|
||||||
{
|
|
||||||
return callee;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Set the function call target
|
|
||||||
*/
|
|
||||||
void set_callee(ir_function_signature *sig);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generates an inline version of the function before @ir,
|
* Generates an inline version of the function before @ir,
|
||||||
* storing the return value in return_deref.
|
* storing the return value in return_deref.
|
||||||
@@ -1096,14 +1083,16 @@ public:
|
|||||||
*/
|
*/
|
||||||
ir_dereference_variable *return_deref;
|
ir_dereference_variable *return_deref;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The specific function signature being called.
|
||||||
|
*/
|
||||||
|
ir_function_signature *callee;
|
||||||
|
|
||||||
/* List of ir_rvalue of paramaters passed in this call. */
|
/* List of ir_rvalue of paramaters passed in this call. */
|
||||||
exec_list actual_parameters;
|
exec_list actual_parameters;
|
||||||
|
|
||||||
/** Should this call only bind to a built-in function? */
|
/** Should this call only bind to a built-in function? */
|
||||||
bool use_builtin;
|
bool use_builtin;
|
||||||
|
|
||||||
private:
|
|
||||||
ir_function_signature *callee;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@@ -398,9 +398,9 @@ public:
|
|||||||
* table. If it is found, replace it with the value from the table.
|
* table. If it is found, replace it with the value from the table.
|
||||||
*/
|
*/
|
||||||
ir_function_signature *sig =
|
ir_function_signature *sig =
|
||||||
(ir_function_signature *) hash_table_find(this->ht, ir->get_callee());
|
(ir_function_signature *) hash_table_find(this->ht, ir->callee);
|
||||||
if (sig != NULL)
|
if (sig != NULL)
|
||||||
ir->set_callee(sig);
|
ir->callee = sig;
|
||||||
|
|
||||||
/* Since this may be used before function call parameters are flattened,
|
/* Since this may be used before function call parameters are flattened,
|
||||||
* the children also need to be processed.
|
* the children also need to be processed.
|
||||||
|
@@ -59,7 +59,7 @@ bool
|
|||||||
can_inline(ir_call *call)
|
can_inline(ir_call *call)
|
||||||
{
|
{
|
||||||
ir_function_can_inline_visitor v;
|
ir_function_can_inline_visitor v;
|
||||||
const ir_function_signature *callee = call->get_callee();
|
const ir_function_signature *callee = call->callee;
|
||||||
if (!callee->is_defined)
|
if (!callee->is_defined)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
@@ -217,7 +217,7 @@ public:
|
|||||||
if (this->current == NULL)
|
if (this->current == NULL)
|
||||||
return visit_continue;
|
return visit_continue;
|
||||||
|
|
||||||
function *const target = this->get_function(call->get_callee());
|
function *const target = this->get_function(call->callee);
|
||||||
|
|
||||||
/* Create a link from the caller to the callee.
|
/* Create a link from the caller to the callee.
|
||||||
*/
|
*/
|
||||||
|
@@ -541,7 +541,7 @@ ir_validate::visit_enter(ir_assignment *ir)
|
|||||||
ir_visitor_status
|
ir_visitor_status
|
||||||
ir_validate::visit_enter(ir_call *ir)
|
ir_validate::visit_enter(ir_call *ir)
|
||||||
{
|
{
|
||||||
ir_function_signature *const callee = ir->get_callee();
|
ir_function_signature *const callee = ir->callee;
|
||||||
|
|
||||||
if (callee->ir_type != ir_type_function_signature) {
|
if (callee->ir_type != ir_type_function_signature) {
|
||||||
printf("IR called by ir_call is not ir_function_signature!\n");
|
printf("IR called by ir_call is not ir_function_signature!\n");
|
||||||
|
@@ -68,7 +68,7 @@ public:
|
|||||||
* Doing so will modify the original shader. This may prevent that
|
* Doing so will modify the original shader. This may prevent that
|
||||||
* shader from being linkable in other programs.
|
* shader from being linkable in other programs.
|
||||||
*/
|
*/
|
||||||
const ir_function_signature *const callee = ir->get_callee();
|
const ir_function_signature *const callee = ir->callee;
|
||||||
assert(callee != NULL);
|
assert(callee != NULL);
|
||||||
const char *const name = callee->function_name();
|
const char *const name = callee->function_name();
|
||||||
|
|
||||||
@@ -79,7 +79,7 @@ public:
|
|||||||
find_matching_signature(name, &callee->parameters, &linked, 1,
|
find_matching_signature(name, &callee->parameters, &linked, 1,
|
||||||
ir->use_builtin);
|
ir->use_builtin);
|
||||||
if (sig != NULL) {
|
if (sig != NULL) {
|
||||||
ir->set_callee(sig);
|
ir->callee = sig;
|
||||||
return visit_continue;
|
return visit_continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -168,7 +168,7 @@ public:
|
|||||||
*/
|
*/
|
||||||
linked_sig->accept(this);
|
linked_sig->accept(this);
|
||||||
|
|
||||||
ir->set_callee(linked_sig);
|
ir->callee = linked_sig;
|
||||||
|
|
||||||
return visit_continue;
|
return visit_continue;
|
||||||
}
|
}
|
||||||
|
@@ -101,7 +101,7 @@ public:
|
|||||||
|
|
||||||
virtual ir_visitor_status visit_enter(ir_call *ir)
|
virtual ir_visitor_status visit_enter(ir_call *ir)
|
||||||
{
|
{
|
||||||
exec_list_iterator sig_iter = ir->get_callee()->parameters.iterator();
|
exec_list_iterator sig_iter = ir->callee->parameters.iterator();
|
||||||
foreach_iter(exec_list_iterator, iter, *ir) {
|
foreach_iter(exec_list_iterator, iter, *ir) {
|
||||||
ir_rvalue *param_rval = (ir_rvalue *)iter.get();
|
ir_rvalue *param_rval = (ir_rvalue *)iter.get();
|
||||||
ir_variable *sig_param = (ir_variable *)sig_iter.get();
|
ir_variable *sig_param = (ir_variable *)sig_iter.get();
|
||||||
|
@@ -276,7 +276,7 @@ lower_clip_distance_visitor::visit_leave(ir_call *ir)
|
|||||||
{
|
{
|
||||||
void *ctx = ralloc_parent(ir);
|
void *ctx = ralloc_parent(ir);
|
||||||
|
|
||||||
const exec_node *formal_param_node = ir->get_callee()->parameters.head;
|
const exec_node *formal_param_node = ir->callee->parameters.head;
|
||||||
const exec_node *actual_param_node = ir->actual_parameters.head;
|
const exec_node *actual_param_node = ir->actual_parameters.head;
|
||||||
while (!actual_param_node->is_tail_sentinel()) {
|
while (!actual_param_node->is_tail_sentinel()) {
|
||||||
ir_variable *formal_param = (ir_variable *) formal_param_node;
|
ir_variable *formal_param = (ir_variable *) formal_param_node;
|
||||||
|
@@ -118,7 +118,7 @@ ir_visitor_status
|
|||||||
ir_constant_folding_visitor::visit_enter(ir_call *ir)
|
ir_constant_folding_visitor::visit_enter(ir_call *ir)
|
||||||
{
|
{
|
||||||
/* Attempt to constant fold parameters */
|
/* Attempt to constant fold parameters */
|
||||||
exec_list_iterator sig_iter = ir->get_callee()->parameters.iterator();
|
exec_list_iterator sig_iter = ir->callee->parameters.iterator();
|
||||||
foreach_iter(exec_list_iterator, iter, *ir) {
|
foreach_iter(exec_list_iterator, iter, *ir) {
|
||||||
ir_rvalue *param_rval = (ir_rvalue *)iter.get();
|
ir_rvalue *param_rval = (ir_rvalue *)iter.get();
|
||||||
ir_variable *sig_param = (ir_variable *)sig_iter.get();
|
ir_variable *sig_param = (ir_variable *)sig_iter.get();
|
||||||
|
@@ -259,7 +259,7 @@ ir_visitor_status
|
|||||||
ir_constant_propagation_visitor::visit_enter(ir_call *ir)
|
ir_constant_propagation_visitor::visit_enter(ir_call *ir)
|
||||||
{
|
{
|
||||||
/* Do constant propagation on call parameters, but skip any out params */
|
/* Do constant propagation on call parameters, but skip any out params */
|
||||||
exec_list_iterator sig_param_iter = ir->get_callee()->parameters.iterator();
|
exec_list_iterator sig_param_iter = ir->callee->parameters.iterator();
|
||||||
foreach_iter(exec_list_iterator, iter, ir->actual_parameters) {
|
foreach_iter(exec_list_iterator, iter, ir->actual_parameters) {
|
||||||
ir_variable *sig_param = (ir_variable *)sig_param_iter.get();
|
ir_variable *sig_param = (ir_variable *)sig_param_iter.get();
|
||||||
ir_rvalue *param = (ir_rvalue *)iter.get();
|
ir_rvalue *param = (ir_rvalue *)iter.get();
|
||||||
|
@@ -128,7 +128,7 @@ ir_visitor_status
|
|||||||
ir_constant_variable_visitor::visit_enter(ir_call *ir)
|
ir_constant_variable_visitor::visit_enter(ir_call *ir)
|
||||||
{
|
{
|
||||||
/* Mark any out parameters as assigned to */
|
/* Mark any out parameters as assigned to */
|
||||||
exec_list_iterator sig_iter = ir->get_callee()->parameters.iterator();
|
exec_list_iterator sig_iter = ir->callee->parameters.iterator();
|
||||||
foreach_iter(exec_list_iterator, iter, *ir) {
|
foreach_iter(exec_list_iterator, iter, *ir) {
|
||||||
ir_rvalue *param_rval = (ir_rvalue *)iter.get();
|
ir_rvalue *param_rval = (ir_rvalue *)iter.get();
|
||||||
ir_variable *param = (ir_variable *)sig_iter.get();
|
ir_variable *param = (ir_variable *)sig_iter.get();
|
||||||
|
@@ -181,7 +181,7 @@ ir_visitor_status
|
|||||||
ir_copy_propagation_visitor::visit_enter(ir_call *ir)
|
ir_copy_propagation_visitor::visit_enter(ir_call *ir)
|
||||||
{
|
{
|
||||||
/* Do copy propagation on call parameters, but skip any out params */
|
/* Do copy propagation on call parameters, but skip any out params */
|
||||||
exec_list_iterator sig_param_iter = ir->get_callee()->parameters.iterator();
|
exec_list_iterator sig_param_iter = ir->callee->parameters.iterator();
|
||||||
foreach_iter(exec_list_iterator, iter, ir->actual_parameters) {
|
foreach_iter(exec_list_iterator, iter, ir->actual_parameters) {
|
||||||
ir_variable *sig_param = (ir_variable *)sig_param_iter.get();
|
ir_variable *sig_param = (ir_variable *)sig_param_iter.get();
|
||||||
ir_instruction *ir = (ir_instruction *)iter.get();
|
ir_instruction *ir = (ir_instruction *)iter.get();
|
||||||
|
@@ -288,7 +288,7 @@ ir_visitor_status
|
|||||||
ir_copy_propagation_elements_visitor::visit_enter(ir_call *ir)
|
ir_copy_propagation_elements_visitor::visit_enter(ir_call *ir)
|
||||||
{
|
{
|
||||||
/* Do copy propagation on call parameters, but skip any out params */
|
/* Do copy propagation on call parameters, but skip any out params */
|
||||||
exec_list_iterator sig_param_iter = ir->get_callee()->parameters.iterator();
|
exec_list_iterator sig_param_iter = ir->callee->parameters.iterator();
|
||||||
foreach_iter(exec_list_iterator, iter, ir->actual_parameters) {
|
foreach_iter(exec_list_iterator, iter, ir->actual_parameters) {
|
||||||
ir_variable *sig_param = (ir_variable *)sig_param_iter.get();
|
ir_variable *sig_param = (ir_variable *)sig_param_iter.get();
|
||||||
ir_instruction *ir = (ir_instruction *)iter.get();
|
ir_instruction *ir = (ir_instruction *)iter.get();
|
||||||
|
@@ -103,7 +103,7 @@ ir_dead_functions_visitor::visit_enter(ir_function_signature *ir)
|
|||||||
ir_visitor_status
|
ir_visitor_status
|
||||||
ir_dead_functions_visitor::visit_enter(ir_call *ir)
|
ir_dead_functions_visitor::visit_enter(ir_call *ir)
|
||||||
{
|
{
|
||||||
signature_entry *entry = this->get_signature_entry(ir->get_callee());
|
signature_entry *entry = this->get_signature_entry(ir->callee);
|
||||||
|
|
||||||
entry->used = true;
|
entry->used = true;
|
||||||
|
|
||||||
|
@@ -202,7 +202,7 @@ ir_tree_grafting_visitor::visit_enter(ir_function_signature *ir)
|
|||||||
ir_visitor_status
|
ir_visitor_status
|
||||||
ir_tree_grafting_visitor::visit_enter(ir_call *ir)
|
ir_tree_grafting_visitor::visit_enter(ir_call *ir)
|
||||||
{
|
{
|
||||||
exec_list_iterator sig_iter = ir->get_callee()->parameters.iterator();
|
exec_list_iterator sig_iter = ir->callee->parameters.iterator();
|
||||||
/* Reminder: iterating ir_call iterates its parameters. */
|
/* Reminder: iterating ir_call iterates its parameters. */
|
||||||
foreach_iter(exec_list_iterator, iter, *ir) {
|
foreach_iter(exec_list_iterator, iter, *ir) {
|
||||||
ir_variable *sig_param = (ir_variable *)sig_iter.get();
|
ir_variable *sig_param = (ir_variable *)sig_iter.get();
|
||||||
|
@@ -2002,7 +2002,7 @@ void
|
|||||||
ir_to_mesa_visitor::visit(ir_call *ir)
|
ir_to_mesa_visitor::visit(ir_call *ir)
|
||||||
{
|
{
|
||||||
ir_to_mesa_instruction *call_inst;
|
ir_to_mesa_instruction *call_inst;
|
||||||
ir_function_signature *sig = ir->get_callee();
|
ir_function_signature *sig = ir->callee;
|
||||||
function_entry *entry = get_function_signature(sig);
|
function_entry *entry = get_function_signature(sig);
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
@@ -2439,7 +2439,7 @@ void
|
|||||||
glsl_to_tgsi_visitor::visit(ir_call *ir)
|
glsl_to_tgsi_visitor::visit(ir_call *ir)
|
||||||
{
|
{
|
||||||
glsl_to_tgsi_instruction *call_inst;
|
glsl_to_tgsi_instruction *call_inst;
|
||||||
ir_function_signature *sig = ir->get_callee();
|
ir_function_signature *sig = ir->callee;
|
||||||
function_entry *entry = get_function_signature(sig);
|
function_entry *entry = get_function_signature(sig);
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user