[LLVMbugs] [Bug 181] C front-end has an inefficient implementation of the LLVM type-system
bugzilla-daemon at zion.cs.uiuc.edu
bugzilla-daemon at zion.cs.uiuc.edu
Sun Dec 14 12:14:25 PST 2003
http://llvm.cs.uiuc.edu/bugs/show_bug.cgi?id=181
sabre at nondot.org changed:
What |Removed |Added
----------------------------------------------------------------------------
Severity|normal |major
Status|ASSIGNED |RESOLVED
Resolution| |FIXED
Summary|C++ front-end has a very |C front-end has an
|inefficient implementation |inefficient implementation
|of the LLVM type-system |of the LLVM type-system
------- Additional Comments From sabre at nondot.org 2003-12-14 14:14 -------
I hate to say it, but I think that this patch should go into the 1.1 version of
the C-Frontend, at least in the source tarball and X86 binary front-end. It is
strictly a performance improvement, but it is so substantial, it would be very
bad to not include it. I would like to be able to say that 1.1 is _the_ C++
release. The 1.1 tarballs of the CVS tree are fine, and should not be updated.
All the patch (which is attached to the PR) does is use hashtables instead of
searching a gigantic linked-list, so it is quite simple, passes all of the
tests, and should be low risk.
On one C++ testcase, for example, we get this result:
$ time llvmg++ generate-3.4.ii -c
184.939u 0.587s 3:25.71 90.1% 0+0k 0+0io 2187pf+0w
[zion ~/tmp]$ time llvmg++ generate-3.4.ii -c
31.830u 0.335s 0:32.21 99.8% 0+0k 0+0io 2191pf+0w
Note that 18.19 of the 32.21 seconds is spent in gccas, so the time shrink in
the C front-end is _huge_ (187.52s -> 14.02s). Without this patch, compiling
C++ programs is just too unreasonably slow.
-Chris
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
More information about the llvm-bugs
mailing list