-
Notifications
You must be signed in to change notification settings - Fork 12.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
llvmc enhancements needed #1058
Comments
Here's a radical idea: use TableGen. TableGen's facilities could be used to generate code that can be compiled and This would give us a powerful configuration language plus the speed of compiled Standard languages would be provided with llvmc and compiled directly into it. |
Some brief thoughts:
The basic way I see implementing this is to treat this as a graph. The nodes in the graph are the different The edges of this graph should be annotated with target triple regex's, so that a different assembler could The edges in this graph are often redundant: e.g. if we have a macho writer, you can get from .bc to .o llvmc should be concerned with determining the shortest path on this graph and running the appropriate -Chris |
Another crazy idea: use scons :) Surely, we cannot use it directly, since it's We can have 4 basic objects:
Each object's meaning is straightforward (modulo implementation details). We've |
Anton, Are you working on this (#686 )? If so, please assign it to yourself and let us If not, could let me know where you left off? Thanks, Reid |
Reid, This definitely won't be ready before 2.0. Currently Roman is working on |
*** Bug llvm/llvm-bugzilla-archive#1732 has been marked as a duplicate of this bug. *** |
I really think this can be closed now. Any objections? :) |
go for it |
The basic ideas listed here were really implemented and overall design looks pretty promising. |
changed the description |
llvm#1058 MachineMemOperandの無いload/store命令に依存を付加する See merge request a64fx-swpl/llvm-project!4
Extended Description
We want llvmc to be more configurable by including target-specific as well as
language-specific configuration information. Additionally, the configuration
data needs to be compiled in by default so we're not always reading a whole
bunch of text files on every llvmc invocation. That said, the config files need
to be retained as well as allowing compiled dynamic loading of the configuration
information.
Consequently, the following enhancements to llvmc regarding its configuration
are requested:
Enhance llvmc to handle target-specific configuration data as well. Target
triples should be used to identify the platform/machine. The configuration
data for targets would specify things like native linker and assembler
command line invocation options for a variety of tasks.
Create a set of C++ classes to represent the configuration of the driver.
These classes must provide constructors that utilize strings or enums so that
it is possible to create a highly readable configuration file in C++.
Compile in a set of instances of the C++ configuration classes (# 1) as the
standard configuration that supports known languages and targets.
Allow dynamic libraries of those config classes to be loaded at runtime via a
command line option to specify either a file or a directory full of files.
This allows non-supported or experimental targets and languages to have their
own compiled configuration module to go along with the target or language's
extension to LLVM.
Allow a textual representation of the configurations to be parsed that
converts the text into corresponding C++ object instances that are merged in
with other configuration data provided. Text file configuration is specified
with command line argument.
Allow an object representation of configuration data to print itself in the
textual format. Use this to permit reproduction of llvmc's configuration data
in a human readable format.
Consider making the entire configuration mechanism a separate library or a
support utility rather than placing it in llvmc directly.
The text was updated successfully, but these errors were encountered: