|
625 | 625 | <li>The C++ front-end inherits all problems afflicting the <a href="#c-fe">C
|
626 | 626 | front-end</a>.</li>
|
627 | 627 |
|
628 |
| -<li><b>IA-64 specific</b>: The C++ front-end does not use <a |
629 |
| -href="http://llvm.cs.uiuc.edu/PR406">IA64 ABI compliant layout of v-tables</a>. |
630 |
| -In particular, it just stores function pointers instead of function |
631 |
| -descriptors in the vtable. This bug prevents mixing C++ code compiled with |
632 |
| -LLVM with C++ objects compiled by other C++ compilers.</li> |
633 |
| - |
634 | 628 | </ul>
|
635 | 629 |
|
636 | 630 | </div>
|
|
672 | 666 |
|
673 | 667 | <!-- ======================================================================= -->
|
674 | 668 | <div class="doc_subsection">
|
675 |
| - <a name="x86-be">Known problems with the X86 back-end</a> |
| 669 | + <a name="c-be">Known problems with the C back-end</a> |
676 | 670 | </div>
|
677 | 671 |
|
678 | 672 | <div class="doc_text">
|
679 | 673 |
|
680 | 674 | <ul>
|
681 |
| - <li>None yet</li> |
| 675 | + |
| 676 | +<li>The C back-end produces code that violates the ANSI C Type-Based Alias |
| 677 | +Analysis rules. As such, special options may be necessary to compile the code |
| 678 | +(for example, GCC requires the <tt>-fno-strict-aliasing</tt> option). This |
| 679 | +problem probably cannot be fixed.</li> |
| 680 | + |
| 681 | +<li><a href="http://llvm.cs.uiuc.edu/PR56">Zero arg vararg functions are not |
| 682 | +supported</a>. This should not affect LLVM produced by the C or C++ |
| 683 | +frontends.</li> |
| 684 | + |
682 | 685 | </ul>
|
683 | 686 |
|
684 | 687 | </div>
|
685 | 688 |
|
686 | 689 | <!-- ======================================================================= -->
|
687 | 690 | <div class="doc_subsection">
|
688 |
| - <a name="sparcv9-be">Known problems with the SparcV9 back-end</a> |
| 691 | + <a name="x86-be">Known problems with the X86 back-end</a> |
689 | 692 | </div>
|
690 | 693 |
|
691 | 694 | <div class="doc_text">
|
692 | 695 |
|
693 | 696 | <ul>
|
694 |
| -<li><a href="http://llvm.cs.uiuc.edu/PR60">[sparcv9] SparcV9 backend miscompiles |
695 |
| -several programs in the LLVM test suite</a></li> |
| 697 | + <li>None yet</li> |
696 | 698 | </ul>
|
697 | 699 |
|
698 | 700 | </div>
|
|
712 | 714 |
|
713 | 715 | <!-- ======================================================================= -->
|
714 | 716 | <div class="doc_subsection">
|
715 |
| - <a name="c-be">Known problems with the C back-end</a> |
| 717 | + <a name="sparcv9-be">Known problems with the SparcV9 back-end</a> |
716 | 718 | </div>
|
717 | 719 |
|
718 | 720 | <div class="doc_text">
|
719 | 721 |
|
720 | 722 | <ul>
|
721 |
| - |
722 |
| -<li>The C back-end produces code that violates the ANSI C Type-Based Alias |
723 |
| -Analysis rules. As such, special options may be necessary to compile the code |
724 |
| -(for example, GCC requires the <tt>-fno-strict-aliasing</tt> option). This |
725 |
| -problem probably cannot be fixed.</li> |
726 |
| - |
727 |
| -<li><a href="http://llvm.cs.uiuc.edu/PR56">Zero arg vararg functions are not |
728 |
| -supported</a>. This should not affect LLVM produced by the C or C++ |
729 |
| -frontends.</li> |
730 |
| - |
| 723 | +<li><a href="http://llvm.cs.uiuc.edu/PR60">[sparcv9] SparcV9 backend miscompiles |
| 724 | +several programs in the LLVM test suite</a></li> |
731 | 725 | </ul>
|
732 | 726 |
|
733 | 727 | </div>
|
|
741 | 735 |
|
742 | 736 | <ul>
|
743 | 737 |
|
744 |
| -<li>On 21164s, some rare FP arithmatic sequences which may trap do not have the appropriate nops inserted to ensure restartability.</li> |
| 738 | +<li>On 21164s, some rare FP arithmetic sequences which may trap do not have the |
| 739 | +appropriate nops inserted to ensure restartability.</li> |
745 | 740 |
|
746 |
| -<li>Vararg functions are not supported.</li> |
| 741 | +<li>Defining vararg functions is not supported (but calling them is ok).</li> |
747 | 742 |
|
748 | 743 | <li>Due to the vararg problems, C++ exceptions do not work. Small changes are required to the CFE (which break correctness in the exception handler) to compile the exception handling library (and thus the C++ standard library).</li>
|
749 | 744 |
|
|
765 | 760 | speaking this is not a bug in the IA64 back-end; it will also be encountered
|
766 | 761 | when building C++ programs using the C back-end.)</li>
|
767 | 762 |
|
768 |
| -<li>There are a few ABI violations which will lead to problems |
769 |
| -when mixing LLVM output with code built with other compilers, |
770 |
| -particularly for C++ and floating-point programs.</li> |
| 763 | +<li>The C++ front-end does not use <a href="http://llvm.cs.uiuc.edu/PR406">IA64 |
| 764 | +ABI compliant layout of v-tables</a>. In particular, it just stores function |
| 765 | +pointers instead of function descriptors in the vtable. This bug prevents |
| 766 | +mixing C++ code compiled with LLVM with C++ objects compiled by other C++ |
| 767 | +compilers.</li> |
| 768 | + |
| 769 | +<li>There are a few ABI violations which will lead to problems when mixing LLVM |
| 770 | +output with code built with other compilers, particularly for floating-point |
| 771 | +programs.</li> |
771 | 772 |
|
772 |
| -<li>Vararg functions are not supported.</li> |
| 773 | +<li>Defining vararg functions is not supported (but calling them is ok).</li> |
773 | 774 |
|
774 | 775 | </ul>
|
775 | 776 |
|
|
0 commit comments