Commit Graph

418 Commits

Author SHA1 Message Date
Chris Lattner 28e969d689 Okay, so this is a huge hack. Fixme later
llvm-svn: 1171
2001-11-07 05:31:53 +00:00
Chris Lattner 0758abd126 New class to provide high performance writing.
llvm-svn: 1167
2001-11-07 04:20:50 +00:00
Vikram S. Adve 59a13288a6 Make reg. numbers signed ints.
llvm-svn: 1137
2001-11-05 03:56:02 +00:00
Chris Lattner 33d9cb9903 Minor method rename
llvm-svn: 1119
2001-11-04 08:08:34 +00:00
Chris Lattner 34f8595c0b Add a helper function to PHI node
llvm-svn: 1113
2001-11-03 21:08:00 +00:00
Chris Lattner cf5befef63 Expose method to merge identically named methods
llvm-svn: 1109
2001-11-03 19:49:54 +00:00
Ruchira Sasanka 97b93aea81 Moved InsertCallerSaveInstr to the SparcRegInfo.cpp and made machine independent
llvm-svn: 1107
2001-11-03 17:14:13 +00:00
Chris Lattner 4f1ca018aa Fix major bugs in type resolution
llvm-svn: 1092
2001-11-03 03:27:53 +00:00
Chris Lattner c7724169bf 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 e80af939da 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 63ac2b335a Expose the low level DCE mechanism to external users
llvm-svn: 1082
2001-11-01 07:00:21 +00:00
Chris Lattner 977f0044fc Implement constant propogation of null pointer values.
llvm-svn: 1078
2001-11-01 05:55:13 +00:00
Chris Lattner 3003edc9f1 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 3e8ef98515 Add new isNullValue method
llvm-svn: 1076
2001-11-01 05:53:56 +00:00
Chris Lattner 8ac538db47 Initial checkin of level raising code
llvm-svn: 1073
2001-11-01 02:41:52 +00:00
Chris Lattner d307537327 Move level change xfor into the transforms directory
llvm-svn: 1070
2001-11-01 02:39:49 +00:00
Chris Lattner d67f2a4493 Add some useful accessors
llvm-svn: 1069
2001-11-01 02:39:36 +00:00
Chris Lattner 20726ed31b 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 9db8b765cd Implemented constant propogation of cast instructions
llvm-svn: 1064
2001-10-31 05:07:57 +00:00
Chris Lattner b3f4d1bc73 New GCC cleanup pass interface
llvm-svn: 1061
2001-10-31 04:32:53 +00:00
Chris Lattner 92fcd608cf Fix ordering problem. Found by purify. :)
llvm-svn: 1042
2001-10-30 16:38:49 +00:00
Chris Lattner 790409a07a Expose some more printing functionality from the assembly writer library
llvm-svn: 1030
2001-10-29 16:36:49 +00:00
Chris Lattner e10ec076e9 Systems headers use <> not ""
llvm-svn: 1023
2001-10-29 13:29:50 +00:00
Chris Lattner 3bb79584d5 Include functionality to get a string array constant as a string
llvm-svn: 1020
2001-10-29 13:24:31 +00:00
Chris Lattner 0936089b67 Remove useCSyntax flag
llvm-svn: 1019
2001-10-29 13:22:49 +00:00
Chris Lattner 84085ac517 Initial checkin of name mangling code. Moved from Linker.h
llvm-svn: 1017
2001-10-28 23:31:10 +00:00
Chris Lattner 328c9afafe Remove unneccesary function prototypes
llvm-svn: 1014
2001-10-28 22:40:59 +00:00
Vikram S. Adve 8716cdfb52 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 e3b575497d Add support for name mangling.
llvm-svn: 998
2001-10-28 21:23:44 +00:00
Vikram S. Adve 42ea891fb8 Switch useLLVMSyntax to useCSyntax.
llvm-svn: 997
2001-10-28 21:21:25 +00:00
Vikram S. Adve e6298e3574 Support printing control characters in standard C/assembly style.
llvm-svn: 995
2001-10-28 21:06:48 +00:00
Ruchira Sasanka 9c38dbc249 Added support for spilling
llvm-svn: 992
2001-10-28 18:15:12 +00:00
Ruchira Sasanka cf28a7c7d3 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 daebd7508d 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 98960dce6d More symbol table bugfixes that are impossible to track down. Goody
llvm-svn: 960
2001-10-23 02:32:45 +00:00
Chris Lattner 61b665528e 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 bdea601096 Added object of class MachineCodeForMethod.
llvm-svn: 953
2001-10-22 13:58:08 +00:00
Vikram S. Adve 21c3a754fc 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 0f228750ec 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 5dab57de99 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 fb864a35aa 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 24729a34ce Added support for both call/jmpl instructions
llvm-svn: 930
2001-10-21 16:43:41 +00:00
Ruchira Sasanka 1437395c9f Added code to Initialize (MachineOperand) to initialize regNum to -1 -- Ruchira
llvm-svn: 919
2001-10-19 18:17:49 +00:00
Chris Lattner 4ee7648815 Refactor code into Assembly & bytecode libraries
llvm-svn: 903
2001-10-18 20:31:54 +00:00
Chris Lattner 9e06a47525 initial checkin
llvm-svn: 902
2001-10-18 20:31:42 +00:00
Chris Lattner 2b4a64a31b 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 eaf039a94b Initial Checkin
llvm-svn: 896
2001-10-18 20:05:30 +00:00
Chris Lattner 689dccca31 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 c063e73879 Add operator[] accessors
llvm-svn: 894
2001-10-18 20:04:40 +00:00
Vikram S. Adve 7c15313822 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 fe2f987d5e Add option to print as bytecode instead of assembly.
llvm-svn: 887
2001-10-18 13:47:49 +00:00
Chris Lattner fb742a58ee Convert to new simpler Pass structure
Componentize better

