Commit Graph

141 Commits

Author SHA1 Message Date
Chris Lattner 6b0869be4b Allow registers to specify a custom name
llvm-svn: 7548
2003-08-03 22:14:50 +00:00
Chris Lattner 329fc9c693 add new --gen-instr-desc option
llvm-svn: 7545
2003-08-03 21:58:28 +00:00
Chris Lattner 928ab27a55 Add new Record::getValueAsBit method
llvm-svn: 7544
2003-08-03 21:58:13 +00:00
Chris Lattner fed9de5358 Finish the instruction info emitter
llvm-svn: 7543
2003-08-03 21:57:51 +00:00
Chris Lattner c851ff7ab6 Fix bug: TableGen/IntBitInit.td
llvm-svn: 7526
2003-08-03 18:29:51 +00:00
Chris Lattner cabf643bf6 Fix bug: TableGen/BitsInitOverflow.td
llvm-svn: 7524
2003-08-03 18:24:34 +00:00
Chris Lattner 7ec26cfa3b * Changes to allow lists of any type
* Reorganize Target class a bit
* Fix string out of range access bug

llvm-svn: 7520
2003-08-03 18:17:54 +00:00
Chris Lattner a9b58a76b5 Changes to allow lists of any type
llvm-svn: 7519
2003-08-03 18:17:22 +00:00
Chris Lattner acf426fb7d expand contraction
llvm-svn: 7518
2003-08-03 18:12:59 +00:00
Chris Lattner e12fa2d7d9 Add support for instruction enum emission
llvm-svn: 7516
2003-08-03 17:24:20 +00:00
Chris Lattner ff4f98af45 Initial checkin of Instruction emitter, which just produces enum values so far
llvm-svn: 7515
2003-08-03 17:24:10 +00:00
Chris Lattner 2d2b350aff Remove dead private:
llvm-svn: 7514
2003-08-03 16:30:24 +00:00
Chris Lattner f0b32aa948 Make the register numbers line up more frequently
llvm-svn: 7508
2003-08-03 15:40:38 +00:00
Chris Lattner dace98d117 Allow an external 'set' command to set multiple values in the same command.
Allow redefinitions of variables as long as they are of the same type.

llvm-svn: 7507
2003-08-03 13:58:01 +00:00
Chris Lattner 14d79d2e57 Finish the register info emitter
llvm-svn: 7506
2003-08-03 13:52:02 +00:00
Chris Lattner aeeca2189c Add new method
llvm-svn: 7502
2003-08-02 01:27:37 +00:00
Chris Lattner f0c6964470 DEBUG got moved to Debug.h
llvm-svn: 7491
2003-08-01 22:13:59 +00:00
Chris Lattner 7700cb6cd2 Tablegen should only replace the output if it changes
llvm-svn: 7486
2003-08-01 20:35:01 +00:00
Chris Lattner 74fa70bc51 Make sure to delete the output file if there is an error
llvm-svn: 7481
2003-08-01 19:21:43 +00:00
Chris Lattner 463b279aad add support for emitting register classes
llvm-svn: 7473
2003-08-01 06:27:59 +00:00
Chris Lattner a295902d00 Add new getValueAsListInit and getValueAsInt methods
llvm-svn: 7472
2003-08-01 06:15:10 +00:00
Chris Lattner a22b48d2a3 Add the ability to emit register file enums
llvm-svn: 7471
2003-08-01 05:59:20 +00:00
Chris Lattner cf268a5060 Fix the way field bit references are resolved, also allow resolution of field references overall!
llvm-svn: 7470
2003-08-01 05:58:58 +00:00
Chris Lattner 0ef2353b01 Dead code elimination
llvm-svn: 7468
2003-08-01 04:47:20 +00:00
Chris Lattner 2e69d4a1e8 Add new getValueAsBitsInit 'high-level' method
llvm-svn: 7467
2003-08-01 04:46:24 +00:00
Chris Lattner 1f2f5c8392 Add file comment
Add register info emitter
Simplify code by using "high-level" methods.

llvm-svn: 7466
2003-08-01 04:39:05 +00:00
Chris Lattner 8d99a76d55 Initial checkin of register info emitter
llvm-svn: 7465
2003-08-01 04:38:38 +00:00
Chris Lattner ecca290a2a Simplify code to match new interfaces
llvm-svn: 7464
2003-08-01 04:38:18 +00:00
Chris Lattner 330808bd91 Switch over to an exception handling model for "high-level" requests.
Add new getValueAsString method.

llvm-svn: 7463
2003-08-01 04:37:57 +00:00
Chris Lattner fc6e266410 Minor cleanups
llvm-svn: 7462
2003-08-01 04:15:25 +00:00
Chris Lattner f62c489e35 Factor code out into a new getAllDerivedDefinitions method, which is generally useful
llvm-svn: 7461
2003-08-01 04:09:58 +00:00
Chris Lattner c69df616b8 More minor cleanups of the interface
llvm-svn: 7446
2003-07-31 04:43:49 +00:00
Chris Lattner c5b306b4b9 Rename createEmitter to run because eventually all tablegen backends will
be subclasses of a common interface.

