[CodeGen] Refactor MachineMemOperand's Flags enum.
Summary:
- Give it a shorter name (because we're going to refer to it often from
SelectionDAG and friends).
- Split the flags and alignment into separate variables.
- Specialize FlagsEnumTraits for it, so we can do bitwise ops on it
without losing type information.
- Make some enum values constants in MachineMemOperand instead.
MOMaxBits should not be a valid Flag.
- Simplify some of the bitwise ops for dealing with Flags.
Reviewers: chandlerc
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D22281
llvm-svn: 275438
GitOrigin-RevId: a3b786a8c1ce5e1ed1f5a30f5482d3eb247bbf8b
diff --git a/lib/CodeGen/MachineFunction.cpp b/lib/CodeGen/MachineFunction.cpp
index a47db2e..6e4de49 100644
--- a/lib/CodeGen/MachineFunction.cpp
+++ b/lib/CodeGen/MachineFunction.cpp
@@ -299,8 +299,11 @@
uint64_t s, unsigned base_alignment,
const AAMDNodes &AAInfo,
const MDNode *Ranges) {
- return new (Allocator) MachineMemOperand(PtrInfo, f, s, base_alignment,
- AAInfo, Ranges);
+ // FIXME: Get rid of this static_cast and make getMachineOperand take a
+ // MachineMemOperand::Flags param.
+ return new (Allocator)
+ MachineMemOperand(PtrInfo, static_cast<MachineMemOperand::Flags>(f), s,
+ base_alignment, AAInfo, Ranges);
}
MachineMemOperand *