llvm-svn: 879
2001-10-18 05:22:27 +00:00
Chris Lattner b0b04facf0 Convert to new simpler Pass structure
llvm-svn: 878
2001-10-18 05:22:15 +00:00
Chris Lattner 92f1951e5b Convert to new simpler pass structure
llvm-svn: 877
2001-10-18 05:21:56 +00:00
Chris Lattner e3ad91c7ae Simplify Pass by removing silly subclasses
Fix an iterator problem

llvm-svn: 876
2001-10-18 05:20:53 +00:00
Chris Lattner 487374cffb Fix minor bug, update comments
llvm-svn: 875
2001-10-18 01:49:48 +00:00
Chris Lattner f71b827441 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 8874d31d91 Convert optimizations to use the Pass infrastructure
llvm-svn: 871
2001-10-18 01:31:58 +00:00
Vikram S. Adve 505130cb30 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 af854b59c2 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 21db313d7d Remove extra assert in dyn_cast_or_null.
llvm-svn: 856
2001-10-17 22:39:50 +00:00
Ruchira Sasanka f42b65d898 added initializing regNum to -1 in both constructors of MachineOperand
llvm-svn: 851
2001-10-16 16:36:34 +00:00
Ruchira Sasanka 5b8971f418 Added support for caller saving
llvm-svn: 847
2001-10-16 01:23:19 +00:00
Chris Lattner 24872c8838 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 8761d50df7 ConcretePass should not be a templated class!
llvm-svn: 838
2001-10-15 17:47:13 +00:00
Chris Lattner 1bb5f8e4ee Add new Pass infrastructure and some examples
llvm-svn: 836
2001-10-15 17:31:51 +00:00
Chris Lattner 6991ab1e5e Convert to use Pass infrastructure
llvm-svn: 834
2001-10-15 17:30:18 +00:00
Chris Lattner 578e83df34 File moved to: llvm/Transforms/HoistPHIConstants.h
llvm-svn: 833
2001-10-15 17:30:06 +00:00
Ruchira Sasanka 48972e033b --changed Sugesting colors for method calls/return values etc.
llvm-svn: 829
2001-10-15 16:23:48 +00:00
Ruchira Sasanka 33535773cb fixed a coalscing bug
llvm-svn: 828
2001-10-15 16:22:44 +00:00
Chris Lattner 02b671388e Be const correct
llvm-svn: 826
2001-10-15 15:54:43 +00:00
Chris Lattner f6cb8e759a Add cast_or_null & dyn_cast_or_null
llvm-svn: 824
2001-10-15 13:41:37 +00:00
Chris Lattner 162ed4d6cc Rename ConstPoolPointerReference to ConstPoolPointerRef - My fingers get tired typing that much
llvm-svn: 822
2001-10-15 13:21:42 +00:00
Chris Lattner acff533281 Improve error messages on assertion failure.
llvm-svn: 821
2001-10-15 13:13:32 +00:00
Chris Lattner 0e09b977ca *** empty log message ***
llvm-svn: 813
2001-10-14 23:34:12 +00:00
Chris Lattner 79ccfb1e07 Update comment, remove misleading method
llvm-svn: 806
2001-10-14 23:26:24 +00:00
Chris Lattner 004b85f9c0 Initializers are not const even if the GV is.
llvm-svn: 805
2001-10-14 23:24:46 +00:00
Vikram S. Adve 6e4d106c21 Cast NULL when requested.
llvm-svn: 803
2001-10-14 23:21:06 +00:00
Vikram S. Adve de04672797 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 27ee020e1b 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 227ea168bd Added routine to create a char array for a string.
llvm-svn: 798
2001-10-14 23:16:27 +00:00
Chris Lattner 9853942d66 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 00987bb11a New file to define instructions...
llvm-svn: 791
2001-10-14 17:24:33 +00:00
Chris Lattner 8015f958c6 New module linking functionality prototype
llvm-svn: 789
2001-10-13 16:57:49 +00:00
Chris Lattner 9b69cae4d9 Dang, I screwed up the merge. This should be better
llvm-svn: 785
2001-10-13 07:18:40 +00:00
Chris Lattner ea85fe365e Fix filename in comment
llvm-svn: 751
2001-10-13 06:32:42 +00:00
Chris Lattner 766662b331 Better linux support. This file still sucks
llvm-svn: 750
2001-10-13 06:31:55 +00:00
Chris Lattner 9c4de2a7a2 Fix broken #endif
llvm-svn: 749
2001-10-13 06:31:00 +00:00
Chris Lattner b18fe4e577 not is a keyword in Ansi C++. Avoid it
llvm-svn: 748
2001-10-13 06:30:39 +00:00
Chris Lattner 1c36d74dec Clean up initializers for GCC 2.96
llvm-svn: 747
2001-10-13 06:30:10 +00:00
Chris Lattner 2e676d6160 Remove exception specification. Only slows code down.
llvm-svn: 746
2001-10-13 06:25:30 +00:00
Chris Lattner 93f8297775 Changes to compile with GCC 2.96
llvm-svn: 745
2001-10-13 06:25:03 +00:00
Chris Lattner 92d335cbfe Add comment indicating semantics of indirect calls
llvm-svn: 744
2001-10-13 06:24:35 +00:00
Chris Lattner 826eff1c35 New ctor for invoke inst
llvm-svn: 743
2001-10-13 06:24:10 +00:00
Chris Lattner 6a69c69cbf Add support for indirect calls
llvm-svn: 742
2001-10-13 06:23:14 +00:00
Chris Lattner 602c3c6533 Add some casts to make GCC 2.96 happy.
llvm-svn: 741
2001-10-13 06:20:07 +00:00
Chris Lattner 107c57093e Add use_back() methods
llvm-svn: 740
2001-10-13 06:18:19 +00:00
Chris Lattner 347dad3c70 Add classof implementations for User
llvm-svn: 739
2001-10-13 06:18:05 +00:00
Chris Lattner bd71b7f4ec Expose typedefs
llvm-svn: 738
2001-10-13 06:17:50 +00:00
Chris Lattner bdc7ff5416 Add support for module local constants
llvm-svn: 737
2001-10-13 06:17:32 +00:00