Chris Lattner [Sun, 11 Apr 2004 01:39:19 +0000 (01:39 +0000)]
Fix a bug in my select transformation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12826
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 11 Apr 2004 01:29:30 +0000 (01:29 +0000)]
Add a missing break, which caused a crash in an obscure situation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12825
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 10 Apr 2004 22:33:34 +0000 (22:33 +0000)]
Update the value numbering interface.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12824
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 10 Apr 2004 22:32:47 +0000 (22:32 +0000)]
Note to self: SAVE FILES!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12823
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 10 Apr 2004 22:32:09 +0000 (22:32 +0000)]
Add an interface to update value numbering
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12822
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 10 Apr 2004 22:21:27 +0000 (22:21 +0000)]
Implement InstCombine/select.ll:test13*
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12821
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 10 Apr 2004 22:21:14 +0000 (22:21 +0000)]
New testcases
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12820
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 10 Apr 2004 22:01:55 +0000 (22:01 +0000)]
Implement InstCombine/add.ll:test20
Canonicalize add of sign bit constant into a xor
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12819
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 10 Apr 2004 22:01:27 +0000 (22:01 +0000)]
New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12818
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 10 Apr 2004 21:11:11 +0000 (21:11 +0000)]
Rewrite the GCSE pass to be *substantially* simpler, a bit more efficient,
and a bit more powerful
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12817
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 10 Apr 2004 19:15:56 +0000 (19:15 +0000)]
Fix spurious warning in release mode
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12816
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 10 Apr 2004 18:32:01 +0000 (18:32 +0000)]
Silence a spurious warning
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12815
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 10 Apr 2004 18:06:21 +0000 (18:06 +0000)]
Simplify code a bit, and fix a bug that was breaking perlbmk
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12814
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 10 Apr 2004 16:53:29 +0000 (16:53 +0000)]
Fix a bug in my checkin last night that was breaking programs using invoke.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12813
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 10 Apr 2004 07:27:48 +0000 (07:27 +0000)]
Fix previous patch
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12811
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 10 Apr 2004 07:02:02 +0000 (07:02 +0000)]
Correctly update counters
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12810
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 10 Apr 2004 06:56:53 +0000 (06:56 +0000)]
Add note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12809
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 10 Apr 2004 06:55:27 +0000 (06:55 +0000)]
Add a couple of more functions that cannot access memory (the intrinsics) and
don't write to memory
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12808
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 10 Apr 2004 06:53:09 +0000 (06:53 +0000)]
Simplify code a bit, and use alias analysis to allow us to delete unused
call and invoke instructions that are known to not write to memory.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12807
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 10 Apr 2004 06:52:20 +0000 (06:52 +0000)]
New testcases
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12806
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 10 Apr 2004 06:11:29 +0000 (06:11 +0000)]
Clarify interface
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12805
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 10 Apr 2004 06:03:22 +0000 (06:03 +0000)]
Create the output directory if it's not already there
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12804
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 9 Apr 2004 23:50:29 +0000 (23:50 +0000)]
Simplify cfg now eliminates all of the branches in this testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12803
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 9 Apr 2004 23:47:52 +0000 (23:47 +0000)]
Another testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12802
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 9 Apr 2004 23:47:24 +0000 (23:47 +0000)]
Testcase to make sure we can apply the shift to the operands of the select,
eliminating the shifts
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12801
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 9 Apr 2004 23:46:01 +0000 (23:46 +0000)]
Implement select.ll:test12*
This transforms code like this:
%C = or %A, %B
%D = select %cond, %C, %A
into:
%C = select %cond, %B, 0
%D = or %A, %C
Since B is often a constant, the select can often be eliminated. In any case,
this reduces the usage count of A, allowing subsequent optimizations to happen.
This xform applies when the operator is any of:
add, sub, mul, or, xor, and, shl, shr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12800
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 9 Apr 2004 23:43:48 +0000 (23:43 +0000)]
Add testcases for harder combining cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12799
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 9 Apr 2004 22:50:22 +0000 (22:50 +0000)]
Fold code like:
if (C)
V1 |= V2;
into:
Vx = V1 | V2;
V1 = select C, V1, Vx
when the expression can be evaluated unconditionally and is *cheap* to
execute. This limited form of if conversion is quite handy in lots of cases.
For example, it turns this testcase into straight-line code:
int in0 ; int in1 ; int in2 ; int in3 ;
int in4 ; int in5 ; int in6 ; int in7 ;
int in8 ; int in9 ; int in10; int in11;
int in12; int in13; int in14; int in15;
long output;
void mux(void) {
output =
(in0 ? 0x00000001 : 0) | (in1 ? 0x00000002 : 0) |
(in2 ? 0x00000004 : 0) | (in3 ? 0x00000008 : 0) |
(in4 ? 0x00000010 : 0) | (in5 ? 0x00000020 : 0) |
(in6 ? 0x00000040 : 0) | (in7 ? 0x00000080 : 0) |
(in8 ? 0x00000100 : 0) | (in9 ? 0x00000200 : 0) |
(in10 ? 0x00000400 : 0) | (in11 ? 0x00000800 : 0) |
(in12 ? 0x00001000 : 0) | (in13 ? 0x00002000 : 0) |
(in14 ? 0x00004000 : 0) | (in15 ? 0x00008000 : 0) ;
}
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12798
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 9 Apr 2004 22:28:33 +0000 (22:28 +0000)]
Fix an obvious bug in the refactoring I did a few days ago
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12797
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 9 Apr 2004 19:24:20 +0000 (19:24 +0000)]
Expand on adding an intrinsic. Move section to before adding an instruction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12796
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Fri, 9 Apr 2004 19:09:14 +0000 (19:09 +0000)]
Reversed the order of the llvm.writeport() operands so that the value
is listed first and the address is listed second.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12795
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 9 Apr 2004 19:05:30 +0000 (19:05 +0000)]
Fold binary operators with a constant operand into select instructions
that have a constant operand. This implements
add.ll:test19, shift.ll:test15*, and others that are not tested
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12794
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 9 Apr 2004 18:19:44 +0000 (18:19 +0000)]
Implement select.ll:test11
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12793
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 9 Apr 2004 18:19:29 +0000 (18:19 +0000)]
new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12792
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Fri, 9 Apr 2004 18:07:57 +0000 (18:07 +0000)]
Add definition list to each live interval.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12791
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Fri, 9 Apr 2004 16:48:45 +0000 (16:48 +0000)]
Fixed some spelling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12790
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Fri, 9 Apr 2004 16:43:20 +0000 (16:43 +0000)]
Modified the prototypes of the llvm.readport and llvm.writeport intrinsics
so that they do not specify specific integer sizes (as those are
constrained by the code generator, not the intrinsic itself).
Also put these intrinsics into their own "Operating System" section.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12789
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Fri, 9 Apr 2004 15:23:37 +0000 (15:23 +0000)]
Added the llvm.readport and llvm.writeport intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12788
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Fri, 9 Apr 2004 15:10:15 +0000 (15:10 +0000)]
Changed assertions to error messages.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12787
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Thu, 8 Apr 2004 22:39:13 +0000 (22:39 +0000)]
Changes recommended by Chris:
InstSelectSimple.cpp:
Change the checks for proper I/O port address size into an exit() instead
of an assertion. Assertions aren't used in Release builds, and handling
this error should be graceful (not that this counts as graceful, but it's
more graceful).
Modified the generation of the IN/OUT instructions to have 0 arguments.
X86InstrInfo.td:
Added the OpSize attribute to the 16 bit IN and OUT instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12786
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 8 Apr 2004 20:39:49 +0000 (20:39 +0000)]
Implement InstCombine/cast-propagate.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12784
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 8 Apr 2004 20:39:40 +0000 (20:39 +0000)]
New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12783
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Thu, 8 Apr 2004 20:31:47 +0000 (20:31 +0000)]
Added the llvm.readport and llvm.writeport intrinsics for x86. These do
I/O port instructions on x86. The specific code sequence is tailored to
the parameters and return value of the intrinsic call.
Added the ability for implicit defintions to be printed in the Instruction
Printer.
Added the ability for RawFrm instruction to print implict uses and
defintions with correct comma output. This required adjustment to some
methods so that a leading comma would or would not be printed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12782
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Thu, 8 Apr 2004 20:27:38 +0000 (20:27 +0000)]
Added the llvm.readport and llvm.writeport intrinsics.
The Verifier ensures that their parameters are of integral types and have
the correct sign, but it does not enforce any size restrictions because
such restrictions are platform dependent.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12781
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Thu, 8 Apr 2004 20:26:21 +0000 (20:26 +0000)]
Added the llvm.readport and llvm.writeport intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12780
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 8 Apr 2004 19:59:34 +0000 (19:59 +0000)]
Implement ScalarRepl/select_promote.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12779
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 8 Apr 2004 19:59:22 +0000 (19:59 +0000)]
New testcase, corresponding to phi_promote.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12778
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Thu, 8 Apr 2004 19:36:26 +0000 (19:36 +0000)]
This file does not appear to be included anywhere.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12777
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 8 Apr 2004 15:18:59 +0000 (15:18 +0000)]
Disable strict alias analysis in the backend c compiler, as the code we
generate is not TBAA safe.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12774
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 8 Apr 2004 15:18:03 +0000 (15:18 +0000)]
Revert previous patch, I'm a moron :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12773
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 8 Apr 2004 15:14:43 +0000 (15:14 +0000)]
Right, we break strict aliasing requirements. Make sure to disable strict
aliasing in the C compiler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12772
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 8 Apr 2004 06:34:31 +0000 (06:34 +0000)]
Remove the "really gross hacks" that are there to deal with recursive functions.
Now we collect all of the call sites we are interested in inlining, then inline
them. This entirely avoids issues with trying to inline a call site we got by
inlining another call site. This also eliminates iterator invalidation issues.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12770
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 8 Apr 2004 04:43:23 +0000 (04:43 +0000)]
Implement InstCombine/select.ll:test[7-10]
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12769
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 8 Apr 2004 04:43:04 +0000 (04:43 +0000)]
Add some more cases we should combine
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12768
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 7 Apr 2004 21:01:22 +0000 (21:01 +0000)]
This file is no longer used.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12767
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 7 Apr 2004 20:55:32 +0000 (20:55 +0000)]
Don't include InstrSelectionSupport.h.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12766
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 7 Apr 2004 20:38:57 +0000 (20:38 +0000)]
Move ChooseRegOrImmed() prototype here, from InstrSelectionSupport.h.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12765
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 7 Apr 2004 20:38:56 +0000 (20:38 +0000)]
Don't include InstrSelectionSupport.h.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12764
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 7 Apr 2004 18:38:20 +0000 (18:38 +0000)]
Implement test/Regression/Transforms/InstCombine/getelementptr_index.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12762
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 7 Apr 2004 18:38:01 +0000 (18:38 +0000)]
New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12761
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 7 Apr 2004 18:31:47 +0000 (18:31 +0000)]
Fix insertion of SelectInsts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12760
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 7 Apr 2004 17:33:56 +0000 (17:33 +0000)]
Don't print [%reg + 0], just print [%reg]
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12759
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 7 Apr 2004 17:29:37 +0000 (17:29 +0000)]
First version of code to handle loads. Stub function for handling stores.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12758
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 7 Apr 2004 17:04:09 +0000 (17:04 +0000)]
Support loading arguments from %I0...%I5 into virtual registers in
function prologues, and fix an off-by-one in visitCallInst that was
putting call args into the wrong registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12757
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 7 Apr 2004 16:41:22 +0000 (16:41 +0000)]
It's setting up the call args right now, but on the callee side, it's
trying to get incoming args off the stack, instead of the %i0...%i6 regs,
which is wrong.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12756
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 7 Apr 2004 16:17:45 +0000 (16:17 +0000)]
New testcase that crashed scalarevolution on sparc
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12755
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 7 Apr 2004 16:16:11 +0000 (16:16 +0000)]
Fix a bug Brian found.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12754
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 7 Apr 2004 15:31:23 +0000 (15:31 +0000)]
We have a global reg. allocator now -- thanks to Alkis.
Fix a typo.
Add a project I've always thought would be cool.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12747
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 7 Apr 2004 05:06:39 +0000 (05:06 +0000)]
New file that can be useful for hand inspection of assembly required for certain
kinds of instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12746
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 7 Apr 2004 05:04:51 +0000 (05:04 +0000)]
This is a start on handling setcc instructions. As the comment notes, we
have no good way of handling this until the code generator is improved.
We should probably just emit V9 instructions in the meantime.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12745
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 7 Apr 2004 05:04:01 +0000 (05:04 +0000)]
andd subcc instructions which is used to create the 'cmp' pseudo instruction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12744
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 7 Apr 2004 04:36:53 +0000 (04:36 +0000)]
Avoid emitting an extra copy on each 32-bit operation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12743
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 7 Apr 2004 04:29:14 +0000 (04:29 +0000)]
Make generation of stack-slot loads and copies less ugly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12742
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 7 Apr 2004 04:29:03 +0000 (04:29 +0000)]
Fix bug in printing loads.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12741
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 7 Apr 2004 04:27:16 +0000 (04:27 +0000)]
Add support for shift instructions, wrap some long lines
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12740
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 7 Apr 2004 04:26:57 +0000 (04:26 +0000)]
Fix encoding of existing shift instructions, add rr shifts
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12739
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 7 Apr 2004 04:08:21 +0000 (04:08 +0000)]
New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12738
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 7 Apr 2004 04:06:46 +0000 (04:06 +0000)]
Add a bunch more instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12737
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 7 Apr 2004 04:05:49 +0000 (04:05 +0000)]
Merge my changes with brians
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12736
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 7 Apr 2004 04:05:12 +0000 (04:05 +0000)]
Add in some things I forgot, which Chris helpfully reminded me of...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12735
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 7 Apr 2004 04:01:11 +0000 (04:01 +0000)]
Add support for the "Y" register, used by MUL & DIV.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12734
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 7 Apr 2004 04:01:00 +0000 (04:01 +0000)]
Add UDIV, SDIV, and a few variants of WR.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12733
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 7 Apr 2004 04:00:49 +0000 (04:00 +0000)]
Preliminary support for getting 64-bit integer constants into registers.
Preliminary support for division. It's gross because you have to initialize
the "Y" register, which is the top 32 bits of the thing you're dividing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12732
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Tue, 6 Apr 2004 23:25:07 +0000 (23:25 +0000)]
Prune unnecessary #includes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12731
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Tue, 6 Apr 2004 23:21:45 +0000 (23:21 +0000)]
Simple delay slot filler pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12730
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Tue, 6 Apr 2004 23:21:24 +0000 (23:21 +0000)]
Add references to delay slot filler pass.
Fill in addPassesToJITCompile method.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12729
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Tue, 6 Apr 2004 22:10:22 +0000 (22:10 +0000)]
First attempt at handling frame index elimination.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12728
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Tue, 6 Apr 2004 22:10:11 +0000 (22:10 +0000)]
First attempt at special-casing printing of [%reg + offset] for
ld/st instructions - doesn't seem to work yet, but I think it's
just a typo or something somewhere.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12727
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Tue, 6 Apr 2004 22:09:59 +0000 (22:09 +0000)]
Delete reference to "the Mach-O Runtime ABI".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12726
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Tue, 6 Apr 2004 22:09:23 +0000 (22:09 +0000)]
Deal with call return values.
Don't put NOPs in delay slots at all. We'll have a fix-up pass later.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12725
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Tue, 6 Apr 2004 20:23:45 +0000 (20:23 +0000)]
Adding kimwitu++ license.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12719
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 6 Apr 2004 19:48:42 +0000 (19:48 +0000)]
Bugs fixed new features implemented
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12716
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakub Staszak [Tue, 6 Apr 2004 19:35:17 +0000 (19:35 +0000)]
file based off InstSelectSimple.cpp, slowly being replaced by generated code from the really simple X86 instruction selector tablegen backend
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12715
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakub Staszak [Tue, 6 Apr 2004 19:34:00 +0000 (19:34 +0000)]
Tablgen files for really simple instruction selector
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12714
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakub Staszak [Tue, 6 Apr 2004 19:31:31 +0000 (19:31 +0000)]
Tablegen backend for really simple instruction selector
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12713
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakub Staszak [Tue, 6 Apr 2004 19:30:56 +0000 (19:30 +0000)]
add tablgen backend for really simple instruction selector
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12712
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 6 Apr 2004 19:29:36 +0000 (19:29 +0000)]
Fix PR313: [x86] JIT miscompiles unsigned short to floating point
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12711
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 6 Apr 2004 19:20:32 +0000 (19:20 +0000)]
Fix incorrect encoding of some ADC and SBB instuctions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12710
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Tue, 6 Apr 2004 17:51:10 +0000 (17:51 +0000)]
Added licensing information for treecc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12703
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 6 Apr 2004 17:34:50 +0000 (17:34 +0000)]
Fix a minor bug in previous checking
Enable folding of long seteq/setne comparisons into branches and select instructions
Implement unfolded long relational comparisons against a constants a bit more efficiently
Folding comparisons changes code that looks like this:
mov %EAX, DWORD PTR [%ESP + 4]
mov %EDX, DWORD PTR [%ESP + 8]
mov %ECX, %EAX
or %ECX, %EDX
sete %CL
test %CL, %CL
je .LBB2 # PC rel: F
into code that looks like this:
mov %EAX, DWORD PTR [%ESP + 4]
mov %EDX, DWORD PTR [%ESP + 8]
mov %ECX, %EAX
or %ECX, %EDX
jne .LBB2 # PC rel: F
This speeds up 186.crafty by 6% with llc-ls.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12702
91177308-0d34-0410-b5e6-
96231b3b80d8