Brian Gaeke [Thu, 30 Sep 2004 20:20:01 +0000 (20:20 +0000)]
Make EmitMappingInfo into an "external location" option, so that it can be set
or cleared externally.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16623
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Thu, 30 Sep 2004 20:14:29 +0000 (20:14 +0000)]
Add accessor function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16622
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Thu, 30 Sep 2004 20:14:18 +0000 (20:14 +0000)]
Correct type of accessor functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16621
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Thu, 30 Sep 2004 20:14:07 +0000 (20:14 +0000)]
Namespacify. Add accessor function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16620
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Thu, 30 Sep 2004 20:13:55 +0000 (20:13 +0000)]
Add accessor function prototypes for reoptimizer support passes.
Make accessors return FunctionPass* as appropriate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16619
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Thu, 30 Sep 2004 19:44:32 +0000 (19:44 +0000)]
I think this will handle double args.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16618
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Thu, 30 Sep 2004 18:28:07 +0000 (18:28 +0000)]
That should actually be __MING, not __MINGW.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16617
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Thu, 30 Sep 2004 18:27:39 +0000 (18:27 +0000)]
#include DataTypes.h to compile on MinGW, patch by Henrik Bach.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16616
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Thu, 30 Sep 2004 18:24:58 +0000 (18:24 +0000)]
Check for __MINGW define instead of __MINGW_H, patch by Henrik Bach.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16615
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 30 Sep 2004 16:35:08 +0000 (16:35 +0000)]
Use more efficient map operations. Fix a bug that would affect hypothetical
targets that supported multiple memory operands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16614
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 30 Sep 2004 16:10:45 +0000 (16:10 +0000)]
There is no need to call MachineInstr::print directly, just send the MI& to an ostream.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16613
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 30 Sep 2004 15:59:17 +0000 (15:59 +0000)]
* Wrap some comments to 80 cols
* Add const_iterator stuff
* Add a print method, which means that I can now call dump() from the
debugger.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16612
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Thu, 30 Sep 2004 04:04:48 +0000 (04:04 +0000)]
Mark the instructions that have delay slots with the hasDelaySlot flag.
Add some comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16611
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Thu, 30 Sep 2004 04:04:47 +0000 (04:04 +0000)]
Use TargetMachine::hasDelaySlot() instead of our old switch statement
to find instrs that have delay slots.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16610
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 30 Sep 2004 02:59:33 +0000 (02:59 +0000)]
Simplify the logic in the simple spiller and capitalize some variables
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16609
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 30 Sep 2004 02:40:06 +0000 (02:40 +0000)]
Switch from defaulting to the 'local' spiller to the 'simple' spiller. The
two spillers produce perfectly identical code (at least on povray and eon),
but the simple spiller is substantially faster than the local spiller. Once
the local spiller is improved, we can switch back.
Switching cuts 5.2% off of the llc time for povray (about 1.3s).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16608
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 30 Sep 2004 02:33:48 +0000 (02:33 +0000)]
Don't use a densemap for keeping track of which vregs are already loaded, just
use a simple vector. This speeds up -spiller=simple from taking 22s to taking
.1s on povray (debug build). This change does not modify the generated code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16607
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 30 Sep 2004 02:15:18 +0000 (02:15 +0000)]
Use longer and more explicit names for instance vars (particularly important
data structures). Fix the print method to send to the right ostream, not
always cerr. Delete typedefs that are only used once.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16606
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 30 Sep 2004 02:02:33 +0000 (02:02 +0000)]
Free the VirtRegMap at the end of MachineFunction processing instead of at
the beginning of processing the next one.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16605
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 30 Sep 2004 01:54:45 +0000 (01:54 +0000)]
Reindent code, improve comments, move huge nested methods out of classes,
prune #includes, add print/dump methods, etc. No functionality changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16604
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 30 Sep 2004 00:12:29 +0000 (00:12 +0000)]
Disable the 'WARNING: Found global types that are not compatible' warning
that always prints when linking programs to libstdc++ :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16603
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Wed, 29 Sep 2004 23:01:17 +0000 (23:01 +0000)]
Change the #ifdefs to allow compilation with a V8 compiler, but the JIT still
won't work if not compiled in V9 mode, currently by GCC only, because Sun's
system compiler does not tell us if it's a V8 or V9 system.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16602
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 29 Sep 2004 21:21:14 +0000 (21:21 +0000)]
Hrm, debugging printouts do not need to be in here
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16598
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 29 Sep 2004 21:19:28 +0000 (21:19 +0000)]
Make sure to check select instructions for generic instruction properties
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16597
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 29 Sep 2004 20:45:06 +0000 (20:45 +0000)]
Update list of shootout programs that should be working.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16595
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 29 Sep 2004 20:45:05 +0000 (20:45 +0000)]
Tell the target description that calls clobber registers O0...O5.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16594
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 29 Sep 2004 20:07:45 +0000 (20:07 +0000)]
Don't use DominatorSet::dominates for intra-block instruction dom checks.
This method is linear time in the size of the basic block, which is very
bad for large basic blocks. On the Assembler/2004-09-29-VerifierIsReallySlow.llx
testcase, the verifier changes from taking 50s to 0.23s with this patch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16593
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 29 Sep 2004 20:07:25 +0000 (20:07 +0000)]
The verifier takes 50s on this testcase, that is not good n stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16592
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 29 Sep 2004 19:59:07 +0000 (19:59 +0000)]
FITOD is spelled "fitod", not "fitos". Ouch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16591
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 29 Sep 2004 19:59:06 +0000 (19:59 +0000)]
Don't use .quad to output double constants. The assembler must have a bug or
something, because the wrong bit patterns get output.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16590
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 29 Sep 2004 17:40:11 +0000 (17:40 +0000)]
* Pull range optimization code out into new InsertRangeTest function.
* SubOne/AddOne functions always return ConstantInt, declare them as such
* Pull code for handling setcc X, cst, where cst is at the end of the range,
or cc is LE or GE up earlier in visitSetCondInst. This reduces #iterations
in some cases.
* Fold: (div X, C1) op C2 -> range check, implementing div.ll:test6 - test9.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16588
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 29 Sep 2004 17:37:07 +0000 (17:37 +0000)]
New testcasses for divides that can be eliminated.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16587
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 29 Sep 2004 16:45:47 +0000 (16:45 +0000)]
Recognize FpMOVD as a move.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16586
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 29 Sep 2004 05:43:32 +0000 (05:43 +0000)]
Do not insert trivially dead select instructions, which allows us to
potentially fold more in one pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16583
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 29 Sep 2004 05:07:12 +0000 (05:07 +0000)]
Fold binary expressions and casts into PHI nodes that have all constant inputs.
This takes something like this:
%A = phi int [ 3, %cond_false.0 ], [ 2, %endif.0.i ], [ 2, %endif.1.i ]
%B = div int %tmp.243, 4
and turns it into:
%A = phi int [ 3/4, %cond_false.0 ], [ 2/4, %endif.0.i ], [ 2/4, %endif.1.i ]
which is later simplified (in this case) into %A = 0.
This triggers thousands of times in spec, for example, 269 times in 176.gcc.
This is tested by InstCombine/add.ll:test23 and set.ll:test18.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16582
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 29 Sep 2004 05:06:12 +0000 (05:06 +0000)]
New testcases
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16581
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Wed, 29 Sep 2004 05:00:31 +0000 (05:00 +0000)]
Generate better code by being far less clever when it comes to the select instruction. Don't create overlapping register lifetimes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16580
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 29 Sep 2004 03:48:55 +0000 (03:48 +0000)]
add results
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16579
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Wed, 29 Sep 2004 03:45:33 +0000 (03:45 +0000)]
improve Type::BoolTy codegen by eliminating unnecessary clears and sign extends
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16578
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 29 Sep 2004 03:34:41 +0000 (03:34 +0000)]
Simplify copyConstantToRegister() for longs, using a pair of recursive calls.
Copy constant-pool entries' addresses into registers before loading out of them,
to avoid errors from the assembler.
Handle loading call args past the 6th one off the stack.
Add IMPLICIT_DEF pseudo-instrs for double and long arguments passed in register
pairs.
Use FpMOVD to copy doubles around instead of the horrible store-load thing we
were doing before.
Handle 'ret double' and 'ret long'.
Fix a bug in handling 'and/or/xor long'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16577
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 29 Sep 2004 03:28:15 +0000 (03:28 +0000)]
Fix bug recognizing moves: isMoveInstr should only treat ORs with %g0 as
moves, not all ORs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16576
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 29 Sep 2004 03:27:30 +0000 (03:27 +0000)]
Use FpMOVD pseudo-instruction to move doubles around.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16575
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 29 Sep 2004 03:27:29 +0000 (03:27 +0000)]
Add new FpMOVD pseudo-instruction, used to move doubles around.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16574
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 29 Sep 2004 03:26:27 +0000 (03:26 +0000)]
Fix double and long alignment.
Call the FPMover pass after register allocation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16573
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 29 Sep 2004 03:25:40 +0000 (03:25 +0000)]
Put quotes around argument to .section directive.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16572
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 29 Sep 2004 03:25:39 +0000 (03:25 +0000)]
Add createSparcV8FPMoverPass().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16571
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 29 Sep 2004 03:24:34 +0000 (03:24 +0000)]
Pass which converts FpMOVD (double move pseudoinstructions) to pairs
of FMOVS instrs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16570
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 29 Sep 2004 03:18:20 +0000 (03:18 +0000)]
More testcases for recent instcombine patches
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16569
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 29 Sep 2004 03:16:24 +0000 (03:16 +0000)]
Hrm, really, all tests passed without this, but it is scary to think how...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16568
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 29 Sep 2004 03:09:18 +0000 (03:09 +0000)]
Remove debugging printout
Instcombine (setcc (truncate X), C1).
This occurs THOUSANDS of times in many benchmarks. Particularlly common
seem to be things like (seteq (cast bool X to int), int 0)
This turns it into (seteq bool %X, false), which then becomes (not %X).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16567
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Wed, 29 Sep 2004 02:35:05 +0000 (02:35 +0000)]
To go along with sabre's improved InstCombining, improve recognition of
integers that we can use as immediate values in instructions.
Example from yacr2:
- lis r10, -1
- ori r10, r10, 65535
- add r28, r28, r10
+ addi r28, r28, -1
addi r7, r7, 1
addi r9, r9, 1
b .LBB_main_9 ; loopentry.1.i214
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16566
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 29 Sep 2004 00:01:17 +0000 (00:01 +0000)]
Improve validity checking of windows path names and fix file creation
problems.
Patch contributed by Jeff Cohen. Thanks Jeff!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16565
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 28 Sep 2004 23:58:03 +0000 (23:58 +0000)]
Use llvm::sys::Path to destroy the file.
Patch contributed by Jeff Cohen. Thanks Jeff!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16564
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 28 Sep 2004 23:56:20 +0000 (23:56 +0000)]
Win32 implementation of TimeValue::now().
Patch contributed by Jeff Cohen. Thanks Jeff!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16563
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 28 Sep 2004 23:54:12 +0000 (23:54 +0000)]
FreeBSD implementation of the TimeValue::now() method.
Patch kindly contributed by Jeff Cohen. Thanks Jeff!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16562
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 28 Sep 2004 22:33:08 +0000 (22:33 +0000)]
Fold (X setcc C1) | (X setcc C2)
This implements or.ll:test1[89]
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16561
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 28 Sep 2004 22:31:49 +0000 (22:31 +0000)]
New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16560
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 28 Sep 2004 21:48:02 +0000 (21:48 +0000)]
Fold (and (setcc X, C1), (setcc X, C2))
This is important for several reasons:
1. Benchmarks have lots of code that looks like this (perlbmk in particular):
%tmp.2.i = setne int %tmp.0.i, 128 ; <bool> [#uses=1]
%tmp.6343 = seteq int %tmp.0.i, 1 ; <bool> [#uses=1]
%tmp.63 = and bool %tmp.2.i, %tmp.6343 ; <bool> [#uses=1]
we now fold away the setne, a clear improvement.
2. In the more important cases, such as (X >= 10) & (X < 20), we now produce
smaller code: (X-10) < 10.
3. Perhaps the nicest effect of this patch is that it really helps out the
code generators. In particular, for a 'range test' like the above,
instead of generating this on X86 (the difference on PPC is even more
pronounced):
cmp %EAX, 50
setge %CL
cmp %EAX, 100
setl %AL
and %CL, %AL
cmp %CL, 0
we now generate this:
add %EAX, -50
cmp %EAX, 50
Furthermore, this causes setcc's to be folded into branches more often.
These combinations trigger dozens of times in the spec benchmarks, particularly
in 176.gcc, 186.crafty, 253.perlbmk, 254.gap, & 099.go.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16559
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Tue, 28 Sep 2004 21:46:18 +0000 (21:46 +0000)]
* Add `deplibs' keyword for specifying a list of dependent libraries
* Convert tabs to spaces
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16558
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Tue, 28 Sep 2004 21:45:54 +0000 (21:45 +0000)]
Add `deplibs' keyword for specifying a list of dependent libraries
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16557
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 28 Sep 2004 21:39:35 +0000 (21:39 +0000)]
New testcases
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16556
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Tue, 28 Sep 2004 21:29:00 +0000 (21:29 +0000)]
Add support for the isLoad and isStore flags, needed by the instruction scheduler
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16555
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Tue, 28 Sep 2004 21:01:45 +0000 (21:01 +0000)]
Add support for the isLoad and isStore flags, needed by the instruction scheduler
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16554
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 28 Sep 2004 18:38:01 +0000 (18:38 +0000)]
Turn the hasDelaySlot flag into the M_DELAY_SLOT_FLAG
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16553
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 28 Sep 2004 18:37:00 +0000 (18:37 +0000)]
Be consistent with our naming
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16552
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 28 Sep 2004 18:34:14 +0000 (18:34 +0000)]
Capture delay slot info
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16551
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 28 Sep 2004 18:33:50 +0000 (18:33 +0000)]
Capture information about whether the target instructions have delay slots
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16550
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 28 Sep 2004 18:22:15 +0000 (18:22 +0000)]
Implement X / C1 / C2 folding
Implement (setcc (shl X, C1), C2) folding.
The second one occurs several dozen times in spec. The first was added
just in case. :)
These are tested by shift.ll:test2[12], and div.ll:test5
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16549
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 28 Sep 2004 18:21:01 +0000 (18:21 +0000)]
New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16548
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 28 Sep 2004 18:18:35 +0000 (18:18 +0000)]
New testcases
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16547
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 28 Sep 2004 17:54:07 +0000 (17:54 +0000)]
shl is always zero extending, so always use a zero extending shift right.
This latent bug was exposed by recent changes, and is tested as:
llvm/test/Regression/Transforms/InstCombine/2004-09-28-BadShiftAndSetCC.llx
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16546
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 28 Sep 2004 17:50:05 +0000 (17:50 +0000)]
New testcase for a latent bug in instcombine that I have been chasing for
1.5 days :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16545
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Tue, 28 Sep 2004 16:58:12 +0000 (16:58 +0000)]
* InstructionReader.cpp was absorbed into Reader.cpp
* Wrap at 80 cols
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16543
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Tue, 28 Sep 2004 16:57:46 +0000 (16:57 +0000)]
Fix doxygen comment
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16542
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Tue, 28 Sep 2004 16:04:00 +0000 (16:04 +0000)]
Touch output files before reading or writing them, so that they are
always guaranteed to exist. This fixes PR444. Thanks to Alkis
for reporting the bug and testing the patch.
AddRecord used to return a big list, but that return value was never
used. So now it doesn't return anything.
Create the WebDir if it does not exist.
Fix a typo in a comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16541
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Tue, 28 Sep 2004 14:52:58 +0000 (14:52 +0000)]
Corrected spelling of Makefile variable, thereby re-enabling profile
builds for projects.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16540
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Tue, 28 Sep 2004 14:42:44 +0000 (14:42 +0000)]
Add includes and use std:: for standard library calls to make code
compile on windows. This patch was contributed by Paolo Invernizzi.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16539
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 28 Sep 2004 03:45:22 +0000 (03:45 +0000)]
Bug fixed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16538
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 28 Sep 2004 03:36:39 +0000 (03:36 +0000)]
Testcase for LLVM PR445
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16537
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Tue, 28 Sep 2004 02:53:15 +0000 (02:53 +0000)]
Since we use alloca now make sure we include the proper headers for it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16536
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Tue, 28 Sep 2004 02:47:38 +0000 (02:47 +0000)]
Use alloca instead of a C99 style array. This should fix the
compilation problem in windows.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16535
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Tue, 28 Sep 2004 02:40:37 +0000 (02:40 +0000)]
Pull assignment out of for loop conditional in order for this to
compile under windows. Patch contributed by Paolo Invernizzi!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16534
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Tue, 28 Sep 2004 02:38:58 +0000 (02:38 +0000)]
Fix includes. Patch contributed by Paolo Invernizzi!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16533
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 28 Sep 2004 02:29:40 +0000 (02:29 +0000)]
New testcase that crashes the C++ FE, encountered while working on PR445
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16532
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Tue, 28 Sep 2004 01:59:17 +0000 (01:59 +0000)]
Use class instead of struct for defining classes. This unbreaks the
build on windows. Patch contributed by Paolo Invernizzi!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16531
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 27 Sep 2004 21:51:25 +0000 (21:51 +0000)]
Patch contributed by Patrick Meredith:
added notes on the fact that the current implementation uses
sbyte* for va_list. Updated all occurances of valist to va_list (it was
inconsistant and find/replace is so easy ;-) ). Added <...> around all
occurances of va_list in the intrinsic functions to match the vaarg and
vanext instructions and to further show that va_list is a variable type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16530
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Mon, 27 Sep 2004 20:35:59 +0000 (20:35 +0000)]
Fix grammar.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16529
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 27 Sep 2004 19:29:18 +0000 (19:29 +0000)]
Fix two bugs: one where a condition was mistakenly swapped, and another
where we folded (X & 254) -> X < 1 instead of X < 2. These problems were
latent problems exposed by the latest patch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16528
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 27 Sep 2004 19:25:20 +0000 (19:25 +0000)]
New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16527
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Mon, 27 Sep 2004 18:22:18 +0000 (18:22 +0000)]
SparcV8 int regs are not only 32-bits in width, but they are 32-bit aligned!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16526
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 27 Sep 2004 16:59:06 +0000 (16:59 +0000)]
The system ranlib on darwin occasionally adds two extra newlines to the
end of files, breaking the CFE build. As a gross hack around this,
ignore any trailing garbage on bytecode files. Thanks to Brian for digging
in and identifying the problem.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16525
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 27 Sep 2004 16:41:01 +0000 (16:41 +0000)]
Hrm, if there is an error loading a file, try printing a message so the
user knows that...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16524
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 27 Sep 2004 16:21:26 +0000 (16:21 +0000)]
Testcases for rev 250 of InstructionCombining.cpp
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16522
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 27 Sep 2004 16:18:50 +0000 (16:18 +0000)]
Fold: (setcc (shr X, ShAmt), CI), where 'cc' is eq or ne. This xform
triggers often, for example:
6x in povray, 1x in gzip, 279x in gcc, 1x in crafty, 8x in eon, 11x in perlbmk,
362x in gap, 4x in vortex, 14 in m88ksim, 211x in 126.gcc, 1x in compress,
11x in ijpeg, and 4x in 147.vortex.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16521
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Mon, 27 Sep 2004 07:35:19 +0000 (07:35 +0000)]
Improve warning
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16520
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Mon, 27 Sep 2004 05:08:17 +0000 (05:08 +0000)]
Correct some BuildMI arguments for the upcoming simple scheduler
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16519
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Sun, 26 Sep 2004 21:07:43 +0000 (21:07 +0000)]
Fix the copy-pasto that Brian noticed: V8 int regs are 32-bits wide, not 64.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16518
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sat, 25 Sep 2004 16:00:07 +0000 (16:00 +0000)]
Add some missing #includes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16517
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sat, 25 Sep 2004 15:59:41 +0000 (15:59 +0000)]
Qualify Path with sys:: namespace so this file compiles.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16516
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sat, 25 Sep 2004 08:32:37 +0000 (08:32 +0000)]
Updated to reflect changes in the interface of TimeValue::now().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16515
91177308-0d34-0410-b5e6-
96231b3b80d8