[llvm-branch-commits] [llvm-branch] r116502 - /llvm/branches/ggreif/switch-opts/lib/Target/ARM/ARMBaseInstrInfo.cpp

Gabor Greif ggreif at gmail.com
Thu Oct 14 13:07:16 PDT 2010


Author: ggreif
Date: Thu Oct 14 15:07:16 2010
New Revision: 116502

URL: http://llvm.org/viewvc/llvm-project?rev=116502&view=rev
Log:
add Opaque
(later to be named 'Opportunity')

Modified:
    llvm/branches/ggreif/switch-opts/lib/Target/ARM/ARMBaseInstrInfo.cpp

Modified: llvm/branches/ggreif/switch-opts/lib/Target/ARM/ARMBaseInstrInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/ggreif/switch-opts/lib/Target/ARM/ARMBaseInstrInfo.cpp?rev=116502&r1=116501&r2=116502&view=diff
==============================================================================
--- llvm/branches/ggreif/switch-opts/lib/Target/ARM/ARMBaseInstrInfo.cpp (original)
+++ llvm/branches/ggreif/switch-opts/lib/Target/ARM/ARMBaseInstrInfo.cpp Thu Oct 14 15:07:16 2010
@@ -1428,6 +1428,22 @@
   return Offset == 0;
 }
 
+
+struct Opaque {
+	void (*dispach)(const Opaque&, int);
+	void *operator new(size_t, Opaque&);
+};
+
+struct MaxOpaque : Opaque {
+  enum { SomeSufficientNumber = sizeof(void*) * 10 };
+  char payload[SomeSufficientNumber];
+};
+
+void *Opaque::operator new(size_t need, Opaque& space) {
+  assert(need <= sizeof(MaxOpaque));
+  return &space;
+}
+
 bool ARMBaseInstrInfo::
 AnalyzeCompare(const MachineInstr *MI, unsigned &SrcReg, int &CmpMask,
                int &CmpValue) const {





More information about the llvm-branch-commits mailing list