llvm-poolalloc compilation failed

I tried to compile the currently checked in version of llvm-poolalloc with the curently checked in version of llvm and got the following errors:

llvm[4]: Compiling Heuristic.cpp for Debug build (PIC)
Heuristic.cpp: In function 'bool Wants8ByteAlignment(const llvm::Type*, unsigned int, const llvm::TargetData&)':
Heuristic.cpp:77: error: 'const class llvm::TargetData' has no member named 'getTypeAlignment'

There seem to be 3 methods in TargetData that are close to getTypeAlignment(): getTypeAlignmentABI (), getTypeAlignmentPref (), getTypeAlignmentShift (). Does anyone working on llvm-poolalloc know what method should be used.

Thanks,
Ryan

I tried to compile the currently checked in version of llvm-poolalloc
with the curently checked in version of llvm and got the following errors:

llvm[4]: Compiling Heuristic.cpp for Debug build (PIC)
Heuristic.cpp: In function 'bool Wants8ByteAlignment(const llvm::Type*,
unsigned int, const llvm::TargetData&)':
Heuristic.cpp:77: error: 'const class llvm::TargetData' has no member
named 'getTypeAlignment'

The getTypeAlignment method was renamed to getTypeAlignmentABI, it should be safe to make that substitution.

-Chris

There seem to be 3 methods in TargetData that are close to
getTypeAlignment(): getTypeAlignmentABI (), getTypeAlignmentPref (),
getTypeAlignmentShift (). Does anyone working on llvm-poolalloc know
what method should be used.

Thanks,
Ryan
_______________________________________________
LLVM Developers mailing list
LLVMdev@cs.uiuc.edu http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev

-Chris

This kind of regression is a fallout of having some code live in separate CVS modules as “projects.” It would help to have someone volunteer to maintain each project, which can be as little as making sure it continues to compile or as much as supporting it with answers to questions and bug fixes. Here is the current list of projects:

llvm-poolalloc
llvm-java (currently unused AFAIK)
llvm-stacker
llvm-tv

Would anyone like to volunteer for one or more of these?

–Vikram

http://www.cs.uiuc.edu/~vadve

http://llvm.cs.uiuc.edu/

Vikram S. Adve wrote:

This kind of regression is a fallout of having some code live in separate CVS modules as "projects." It would help to have someone volunteer to maintain each project, which can be as little as making sure it continues to compile or as much as supporting it with answers to questions and bug fixes. Here is the current list of projects:

I've been using the llvm-poolalloc project in my work and have currently been keeping it up to date. However, mainline LLVM CVS has been moving faster than I'm able to keep up; constantly updating llvm-poolalloc every time mainline LLVM has changed has proved too time consuming. I've decided that it's better to update once mainline has stabalized (and I've got more time).

So, for now, I'm using LLVM 1.9 (technically, the release_19 branch, which is identical to LLVM 1.9 except that DSA has been moved from the LLVM source base to the Pool Allocation project). Using the release_19 branch of the llvm and llvm-poolalloc modules should give you something that compiles and (hopefully) works.

To get it, download the llvm-gcc3 or llvm-gcc4 frontend from the website and then grab the LLVM/PoolAllocation source using the following commands:

cvs -d :pserver:anon@llvm.org:/var/cvs/llvm login
<Hit return for an empty password>
cvs -d :pserver:anon@llvm.org:/var/cvs/llvm co -r release_19 llvm
cd llvm/projects
cvs -d :pserver:anon@llvm.org:/var/cvs/llvm co -r release_19 llvm-poolalloc

-- John T.

Vikram,

I maintain llvm-stacker and keep it checked out in my build trees. I
will continue to update it if it gets broken.

Reid.

Chris,

I performed the steps you gave below to check out llvm-poolalloc. When I want to get new updates made to llvm-poolalloc, do I perform the following commands?

cvs -d :pserver:anon@llvm.org:/var/cvs/llvm login
<Hit return for an empty password>
cd llvm/projects
cvs -d :pserver:anon@llvm.org:/var/cvs/llvm update -r release_19 llvm-poolalloc

In other words, do I specify the -r option to perform an update? Also, how do I produce the doxygen for DSA?

Regards,
Ryan

John T. Criswell wrote:

Chris,

I performed the steps you gave below to check out llvm-poolalloc. When
I want to get new updates made to llvm-poolalloc, do I perform the
following commands?

cvs -d :pserver:anon@llvm.org:/var/cvs/llvm login
<Hit return for an empty password>

If you've already checked it out, you shouldn't need to login again. CVS
will remember you rlogin.

cd llvm/projects
cvs -d :pserver:anon@llvm.org:/var/cvs/llvm update -r release_19 llvm-poolalloc

The -r option specifies the revision you want to check out. If you don't
specify it then you get the latest revision of each file (the "HEAD").
If you specify a symbolic name like release_19 then you get the version
of each file corresponding to the tag "release_19". So, assuming you
previously checked out with -rrelease_19, this will only update
differences made to that tag since you checked out (probably few or
none).

In other words, do I specify the -r option to perform an update?

It depends on what you want to do:

1. Update to latest version of release 1.9: cvs update
2. Restore version to that of 1.9: cvs update -r release_19
3. Update to head version (latest): cvs update -A

Note that cvs will remember your "sticky tag" (release_19) from your
previous checkout. Item #3 overcomes that by using the -A option to tell
it to forget the sticky tag and really update to the HEAD version (not
the latest version of the tag as in #1)

Also,
how do I produce the doxygen for DSA?

Sorry, don't know about that. Should be just "make install" in the docs
directory like LLVM, but I don't know how the DSA repository is set up.