Module: Mesa Branch: master Commit: 4f3826117957b5ac1554b833af33d342360f655a URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=4f3826117957b5ac1554b833af33d342360f655a
Author: Marek Olšák <mar...@gmail.com> Date: Tue Mar 8 06:37:50 2011 +0100 r300/compiler: improve the detection of constants for constant folding Now the expression V==0 generates one instruction instead of two. --- .../drivers/dri/r300/compiler/radeon_optimize.c | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-) diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_optimize.c b/src/mesa/drivers/dri/r300/compiler/radeon_optimize.c index 5caff91..3915cb4 100644 --- a/src/mesa/drivers/dri/r300/compiler/radeon_optimize.c +++ b/src/mesa/drivers/dri/r300/compiler/radeon_optimize.c @@ -312,6 +312,13 @@ static void constant_folding(struct radeon_compiler * c, struct rc_instruction * struct rc_src_register newsrc; int have_real_reference; + if (inst->U.I.SrcReg[src].Swizzle == RC_SWIZZLE_1111 || + inst->U.I.SrcReg[src].Swizzle == RC_SWIZZLE_0000 || + inst->U.I.SrcReg[src].Swizzle == RC_SWIZZLE_HHHH) { + inst->U.I.SrcReg[src].File = RC_FILE_NONE; + continue; + } + if (inst->U.I.SrcReg[src].File != RC_FILE_CONSTANT || inst->U.I.SrcReg[src].RelAddr || inst->U.I.SrcReg[src].Index >= c->Program.Constants.Count) _______________________________________________ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit