I'd be happy to contribute more and in fact, there are lots of things I
could and would contribute. Pretty much the only thing that stops me is
the project's CVS policy.
Wow, I really had no idea that this was such a problem!
(erm, perhaps I'm just over-booked? 
Heh, I know a little bit of that feeling 
I need some efficiency if I'm to do anything. From my perspective, the
process is _way_ more efficient if I can just create a branch, do what I
need to do and then tell you "look at branch xyz and merge if you like
it".
Okay, that makes sense.
Its possible with CVS to restrict access to main line commits to
certain users so you can still maintain control of the main development
trend.
The problem is that CVS was not at all designed for this. It certainly is
possible to hack it enough with the right set of scripts though, and
several projects have them.
Furthermore, providing CVS access should reduce your administrative
burden. Instead of patching a pile of individual files, you can simply
look at the changes introduced by a branch and decide if its something
you want to keep or inform the branch author of the things that need to
be modified.
That would certainly be nice. 
I understand the University has certain legal restrictions about
granting access to non-student and non-faculty users. That may be the
trump card that prevents wider use of CVS by contributors to LLVM.
Unfortunately this is a big problem.
If that is the case, I would suggest that (a) the project simply accept
that contributions from others will be minimal or
Hrm, that's not very attractive 
(b) move the CVS repository somewhere that doesn't have the University's
restrictions. That last option, however, may have additional
intellectual property issues.
I don't think that there would be IP issues: LLVM is (effectively) BSD
licensed, so it could be forked at any time without a problem. This would
obviously be very bad for LLVM, but it's possible.
The more I've thought about this, the more that I'm beginning to realize
that CVS is the root of the problem. Perhaps it is time for LLVM to
seriously start looking at switching over to a decentralized version
control system? I really am not "up" on the various options, but I've
heard rumars that there are now several good options.
Take 'arch' for example: its approach seems like it would solve almost all
of the version control issues that we are facing, and supports
decentralized development in particular. From what I understand, you
would be able to do all of your development on your own "local" branch,
others could have access to it, and when it's ready, we could pull it in
as one big patch or set of changes.
From your perspective, would this solve the problem? I used arch just as
an example, I'm sure there are others (bitkeeper at least supports these
features, but has unattractive licensing issues).
If it is really time to switch version control systems we probably should
have someone do some research and find out which one is the most
appropriate. Assuming that we can come up with a reasonable transition
phase, I think that this could be done.
-Chris