[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


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.


------- 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