diff options
author | Reid Spencer <rspencer@reidspencer.com> | 2006-05-31 17:32:21 +0000 |
---|---|---|
committer | Reid Spencer <rspencer@reidspencer.com> | 2006-05-31 17:32:21 +0000 |
commit | 178a81576c9b0935b9cc397ce51dbbf2126fe53b (patch) | |
tree | b6a2b9ff188ed7b8fe56ebdcd5240a36fed127a7 /docs/CommandGuide | |
parent | 12803f5b6b4e6c53fac0d083546a1a53ef703cb1 (diff) | |
download | external_llvm-178a81576c9b0935b9cc397ce51dbbf2126fe53b.zip external_llvm-178a81576c9b0935b9cc397ce51dbbf2126fe53b.tar.gz external_llvm-178a81576c9b0935b9cc397ce51dbbf2126fe53b.tar.bz2 |
Update the documentation for llvm2cpp after the -gen-* options were added.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28590 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs/CommandGuide')
-rw-r--r-- | docs/CommandGuide/llvm2cpp.pod | 122 |
1 files changed, 108 insertions, 14 deletions
diff --git a/docs/CommandGuide/llvm2cpp.pod b/docs/CommandGuide/llvm2cpp.pod index 0dc30ac..9d8059d 100644 --- a/docs/CommandGuide/llvm2cpp.pod +++ b/docs/CommandGuide/llvm2cpp.pod @@ -57,19 +57,17 @@ will overwrite the output file and replace it with new C++ source code. Print a summary of command line options. +=item B<-f> + +Normally, B<llvm2cpp> will not overwrite an existing output file. With this +option, that default behavior is changed and the program will overwrite existing +output files. + =item B<-o> F<filename> Specify the output file name. If F<filename> is C<->, then B<llvm2cpp> sends its output to standard output. -=item B<-modname> F<moduleName> - -Specify the name of the module to be generated. Normally the generated program -creates a module that has the same name as the input file. If the input file was -read from the standard input then the module name will be '<stdin>'. This option -overrides both these default actions and specifies that the module name used -must be F<moduleName>. - =item B<-funcname> F<functionName> Specify the name of the function to be generated. The generated code contains a @@ -80,11 +78,107 @@ with the B<-fragment> option when you only want B<llvm2cpp> to generate a single function that produces the module. With both options, such generated code could be I<#included> into another program. -=item B<-fragment> +=item B<-for> + +Specify the name of the thing for which C++ code should be generated. By default +the entire input module is re-generated. However, use of the various B<-gen-*> +options can restrict what is produced. This option indicates what that +restriction is. + +=item B<-gen-program> + +Specify that the output should be a complete program. Such program will recreate +B<llvm2cpp>'s input as an LLVM module, verify that module, and then write out +the module in LLVM assembly format. This is useful for doing identity tests +where the output of the generated program is identical to the input to +B<llvm2cpp>. The LLVM DejaGnu test suite can make use of this fact. This is the +default form of generated output. + +If the B<-for> option is given with this option, it specifies the module +identifier to use for the module created. + +=item B<-gen-module> + +Specify that the output should be a function that regenerates the module. It is +assumed that this output will be #included into another program that has already +arranged for the correct header files to be #included. The function generated +takes no arguments and returns a I<Module*>. + +If the B<-for> option is given with this option, it specifies the module +identifier to use in creating the module returned by the generated function. + +=item B<-gen-contents> + +Specify that the output should be a function that adds the contents of the input +module to another module. It is assumed that the output will be #included into +another program that has already arranged for the correct header files to be +#included. The function generated takes a single argument of type I<Module*> and +returns that argument. Note that Module level attributes such as endianess, +pointer size, target triple and inline asm are not passed on from the input +module to the destination module. Only the sub-elements of the module (types, +constants, functions, global variables) will be added to the input module. + +If the B<-for> option is given with this option, it specifies the module +identifier to set in the input module by the generated function. + +=item B<-gen-function> + +Specify that the output should be a function that produces the definitions +necessary for a specific function to be added to a module. It is assumed that +the output will be #included into another program that has already arranged +for the correct header files to be #included. The function generated takes a +single argument of type I<Module*> and returns the I<Function*> that it added to +the module. Note that only those things (types, constants, etc.) directly +needed in the definition of the function will be placed in the generated +function. + +The B<-for> option must be given with this option or an error will be produced. +The value of the option must be the name of a function in the input module for +which code should be generated. If the named function does not exist an error +will be produced. + +=item B<-gen-variable> + +Specify that the output should be a function that produces the definitions +necessary for a specific global variable to be added to a module. It is assumed +that the output will be #included into another program that has already arranged +for the correct header files to be #included. The function generated takes a +single argument of type I<Module*> and returns the I<GlobalVariable*> that it +added to the module. Note that only those things (types, constants, etc.) +directly needed in the definition of the global variable will be placed in the +generated function. + +The B<-for> option must be given with this option or an error will be produced. +THe value of the option must be the name of a global variable in the input +module for which code should be generated. If the named global variable does not +exist an error will be produced. + +=item B<-gen-type> + +Specify that the output should be a function that produces the definitions +necessary for specific type to be added to a module. It is assumed that the +otuput will be #included into another program that has already arranged for the +correct header files to be #included. The function generated take a single +argument of type I<Module*> and returns the I<Type*> that it added to the +module. Note that the generated function will only add the necessary type +definitions to (possibly recursively) define the requested type. + +The B<-for> option must be given with this option or an error will be produced. +The value of the option must be the name of a global type in the input module +for which code should be generated. If the named type does not exist an error +will be produced. + +=item B<-stats> + +Show pass statistics (not interesting in this program). + +=item B<-time-passes> + +Show pass timing statistics (not interesting in this program). + +=item B<-version> -This boolean option tells B<llvm2cpp> to generate only a program fragment. By -deault B<llvm2cpp> generates a full program. With this option specified, only a -single function that generates the input module will be generated. +Show the version number of this program. =back @@ -95,10 +189,10 @@ occurs, it will exit with a non-zero value. =head1 SEE ALSO -L<llvm-as|llvm-as> +L<llvm-as|llvm-as> L<tblgen|tblgen> =head1 AUTHORS -Maintained by the LLVM Team (L<http://llvm.org>). +Written by Reid Spencer (L<http://hlvm.org>). =cut |