diff options
author | Mikhail Glushenkov <foldr@codedgers.com> | 2009-03-03 10:02:53 +0000 |
---|---|---|
committer | Mikhail Glushenkov <foldr@codedgers.com> | 2009-03-03 10:02:53 +0000 |
commit | 178b00ce503c22a2b3471eabdc188e7b315324e7 (patch) | |
tree | ee5514c1281c37f44bc26ce0dfe90b68976ca4dd /tools/llvmc/example | |
parent | e9742d2f6c21522afda3a5c79936b9469be3e6d3 (diff) | |
download | llvm-178b00ce503c22a2b3471eabdc188e7b315324e7.tar.gz llvm-178b00ce503c22a2b3471eabdc188e7b315324e7.tar.bz2 llvm-178b00ce503c22a2b3471eabdc188e7b315324e7.tar.xz |
Move example plugins to the example/ directory.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65939 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/llvmc/example')
-rw-r--r-- | tools/llvmc/example/Hello/Hello.cpp | 30 | ||||
-rw-r--r-- | tools/llvmc/example/Hello/Makefile | 14 | ||||
-rw-r--r-- | tools/llvmc/example/Simple/Makefile | 15 | ||||
-rw-r--r-- | tools/llvmc/example/Simple/PluginMain.cpp | 1 | ||||
-rw-r--r-- | tools/llvmc/example/Simple/Simple.td | 30 |
5 files changed, 90 insertions, 0 deletions
diff --git a/tools/llvmc/example/Hello/Hello.cpp b/tools/llvmc/example/Hello/Hello.cpp new file mode 100644 index 0000000000..395ef9bbd4 --- /dev/null +++ b/tools/llvmc/example/Hello/Hello.cpp @@ -0,0 +1,30 @@ +//===- Hello.cpp - Example code from "Writing an LLVM Pass" ---------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// Test plugin for LLVMC. Shows how to write plugins without using TableGen. +// +//===----------------------------------------------------------------------===// + +#include "llvm/CompilerDriver/CompilationGraph.h" +#include "llvm/CompilerDriver/Plugin.h" + +#include <iostream> + +namespace { +struct MyPlugin : public llvmc::BasePlugin { + void PopulateLanguageMap(llvmc::LanguageMap&) const + { std::cout << "Hello!\n"; } + + void PopulateCompilationGraph(llvmc::CompilationGraph&) const + {} +}; + +static llvmc::RegisterPlugin<MyPlugin> RP("Hello", "Hello World plugin"); + +} diff --git a/tools/llvmc/example/Hello/Makefile b/tools/llvmc/example/Hello/Makefile new file mode 100644 index 0000000000..10325e6a6d --- /dev/null +++ b/tools/llvmc/example/Hello/Makefile @@ -0,0 +1,14 @@ +##===- tools/llvmc/plugins/Hello/Makefile ------------------*- Makefile -*-===## +# +# The LLVM Compiler Infrastructure +# +# This file is distributed under the University of Illinois Open Source +# License. See LICENSE.TXT for details. +# +##===----------------------------------------------------------------------===## + +LEVEL = ../../../.. + +LLVMC_PLUGIN = Hello + +include $(LEVEL)/Makefile.common diff --git a/tools/llvmc/example/Simple/Makefile b/tools/llvmc/example/Simple/Makefile new file mode 100644 index 0000000000..d7adb5d851 --- /dev/null +++ b/tools/llvmc/example/Simple/Makefile @@ -0,0 +1,15 @@ +##===- tools/llvmc/plugins/Simple/Makefile -----------------*- Makefile -*-===## +# +# The LLVM Compiler Infrastructure +# +# This file is distributed under the University of Illinois Open Source +# License. See LICENSE.TXT for details. +# +##===----------------------------------------------------------------------===## + +LEVEL = ../../../.. + +LLVMC_PLUGIN = Simple +BUILT_SOURCES = AutoGenerated.inc + +include $(LEVEL)/Makefile.common diff --git a/tools/llvmc/example/Simple/PluginMain.cpp b/tools/llvmc/example/Simple/PluginMain.cpp new file mode 100644 index 0000000000..add8acb4a5 --- /dev/null +++ b/tools/llvmc/example/Simple/PluginMain.cpp @@ -0,0 +1 @@ +#include "AutoGenerated.inc" diff --git a/tools/llvmc/example/Simple/Simple.td b/tools/llvmc/example/Simple/Simple.td new file mode 100644 index 0000000000..b974cbc95e --- /dev/null +++ b/tools/llvmc/example/Simple/Simple.td @@ -0,0 +1,30 @@ +// A simple wrapper for gcc. +// To compile, use this command: +// +// $ cd $LLVMC2_DIR +// $ make DRIVER_NAME=mygcc BUILTIN_PLUGINS=Simple +// +// To build this plugin as a dynamic library: +// +// $ cd $LLVMC2_DIR +// $ make BUILTIN_PLUGINS="" +// $ cd plugins/Simple +// $ make +// +// Run as: +// +// $ llvmc2 -load $LLVM_DIR/Release/lib/LLVMCSimple.so + +include "llvm/CompilerDriver/Common.td" + +def gcc : Tool< +[(in_language "c"), + (out_language "executable"), + (output_suffix "out"), + (cmd_line "gcc $INFILE -o $OUTFILE"), + (sink) +]>; + +def LanguageMap : LanguageMap<[LangToSuffixes<"c", ["c"]>]>; + +def CompilationGraph : CompilationGraph<[Edge<"root", "gcc">]>; |