OLD | NEW |
1 //===- subzero/src/PNaClTranslator.cpp - ICE from bitcode -----------------===// | 1 //===- subzero/src/PNaClTranslator.cpp - ICE from bitcode -----------------===// |
2 // | 2 // |
3 // The Subzero Code Generator | 3 // The Subzero Code Generator |
4 // | 4 // |
5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source |
6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. |
7 // | 7 // |
8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
9 // | 9 // |
10 // This file implements the PNaCl bitcode file to Ice, to machine code | 10 // This file implements the PNaCl bitcode file to Ice, to machine code |
(...skipping 1663 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1674 case naclbitc::ICMP_SGE: | 1674 case naclbitc::ICMP_SGE: |
1675 Cond = Ice::InstIcmp::Sge; | 1675 Cond = Ice::InstIcmp::Sge; |
1676 return true; | 1676 return true; |
1677 case naclbitc::ICMP_SLT: | 1677 case naclbitc::ICMP_SLT: |
1678 Cond = Ice::InstIcmp::Slt; | 1678 Cond = Ice::InstIcmp::Slt; |
1679 return true; | 1679 return true; |
1680 case naclbitc::ICMP_SLE: | 1680 case naclbitc::ICMP_SLE: |
1681 Cond = Ice::InstIcmp::Sle; | 1681 Cond = Ice::InstIcmp::Sle; |
1682 return true; | 1682 return true; |
1683 default: | 1683 default: |
| 1684 // Make sure Cond is always initialized. |
| 1685 Cond = static_cast<Ice::InstIcmp::ICond>(0); |
1684 return false; | 1686 return false; |
1685 } | 1687 } |
1686 } | 1688 } |
1687 | 1689 |
1688 // Converts PNaCl bitcode Fcmp operator to corresponding ICE op. | 1690 // Converts PNaCl bitcode Fcmp operator to corresponding ICE op. |
1689 // Returns true if able to convert, false otherwise. | 1691 // Returns true if able to convert, false otherwise. |
1690 bool convertNaClBitcFCompOpToIce(uint64_t Op, | 1692 bool convertNaClBitcFCompOpToIce(uint64_t Op, |
1691 Ice::InstFcmp::FCond &Cond) const { | 1693 Ice::InstFcmp::FCond &Cond) const { |
1692 switch (Op) { | 1694 switch (Op) { |
1693 case naclbitc::FCMP_FALSE: | 1695 case naclbitc::FCMP_FALSE: |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1732 case naclbitc::FCMP_ULE: | 1734 case naclbitc::FCMP_ULE: |
1733 Cond = Ice::InstFcmp::Ule; | 1735 Cond = Ice::InstFcmp::Ule; |
1734 return true; | 1736 return true; |
1735 case naclbitc::FCMP_UNE: | 1737 case naclbitc::FCMP_UNE: |
1736 Cond = Ice::InstFcmp::Une; | 1738 Cond = Ice::InstFcmp::Une; |
1737 return true; | 1739 return true; |
1738 case naclbitc::FCMP_TRUE: | 1740 case naclbitc::FCMP_TRUE: |
1739 Cond = Ice::InstFcmp::True; | 1741 Cond = Ice::InstFcmp::True; |
1740 return true; | 1742 return true; |
1741 default: | 1743 default: |
| 1744 // Make sure Cond is always initialized. |
| 1745 Cond = static_cast<Ice::InstFcmp::FCond>(0); |
1742 return false; | 1746 return false; |
1743 } | 1747 } |
1744 } | 1748 } |
1745 | 1749 |
1746 // Creates an error instruction, generating a value of type Ty, and | 1750 // Creates an error instruction, generating a value of type Ty, and |
1747 // adds a placeholder so that instruction indices line up. | 1751 // adds a placeholder so that instruction indices line up. |
1748 // Some instructions, such as a call, will not generate a value | 1752 // Some instructions, such as a call, will not generate a value |
1749 // if the return type is void. In such cases, a placeholder value | 1753 // if the return type is void. In such cases, a placeholder value |
1750 // for the badly formed instruction is not needed. Hence, if Ty is | 1754 // for the badly formed instruction is not needed. Hence, if Ty is |
1751 // void, an error instruction is not appended. | 1755 // void, an error instruction is not appended. |
(...skipping 1186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2938 | 2942 |
2939 if (TopLevelBlocks != 1) { | 2943 if (TopLevelBlocks != 1) { |
2940 errs() << IRFilename | 2944 errs() << IRFilename |
2941 << ": Contains more than one module. Found: " << TopLevelBlocks | 2945 << ": Contains more than one module. Found: " << TopLevelBlocks |
2942 << "\n"; | 2946 << "\n"; |
2943 ErrorStatus = true; | 2947 ErrorStatus = true; |
2944 } | 2948 } |
2945 } | 2949 } |
2946 | 2950 |
2947 } // end of namespace Ice | 2951 } // end of namespace Ice |
OLD | NEW |