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

Side by Side Diff: src/IceTargetLowering.h

Issue 574133002: Add initial integrated assembler w/ some Xmm ops. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: remove duplicate pxor, and use enum Created 6 years, 2 months 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
« no previous file with comments | « src/IceRegistersX8632.h ('k') | src/IceTargetLowering.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 // This file declares the TargetLowering and LoweringContext 10 // This file declares the TargetLowering and LoweringContext
11 // classes. TargetLowering is an abstract class used to drive the 11 // classes. TargetLowering is an abstract class used to drive the
12 // translation/lowering process. LoweringContext maintains a 12 // translation/lowering process. LoweringContext maintains a
13 // context for lowering each instruction, offering conveniences such 13 // context for lowering each instruction, offering conveniences such
14 // as iterating over non-deleted instructions. 14 // as iterating over non-deleted instructions.
15 // 15 //
16 //===----------------------------------------------------------------------===// 16 //===----------------------------------------------------------------------===//
17 17
18 #ifndef SUBZERO_SRC_ICETARGETLOWERING_H 18 #ifndef SUBZERO_SRC_ICETARGETLOWERING_H
19 #define SUBZERO_SRC_ICETARGETLOWERING_H 19 #define SUBZERO_SRC_ICETARGETLOWERING_H
20 20
21 #include "IceDefs.h" 21 #include "IceDefs.h"
22 #include "IceTypes.h" 22 #include "IceTypes.h"
23 23
24 #include "IceInst.h" // for the names of the Inst subtypes 24 #include "IceInst.h" // for the names of the Inst subtypes
25 25
26 namespace Ice { 26 namespace Ice {
27 27
28 class Assembler;
29
28 // LoweringContext makes it easy to iterate through non-deleted 30 // LoweringContext makes it easy to iterate through non-deleted
29 // instructions in a node, and insert new (lowered) instructions at 31 // instructions in a node, and insert new (lowered) instructions at
30 // the current point. Along with the instruction list container and 32 // the current point. Along with the instruction list container and
31 // associated iterators, it holds the current node, which is needed 33 // associated iterators, it holds the current node, which is needed
32 // when inserting new instructions in order to track whether variables 34 // when inserting new instructions in order to track whether variables
33 // are used as single-block or multi-block. 35 // are used as single-block or multi-block.
34 class LoweringContext { 36 class LoweringContext {
35 public: 37 public:
36 LoweringContext() : Node(NULL) {} 38 LoweringContext() : Node(NULL) {}
37 ~LoweringContext() {} 39 ~LoweringContext() {}
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 void skipDeleted(InstList::iterator &I) const; 82 void skipDeleted(InstList::iterator &I) const;
81 void advanceForward(InstList::iterator &I) const; 83 void advanceForward(InstList::iterator &I) const;
82 void advanceBackward(InstList::iterator &I) const; 84 void advanceBackward(InstList::iterator &I) const;
83 LoweringContext(const LoweringContext &) LLVM_DELETED_FUNCTION; 85 LoweringContext(const LoweringContext &) LLVM_DELETED_FUNCTION;
84 LoweringContext &operator=(const LoweringContext &) LLVM_DELETED_FUNCTION; 86 LoweringContext &operator=(const LoweringContext &) LLVM_DELETED_FUNCTION;
85 }; 87 };
86 88
87 class TargetLowering { 89 class TargetLowering {
88 public: 90 public:
89 static TargetLowering *createLowering(TargetArch Target, Cfg *Func); 91 static TargetLowering *createLowering(TargetArch Target, Cfg *Func);
92 static Assembler *createAssembler(TargetArch Target, Cfg *Func);
90 void translate() { 93 void translate() {
91 switch (Ctx->getOptLevel()) { 94 switch (Ctx->getOptLevel()) {
92 case Opt_m1: 95 case Opt_m1:
93 translateOm1(); 96 translateOm1();
94 break; 97 break;
95 case Opt_0: 98 case Opt_0:
96 translateO0(); 99 translateO0();
97 break; 100 break;
98 case Opt_1: 101 case Opt_1:
99 translateO1(); 102 translateO1();
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
253 private: 256 private:
254 TargetGlobalInitLowering(const TargetGlobalInitLowering &) 257 TargetGlobalInitLowering(const TargetGlobalInitLowering &)
255 LLVM_DELETED_FUNCTION; 258 LLVM_DELETED_FUNCTION;
256 TargetGlobalInitLowering & 259 TargetGlobalInitLowering &
257 operator=(const TargetGlobalInitLowering &) LLVM_DELETED_FUNCTION; 260 operator=(const TargetGlobalInitLowering &) LLVM_DELETED_FUNCTION;
258 }; 261 };
259 262
260 } // end of namespace Ice 263 } // end of namespace Ice
261 264
262 #endif // SUBZERO_SRC_ICETARGETLOWERING_H 265 #endif // SUBZERO_SRC_ICETARGETLOWERING_H
OLDNEW
« no previous file with comments | « src/IceRegistersX8632.h ('k') | src/IceTargetLowering.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698