mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-16 00:33:10 +00:00
LLVM's include tree and the use of using declarations to hide the 'legacy' namespace for the old pass manager. This undoes the primary modules-hostile change I made to keep out-of-tree targets building. I sent an email inquiring about whether this would be reasonable to do at this phase and people seemed fine with it, so making it a reality. This should allow us to start bootstrapping with modules to a certain extent along with making it easier to mix and match headers in general. The updates to any code for users of LLVM are very mechanical. Switch from including "llvm/PassManager.h" to "llvm/IR/LegacyPassManager.h". Qualify the types which now produce compile errors with "legacy::". The most common ones are "PassManager", "PassManagerBase", and "FunctionPassManager". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229094 91177308-0d34-0410-b5e6-96231b3b80d8
//===----------------------------------------------------------------------===/ // Kaleidoscope with Orc - Lazy IRGen Version //===----------------------------------------------------------------------===// This version of Kaleidoscope with Orc demonstrates lazy IR-generation. Building on the lazy-codegen version of the tutorial, this version reduces the amount of up-front work that must be done by lazily IRgen'ing ASTs. When a function definition is entered, its AST is added to a map of available definitions. No IRGen is performed at this point and nothing is added to the JIT. When attempting to resolve symbol addresses, the lambda in KaleidoscopeJIT::getSymbolAddress will scan the AST map and generate IR on the fly. This directory contains a Makefile that allows the code to be built in a standalone manner, independent of the larger LLVM build infrastructure. To build the program you will need to have 'clang++' and 'llvm-config' in your path.