Commit Graph

67094 Commits

Author SHA1 Message Date
Vikram S. Adve
6a0c6d82a9 Use extra operand for instructions that set a CC register that
was not explicit before.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@347 91177308-0d34-0410-b5e6-96231b3b80d8
2001-08-06 21:05:39 +00:00
Vikram S. Adve
0fae90e3a2 Also, move burg rule to Makefile.common.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346 91177308-0d34-0410-b5e6-96231b3b80d8
2001-08-06 19:06:56 +00:00
Vikram S. Adve
bedbcf65e2 And add rule to create a .cpp source file from burg input file!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@345 91177308-0d34-0410-b5e6-96231b3b80d8
2001-08-06 19:06:43 +00:00
Vikram S. Adve
811aad97c1 Better still, lets move pathname for Burg to Makefile.common.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@344 91177308-0d34-0410-b5e6-96231b3b80d8
2001-08-06 19:01:45 +00:00
Vikram S. Adve
dba59efd43 Add path and options for burg.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@343 91177308-0d34-0410-b5e6-96231b3b80d8
2001-08-06 19:01:20 +00:00
Vikram S. Adve
735c4ce808 Use full pathname for burg.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@342 91177308-0d34-0410-b5e6-96231b3b80d8
2001-08-06 18:53:26 +00:00
Vikram S. Adve
3929cf6779 Allow numOperands of -1 for variable #operands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-31 21:55:51 +00:00
Vikram S. Adve
960066ad75 Simplify command line options, and add option for printing
machine instructions without debugging info.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@340 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-31 21:53:25 +00:00
Vikram S. Adve
cf8a5f899b Had used the wrong option.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@339 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-31 21:52:28 +00:00
Vikram S. Adve
769939dbde Added tree nodes for Phi instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@338 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-31 21:50:29 +00:00
Vikram S. Adve
e4e77f9efc Generate tree nodes for Phi instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@337 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-31 21:49:53 +00:00
Vikram S. Adve
1885da4f49 Allow machine instructions with variable numbers of arguments.
This is used only by Phi for now.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@336 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-31 21:49:28 +00:00
Vikram S. Adve
0a229ed79a Added dummy Phi instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@335 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-31 21:48:23 +00:00
Vikram S. Adve
74f4a130d2 Generate dummy Phi machine instruction, plus a bug fix for BrCond(boolreg).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-31 21:46:57 +00:00
Vikram S. Adve
35fc0b172e Added support for testing instruction selection on all but 2 tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@333 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-31 21:45:56 +00:00
Vikram S. Adve
f6445837e9 Added class MachineCodeForBasicBlock.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@332 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-30 18:49:07 +00:00
Vikram S. Adve
76d3520f3e Record machine instructions in the vector for each basic block.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-30 18:48:43 +00:00
Vikram S. Adve
b63933975f Added vector of machine instructions for the basic block.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-30 18:47:24 +00:00
Chris Lattner
877fbcd8d7 New test cases
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@329 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-28 18:04:10 +00:00
Chris Lattner
ca112b361e Remove some gross stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-28 17:52:53 +00:00
Chris Lattner
3868521e22 Allow vararg method types with 0 fixed types
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-28 17:52:35 +00:00
Chris Lattner
36e4b8aec4 Make error msg nicer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@326 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-28 17:52:14 +00:00
Chris Lattner
ee7cb29866 Enable the elimination of method prototypes that are not referenced
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@325 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-28 17:51:49 +00:00
Chris Lattner
7c5014767f * Make sure that the size of the type field can also control the output
instruction pattern.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@324 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-28 17:51:21 +00:00
Chris Lattner
3d3f289eac * Add calls to failure template so that it is actually possible to debug
why bytecode parsing is failing.  Just put a breakpoint in the failure
  templates.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@323 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-28 17:50:18 +00:00
Chris Lattner
81e29632f7 * Fix bugs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@322 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-28 17:49:02 +00:00
Chris Lattner
93750fa4f8 * Enable the use of escaped literal strings
* Unresolved variable names now have the correct line number for their
  error messages
* Rename Def* to Value*
* Check for symbol table collisions before inserting values
* Remove the STRING keyword
* Enable the use of string literals to initialize constant arrays
* Enable the use of extended constants in more locations: eg ret [int] [4, 5]
* Allow method prototypes to appear in the constant pool of the program
* Support varargs methods better.  Enable varargs methods with 0 fixed
  arguments
