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 10 matching lines...) Expand all Loading... | |
21 #ifndef SUBZERO_SRC_ICETARGETLOWERING_H | 21 #ifndef SUBZERO_SRC_ICETARGETLOWERING_H |
22 #define SUBZERO_SRC_ICETARGETLOWERING_H | 22 #define SUBZERO_SRC_ICETARGETLOWERING_H |
23 | 23 |
24 #include "IceDefs.h" | 24 #include "IceDefs.h" |
25 #include "IceInst.h" // for the names of the Inst subtypes | 25 #include "IceInst.h" // for the names of the Inst subtypes |
26 #include "IceOperand.h" | 26 #include "IceOperand.h" |
27 #include "IceTypes.h" | 27 #include "IceTypes.h" |
28 | 28 |
29 namespace Ice { | 29 namespace Ice { |
30 | 30 |
31 // UnimplementedError is defined as a macro so that we can get actual line | |
32 // numbers. | |
33 #define UnimplementedError(Flags) \ | |
34 do { \ | |
35 if (!static_cast<const ClFlags &>(Flags).getSkipUnimplemented()) { \ | |
Jim Stichnoth
2015/10/08 23:50:41
Do you really need the cast here?
For proper macr
John
2015/10/09 12:12:24
I'll reply on his behalf, for this is my fault.
R
Karl
2015/10/09 19:08:18
Acknowledged.
Jim Stichnoth
2015/10/09 20:05:44
I guess I was thinking of the case where the "Flag
| |
36 /* Use llvm_unreachable instead of report_fatal_error, which gives \ | |
37 better stack traces. */ \ | |
38 llvm_unreachable("Not yet implemented"); \ | |
39 abort(); \ | |
40 } \ | |
41 } while (0) | |
42 | |
31 /// LoweringContext makes it easy to iterate through non-deleted instructions in | 43 /// LoweringContext makes it easy to iterate through non-deleted instructions in |
32 /// a node, and insert new (lowered) instructions at the current point. Along | 44 /// a node, and insert new (lowered) instructions at the current point. Along |
33 /// with the instruction list container and associated iterators, it holds the | 45 /// with the instruction list container and associated iterators, it holds the |
34 /// current node, which is needed when inserting new instructions in order to | 46 /// current node, which is needed when inserting new instructions in order to |
35 /// track whether variables are used as single-block or multi-block. | 47 /// track whether variables are used as single-block or multi-block. |
36 class LoweringContext { | 48 class LoweringContext { |
37 LoweringContext(const LoweringContext &) = delete; | 49 LoweringContext(const LoweringContext &) = delete; |
38 LoweringContext &operator=(const LoweringContext &) = delete; | 50 LoweringContext &operator=(const LoweringContext &) = delete; |
39 | 51 |
40 public: | 52 public: |
(...skipping 420 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
461 virtual void lower() {} | 473 virtual void lower() {} |
462 | 474 |
463 protected: | 475 protected: |
464 explicit TargetHeaderLowering(GlobalContext *Ctx) : Ctx(Ctx) {} | 476 explicit TargetHeaderLowering(GlobalContext *Ctx) : Ctx(Ctx) {} |
465 GlobalContext *Ctx; | 477 GlobalContext *Ctx; |
466 }; | 478 }; |
467 | 479 |
468 } // end of namespace Ice | 480 } // end of namespace Ice |
469 | 481 |
470 #endif // SUBZERO_SRC_ICETARGETLOWERING_H | 482 #endif // SUBZERO_SRC_ICETARGETLOWERING_H |
OLD | NEW |