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>