aboutsummaryrefslogtreecommitdiff
path: root/docs/FAQ.html
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2009-02-10 17:26:53 +0000
committerDan Gohman <gohman@apple.com>2009-02-10 17:26:53 +0000
commitcfbcd591d206dce34b8f1a8384e100f984747cad (patch)
treef616af76dadf3938b5a229d478407e40c2daa573 /docs/FAQ.html
parent35b5107951582f58bf9d6f786fdddbf7811420fd (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.html27
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>