diff options
author | Dan Gohman <gohman@apple.com> | 2009-02-10 17:26:53 +0000 |
---|---|---|
committer | Dan Gohman <gohman@apple.com> | 2009-02-10 17:26:53 +0000 |
commit | cfbcd591d206dce34b8f1a8384e100f984747cad (patch) | |
tree | f616af76dadf3938b5a229d478407e40c2daa573 /docs/FAQ.html | |
parent | 35b5107951582f58bf9d6f786fdddbf7811420fd (diff) |
Answer a common FAQ:
"Can I compile C or C++ code to platform-independent LLVM bitcode?"
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64222 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs/FAQ.html')
-rw-r--r-- | docs/FAQ.html | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/docs/FAQ.html b/docs/FAQ.html index ad08f10cfa..d94c368d0c 100644 --- a/docs/FAQ.html +++ b/docs/FAQ.html @@ -87,6 +87,8 @@ <li><a href="#translatecxx">Can I use LLVM to convert C++ code to C code?</a></li> + <li><a href="#platformindependent">Can I compile C or C++ code to platform-independent LLVM bitcode?</a></li> + </ol> </li> @@ -629,6 +631,31 @@ with standard C++ libraries.</p> </div> +<div class="question"> +<p> +<a name="platformindependent">Can I compile C or C++ code to platform-independent LLVM bitcode?</a> +</p> +</div> + +<div class="answer"> + +<p>No. C and C++ are inherently platform-dependent languages. The most +obvious example of this is the preprocessor. A very common way that C code +is made portable is by using the preprocessor to include platform-specific +code. In practice, information about other platforms is lost after +preprocessing, so the result is inherently dependent on the platform that +the preprocessing was targetting.</p> + +<p>Another example is <tt>sizeof</tt>. It's common for <tt>sizeof(long)</tt> +to vary between platforms. In most C front-ends, <tt>sizeof</tt> is expanded +to a constant immediately, thus hardwaring a platform-specific detail.</p> + +<p>Also, since many platforms define their ABIs in terms of C, and since +LLVM is lower-level than C, front-ends currently must emit platform-specific +IR in order to have the result conform to the platform ABI.</p> + +</div> + <!-- *********************************************************************** --> <div class="doc_section"> <a name="cfe_code">Questions about code generated by the GCC front-end</a> |