[LLVMdev] ThisCall / Compilation problems

David Shipman dshipman at gmail.com
Thu Dec 14 15:59:04 PST 2006


Hi all,

A few things.
Firstly, I've got a working implementation of the X86ThisCall calling
convention, but I'm unsure how to go about submitting it.
(I'm not really sure how to go about creating patch files etc, but would
like to contribute to the project).

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
correctly - once again, not sure how to submit, but here are the main things
-

In SelectionDAGNodes.h

       StoreSDNode(SDOperand Chain, SDOperand Value, SDOperand Ptr,
SDOperand Off,
              ISD::MemOpAddrMode AM, bool isTrunc, MVT::ValueType SVT,
              const Value *SV, int O=0, unsigned Align=0, bool Vol=false)

SDOperand Value should really be SDOperand value (lower case), since Value
is already a defined classname.
Not sure if this is really a 'bug', but it does cause errors in some
compilers.

Regarding the new stream wrappers in the current CVS version (in
Support/Streams.h)
A lot of errors in VC++ Express (not sure about other MSVC versions).

Adding

#ifdef _MSC_VER
#include <iostream>
#endif

to Streams.h seems to remedy this, but presumably causes the same problems
the new Stream model was intended
to fix.

In Target\TargetInstrInfo.h

  virtual const TargetRegisterClass *getPointerRegClass() const {
    assert(0 && "Target didn't implement getPointerRegClass!");
    abort();
  }

causes an error (non void funcs must return a value). Add return(NULL) to
fix.

Other than that, the MSVC projects reference a few old (deleted) files, but
no more code changes are necessary.

Thanks,
David Shipman
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20061215/ca4db4ff/attachment.html>


More information about the llvm-dev mailing list