(Feature DragonEgg has been accepted for F18 by FESCo on the Jun 18 meeting (ticket #865)) |
|||
(6 intermediate revisions by 2 users not shown) | |||
Line 26: | Line 26: | ||
== Detailed Description == | == Detailed Description == | ||
<!-- Expand on the summary, if appropriate. A couple sentences suffices to explain the goal, but the more details you can provide the better. --> | <!-- Expand on the summary, if appropriate. A couple sentences suffices to explain the goal, but the more details you can provide the better. --> | ||
DragonEgg is a | DragonEgg is a GCC plugin that replaces GCC's optimizers and code generators with those from the LLVM project. It can target the x86-32/x86-64 and ARM processor families. It fully supports C, C++ and Fortran. It has partial support for Ada, Go, Java, Obj-C and Obj-C++. | ||
== Benefit to Fedora == | == Benefit to Fedora == | ||
Line 40: | Line 40: | ||
* There should not be any special preparation needed beyond installation of the dragonegg package. | * There should not be any special preparation needed beyond installation of the dragonegg package. | ||
* Compile a few C (or Fortran, etc.) programs using GCC with dragonegg. This is done by invoking GCC in the normal way, but with the addition of a "-fplugin=dragonegg" command line argument. | * Compile a few C (or Fortran, etc.) programs using GCC with dragonegg. This is done by invoking GCC in the normal way, but with the addition of a "-fplugin=dragonegg" command line argument. | ||
* Programs compiled using GCC with dragonegg should produce the same results as those compiled with normal GCC, though the performance may vary since different | * Programs compiled using GCC with dragonegg should produce the same results as those compiled with normal GCC, though the performance may vary since different optimizers and code generators are used. | ||
== User Experience == | == User Experience == | ||
Line 65: | Line 64: | ||
== Comments and Discussion == | == Comments and Discussion == | ||
* See [[Talk:Features/ | * See [[Talk:Features/DragonEgg]] <!-- This adds a link to the "discussion" tab associated with your page. This provides the ability to have ongoing comments or conversation without bogging down the main feature page --> | ||
[[Category: | [[Category:FeatureAcceptedF18]] | ||
<!-- When your feature page is completed and ready for review --> | <!-- When your feature page is completed and ready for review --> | ||
<!-- remove Category:FeaturePageIncomplete and change it to Category:FeatureReadyForWrangler --> | <!-- remove Category:FeaturePageIncomplete and change it to Category:FeatureReadyForWrangler --> | ||
<!-- After review, the feature wrangler will move your page to Category:FeatureReadyForFesco... if it still needs more work it will move back to Category:FeaturePageIncomplete--> | <!-- After review, the feature wrangler will move your page to Category:FeatureReadyForFesco... if it still needs more work it will move back to Category:FeaturePageIncomplete--> | ||
<!-- A pretty picture of the page category usage is at: https://fedoraproject.org/wiki/Features/Policy/Process --> | <!-- A pretty picture of the page category usage is at: https://fedoraproject.org/wiki/Features/Policy/Process --> |
Latest revision as of 11:40, 12 July 2012
DragonEgg
Summary
DragonEgg is a gcc plugin that replaces GCC's optimizers and code generators with those from the LLVM project.
Owner
- Name: Eric Smith
- Email: eric@brouhaha.com
Current status
- Targeted release: Fedora 18
- Last updated: 2012-06-10
- Percentage of completion: 100%
Detailed Description
DragonEgg is a GCC plugin that replaces GCC's optimizers and code generators with those from the LLVM project. It can target the x86-32/x86-64 and ARM processor families. It fully supports C, C++ and Fortran. It has partial support for Ada, Go, Java, Obj-C and Obj-C++.
Benefit to Fedora
Inclusion of DragonEgg in Fedora Linux provides software developers with more optimization and code generation options for use of the GCC compilers with most of languages supported by GCC. DragonEgg also allows GCC to be used for cross-compilation to target architectures supported by LLVM without requiring any special cross-compilation compiler packages.
Scope
Each DragonEgg release is dependent on the corresponding release of LLVM, and also supports specific releases of GCC. The package maintainer will have to track these releases. The DragonEgg feature does not affect other parts of the distribution.
How To Test
- No special hardware/data/etc. is needed.
- There should not be any special preparation needed beyond installation of the dragonegg package.
- Compile a few C (or Fortran, etc.) programs using GCC with dragonegg. This is done by invoking GCC in the normal way, but with the addition of a "-fplugin=dragonegg" command line argument.
- Programs compiled using GCC with dragonegg should produce the same results as those compiled with normal GCC, though the performance may vary since different optimizers and code generators are used.
User Experience
- This package is only applicable to developers, and will not directly affect user experience.
Dependencies
- No other packages presently depend on this feature.
Contingency Plan
- None necessary. DragonEgg can be omitted if there are problems.
Documentation
Release Notes
- DragonEgg is a plugin for the GCC compilers to allow use of the LLVM optimization and code generation framework. DragonEgg provides software developers with more optimization and code generation options for use with the GCC compilers. DragonEgg also allows GCC to be used for cross-compilation to target architectures supported by LLVM without requiring any special cross-compilation compiler packages.