[cfe-commits] r38990 - in /cfe/cfe/trunk: NOTES.txt README.txt
sabre at cs.uiuc.edu
sabre at cs.uiuc.edu
Wed Jul 11 09:26:34 PDT 2007
Author: sabre
Date: Wed Jul 11 11:26:34 2007
New Revision: 38990
URL: http://llvm.org/viewvc/llvm-project?rev=38990&view=rev
Log:
add notes
Modified:
cfe/cfe/trunk/NOTES.txt
cfe/cfe/trunk/README.txt
Modified: cfe/cfe/trunk/NOTES.txt
URL: http://llvm.org/viewvc/llvm-project/cfe/cfe/trunk/NOTES.txt?rev=38990&r1=38989&r2=38990&view=diff
==============================================================================
--- cfe/cfe/trunk/NOTES.txt (original)
+++ cfe/cfe/trunk/NOTES.txt Wed Jul 11 11:26:34 2007
@@ -73,7 +73,9 @@
When compiling for powerpc, the #define is skipped, so it doesn't know that bar
uses a #define that is set on some other target. In practice, limited cases
could be handled by scanning the skipped region of a #if, but the fully general
-case cannot be implemented efficiently. In particular, code like this (from
+case cannot be implemented efficiently. In this case, for example, the #define
+in the protected region could be turned into either a #define_target or
+#define_other_target as appropriate. The harder case is code like this (from
OSByteOrder.h):
#if (defined(__ppc__) || defined(__ppc64__))
@@ -84,9 +86,9 @@
#include <libkern/machine/OSByteOrder.h>
#endif
-... should be fixed by having an initial #ifdef __llvm__ that defines its
-contents in terms of the llvm bswap intrinsics. Other things should be handled
-on a case-by-case basis.
+The realistic way to fix this is by having an initial #ifdef __llvm__ that
+defines its contents in terms of the llvm bswap intrinsics. Other things should
+be handled on a case-by-case basis.
We probably have to do something smarter like this in the future. The C++ header
@@ -129,6 +131,8 @@
An ideal way to solve this issue is to mark __DARWIN_LDBL_COMPAT /
__DARWIN_LDBL_COMPAT2 / __DARWIN_LONG_DOUBLE_IS_DOUBLE as being non-portable
-because they depend on non-portable macros.
+because they depend on non-portable macros. In practice though, this may end
+up being a serious problem: every use of printf will mark the translation unit
+non-portable if targetting ppc32 and something else.
//===---------------------------------------------------------------------===//
Modified: cfe/cfe/trunk/README.txt
URL: http://llvm.org/viewvc/llvm-project/cfe/cfe/trunk/README.txt?rev=38990&r1=38989&r2=38990&view=diff
==============================================================================
--- cfe/cfe/trunk/README.txt (original)
+++ cfe/cfe/trunk/README.txt Wed Jul 11 11:26:34 2007
@@ -147,6 +147,8 @@
* #assert/#unassert
* #line / #file directives
* MSExtension: "L#param" stringizes to a wide string literal.
+ * Consider merging the parser's expression parser into the preprocessor to
+ eliminate duplicate code.
Traditional Preprocessor:
* All.
@@ -166,6 +168,9 @@
AST Builder:
* Implement more nodes as actions are available.
* Types.
+ * Allow the AST Builder to be subclassed. This will allow clients to extend it
+ and create their own specialized nodes for specific scenarios. Maybe the
+ "full loc info" use case is just one extension.
Fast #Import:
* All.
More information about the cfe-commits
mailing list