OLD | NEW |
1 //===- subzero/src/IceTargetLowering.h - Lowering interface -----*- C++ -*-===// | 1 //===- subzero/src/IceTargetLowering.h - Lowering interface -----*- 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 598 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
609 TargetDataLowering &operator=(const TargetDataLowering &) = delete; | 609 TargetDataLowering &operator=(const TargetDataLowering &) = delete; |
610 | 610 |
611 public: | 611 public: |
612 static std::unique_ptr<TargetDataLowering> createLowering(GlobalContext *Ctx); | 612 static std::unique_ptr<TargetDataLowering> createLowering(GlobalContext *Ctx); |
613 virtual ~TargetDataLowering(); | 613 virtual ~TargetDataLowering(); |
614 | 614 |
615 virtual void lowerGlobals(const VariableDeclarationList &Vars, | 615 virtual void lowerGlobals(const VariableDeclarationList &Vars, |
616 const std::string &SectionSuffix) = 0; | 616 const std::string &SectionSuffix) = 0; |
617 virtual void lowerConstants() = 0; | 617 virtual void lowerConstants() = 0; |
618 virtual void lowerJumpTables() = 0; | 618 virtual void lowerJumpTables() = 0; |
| 619 virtual void emitTargetRODataSections() {} |
619 | 620 |
620 protected: | 621 protected: |
621 void emitGlobal(const VariableDeclaration &Var, | 622 void emitGlobal(const VariableDeclaration &Var, |
622 const std::string &SectionSuffix); | 623 const std::string &SectionSuffix); |
623 | 624 |
624 /// For now, we assume .long is the right directive for emitting 4 byte emit | 625 /// For now, we assume .long is the right directive for emitting 4 byte emit |
625 /// global relocations. However, LLVM MIPS usually uses .4byte instead. | 626 /// global relocations. However, LLVM MIPS usually uses .4byte instead. |
626 /// Perhaps there is some difference when the location is unaligned. | 627 /// Perhaps there is some difference when the location is unaligned. |
627 static const char *getEmit32Directive() { return ".long"; } | 628 static const char *getEmit32Directive() { return ".long"; } |
628 | 629 |
(...skipping 17 matching lines...) Expand all Loading... |
646 virtual void lower() {} | 647 virtual void lower() {} |
647 | 648 |
648 protected: | 649 protected: |
649 explicit TargetHeaderLowering(GlobalContext *Ctx) : Ctx(Ctx) {} | 650 explicit TargetHeaderLowering(GlobalContext *Ctx) : Ctx(Ctx) {} |
650 GlobalContext *Ctx; | 651 GlobalContext *Ctx; |
651 }; | 652 }; |
652 | 653 |
653 } // end of namespace Ice | 654 } // end of namespace Ice |
654 | 655 |
655 #endif // SUBZERO_SRC_ICETARGETLOWERING_H | 656 #endif // SUBZERO_SRC_ICETARGETLOWERING_H |
OLD | NEW |