Commit Graph

14982 Commits

Author SHA1 Message Date
Jim Laskey
85aaf9088e Tidy up options.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29953 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-29 15:13:10 +00:00
Evan Cheng
82a35b34fb Avoid making unneeded load/mod/store transformation which can hurt performance.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29952 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-29 06:44:17 +00:00
Evan Cheng
1efba0ecb4 Move isCommutativeBinOp from SelectionDAG.cpp and DAGCombiner.cpp out. Make it a static method of SelectionDAG.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29951 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-29 06:42:35 +00:00
Owen Anderson
d648e140a5 Clean up a bit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29950 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-29 06:10:56 +00:00
Nate Begeman
06abd22b1a Make ppc64 jit kinda work right. About 2/3 of Olden passes with this,
there are clearly some encoding bugs lurking in there somewhere.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29949 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-29 02:30:59 +00:00
Nick Lewycky
05450ae128 Add PredicateSimplifier pass. Collapses equal variables into one form
and simplifies expressions. This implements the optimization described
in PR807.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29947 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-28 22:44:55 +00:00
Evan Cheng
67afeceaf0 On Mac, print jump table entries after the function to work around a linker issue.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29946 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-28 22:14:16 +00:00
Evan Cheng
70e674e95e Add an optional pass to preprocess the DAG before x86 isel to allow selecting more load/mod/store instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29943 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-28 20:10:17 +00:00
Owen Anderson
59312b19a6 Make LoopUnroll fold excessive BasicBlocks. This results in a significant speedup of
gccas on 252.eon


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29936 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-28 02:09:46 +00:00
Reid Spencer
3a9ec2463d For PR387:
Close out this long standing bug by removing the remaining overloaded
virtual functions in LLVM. The -Woverloaded-virtual option is now turned on.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29934 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-28 01:02:49 +00:00
Chris Lattner
a5370172b6 simplify AnalysisGroup registration, eliminating one typeid call.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29932 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-28 00:42:29 +00:00
Chris Lattner
6e60002a73 Silence -Woverloaded-virtual warnings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29929 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-28 00:09:00 +00:00
Chris Lattner
7f8897f22e eliminate RegisterOpt. It does the same thing as RegisterPass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29925 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-27 22:42:52 +00:00
Chris Lattner
43d64b8526 Fit to 80 cols
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29922 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-27 22:31:12 +00:00
Chris Lattner
5d8925c7c5 Eliminate RegisterAnalysis. RegisterPass now does all that is necessary.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29921 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-27 22:30:17 +00:00
Chris Lattner
2dd3d423aa We no longer care whether something is an opt vs analysis pass, only whether
something is a pass vs an analysis group now.  Simplify interfaces.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29920 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-27 22:21:55 +00:00
Chris Lattner
232885873f Minor code cleanups
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29917 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-27 22:10:29 +00:00
Chris Lattner
a4f0b3a084 s|llvm/Support/Visibility.h|llvm/Support/Compiler.h|
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29911 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-27 12:54:02 +00:00
Chris Lattner
c9d94d1290 typo fix
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29910 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-27 12:47:48 +00:00
Chris Lattner
7422a76100 Add external definitions for commonly-used template specializations and add
anchor methods to others.  This eliminates the vtable/template method bloat
in .o files that defining a cl::opt used to impose (~4K per .o file for one
cp::opt<unsigned>).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29909 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-27 12:45:47 +00:00
Evan Cheng
0b828e08f9 Do not use getTargetNode() and SelectNodeTo() which takes more than 3
SDOperand arguments. Use the variants which take an array and number instead.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29907 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-27 08:14:06 +00:00
Evan Cheng
694481ee01 Eliminate SelectNodeTo() and getTargetNode() variants which take more than
3 SDOperand operands. They are replaced by versions which take an array
of SDOperand and the number of operands.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29905 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-27 08:08:54 +00:00
Chris Lattner
16c7fe5ca3 Fix target matching weights, so that ppc-darwin modules are codegen with the
ppc target, not the itanium target, when run on an itanium machine.
This should fix the CodeGen/PowerPC regtest failures on itanium.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29903 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-26 21:33:05 +00:00
Nate Begeman
d2030e6c99 Properly size the string table, and emit symbol table and string table
entries in the correct order, fixing several fixmes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29902 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-26 15:46:34 +00:00
Evan Cheng
95514bae73 SelectNodeTo now returns a SDNode*.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29901 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-26 08:00:10 +00:00
Evan Cheng
9ade218533 Select() no longer require Result operand by reference.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29898 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-26 05:34:46 +00:00
Chris Lattner
e7f729b42b Simplifications to liveinterval analysis, no functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29896 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-26 01:28:16 +00:00
Evan Cheng
6da2f3268d Match tblgen changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29895 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-26 01:07:58 +00:00
Evan Cheng
0469990e79 Match tblgen changes; clean up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29894 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-26 01:05:16 +00:00
Chris Lattner
8d3e1d6613 Give a good error message when we try to jit inline asm.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29891 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-26 00:47:03 +00:00
Chris Lattner
c114b2cad7 Completely change the way that joining with physregs is implemented. This
paves the way for future changes, increases coallescing opportunities (in
theory, not witnessed in practice), and eliminates the really expensive
LiveIntervals::overlapsAliases method.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29890 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-25 23:41:24 +00:00
Evan Cheng
1822ffbab7 Add a comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29889 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-25 23:29:06 +00:00
Jim Laskey
08ede262a7 Tidy up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29888 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-25 22:56:30 +00:00
Owen Anderson
203572552d Fix a crash related to updating Phi nodes in the original header block. This was
causing a crash in 175.vpr


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29887 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-25 22:13:55 +00:00
Owen Anderson
eb70591492 Add an assertion to check that we're really preserving LCSSA.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29886 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-25 22:12:36 +00:00
Evan Cheng
b9ca92661c Encode pc-relative conditional branch offset as pc+(num of bytes / 4). The
asm printer will print it as offset*4. e.g. bne cr0, $+8.

