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

Side by Side Diff: src/IceDefs.h

Issue 652633002: Subzero: Improve performance of liveness analysis and live range construction. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Remove TODO 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/IceCfgNode.cpp ('k') | src/IceInst.h » ('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/IceDefs.h - Common Subzero declaraions -------*- C++ -*-===// 1 //===- subzero/src/IceDefs.h - Common Subzero declaraions -------*- 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 various useful types and classes that have 10 // This file declares various useful types and classes that have
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 64
65 // SizeT is for holding small-ish limits like number of source 65 // SizeT is for holding small-ish limits like number of source
66 // operands in an instruction. It is used instead of size_t (which 66 // operands in an instruction. It is used instead of size_t (which
67 // may be 64-bits wide) when we want to save space. 67 // may be 64-bits wide) when we want to save space.
68 typedef uint32_t SizeT; 68 typedef uint32_t SizeT;
69 69
70 // InstNumberT is for holding an instruction number. Instruction 70 // InstNumberT is for holding an instruction number. Instruction
71 // numbers are used for representing Variable live ranges. 71 // numbers are used for representing Variable live ranges.
72 typedef int32_t InstNumberT; 72 typedef int32_t InstNumberT;
73 73
74 // A LiveBeginEndMapEntry maps a Variable::Number value to an
75 // Inst::Number value, giving the instruction number that begins or
76 // ends a variable's live range.
77 typedef std::pair<SizeT, InstNumberT> LiveBeginEndMapEntry;
78 typedef std::vector<LiveBeginEndMapEntry> LiveBeginEndMap;
79 typedef llvm::BitVector LivenessBV;
80
74 typedef uint32_t TimerStackIdT; 81 typedef uint32_t TimerStackIdT;
75 typedef uint32_t TimerIdT; 82 typedef uint32_t TimerIdT;
76 83
77 // PNaCl is ILP32, so theoretically we should only need 32-bit offsets. 84 // PNaCl is ILP32, so theoretically we should only need 32-bit offsets.
78 typedef int32_t RelocOffsetT; 85 typedef int32_t RelocOffsetT;
79 86
80 enum LivenessMode { 87 enum LivenessMode {
81 // Basic version of live-range-end calculation. Marks the last uses 88 // Basic version of live-range-end calculation. Marks the last uses
82 // of variables based on dataflow analysis. Records the set of 89 // of variables based on dataflow analysis. Records the set of
83 // live-in and live-out variables for each block. Identifies and 90 // live-in and live-out variables for each block. Identifies and
(...skipping 22 matching lines...) Expand all
106 IceV_All = ~IceV_None, 113 IceV_All = ~IceV_None,
107 IceV_Most = IceV_All & ~IceV_LinearScan 114 IceV_Most = IceV_All & ~IceV_LinearScan
108 }; 115 };
109 typedef uint32_t VerboseMask; 116 typedef uint32_t VerboseMask;
110 117
111 typedef llvm::raw_ostream Ostream; 118 typedef llvm::raw_ostream Ostream;
112 119
113 } // end of namespace Ice 120 } // end of namespace Ice
114 121
115 #endif // SUBZERO_SRC_ICEDEFS_H 122 #endif // SUBZERO_SRC_ICEDEFS_H
OLDNEW
« no previous file with comments | « src/IceCfgNode.cpp ('k') | src/IceInst.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698