Mehwish Nagda [Mon, 15 Jul 2002 23:08:49 +0000 (23:08 +0000)]
Initial checking : Writes LLVM - MI mappiing to the .s file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2911
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Mon, 15 Jul 2002 18:20:50 +0000 (18:20 +0000)]
Ensure ConstExpr constants are unique.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2910
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Mon, 15 Jul 2002 18:19:33 +0000 (18:19 +0000)]
Ensure ConstExpr constants are unique using a
map of <opcode, operands> to ConstExpr.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2909
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Mon, 15 Jul 2002 18:18:45 +0000 (18:18 +0000)]
Added duplicate constant expressions to test uniqueness support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2908
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 15 Jul 2002 00:10:33 +0000 (00:10 +0000)]
Fix bug: test/Regression/Assembler/2002-07-14-InternalLossage.llx
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2907
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 14 Jul 2002 23:48:42 +0000 (23:48 +0000)]
Check in tests that have been in my tree for a long time
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2906
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 14 Jul 2002 23:25:23 +0000 (23:25 +0000)]
Minor rename of output
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2905
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 14 Jul 2002 23:25:14 +0000 (23:25 +0000)]
New testcase to track opaque type bug
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2904
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Sun, 14 Jul 2002 23:18:33 +0000 (23:18 +0000)]
Minor additions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2903
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Sun, 14 Jul 2002 23:14:45 +0000 (23:14 +0000)]
Added support to write out ConstantExpr nodes.
Also, avoid asserting out when writing out an invalid tree
since the assembly writer is used when debugging.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2902
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Sun, 14 Jul 2002 23:13:17 +0000 (23:13 +0000)]
Added subclass ConstantExpr to represent expressions consructed from
constants using operators such as cast, getelementptr, add, shl, etc.
Note that a ConstantExpr can be of any type, so classof() in most
other subclasses (that discriminate by type) have to check that it
is also not a ConstantExpr.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2901
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Sun, 14 Jul 2002 23:09:40 +0000 (23:09 +0000)]
Create a static version of Instruction::getOpcodeName(opCode) that
can be invoked with only an opcode (i.e., without an instruction).
Move all opCode->opCodeName translations there.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2900
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Sun, 14 Jul 2002 23:08:30 +0000 (23:08 +0000)]
Add support for writing ConstantExpr nodes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2899
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Sun, 14 Jul 2002 23:07:51 +0000 (23:07 +0000)]
Write out the plane for types first, since values of primitive types
may be constructed by expressions of other types (and so the
contents of the primitive type planes must come after all types).
Use a helper function outputConstantsInPlane in outputConstants to
do this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2898
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Sun, 14 Jul 2002 23:05:53 +0000 (23:05 +0000)]
Use a helper function outputConstantsInPlane in outputConstants.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2897
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Sun, 14 Jul 2002 23:05:09 +0000 (23:05 +0000)]
Add support for reading ConstantExpr nodes.
Add class ConstantFwdRefs to resolve forward references to constants
and to globals. (Hmm... this class could be renamed I guess.)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2896
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Sun, 14 Jul 2002 23:04:18 +0000 (23:04 +0000)]
Add support for reading ConstantExpr nodes.
Add class ConstantFwdRefs to resolve forward references to constants
and to globals (unified old code for globals into this).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2895
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Sun, 14 Jul 2002 22:59:28 +0000 (22:59 +0000)]
Added support for parsing expressions constructed from constant values.
(Major new non-terminal is ConstExpr.)
Add YYERROR_VERBOSE and print additional information on errors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2894
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Sun, 14 Jul 2002 22:49:40 +0000 (22:49 +0000)]
Declare globals llvmAsmtext and llvmAsmleng for use in the parser.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2893
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Sun, 14 Jul 2002 22:48:20 +0000 (22:48 +0000)]
Create a static version of Instruction::getOpcodeName(opCode) that
can be invoked with only an opcode (i.e., without an instruction).
Move all opCode->opCodeName translations there.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2892
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Sun, 14 Jul 2002 22:47:54 +0000 (22:47 +0000)]
Added subclass ConstantExpr to represent expressions consructed from
constants using operators such as cast, getelementptr, add, shl, etc.
Note that a ConstantExpr can be of any type, so classof() in most
other subclasses (that discriminate by type) have to check that it
is also not a ConstantExpr. This is why isConstantExpr() is needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2891
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Sun, 14 Jul 2002 22:46:32 +0000 (22:46 +0000)]
Add a couple of virtual functions to support subclass ConstantExpr.
Note that a ConstantExpr can be of any type, so classof() in most
other subclasses (that discriminate by type) have to check that it
is also not a ConstantExpr. This is why isConstantExpr() is needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2890
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Sun, 14 Jul 2002 22:39:02 +0000 (22:39 +0000)]
Test the handling of constant expressions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2889
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 14 Jul 2002 22:32:59 +0000 (22:32 +0000)]
Allow tests that use custom commands to run
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2888
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 14 Jul 2002 22:30:45 +0000 (22:30 +0000)]
Test to make sure that 'internal' flags don't get dropped accidentally!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2887
91177308-0d34-0410-b5e6-
96231b3b80d8
Anand Shukla [Fri, 12 Jul 2002 20:28:22 +0000 (20:28 +0000)]
initial version: for emitfuncs pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2886
91177308-0d34-0410-b5e6-
96231b3b80d8
Anand Shukla [Fri, 12 Jul 2002 20:14:27 +0000 (20:14 +0000)]
added emitfuncs pass, and disabled reassociate pass (needs fixing)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2885
91177308-0d34-0410-b5e6-
96231b3b80d8
Anand Shukla [Fri, 12 Jul 2002 20:12:59 +0000 (20:12 +0000)]
Added emitfuncs pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2884
91177308-0d34-0410-b5e6-
96231b3b80d8
Anand Shukla [Fri, 12 Jul 2002 20:12:07 +0000 (20:12 +0000)]
Added EmitFunctions directory
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2883
91177308-0d34-0410-b5e6-
96231b3b80d8
Anand Shukla [Fri, 12 Jul 2002 20:11:24 +0000 (20:11 +0000)]
Initial makefile
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2882
91177308-0d34-0410-b5e6-
96231b3b80d8
Anand Shukla [Fri, 12 Jul 2002 20:10:50 +0000 (20:10 +0000)]
Initial version: adds a function table to output code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2881
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 11 Jul 2002 20:33:32 +0000 (20:33 +0000)]
* Pass the DSGraph around instead of the Function to printing fns
* Print the globals list in the node
* Print the scalars in the scalar node
* Eliminate Scalar "label" edges in the graph
* Print fake edges lighter instead of dotted
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2880
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 11 Jul 2002 20:32:22 +0000 (20:32 +0000)]
* Nodes now keep track of any global variables in them
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2879
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 11 Jul 2002 20:32:02 +0000 (20:32 +0000)]
* Nodes now keep track of any global variables in them
* Only dead-node-eliminate nodes with no flags
* Don't merge scalars, only merge what they point to.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2878
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 11 Jul 2002 20:30:18 +0000 (20:30 +0000)]
* Nodes now keep track of any global variables contained within them
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2877
91177308-0d34-0410-b5e6-
96231b3b80d8
Anand Shukla [Thu, 11 Jul 2002 00:17:17 +0000 (00:17 +0000)]
added std:: to endl
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2875
91177308-0d34-0410-b5e6-
96231b3b80d8
Anand Shukla [Thu, 11 Jul 2002 00:16:28 +0000 (00:16 +0000)]
added std:: to vector
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2874
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 10 Jul 2002 22:42:53 +0000 (22:42 +0000)]
Rename DataStructure to LocalDataStructures
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2873
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 10 Jul 2002 22:42:17 +0000 (22:42 +0000)]
New implementation of data structure analysis
This diff is completely meaningless because this is a replacement
implementation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2872
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 10 Jul 2002 22:38:08 +0000 (22:38 +0000)]
New implementation of data structure analysis. Only local analysis has been
implemented so far.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2871
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 10 Jul 2002 22:37:17 +0000 (22:37 +0000)]
Disable folding g-e-p instructions into loads and stores.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2870
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 10 Jul 2002 22:36:47 +0000 (22:36 +0000)]
Disable pool allocation stuff until data structure analysis is sorted back out
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2869
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 10 Jul 2002 22:36:26 +0000 (22:36 +0000)]
Reimplement data structure analysis
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2868
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 10 Jul 2002 22:31:09 +0000 (22:31 +0000)]
Fix broken test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2867
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Wed, 10 Jul 2002 22:02:37 +0000 (22:02 +0000)]
Include Makefile.singlesrc in order to compile .c tests.
Some of these are not regression tests and this directory needs
to be reorganized, but the tests are important.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2866
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Wed, 10 Jul 2002 21:54:05 +0000 (21:54 +0000)]
Some of these are feature tests, not regression tests.
This directory needs to be reorganized and some of the tests
need changes to make them executable. Also comments would help...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2865
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Wed, 10 Jul 2002 21:51:46 +0000 (21:51 +0000)]
Bug fix: cast (bool) has higher precedence than %... who knew!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2864
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Wed, 10 Jul 2002 21:50:57 +0000 (21:50 +0000)]
Add support for marking each operand as a %hh, %hm, %lm or %lo.
Represent previous bools and these ones with flags in a single byte
per operand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2863
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Wed, 10 Jul 2002 21:49:38 +0000 (21:49 +0000)]
Added a few more methods for creating instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2862
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Wed, 10 Jul 2002 21:45:30 +0000 (21:45 +0000)]
Fix print of BB name in dump().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2861
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Wed, 10 Jul 2002 21:45:04 +0000 (21:45 +0000)]
Add support for marking each operand as a %hh, %hm, %lm or %lo.
Represent previous bools and these ones with flags in a single byte
per operand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2860
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Wed, 10 Jul 2002 21:42:42 +0000 (21:42 +0000)]
Changed interface to insertCallerSavingCode().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2859
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Wed, 10 Jul 2002 21:42:13 +0000 (21:42 +0000)]
Stop using pseudo-instructions (SETX, SETUW, SETSW)
and generate actual machine instruction sequences directly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2858
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Wed, 10 Jul 2002 21:41:21 +0000 (21:41 +0000)]
Add support to print %hh, %hm, %lm, or %lo in an operand field.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2857
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Wed, 10 Jul 2002 21:39:50 +0000 (21:39 +0000)]
Major overhaul to stop using pseudo-instructions (SETX, SETUW, SETSW)
and generate actual machine instruction sequences directly.
Also a couple of bug fixes in code for putting constants into registers:
-- Do *not* sign-extend unsigned constant that is shorter than int reg size
-- Fix handling of address constant (a GlobalValue) vs. constant that
must be loaded.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2856
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Wed, 10 Jul 2002 21:36:00 +0000 (21:36 +0000)]
More important fixes:
-- FP argument to a function with no prototype going on stack
was not being copied to the stack in colorCallArgs().
-- Put caller-saving code *before* argument copying code so that
we don't trash a register before saving it!
-- Two other minor fixes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2855
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Wed, 10 Jul 2002 21:30:17 +0000 (21:30 +0000)]
Put caller-saving code *before* argument copying code!
(This file has a minor change required for this fix.)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2854
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Wed, 10 Jul 2002 21:29:22 +0000 (21:29 +0000)]
Minor change in comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2853
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 10 Jul 2002 16:48:17 +0000 (16:48 +0000)]
*** empty log message ***
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2852
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 10 Jul 2002 16:48:14 +0000 (16:48 +0000)]
Allow specifying a module for context instead of a slot calculator directly
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2851
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 9 Jul 2002 19:58:06 +0000 (19:58 +0000)]
Add a new testcase. It actually is not infinite looping. It just takes
FOREVER to run. That's the bug. :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2850
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Tue, 9 Jul 2002 19:53:09 +0000 (19:53 +0000)]
Disabling reassociate pass until it is fixed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2849
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 9 Jul 2002 19:41:21 +0000 (19:41 +0000)]
New testcase for problem effecting mst
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2848
91177308-0d34-0410-b5e6-
96231b3b80d8
Anand Shukla [Tue, 9 Jul 2002 19:18:56 +0000 (19:18 +0000)]
changed mem_fun to std::mem_fun
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2847
91177308-0d34-0410-b5e6-
96231b3b80d8
Anand Shukla [Tue, 9 Jul 2002 19:18:16 +0000 (19:18 +0000)]
added std:: to hash_set
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2846
91177308-0d34-0410-b5e6-
96231b3b80d8
Anand Shukla [Tue, 9 Jul 2002 19:16:59 +0000 (19:16 +0000)]
Added std:: to mem_fun for 64-bit gcc
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2845
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 9 Jul 2002 18:42:36 +0000 (18:42 +0000)]
Implementing shift left & shift right on pointers
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2844
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 9 Jul 2002 16:50:24 +0000 (16:50 +0000)]
Include header in the compiler-neutral location
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2843
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Tue, 9 Jul 2002 12:30:29 +0000 (12:30 +0000)]
Added support for printing constant global references to
assembly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2842
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Tue, 9 Jul 2002 12:04:21 +0000 (12:04 +0000)]
Add makefile-mode flag for emacs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2841
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Mon, 8 Jul 2002 23:37:07 +0000 (23:37 +0000)]
Fix iteration and InsertPos bugs introduced when Chris changed over to ilist.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2840
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Mon, 8 Jul 2002 23:34:10 +0000 (23:34 +0000)]
Numerous changes in interface to class SparcRegInfo corresponding to
changes in class MachineRegInfo (see MachineRegInfo.h for details).
Added {LD,ST}[X]FSR instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2839
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Mon, 8 Jul 2002 23:31:24 +0000 (23:31 +0000)]
class MachineCodeForBasicBlock is now an annotation on BasicBlock.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2838
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Mon, 8 Jul 2002 23:30:59 +0000 (23:30 +0000)]
BA no longer has the unused CC operand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2837
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Mon, 8 Jul 2002 23:30:14 +0000 (23:30 +0000)]
Have to save a boolean (setCC) value whenever use is outside the current
basic block.
Mark setCCInstr used as dest. of conditional-move as both a def and a use.
BA instruction no longer has the unused CC argument.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2836
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Mon, 8 Jul 2002 23:25:17 +0000 (23:25 +0000)]
BA has only one argument.
Added LDFSR, LDXFSR, STFSR and STXFSR.
Fixed operands info for RDCCR, WRCCR.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2835
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Mon, 8 Jul 2002 23:23:12 +0000 (23:23 +0000)]
Significant changes to correctly spill CC registers and to correctly
handle conditional move instructions:
-- cpMem<->Reg functions now support CC registers (int and FP) correctly.
Also, cpMem<->Reg functions now return a vector of machine instructions.
-- Scratch registers must be explicitly provided to cpMem<->Reg when
needed, since CC regs need one to be copied to/from memory.
-- CC regs are saved to a scratch register instead of stack.
-- All regs used by a instruction are now recorded in MachineInstr::regsUsed,
since regs used to save values *across* an instruction are not obvious
either from the operands or from the LiveVar sets.
-- An (explicit or implicit) operand may now be both a def and a use.
This is needed for conditional move operations.
So an operand may need spill code both before and after the instruction.
Other changes:
-- Added several get{Class,Type} functions.
-- Added unified-to-local register number conversion.
-- class MachineCodeForBasicBlock is now an annotation on BasicBlock.
-- Suggest/Color methods may modify the MachineInstr (and always did),
so don't make that argument const!
-- Caller-saving code doesn't need its special purpose code for
handling CC registers since cpMem<->Reg handle those correctly now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2834
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Mon, 8 Jul 2002 23:15:32 +0000 (23:15 +0000)]
Significant changes to correctly spill CC registers and to correctly
handle conditional move instructions:
-- cpMem<->Reg functions now support CC registers (int and FP) correctly.
-- Scratch registers must be explicitly provided to cpMem<->Reg when
needed, since CC regs need one to be copied to/from memory.
-- CC regs are saved to a scratch register instead of stack.
-- All regs used by a instruction are now recorded in MachineInstr::regsUsed,
since regs used to save values *across* an instruction are not obvious
either from the operands or from the LiveVar sets.
-- An (explicit or implicit) operand may now be both a def and a use.
This is needed for conditional move operations.
So an operand may need spill code both before and after the instruction.
-- class MachineCodeForBasicBlock is now an annotation on BasicBlock.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2833
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Mon, 8 Jul 2002 23:07:26 +0000 (23:07 +0000)]
MachineInstr* in vector are not const (and never really were)
because operands may be modified directly to set register.
Also, class MachineCodeForBasicBlock is now an annotation on BasicBlock.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2832
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Mon, 8 Jul 2002 23:04:31 +0000 (23:04 +0000)]
Rename static struct Initializer to avoid name conflict with BB.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2831
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Mon, 8 Jul 2002 23:03:54 +0000 (23:03 +0000)]
Fix printing of BB in dump.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2830
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Mon, 8 Jul 2002 23:03:10 +0000 (23:03 +0000)]
Moved class MachineCodeForBasicBlock to MachineCodeForBasicBlock.h.
This class is now an annotation on BasicBlock.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2829
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Mon, 8 Jul 2002 23:01:46 +0000 (23:01 +0000)]
MachineInstr::dump() now takes no arguments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2828
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Mon, 8 Jul 2002 23:01:11 +0000 (23:01 +0000)]
Implementation of class MachineCodeForBasicBlock.
Moved here from MachineInstr.cpp to make it an annotation on BasicBlock.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2827
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Mon, 8 Jul 2002 22:59:23 +0000 (22:59 +0000)]
A single MachineInstr operand may now be both a def and a use,
so additional dep. edges have to be added.
This was needed to correctly handle conditional move instructions!
MachineCodeForBasicBlock is now an annotation on BasicBlock.
Renamed "earliestForNode" to "earliestReadyTimeForNode".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2826
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Mon, 8 Jul 2002 22:56:34 +0000 (22:56 +0000)]
A single MachineInstr operand may now be both a def and a use.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2825
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Mon, 8 Jul 2002 22:44:14 +0000 (22:44 +0000)]
cpMem<->Reg functions now support CC registers (int and FP) correctly.
A scratch register has to be provided when needed to do the copy.
Also, cpMem<->Reg functions now return a vector of machine instructions.
Added several get{Class,Type} functions.
Suggest/Color methods may modify the MachineInstr (and always did),
so don't make that argument const!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2824
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Mon, 8 Jul 2002 22:40:34 +0000 (22:40 +0000)]
Interface to class MachineCodeForBasicBlock.
Moved here from MachineInstr.h to make it an annotation on BasicBlock.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2823
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Mon, 8 Jul 2002 22:39:36 +0000 (22:39 +0000)]
getUsableUniRegAtMI interface simplified slightly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2822
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Mon, 8 Jul 2002 22:38:45 +0000 (22:38 +0000)]
Moved class MachineCodeForBasicBlock to MachineCodeForBasicBlock.{cpp,h}.
An (explicit or implicit) operand may now be both a def and a use.
Also add a set of regs used by each instruction.
dump() no longer takes an optional argument, which doesn't work in gdb.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2821
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Mon, 8 Jul 2002 22:34:40 +0000 (22:34 +0000)]
MachineInstr* in vector are not const (and never really were)
because operands may be modified directly to set register.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2820
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Mon, 8 Jul 2002 22:33:45 +0000 (22:33 +0000)]
Added two more helper functions for instruction creation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2819
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Mon, 8 Jul 2002 22:31:11 +0000 (22:31 +0000)]
Moved MachineCodeForBB to be an annotation on BasicBlock.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2818
91177308-0d34-0410-b5e6-
96231b3b80d8
Anand Shukla [Mon, 8 Jul 2002 19:37:06 +0000 (19:37 +0000)]
changes BBsorting and oredering
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2817
91177308-0d34-0410-b5e6-
96231b3b80d8
Anand Shukla [Mon, 8 Jul 2002 19:36:39 +0000 (19:36 +0000)]
small corrections
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2816
91177308-0d34-0410-b5e6-
96231b3b80d8
Anand Shukla [Mon, 8 Jul 2002 19:36:01 +0000 (19:36 +0000)]
changed function numbering
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2815
91177308-0d34-0410-b5e6-
96231b3b80d8
Anand Shukla [Wed, 3 Jul 2002 16:52:15 +0000 (16:52 +0000)]
Add new << to allow printing modules by reference.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2814
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 30 Jun 2002 16:25:25 +0000 (16:25 +0000)]
*** empty log message ***
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2813
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 30 Jun 2002 16:25:21 +0000 (16:25 +0000)]
Clean up anands patch
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2812
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 30 Jun 2002 16:25:07 +0000 (16:25 +0000)]
Strip the symbols out of the bytecode to inflate generated executables less.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2811
91177308-0d34-0410-b5e6-
96231b3b80d8