OLD | NEW |
1 //===- subzero/src/IceTargetLoweringX86BaseImpl.h - x86 lowering -*- C++ -*-==// | 1 //===- subzero/src/IceTargetLoweringX86BaseImpl.h - x86 lowering -*- C++ -*-==// |
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 458 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
469 // Run this early so it can be used to focus optimizations on potentially hot | 469 // Run this early so it can be used to focus optimizations on potentially hot |
470 // code. | 470 // code. |
471 // TODO(stichnot,ascull): currently only used for regalloc not | 471 // TODO(stichnot,ascull): currently only used for regalloc not |
472 // expensive high level optimizations which could be focused on potentially | 472 // expensive high level optimizations which could be focused on potentially |
473 // hot code. | 473 // hot code. |
474 Func->computeLoopNestDepth(); | 474 Func->computeLoopNestDepth(); |
475 Func->dump("After loop nest depth analysis"); | 475 Func->dump("After loop nest depth analysis"); |
476 | 476 |
477 // Address mode optimization. | 477 // Address mode optimization. |
478 Func->getVMetadata()->init(VMK_SingleDefs); | 478 Func->getVMetadata()->init(VMK_SingleDefs); |
| 479 Func->invertICMP(); |
479 Func->doAddressOpt(); | 480 Func->doAddressOpt(); |
480 Func->materializeVectorShuffles(); | 481 Func->materializeVectorShuffles(); |
481 | 482 |
482 // Find read-modify-write opportunities. Do this after address mode | 483 // Find read-modify-write opportunities. Do this after address mode |
483 // optimization so that doAddressOpt() doesn't need to be applied to RMW | 484 // optimization so that doAddressOpt() doesn't need to be applied to RMW |
484 // instructions as well. | 485 // instructions as well. |
485 findRMW(); | 486 findRMW(); |
486 Func->dump("After RMW transform"); | 487 Func->dump("After RMW transform"); |
487 | 488 |
488 // Argument lowering | 489 // Argument lowering |
(...skipping 7543 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8032 emitGlobal(*Var, SectionSuffix); | 8033 emitGlobal(*Var, SectionSuffix); |
8033 } | 8034 } |
8034 } | 8035 } |
8035 } break; | 8036 } break; |
8036 } | 8037 } |
8037 } | 8038 } |
8038 } // end of namespace X86NAMESPACE | 8039 } // end of namespace X86NAMESPACE |
8039 } // end of namespace Ice | 8040 } // end of namespace Ice |
8040 | 8041 |
8041 #endif // SUBZERO_SRC_ICETARGETLOWERINGX86BASEIMPL_H | 8042 #endif // SUBZERO_SRC_ICETARGETLOWERINGX86BASEIMPL_H |
OLD | NEW |