[llvm-commits] [gcc-plugin] r82450 - in /gcc-plugin/trunk/utils: ./ target.cpp
Sandeep Patel
deeppatel1987 at gmail.com
Mon Sep 21 11:38:33 PDT 2009
Would it make sense to use command line options that resemble those
used with uname?
deep
On Mon, Sep 21, 2009 at 9:40 AM, Duncan Sands <baldrick at free.fr> wrote:
> Author: baldrick
> Date: Mon Sep 21 04:40:06 2009
> New Revision: 82450
>
> URL: http://llvm.org/viewvc/llvm-project?rev=82450&view=rev
> Log:
> Add a helper for printing info extracted from the
> target triple.
>
> Added:
> gcc-plugin/trunk/utils/
> gcc-plugin/trunk/utils/target.cpp
>
> Added: gcc-plugin/trunk/utils/target.cpp
> URL: http://llvm.org/viewvc/llvm-project/gcc-plugin/trunk/utils/target.cpp?rev=82450&view=auto
>
> ==============================================================================
> --- gcc-plugin/trunk/utils/target.cpp (added)
> +++ gcc-plugin/trunk/utils/target.cpp Mon Sep 21 04:40:06 2009
> @@ -0,0 +1,68 @@
> +#include <cstring>
> +#include <iostream>
> +
> +#include <llvm/ADT/Triple.h>
> +
> +using namespace llvm;
> +
> +static void PrintTriple(Triple &T) {
> + std::cout << T.getTriple() << "\n";
> +}
> +static void PrintArchName(Triple &T) {
> + std::cout << T.getArchName().str() << "\n";
> +}
> +static void PrintVendorName(Triple &T) {
> + std::cout << T.getVendorName().str() << "\n";
> +}
> +static void PrintOSName(Triple &T) {
> + std::cout << T.getOSName().str() << "\n";
> +}
> +static void PrintEnvironmentName(Triple &T) {
> + std::cout << T.getEnvironmentName().str() << "\n";
> +}
> +static void PrintOSAndEnvironmentName(Triple &T) {
> + std::cout << T.getOSAndEnvironmentName().str() << "\n";
> +}
> +static void PrintArchTypePrefix(Triple &T) {
> + std::cout << T.getArchTypePrefix(T.getArch()) << "\n";
> +}
> +
> +struct Option {
> + const char *Name;
> + void (*Action)(Triple &);
> +};
> +
> +static Option Options[] = {
> + { "-t", PrintTriple },
> + { "-a", PrintArchName },
> + { "-v", PrintVendorName },
> + { "-o", PrintOSName },
> + { "-e", PrintEnvironmentName },
> + { "-oe", PrintOSAndEnvironmentName },
> + { "-p", PrintArchTypePrefix },
> + { NULL, NULL }
> +};
> +
> +int main(int argc, char **argv) {
> + Triple T(TARGET_NAME);
> +
> + for (int i = 1; i < argc; ++i) {
> + bool Found = false;
> + for (Option *O = Options; O->Name; ++O)
> + if (!strcmp(argv[i], O->Name)) {
> + Found = true;
> + O->Action(T);
> + break;
> + }
> + if (!Found) {
> + std::cerr << "Unknown option \"" << argv[i] << "\"\n";
> + std::cerr << "Usage: " << argv[0];
> + for (Option *O = Options; O->Name; ++O)
> + std::cerr << " " << O->Name;
> + std::cerr << "\n";
> + return 1;
> + }
> + }
> +
> + return 0;
> +}
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
More information about the llvm-commits
mailing list