Reviewers: Kasper Lund, bak, Message: I am up for debate on this. UNIMPLEMENTED and FATAL aren't used that much, so I'm fine leaving them as is.
UNREACHABLE on the other hand is inlined in a bunch of code. I get 15% on a benchmark I was testing, but I thinks that more of a weird P4 issue than anything. Maybe we should change UNREACHABLE in release, and leave the others? It will be interesting to see some benchmarks with this... Description: In release, disable UNREACHABLE and make UNIMPLEMENTED and FATAL simpler, removing the file name and line numbers, so we carry around less data and can share more code. Please review this at http://codereview.chromium.org/4008 Affected files: M src/checks.h Index: src/checks.h diff --git a/src/checks.h b/src/checks.h index 3908ab4c3ed69c622510e93f9c8f8c4c42aab24a..020f1294ea711e92cd4e3b86717971343bacfbbd 100644 --- a/src/checks.h +++ b/src/checks.h @@ -37,14 +37,20 @@ void API_Fatal(const char* location, const char* format, ...); // The FATAL, UNREACHABLE and UNIMPLEMENTED macros are useful during // development, but they should not be relied on in the final product. +#ifdef DEBUG #define FATAL(msg) \ V8_Fatal(__FILE__, __LINE__, "%s", (msg)) - +#define UNIMPLEMENTED() \ + V8_Fatal(__FILE__, __LINE__, "unimplemented code") #define UNREACHABLE() \ V8_Fatal(__FILE__, __LINE__, "unreachable code") - +#else +#define FATAL(msg) \ + V8_Fatal("", 0, "%s", (msg)) #define UNIMPLEMENTED() \ - V8_Fatal(__FILE__, __LINE__, "unimplemented code") + V8_Fatal("", 0, "unimplemented code") +#define UNREACHABLE() ((void) 0) +#endif // Used by the CHECK macro -- should not be called directly. --~--~---------~--~----~------------~-------~--~----~ v8-dev mailing list v8-dev@googlegroups.com http://groups.google.com/group/v8-dev -~----------~----~----~----~------~----~------~--~---