[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