* Allow the entire method prototype to optionally be specified in a call inst


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-28 17:48:55 +00:00
Chris Lattner
0add2d33e4 Modify var names to make it apparant that the code is really generic
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-28 17:43:45 +00:00
Chris Lattner
dc693b8965 Changes to make test scripts more reliable
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@319 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-28 17:40:15 +00:00
Chris Lattner
e17303dc9b Add test of string constants
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@318 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-28 17:39:46 +00:00
Vikram S. Adve
7d2a2518e8 Added function printIndent.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@317 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-28 04:41:27 +00:00
Vikram S. Adve
bf2b7e8beb Added a pointer hash function object for use in pointer maps.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-28 04:41:10 +00:00
Vikram S. Adve
8b6821732e Make a function const.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@315 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-28 04:40:15 +00:00
Vikram S. Adve
588f14855f Remove lib/LLC library.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-28 04:39:27 +00:00
Vikram S. Adve
670d0abe49 Added several SPARC instructions including conditional move and SETHI.
Added MachineInstrInfo class and subclass UltraSparcInstrInfo.
Added several fields to MachineInstrDescriptor (and renamed it from
MachineInstrInfo).  Latency fields are to support scheduling.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-28 04:26:42 +00:00
Vikram S. Adve
2e4d108495 Remove redundant and unused functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@312 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-28 04:20:33 +00:00
Vikram S. Adve
3c3b713d55 Added UltraSparcInstrInfo class to specialize class MachineInstrInfo.
Relevant changes elsewhere:
Added MachineInstrInfo class and moved instruction-related members there.
Added several fields to MachineInstrDescriptor (and renamed it from
MachineInstrInfo.  Latency fields are to support scheduling.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@311 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-28 04:19:10 +00:00
Vikram S. Adve
9b0b1ec1ec Eliminate unused function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@310 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-28 04:15:45 +00:00
Vikram S. Adve
4f23166133 Bug fixes:
Store bool result in register after SetCC if the bool value
is used by anything other than a branch.
Forward-substitute operand of a VM instruction for which no
machine instruction is generated (e.g., Cast).
Other changes due to changes to classes TargetMachine and MachineInstr.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-28 04:15:15 +00:00
Vikram S. Adve
44a853cc53 Added MachineInstrInfo class and moved instruction-related members there.
Added several fields to MachineInstrDescriptor (and renamed it from
MachineInstrInfo.  Latency fields are to support scheduling.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@308 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-28 04:09:37 +00:00
Vikram S. Adve
6a175e01eb Eliminate separate enum for operand register type.
Use union for alternative data for different operand types.
Add iterator over Value* operands in a MachineInstr.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@307 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-28 04:06:37 +00:00
Chris Lattner
8ce0669a56 Work around a few 'sorting issues' with the bytecode output that causes the bytecode
not to be bit for bit identical.  This is a hack and should be fixed in the future


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-26 16:30:18 +00:00
Chris Lattner
1333ed5b4f Don't write out constants that do not have a name, they will be inlined.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@305 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-26 16:29:38 +00:00
Chris Lattner
bcbf6baf10 Refactor some of the constant stuff so that we can return complex constant
values directly.  This was causing test failures. :(


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@304 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-26 16:29:15 +00:00
Chris Lattner
9b50c1578d Add an arg to insertVal to allow us to prevent builtin types from being ignored
when they are inserted.

Ignore constant values without names.  If they are used, they will be inlined.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-26 16:28:37 +00:00
Chris Lattner
a25809dda4 Add an arg to insertVal to allow us to prevent builtin types from being ignored
when they are inserted


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-26 16:28:18 +00:00
Chris Lattner
c628b1790d New test for varargs functions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@301 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-25 22:49:12 +00:00
Chris Lattner
0c4897e5c5 Add library dep
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@300 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-25 22:48:43 +00:00
Chris Lattner
da5cfa369f Parenthesize output for expranalyze so that pointer stuff being multiplied isn't confusing
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@299 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-25 22:48:37 +00:00
Chris Lattner
f3a5981663 Build as before dis
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@298 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-25 22:48:09 +00:00