[LLVMdev] patches and scons

Paolo Invernizzi arathorn at fastwebnet.it
Sun Sep 26 10:42:10 PDT 2004


The scons file that I posted yesterday is broken...
I've not taken in account the commit of 2 days ago that modified 
*iterator.in* and friends.

I've updated it and now it works again; inside it you can find comments 
about what files currently
are NOT compiled and why (hint appreciated!)

Attached to this email you can find it and a new series of patches 
against current CVS, that I hope are pretty safe.
If applied you can reach the linking of HowToUseJIT, but there're still 
12 unresolved external.

With major 'hacks' of the skipped files I can reach the complete link, 
but I'll wait till a suitable solution ;-)

===
* Added #include <algorithm>
llvm\lib\CodeGen\LiveInterval.cpp(35) : error C2039: 'upper_bound' : is 
not a member of '_STL'
llvm\lib\Target\TargetSchedInfo.cpp(231) : error C3861: 'sort': 
identifier not found, even with argument-dependent lookup

* Added std:: namespace
llvm\lib\Target\TargetSchedInfo.cpp(231) : error C3861: 'sort': 
identifier not found, even with argument-dependent lookup

* Conversion from dyn_cast to isa+cast
llvm\lib\Target\CBackend\Writer.cpp(1228) : error C2275: 'llvm::PHINode' 
: illegal use of this type as an expression
llvm\lib\Transforms\Scalar\LoopSimplify.cpp(217) : error C2065: 'PN' : 
undeclared identifier ... and subsequents

* Dynamic C99 array to std::vector
llvm\lib\Target\TargetSchedInfo.cpp(178) : error C2057: expected 
constant expression
    I think there's nothing different moving from:
        int classPairGaps[numSchedClasses][numSchedClasses];
    to
        std::vector< std::vector<int> > classPairGaps(numSchedClasses, 
std::vector<int>(numSchedClasses,0));
    there're  also other cases in
llvm\lib\Bytecode\Reader\Reader.cpp(1484) : error C2057: expected 
constant expression
llvm/lib/CodeGen/LiveVariables.cpp', # MachineInstr 
*PhysRegInfoA[RegInfo->getNumRegs()]; C99
    but they are too complicated for this evening ;-)

* IsInf.cpp
    VC has _finite in <float.h>. I think it's needed to integrate the 
#if dance in IsInf.cpp with

  #elif HAVE__FINITE_IN_FLOAT_H
  # include <float.h>
  static int isinf(double x) { return !_finite(x); }

* IsNan.cpp
  Same as above. VC has _isnan(x), so it's needed

  #elif HAVE__ISNAN_IN_FLOAT_H
  # include <float.h>
  static int isnan(double x) { return _isnan(x); }
  #else

Right now I'm defining that defines flags directly when compiling the 
files, but I think it would be better to add them to the configure.h.in 
file.

* struct to classes due to link errors
  include\llvm\CodeGen\IntrinsicLowering.h:  struct IntrinsicLowering -> 
class IntrinsicLowering { public:
  include\llvm\Type.h: struct Type -> class Type { public:
  include/llvm/Target/TargetJITInfo.h: struct TargetJITInfo -> class 
TargetJITInfo { public:

---
Paolo Invernizzi
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: SConstruct
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20040926/663d431b/attachment.ksh>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: diffs.txt
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20040926/663d431b/attachment.txt>


More information about the llvm-dev mailing list