[PATCH] D14407: [WinEH] Mark funclet entries and exits as clobbering all registers
Matthias Braun via llvm-commits
llvm-commits at lists.llvm.org
Thu Nov 5 18:46:15 PST 2015
MatzeB accepted this revision.
MatzeB added a comment.
This revision is now accepted and ready to land.
LGTM.
The regalloc changes are fine. Adjusting FastRegAlloc can be done in a followup patch, something should obviously be done about the getNoPreservedMask() implementations, but we don't need further review for that.
================
Comment at: include/llvm/CodeGen/MachineBasicBlock.h:383
@@ +382,3 @@
+ const uint32_t *getBeginClobberMask(const TargetRegisterInfo *TRI) const;
+ const uint32_t *getEndClobberMask(const TargetRegisterInfo *TRI) const;
+
----------------
I would add an extra comment for each function, something like:
```
/// Get the clobber mask for the begin of the basic block. Funclets use this ...
/// Get the clobber mask for the end of the basic block. \see getBeginClobberMask()
```
================
Comment at: lib/CodeGen/MachineBasicBlock.cpp:1322
@@ +1321,3 @@
+ // care what kind of return it is, putting a mask after it is a no-op.
+ if (isEHFuncletEntry()) {
+ const uint32_t *Mask = TRI->getNoPreservedMask();
----------------
As discussed.
================
Comment at: lib/Target/ARM/ARMBaseRegisterInfo.h:97
@@ -96,3 +96,3 @@
CallingConv::ID) const override;
- const uint32_t *getNoPreservedMask() const;
+ const uint32_t *getNoPreservedMask() const override;
----------------
There is no implementation for this included in this patch (same for the other Targets).
http://reviews.llvm.org/D14407
More information about the llvm-commits
mailing list