Subject: Code generation [was: suggestion: slight optimization for UT_String]
From: Mike Nordell (email@example.com)
Date: Mon Mar 19 2001 - 13:00:40 CST
Randy Kramer wrote:
> firstname.lastname@example.org wrote:
> > Can we have a sort of middle point here?
> > x = x * y should be replaced by x *= y
> (A newbie C/C++ question:)
> Just out of curiosity, is that just a "cosmetic" change, or does that
> actually change the machine code emitted by the compiler?
Both. It does affect semantics of the expression. For the expression
x = x * y
the non-optimizing compiler generates something like
tmp = x.operator*(y);
x = tmp;
x *= y
For POD (Plain Old Data) types any reasonable optimizer generates the same
code, but for an unoptimized build or when using non-trivial objects it can
make quite a difference.
This archive was generated by hypermail 2b25 : Mon Mar 19 2001 - 12:58:29 CST