Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(571)

Side by Side Diff: src/IceTargetLoweringX8664.cpp

Issue 1497033002: Fuse icmp/fcmp with select (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Code review changes. Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 //===- subzero/src/IceTargetLoweringX8664.cpp - x86-64 lowering -----------===// 1 //===- subzero/src/IceTargetLoweringX8664.cpp - x86-64 lowering -----------===//
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 /// \file 10 /// \file
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 , 66 ,
67 ICMPX8664_TABLE 67 ICMPX8664_TABLE
68 #undef X 68 #undef X
69 }; 69 };
70 70
71 const size_t MachineTraits<TargetX8664>::TableIcmp64Size = 71 const size_t MachineTraits<TargetX8664>::TableIcmp64Size =
72 llvm::array_lengthof(TableIcmp64); 72 llvm::array_lengthof(TableIcmp64);
73 73
74 const MachineTraits<TargetX8664>::TableTypeX8664AttributesType 74 const MachineTraits<TargetX8664>::TableTypeX8664AttributesType
75 MachineTraits<TargetX8664>::TableTypeX8664Attributes[] = { 75 MachineTraits<TargetX8664>::TableTypeX8664Attributes[] = {
76 #define X(tag, elementty, cvt, sdss, pack, width, fld) \ 76 #define X(tag, elementty, cvt, sdss, pdps, spsd, pack, width, fld) \
77 { IceType_##elementty } \ 77 { IceType_##elementty } \
78 , 78 ,
79 ICETYPEX8664_TABLE 79 ICETYPEX8664_TABLE
80 #undef X 80 #undef X
81 }; 81 };
82 82
83 const size_t MachineTraits<TargetX8664>::TableTypeX8664AttributesSize = 83 const size_t MachineTraits<TargetX8664>::TableTypeX8664AttributesSize =
84 llvm::array_lengthof(TableTypeX8664Attributes); 84 llvm::array_lengthof(TableTypeX8664Attributes);
85 85
86 const uint32_t MachineTraits<TargetX8664>::X86_STACK_ALIGNMENT_BYTES = 16; 86 const uint32_t MachineTraits<TargetX8664>::X86_STACK_ALIGNMENT_BYTES = 16;
(...skipping 863 matching lines...) Expand 10 before | Expand all | Expand 10 after
950 _table1_##tag == _table2_##tag, \ 950 _table1_##tag == _table2_##tag, \
951 "Inconsistency between ICMPX8664_TABLE and ICEINSTICMP_TABLE"); 951 "Inconsistency between ICMPX8664_TABLE and ICEINSTICMP_TABLE");
952 ICEINSTICMP_TABLE 952 ICEINSTICMP_TABLE
953 #undef X 953 #undef X
954 } // end of namespace dummy2 954 } // end of namespace dummy2
955 955
956 // Validate the enum values in ICETYPEX8664_TABLE. 956 // Validate the enum values in ICETYPEX8664_TABLE.
957 namespace dummy3 { 957 namespace dummy3 {
958 // Define a temporary set of enum values based on low-level table entries. 958 // Define a temporary set of enum values based on low-level table entries.
959 enum _tmp_enum { 959 enum _tmp_enum {
960 #define X(tag, elementty, cvt, sdss, pack, width, fld) _tmp_##tag, 960 #define X(tag, elementty, cvt, sdss, pdps, spsd, pack, width, fld) _tmp_##tag,
961 ICETYPEX8664_TABLE 961 ICETYPEX8664_TABLE
962 #undef X 962 #undef X
963 _num 963 _num
964 }; 964 };
965 // Define a set of constants based on high-level table entries. 965 // Define a set of constants based on high-level table entries.
966 #define X(tag, sizeLog2, align, elts, elty, str) \ 966 #define X(tag, sizeLog2, align, elts, elty, str) \
967 static const int _table1_##tag = IceType_##tag; 967 static const int _table1_##tag = IceType_##tag;
968 ICETYPE_TABLE 968 ICETYPE_TABLE
969 #undef X 969 #undef X
970 // Define a set of constants based on low-level table entries, and ensure the 970 // Define a set of constants based on low-level table entries, and ensure the
971 // table entry keys are consistent. 971 // table entry keys are consistent.
972 #define X(tag, elementty, cvt, sdss, pack, width, fld) \ 972 #define X(tag, elementty, cvt, sdss, pdps, spsd, pack, width, fld) \
973 static const int _table2_##tag = _tmp_##tag; \ 973 static const int _table2_##tag = _tmp_##tag; \
974 static_assert(_table1_##tag == _table2_##tag, \ 974 static_assert(_table1_##tag == _table2_##tag, \
975 "Inconsistency between ICETYPEX8664_TABLE and ICETYPE_TABLE"); 975 "Inconsistency between ICETYPEX8664_TABLE and ICETYPE_TABLE");
976 ICETYPEX8664_TABLE 976 ICETYPEX8664_TABLE
977 #undef X 977 #undef X
978 // Repeat the static asserts with respect to the high-level table entries in 978 // Repeat the static asserts with respect to the high-level table entries in
979 // case the high-level table has extra entries. 979 // case the high-level table has extra entries.
980 #define X(tag, sizeLog2, align, elts, elty, str) \ 980 #define X(tag, sizeLog2, align, elts, elty, str) \
981 static_assert(_table1_##tag == _table2_##tag, \ 981 static_assert(_table1_##tag == _table2_##tag, \
982 "Inconsistency between ICETYPEX8664_TABLE and ICETYPE_TABLE"); 982 "Inconsistency between ICETYPEX8664_TABLE and ICETYPE_TABLE");
983 ICETYPE_TABLE 983 ICETYPE_TABLE
984 #undef X 984 #undef X
985 } // end of namespace dummy3 985 } // end of namespace dummy3
986 } // end of anonymous namespace 986 } // end of anonymous namespace
987 987
988 } // end of namespace Ice 988 } // end of namespace Ice
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698