OLD | NEW |
1 //===- subzero/src/IceTargetLowering.cpp - Basic lowering implementation --===// | 1 //===- subzero/src/IceTargetLowering.cpp - Basic lowering implementation --===// |
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 skeleton of the TargetLowering class, | 10 // This file implements the skeleton of the TargetLowering class, |
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
164 break; | 164 break; |
165 case Inst::Fcmp: | 165 case Inst::Fcmp: |
166 lowerFcmp(llvm::dyn_cast<InstFcmp>(Inst)); | 166 lowerFcmp(llvm::dyn_cast<InstFcmp>(Inst)); |
167 break; | 167 break; |
168 case Inst::Icmp: | 168 case Inst::Icmp: |
169 lowerIcmp(llvm::dyn_cast<InstIcmp>(Inst)); | 169 lowerIcmp(llvm::dyn_cast<InstIcmp>(Inst)); |
170 break; | 170 break; |
171 case Inst::InsertElement: | 171 case Inst::InsertElement: |
172 lowerInsertElement(llvm::dyn_cast<InstInsertElement>(Inst)); | 172 lowerInsertElement(llvm::dyn_cast<InstInsertElement>(Inst)); |
173 break; | 173 break; |
174 case Inst::IntrinsicCall: | 174 case Inst::IntrinsicCall: { |
175 lowerIntrinsicCall(llvm::dyn_cast<InstIntrinsicCall>(Inst)); | 175 InstIntrinsicCall *Call = llvm::dyn_cast<InstIntrinsicCall>(Inst); |
| 176 if (Call->getIntrinsicInfo().ReturnsTwice) |
| 177 setCallsReturnsTwice(true); |
| 178 lowerIntrinsicCall(Call); |
176 break; | 179 break; |
| 180 } |
177 case Inst::Load: | 181 case Inst::Load: |
178 lowerLoad(llvm::dyn_cast<InstLoad>(Inst)); | 182 lowerLoad(llvm::dyn_cast<InstLoad>(Inst)); |
179 break; | 183 break; |
180 case Inst::Phi: | 184 case Inst::Phi: |
181 lowerPhi(llvm::dyn_cast<InstPhi>(Inst)); | 185 lowerPhi(llvm::dyn_cast<InstPhi>(Inst)); |
182 break; | 186 break; |
183 case Inst::Ret: | 187 case Inst::Ret: |
184 lowerRet(llvm::dyn_cast<InstRet>(Inst)); | 188 lowerRet(llvm::dyn_cast<InstRet>(Inst)); |
185 break; | 189 break; |
186 case Inst::Select: | 190 case Inst::Select: |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
242 if (Target == Target_ARM64) | 246 if (Target == Target_ARM64) |
243 return IceTargetGlobalInitARM64::create(Ctx); | 247 return IceTargetGlobalInitARM64::create(Ctx); |
244 #endif | 248 #endif |
245 llvm_unreachable("Unsupported target"); | 249 llvm_unreachable("Unsupported target"); |
246 return NULL; | 250 return NULL; |
247 } | 251 } |
248 | 252 |
249 TargetGlobalInitLowering::~TargetGlobalInitLowering() {} | 253 TargetGlobalInitLowering::~TargetGlobalInitLowering() {} |
250 | 254 |
251 } // end of namespace Ice | 255 } // end of namespace Ice |
OLD | NEW |