diff options
author | Andrew Cagney <cagney@redhat.com> | 2000-03-14 02:37:25 +0000 |
---|---|---|
committer | Andrew Cagney <cagney@redhat.com> | 2000-03-14 02:37:25 +0000 |
commit | 1a0559af2c9f7ca587a7d54ebb5cc9636e2246a9 (patch) | |
tree | 3d43e976b505432cd3613a19eed384dd7d3c720b | |
parent | e40eb3e94d953fff983c8ddf6d6a1713ecf4ebc7 (diff) | |
download | gdb-1a0559af2c9f7ca587a7d54ebb5cc9636e2246a9.zip gdb-1a0559af2c9f7ca587a7d54ebb5cc9636e2246a9.tar.gz gdb-1a0559af2c9f7ca587a7d54ebb5cc9636e2246a9.tar.bz2 |
Almost, but not quite, deprecate STREQ, STREQN, STRCMP and QUIT.
-rw-r--r-- | gdb/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/defs.h | 26 |
2 files changed, 30 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 7097e66..3580442 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +Mon Mar 13 21:21:41 2000 Andrew Cagney <cagney@b1.cygnus.com> + + * defs.h (STREQ, STRCMP, STREQN): Document that these macros are + somewhat redundant. + (QUIT): Note that this can probably be replaced by a function. + 2000-03-13 James Ingham <jingham@leda.cygnus.com> Add support for a variable object that tries to evaluate itself in @@ -21,7 +27,6 @@ variable is one of these "current frame" variables. Also protect call to parse_exp_1 from long jumping. - 2000-03-13 Eli Zaretskii <eliz@is.elta.co.il> * go32-nat.c (struct env387): Remove declaration. @@ -117,8 +117,23 @@ extern int core_addr_greaterthan (CORE_ADDR lhs, CORE_ADDR rhs); #define max(a, b) ((a) > (b) ? (a) : (b)) #endif -/* Gdb does *lots* of string compares. Use macros to speed them up by - avoiding function calls if the first characters are not the same. */ +/* Macros to do string compares. + + NOTE: cagney/2000-03-14: + + While old code can continue to refer to these macros, new code is + probably better off using strcmp() directly vis: ``strcmp() == 0'' + and ``strcmp() != 0''. + + This is because modern compilers can directly inline strcmp() + making the original justification for these macros - avoid function + call overhead by pre-testing the first characters + (``*X==*Y?...:0'') - redundant. + + ``Even if [...] testing the first character does have a modest + performance improvement, I'd rather that whenever a performance + issue is found that we spend the effort on algorithmic + optimizations than micro-optimizing.'' J.T. */ #define STRCMP(a,b) (*(a) == *(b) ? strcmp ((a), (b)) : (int)*(a) - (int)*(b)) #define STREQ(a,b) (*(a) == *(b) ? !strcmp ((a), (b)) : 0) @@ -153,6 +168,13 @@ extern int sevenbit_strings; extern void quit (void); +/* FIXME: cagney/2000-03-13: It has been suggested that the peformance + benefits of having a ``QUIT'' macro rather than a function are + marginal. If the overhead of a QUIT function call is proving + significant then its calling frequency should probably be reduced + [kingdon]. A profile analyzing the current situtation is + needed. */ + #ifdef QUIT /* do twice to force compiler warning */ #define QUIT_FIXME "FIXME" |