| OLD | NEW |
| 1 // | 1 // |
| 2 // The Subzero Code Generator | 2 // The Subzero Code Generator |
| 3 // | 3 // |
| 4 // This file is distributed under the University of Illinois Open Source | 4 // This file is distributed under the University of Illinois Open Source |
| 5 // License. See LICENSE.TXT for details. | 5 // License. See LICENSE.TXT for details. |
| 6 // | 6 // |
| 7 //===----------------------------------------------------------------------===// | 7 //===----------------------------------------------------------------------===// |
| 8 /// | 8 /// |
| 9 /// \file | 9 /// \file |
| 10 /// \brief Implements the TargetLoweringMIPS32 class, which consists almost | 10 /// \brief Implements the TargetLoweringMIPS32 class, which consists almost |
| (...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 259 Func->dump("After MIPS32 codegen"); | 259 Func->dump("After MIPS32 codegen"); |
| 260 | 260 |
| 261 // Register allocation. This requires instruction renumbering and full | 261 // Register allocation. This requires instruction renumbering and full |
| 262 // liveness analysis. | 262 // liveness analysis. |
| 263 Func->renumberInstructions(); | 263 Func->renumberInstructions(); |
| 264 if (Func->hasError()) | 264 if (Func->hasError()) |
| 265 return; | 265 return; |
| 266 Func->liveness(Liveness_Intervals); | 266 Func->liveness(Liveness_Intervals); |
| 267 if (Func->hasError()) | 267 if (Func->hasError()) |
| 268 return; | 268 return; |
| 269 // The post-codegen dump is done here, after liveness analysis and associated |
| 270 // cleanup, to make the dump cleaner and more useful. |
| 271 Func->dump("After initial MIPS32 codegen"); |
| 269 // Validate the live range computations. The expensive validation call is | 272 // Validate the live range computations. The expensive validation call is |
| 270 // deliberately only made when assertions are enabled. | 273 // deliberately only made when assertions are enabled. |
| 271 assert(Func->validateLiveness()); | 274 assert(Func->validateLiveness()); |
| 272 // The post-codegen dump is done here, after liveness analysis and associated | |
| 273 // cleanup, to make the dump cleaner and more useful. | |
| 274 Func->dump("After initial MIPS32 codegen"); | |
| 275 Func->getVMetadata()->init(VMK_All); | 275 Func->getVMetadata()->init(VMK_All); |
| 276 regAlloc(RAK_Global); | 276 regAlloc(RAK_Global); |
| 277 if (Func->hasError()) | 277 if (Func->hasError()) |
| 278 return; | 278 return; |
| 279 Func->dump("After linear scan regalloc"); | 279 Func->dump("After linear scan regalloc"); |
| 280 | 280 |
| 281 if (getFlags().getEnablePhiEdgeSplit()) { | 281 if (getFlags().getEnablePhiEdgeSplit()) { |
| 282 Func->advancedPhiLowering(); | 282 Func->advancedPhiLowering(); |
| 283 Func->dump("After advanced Phi lowering"); | 283 Func->dump("After advanced Phi lowering"); |
| 284 } | 284 } |
| (...skipping 1916 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2201 Str << "\t.set\t" | 2201 Str << "\t.set\t" |
| 2202 << "nomips16\n"; | 2202 << "nomips16\n"; |
| 2203 } | 2203 } |
| 2204 | 2204 |
| 2205 SmallBitVector TargetMIPS32::TypeToRegisterSet[RCMIPS32_NUM]; | 2205 SmallBitVector TargetMIPS32::TypeToRegisterSet[RCMIPS32_NUM]; |
| 2206 SmallBitVector TargetMIPS32::TypeToRegisterSetUnfiltered[RCMIPS32_NUM]; | 2206 SmallBitVector TargetMIPS32::TypeToRegisterSetUnfiltered[RCMIPS32_NUM]; |
| 2207 SmallBitVector TargetMIPS32::RegisterAliases[RegMIPS32::Reg_NUM]; | 2207 SmallBitVector TargetMIPS32::RegisterAliases[RegMIPS32::Reg_NUM]; |
| 2208 | 2208 |
| 2209 } // end of namespace MIPS32 | 2209 } // end of namespace MIPS32 |
| 2210 } // end of namespace Ice | 2210 } // end of namespace Ice |
| OLD | NEW |