Vikram S. Adve
f87d137720
Use different op labels for bitwise logical operations and boolean logical
...
operations in BURG input trees.
llvm-svn: 1189
2001-11-08 04:51:39 +00:00
Vikram S. Adve
ef306158e5
Added a second constructor for and improved class TmpInstruction.
...
llvm-svn: 1188
2001-11-08 04:50:33 +00:00
Vikram S. Adve
2cdcbfb6e0
Major overhaul of stack frame management.
...
llvm-svn: 1185
2001-11-08 04:47:06 +00:00
Vikram S. Adve
8b33c2304f
Old file which was moved to include/llvm/Target some time back.
...
llvm-svn: 1184
2001-11-08 04:46:08 +00:00
Vikram S. Adve
848709f127
Removed MachineCodeForMethod object and made it an annotation.
...
llvm-svn: 1183
2001-11-08 04:38:58 +00:00
Chris Lattner
15b45d9783
Initial checkin of pointer safety checker
...
llvm-svn: 1181
2001-11-07 21:16:12 +00:00
Chris Lattner
ec5014e800
Okay, so this is a huge hack. Fixme later
...
llvm-svn: 1171
2001-11-07 05:31:53 +00:00
Chris Lattner
67ba96723c
New class to provide high performance writing.
...
llvm-svn: 1167
2001-11-07 04:20:50 +00:00
Vikram S. Adve
24fbd417a0
Make reg. numbers signed ints.
...
llvm-svn: 1137
2001-11-05 03:56:02 +00:00
Chris Lattner
ea63d43a07
Minor method rename
...
llvm-svn: 1119
2001-11-04 08:08:34 +00:00
Chris Lattner
1645e398fb
Add a helper function to PHI node
...
llvm-svn: 1113
2001-11-03 21:08:00 +00:00
Chris Lattner
b7cb076c0e
Expose method to merge identically named methods
...
llvm-svn: 1109
2001-11-03 19:49:54 +00:00
Ruchira Sasanka
cb3cfedff4
Moved InsertCallerSaveInstr to the SparcRegInfo.cpp and made machine independent
...
llvm-svn: 1107
2001-11-03 17:14:13 +00:00
Chris Lattner
d61e4631f5
Fix major bugs in type resolution
...
llvm-svn: 1092
2001-11-03 03:27:53 +00:00
Chris Lattner
dec971b881
Fix the linker. This bug was not fun to track down. grr
...
llvm-svn: 1090
2001-11-03 03:26:47 +00:00
Chris Lattner
d8c8439517
Print floating point numbers in expodential form so that small numbers don't get truncated, which broke the health benchmark
...
llvm-svn: 1086
2001-11-01 22:06:00 +00:00
Chris Lattner
aa5e794aaa
Expose the low level DCE mechanism to external users
...
llvm-svn: 1082
2001-11-01 07:00:21 +00:00
Chris Lattner
1942341fd4
Implement constant propogation of null pointer values.
...
llvm-svn: 1078
2001-11-01 05:55:13 +00:00
Chris Lattner
ddb95263c8
Add simpler to use ctors. Add getType() overload to specialize getelementptr's type
...
llvm-svn: 1077
2001-11-01 05:54:28 +00:00
Chris Lattner
13475b1a77
Add new isNullValue method
...
llvm-svn: 1076
2001-11-01 05:53:56 +00:00
Chris Lattner
4e4759adc0
Initial checkin of level raising code
...
llvm-svn: 1073
2001-11-01 02:41:52 +00:00
Chris Lattner
3fd0124447
Move level change xfor into the transforms directory
...
llvm-svn: 1070
2001-11-01 02:39:49 +00:00
Chris Lattner
9c5be3af9d
Add some useful accessors
...
llvm-svn: 1069
2001-11-01 02:39:36 +00:00
Chris Lattner
009d9de81c
Implement code to convert %malloc and %free FUNCTION CALLS into the instruction equivalent
...
llvm-svn: 1065
2001-10-31 06:35:59 +00:00
Chris Lattner
91fc057638
Implemented constant propogation of cast instructions
...
llvm-svn: 1064
2001-10-31 05:07:57 +00:00
Chris Lattner
ca01882422
New GCC cleanup pass interface
...
llvm-svn: 1061
2001-10-31 04:32:53 +00:00
Chris Lattner
2fa3e1f85d
Fix ordering problem. Found by purify. :)
...
llvm-svn: 1042
2001-10-30 16:38:49 +00:00
Chris Lattner
ad6e4d8ca7
Expose some more printing functionality from the assembly writer library
...
llvm-svn: 1030
2001-10-29 16:36:49 +00:00
Chris Lattner
b89ee439ae
Systems headers use <> not ""
...
llvm-svn: 1023
2001-10-29 13:29:50 +00:00
Chris Lattner
bf9a3148af
Include functionality to get a string array constant as a string
...
llvm-svn: 1020
2001-10-29 13:24:31 +00:00
Chris Lattner
e9c4fcd1fb
Remove useCSyntax flag
...
llvm-svn: 1019
2001-10-29 13:22:49 +00:00
Chris Lattner
cd24a45f20
Initial checkin of name mangling code. Moved from Linker.h
...
llvm-svn: 1017
2001-10-28 23:31:10 +00:00
Chris Lattner
f4ae52e531
Remove unneccesary function prototypes
...
llvm-svn: 1014
2001-10-28 22:40:59 +00:00
Vikram S. Adve
6c92ae29b9
Added a constant pool to record values that need to be emitted
...
in the assembly code.
llvm-svn: 999
2001-10-28 21:24:50 +00:00
Vikram S. Adve
a77d3e6adb
Add support for name mangling.
...
llvm-svn: 998
2001-10-28 21:23:44 +00:00
Vikram S. Adve
f3e3a2e8cc
Switch useLLVMSyntax to useCSyntax.
...
llvm-svn: 997
2001-10-28 21:21:25 +00:00
Vikram S. Adve
cdb8a8f93e
Support printing control characters in standard C/assembly style.
...
llvm-svn: 995
2001-10-28 21:06:48 +00:00
Ruchira Sasanka
3c4d2dea7c
Added support for spilling
...
llvm-svn: 992
2001-10-28 18:15:12 +00:00
Ruchira Sasanka
b1f435fb91
Moved callerSaving code to machine specific classes since we have to handle
...
%ccr reg differently.
llvm-svn: 991
2001-10-28 18:14:15 +00:00
Chris Lattner
7ec504f5dc
Changes to get some meaningful feedback from the bytecode reader. At some point this stuff should all be exception driven, but for now it is not.
...
llvm-svn: 970
2001-10-24 01:15:12 +00:00
Chris Lattner
db06de9f17
More symbol table bugfixes that are impossible to track down. Goody
...
llvm-svn: 960
2001-10-23 02:32:45 +00:00
Chris Lattner
e8b0d4522f
Fix another annoying bug that took forever to track down. This one involves abstract type resolution at a bad time that broke symbol tables.
...
llvm-svn: 958
2001-10-23 01:53:01 +00:00
Vikram S. Adve
67da8bfa0c
Added object of class MachineCodeForMethod.
...
llvm-svn: 953
2001-10-22 13:58:08 +00:00
Vikram S. Adve
4955d04e5a
Added class MachineCodeForMethod to provide method-level information
...
about the generated native code (e.g., frame layout information).
llvm-svn: 952
2001-10-22 13:57:39 +00:00
Vikram S. Adve
203d3a37d6
Added function interfaces for generating prolog and epilog code.
...
The functions must be implemented by the target-specific code generator.
llvm-svn: 951
2001-10-22 13:56:33 +00:00
Vikram S. Adve
5b5546998a
Added function IsLeafMethod to identify leaf methods.
...
This will use the CallGraph only if one is provided.
llvm-svn: 950
2001-10-22 13:55:46 +00:00
Chris Lattner
3495dd8b2f
Fix bug exposed by this testcase:
...
declare int "call_operand" (%rtx_def*, int) ;; Prototype for: call_operand
declare int "restore_operand" (%rtx_def*, int) ;; Prototype for: restore_operand
%rtx_def = type opaque
%rtx_def = type int
implementation
llvm-svn: 934
2001-10-22 04:55:44 +00:00
Ruchira Sasanka
6df15c541f
Added support for both call/jmpl instructions
...
llvm-svn: 930
2001-10-21 16:43:41 +00:00
Ruchira Sasanka
5362db6250
Added code to Initialize (MachineOperand) to initialize regNum to -1 -- Ruchira
...
llvm-svn: 919
2001-10-19 18:17:49 +00:00
Chris Lattner
bd93ec9e5f
Refactor code into Assembly & bytecode libraries
...
llvm-svn: 903
2001-10-18 20:31:54 +00:00
Chris Lattner
aaf97a123b
initial checkin
...
llvm-svn: 902
2001-10-18 20:31:42 +00:00
Chris Lattner
ffe8f6e43b
move llvm/Transforms/Pass.h to the top level llvm/Pass.h file
...
llvm-svn: 901
2001-10-18 20:19:09 +00:00
Chris Lattner
ff23ec4b41
Initial Checkin
...
llvm-svn: 896
2001-10-18 20:05:30 +00:00
Chris Lattner
e4bae737ff
Pull bytecode writing out of Module writer pass. Prepare to move to seperate file
...
llvm-svn: 895
2001-10-18 20:05:07 +00:00
Chris Lattner
f11fb026c8
Add operator[] accessors
...
llvm-svn: 894
2001-10-18 20:04:40 +00:00
Vikram S. Adve
46310c1fed
Add option to print per module instead of per method, so that
...
global declarations are also printed.
llvm-svn: 891
2001-10-18 18:13:49 +00:00
Vikram S. Adve
ec2a0b15bf
Add option to print as bytecode instead of assembly.
...
llvm-svn: 887
2001-10-18 13:47:49 +00:00
Chris Lattner
568aa25a33
Convert to new simpler Pass structure
...
Componentize better
llvm-svn: 879
2001-10-18 05:22:27 +00:00
Chris Lattner
5be361613d
Convert to new simpler Pass structure
...
llvm-svn: 878
2001-10-18 05:22:15 +00:00
Chris Lattner
931b135143
Convert to new simpler pass structure
...
llvm-svn: 877
2001-10-18 05:21:56 +00:00
Chris Lattner
806b0d53d8
Simplify Pass by removing silly subclasses
...
Fix an iterator problem
llvm-svn: 876
2001-10-18 05:20:53 +00:00
Chris Lattner
bcf4e18b12
Fix minor bug, update comments
...
llvm-svn: 875
2001-10-18 01:49:48 +00:00
Chris Lattner
d29a604bc9
Pass's return true if they make a modification, not if they fail
...
llvm-svn: 872
2001-10-18 01:32:17 +00:00
Chris Lattner
a913b68b67
Convert optimizations to use the Pass infrastructure
...
llvm-svn: 871
2001-10-18 01:31:58 +00:00
Vikram S. Adve
b66fc8ac17
Added virtual function to generate an instruction sequence to
...
load a constant into a register.
llvm-svn: 862
2001-10-18 00:02:06 +00:00
Vikram S. Adve
c83118d53f
1. Add a bottom-up pass on BURG trees that is used to fix constant operands.
...
Needs to be bottom up because constant values may be forward-substituted
to their uses (i.e., into the parent in the BURG tree).
2. Move most of the constant-fixup code into machine-indepedent file
InstrSelectionSupport.cpp.
llvm-svn: 860
2001-10-17 23:59:09 +00:00
Vikram S. Adve
aff0c3b0f5
Remove extra assert in dyn_cast_or_null.
...
llvm-svn: 856
2001-10-17 22:39:50 +00:00
Ruchira Sasanka
6be2863ed7
added initializing regNum to -1 in both constructors of MachineOperand
...
llvm-svn: 851
2001-10-16 16:36:34 +00:00
Ruchira Sasanka
26ab9c8e61
Added support for caller saving
...
llvm-svn: 847
2001-10-16 01:23:19 +00:00
Chris Lattner
be66ee81bd
Print Debug Code to stderr instead of stdout so that it doesn't mess up the assembly output
...
llvm-svn: 841
2001-10-15 18:30:06 +00:00
Chris Lattner
463b90cb78
ConcretePass should not be a templated class!
...
llvm-svn: 838
2001-10-15 17:47:13 +00:00
Chris Lattner
9bfad5b7b1
Add new Pass infrastructure and some examples
...
llvm-svn: 836
2001-10-15 17:31:51 +00:00
Chris Lattner
9e0f07c207
Convert to use Pass infrastructure
...
llvm-svn: 834
2001-10-15 17:30:18 +00:00
Chris Lattner
6a4db15e88
File moved to: llvm/Transforms/HoistPHIConstants.h
...
llvm-svn: 833
2001-10-15 17:30:06 +00:00
Ruchira Sasanka
bd3efa900e
--changed Sugesting colors for method calls/return values etc.
...
llvm-svn: 829
2001-10-15 16:23:48 +00:00
Ruchira Sasanka
54051b75a7
fixed a coalscing bug
...
llvm-svn: 828
2001-10-15 16:22:44 +00:00
Chris Lattner
eba2b7cf61
Be const correct
...
llvm-svn: 826
2001-10-15 15:54:43 +00:00
Chris Lattner
d9c11e528c
Add cast_or_null & dyn_cast_or_null
...
llvm-svn: 824
2001-10-15 13:41:37 +00:00
Chris Lattner
fd1ab08cba
Rename ConstPoolPointerReference to ConstPoolPointerRef - My fingers get tired typing that much
...
llvm-svn: 822
2001-10-15 13:21:42 +00:00
Chris Lattner
b66d7f5416
Improve error messages on assertion failure.
...
llvm-svn: 821
2001-10-15 13:13:32 +00:00
Chris Lattner
657954e39b
*** empty log message ***
...
llvm-svn: 813
2001-10-14 23:34:12 +00:00
Chris Lattner
c86be70de5
Update comment, remove misleading method
...
llvm-svn: 806
2001-10-14 23:26:24 +00:00
Chris Lattner
7de225b35d
Initializers are not const even if the GV is.
...
llvm-svn: 805
2001-10-14 23:24:46 +00:00
Vikram S. Adve
ebdf1737c4
Cast NULL when requested.
...
llvm-svn: 803
2001-10-14 23:21:06 +00:00
Vikram S. Adve
c46b4eb5fe
Added getEntryNode() and getExitNode() functions.
...
The latter are actually bogus and will be fixed by me soon.
llvm-svn: 802
2001-10-14 23:20:44 +00:00
Vikram S. Adve
a62d1703a1
Insert code to trace values at basic block and method exits.
...
llvm-svn: 801
2001-10-14 23:19:02 +00:00
Vikram S. Adve
8a6626476e
Added routine to create a char array for a string.
...
llvm-svn: 798
2001-10-14 23:16:27 +00:00
Chris Lattner
42433c96b6
Use the instruction.def file to remain up to date with future instruction
...
changes
llvm-svn: 792
2001-10-14 17:24:50 +00:00
Chris Lattner
a23671c6ba
New file to define instructions...
...
llvm-svn: 791
2001-10-14 17:24:33 +00:00
Chris Lattner
b789255b4e
New module linking functionality prototype
...
llvm-svn: 789
2001-10-13 16:57:49 +00:00
Chris Lattner
d4a327ff93
Dang, I screwed up the merge. This should be better
...
llvm-svn: 785
2001-10-13 07:18:40 +00:00
Chris Lattner
010b35c757
Fix filename in comment
...
llvm-svn: 751
2001-10-13 06:32:42 +00:00
Chris Lattner
7ca4d97de9
Better linux support. This file still sucks
...
llvm-svn: 750
2001-10-13 06:31:55 +00:00
Chris Lattner
217ae5645d
Fix broken #endif
...
llvm-svn: 749
2001-10-13 06:31:00 +00:00
Chris Lattner
815755f9f9
not is a keyword in Ansi C++. Avoid it
...
llvm-svn: 748
2001-10-13 06:30:39 +00:00
Chris Lattner
a4d1133109
Clean up initializers for GCC 2.96
...
llvm-svn: 747
2001-10-13 06:30:10 +00:00
Chris Lattner
c6085d8351
Remove exception specification. Only slows code down.
...
llvm-svn: 746
2001-10-13 06:25:30 +00:00
Chris Lattner
99189a2ebf
Changes to compile with GCC 2.96
...
llvm-svn: 745
2001-10-13 06:25:03 +00:00
Chris Lattner
1e90c0f0c8
Add comment indicating semantics of indirect calls
...
llvm-svn: 744
2001-10-13 06:24:35 +00:00
Chris Lattner
9fbe12b850
New ctor for invoke inst
...
llvm-svn: 743
2001-10-13 06:24:10 +00:00
Chris Lattner
f17ca56ec5
Add support for indirect calls
...
llvm-svn: 742
2001-10-13 06:23:14 +00:00
Chris Lattner
ef76e319e9
Add some casts to make GCC 2.96 happy.
...
llvm-svn: 741
2001-10-13 06:20:07 +00:00
Chris Lattner
7fc8835f8a
Add use_back() methods
...
llvm-svn: 740
2001-10-13 06:18:19 +00:00
Chris Lattner
027f8b242b
Add classof implementations for User
...
llvm-svn: 739
2001-10-13 06:18:05 +00:00
Chris Lattner
be717b6402
Expose typedefs
...
llvm-svn: 738
2001-10-13 06:17:50 +00:00
Chris Lattner
6a615c53a2
Add support for module local constants
...
llvm-svn: 737
2001-10-13 06:17:32 +00:00
Chris Lattner
c950dfff3a
Add new opcode for Invoke instruction
...
llvm-svn: 736
2001-10-13 06:15:20 +00:00
Chris Lattner
08d4945387
Minor changes, add new ctor for invoke instruction
...
llvm-svn: 735
2001-10-13 06:14:53 +00:00
Chris Lattner
8cf2a5b5c2
Add assertions
...
llvm-svn: 734
2001-10-13 06:12:38 +00:00
Chris Lattner
a9747cdcb4
* Minor Formatting changes.
...
* MethodType now takes an explicit isVarArg arg instead of an implicit
voidTy on the argument list
llvm-svn: 733
2001-10-13 06:12:30 +00:00
Chris Lattner
36b4a2152b
* Add destroyConstant stuff to handle module local constants
...
* Add classof implementations for more ConstPoolVal subclasses
* Pull null pointer implementation stuff out of ConstPoolPointer into
a subclass ConstPoolPointerNull
* Implement ConstPoolPointerReference correctly and completely
llvm-svn: 732
2001-10-13 06:11:10 +00:00
Ruchira Sasanka
44e467ec90
--added support for implicit operands in machine instructions
...
llvm-svn: 727
2001-10-12 17:46:27 +00:00
Vikram S. Adve
cc2f052087
Record implicitRefs for each machine instruction instead of
...
each VM instruction.
llvm-svn: 725
2001-10-11 04:23:19 +00:00
Vikram S. Adve
2c19cf9a69
Machine-independent code generation routines used in instruction
...
selection. These used to live in several different places before.
llvm-svn: 719
2001-10-10 20:50:43 +00:00
Vikram S. Adve
392ad31850
Moved code generation support routines to InstrSelectionSupport.{h,cpp}.
...
llvm-svn: 718
2001-10-10 20:50:20 +00:00
Chris Lattner
ac7f7b4758
Factor parentness out of Module & GlobalVariable into GlobalValue
...
Implement SymbolTable debug/dump utility
llvm-svn: 710
2001-10-03 19:28:15 +00:00
Chris Lattner
5fa26313dd
Share ConstPoolPointer elements correctly
...
llvm-svn: 706
2001-10-03 15:38:36 +00:00
Chris Lattner
a01eda3091
* Both Method & GlobalVariable now subclass GlobalValue
...
* ConstPoolPointerReference now represents a pointer to a GlobalValue
* Methods name references are now explicit pointers to methods
* Rename Value::GlobalVal to Value::GlobalVariableVal to avoid confusion
llvm-svn: 703
2001-10-03 14:53:21 +00:00
Chris Lattner
af910dda17
First try at a horrible global value reference wrapper
...
llvm-svn: 701
2001-10-03 06:12:09 +00:00
Chris Lattner
08b1dde37e
Commit more code over to new cast style
...
llvm-svn: 697
2001-10-02 03:41:24 +00:00
Chris Lattner
ad1b0a1a83
Convert more code to use new style casts
...
Eliminate old style casts from value.h
llvm-svn: 696
2001-10-01 20:11:19 +00:00
Chris Lattner
4c684cde80
Add more support for new style casts
...
Convert more code to use them
llvm-svn: 695
2001-10-01 18:26:53 +00:00
Chris Lattner
43781f1f96
Add support for new style casts
...
llvm-svn: 694
2001-10-01 16:18:37 +00:00
Chris Lattner
b59e92797b
Add support for newer cleaner isa, cast, dyn_cast
...
llvm-svn: 693
2001-10-01 13:58:13 +00:00
Chris Lattner
bb7743d148
Update comments
...
llvm-svn: 692
2001-10-01 13:34:22 +00:00
Chris Lattner
345daca305
Pull predecessor and successor iterators out of the CFG*.h files, and plop them into
...
the BasicBlock class where they should be. pred_begin/pred_end become methods on BasicBlock,
and the cfg namespace isn't used anymore.
llvm-svn: 691
2001-10-01 13:19:53 +00:00
Chris Lattner
e646911562
Pull predecessor and successor iterators out of the CFG*.h files, and plop them into
...
the BasicBlock class where they should be. pred_begin/pred_end become methods on BasicBlock,
and the cfg namespace isn't used anymore.
Also pull Interval stuff into the Interval class out of the global namespace
llvm-svn: 690
2001-10-01 13:19:41 +00:00
Vikram S. Adve
a491a05515
Add vector `implicitUses' to class MachineCodeForVMInstr to hold values
...
that are used by the VM instruction but not explicit operands of the
m/c instruction.
llvm-svn: 684
2001-10-01 00:18:12 +00:00
Ruchira Sasanka
9d68af20a7
no major change.
...
llvm-svn: 674
2001-09-30 23:22:45 +00:00
Ruchira Sasanka
bd64539bb4
added suggesting color suppor
...
llvm-svn: 672
2001-09-30 23:19:09 +00:00
Chris Lattner
94ef0a1a2c
Implement a constant pointer value
...
llvm-svn: 667
2001-09-30 20:14:07 +00:00
Chris Lattner
a8f5e13f7a
Pull iterators out of CFG.h and genericize them with GraphTraits
...
llvm-svn: 666
2001-09-28 22:59:14 +00:00
Chris Lattner
9b45b18404
Pull iterators out of CFG.h and CFGdecls and put them in Support directory
...
llvm-svn: 664
2001-09-28 22:56:31 +00:00
Chris Lattner
74c4c61d71
Initial support for construction of a call graph
...
llvm-svn: 660
2001-09-28 00:08:15 +00:00
Chris Lattner
48f0041088
print out value's by pointer
...
llvm-svn: 655
2001-09-28 00:06:28 +00:00
Chris Lattner
62dea18f11
Add capability to print out call graph
...
llvm-svn: 654
2001-09-28 00:06:15 +00:00
Chris Lattner
030d4ca8f4
Change debug info from #define to command line option
...
llvm-svn: 646
2001-09-19 16:26:10 +00:00
Chris Lattner
2ab05b6f57
Remove debugging output stuff
...
llvm-svn: 641
2001-09-19 14:08:25 +00:00
Chris Lattner
caed4f916d
Add emitAssembly Method
...
llvm-svn: 639
2001-09-19 13:54:19 +00:00
Ruchira Sasanka
6d773d9580
*** empty log message ***
...
llvm-svn: 634
2001-09-18 22:57:47 +00:00
Ruchira Sasanka
70506bf77c
--added methods to operand class to set/get registers after register allocation
...
llvm-svn: 633
2001-09-18 22:54:47 +00:00
Chris Lattner
36b943c222
Move operator << from Value.h to Assembly/Writer.h
...
llvm-svn: 626
2001-09-18 17:03:14 +00:00
Chris Lattner
7f96c71d97
Remove operator << to Assembly/Writer.h
...
llvm-svn: 625
2001-09-18 17:03:04 +00:00
Vikram S. Adve
ef4f0a345c
Renamed files to match the primary classes they provide.
...
llvm-svn: 620
2001-09-18 13:10:05 +00:00
Vikram S. Adve
8d5a1bf96f
Moved debugging interfaces for class Value to Value.h.
...
llvm-svn: 604
2001-09-18 12:43:15 +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
Vikram S. Adve
ed85a627bc
Make class TargetMachine the common interface to all target-dependent
...
information, including instr, sched, and reg information.
Rename files to match the primary classes they provide.
llvm-svn: 602
2001-09-18 12:38:31 +00:00
Vikram S. Adve
8355be1b92
Added debugging support.
...
llvm-svn: 601
2001-09-18 12:23:40 +00:00
Chris Lattner
ac91b150a7
Add support for global constants, and for initializers for constants
...
llvm-svn: 598
2001-09-18 04:01:05 +00:00
Ruchira Sasanka
f8c425fc43
added a method to get reg num after register allocation
...
llvm-svn: 596
2001-09-15 21:11:48 +00:00
Ruchira Sasanka
c6fb737c19
-modified machine operand class - took regNum out of union to set regNum after
...
retister allocation.
llvm-svn: 594
2001-09-15 20:16:41 +00:00
Ruchira Sasanka
6807a780c5
-- debug messages dissabled
...
llvm-svn: 589
2001-09-15 16:54:40 +00:00
Ruchira Sasanka
9bc086977b
added reg alloc support
...
llvm-svn: 588
2001-09-15 00:34:31 +00:00
Ruchira Sasanka
e0cf66f325
--reg alloc code added
...
llvm-svn: 587
2001-09-15 00:33:26 +00:00
Ruchira Sasanka
803a63ced2
*** empty log message ***
...
llvm-svn: 579
2001-09-14 20:31:39 +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
76f3eeaccf
Minor reformatting, & protection fixes
...
llvm-svn: 570
2001-09-14 16:08:06 +00:00
Chris Lattner
e8a8afce05
Split Register specific stuff out from TargetMachine.h to RegInfo.h
...
Get rid of unneccesary #includes from TargetMachine.h
llvm-svn: 568
2001-09-14 06:20:10 +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
161b4af2f6
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.
3. Sparc.h is now just a factory method. Eventually this file will dissapear,
but probably not until we have more than one backend. :)
llvm-svn: 564
2001-09-14 04:32:38 +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
676ea87be5
Initial instruction tree support for the analysis library
...
llvm-svn: 555
2001-09-14 01:42:26 +00:00
Chris Lattner
5c7c21efb1
Generic k-way tree support
...
llvm-svn: 554
2001-09-14 01:42:01 +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
277c7264f6
Handle subtract in expression classifier
...
llvm-svn: 548
2001-09-11 04:27:34 +00:00
Chris Lattner
553dad9da6
Disable destructors on constants
...
llvm-svn: 547
2001-09-11 04:27:19 +00:00
Chris Lattner
f38c10222e
* Add capability of printing out a global variable
...
llvm-svn: 534
2001-09-10 20:06:47 +00:00
Chris Lattner
d6023649c7
* Method::getType should return type cast as MethodType, eliminate getMethodType
...
* Make Type::*Ty not be const types
* Add a new Type.def file to provide info about types
* Add a full complement of casting methods to the Type class
llvm-svn: 533
2001-09-10 20:06:17 +00:00
Chris Lattner
fc53415334
Update assertion to allow extra case
...
llvm-svn: 532
2001-09-10 20:02:12 +00:00
Chris Lattner
9d1629d688
Implement global variable support
...
llvm-svn: 530
2001-09-10 07:58:01 +00:00
Chris Lattner
9b5fd40742
Remove 3 gross global functions that don't belong here
...
llvm-svn: 523
2001-09-09 23:00:59 +00:00
Chris Lattner
9985e9db71
Rename contype to subtype
...
llvm-svn: 522
2001-09-09 22:26:58 +00:00
Chris Lattner
3728d62a06
Convert ConstRules to use annotations to clean it up.
...
llvm-svn: 514
2001-09-09 21:00:23 +00:00
Chris Lattner
2e74f6ba1f
Fix build breakage. :(
...
llvm-svn: 511
2001-09-09 19:52:23 +00:00
Chris Lattner
982bbcfb36
Remove extra #include
...
llvm-svn: 508
2001-09-09 19:34:25 +00:00
Ruchira Sasanka
3d7313423c
*** empty log message ***
...
llvm-svn: 507
2001-09-08 17:23:06 +00:00
Ruchira Sasanka
5f9e5b6bc7
*** empty log message ***
...
llvm-svn: 506
2001-09-08 14:32:00 +00:00
Ruchira Sasanka
4f3751ecdd
Committed for compliation. Not yet final.
...
--Ruchira
llvm-svn: 505
2001-09-08 14:22:50 +00:00
Chris Lattner
f828410b63
New file for supporting abstract types
...
llvm-svn: 502
2001-09-07 23:00:03 +00:00
Chris Lattner
e0ca8ad220
Provide a way to change the incoming value for a phi node
...
llvm-svn: 495
2001-09-07 22:19:55 +00:00
Chris Lattner
0b0dae7bdb
* Remove lots of unnecesary #includes
...
* Remove extra flyers
* Remove dependence on stringExtras by eliminating printIndent calls
llvm-svn: 486
2001-09-07 21:18:16 +00:00
Chris Lattner
3f36c6fe59
* Remove lots of annoying extra #includes
...
* Elminate dependecy on stringextras.h by moving dump's into .cpp files
* Kill InOutIterator class because it breaks iterator semantics to work like that
- Copy ctor on iterator doesn't work.
llvm-svn: 485
2001-09-07 21:07:10 +00:00
Chris Lattner
31e4c8874f
* Add tag so emacs knows it's a c++ file
...
* Remove frivolous flyers
llvm-svn: 484
2001-09-07 21:04:59 +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
5c5ee6b8b4
Remove extra space
...
llvm-svn: 482
2001-09-07 21:03:14 +00:00
Chris Lattner
2db0f7a35f
Remove ReversePostOrderTraversal declaration
...
llvm-svn: 481
2001-09-07 21:02:50 +00:00
Chris Lattner
a1f1e01665
* Don't predefine ReversePostOrderTraversal because it adds a dependence on vector
...
* static ctor/dtor is actually a REALLY good idea
* Remove explicit copy ctor and op=
llvm-svn: 480
2001-09-07 21:02:14 +00:00
Chris Lattner
cd69a08c26
NEw file
...
llvm-svn: 478
2001-09-07 19:29:23 +00:00
Chris Lattner
4272da0927
Follow the golden rule of the coding standards guide: Make the code look
...
like the rest of the system.
llvm-svn: 476
2001-09-07 17:38:10 +00:00
Chris Lattner
fb273d331f
Constant pool is eliminated
...
llvm-svn: 473
2001-09-07 17:08:28 +00:00
Chris Lattner
dafdd1ce54
Add support for iteration through type graphs
...
Static constructors destroy genericity
llvm-svn: 472
2001-09-07 17:04:29 +00:00
Chris Lattner
e9a2b44041
* Fixed mapped_iterator to actually work with functors
...
* Implement mapto function that works like map in a functional programming language
llvm-svn: 439
2001-09-07 16:30:28 +00:00
Chris Lattner
477cbbd351
Constant pools no longer exist
...
llvm-svn: 438
2001-09-07 16:29:55 +00:00
Chris Lattner
8eeaca2118
Eliminate DoConstantPoolMerging. ConstantPools no longer exist
...
llvm-svn: 437
2001-09-07 16:29:40 +00:00
Chris Lattner
457dd333a4
You no longer have to delete constants! They are located in a global
...
constant pool instead of in local ones.
Change bool handling to prevent modification of bool values
llvm-svn: 436
2001-09-07 16:29:18 +00:00
Chris Lattner
9464de6a0f
Annotations are now passed around as const objects
...
llvm-svn: 435
2001-09-07 16:28:25 +00:00
Chris Lattner
3160e29bae
Use a deque instead of a vector for greater efficiency writing bytecode
...
llvm-svn: 434
2001-09-07 16:27:49 +00:00
Chris Lattner
25101c9f38
Clean stuff up.
...
Types are not named, they are described
llvm-svn: 433
2001-09-07 16:27:25 +00:00
Chris Lattner
63820f443d
Simplify SlotCalculator. SlotCalculator is now not a ModuleAnalyzer
...
llvm-svn: 432
2001-09-07 16:27:05 +00:00
Chris Lattner
75c2b8034b
Simplify analyzer
...
llvm-svn: 431
2001-09-07 16:26:36 +00:00
Chris Lattner
132d1f8efd
* Fix long standing problems that would affect inlining. How could this have worked?
...
* Update to new setName interface
llvm-svn: 430
2001-09-07 16:26:13 +00:00
Chris Lattner
73856b65c7
Add assertion to check for
...
alloca [int]
for example
llvm-svn: 429
2001-09-07 16:25:42 +00:00
Chris Lattner
080104e2fe
* Values are AbstactTypeUsers to support abstract types
...
* SetName now takes extra parameter to support naming types and constants without handles
llvm-svn: 428
2001-09-07 16:25:23 +00:00
Chris Lattner
1a4da8a9b3
Remove extra whitespace at EOL
...
llvm-svn: 427
2001-09-07 16:24:35 +00:00
Chris Lattner
d44f5e0a60
* Add support for Opaque & Abstract types.
...
* Remove silly enum values that are never going to be used
* What used to be a types "name" is now it's "description"
* Add a new iterator to type to allow users to iterate over subtypes
llvm-svn: 426
2001-09-07 16:23:59 +00:00
Chris Lattner
d239f94d88
Support abstract types by keeping on the use list of the abstract type.
...
llvm-svn: 425
2001-09-07 16:21:36 +00:00
Chris Lattner
4141b13ff6
SymTabValues no longer hold constant pools
...
llvm-svn: 424
2001-09-07 16:21:04 +00:00
Chris Lattner
51152baa4a
SymTabValue no longer includes ValueHolder for Module. Include it ourself
...
llvm-svn: 423
2001-09-07 16:20:46 +00:00
Chris Lattner
9dccaed65c
* Support new setName interface
...
* Make the iterator a little nicer
llvm-svn: 422
2001-09-07 16:20:18 +00:00
Chris Lattner
7f8ccda329
Support new setName interface
...
llvm-svn: 421
2001-09-07 16:19:55 +00:00
Chris Lattner
8cae894583
* Add new DerivedType base class that goes between Type and the derived types
...
* Implement abstract types
* Add new Opaque derived type
llvm-svn: 420
2001-09-07 16:19:29 +00:00
Chris Lattner
1eb6fb36db
Implement support for globally unique constants. Constants no longer live
...
in a module or method local pool, they are global to the llvm system.
llvm-svn: 419
2001-09-07 16:18:19 +00:00
Chris Lattner
28141ac535
Add support for walking type graphs
...
llvm-svn: 418
2001-09-07 16:17:24 +00:00
Chris Lattner
bfbc1e3d24
Changing setName semantics
...
llvm-svn: 417
2001-09-07 16:16:57 +00:00
Chris Lattner
0707315524
Make annotations operations const with a mutable annotation list so that
...
we can annotate Types. A better solution would be make types nonconst.
llvm-svn: 416
2001-09-07 16:16:35 +00:00
Ruchira Sasanka
dceb09f3d8
*** empty log message ***
...
llvm-svn: 411
2001-08-31 20:30:42 +00:00
Vikram S. Adve
62a903416c
Added function MachineInstr::operandIsDefined(i) and decl for
...
function PrintMachineInstructions.
llvm-svn: 399
2001-08-28 23:11:46 +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
3ac9f99cf5
Simplification transformations to normalize the code for later passes.
...
llvm-svn: 389
2001-08-28 21:40:27 +00:00
Vikram S. Adve
23d0560303
Use const int instead of #define.
...
llvm-svn: 388
2001-08-28 21:35:26 +00:00
Vikram S. Adve
c1c65235ef
Add copy and assignment operators for POIterator, and
...
static constructors.
llvm-svn: 387
2001-08-28 21:34:56 +00:00
Chris Lattner
6336546710
Initial checkin of TargetData code
...
llvm-svn: 384
2001-08-27 16:00:15 +00:00
Chris Lattner
511d1ca915
Use the new TargetData class to factor out some of the shared code
...
between the static compilers and the interpreter.
llvm-svn: 379
2001-08-27 15:50:12 +00:00
Chris Lattner
85b42a0028
Remove target specific method.
...
llvm-svn: 378
2001-08-27 15:49:36 +00:00
Chris Lattner
5b2fcfe217
Remove target specific code, move to TargetData.cpp file
...
llvm-svn: 377
2001-08-27 15:49:16 +00:00
Chris Lattner
9ae4b40717
Extend annotations to pass data pointers around to the functions
...
llvm-svn: 374
2001-08-27 05:17:47 +00:00
Chris Lattner
d381beea6a
Add annotation support
...
llvm-svn: 366
2001-08-23 17:07:56 +00:00
Chris Lattner
0ecf68a068
Add annotation support to value
...
llvm-svn: 363
2001-08-23 17:06:21 +00:00
Chris Lattner
2c9c90497a
* Add assertions
...
* Add a nodeVisited method to the DF interator
llvm-svn: 362
2001-08-23 17:05:59 +00:00
Ruchira Sasanka
74f3230149
LV info on machine instructions
...
llvm-svn: 359
2001-08-20 21:11:01 +00:00
Ruchira Sasanka
8078a494fc
Corrected the compilation error by making the ValOperator class a friend of
...
MachineOperand class - Ruchira
llvm-svn: 358
2001-08-13 16:54:48 +00:00
Vikram S. Adve
bd05af6e92
Can't use ref to stack value!
...
llvm-svn: 354
2001-08-09 20:14:22 +00:00
Vikram S. Adve
5f9e728807
Needed old conditions as well as new in skipToNextVal()!
...
llvm-svn: 353
2001-08-09 19:18:33 +00:00
Vikram S. Adve
36a0da1ec3
Bug fix in ValOpIterator: not moving past operand with NULL Value.
...
llvm-svn: 352
2001-08-08 00:15:42 +00:00
Ruchira Sasanka
a6cea3a426
*** empty log message ***
...
llvm-svn: 351
2001-08-07 21:01:23 +00:00
Ruchira Sasanka
66e8472995
Added isDef field to MachineOperand class - Ruchira
...
llvm-svn: 349
2001-08-07 20:14:30 +00:00
Vikram S. Adve
5a4b37da6b
Use extra operand for instructions that set a CC register that
...
was not explicit before.
llvm-svn: 347
2001-08-06 21:05:39 +00:00
Vikram S. Adve
f3b4b570aa
Allow numOperands of -1 for variable #operands.
...
llvm-svn: 341
2001-07-31 21:55:51 +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
fc9759c295
Added dummy Phi instruction.
...
llvm-svn: 335
2001-07-31 21:48:23 +00:00
Vikram S. Adve
5e19e64a94
Added class MachineCodeForBasicBlock.
...
llvm-svn: 332
2001-07-30 18:49:07 +00:00
Vikram S. Adve
a91d7cb350
Added vector of machine instructions for the basic block.
...
llvm-svn: 330
2001-07-30 18:47:24 +00:00
Chris Lattner
9554fb6043
Modify var names to make it apparant that the code is really generic
...
llvm-svn: 320
2001-07-28 17:43:45 +00:00
Vikram S. Adve
34059f45b6
Added function printIndent.
...
llvm-svn: 317
2001-07-28 04:41:27 +00:00
Vikram S. Adve
d8415b8fbd
Added a pointer hash function object for use in pointer maps.
...
llvm-svn: 316
2001-07-28 04:41:10 +00:00
Vikram S. Adve
09b706ba67
Make a function const.
...
llvm-svn: 315
2001-07-28 04:40:15 +00:00
Vikram S. Adve
8572e7c133
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.
llvm-svn: 313
2001-07-28 04:26:42 +00:00
Vikram S. Adve
b67a683e25
Remove redundant and unused functions.
...
llvm-svn: 312
2001-07-28 04:20:33 +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
de56a56bb1
Add an arg to insertVal to allow us to prevent builtin types from being ignored
...
when they are inserted
llvm-svn: 302
2001-07-26 16:28:18 +00:00
Chris Lattner
fc1d7dd221
Add support for extern varargs methods & varargs method calls
...
llvm-svn: 297
2001-07-25 22:47:55 +00:00
Ruchira Sasanka
12710ee1b2
*** empty log message ***
...
llvm-svn: 291
2001-07-24 17:14:13 +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
56273c9ec6
Fix coding style issues to actually attempt to be somewhat uniform
...
llvm-svn: 277
2001-07-23 05:03:15 +00:00
Chris Lattner
cbe9215a10
Nonpolymorphic class, doesn't need a virtual dtor!
...
llvm-svn: 276
2001-07-23 03:57:05 +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
4e55efa0f2
Add flag for emacs so it realizes it's C++ code
...
llvm-svn: 269
2001-07-22 05:15:16 +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
9f54f76674
Move private header into private directory
...
llvm-svn: 266
2001-07-22 03:59:25 +00:00
Chris Lattner
833a705036
Convert from using C style char*'s to strings.
...
Look ma, no strdups
llvm-svn: 265
2001-07-22 03:57:31 +00:00
Chris Lattner
09dffa5c66
Remove String file some more
...
llvm-svn: 264
2001-07-22 00:46:48 +00:00
Chris Lattner
a1c4c3718f
Destroy the StringUtils.h file
...
llvm-svn: 262
2001-07-22 00:18:10 +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
846fdcd762
Exterminate nasty Cisms
...
llvm-svn: 257
2001-07-21 22:42:09 +00:00
Chris Lattner
f1a2e3b6bb
Renamed include/llvm/Codegen to include/llvm/CodeGen
...
llvm-svn: 253
2001-07-21 20:58:30 +00:00
Chris Lattner
39b84317b3
More minor reorganizations
...
llvm-svn: 251
2001-07-21 20:08:52 +00:00
Chris Lattner
7482575151
Remove getTempValuesForMachineCode from the Instruction interface
...
to remove dependency on <vector>
llvm-svn: 250
2001-07-21 20:04:10 +00:00
Chris Lattner
3b75503399
Add support for casting operators
...
llvm-svn: 243
2001-07-21 19:10:33 +00:00
Chris Lattner
9f3245e86b
More functionality, renamed API
...
llvm-svn: 241
2001-07-21 19:07:19 +00:00
Chris Lattner
df088cd97d
Moved isIntegral to the Type system
...
Renamed equals(char) to equalsInt(char). Made it a const memfunc
llvm-svn: 240
2001-07-21 19:02:43 +00:00
Vikram S. Adve
e2b9e658b5
General support utilities like a program options class and a StringMap
...
class for mapping strings to arbitrary things.
llvm-svn: 228
2001-07-21 12:40:18 +00:00
Vikram S. Adve
f4b3feecd8
CompileContext and options class for the llc compiler.
...
llvm-svn: 227
2001-07-21 12:39:30 +00:00
Vikram S. Adve
8d5ecffc9a
Header files for the target architecture description and for instruction
...
selection, and instances of these for the SPARC.
llvm-svn: 226
2001-07-21 12:39:03 +00:00
Vikram S. Adve
c91af7439a
Provide simpler ways to extract the value of an integer constant.
...
llvm-svn: 223
2001-07-20 21:11:07 +00:00
Vikram S. Adve
10973f75ab
Compute and cache information about the storage size and layout
...
of structures. This information is machine-dependent.
llvm-svn: 222
2001-07-20 21:09:17 +00:00
Vikram S. Adve
0d8d2f87a3
Provide uniform access to the pointer operand and to the index
...
operands (if any) for different types of MemAccessInst's.
llvm-svn: 221
2001-07-20 21:07:06 +00:00
Vikram S. Adve
cec502cb48
Added a representation of the machine instructions generated
...
for a VM instruction.
llvm-svn: 220
2001-07-20 21:05:02 +00:00
Chris Lattner
6aec8e1991
Start of expression analysis support
...
llvm-svn: 219
2001-07-20 19:17:55 +00:00
Chris Lattner
af46a1c0af
Header to raise and lower representation
...
llvm-svn: 218
2001-07-20 19:17:47 +00:00
Chris Lattner
680da8ab0d
Add multiply as a supported constant propogation operation
...
Include the LevelChange.h header in AllOpts.h
llvm-svn: 211
2001-07-20 19:14:41 +00:00
Chris Lattner
6e921febad
New function: WriteAsOperand.
...
llvm-svn: 210
2001-07-20 19:14:01 +00:00
Chris Lattner
9a45a59ddd
Add new base class ConstPoolInt, useful for dealing with integral constants
...
llvm-svn: 209
2001-07-20 19:13:28 +00:00
Chris Lattner
bc80631a8e
Add new method, ensureTypeAvailable
...
llvm-svn: 208
2001-07-20 19:13:04 +00:00
Chris Lattner
f31adf9080
Change is*Type to be a casting convertion operator
...
Add a new isIntegral virtual function
llvm-svn: 207
2001-07-20 19:12:34 +00:00
Chris Lattner
2c4346a9bd
Add an function to BinaryOperator to swap the two operands
...
llvm-svn: 206
2001-07-20 19:09:33 +00:00
Chris Lattner
bf1ff2b205
Add short forms of the get*Type methods.
...
llvm-svn: 205
2001-07-20 19:09:11 +00:00
Chris Lattner
c88875a46d
Fixed typo in comment
...
llvm-svn: 201
2001-07-16 16:17:18 +00:00
Chris Lattner
d5633e6177
Rename 'isMethodExternal' to 'isExternal'
...
llvm-svn: 194
2001-07-15 06:35:24 +00:00
Chris Lattner
1d2d13fbd5
Add a function to convert a double to a string
...
llvm-svn: 187
2001-07-15 00:16:38 +00:00
Chris Lattner
82e8e54a80
Add support to write and read a fixed amount of raw data
...
llvm-svn: 186
2001-07-15 00:16:22 +00:00
Chris Lattner
34244ab669
* The parent of a constant pool is a SymTabValue, not a value.
...
llvm-svn: 178
2001-07-14 06:08:51 +00:00
Chris Lattner
8131335c27
Made the following changes:
...
* ValueHolder became a 3 argument template. This allows for BasicBlock to
use the value holder arg as a typesafe parent pointer.
* SymTabValue no longer inherits from Value
* Method does not inherit from only SymTabValue. Now it inherits from both
STV & Value.
* Module does not inherit from only SymTabValue. Now it inherits from both
STV & Value.
* Updated the SymTabValue.h file to reference SymTabValue instead of STDef
in several places
* Added isArraySelector & isStructSelector to GetElementPtr instruction
llvm-svn: 177
2001-07-14 06:07:58 +00:00
Chris Lattner
5df9510721
Made it not inline
...
llvm-svn: 174
2001-07-12 23:35:11 +00:00
Chris Lattner
de099121e9
Add DebugValue global function
...
llvm-svn: 173
2001-07-12 23:33:53 +00:00
Chris Lattner
a36e2a7fbe
hasSideEffects should be marked virtual
...
stores and free's have sideeffects
llvm-svn: 170
2001-07-09 19:38:26 +00:00
Chris Lattner
9373328e93
Fix stupid typo
...
llvm-svn: 168
2001-07-09 16:54:29 +00:00
Chris Lattner
6065e61656
Implementation of Store & GetElementPtr
...
llvm-svn: 164
2001-07-08 23:22:50 +00:00
Chris Lattner
dccda26cd8
Implemented shl, shl, & load instructions
...
llvm-svn: 161
2001-07-08 21:10:27 +00:00
Chris Lattner
3473967aeb
Moved Cast from being a Unary instruction to being an "Other" instruction
...
llvm-svn: 160
2001-07-08 19:03:27 +00:00
Chris Lattner
246d869f71
Add a new "addOperand" method to User.
...
llvm-svn: 158
2001-07-08 18:38:18 +00:00
Chris Lattner
7a7ddef47e
Neg instruction removed. Cast instruction implemented.
...
llvm-svn: 156
2001-07-08 04:57:15 +00:00
Chris Lattner
1619a709b4
Convert BinaryOperand and UnaryOperator to only take instruction types of
...
the appropriate enum
llvm-svn: 153
2001-07-07 20:17:23 +00:00
Chris Lattner
c00392210d
Broad superficial changes:
...
* Renamed getOpcode to getOpcodeName
* Changed getOpcodeName to return a const char * instead of string
* Added a getOpcode method to replace getInstType
* Changed code to use getOpcode instead of getInstType
llvm-svn: 152
2001-07-07 19:24:15 +00:00
Chris Lattner
cd5bbb0001
Devirtualize User::dropAllReferences
...
llvm-svn: 151
2001-07-07 19:00:36 +00:00
Chris Lattner
9044bfe6a6
Remove dtor's that simply call dropAllReferences
...
llvm-svn: 150
2001-07-07 18:42:52 +00:00
Chris Lattner
6f7587e4d3
Changed the fundemental architecture of Operands for Instructions. Now
...
Operands are maintained as a vector<Use> in the User class, and operator
iterators are provided as before. Getting an operand no longer requires
a virtual function call.
WARNING: getOperand(x) where x >= getNumOperands() will now assert instead
of returning null!
llvm-svn: 149
2001-07-07 08:36:50 +00:00
Chris Lattner
f084b21644
New file, includes method to merge exit nodes together
...
llvm-svn: 141
2001-07-06 16:57:52 +00:00
Chris Lattner
f1f61a28cc
* Add a DominatorBase base class to maintain root of Dominator info
...
* Implement post dominator support
llvm-svn: 140
2001-07-06 16:57:21 +00:00
Chris Lattner
0cca9fc688
* Added comments
...
* Made iterators inherit from appropriate iterator base class
* Abstracted out graphs from depth first iterator
* Add "Inverse" traversal of CFG
llvm-svn: 139
2001-07-06 16:56:17 +00:00
Chris Lattner
223a2f8df5
IntervalPartition was changed to inherit from vector<Interval*> instead of
...
contain it so that it would have full iterator access without much work.
llvm-svn: 132
2001-07-03 15:28:08 +00:00
Chris Lattner
3fe0657ad9
Checkin of new Analysis result printing header
...
llvm-svn: 130
2001-07-03 05:37:26 +00:00
Chris Lattner
0aeb371764
Remove code for printing out Analysis data structures. It got moved
...
llvm-svn: 128
2001-07-03 05:35:52 +00:00
Chris Lattner
94ca55178d
Update documentation a bit, correct #include guard
...
llvm-svn: 127
2001-07-03 05:35:23 +00:00
Chris Lattner
75057fa064
Enable printing of dominator related information.
...
Theis will eventually be moved!
llvm-svn: 123
2001-07-02 05:45:30 +00:00
Chris Lattner
4a9f31a0a7
Add new anaysis routines for building dominator related information
...
llvm-svn: 122
2001-07-02 05:45:17 +00:00
Chris Lattner
be2224f993
Addition of 'deleter' function.
...
llvm-svn: 121
2001-07-02 01:09:41 +00:00
Chris Lattner
b8dcf545b8
Add prototypes for ADCE pass
...
llvm-svn: 115
2001-06-30 06:37:16 +00:00
Chris Lattner
f214ef4014
Rename DoSparseConditionalConstantProp to DoSCCP
...
llvm-svn: 114
2001-06-30 06:37:01 +00:00
Chris Lattner
5ce7b422a1
Add a new pop_back() method
...
llvm-svn: 111
2001-06-30 04:35:21 +00:00
Chris Lattner
6ba8542caa
The ConstRules class got moved to the opt namespace
...
llvm-svn: 110
2001-06-30 04:35:01 +00:00
Chris Lattner
57248a3460
Add a reduceApply method
...
llvm-svn: 109
2001-06-30 04:34:42 +00:00
Chris Lattner
b94dddaef6
Split AllOpts.h into lots of little .h files.
...
llvm-svn: 108
2001-06-30 04:34:07 +00:00
Chris Lattner
44cd71222f
Added prototype for ConstantFoldTerminator
...
llvm-svn: 105
2001-06-29 23:56:00 +00:00
Chris Lattner
86827f3d2d
Added new removePredecessor method prototype
...
llvm-svn: 99
2001-06-29 05:21:42 +00:00
Chris Lattner
d616582a7a
Miscellaneous cleanups:
...
* Convert post to pre-increment for for loops
* Use generic programming more
* Use new Value::cast* instructions
* Use new Module, Method, & BasicBlock forwarding methods
* Use new facilities in STLExtras.h
* Use new Instruction::isPHINode() method
llvm-svn: 96
2001-06-27 23:41:11 +00:00
Chris Lattner
726582fa42
* Move stuff around a bit.
...
* Add reduce_apply_bool
llvm-svn: 88
2001-06-27 23:32:12 +00:00
Chris Lattner
8daf407266
Add instructions to fold unary and binary instructions.
...
llvm-svn: 87
2001-06-27 23:31:34 +00:00
Chris Lattner
5cfc551fa2
* Use the new reduce_apply_bool template
...
* Expose Constant Pool Merging from ConstantProp.cpp
* Include definitions for SCCP pass
* InstListType is not neccesary anymore
llvm-svn: 86
2001-06-27 23:31:14 +00:00
Chris Lattner
df93760653
getBasicBlocks() is not needed anymore for reading Method data
...
llvm-svn: 85
2001-06-27 23:30:11 +00:00
Chris Lattner
0bda227de5
Added methods to make dealing with switches and branch instructions
...
more tolerable.
llvm-svn: 84
2001-06-27 23:29:41 +00:00
Chris Lattner
a0b9025a9f
Minor formating changes
...
llvm-svn: 83
2001-06-27 23:29:21 +00:00
Chris Lattner
3bcd915b32
Make a new GenericBinaryInst class, instead of providing lots of silly
...
little classes.
llvm-svn: 82
2001-06-27 23:28:50 +00:00
Chris Lattner
159093b8fe
Add a new slew of functions to allow dynamic_cast<> like operation for
...
upcasting Value's to their subclasses.
llvm-svn: 80
2001-06-27 23:27:42 +00:00
Chris Lattner
b2d6da7f1e
Add extra forwarding accessor methods so that getMethodList(), getBasicBlocks()
...
and getInstList() are obsolete... except for when modifying those lists. This
makes code much more succinct and to the point.
llvm-svn: 79
2001-06-27 23:26:41 +00:00
Chris Lattner
b408df97c8
* Rename get.*Operator to create seeing that it would have to be qualified
...
with the classname anyways.
* Add an isPHINode() method to Instruction
* Add getUniqueName() to SymbolTable class
* Add an insert method to ValueHolder
llvm-svn: 73
2001-06-25 07:31:05 +00:00
Chris Lattner
fda748370f
Add a helper function bind_obj
...
llvm-svn: 70
2001-06-25 03:54:32 +00:00
Chris Lattner
108acdb1a7
Big changes. Interval*.h is now more or less finalized. IntervalPartition
...
is recoded to use IntervalIterators. IntervalIterators can now maintain
their own memory or let an external entity do it.
Loop depth is a new user of IntervalPartition for calculating the loop
nesting depth of a basic block
TODO: add IntervalPartition capability to split intervals between the looping
portion and the "tail" portion.
llvm-svn: 69
2001-06-25 03:54:14 +00:00
Chris Lattner
61867b5b5d
CFG.h: change the iterator tag
...
Method.h: Add an iterator type.
llvm-svn: 68
2001-06-25 03:52:19 +00:00
Chris Lattner
7841ebeb00
New files due to the Intervals.h splitup
...
llvm-svn: 65
2001-06-24 04:07:37 +00:00
Chris Lattner
4316c524b4
IntervalPartition & IntervalIterator classes have been split out into
...
their own .h files
llvm-svn: 61
2001-06-24 04:05:09 +00:00
Chris Lattner
bafc68aaf9
Addition of IntervalIterator. Preparing for rename of Intervals.h to
...
Interval.h, IntervalPartition.h, and IntervalIterator.h
llvm-svn: 59
2001-06-24 03:22:59 +00:00
Chris Lattner
9e3bd15abf
Add comments
...
Interval::HeaderNode is now accessed thorugh an accessor function
llvm-svn: 55
2001-06-22 02:23:27 +00:00
Chris Lattner
f0a36e647a
Add accessor methods to binary/unary operators
...
Add extra helper methods to PHI class
llvm-svn: 54
2001-06-22 02:21:42 +00:00
Chris Lattner
ec920ae870
New header file defined with neeto utilities put in one place
...
llvm-svn: 50
2001-06-21 05:25:51 +00:00
Chris Lattner
8ec73986f5
Modified to use the new reduce_apply algorithm
...
llvm-svn: 49
2001-06-21 05:25:33 +00:00
Chris Lattner
ffd93e3c15
* Added capability to print out an interval
...
llvm-svn: 48
2001-06-21 05:25:09 +00:00
Chris Lattner
67ccf1f072
* Added comments
...
* Added prototype for new Interval::isLoop method
* Added destructor to free memory
* Added IntervalPartition::isDegeneratePartition method
* Added IntervalPartition::size() method
llvm-svn: 47
2001-06-21 05:24:46 +00:00
Chris Lattner
09e6e27f2c
Add capability to build a derived interval graph
...
llvm-svn: 41
2001-06-20 22:44:32 +00:00
Chris Lattner
1148046a49
Factor the predeclarations of the CFG.h functionality into a seperate, new header
...
file: CFGdecls.h
This allows the addition of BasicBlock::(pred|succ)_iterator typedefs.
llvm-svn: 40
2001-06-20 22:44:16 +00:00
Chris Lattner
70a32da836
Add an optimization stub
...
llvm-svn: 35
2001-06-20 19:26:21 +00:00
Chris Lattner
f2a293a07b
New file: Interval analysis support
...
llvm-svn: 34
2001-06-20 19:26:12 +00:00
Chris Lattner
ecf2e5ecf3
Implement support for writing VCG format output
...
llvm-svn: 28
2001-06-13 19:55:13 +00:00
Chris Lattner
4309ac0cb1
Move contents to the cfg namespace.
...
Implement post order and reverse post order iterators
llvm-svn: 27
2001-06-13 19:55:02 +00:00
Chris Lattner
c819db7005
Updates to support
...
* Changes in PHI node structure
* Fix to Predecessor iterator
llvm-svn: 23
2001-06-11 15:04:06 +00:00
Chris Lattner
11c3121788
Moved getBinaryOperator to the BinaryOperator class and the getUnaryOperator
...
to the UnaryOperator class (from the Instruction class).
llvm-svn: 21
2001-06-08 21:30:13 +00:00
Chris Lattner
33c5fbdc91
Beautify the source a bit.
...
llvm-svn: 19
2001-06-08 21:07:26 +00:00
Chris Lattner
c66bfe1b1e
Include support for reverse iteration.
...
llvm-svn: 18
2001-06-08 20:52:54 +00:00
Chris Lattner
9839031654
Added reverse depth first capability, fixed depth first capability
...
llvm-svn: 16
2001-06-08 00:35:14 +00:00
Chris Lattner
cfdf8c6be1
Moved iterators to the new CFG.h file.
...
llvm-svn: 14
2001-06-07 21:18:35 +00:00
Chris Lattner
741fb756ab
New file
...
llvm-svn: 13
2001-06-07 21:18:08 +00:00
Chris Lattner
0dcec884f6
Fixes for BB iterators, additional methods added for DCE pass
...
llvm-svn: 8
2001-06-07 16:58:36 +00:00
Chris Lattner
e6b9b382e2
Initial revision
...
llvm-svn: 2
2001-06-06 20:29:01 +00:00