mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-26 07:24:25 +00:00
llvmc: Update examples.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111553 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -11,4 +11,8 @@ LEVEL = ../..
|
|||||||
|
|
||||||
DIRS = src
|
DIRS = src
|
||||||
|
|
||||||
|
ifeq ($(BUILD_EXAMPLES),1)
|
||||||
|
OPTIONAL_DIRS += examples
|
||||||
|
endif
|
||||||
|
|
||||||
include $(LEVEL)/Makefile.common
|
include $(LEVEL)/Makefile.common
|
||||||
|
@ -1,33 +0,0 @@
|
|||||||
//===- Hello.cpp - Example code from "Writing an LLVMC Plugin" ------------===//
|
|
||||||
//
|
|
||||||
// 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 "llvm/Support/raw_ostream.h"
|
|
||||||
|
|
||||||
namespace {
|
|
||||||
struct MyPlugin : public llvmc::BasePlugin {
|
|
||||||
|
|
||||||
void PreprocessOptions() const
|
|
||||||
{}
|
|
||||||
|
|
||||||
void PopulateLanguageMap(llvmc::LanguageMap&) const
|
|
||||||
{ outs() << "Hello!\n"; }
|
|
||||||
|
|
||||||
void PopulateCompilationGraph(llvmc::CompilationGraph&) const
|
|
||||||
{}
|
|
||||||
};
|
|
||||||
|
|
||||||
static llvmc::RegisterPlugin<MyPlugin> RP("Hello", "Hello World plugin");
|
|
||||||
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
#include "AutoGenerated.inc"
|
|
@ -1,24 +0,0 @@
|
|||||||
##===- llvmc/example/Skeleton/Makefile ---------------------*- Makefile -*-===##
|
|
||||||
#
|
|
||||||
# The LLVM Compiler Infrastructure
|
|
||||||
#
|
|
||||||
# This file is distributed under the University of Illinois Open
|
|
||||||
# Source License. See LICENSE.TXT for details.
|
|
||||||
#
|
|
||||||
##===----------------------------------------------------------------------===##
|
|
||||||
|
|
||||||
# Change this so that $(BASE_LEVEL)/Makefile.common refers to
|
|
||||||
# $LLVM_DIR/Makefile.common or $YOUR_LLVM_BASED_PROJECT/Makefile.common.
|
|
||||||
export LLVMC_BASE_LEVEL = ../../../..
|
|
||||||
|
|
||||||
# Change this to the name of your LLVMC-based driver.
|
|
||||||
export LLVMC_BASED_DRIVER_NAME = llvmc-skeleton
|
|
||||||
|
|
||||||
# List your plugin names here
|
|
||||||
export LLVMC_BUILTIN_PLUGINS = # Plugin
|
|
||||||
|
|
||||||
LEVEL = $(LLVMC_BASE_LEVEL)
|
|
||||||
|
|
||||||
DIRS = plugins driver
|
|
||||||
|
|
||||||
include $(LEVEL)/Makefile.common
|
|
@ -1,13 +0,0 @@
|
|||||||
##===- llvmc/example/Skeleton/driver/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_BASE_LEVEL)/..
|
|
||||||
LLVMC_BASED_DRIVER = $(LLVMC_BASED_DRIVER_NAME)
|
|
||||||
|
|
||||||
include $(LEVEL)/Makefile.common
|
|
@ -1,18 +0,0 @@
|
|||||||
##===- llvmc/example/Skeleton/plugins/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_BASE_LEVEL)/..
|
|
||||||
|
|
||||||
ifneq ($(LLVMC_BUILTIN_PLUGINS),)
|
|
||||||
DIRS = $(LLVMC_BUILTIN_PLUGINS)
|
|
||||||
endif
|
|
||||||
|
|
||||||
export LLVMC_BUILTIN_PLUGIN=1
|
|
||||||
|
|
||||||
include $(LEVEL)/Makefile.common
|
|
@ -1 +0,0 @@
|
|||||||
#include "AutoGenerated.inc"
|
|
@ -1,18 +0,0 @@
|
|||||||
##===- llvmc/example/mcc16/Makefile ------------------------*- Makefile -*-===##
|
|
||||||
#
|
|
||||||
# The LLVM Compiler Infrastructure
|
|
||||||
#
|
|
||||||
# This file is distributed under the University of Illinois Open
|
|
||||||
# Source License. See LICENSE.TXT for details.
|
|
||||||
#
|
|
||||||
##===----------------------------------------------------------------------===##
|
|
||||||
|
|
||||||
export LLVMC_BASE_LEVEL = ../../../..
|
|
||||||
export LLVMC_BASED_DRIVER_NAME = mcc16
|
|
||||||
export LLVMC_BUILTIN_PLUGINS = PIC16Base
|
|
||||||
|
|
||||||
LEVEL = $(LLVMC_BASE_LEVEL)
|
|
||||||
|
|
||||||
DIRS = plugins driver
|
|
||||||
|
|
||||||
include $(LEVEL)/Makefile.common
|
|
@ -1,13 +0,0 @@
|
|||||||
##===- llvmc/example/mcc16/driver/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_BASE_LEVEL)/..
|
|
||||||
LLVMC_BASED_DRIVER = $(LLVMC_BASED_DRIVER_NAME)
|
|
||||||
|
|
||||||
include $(LEVEL)/Makefile.common
|
|
@ -1,18 +0,0 @@
|
|||||||
##===- llvmc/example/Skeleton/plugins/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_BASE_LEVEL)/..
|
|
||||||
|
|
||||||
ifneq ($(LLVMC_BUILTIN_PLUGINS),)
|
|
||||||
DIRS = $(LLVMC_BUILTIN_PLUGINS)
|
|
||||||
endif
|
|
||||||
|
|
||||||
export LLVMC_BUILTIN_PLUGIN=1
|
|
||||||
|
|
||||||
include $(LEVEL)/Makefile.common
|
|
29
tools/llvmc/examples/Hello/Hello.cpp
Normal file
29
tools/llvmc/examples/Hello/Hello.cpp
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
//===- Hello.cpp - Example code from "Writing an LLVMC Plugin" ------------===//
|
||||||
|
//
|
||||||
|
// The LLVM Compiler Infrastructure
|
||||||
|
//
|
||||||
|
// This file is distributed under the University of Illinois Open Source
|
||||||
|
// License. See LICENSE.TXT for details.
|
||||||
|
//
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
//
|
||||||
|
// Shows how to write llvmc-based drivers without using TableGen.
|
||||||
|
//
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
|
#include "llvm/CompilerDriver/AutoGenerated.h"
|
||||||
|
#include "llvm/CompilerDriver/Main.inc"
|
||||||
|
|
||||||
|
#include "llvm/Support/raw_ostream.h"
|
||||||
|
|
||||||
|
namespace llvmc {
|
||||||
|
namespace autogenerated {
|
||||||
|
|
||||||
|
int PreprocessOptions () { return 0; }
|
||||||
|
|
||||||
|
int PopulateLanguageMap (LanguageMap&) { llvm::outs() << "Hello!\n"; return 0; }
|
||||||
|
|
||||||
|
int PopulateCompilationGraph (CompilationGraph&) { return 0; }
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -9,6 +9,6 @@
|
|||||||
|
|
||||||
LEVEL = ../../../..
|
LEVEL = ../../../..
|
||||||
|
|
||||||
LLVMC_PLUGIN = Hello
|
LLVMC_BASED_DRIVER = Hello
|
||||||
|
|
||||||
include $(LEVEL)/Makefile.common
|
include $(LEVEL)/Makefile.common
|
@ -1,4 +1,4 @@
|
|||||||
##===- llvmc/example/Skeleton/plugins/Plugin/Makefile ------*- Makefile -*-===##
|
##===- tools/llvmc/examples/Makefile -----------------------*- Makefile -*-===##
|
||||||
#
|
#
|
||||||
# The LLVM Compiler Infrastructure
|
# The LLVM Compiler Infrastructure
|
||||||
#
|
#
|
||||||
@ -7,11 +7,8 @@
|
|||||||
#
|
#
|
||||||
##===----------------------------------------------------------------------===##
|
##===----------------------------------------------------------------------===##
|
||||||
|
|
||||||
LEVEL = $(LLVMC_BASE_LEVEL)/../..
|
LEVEL=../../..
|
||||||
|
|
||||||
# Change this to the name of your plugin.
|
PARALLEL_DIRS := Hello Simple mcc16 Skeleton
|
||||||
LLVMC_PLUGIN = Plugin
|
|
||||||
|
|
||||||
BUILT_SOURCES = AutoGenerated.inc
|
|
||||||
|
|
||||||
include $(LEVEL)/Makefile.common
|
include $(LEVEL)/Makefile.common
|
@ -1,4 +1,4 @@
|
|||||||
##===- tools/llvmc/plugins/Simple/Makefile -----------------*- Makefile -*-===##
|
##===- llvmc/examples/Simple/Makefile ----------------------*- Makefile -*-===##
|
||||||
#
|
#
|
||||||
# The LLVM Compiler Infrastructure
|
# The LLVM Compiler Infrastructure
|
||||||
#
|
#
|
||||||
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
LEVEL = ../../../..
|
LEVEL = ../../../..
|
||||||
|
|
||||||
LLVMC_PLUGIN = Simple
|
LLVMC_BASED_DRIVER = Simple
|
||||||
BUILT_SOURCES = AutoGenerated.inc
|
BUILT_SOURCES = Simple.inc
|
||||||
|
|
||||||
include $(LEVEL)/Makefile.common
|
include $(LEVEL)/Makefile.common
|
2
tools/llvmc/examples/Simple/Simple.cpp
Normal file
2
tools/llvmc/examples/Simple/Simple.cpp
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
#include "llvm/CompilerDriver/Main.inc"
|
||||||
|
#include "Simple.inc"
|
@ -1,4 +1,4 @@
|
|||||||
//===- Simple.td - A simple plugin for LLVMC ------------------------------===//
|
//===- Simple.td - A simple LLVMC-based driver ----------------------------===//
|
||||||
//
|
//
|
||||||
// The LLVM Compiler Infrastructure
|
// The LLVM Compiler Infrastructure
|
||||||
//
|
//
|
||||||
@ -7,19 +7,19 @@
|
|||||||
//
|
//
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
//
|
//
|
||||||
// A simple LLVMC-based gcc wrapper that shows how to write LLVMC plugins.
|
// A simple LLVMC-based gcc wrapper.
|
||||||
//
|
//
|
||||||
// To compile, use this command:
|
// To compile, use this command:
|
||||||
//
|
//
|
||||||
// $ cd $LLVMC_DIR/example/Simple
|
// $ cd $LLVM_OBJ_DIR/tools/llvmc
|
||||||
// $ make
|
// $ make BUILD_EXAMPLES=1
|
||||||
//
|
//
|
||||||
// Run as:
|
// Run as:
|
||||||
//
|
//
|
||||||
// $ llvmc -load $LLVM_DIR/Release/lib/plugin_llvmc_Simple.so
|
// $ $LLVM_OBJ_DIR/$(BuildMode)/bin/Simple
|
||||||
//
|
//
|
||||||
// For instructions on how to build your own LLVMC-based driver, see
|
// For instructions on how to build your own LLVMC-based driver, see
|
||||||
// the 'example/Skeleton' directory.
|
// the 'examples/Skeleton' directory.
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
include "llvm/CompilerDriver/Common.td"
|
include "llvm/CompilerDriver/Common.td"
|
||||||
@ -28,8 +28,12 @@ def gcc : Tool<
|
|||||||
[(in_language "c"),
|
[(in_language "c"),
|
||||||
(out_language "executable"),
|
(out_language "executable"),
|
||||||
(output_suffix "out"),
|
(output_suffix "out"),
|
||||||
(cmd_line "gcc $INFILE -o $OUTFILE"),
|
(command "gcc"),
|
||||||
(sink)
|
(sink),
|
||||||
|
|
||||||
|
// -o is what is used by default, out_file_option here is included for
|
||||||
|
// instructive purposes.
|
||||||
|
(out_file_option "-o")
|
||||||
]>;
|
]>;
|
||||||
|
|
||||||
def LanguageMap : LanguageMap<[LangToSuffixes<"c", ["c"]>]>;
|
def LanguageMap : LanguageMap<[LangToSuffixes<"c", ["c"]>]>;
|
@ -1,6 +1,6 @@
|
|||||||
//===- Plugin.td - A skeleton plugin for LLVMC -------------*- tablegen -*-===//
|
//===- AutoGenerated.td ------------------------------------*- tablegen -*-===//
|
||||||
//
|
//
|
||||||
// Write the code for your plugin here.
|
// Write the TableGen description of your llvmc-based driver here.
|
||||||
//
|
//
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
12
tools/llvmc/examples/Skeleton/Hooks.cpp
Normal file
12
tools/llvmc/examples/Skeleton/Hooks.cpp
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
//===--- Hooks.cpp - The LLVM Compiler Driver -------------------*- C++ -*-===//
|
||||||
|
//
|
||||||
|
// The LLVM Compiler Infrastructure
|
||||||
|
//
|
||||||
|
// This file is distributed under the University of Illinois Open
|
||||||
|
// Source License. See LICENSE.TXT for details.
|
||||||
|
//
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
//
|
||||||
|
// Hook definitions should go here.
|
||||||
|
//
|
||||||
|
//===----------------------------------------------------------------------===//
|
@ -7,8 +7,9 @@
|
|||||||
//
|
//
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
//
|
//
|
||||||
// Just include CompilerDriver/Main.inc.
|
// Just include CompilerDriver/Main.inc and AutoGenerated.inc.
|
||||||
//
|
//
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
#include "llvm/CompilerDriver/Main.inc"
|
#include "llvm/CompilerDriver/Main.inc"
|
||||||
|
#include "AutoGenerated.inc"
|
20
tools/llvmc/examples/Skeleton/Makefile
Normal file
20
tools/llvmc/examples/Skeleton/Makefile
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
##===- llvmc/examples/Skeleton/Makefile --------------------*- Makefile -*-===##
|
||||||
|
#
|
||||||
|
# The LLVM Compiler Infrastructure
|
||||||
|
#
|
||||||
|
# This file is distributed under the University of Illinois Open
|
||||||
|
# Source License. See LICENSE.TXT for details.
|
||||||
|
#
|
||||||
|
##===----------------------------------------------------------------------===##
|
||||||
|
|
||||||
|
# Change this so that $(LEVEL)/Makefile.common refers to
|
||||||
|
# $LLVM_OBJ_DIR/Makefile.common or $YOUR_LLVM_BASED_PROJECT/Makefile.common.
|
||||||
|
export LEVEL = ../../../..
|
||||||
|
|
||||||
|
# Change this to the name of your LLVMC-based driver.
|
||||||
|
LLVMC_BASED_DRIVER = llvmc-skeleton
|
||||||
|
|
||||||
|
# Change this to the name of .inc file built from your .td file.
|
||||||
|
BUILT_SOURCES = AutoGenerated.inc
|
||||||
|
|
||||||
|
include $(LEVEL)/Makefile.common
|
@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
This is a template that can be used to create your own LLVMC-based drivers. Just
|
This is a template that can be used to create your own LLVMC-based drivers. Just
|
||||||
copy the `Skeleton` directory to the location of your preference and edit
|
copy the `Skeleton` directory to the location of your preference and edit
|
||||||
`Skeleton/Makefile` and `Skeleton/plugins/Plugin`.
|
`Skeleton/Makefile` and `Skeleton/AutoGenerated.inc`.
|
||||||
|
|
||||||
The build system assumes that your project is based on LLVM.
|
The build system assumes that your project is based on LLVM.
|
@ -1,19 +1,20 @@
|
|||||||
#include "AutoGenerated.inc"
|
|
||||||
|
|
||||||
#include "llvm/System/Path.h"
|
#include "llvm/System/Path.h"
|
||||||
|
#include "llvm/Support/CommandLine.h"
|
||||||
#include "llvm/Support/raw_ostream.h"
|
#include "llvm/Support/raw_ostream.h"
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
namespace llvmc {
|
namespace llvmc {
|
||||||
extern char *ProgramName;
|
extern char *ProgramName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern cl::opt<std::string> AutoGeneratedParameter_p;
|
||||||
|
|
||||||
// Returns the platform specific directory separator via #ifdefs.
|
// Returns the platform specific directory separator via #ifdefs.
|
||||||
// FIXME: This currently work on linux and windows only. It does not
|
// FIXME: This currently work on linux and windows only. It does not
|
||||||
// work on other unices.
|
// work on other unices.
|
||||||
static std::string GetDirSeparator() {
|
static std::string GetDirSeparator() {
|
||||||
#if __linux__ || __APPLE__
|
#if __linux__ || __APPLE__
|
||||||
return "/";
|
return "/";
|
||||||
@ -59,12 +60,11 @@ GetUpperCasePartDefine(void) {
|
|||||||
return "__" + UpperCase;
|
return "__" + UpperCase;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Get the dir where c16 executables reside.
|
// Get the dir where c16 executables reside.
|
||||||
std::string GetBinDir() {
|
std::string GetBinDir() {
|
||||||
// Construct a Path object from the program name.
|
// Construct a Path object from the program name.
|
||||||
void *P = (void*) (intptr_t) GetBinDir;
|
void *P = (void*) (intptr_t) GetBinDir;
|
||||||
sys::Path ProgramFullPath
|
sys::Path ProgramFullPath
|
||||||
= sys::Path::GetMainExecutable(llvmc::ProgramName, P);
|
= sys::Path::GetMainExecutable(llvmc::ProgramName, P);
|
||||||
|
|
||||||
// Get the dir name for the program. It's last component should be 'bin'.
|
// Get the dir name for the program. It's last component should be 'bin'.
|
||||||
@ -80,7 +80,7 @@ std::string GetInstallDir() {
|
|||||||
|
|
||||||
// Go one more level up to get the install dir.
|
// Go one more level up to get the install dir.
|
||||||
std::string InstallDir = BinDirPath.getDirname();
|
std::string InstallDir = BinDirPath.getDirname();
|
||||||
|
|
||||||
return InstallDir + GetDirSeparator();
|
return InstallDir + GetDirSeparator();
|
||||||
}
|
}
|
||||||
|
|
@ -13,21 +13,25 @@
|
|||||||
//
|
//
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
#include "llvm/Config/config.h"
|
|
||||||
#include "llvm/CompilerDriver/BuiltinOptions.h"
|
#include "llvm/CompilerDriver/BuiltinOptions.h"
|
||||||
#include "llvm/CompilerDriver/ForceLinkage.h"
|
#include "llvm/CompilerDriver/Main.h"
|
||||||
|
|
||||||
#include "llvm/System/Path.h"
|
#include "llvm/System/Path.h"
|
||||||
|
#include "llvm/Config/config.h"
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
namespace llvmc {
|
#include "PIC16.inc"
|
||||||
int Main(int argc, char** argv);
|
|
||||||
}
|
namespace {
|
||||||
|
|
||||||
// Modify the PACKAGE_VERSION to use build number in top level configure file.
|
// Modify the PACKAGE_VERSION to use build number in top level configure file.
|
||||||
void PIC16VersionPrinter(void) {
|
void PIC16VersionPrinter(void) {
|
||||||
std::cout << "MPLAB C16 1.0 " << PACKAGE_VERSION << "\n";
|
std::cout << "MPLAB C16 1.0 " << PACKAGE_VERSION << "\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
int main(int argc, char** argv) {
|
int main(int argc, char** argv) {
|
||||||
|
|
||||||
// HACK
|
// HACK
|
||||||
@ -36,7 +40,7 @@ int main(int argc, char** argv) {
|
|||||||
Languages.setHiddenFlag(llvm::cl::Hidden);
|
Languages.setHiddenFlag(llvm::cl::Hidden);
|
||||||
DryRun.setHiddenFlag(llvm::cl::Hidden);
|
DryRun.setHiddenFlag(llvm::cl::Hidden);
|
||||||
|
|
||||||
llvm::cl::SetVersionPrinter(PIC16VersionPrinter);
|
llvm::cl::SetVersionPrinter(PIC16VersionPrinter);
|
||||||
|
|
||||||
// Ask for a standard temp dir, but just cache its basename., and delete it.
|
// Ask for a standard temp dir, but just cache its basename., and delete it.
|
||||||
llvm::sys::Path tempDir;
|
llvm::sys::Path tempDir;
|
||||||
@ -49,6 +53,5 @@ int main(int argc, char** argv) {
|
|||||||
tempDir = TempDirname;
|
tempDir = TempDirname;
|
||||||
tempDir.eraseFromDisk(true);
|
tempDir.eraseFromDisk(true);
|
||||||
|
|
||||||
llvmc::ForceLinkage();
|
|
||||||
return llvmc::Main(argc, argv);
|
return llvmc::Main(argc, argv);
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
##===- llvmc/example/Skeleton/plugins/Plugin/Makefile ------*- Makefile -*-===##
|
##===- llvmc/examples/mcc16/Makefile -----------------------*- Makefile -*-===##
|
||||||
#
|
#
|
||||||
# The LLVM Compiler Infrastructure
|
# The LLVM Compiler Infrastructure
|
||||||
#
|
#
|
||||||
@ -7,11 +7,9 @@
|
|||||||
#
|
#
|
||||||
##===----------------------------------------------------------------------===##
|
##===----------------------------------------------------------------------===##
|
||||||
|
|
||||||
LEVEL = $(LLVMC_BASE_LEVEL)/../..
|
LEVEL = ../../../..
|
||||||
|
|
||||||
# Change this to the name of your plugin.
|
LLVMC_BASED_DRIVER = mcc16
|
||||||
LLVMC_PLUGIN = PIC16Base
|
BUILT_SOURCES = PIC16.inc
|
||||||
|
|
||||||
BUILT_SOURCES = AutoGenerated.inc
|
|
||||||
|
|
||||||
include $(LEVEL)/Makefile.common
|
include $(LEVEL)/Makefile.common
|
@ -1,4 +1,4 @@
|
|||||||
//===- PIC16Base.td - PIC16 toolchain driver ---------------*- tablegen -*-===//
|
//===- PIC16.td - PIC16 toolchain driver -------------------*- tablegen -*-===//
|
||||||
//
|
//
|
||||||
// A basic driver for the PIC16 toolchain.
|
// A basic driver for the PIC16 toolchain.
|
||||||
//
|
//
|
@ -1,5 +1,5 @@
|
|||||||
This is a basic compiler driver for the PIC16 toolchain that shows how to create
|
This is a basic compiler driver for the PIC16 toolchain that shows how to create
|
||||||
your own llvmc-based drivers. It is based on the example/Skeleton template.
|
your own llvmc-based drivers. It is based on the examples/Skeleton template.
|
||||||
|
|
||||||
The PIC16 toolchain looks like this:
|
The PIC16 toolchain looks like this:
|
||||||
|
|
@ -2950,8 +2950,6 @@ void EmitIncludes(raw_ostream& O) {
|
|||||||
<< "using namespace llvm;\n"
|
<< "using namespace llvm;\n"
|
||||||
<< "using namespace llvmc;\n\n"
|
<< "using namespace llvmc;\n\n"
|
||||||
|
|
||||||
<< "extern cl::opt<std::string> OutputFilename;\n\n"
|
|
||||||
|
|
||||||
<< "inline const char* checkCString(const char* s)\n"
|
<< "inline const char* checkCString(const char* s)\n"
|
||||||
<< "{ return s == NULL ? \"\" : s; }\n\n";
|
<< "{ return s == NULL ? \"\" : s; }\n\n";
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user