X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=docs%2FFAQ.html;h=d94c368d0c7b0f3532010f5a4680bb2e971dd504;hb=ca70533d3daeda66f6a0f19faf6691c20b34d086;hp=ea2f802d1dd17f2bac314d4fd1e7d588777196cd;hpb=a631a87ce1d390c87c542f8cf7d2c224b60221fb;p=oota-llvm.git diff --git a/docs/FAQ.html b/docs/FAQ.html index ea2f802d1dd..d94c368d0c7 100644 --- a/docs/FAQ.html +++ b/docs/FAQ.html @@ -59,6 +59,9 @@
Yes. The modified source distribution must retain the copyright notice and follow the three bulletted conditions listed in the LLVM license.
+href="http://llvm.org/svn/llvm-project/llvm/trunk/LICENSE.TXT">LLVM license.Run configure with an alternative PATH that is correct. In a Borne compatible shell, the syntax would be:
-+% PATH=[the path without the bad program] ./configure ...-
This is still somewhat inconvenient, but it allows configure to do its work without having to adjust your PATH @@ -275,9 +278,9 @@ old version. What do I do?
can just run the following command in the top level directory of your object tree: -% ./config.status <relative path to Makefile>-
+% ./config.status <relative path to Makefile> +
If the Makefile is new, you will have to modify the configure script to copy it over.
@@ -312,18 +315,16 @@ clean and then make in the directory that fails to build.For example, if you built LLVM with the command:
-% gmake ENABLE_PROFILING=1-
+% gmake ENABLE_PROFILING=1 +
...then you must run the tests with the following commands:
-+% cd llvm/test % gmake ENABLE_PROFILING=1-
If the error is of the form:
-+gmake[2]: *** No rule to make target `/path/to/somefile', needed by `/path/to/another/file.d'.-
Stop.
This may occur anytime files are moved within the Subversion repository or removed entirely. In this case, the best solution is to erase all .d files, which list dependencies for source files, and rebuild:
-+% cd $LLVM_OBJ_DIR % rm -f `find . -name \*\.d` % gmake-
In other cases, it may be necessary to run make clean before rebuilding.
@@ -408,11 +405,61 @@ using llvm-gcc instead.There is an incomplete version of a Java front end available in the java module. There is no documentation on this yet so you'll need to download the code, compile it, and try it.
-In the stacker module is a compiler and runtime - library for the Stacker language, a "toy" language loosely based on Forth.
The PyPy developers are working on integrating LLVM into the PyPy backend so that PyPy language can translate to LLVM.
Your compiler front-end will communicate with LLVM by creating a module in + the LLVM intermediate representation (IR) format. Assuming you want to + write your language's compiler in the language itself (rather than C++), + there are 3 major ways to tackle generating LLVM IR from a front-end:
+If you go with the first option, the C bindings in include/llvm-c should + help a lot, since most languages have strong support for interfacing with + C. The most common hurdle with calling C from managed code is interfacing + with the garbage collector. The C interface was designed to require very + little memory management, and so is straightforward in this regard.
+What support is there for a higher level source language constructs for building a compiler?
@@ -427,7 +474,7 @@ using llvm-gcc instead. of running optimizations, linking, and executable generation.+int X() { int i; return i; }-
Is compiled to "ret i32 undef" because "i" never has a value specified for it.
@@ -670,9 +740,9 @@ a value specified for it.