The PPC code emitter was expecting the offset to be number of instructions, not
number of bytes. This fixes a whole bunch of JIT failures.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29885 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-25 21:54:44 +00:00
Reid Spencer
0554575567 For PR797:
Make the Win32 code exception free (untested/uncompiled) which forced some
interface changes which had ripple effect. This should be the last of 797.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29884 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-25 21:37:17 +00:00
Reid Spencer
99655e16a6 For PR797:
Final commit for this bug. This removes the last EH holdouts in LLVM
and turns off exception support by using the -fno-exceptions option. This
leads to the following reduction in library and executable sizes:
                DEBUG BUILD                RELEASE BUILD
         before     after   delta     before   after    delta
lib    162,328K  157,616K   4,712    17,864K  16,416K  1,448K
bin    571,444K  557,156K  14,288    63,296K   56,996K 6,300K

Debug   Improvement: 19,000K (2.59%)
Release Improvement:  7,748K (9.55%)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29882 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-25 19:54:53 +00:00
Jim Laskey
f3e4f0e615 Consolidate callee saved register information so that it can me used by debug
information and exception handling.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29881 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-25 19:45:51 +00:00
Jim Laskey
4c2c9031ac Fix some comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29880 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-25 19:40:59 +00:00
Jim Laskey
3d3d404b8a Allow for register numbers > 31.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29879 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-25 19:39:52 +00:00
Rafael Espindola
755be9b3de use @ for comments
store LR in an arbitrary stack slot
add support for writing varargs functions


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29876 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-25 17:55:16 +00:00
Reid Spencer
0b5a504d10 For PR797:
Remove exception throwing/handling from lib/Bytecode, and adjust its users
to compensate for changes in the interface.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29875 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-25 17:43:11 +00:00
Owen Anderson
ac12322710 Reapply the indvars patch, since nothing blew up last night.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29874 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-25 17:41:25 +00:00
Nate Begeman
f8f2c5a172 Get closer to handling globals correctly. We now generally get them in the
right section.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29871 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-25 06:36:58 +00:00
Owen Anderson
b397d81f03 Revert my previous patch. Since there are some major changes that went in today,
I'm going to wait to put this in HEAD until tomorrow, so as not to clutter the nightly
tester.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29868 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-25 03:45:57 +00:00
Owen Anderson
8a24749cb8 Specify that indvars actually preserve LCSSA. This has been done for a while, but I
forgot to put in the analysis usage.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29867 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-25 03:32:13 +00:00
Reid Spencer
0ff2d31766 For PR797:
Remove exception handling from the bytecode archiver and adjust the llvm-ar
tool to accommodate the new interfaces.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29866 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-24 23:45:08 +00:00
Chris Lattner
c82b3aab65 When replacing value numbers, make sure to compactify the value # space.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29865 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-24 23:22:59 +00:00
Chris Lattner
bf16982e86 We compile this into:
_swap_16:
        slwi r2, r3, 24
        rlwimi r2, r3, 8, 8, 15
        srwi r3, r2, 16
        blr

now.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29864 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-24 23:06:02 +00:00