llvm-svn: 7445
2003-07-31 04:38:26 +00:00
Chris Lattner 4ee57983bd Add file comment
llvm-svn: 7444
2003-07-31 04:37:57 +00:00
Chris Lattner c33ca30544 Tighten up interface
llvm-svn: 7443
2003-07-31 04:32:37 +00:00
Chris Lattner 34d10a1aab Add support for code fragments
llvm-svn: 7440
2003-07-30 22:15:58 +00:00
Chris Lattner 284136170e Initial support for the 'code' type.
llvm-svn: 7439
2003-07-30 21:47:42 +00:00
Chris Lattner 06fd68f31d Move err() to the lexer, implement file inclusion capabilities directly in tblgen
llvm-svn: 7436
2003-07-30 20:56:47 +00:00
Chris Lattner b2b694bbef Minor reorganization, move ParseFile to the lexer
llvm-svn: 7432
2003-07-30 19:55:10 +00:00
Chris Lattner 1bf13179c2 Make tablegen take an input filename to parse if one is specified, otherwise
use stdin.

llvm-svn: 7431
2003-07-30 19:48:02 +00:00
Chris Lattner af282ae26e Directly support C style comments in tblgen, but allow them to actually nest
llvm-svn: 7429
2003-07-30 19:39:36 +00:00
Chris Lattner 1de61e04fb Fix coredump for when an ID is used illegally outside a record
llvm-svn: 7411
2003-07-30 05:17:35 +00:00
Chris Lattner 03eeeb7e02 Don't pollute the namespace with template arguments after they have been resolved
llvm-svn: 7410
2003-07-30 04:56:05 +00:00
Chris Lattner c9dee67ab6 Implement TODO: disallow 'def's with template arguments.
llvm-svn: 7409
2003-07-30 04:31:17 +00:00
Chris Lattner 1b145a54cb Allow specification of anonymous definitions
llvm-svn: 7408
2003-07-30 04:26:44 +00:00
Chris Lattner 40004be9db Allow passing lists through variables
llvm-svn: 7407
2003-07-30 04:16:52 +00:00
Chris Lattner db68105987 Implement resolution of variables to the value of the variable once it gets a value
llvm-svn: 7406
2003-07-30 04:05:07 +00:00
Chris Lattner 590fd82e42 Don't crash if there is no Inst class in the tablegen file!
llvm-svn: 7402
2003-07-29 23:00:08 +00:00
Chris Lattner 8cdf385f8d Add support for Set statements without {}'s. Now we can just say
set Foo = bar in
  def blah: blahclass {}

llvm-svn: 7355
2003-07-28 03:49:40 +00:00
Chris Lattner 2c76692496 Allow initializing variable initializers with variables
llvm-svn: 7354
2003-07-28 03:39:57 +00:00
Chris Lattner 5526a4468a Use C++ headers, not C headers
llvm-svn: 7308
2003-07-25 17:32:51 +00:00
Misha Brukman ba943afa97 Added a DEBUG() guard to a debug information printout.
llvm-svn: 7203
2003-07-18 18:03:45 +00:00
Misha Brukman c7efa119ac Fixed a bug: outputting name of variable instead of its value.
Also, placed DEBUG() guards around debug information so that the generated file
is much smaller and hence should be faster to preprocess/compile.

llvm-svn: 7180
2003-07-15 21:26:09 +00:00
Misha Brukman 1912eaf0a0 This optimization greatly enhances efficiency of creating new instructions by
masking and shifting operands directly into their place in the instruction,
instead of the old-fashioned way of ORing in each bit separately.

