[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