[Cbe-oss-dev] [RFC, Patch 1/1] OProfile for Cell: Initial profiling support -- new patch

Heikki Orsila shd at zakalwe.fi
Fri Nov 17 01:02:31 EST 2006


On Wed, Nov 15, 2006 at 12:51:08PM -0600, Maynard Johnson wrote:
> +/* This function is called once for all cpus combined */
> +static void
> +cell_reg_setup(struct op_counter_config *ctr,
> +	       struct op_system_config *sys, int num_ctrs)
> +{
> [SNIP]
> +	for (i = 0; i < num_ctrs; ++i) {
> +
> +		if ((ctr[i].event >= 2100) && (ctr[i].event <= 2111))
> +			pmc_cntrl[1][i].evnts = ctr[i].event + 19;
> +		else if (ctr[i].event == 2203)
> +			pmc_cntrl[1][i].evnts = ctr[i].event;
> +		else if ((ctr[i].event >= 2200) && (ctr[i].event <= 2215))
> +			pmc_cntrl[1][i].evnts = ctr[i].event + 16;
> +		else
> +			pmc_cntrl[1][i].evnts = ctr[i].event;
> +

I think the previous code would be more readable with a switch() 
statement. 

	switch (ctr[i].event) {
	case 2100 ... 2111:
		pmc_cntrl[1][i] = ctr[i].event + 19;
		break;
	case 2200 ... 2202:
	case 2204 ... 2215:
		pmc_cntrl[1][i] = ctr[i].event + 16;
		break;
	default:
		pmc_cntrl[1][i] = ctr[i].event;
	}

 - Heikki



More information about the cbe-oss-dev mailing list