LLVM backend for 6502
Go to file
2015-08-03 20:39:05 -03:00
autoconf Update the trunk version to 3.8.0svn. 2015-07-14 22:35:57 +00:00
bindings DI: Rewrite the DIBuilder local variable API 2015-07-31 17:55:53 +00:00
cmake Register Mos6502 target 2015-08-02 22:47:30 -03:00
docs [libFuzzer] minimal documentation on data-flow-guided fuzzing 2015-07-31 21:48:10 +00:00
examples DI: Rewrite the DIBuilder local variable API 2015-07-31 17:55:53 +00:00
include Eliminate big-endian subtargets of Mos6502 2015-08-03 17:13:53 -03:00
lib Replace namespace SP for M6502 2015-08-03 20:10:07 -03:00
projects build: make libunwind a proper project 2015-04-25 01:47:39 +00:00
resources In MSVC builds embed a VERSIONINFO resource in our exe and DLL files. 2015-06-12 15:58:29 +00:00
test Define first regression test (copied from SPARC) 2015-08-03 20:15:00 -03:00
tools DwarfLinker: Use DIEValueList instead of DIE, NFC 2015-08-02 20:48:47 +00:00
unittests DI: Remove DW_TAG_arg_variable and DW_TAG_auto_variable 2015-07-31 18:58:39 +00:00
utils -Wdeprecated-clean: Fix cases of violating the rule of 5 in ways that are deprecated in C++11 2015-08-01 01:08:30 +00:00
.arcconfig Updated phabricator server. 2014-04-07 03:57:04 +00:00
.clang-format Test commit. 2014-03-02 13:08:46 +00:00
.clang-tidy Enable display of compiler diagnostics in clang-tidy by default. 2014-10-29 17:29:38 +00:00
.gitignore Minor updates to gitignore so that symlinks are ignored in the projects dir. 2015-07-07 20:24:58 +00:00
CMakeLists.txt Register Mos6502 target 2015-08-02 22:47:30 -03:00
CODE_OWNERS.TXT [WebAssembly] Initial WebAssembly backend 2015-06-29 23:51:55 +00:00
configure Update the trunk version to 3.8.0svn. 2015-07-14 22:35:57 +00:00
CREDITS.TXT [WebAssembly] Initial WebAssembly backend 2015-06-29 23:51:55 +00:00
LICENSE.TXT Update for a new year. 2015-03-12 01:25:29 +00:00
llvm.spec.in Tidy up. s/Low Level Virtual Machine/LLVM/. 2012-01-25 22:00:23 +00:00
LLVMBuild.txt Remove the very substantial, largely unmaintained legacy PGO 2013-10-02 15:42:23 +00:00
Makefile [configure/make] Propagate names of build host tools when making BuildTools 2014-03-25 21:45:41 +00:00
Makefile.common Makefile.common: Update a description, s/Source/SOURCES/ , according to MakefileGuide.html#control-variables . 2012-12-07 01:43:23 +00:00
Makefile.config.in Disallow in-source builds (as we already do for the cmake build). 2015-07-01 18:09:21 +00:00
Makefile.rules Add support for SunOS function/data sections and associated 2015-03-03 20:54:29 +00:00
README.md Update README.md 2015-08-03 20:39:05 -03:00

LLVM with 6502 backend

This is an LLVM fork that tries to implements an MOS 6502 backend.

Build

Refer to the Getting Started guide from LLVM.

A quick way to start (on Linux):

  • Clone this repository
  • Run inside directory:
mkdir build
cd build
cmake .. -DLLVM_TARGETS_TO_BUILD:STRING="X86;Mos6502"
make -j4

If you want to build more targets, append them to the LLVM_TARGETS_TO_BUILD variable. Adjust -j option of make in case you have more processor cores.

Install

Run make install as usual.

Usage

TODO: Write how to convert from C/C++ with Clang to IR and 6502 assembly code.

Tests

To run regression tests for the MOS 6502 target, run from build/

make check-llvm-codegen-mos6502

For more information on the LLVM test suite, refer to the Testing Guide.