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

Side by Side Diff: src/IceOperand.h

Issue 1343843003: Refactor all instances of `typedef y x` to the C++11 `using x = y` syntax. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Created 5 years, 3 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/IceIntrinsics.h ('k') | src/IceRegAlloc.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/IceOperand.h - High-level operands -----------*- C++ -*-===// 1 //===- subzero/src/IceOperand.h - High-level operands -----------*- 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 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 }; 152 };
153 153
154 /// ConstantPrimitive<> wraps a primitive type. 154 /// ConstantPrimitive<> wraps a primitive type.
155 template <typename T, Operand::OperandKind K> 155 template <typename T, Operand::OperandKind K>
156 class ConstantPrimitive : public Constant { 156 class ConstantPrimitive : public Constant {
157 ConstantPrimitive() = delete; 157 ConstantPrimitive() = delete;
158 ConstantPrimitive(const ConstantPrimitive &) = delete; 158 ConstantPrimitive(const ConstantPrimitive &) = delete;
159 ConstantPrimitive &operator=(const ConstantPrimitive &) = delete; 159 ConstantPrimitive &operator=(const ConstantPrimitive &) = delete;
160 160
161 public: 161 public:
162 typedef T PrimType; 162 using PrimType = T;
163 163
164 static ConstantPrimitive *create(GlobalContext *Ctx, Type Ty, PrimType Value, 164 static ConstantPrimitive *create(GlobalContext *Ctx, Type Ty, PrimType Value,
165 uint32_t PoolEntryID) { 165 uint32_t PoolEntryID) {
166 assert(!Ctx->isIRGenerationDisabled() && 166 assert(!Ctx->isIRGenerationDisabled() &&
167 "Attempt to build primitive constant when IR generation disabled"); 167 "Attempt to build primitive constant when IR generation disabled");
168 return new (Ctx->allocate<ConstantPrimitive>()) 168 return new (Ctx->allocate<ConstantPrimitive>())
169 ConstantPrimitive(Ty, Value, PoolEntryID); 169 ConstantPrimitive(Ty, Value, PoolEntryID);
170 } 170 }
171 PrimType getValue() const { return Value; } 171 PrimType getValue() const { return Value; }
172 using Constant::emit; 172 using Constant::emit;
(...skipping 12 matching lines...) Expand all
185 (void)Ctx; 185 (void)Ctx;
186 return false; 186 return false;
187 } 187 }
188 188
189 private: 189 private:
190 ConstantPrimitive(Type Ty, PrimType Value, uint32_t PoolEntryID) 190 ConstantPrimitive(Type Ty, PrimType Value, uint32_t PoolEntryID)
191 : Constant(K, Ty, PoolEntryID), Value(Value) {} 191 : Constant(K, Ty, PoolEntryID), Value(Value) {}
192 const PrimType Value; 192 const PrimType Value;
193 }; 193 };
194 194
195 typedef ConstantPrimitive<int32_t, Operand::kConstInteger32> ConstantInteger32; 195 using ConstantInteger32 = ConstantPrimitive<int32_t, Operand::kConstInteger32>;
196 typedef ConstantPrimitive<int64_t, Operand::kConstInteger64> ConstantInteger64; 196 using ConstantInteger64 = ConstantPrimitive<int64_t, Operand::kConstInteger64>;
197 typedef ConstantPrimitive<float, Operand::kConstFloat> ConstantFloat; 197 using ConstantFloat = ConstantPrimitive<float, Operand::kConstFloat>;
198 typedef ConstantPrimitive<double, Operand::kConstDouble> ConstantDouble; 198 using ConstantDouble = ConstantPrimitive<double, Operand::kConstDouble>;
199 199
200 template <> 200 template <>
201 inline void ConstantInteger32::dump(const Cfg *, Ostream &Str) const { 201 inline void ConstantInteger32::dump(const Cfg *, Ostream &Str) const {
202 if (!BuildDefs::dump()) 202 if (!BuildDefs::dump())
203 return; 203 return;
204 if (getType() == IceType_i1) 204 if (getType() == IceType_i1)
205 Str << (getValue() ? "true" : "false"); 205 Str << (getValue() ? "true" : "false");
206 else 206 else
207 Str << static_cast<int32_t>(getValue()); 207 Str << static_cast<int32_t>(getValue());
208 } 208 }
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
380 InstNumberT getEnd() const { 380 InstNumberT getEnd() const {
381 return Range.empty() ? -1 : Range.rbegin()->second; 381 return Range.empty() ? -1 : Range.rbegin()->second;
382 } 382 }
383 383
384 void untrim() { TrimmedBegin = Range.begin(); } 384 void untrim() { TrimmedBegin = Range.begin(); }
385 void trim(InstNumberT Lower); 385 void trim(InstNumberT Lower);
386 386
387 void dump(Ostream &Str) const; 387 void dump(Ostream &Str) const;
388 388
389 private: 389 private:
390 typedef std::pair<InstNumberT, InstNumberT> RangeElementType; 390 using RangeElementType = std::pair<InstNumberT, InstNumberT>;
391 /// RangeType is arena-allocated from the Cfg's allocator. 391 /// RangeType is arena-allocated from the Cfg's allocator.
392 typedef std::vector<RangeElementType, CfgLocalAllocator<RangeElementType>> 392 using RangeType =
393 RangeType; 393 std::vector<RangeElementType, CfgLocalAllocator<RangeElementType>>;
394 RangeType Range; 394 RangeType Range;
395 /// TrimmedBegin is an optimization for the overlaps() computation. 395 /// TrimmedBegin is an optimization for the overlaps() computation.
396 /// Since the linear-scan algorithm always calls it as overlaps(Cur) 396 /// Since the linear-scan algorithm always calls it as overlaps(Cur)
397 /// and Cur advances monotonically according to live range start, we 397 /// and Cur advances monotonically according to live range start, we
398 /// can optimize overlaps() by ignoring all segments that end before 398 /// can optimize overlaps() by ignoring all segments that end before
399 /// the start of Cur's range. The linear-scan code enables this by 399 /// the start of Cur's range. The linear-scan code enables this by
400 /// calling trim() on the ranges of interest as Cur advances. Note 400 /// calling trim() on the ranges of interest as Cur advances. Note
401 /// that linear-scan also has to initialize TrimmedBegin at the 401 /// that linear-scan also has to initialize TrimmedBegin at the
402 /// beginning by calling untrim(). 402 /// beginning by calling untrim().
403 RangeType::const_iterator TrimmedBegin; 403 RangeType::const_iterator TrimmedBegin;
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
553 /// VarsReal (and Operand::Vars) are set up such that Vars[0] == 553 /// VarsReal (and Operand::Vars) are set up such that Vars[0] ==
554 /// this. 554 /// this.
555 Variable *VarsReal[1]; 555 Variable *VarsReal[1];
556 }; 556 };
557 557
558 enum MetadataKind { 558 enum MetadataKind {
559 VMK_Uses, /// Track only uses, not defs 559 VMK_Uses, /// Track only uses, not defs
560 VMK_SingleDefs, /// Track uses+defs, but only record single def 560 VMK_SingleDefs, /// Track uses+defs, but only record single def
561 VMK_All /// Track uses+defs, including full def list 561 VMK_All /// Track uses+defs, including full def list
562 }; 562 };
563 typedef std::vector<const Inst *, CfgLocalAllocator<const Inst *>> InstDefList; 563 using InstDefList = std::vector<const Inst *, CfgLocalAllocator<const Inst *>>;
564 564
565 /// VariableTracking tracks the metadata for a single variable. It is 565 /// VariableTracking tracks the metadata for a single variable. It is
566 /// only meant to be used internally by VariablesMetadata. 566 /// only meant to be used internally by VariablesMetadata.
567 class VariableTracking { 567 class VariableTracking {
568 VariableTracking &operator=(const VariableTracking &) = delete; 568 VariableTracking &operator=(const VariableTracking &) = delete;
569 569
570 public: 570 public:
571 enum MultiDefState { 571 enum MultiDefState {
572 // TODO(stichnot): Consider using just a simple counter. 572 // TODO(stichnot): Consider using just a simple counter.
573 MDS_Unknown, 573 MDS_Unknown,
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
659 private: 659 private:
660 const Cfg *Func; 660 const Cfg *Func;
661 MetadataKind Kind; 661 MetadataKind Kind;
662 std::vector<VariableTracking> Metadata; 662 std::vector<VariableTracking> Metadata;
663 const static InstDefList NoDefinitions; 663 const static InstDefList NoDefinitions;
664 }; 664 };
665 665
666 } // end of namespace Ice 666 } // end of namespace Ice
667 667
668 #endif // SUBZERO_SRC_ICEOPERAND_H 668 #endif // SUBZERO_SRC_ICEOPERAND_H
OLDNEW
« no previous file with comments | « src/IceIntrinsics.h ('k') | src/IceRegAlloc.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698