aboutsummaryrefslogtreecommitdiff
path: root/llvm/utils/TableGen/TableGen.cpp
AgeCommit message (Collapse)AuthorFilesLines
2016-07-05AArch64: TableGenerate system instruction operands.Tim Northover1-1/+7
The way the named arguments for various system instructions are handled at the moment has a few problems: - Large-scale duplication between AArch64BaseInfo.h and AArch64BaseInfo.cpp - That weird Mapping class that I have no idea what I was on when I thought it was a good idea. - Searches are performed linearly through the entire list. - We print absolutely all registers in upper-case, even though some are canonically mixed case (SPSel for example). - The ARM ARM specifies sysregs in terms of 5 fields, but those are relegated to comments in our implementation, with a slightly opaque hex value indicating the canonical encoding LLVM will use. This adds a new TableGen backend to produce efficiently searchable tables, and switches AArch64 over to using that infrastructure. llvm-svn: 274576
2016-06-09Search for llvm-symbolizer binary in the same directory as argv[0], beforeRichard Smith1-1/+1
looking for it along $PATH. This allows installs of LLVM tools outside of $PATH to find the symbolizer and produce pretty backtraces if they crash. llvm-svn: 272232
2016-01-04[TableGen] Call llvm_shutdown on exit so that all the ManagedStatic objects ↵Craig Topper1-0/+3
in the support library will be deleted. llvm-svn: 256732
2015-11-11Move the enum attributes defined in Attributes.h to a table-gen file.Akira Hatanaka1-1/+7
This is a step towards consolidating some of the information regarding attributes in a single place. This patch moves the enum attributes in Attributes.h to the table-gen file. Additionally, it adds definitions of target independent string attributes that will be used in follow-up commits by the inliner to check attribute compatibility. rdar://problem/19836465 llvm-svn: 252796
2014-12-11Use range-based for loops. NFCCraig Topper1-9/+7
llvm-svn: 224005
2014-06-17Move SetTheory from utils/TableGen into lib/TableGen so Clang can use it.James Molloy1-1/+1
llvm-svn: 211100
2014-01-15replace LeakSanitizerIsTurnedOffForTheCurrentProcess with ↵Kostya Serebryany1-5/+7
__lsan_is_turned_off, but this time hide it under __has_feature(address_sanitizer); also include <sanitizer/lsan_interface.h> llvm-svn: 199303
2014-01-10reapply r198858: Disable LeakSanitizer in TableGen binaries, see PR18325; ↵Kostya Serebryany1-0/+7
this time LeakSanitizerIsTurnedOffForTheCurrentProcess is used instead of __lsan_is_turned_off llvm-svn: 198922
2014-01-09Revert "Disable LeakSanitizer in TableGen binaries, see PR18325"Alp Toker1-7/+0
To declare or define reserved identifers is undefined behaviour in standard C++. This needs to be addressed in compiler-rt before it can be used in LLVM. See the list discussion for details. This reverts commit r198858. llvm-svn: 198884
2014-01-09Disable LeakSanitizer in TableGen binaries, see PR18325Kostya Serebryany1-0/+7
llvm-svn: 198858
2013-03-21Add TableGen ctags(1) emitter and helper script.Sean Silva1-1/+7
To use this in conjunction with exuberant ctags to generate a single combined tags file, run tblgen first and then $ ctags --append [...] Since some identifiers have corresponding definitions in C++ code, it can be useful (if using vim) to also use cscope, and :set cscopetagorder=1 so that :tag X will preferentially select the tablegen symbol, while :cscope find g X will always find the C++ symbol. Patch by Kevin Schoedel! (a couple small formatting changes courtesy of clang-format) llvm-svn: 177682
2012-12-19Remove edis - the enhanced disassembler. Fixes PR14654.Roman Divacky1-6/+0
llvm-svn: 170578
2012-12-05Copy clang/Driver/<Option parsing stuff> to llvm.Michael J. Spencer1-1/+7
llvm-svn: 169344
2012-12-04Sort the #include lines for utils/...Chandler Carruth1-1/+0
I've tried to find main moudle headers where possible, but the TableGen stuff may warrant someone else looking at it. llvm-svn: 169251
2012-10-03tblgen: Migrate llvm-tblgen to new TableGenMain API.Sean Silva1-82/+77
llvm-svn: 165166
2012-06-11Write llvm-tblgen backends as functions instead of sub-classes.Jakob Stoklund Olesen1-32/+19
The TableGenBackend base class doesn't do much, and will be removed completely soon. Patch by Sean Silva! llvm-svn: 158311
2012-01-16Removing unused default switch cases in switches over enums that already ↵David Blaikie1-3/+0
account for all enumeration values explicitly. (This time I believe I've checked all the -Wreturn-type warnings from GCC & added the couple of llvm_unreachables necessary to silence them. If I've missed any, I'll happily fix them as soon as I know about them) llvm-svn: 148262
2011-12-20Unweaken vtables as per ↵David Blaikie1-84/+84
http://llvm.org/docs/CodingStandards.html#ll_virtual_anch llvm-svn: 146960
2011-12-01Add a deterministic finite automaton based packetizer for VLIW architecturesAnshuman Dasgupta1-0/+7
llvm-svn: 145629
2011-11-09Remove the old-style ARM disassembler, which is no longer used.Owen Anderson1-7/+0
llvm-svn: 144243
2011-10-06Remove the Clang tblgen backends from LLVM.Peter Collingbourne1-122/+0
llvm-svn: 141293
2011-10-01Move TableGen's parser and entry point into a libraryPeter Collingbourne1-144/+61
This is the first step towards splitting LLVM and Clang's tblgen executables. llvm-svn: 140951
2011-09-20Remove more of llvmc and dependencies.Eric Christopher1-7/+0
llvm-svn: 140121
2011-09-08Added LateParsed property to TableGen attributes.Caitlin Sadowski1-0/+7
This patch was written by DeLesley Hutchins. llvm-svn: 139300
2011-09-07Dependency should be on the output file name, not the dependency fileJoerg Sonnenberger1-1/+1
name. llvm-svn: 139220
2011-07-11Revert r134921, 134917, 134908 and 134907. They're causing failuresEric Christopher1-12/+1
in multiple buildbots. llvm-svn: 134936
2011-07-11[AVX] Make Inits FoldableDavid Greene1-1/+12
Manage Inits in a FoldingSet. This provides several benefits: - Memory for Inits is properly managed - Duplicate Inits are folded into Flyweights, saving memory - It enforces const-correctness, protecting against certain classes of bugs The above benefits allow Inits to be used in more contexts, which in turn provides more dynamism to TableGen. This enhanced capability will be used by the AVX code generator to a fold common patterns together. llvm-svn: 134907
2011-07-08TableGen'erated MC lowering for simple pseudo-instructions.Jim Grosbach1-0/+7
This allows the (many) pseudo-instructions we have that map onto a single real instruction to have their expansion during MC lowering handled automatically instead of the current cumbersome manual expansion required. These sorts of pseudos are common when an instruction is used in situations that require different MachineInstr flags (isTerminator, isBranch, et. al.) than the generic instruction description has. For example, using a move to the PC to implement a branch. llvm-svn: 134704
2011-06-28Merge XXXGenRegisterNames.inc into XXXGenRegisterInfo.incEvan Cheng1-9/+5
llvm-svn: 134024
2011-06-27Merge XXXGenRegisterDesc.inc XXXGenRegisterNames.inc XXXGenRegisterInfo.h.incEvan Cheng1-17/+2
into XXXGenRegisterInfo.inc. llvm-svn: 133922
2011-06-24Starting to refactor Target to separate out code that's needed to fully describeEvan Cheng1-8/+12
target machine from those that are only needed by codegen. The goal is to sink the essential target description into MC layer so we can start building MC based tools without needing to link in the entire codegen. First step is to refactor TargetRegisterInfo. This patch added a base class MCRegisterInfo which TargetRegisterInfo is derived from. Changed TableGen to separate register description from the rest of the stuff. llvm-svn: 133782
2011-06-21Consolidate some TableGen diagnostic helper functions.Jim Grosbach1-11/+4
TableGen had diagnostic printers sprinkled about in a few places. Pull them together into a single location in Error.cpp. llvm-svn: 133568
2011-06-04Drop a RecordKeeper reference that wasn't necessary.Jakob Stoklund Olesen1-1/+1
llvm-svn: 132636
2011-06-04Teach TableGen to evaluate DAG expressions as set operations.Jakob Stoklund Olesen1-1/+20
A TableGen backend can define how certain classes can be expanded into ordered sets of defs, typically by evaluating a specific field in the record. The SetTheory class can then evaluate DAG expressions that refer to these named sets. A number of standard set and list operations are predefined, and the backend can add more specialized operators if needed. The -print-sets backend is used by SetTheory.td to provide examples. This is intended to simplify how register classes are defined: def GR32_NOSP : RegisterClass<"X86", [i32], 32, (sub GR32, ESP)>; llvm-svn: 132621
2011-06-01Add new -d option to tblgen. It writes a make(1)-style dependency file.Joerg Sonnenberger1-29/+43
llvm-svn: 132395
2011-05-06ParseFile() may throw, so extend the try/catch to handle that.Jim Grosbach1-11/+11
llvm-svn: 131004
2011-04-15Initial work to improve documentation for Clang's diagnostics, from Matthieu ↵Douglas Gregor1-1/+9
Monrocq llvm-svn: 129613
2011-02-14Add the ClangSACheckersEmitter tablegen backend which will be used for the ↵Argyrios Kyrtzidis1-0/+7
clang static analyzer. llvm-svn: 125493
2011-01-19Fix comment for gen-clang-decl-nodes tblgen backend, from Michael HanDouglas Gregor1-1/+1
llvm-svn: 123833
2010-12-16MemoryBuffer now return an error_code and returns a OwningPtr<MemoryBuffer> ↵Michael J. Spencer1-3/+4
via an out parm. llvm-svn: 121958
2010-12-15Add a Neon intrinsic test generator.Bob Wilson1-0/+6
This is still a WIP. It's already good enough to expose a few bugs, though. llvm-svn: 121868
2010-12-15various cleanups to tblgen, patch by Garrison Venn!Chris Lattner1-1/+1
llvm-svn: 121837
2010-12-13eliminate the Records global variable, patch by Garrison Venn!Chris Lattner1-6/+6
llvm-svn: 121659
2010-12-09Support/MemoryBuffer: Replace all uses of std::string *ErrMsg with ↵Michael J. Spencer1-3/+4
error_code &ec. And fix clients. llvm-svn: 121379
2010-11-29Merge System into Support.Michael J. Spencer1-1/+1
llvm-svn: 120298
2010-10-20Add a way to emit StringSwitch of clang attribute spellings.Anders Carlsson1-0/+6
llvm-svn: 116899
2010-10-07Move tool_output_file into its own file.Dan Gohman1-1/+1
llvm-svn: 115973
2010-09-27Push twines deeper into SourceMgr's error handling methods.Benjamin Kramer1-1/+1
llvm-svn: 114847
2010-09-01Make tool_output_file's raw_ostream instance a member variable insteadDan Gohman1-35/+35
of a base class. This makes it possible to unregister the file from FilesToRemove when the file is done. Also, this eliminates the need for formatted_tool_output_file. llvm-svn: 112706
2010-08-20Convert tablegen to use tool_output_file.Dan Gohman1-6/+3
llvm-svn: 111644