summaryrefslogtreecommitdiff
path: root/lld/lib/Core/YamlKeyValues.cpp
AgeCommit message (Collapse)Author
2012-05-31Major refactoring: Remove Platform concept. In its place there are Nick Kledzik
now Reader and Writer subclasses for each file format. Each Reader and Writer subclass defines an "options" class which controls how that Reader or Writer operates. llvm-svn: 157774
2012-05-03Rework how YAMLReader is layered on top of YAMLParser. Turn hand writtenNick Kledzik
recursive descent functions into one table driven parser. Add proper error recovery and reporting. Add lots of test cases with semantics errors and verify error messages. llvm-svn: 156136
2012-04-30Convert the YAMLReader to use LLVM/Support/YAMLParser.Michael J. Spencer
llvm-svn: 155847
2012-04-20Add way to represent static archives in yaml test cases.Nick Kledzik
Add SharedLibraryFile and ArchiveLibraryFile subclasses of File. Add command line options to lld-core to set various ResolverOptions settings and added lots of test cases to verify the options work. llvm-svn: 155183
2012-04-18Factor out core linking options from Platform in a new ResolverOptionsNick Kledzik
class. Change Resolver to no longer use Platform. Core linking now issues errors directly. We need to factor that out later. Rework how Darwin executable writer finds "main" atom. It now adds to core linking an Atom which has a Reference to "main". llvm-svn: 155060
2012-04-03Remove trailing whitespace.Michael J. Spencer
llvm-svn: 153964
2012-03-29Replace all uses of NULL with nullptr.Michael J. Spencer
llvm-svn: 153677
2012-03-28Rearange header order to match llvm style. This exposed some missing types.Michael J. Spencer
Also fix some Platform.h includes that somehow got missed last time. llvm-svn: 153590
2012-03-15Add Pass to instantiate GOT entriesNick Kledzik
llvm-svn: 152874
2012-03-08Sources now require C++11 to build.Nick Kledzik
Add first linker pass (StubsPass) which looks for calls to shared library symbols and replaces them with calls to a StubAtom. On ELF system, a "stub" is a PLT entry. Added a simple test case. Pass a Platform object to YAML reader and writer for converting fixup kinds between names and values. Change output of Resolver to be a File object instead of a vector of Atoms. Thus, passes operate on a File instead of just Atoms. Rework how to walk through a File's Atoms. Now iterator based instead of a method that visits each atom. llvm-svn: 152269
2012-02-22Add support for SharedLibraryAtoms (proxy atoms for exported symbols from a Nick Kledzik
shared library) and AbsoluteAtoms (proxy atoms for absolute address (e.g. ROM)). Redesign weak importing as can-be-null-at-runtime and can-be-null-at-build-time. Add lots of test cases for all the above. llvm-svn: 151204
2012-02-15(no commit message)Nick Kledzik
llvm-svn: 150539
2012-02-07Add support for UndefinedAtom in yaml and native format. Add test cases ↵Nick Kledzik
with undefined atoms llvm-svn: 149962
2012-01-11A couple of big refactorings: 1) Move most attributes of Atom down to ↵Nick Kledzik
DefinedAtom, so only atoms representing definitions need to implement them. 2) Remove definitionTentative, definitionWeak, mergeDuplicates, and autoHide. Replace with merge and interposable attributes. 3) Make all methods on Atom be virtual so that future object file readers can lazily generated attributes llvm-svn: 147903
2012-01-04Support more Atom attributes. Add more test cases to lld-coreNick Kledzik
llvm-svn: 147571