#29156 closed submission (fixed)
dragonegg-gcc45 package
Reported by: | howarth@… | Owned by: | macports-tickets@… |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 1.9.2 |
Keywords: | lang | Cc: | mww@…, ryandesign (Ryan Carsten Schmidt) |
Port: | dragonegg-gcc45 |
Description
The attached packaging builds the dragonegg trunk svn plugin. The dragonegg 2.9 release is missing changes required to build on case-insensitive file systems like HFS. Thus the packaging uses svn to build dragonegg trunk which also contains a number of other recent fixes for the -fplugin-arg-dragonegg-enable-gcc-optzns which provides additional optimizations from the FSF gcc front end. A patch is applied to allow dragon egg turnk svn to build against llvm 2.9. Also a number of wrappers are installed to provide easy access to the dragonegg plugin. These are currently named de-gcc45, etc.
Attachments (2)
Change History (8)
Changed 14 years ago by howarth@…
Attachment: | dragonegg_llvm29_compat.diff added |
---|
comment:1 Changed 14 years ago by howarth@…
Note that this package requires the new gcc45 packaging from #29154 in order to build. The current gcc45 package doesn't install a necessary plugin header due to a known upstream defect in FSF gcc.
comment:2 Changed 14 years ago by howarth@…
A few other notes. The stock usage of dragonegg is very stable with no known bugs. The resulting code will be somewhat (10-20%) slower than FSF gcc 4.5 on average due to the fact that the optimizations aren't applied in the gcc front end. The -fplugin-arg-dragonegg-enable-gcc-optzns option can be used to enable these front end optimizations to the generated GIMPLE but isn't fully debugged yet. However, the performance can be faster than even FSF gcc 4.6.0 under FSF gcc 4.5.2. For example, the himenoBMTxpa benchmark with -fomit-frame-pointer -O3 -ffast-math -funroll-loops shows...
compiler MFLOPS clang 2.9 230.529385 gcc 4.5.3 246.064891 de-gcc 4.5.3 204.845864 de-gcc 4.5.3 optzns 259.672855 gcc 4.6.0 260.344783
The interactions between the optimizers are quite complex. Currently for this benchmark, the best results are from just...
de-gcc45 -fomit-frame-pointer -O2 -fplugin-arg-dragonegg-enable-gcc-optzns 276.676232
which is significantly faster than the latest FSF gcc release.
comment:3 Changed 14 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | mww@… ryandesign@… added |
---|
You can drop the line
depends_run port:gcc45 port:llvm
since you already have the line
depends_lib port:gcc45 port:llvm
which implies it.
You should drop the revision
line since the initial revision of any given version of a port should be 0 not 1.
Do you expect to be making additional versions of this port, for other versions of gcc? (gcc46, gcc44, etc.)
comment:4 Changed 14 years ago by howarth@…
Currently dragonegg can only be built under gcc 4.5.x. since the gcc plugin feature was only introduced in FSF gcc 4.5.0. Current dragon egg trunk svn hasn't been ported to build under gcc 4.6.x and there is no timeline yet for that feature. My own emphasis has been to push for fixing -fplugin-arg-dragonegg-enable-gcc-optzns related bugs first.
comment:5 Changed 13 years ago by Veence (Vincent)
Resolution: | → fixed |
---|---|
Status: | new → closed |
Done in r82192.
patch for llvm 2.9 compatibility for dragonegg trunk svn