Commit Graph

26291 Commits

Author SHA1 Message Date
Nick Lewycky
3947a76e21 Move to using the EquivalenceClass ADT. Removes SynSets.
If a branch's condition has become a ConstantBool, simplify it immediately.
Removing the edge saves work and exposes up more optimization opportunities
in the pass.
Add support for SelectInst.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29970 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-30 02:46:48 +00:00
Chris Lattner
1bb6f0643d Code cleanups, no functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29969 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-29 23:38:20 +00:00
Chris Lattner
6d8fbef015 Teach the coallescer to coallesce live intervals joined by an arbitrary
number of copies, potentially defining live ranges that appear to have
differing value numbers that become identical when coallsced.  Among other
things, this fixes CodeGen/X86/shift-coalesce.ll and PR687.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29968 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-29 23:18:15 +00:00
Chris Lattner
734d811723 new testcase for pr687
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29967 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-29 23:09:59 +00:00
Devang Patel
4b8f36f106 Do not rely on std::sort and std::erase to get list of unique
exit blocks. The output is dependent on addresses of basic block.

Add and use Loop::getUniqueExitBlocks.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29966 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-29 22:29:16 +00:00
Evan Cheng
c9676deb23 Minor asm fix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29965 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-29 22:14:48 +00:00
Evan Cheng
bb0a23a137 This is also a 32-bit only test. x86-64 would pass fp parameters through XMM registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29964 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-29 22:01:39 +00:00
Evan Cheng
e091c8ba72 Fix test case so it passes on x86-64.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29963 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-29 21:49:58 +00:00
Evan Cheng
4a888584ea Remove dead code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29962 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-29 21:42:58 +00:00
Reid Spencer
e3a1069870 Delete a no-longer-supported configuration item.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29960 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-29 20:52:44 +00:00
Evan Cheng
f3b7f6b9e4 Undo xfail.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29958 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-29 18:49:41 +00:00
Evan Cheng
780413d462 Don't performance load/op/store transformation if op produces a floating point
or vector result. X86 does not have load/mod/store variants of those
instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29957 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-29 18:37:37 +00:00
Evan Cheng
e50794adda - Enable x86 isel preprocessing by default unless -fast is specified.
- Also disable isel load folding if -fast.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29956 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-29 18:28:33 +00:00
Evan Cheng
718996654b Issue cvs co with -P option to prune empty directories. Remove the unnecessary
update stage.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29955 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-29 18:01:18 +00:00
Jim Laskey
ce50a165c7 Handle callee saved registers in dwarf frame info (lead up to exception
handling.)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29954 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-29 16:24:26 +00:00
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
97198c9b1b The list is sorted by name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29948 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-29 01:42:47 +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
Chris Lattner
181c359c9d Add 2nd form of resize
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29945 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-28 21:52:08 +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
Chris Lattner
5e9b177cb5 Add a --disable-compression option like llvm-link/llvm-as etc have
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29941 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-28 17:31:55 +00:00
Chris Lattner
20c71001a4 remove extraneous space
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29940 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-28 17:30:49 +00:00
Bill Wendling
1644877280 Spell naively with the i-Umlaut...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29939 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-28 03:04:05 +00:00
Bill Wendling
546c421c1d Messed up and put a "To be written" in a section that was written.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29938 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-28 02:57:41 +00:00
Bill Wendling
91e10c42ea Added some preliminary text to the TargetJITInfo class section.
Fixed some inconsistencies with format. Corrected some of the text.
Put code inside of "code" div tags.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29937 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-28 02:26:32 +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
6118eefe99 Back out last revision which should not have been committed (yet).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29935 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-28 01:08:45 +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
dc87725902 Update to match changes in RegisterAnalysisGroup usage
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29933 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-28 00:45:38 +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
Reid Spencer
84f82f7fac Excise references to the now defunct "analyze" tool. Merge descriptions
where appropriate.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29931 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-28 00:34:19 +00:00
Reid Spencer
f100dcc42e Add virtual methods to all subclasses so they are not overloaded.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29930 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-28 00:12:25 +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
c8603c2444 update doc: analyze is gone and passes should just use RegisterPass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29928 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-27 23:18:52 +00:00
Chris Lattner
d52e1b0dbe Update tests now that opt no longer reads .ll files
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29927 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-27 22:47:14 +00:00
Chris Lattner
c9b208c886 Adjust tests now that opt doesn't read .ll files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29926 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-27 22:44:20 +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
21a82e6fc7 opt no longer reads .ll files. Run llvm-as explicitly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29924 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-27 22:41:58 +00:00
Chris Lattner
3b2493e2a1 -analyze mode shouldn't output a .bc file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29923 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-27 22:40:26 +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
a4be053d7d analyze no longer exists, don't offer to run it :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29919 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-27 22:12:06 +00:00
Chris Lattner
f91e4f86c2 Remove a dead class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29918 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-27 22:11:07 +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