Timur Tabi wrote: > I have this code: > > #define spin_event_timeout(condition, timeout, delay, rc) \ > { \ > unsigned long __loops = tb_ticks_per_usec * timeout; \ > unsigned long __start = get_tbl(); \ > while (!(rc = (condition)) && (tb_ticks_since(__start) <= __loops)) \ > if (delay) \ > udelay(delay); \ > else \ > cpu_relax(); \ > } > > assuming that the 'delay' parameter is a constant, will gcc > optimize-out the "if (delay)" when this macro is compiled? Yes, because one of the arms of the conditional is trivially dead. Andrew.