Hi all,<br><br>A few things.<br>Firstly, I've got a working implementation of the X86ThisCall calling convention, but I'm unsure how to go about submitting it.<br>(I'm not really sure how to go about creating patch files etc, but would like to contribute to the project).
<br><br>Also, I'm using MS Visual C++ Express, and there are a few things that stop llvm1.9 (and the current CVS release) from compiling <br>correctly - once again, not sure how to submit, but here are the main things -<br>
<br>In SelectionDAGNodes.h<br><br>       StoreSDNode(SDOperand Chain, SDOperand Value, SDOperand Ptr, SDOperand Off,<br>              ISD::MemOpAddrMode AM, bool isTrunc, MVT::ValueType SVT,<br>              const Value *SV, int O=0, unsigned Align=0, bool Vol=false)
<br><br>SDOperand Value should really be SDOperand value (lower case), since Value is already a defined classname.<br>Not sure if this is really a 'bug', but it does cause errors in some compilers.<br><br>Regarding the new stream wrappers in the current CVS version (in Support/Streams.h)
<br>A lot of errors in VC++ Express (not sure about other MSVC versions).<br><br>Adding<br><br>#ifdef _MSC_VER<br>#include <iostream><br>#endif<br><br>to Streams.h seems to remedy this, but presumably causes the same problems the new Stream model was intended
<br>to fix.<br><br>In Target\TargetInstrInfo.h<br><br>  virtual const TargetRegisterClass *getPointerRegClass() const {<br>    assert(0 && "Target didn't implement getPointerRegClass!");<br>    abort();<br>
  }<br><br>causes an error (non void funcs must return a value). Add return(NULL) to fix.<br><br>Other than that, the MSVC projects reference a few old (deleted) files, but no more code changes are necessary.<br><br>Thanks,
<br>David Shipman<br><br><br><br>