glsl: Delete LRP_TO_ARITH lowering pass flag.
Tt's kind of a trap---calling do_common_optimization() after lower_instructions() may cause opt_algebraic() to reintroduce ir_triop_lrp expressions that were lowered, effectively defeating the point. Because of this, nobody uses it. v2: Delete more code (caught by Ian Romanick). Cc: "10.1" <mesa-stable@lists.freedesktop.org> Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Matt Turner <mattst88@gmail.com> Acked-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
@@ -36,9 +36,8 @@
|
|||||||
#define LOG_TO_LOG2 0x10
|
#define LOG_TO_LOG2 0x10
|
||||||
#define MOD_TO_FRACT 0x20
|
#define MOD_TO_FRACT 0x20
|
||||||
#define INT_DIV_TO_MUL_RCP 0x40
|
#define INT_DIV_TO_MUL_RCP 0x40
|
||||||
#define LRP_TO_ARITH 0x80
|
#define BITFIELD_INSERT_TO_BFM_BFI 0x80
|
||||||
#define BITFIELD_INSERT_TO_BFM_BFI 0x100
|
#define LDEXP_TO_ARITH 0x100
|
||||||
#define LDEXP_TO_ARITH 0x200
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \see class lower_packing_builtins_visitor
|
* \see class lower_packing_builtins_visitor
|
||||||
|
@@ -38,7 +38,6 @@
|
|||||||
* - LOG_TO_LOG2
|
* - LOG_TO_LOG2
|
||||||
* - MOD_TO_FRACT
|
* - MOD_TO_FRACT
|
||||||
* - LDEXP_TO_ARITH
|
* - LDEXP_TO_ARITH
|
||||||
* - LRP_TO_ARITH
|
|
||||||
* - BITFIELD_INSERT_TO_BFM_BFI
|
* - BITFIELD_INSERT_TO_BFM_BFI
|
||||||
*
|
*
|
||||||
* SUB_TO_ADD_NEG:
|
* SUB_TO_ADD_NEG:
|
||||||
@@ -87,10 +86,6 @@
|
|||||||
* -------------
|
* -------------
|
||||||
* Converts ir_binop_ldexp to arithmetic and bit operations.
|
* Converts ir_binop_ldexp to arithmetic and bit operations.
|
||||||
*
|
*
|
||||||
* LRP_TO_ARITH:
|
|
||||||
* -------------
|
|
||||||
* Converts ir_triop_lrp to (op0 * (1.0f - op2)) + (op1 * op2).
|
|
||||||
*
|
|
||||||
* BITFIELD_INSERT_TO_BFM_BFI:
|
* BITFIELD_INSERT_TO_BFM_BFI:
|
||||||
* ---------------------------
|
* ---------------------------
|
||||||
* Breaks ir_quadop_bitfield_insert into ir_binop_bfm (bitfield mask) and
|
* Breaks ir_quadop_bitfield_insert into ir_binop_bfm (bitfield mask) and
|
||||||
@@ -130,7 +125,6 @@ private:
|
|||||||
void exp_to_exp2(ir_expression *);
|
void exp_to_exp2(ir_expression *);
|
||||||
void pow_to_exp2(ir_expression *);
|
void pow_to_exp2(ir_expression *);
|
||||||
void log_to_log2(ir_expression *);
|
void log_to_log2(ir_expression *);
|
||||||
void lrp_to_arith(ir_expression *);
|
|
||||||
void bitfield_insert_to_bfm_bfi(ir_expression *);
|
void bitfield_insert_to_bfm_bfi(ir_expression *);
|
||||||
void ldexp_to_arith(ir_expression *);
|
void ldexp_to_arith(ir_expression *);
|
||||||
};
|
};
|
||||||
@@ -298,27 +292,6 @@ lower_instructions_visitor::mod_to_fract(ir_expression *ir)
|
|||||||
this->progress = true;
|
this->progress = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
lower_instructions_visitor::lrp_to_arith(ir_expression *ir)
|
|
||||||
{
|
|
||||||
/* (lrp x y a) -> x*(1-a) + y*a */
|
|
||||||
|
|
||||||
/* Save op2 */
|
|
||||||
ir_variable *temp = new(ir) ir_variable(ir->operands[2]->type, "lrp_factor",
|
|
||||||
ir_var_temporary);
|
|
||||||
this->base_ir->insert_before(temp);
|
|
||||||
this->base_ir->insert_before(assign(temp, ir->operands[2]));
|
|
||||||
|
|
||||||
ir_constant *one = new(ir) ir_constant(1.0f);
|
|
||||||
|
|
||||||
ir->operation = ir_binop_add;
|
|
||||||
ir->operands[0] = mul(ir->operands[0], sub(one, temp));
|
|
||||||
ir->operands[1] = mul(ir->operands[1], temp);
|
|
||||||
ir->operands[2] = NULL;
|
|
||||||
|
|
||||||
this->progress = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
lower_instructions_visitor::bitfield_insert_to_bfm_bfi(ir_expression *ir)
|
lower_instructions_visitor::bitfield_insert_to_bfm_bfi(ir_expression *ir)
|
||||||
{
|
{
|
||||||
@@ -499,11 +472,6 @@ lower_instructions_visitor::visit_leave(ir_expression *ir)
|
|||||||
pow_to_exp2(ir);
|
pow_to_exp2(ir);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ir_triop_lrp:
|
|
||||||
if (lowering(LRP_TO_ARITH))
|
|
||||||
lrp_to_arith(ir);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case ir_quadop_bitfield_insert:
|
case ir_quadop_bitfield_insert:
|
||||||
if (lowering(BITFIELD_INSERT_TO_BFM_BFI))
|
if (lowering(BITFIELD_INSERT_TO_BFM_BFI))
|
||||||
bitfield_insert_to_bfm_bfi(ir);
|
bitfield_insert_to_bfm_bfi(ir);
|
||||||
|
Reference in New Issue
Block a user