llvm-svn: 7179
2003-07-15 21:00:32 +00:00
Misha Brukman 222639708e Stop using the `Offset' variable, as we are cycling through the bits of a field
initializer and the loop index variable already carries the offset information
that we need.

llvm-svn: 7123
2003-07-07 22:30:44 +00:00
John Criswell 3ef61afb76 Merged in autoconf branch. This provides configuration via the autoconf
system.

llvm-svn: 7014
2003-06-30 21:59:07 +00:00
John Criswell f3e7fedff3 Added assert.h so that it compiles under newer versions of GCC.
llvm-svn: 6683
2003-06-11 14:17:21 +00:00
Chris Lattner 91ca134e26 Old versions of GCC doesn't have <ostream> :(
llvm-svn: 6661
2003-06-06 23:06:20 +00:00
Misha Brukman 72d7da0397 All debug print statements are now output with the DEBUG() guard to make
output clean so that tests can automatically diff the output.

llvm-svn: 6643
2003-06-06 00:27:02 +00:00
Misha Brukman 1cca1c68e1 * Stop ignoring cc registers, since we actually use them in branches.
* Added comment as to why we are still ignoring predict and annul bits.

llvm-svn: 6636
2003-06-05 23:15:25 +00:00
Chris Lattner 1580a96e2a Spiff up options a bit
llvm-svn: 6573
2003-06-03 05:07:28 +00:00
Chris Lattner 5ef4cf863b Add -o support for TableGen
I figure that misha has done a lot of things on my todo list, the least I
can do is reciprocate a bit.  :)

llvm-svn: 6571
2003-06-03 05:04:42 +00:00
Chris Lattner 6dc6f066bc Make tablegen use more structured command line options
llvm-svn: 6570
2003-06-03 04:56:29 +00:00
Misha Brukman 7e66953f17 Stop ignoring the `cc' field, we actually use it now (e.g. conditional move)
llvm-svn: 6555
2003-06-03 00:07:17 +00:00
Misha Brukman 027b3d899f getValueOp() now takes a MachineInstr as well as a MachineOperand.
llvm-svn: 6450
2003-05-30 20:32:01 +00:00
Misha Brukman 71b9de7789 Output the opcode name of the instruction being emitted to cerr.
llvm-svn: 6386
2003-05-28 18:29:10 +00:00
Misha Brukman bf453de096 Cannot output `static' in generated cpp code: results in error. It's already
specified as a static member in class definition.

llvm-svn: 6370
2003-05-27 22:29:02 +00:00
Misha Brukman 9deee31239 * Now outputting a static function getBinaryCodeForInstr() (JIT-accessible)
* For debugging purposes:
  + output the predefined bit pattern of the instruction
* Fixed inefficiency: only load an operand from MachineInstr once
* Bug fix: did not advance bit index when seeing named bit-fields "annul", "cc"
  and "predict"
* Added a catch-all for non-supported instructions at the end of switch stmt.

llvm-svn: 6368
2003-05-27 22:19:58 +00:00
Misha Brukman 0d817c4b2e Add ability to utilize the code emitter generator (CodeEmitterGen).
llvm-svn: 6322
2003-05-24 00:17:12 +00:00
Misha Brukman a7ec8e1a3e First cut at the Code Generator using the TableGen methodology.
llvm-svn: 6321
2003-05-24 00:15:53 +00:00
Misha Brukman 25afb65692 I fixed that ``thang'', yo.
llvm-svn: 6252
2003-05-20 23:45:36 +00:00
Chris Lattner 3ef3fdf837 Fix bug
llvm-svn: 4942
2002-12-06 04:42:16 +00:00
Chris Lattner 3e6e191e39 Allow printing partially constructed bitsets
llvm-svn: 4941
2002-12-06 04:42:10 +00:00
Chris Lattner 7e73168939 Don't delete values that may still be referenced!
llvm-svn: 4940
2002-12-06 04:02:48 +00:00
Chris Lattner 07f1535894 Tighten up assertion checking
llvm-svn: 4939
2002-12-06 03:55:39 +00:00
Chris Lattner 1d7d4f64c4 Add code that can be used for debugging
llvm-svn: 4888
2002-12-03 20:01:04 +00:00
Chris Lattner 9aa0b12f0a Continue implementing field initializers
llvm-svn: 4879
2002-12-03 06:00:33 +00:00
Chris Lattner ab50fb4b2e Don't delete temporary files
llvm-svn: 4878
2002-12-03 06:00:11 +00:00
Misha Brukman 03628c6e16 Ignore generated files FileLexer.* and FileParser.*
llvm-svn: 4860
2002-12-02 21:13:59 +00:00
Chris Lattner 1a025e25ef Continued support for field intitializers
llvm-svn: 4855
2002-12-02 17:53:54 +00:00
Chris Lattner 92f18611f6 Continued support for field initializer
llvm-svn: 4854
2002-12-02 17:44:35 +00:00
Chris Lattner 522ba615f6 Continued support for Field Initializer
llvm-svn: 4853
2002-12-02 17:43:58 +00:00
Chris Lattner 72969922ea Adjustments due to new FieldInit stuff
llvm-svn: 4852
2002-12-02 17:43:43 +00:00
Chris Lattner b8ecdceb87 Add comments, factor out common code
llvm-svn: 4851
2002-12-02 16:57:01 +00:00
Chris Lattner 97984b1d5d Add support for field exprs
llvm-svn: 4850
2002-12-02 16:43:43 +00:00
Chris Lattner 3567880e6e * Move BitsInit::resolveReferences up with the rest of BitsInit code
* Initial support for field expressions

llvm-svn: 4849
2002-12-02 16:43:30 +00:00
Chris Lattner ae2bed976c Initial support for Field Expressions
llvm-svn: 4848
2002-12-02 16:42:52 +00:00
Chris Lattner 8eb531cd55 Add correct dependency
llvm-svn: 4847
2002-12-02 16:31:46 +00:00
Chris Lattner 6f19b1b6c4 Split up targets
llvm-svn: 4846
2002-12-02 16:13:42 +00:00
Chris Lattner 5d850ddb5c Add comments
llvm-svn: 4845
2002-12-02 16:13:23 +00:00
Chris Lattner a6240f6b1a Initial checkin of TableGen utility
llvm-svn: 4843
2002-12-02 01:23:04 +00:00