forked from OSchip/llvm-project
Headers are basically done, debug info is just about done (and
will improve a lot this week hopefully), and a libgcc replacement is ready once I wrangle lawyers. llvm-svn: 65432
This commit is contained in:
parent
a004a1846b
commit
014d2ad55f
|
|
@ -77,11 +77,6 @@ compile it. If not, please let us know. Again,
|
||||||
<a href="get_started.html#ccc"><code>ccc</code></a> might help you. Once it
|
<a href="get_started.html#ccc"><code>ccc</code></a> might help you. Once it
|
||||||
compiles it should run. If not, that's a bug :)</li>
|
compiles it should run. If not, that's a bug :)</li>
|
||||||
|
|
||||||
<li><b>Debug Info Generation</b>: -emit-llvm doesn't fully support emission
|
|
||||||
of <a href="http://llvm.org/docs/SourceLevelDebugging.html">LLVM debug info</a>
|
|
||||||
(which the code generator turns into DWARF). The missing pieces are pretty
|
|
||||||
minor at this point.</li>
|
|
||||||
|
|
||||||
<li><b>Overflow detection</b>: an interesting project would be to add a -ftrapv
|
<li><b>Overflow detection</b>: an interesting project would be to add a -ftrapv
|
||||||
compilation mode that causes -emit-llvm to generate overflow tests for all
|
compilation mode that causes -emit-llvm to generate overflow tests for all
|
||||||
signed integer arithmetic operators, and call abort if they overflow. Overflow
|
signed integer arithmetic operators, and call abort if they overflow. Overflow
|
||||||
|
|
@ -104,25 +99,7 @@ missing and what is already at least partially supported.</li>
|
||||||
<li><b>Improve target support</b>: The current target interfaces are heavily
|
<li><b>Improve target support</b>: The current target interfaces are heavily
|
||||||
stubbed out and need to be implemented fully. See the FIXME's in TargetInfo.
|
stubbed out and need to be implemented fully. See the FIXME's in TargetInfo.
|
||||||
Additionally, the actual target implementations (instances of TargetInfoImpl)
|
Additionally, the actual target implementations (instances of TargetInfoImpl)
|
||||||
also need to be completed. This includes defining builtin macros for linux
|
also need to be completed.</li>
|
||||||
targets and other stuff like that.</li>
|
|
||||||
|
|
||||||
<li><b>Implement 'builtin' headers</b>: GCC provides a bunch of builtin headers,
|
|
||||||
such as stdbool.h, iso646.h, float.h, limits.h, etc. It also provides a bunch
|
|
||||||
of target-specific headers like altivec.h and xmmintrin.h. clang will
|
|
||||||
eventually need to provide its own copies of these (and there is a <a href=
|
|
||||||
"http://lists.cs.uiuc.edu/pipermail/cfe-dev/2007-December/000560.html">lot of
|
|
||||||
improvement</a> that can be made to the GCC ones!) that are clean-room
|
|
||||||
implemented to avoid GPL taint.</li>
|
|
||||||
|
|
||||||
<li><b>Implement a clang 'libgcc'</b>: As with the headers, clang (or a another
|
|
||||||
related subproject of llvm) will need to implement the features that libgcc
|
|
||||||
provides. libgcc provides a bunch of routines the code generator uses for
|
|
||||||
"fallback" when the chip doesn't support some operation (e.g. 64-bit divide on
|
|
||||||
a 32-bit chip). It also provides software floating point support and many other
|
|
||||||
things. I don't think that there is a specific licensing reason to reimplement
|
|
||||||
libgcc, but there is a lot of room for improvement in it in many
|
|
||||||
dimensions.</li>
|
|
||||||
|
|
||||||
<li><b>Implement an tool to generate code documentation</b>: Clang's
|
<li><b>Implement an tool to generate code documentation</b>: Clang's
|
||||||
library-based design allows it to be used by a variety of tools that reason
|
library-based design allows it to be used by a variety of tools that reason
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue