Chris Lattner
b545b1f5e9
Don't check for null on delete
...
llvm-svn: 624
2001-09-18 17:02:42 +00:00
Vikram S. Adve
64e9d6b584
Cast unsigned to int! It was causing a nice little bug.
...
llvm-svn: 614
2001-09-18 12:57:39 +00:00
Vikram S. Adve
296070fa2c
Minor changes.
...
llvm-svn: 613
2001-09-18 12:56:28 +00:00
Vikram S. Adve
65b49e5ba5
Don't add instructions to subtree for Phi or Call.
...
Free tree nodes when done.
Avoid obscuring code with for_each and bind_obj :-)
llvm-svn: 612
2001-09-18 12:54:27 +00:00
Vikram S. Adve
0a57de77e9
Format file header.
...
llvm-svn: 611
2001-09-18 12:52:03 +00:00
Vikram S. Adve
0a78fdff45
Add new entry/exit edges when removing delay slot nodes from the graph.
...
Renamed some header files.
llvm-svn: 610
2001-09-18 12:51:38 +00:00
Vikram S. Adve
1eb14a86ef
Moved erase edge functions to class SchedGraph.
...
Add new dummy edges when deleting existing edges.
llvm-svn: 609
2001-09-18 12:50:40 +00:00
Vikram S. Adve
538d42467b
Renamed some header files.
...
llvm-svn: 608
2001-09-18 12:49:39 +00:00
Vikram S. Adve
63c60c9419
Moved erase-edge functions from SchedGraphNode to SchedGraph.
...
Renamed some header files.
llvm-svn: 607
2001-09-18 12:49:26 +00:00
Vikram S. Adve
24f80f0837
Minor fixes: renamed target machine files; fold sched info into TargetMachine.
...
llvm-svn: 603
2001-09-18 12:41:43 +00:00
Ruchira Sasanka
f51404a55a
modified machine code printing
...
llvm-svn: 595
2001-09-15 21:11:11 +00:00
Ruchira Sasanka
ecc5b3b882
--added methods for printing
...
llvm-svn: 592
2001-09-15 19:08:41 +00:00
Ruchira Sasanka
3706ce9f36
added setRegForValue to MachineOperand class
...
llvm-svn: 591
2001-09-15 19:07:45 +00:00
Ruchira Sasanka
c1514789f3
fixed printing messages
...
llvm-svn: 590
2001-09-15 19:06:58 +00:00
Ruchira Sasanka
6807a780c5
-- debug messages dissabled
...
llvm-svn: 589
2001-09-15 16:54:40 +00:00
Ruchira Sasanka
e0cf66f325
--reg alloc code added
...
llvm-svn: 587
2001-09-15 00:33:26 +00:00
Ruchira Sasanka
ad27c6876c
-reg alloc code
...
llvm-svn: 586
2001-09-15 00:31:44 +00:00
Ruchira Sasanka
8308fe4dee
added RegAlloc Directory to DIRS
...
llvm-svn: 581
2001-09-14 21:28:17 +00:00
Ruchira Sasanka
e30e83df47
*** empty log message ***
...
llvm-svn: 580
2001-09-14 21:18:34 +00:00
Chris Lattner
cbf2f72954
Add a forward decl, oops.
...
llvm-svn: 573
2001-09-14 17:55:51 +00:00
Chris Lattner
d6a98c11bc
Chris seems fond of #include <vector>. Fix these. Also convert use list in
...
Value to a vector instead of a list.
Move SchedGraph.h & SchedPriorities.h into lib/CodeGen/InstrScheduling
llvm-svn: 572
2001-09-14 16:56:32 +00:00
Chris Lattner
de29307caa
Split Target/Machine.h into three files:
...
* Machine.h
* InstInfo.h
* SchedInfo.h
TODO: Split out reg info stuff
llvm-svn: 567
2001-09-14 06:08:03 +00:00
Chris Lattner
a0a3946882
Make a new llvm/Target #include directory.
...
Move files from lib/CodeGen/TargetMachine to lib/Target
Move TargetData.h and TargetMachine.h to Target/{Data.h|Machine.h}
Prepare to split TargetMachine.h into several smaller files
llvm-svn: 566
2001-09-14 05:34:53 +00:00
Chris Lattner
7e70cdb641
Checkin changes to:
...
1. Clean up the TargetMachine structure. No more wierd pointers that have to
be cast around and taken care of by the target.
2. Instruction Scheduling now takes the schedinfo as an argument. The same
should be done with the instinfo, it just isn't now.
llvm-svn: 565
2001-09-14 04:32:55 +00:00
Chris Lattner
2057603b65
Move the sparc target to a new lib/Target directory
...
llvm-svn: 562
2001-09-14 03:55:11 +00:00
Chris Lattner
0cf998996e
Move the contents of the CodeGen/TargetMachine/Sparc directory to Target/Sparc
...
llvm-svn: 560
2001-09-14 03:46:34 +00:00
Chris Lattner
3e2a85a0e3
This checkin represents some cleanup of the backend, implementing the following things:
...
1. The TargetMachine structure is free to decide the process a particular target uses to generate code.
2. All of the gooee details of the sparc backend are now localized in the lib/CodeGen/TargetMAchine/Sparc directory. The Sparc.h file that is globally visible is just a stub.
3. The Sparc.h file that esxists now will dissapear entirely someday when we have multiple backends chosen by a factory of some sort.
llvm-svn: 559
2001-09-14 03:37:52 +00:00
Chris Lattner
aa4e715da3
Updates to use local header files.
...
Note that this reverted changes that Ruchira commited that broke the build and
are unmaintainable without other checkins.
llvm-svn: 557
2001-09-14 03:33:32 +00:00
Chris Lattner
b6e1cc3118
More cleanups, preparing to revamp InstrForest to, among other things,
...
not leak all its allocated memory.
llvm-svn: 553
2001-09-12 16:34:03 +00:00
Chris Lattner
6ff8e8edce
* Clean up InstrForest
...
* Fix ins sel problem, test case:
void "foo" (int *%x, int *%y)
begin
seteq int *%x, %y
ret void
end
llvm-svn: 552
2001-09-12 01:28:49 +00:00
Chris Lattner
8cbda4e314
Eliminate 'BasicNode' from InstrForest.
...
llvm-svn: 551
2001-09-11 23:52:11 +00:00
Chris Lattner
70439801a6
Eliminate MainTreeNode function
...
llvm-svn: 550
2001-09-11 23:22:43 +00:00
Chris Lattner
2a101815b4
Remove irrelevant gross K&R Cisms
...
llvm-svn: 549
2001-09-11 23:13:38 +00:00
Chris Lattner
2a4122b6b2
Use type checking predicates
...
llvm-svn: 543
2001-09-10 20:10:26 +00:00
Chris Lattner
9f96643e60
Use correct casts
...
llvm-svn: 542
2001-09-10 20:10:02 +00:00
Chris Lattner
1ee7b9046f
Use predicate for Value type test
...
Use builtin casts
llvm-svn: 541
2001-09-10 20:09:50 +00:00
Chris Lattner
65f74b8d84
Use predicate for Value type test
...
llvm-svn: 540
2001-09-10 20:09:28 +00:00
Chris Lattner
52084c119f
Fix a bug I introduced (assertion failed: Unknown operand type), and convert to predicate style for type checks
...
llvm-svn: 531
2001-09-10 19:43:38 +00:00
Chris Lattner
69a3da6f4d
Implement the subset of the GetConstantValueAsSignedInt function that is needed, locally. Remove the two support functions to inline their contents.
...
llvm-svn: 525
2001-09-09 23:01:47 +00:00
Chris Lattner
3bce6b369a
Implement the subset of the GetConstantValueAsSignedInt function that is needed, locally.
...
llvm-svn: 524
2001-09-09 23:01:32 +00:00
Chris Lattner
d681b883a6
Fix problems with freeing memory twice
...
llvm-svn: 520
2001-09-09 22:26:29 +00:00
Vikram S. Adve
5458bc59fd
Handle cast float-to-float or cast double-to-double.
...
llvm-svn: 512
2001-09-09 20:35:34 +00:00
Chris Lattner
2e74f6ba1f
Fix build breakage. :(
...
llvm-svn: 511
2001-09-09 19:52:23 +00:00
Chris Lattner
b095aaa8f4
I really don't like it when people break the build.
...
llvm-svn: 510
2001-09-09 19:41:52 +00:00
Ruchira Sasanka
4f3751ecdd
Committed for compliation. Not yet final.
...
--Ruchira
llvm-svn: 505
2001-09-08 14:22:50 +00:00
Ruchira Sasanka
1c3c6a2fd2
--Ruchira
...
llvm-svn: 504
2001-09-08 14:10:34 +00:00
Chris Lattner
74dcfcd89b
Updates to work with new lack of constant pool
...
llvm-svn: 490
2001-09-07 21:22:57 +00:00
Chris Lattner
beefdaad8b
Remove unneeded #includes
...
llvm-svn: 489
2001-09-07 21:22:28 +00:00
Chris Lattner
fd10317614
Remove unnecesary #include add dump calls pulled out of .h file
...
llvm-svn: 488
2001-09-07 21:21:03 +00:00
Chris Lattner
c1ca76ff89
* Remove lots of #includes
...
llvm-svn: 487
2001-09-07 21:19:42 +00:00
Chris Lattner
9aac44442d
Add tags so emacs knows these are C++ files
...
llvm-svn: 483
2001-09-07 21:04:20 +00:00
Chris Lattner
e1acc842ba
The header file for a translation unit should always be included first
...
System headers should be last
llvm-svn: 475
2001-09-07 17:18:30 +00:00
Chris Lattner
796e9f8118
A file should always include it's private header file *FIRST* see the
...
coding guidelines
llvm-svn: 474
2001-09-07 17:15:18 +00:00
Chris Lattner
caac8de99d
annotations are now const
...
llvm-svn: 450
2001-09-07 16:40:04 +00:00
Ruchira Sasanka
fb626ffffe
*** empty log message ***
...
llvm-svn: 412
2001-08-31 20:59:58 +00:00
Vikram S. Adve
b79b5f6b8b
Added nonterminals for arithmetic operations where one operand is constant.
...
llvm-svn: 406
2001-08-28 23:25:46 +00:00
Vikram S. Adve
9fd1f9c1c2
Makefile for InstrSched/
...
llvm-svn: 403
2001-08-28 23:17:22 +00:00
Vikram S. Adve
778fc57b85
Remove source list.
...
llvm-svn: 402
2001-08-28 23:16:59 +00:00
Vikram S. Adve
49fddd4df3
Added directory InstrSched.
...
llvm-svn: 401
2001-08-28 23:16:13 +00:00
Vikram S. Adve
789dcfe59c
Major changes too hard to document :-)
...
llvm-svn: 400
2001-08-28 23:12:57 +00:00
Vikram S. Adve
5947c43319
Extensive additions for supporting instruction scheduling.
...
llvm-svn: 398
2001-08-28 23:10:41 +00:00
Vikram S. Adve
f9fa4cc579
Added class MachineSchedInfo and several supporting classes
...
as a machine description for instruction scheduling.
llvm-svn: 397
2001-08-28 23:09:36 +00:00
Vikram S. Adve
ad002e37d5
Implementation of instruction scheduling for LLVM.
...
Currently schedules one basic block at a time.
llvm-svn: 396
2001-08-28 23:07:19 +00:00
Vikram S. Adve
91d73a52d5
Class that encapsulates priority heuristics for instruction scheduling.
...
llvm-svn: 395
2001-08-28 23:06:49 +00:00
Vikram S. Adve
23be1e0839
Scheduling DAG for instruction scheduling. Currently for a single basic block.
...
llvm-svn: 394
2001-08-28 23:06:02 +00:00
Vikram S. Adve
8fdc52a63d
Moved debug options declaration to header file, and moved
...
a function to MachineInstr.cpp.
llvm-svn: 393
2001-08-28 23:04:38 +00:00
Vikram S. Adve
89228a786c
Moved function PrintMachineInstructions here.
...
llvm-svn: 392
2001-08-28 23:02:39 +00:00
Chris Lattner
f3b74b4736
I suck
...
llvm-svn: 385
2001-08-27 18:54:45 +00:00
Chris Lattner
6336546710
Initial checkin of TargetData code
...
llvm-svn: 384
2001-08-27 16:00:15 +00:00
Chris Lattner
3eb05bbef1
Convert to use the new factored out TargetData class
...
llvm-svn: 381
2001-08-27 15:51:16 +00:00
Chris Lattner
6ea0dfcd7e
Factor code out to the TargetData class
...
llvm-svn: 380
2001-08-27 15:50:41 +00:00
Chris Lattner
d2af693cd9
Demolish explicit source list
...
llvm-svn: 375
2001-08-27 05:18:35 +00:00
Chris Lattner
9eaf62df4a
Remove explicit source list
...
llvm-svn: 371
2001-08-25 20:40:32 +00:00
Vikram S. Adve
33b366f516
Always set isDef for operand in position resultPos.
...
llvm-svn: 357
2001-08-13 16:32:45 +00:00
Ruchira Sasanka
af7ba34d58
Changed SetMachineOpernad calls in Set3OperandsFromInstr so that the
...
result position is a def (i.e., added true to the end of call) -- Ruchira
llvm-svn: 356
2001-08-13 16:26:28 +00:00
Ruchira Sasanka
c75929f547
Changed case 64 to make the first arg of phi a defintion
...
llvm-svn: 355
2001-08-13 16:24:01 +00:00
Ruchira Sasanka
a6cea3a426
*** empty log message ***
...
llvm-svn: 351
2001-08-07 21:01:23 +00:00
Ruchira Sasanka
01c14da143
added a default isDef arg to SetMachineOperand method - Ruchira
...
llvm-svn: 350
2001-08-07 20:16:52 +00:00
Vikram S. Adve
d0579dd4ee
Add CC operand as 4th operand of SUBcc, and mark it as a def.
...
llvm-svn: 348
2001-08-06 21:06:10 +00:00
Vikram S. Adve
b1cd3ba259
Also, move burg rule to Makefile.common.
...
llvm-svn: 346
2001-08-06 19:06:56 +00:00
Vikram S. Adve
95ee2f4d4c
Better still, lets move pathname for Burg to Makefile.common.
...
llvm-svn: 344
2001-08-06 19:01:45 +00:00
Vikram S. Adve
6e358709c6
Use full pathname for burg.
...
llvm-svn: 342
2001-08-06 18:53:26 +00:00
Vikram S. Adve
62f5a2a6bb
Simplify command line options, and add option for printing
...
machine instructions without debugging info.
llvm-svn: 340
2001-07-31 21:53:25 +00:00
Vikram S. Adve
d5c5e27191
Added tree nodes for Phi instructions.
...
llvm-svn: 338
2001-07-31 21:50:29 +00:00
Vikram S. Adve
5dcec96655
Generate tree nodes for Phi instructions.
...
llvm-svn: 337
2001-07-31 21:49:53 +00:00
Vikram S. Adve
46dd49a011
Allow machine instructions with variable numbers of arguments.
...
This is used only by Phi for now.
llvm-svn: 336
2001-07-31 21:49:28 +00:00
Vikram S. Adve
a0061d1f8a
Generate dummy Phi machine instruction, plus a bug fix for BrCond(boolreg).
...
llvm-svn: 334
2001-07-31 21:46:57 +00:00
Vikram S. Adve
93d07dc925
Record machine instructions in the vector for each basic block.
...
llvm-svn: 331
2001-07-30 18:48:43 +00:00
Vikram S. Adve
ea2f7ed7e9
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.
llvm-svn: 311
2001-07-28 04:19:10 +00:00
Vikram S. Adve
137f8efbf0
Eliminate unused function.
...
llvm-svn: 310
2001-07-28 04:15:45 +00:00
Vikram S. Adve
2ae79d3e16
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.
llvm-svn: 309
2001-07-28 04:15:15 +00:00
Vikram S. Adve
ce164753ad
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.
llvm-svn: 308
2001-07-28 04:09:37 +00:00
Vikram S. Adve
a6bcc3a47e
Eliminate separate enum for operand register type.
...
Use union for alternative data for different operand types.
Add iterator over Value* operands in a MachineInstr.
llvm-svn: 307
2001-07-28 04:06:37 +00:00
Chris Lattner
3e365b974b
CommandLine library cleanup. No longer use getValue/setValue, instead, just treat the commandline
...
args as the objects they represent and the "right thing" will happen
llvm-svn: 283
2001-07-23 19:27:24 +00:00
Chris Lattner
a601339af2
Eliminated the Unique class in favor of NonCopyable and NonCopyableV
...
llvm-svn: 280
2001-07-23 18:26:21 +00:00
Chris Lattner
ff6c44f04f
Moved inline/llvm/Tools/* to include/llvm/Support/*
...
llvm-svn: 279
2001-07-23 17:46:59 +00:00
Chris Lattner
e847a66947
Clean up hash table usage
...
Remove opaque pointer used for C compatibility which isn't an issue
llvm-svn: 275
2001-07-23 03:50:57 +00:00
Chris Lattner
d73669f4c6
Removal of the redundant CompileContext wrapper
...
llvm-svn: 274
2001-07-23 03:09:03 +00:00
Chris Lattner
f42a7804c8
Large scale changes to implement new command line argument facility
...
llvm-svn: 272
2001-07-23 02:35:57 +00:00
Chris Lattner
c5758cb574
Privatize LLCOptions. It had no business being visible to the entire
...
program.
llvm-svn: 267
2001-07-22 04:40:02 +00:00
Chris Lattner
9329758c8c
Eliminate lots of unnecessary #includes and forward decls
...
there are probably more to kill
llvm-svn: 261
2001-07-21 23:24:48 +00:00
Chris Lattner
ca2a14b6a3
Eliminate many unneccesary #includes
...
llvm-svn: 260
2001-07-21 22:59:56 +00:00
Chris Lattner
f586a0a5cb
Make code fit in 80 columns more
...
llvm-svn: 259
2001-07-21 22:57:05 +00:00
Chris Lattner
56bd9d029e
Remove unneccesary #includes
...
llvm-svn: 258
2001-07-21 22:53:35 +00:00
Chris Lattner
846fdcd762
Exterminate nasty Cisms
...
llvm-svn: 257
2001-07-21 22:42:09 +00:00
Chris Lattner
5ad9c0fe87
Refer to include/llvm/CodeGen not Codegen
...
llvm-svn: 256
2001-07-21 22:32:34 +00:00
Chris Lattner
f1a2e3b6bb
Renamed include/llvm/Codegen to include/llvm/CodeGen
...
llvm-svn: 253
2001-07-21 20:58:30 +00:00
Vikram S. Adve
75d94738e6
Description of the SPARC as a target architecture.
...
llvm-svn: 233
2001-07-21 12:42:19 +00:00
Vikram S. Adve
e9a98b1c2b
Base clas for a description of a target architecture.
...
llvm-svn: 232
2001-07-21 12:42:08 +00:00
Vikram S. Adve
7145b98c93
Instruction selection via pattern matching on instruction trees using BURG.
...
llvm-svn: 231
2001-07-21 12:41:50 +00:00
Vikram S. Adve
f9db1450d8
*** empty log message ***
...
llvm-svn: 230
2001-07-21 12:41:01 +00:00