- Oct 19, 2011
-
-
Greg Clayton authored
process IDs, and thread IDs, but was mainly needed for for the UserID's for Types so that DWARF with debug map can work flawlessly. With DWARF in .o files the type ID was the DIE offset in the DWARF for the .o file which is not unique across all .o files, so now the SymbolFileDWARFDebugMap class will make the .o file index part (the high 32 bits) of the unique type identifier so it can uniquely identify the types. llvm-svn: 142534
-
Richard Smith authored
have an unambiguous accessible copying constructor; this is ill-formed in C++98. llvm-svn: 142533
-
Johnny Chen authored
child=None, child_prompt=None, use_cmd_api=False By default, expect a pexpect spawned child and child prompt to be supplied (use_cmd_api=False). If use_cmd_api is true, ignore the child and child prompt and use self.runCmd() to run the hooks one by one. Modify existing client to reflect the change. llvm-svn: 142532
-
Rafael Espindola authored
Patch by Dimitry Andric. llvm-svn: 142531
-
James Molloy authored
Use literal pool loads instead of MOVW/MOVT for materializing global addresses when optimizing for size. On spec/gcc, this caused a codesize improvement of ~1.9% for ARM mode and ~4.9% for Thumb(2) mode. This is codesize including literal pools. The pools themselves doubled in size for ARM mode and quintupled for Thumb mode, leaving suggestion that there is still perhaps redundancy in LLVM's use of constant pools that could be decreased by sharing entries. Fixes PR11087. llvm-svn: 142530
-
David Greene authored
Document paste as a shorthand for !strconcat. llvm-svn: 142528
-
David Greene authored
Document NAME as a special member of def records that should not be defined anywhere else. llvm-svn: 142527
-
David Greene authored
This tests TableGen's paste functionality. llvm-svn: 142526
-
David Greene authored
Add a paste operator '#' to take two identifier-like strings and joint them. Internally paste gets represented as a !strconcat() with any necessary casts to string added. This will be used to implement basic for loop functionality as in: for i = [0, 1, 2, 3, 4, 5, 6, 7] { def R#i : Register<...> } llvm-svn: 142525
-
David Greene authored
During multiclass def instantiation, replace NAME in any expressions with the value of the def or defm ID. llvm-svn: 142524
-
David Greene authored
Parse and process a defm prefix as an Init expression. This allows paste operations to create defm prefixes. llvm-svn: 142523
-
David Greene authored
Allow def and defm IDs to be general values. We need this for paste functionality. llvm-svn: 142522
-
David Greene authored
Stop parsing a value if we are in name parsing mode and we see a left brace. A left brace indicates the start of an object body when we are parsing a name. llvm-svn: 142521
-
David Greene authored
Augment the value parser to respect the parse mode and not error if an ID doesn't map to an object and we are in name parsing mode. llvm-svn: 142520
-
David Greene authored
Add a mode control to value and ID parsers. The two modes are: - Parse a value. Expect the parsed ID to map to an existing object. - Parse a name. Expect the parsed ID to not map to any existing object. The first is used when parsing an identifier to be looked up, for example a record field or template argument. The second is used for parsing declarations. Paste functionality implies that declarations can contain arbitrary expressions so we need to be able to call into the general value parser to parse declarations with paste operators. So we need a way to parse a value-like thing without expecting that the result will map to some existing object. This parse mode provides that. llvm-svn: 142519
-
David Greene authored
Add a Value named "NAME" to each Record. This will be set to the def or defm name when instantiating multiclasses. This will replace the #NAME# processing hack once paste functionality is in place. llvm-svn: 142518
-
David Greene authored
Get the Record name as a string explicitly to avoid asserts. llvm-svn: 142517
-
David Greene authored
Get the Record name as a string explicitly to avoid asserts. llvm-svn: 142516
-
David Greene authored
Get the Record name as a string explicitly to avoid asserts. llvm-svn: 142515
-
David Greene authored
Get the Record name by string explicitly to avoid potential asserts. llvm-svn: 142514
-
David Greene authored
Use lookahead to determine whether a number is really a number or is part of something forming an identifier. This won't come into play until the paste operator is recognized as a unique token. llvm-svn: 142513
-
David Greene authored
Add a peek function to let the Lexer look at a character arbitrarily far ahead in the stream without consuming anything. We need this to disambiguate numbers and operands of a paste operation. For example: def foo#8i Without lookahead the lexer will treat '8' as a number rather than as part of a string to be pasted to form an identifier. llvm-svn: 142512
-
David Greene authored
When resolving Record values, be sure to update the Record name as it may contain references to the value. llvm-svn: 142511
-
David Greene authored
Add Record names to be changed even on Records that aren't yet registered. We need to be able to do this for paste functionality because we do not want to register def names before they are unique and that can only happen once all paste operations are done. This change lets us update Record names formed by paste operations and register the result later. llvm-svn: 142510
-
David Greene authored
Call the common Record initializer code from constructors. llvm-svn: 142509
-
David Greene authored
Add a Record constructor that takes the Record name as an Init. This is more work toward paste functionality. llvm-svn: 142508
-
David Greene authored
Split up the initializer list for Record to avoid 80-col issues. llvm-svn: 142507
-
David Greene authored
Ask for the Record name as a string explicitly to avoid a possible assert. llvm-svn: 142506
-
David Greene authored
Ask for the Record name as a string explicitly to avoid a possible assert. llvm-svn: 142505
-
David Greene authored
Ask for the record name as a string explicitly to avoid a potential assert. llvm-svn: 142504
-
David Greene authored
Avoid a potential assert by asking for record names as strings explicitly. llvm-svn: 142503
-
David Greene authored
Record names may not be fully resolved at this point so ask for the record name as a string explicitly. This avoids a potential assert. llvm-svn: 142502
-
David Greene authored
Add an init function to be shared among Record constructors. llvm-svn: 142501
-
David Greene authored
Allow template arg names to be Inits. This is further work to implement paste as it allows template names to participate in paste operations. llvm-svn: 142500
-
David Greene authored
Convert SetValue to take the value name as an Init. This allows us to set values for variables whose names are not yet fully resolved. llvm-svn: 142499
-
David Greene authored
Add a couple of utility functions to take a variable name and qualify it with the namespace of the enclosing class and/or multiclass. This is inpreparation for making template arg names first-class Inits. llvm-svn: 142498
-
David Greene authored
Make the VarInit name an Init itself. We need this to implement paste functionality so we can reference variables whose names are not yet completely resolved. llvm-svn: 142497
-
David Greene authored
Add accessors to get Record values by Init name. This lets us look up Record values whose names are not yet fully resolved. More work toward paste. llvm-svn: 142496
-
David Greene authored
Add a utility to get the name init and get the string representation of the name. This will be used for paste functionality. llvm-svn: 142495
-
David Greene authored
Add a couple of utility functions to get at the name init and return the name init as a string. This will be used for paste functionality. llvm-svn: 142494
-