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

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: Fix non-debug build 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
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 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 62
63 // SizeT is for holding small-ish limits like number of source 63 // SizeT is for holding small-ish limits like number of source
64 // operands in an instruction. It is used instead of size_t (which 64 // operands in an instruction. It is used instead of size_t (which
65 // may be 64-bits wide) when we want to save space. 65 // may be 64-bits wide) when we want to save space.
66 typedef uint32_t SizeT; 66 typedef uint32_t SizeT;
67 67
68 // InstNumberT is for holding an instruction number. Instruction 68 // InstNumberT is for holding an instruction number. Instruction
69 // numbers are used for representing Variable live ranges. 69 // numbers are used for representing Variable live ranges.
70 typedef int32_t InstNumberT; 70 typedef int32_t InstNumberT;
71 71
72 typedef llvm::BitVector LivenessBV;
73 typedef std::pair<SizeT, InstNumberT> BeginEndMapEntry;
jvoung (off chromium) 2014/10/13 20:50:50 Could you leave a comment about the structure of t
Jim Stichnoth 2014/10/13 23:15:22 Both suggestions done.
74 typedef std::vector<BeginEndMapEntry> BeginEndMap;
75
72 typedef uint32_t TimerStackIdT; 76 typedef uint32_t TimerStackIdT;
73 typedef uint32_t TimerIdT; 77 typedef uint32_t TimerIdT;
74 78
75 enum LivenessMode { 79 enum LivenessMode {
76 // Basic version of live-range-end calculation. Marks the last uses 80 // Basic version of live-range-end calculation. Marks the last uses
77 // of variables based on dataflow analysis. Records the set of 81 // of variables based on dataflow analysis. Records the set of
78 // live-in and live-out variables for each block. Identifies and 82 // live-in and live-out variables for each block. Identifies and
79 // deletes dead instructions (primarily stores). 83 // deletes dead instructions (primarily stores).
80 Liveness_Basic, 84 Liveness_Basic,
81 85
(...skipping 19 matching lines...) Expand all
101 IceV_All = ~IceV_None, 105 IceV_All = ~IceV_None,
102 IceV_Most = IceV_All & ~IceV_LinearScan 106 IceV_Most = IceV_All & ~IceV_LinearScan
103 }; 107 };
104 typedef uint32_t VerboseMask; 108 typedef uint32_t VerboseMask;
105 109
106 typedef llvm::raw_ostream Ostream; 110 typedef llvm::raw_ostream Ostream;
107 111
108 } // end of namespace Ice 112 } // end of namespace Ice
109 113
110 #endif // SUBZERO_SRC_ICEDEFS_H 114 #endif // SUBZERO_SRC_ICEDEFS_H
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698