This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
Hello,It is just a feeling. In fact, starting since 4.2, gcc becomes faster (if we ignore LTO). My feeling is that LLVM becomes slower. The gap in compilation speed between GCC4.5 and LLVM2.7 achieves less 10% on x86_64 SPECInt2000 for -O2.
For some time now, I've wanted to see where compile time goes in a
typical GCC build, because nobody really seems to know what the
compiler spends its time on. The impressions that get published about
gcc usually indicate that there is at least a feeling that GCC is not
getting faster, and that parts of the compiler are unreasonably slow.
RA and scheduling is usually the slowest part of optimizing compiler because they solve NP-problems and widely used algorithms (list scheduling and graph coloring) has worst quadratic complexity. For example, here is comparison of how many time LLVM-2.7 passes and analogous GCC passes (although sometime it is hard to find full correspondence) spent onHost was cfarm gcc14 (8 x 3GHz Xeon). Target was x86_64-unknown-linux-gnu. "Build" means non-bootstrap.
Results at the bottom of this mail.
Conclusions:
* The "slow" parts of the compiler are not exactly news: tree-PRE, scheduling, register allocation
I don't know is it big or not to have such time spend in RTL parts. But I think that this RTL part could be decreased if RTL (magically :) would have smaller footprint and contain less details.* Adding and subtracting the above numbers, the rest of the compiler, which is mostly the RTL parts, still account for 100-17-16-8=59% of the total compile time. This was the most surprising result for me.
Thanks for the data. That was interesting to look one more time (from many others) at this.Ciao! Steven
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |