[LLVMdev] Antw.: 2.0 Pre-release tarballs online
Tanya M. Lattner
tonic at nondot.org
Thu May 17 16:47:59 PDT 2007
> 3) Compile llvm-gcc4 and llvm from source. Run 'make check'.
>
> On Slackware 10.2 (GCC 3.3.6), I got an error during a debug build with
> the header files using uintptr_t (not recognised as a type). Putting
> "#include <stdint.h>" in include/llvm/BasicBlock.h (llvm) and in
> "include/llvm/ValueSymbolTable.h" (frontend) resolved this.
>
> Also, I got linking errors while linking tblgen (see error.txt). Any ideas
> about this?
I'll look into these two in a bit. Thanks!
> Results of "make check" (without tblgen; see x86.log):
>
> === Summary ===
> # of expected passes 1423
> # of unexpected failures 25
> # of expected failures 3
Can you verify that you have llvm-gcc in your path and that its the 2.0
llvm-gcc? The errors are mostly saying the tests couldnt find llvm-gcc and
also the path looked like a 1.9 one.
Thanks,
Tanya
>
> It would also be helpful for someone to compile/test with objdir !=
> srcdir.
>
> Both builds above happened in a directory separate from the source
> directory.
>
> About LTO support: the new release documents don't mention anything about
> this. Also, the relevant bugzilla entries I could find date back to March
> 2007. Has any progress been made recently in adding LTO to the Darwin
> linker and/or GNU binutils?
>
> About porting from 1.9 to 2.0: it would be helpful to have some kind of
> porting guide as I encountered a lot of API changes, e.g.:
> * SymbolTable.h has vanished
> * Type::IntTy, Type::UIntTy, Type::SByteTy, ... are replaced by
> Type::Int8Ty, ... How does one keep code portable with the various
> TypeIntXTy's?
> * GetElementPtrInst's constructor doesn't accept an std::vector anymore
> but requires explicit arguments.
> * CastInst is now abstract and its functionality is split into several
> parts. What to choose when casting a pointer to a double pointer? Is it
> always clear which cast instruction is the right one (e.g. when exact
> Value is only known at run-time)?
> * Instruction::getNext()/Prev() have suddenly become private, seemingly
> without fast, easy to use alternative. Is iterating through the parent
> BasicBlock's iterator the only solution?
> * The same goes for BasicBlock::getNext()/Prev(). Is iterating through
> the parent Function's iterator the only solution?
> * CallInst's constructors do not accept vectors anymore, but a double
> pointer (!) instead. Why?
> * Module::getNamedFunction() is now called Module::getFunction().
> * llvm/Transforms/Utils/Cloning.h's CloneFunctionInto() needs a
> DenseMap as its third argument instead of an STL map.
> * Pass's constructor now needs an intptr_t as explained in the updated
> "Write your first pass"-document.
> * In my own code, I can't use cout anymore without the std:: prefix.
> * ConstantBool/Integral/Int are merged into ConstantInt.
> * %llvm.dbg.subprogram.type's line number is now the 7th element;
> its compile unit is now the 6th element.
> * Argument names have got their argument index appended to their name in
> the LLVM bitcode (e.g. "define void @f(i32 %Arg1, i32 %OtherArg2) {...}"
> instead of "define void @f(i32 %Arg, i32 %OtherArg) {...}").
> * ... (there is probably more, as my app compiles by now, but is still
> broken)
>
> Kind regards,
>
> Bram Adams
> GH-SEL, INTEC, Ghent University (Belgium)
> 
>
More information about the llvm-dev
mailing list