diff options
author | Nadav Rotem <nrotem@apple.com> | 2012-12-27 06:47:41 +0000 |
---|---|---|
committer | Nadav Rotem <nrotem@apple.com> | 2012-12-27 06:47:41 +0000 |
commit | 444b4bf5c84c80833ff283244de0885124091a13 (patch) | |
tree | 22e258dd426dd8ee58e2e6c8fbd2581781942a0b /include/llvm/Target/TargetLowering.h | |
parent | d0f28c09582e66366c3fdb738c3c91d98a2c04a0 (diff) | |
download | external_llvm-444b4bf5c84c80833ff283244de0885124091a13.zip external_llvm-444b4bf5c84c80833ff283244de0885124091a13.tar.gz external_llvm-444b4bf5c84c80833ff283244de0885124091a13.tar.bz2 |
Refactor DAGCombinerInfo. Change the different booleans that indicate if we are before or after different runs of DAGCo, with the CombineLevel enum.
Also, added a new API for checking if we are running before or after the LegalizeVectorOps phase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171142 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Target/TargetLowering.h')
-rw-r--r-- | include/llvm/Target/TargetLowering.h | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/include/llvm/Target/TargetLowering.h b/include/llvm/Target/TargetLowering.h index d7f05ae..d644500 100644 --- a/include/llvm/Target/TargetLowering.h +++ b/include/llvm/Target/TargetLowering.h @@ -26,6 +26,7 @@ #include "llvm/AddressingMode.h" #include "llvm/Attributes.h" #include "llvm/CallingConv.h" +#include "llvm/CodeGen/DAGCombine.h" #include "llvm/CodeGen/RuntimeLibcalls.h" #include "llvm/CodeGen/SelectionDAGNodes.h" #include "llvm/InlineAsm.h" @@ -963,18 +964,19 @@ public: struct DAGCombinerInfo { void *DC; // The DAG Combiner object. - bool BeforeLegalize; - bool BeforeLegalizeOps; + CombineLevel Level; bool CalledByLegalizer; public: SelectionDAG &DAG; - DAGCombinerInfo(SelectionDAG &dag, bool bl, bool blo, bool cl, void *dc) - : DC(dc), BeforeLegalize(bl), BeforeLegalizeOps(blo), - CalledByLegalizer(cl), DAG(dag) {} + DAGCombinerInfo(SelectionDAG &dag, CombineLevel level, bool cl, void *dc) + : DC(dc), Level(level), CalledByLegalizer(cl), DAG(dag) {} - bool isBeforeLegalize() const { return BeforeLegalize; } - bool isBeforeLegalizeOps() const { return BeforeLegalizeOps; } + bool isBeforeLegalize() const { return Level == BeforeLegalizeTypes; } + bool isBeforeLegalizeOps() const { return Level < AfterLegalizeVectorOps; } + bool isAfterLegalizeVectorOps() const { + return Level == AfterLegalizeDAG; + } bool isCalledByLegalizer() const { return CalledByLegalizer; } void AddToWorklist(SDNode *N); |