Nick Lewycky
eefdebe002
Handle decrementing loops properly. Fixes PR1533.
...
Always pass the constant as the second parameter to HowManyLessThans.
Remove obsolete "isSigned" parameter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39893 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-16 02:08:00 +00:00
Chris Lattner
f7b71c64cf
add a helper method.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39885 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-15 23:32:03 +00:00
Chris Lattner
04d519e160
new testcase
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39882 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-15 22:30:34 +00:00
Chris Lattner
4241e4da85
Implement shift-simplify.ll:test[45].
...
First teach instcombine that sign bit checks only demand the
sign bit, this allows simplify demanded bits to hack on
expressions better.
Second, teach instcombine that ashr is useless if only the
sign bit is demanded.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39880 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-15 20:54:51 +00:00
Chris Lattner
a0141b90a3
Implement shift-simplify.ll:test3, turning:
...
(X << 31) <s 0 --> (X&1) != 0
This happens dozens of times in the CFE.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39879 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-15 20:42:37 +00:00
Nick Lewycky
28753f8df2
Clarify the language. Pointed out by Duncan Sands.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39857 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-14 17:41:03 +00:00
Nick Lewycky
6d4b711e7f
Fix the build. Patch from Holger Schurig.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39856 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-14 15:11:14 +00:00
Anton Korobeynikov
2365f51ed0
Long live the exception handling!
...
This patch fills the last necessary bits to enable exceptions
handling in LLVM. Currently only on x86-32/linux.
In fact, this patch adds necessary intrinsics (and their lowering) which
represent really weird target-specific gcc builtins used inside unwinder.
After corresponding llvm-gcc patch will land (easy) exceptions should be
more or less workable. However, exceptions handling support should not be
thought as 'finished': I expect many small and not so small glitches
everywhere.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39855 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-14 14:06:15 +00:00
Nick Lewycky
a73d11efd4
Use maximal intersection algorithm exclusively. Fixes miscompile bug.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39852 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-14 04:28:04 +00:00
Nick Lewycky
377b1190cb
Add alternate ConstantRange intersection algorithm.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39851 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-14 02:51:34 +00:00
Evan Cheng
7722ceb7de
Added test case from PR1540.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39845 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-13 23:57:33 +00:00
Devang Patel
b4559a2179
Make LCSSA a loop pass.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39844 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-13 23:57:11 +00:00
Evan Cheng
03494d7c8f
Fix for PR1540: Specify F0, F1 are sub-registers of D0, etc.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39843 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-13 23:55:50 +00:00
Owen Anderson
a08971559d
Handle GEPs with all-zero indices in the same way we handle pointer-pointer bitcasts. Also, fix a potentia infinite loop.
...
This brings FastDSE to parity with old DSE on 175.vpr.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39839 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-13 22:50:48 +00:00
Devang Patel
fba36b8cba
Disable claims to preserve analysis until open issues are resolved.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39834 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-13 21:53:42 +00:00
Dan Gohman
3bf6e183d5
Eliminate an unused parameter.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39828 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-13 20:16:50 +00:00
Dan Gohman
a346615d11
Fix the comment for LegalizeOp to more accurately reflect what it does.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39827 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-13 20:14:11 +00:00
Chris Lattner
744ff41e0e
remove obsolete note
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39825 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-13 20:08:19 +00:00
Dan Gohman
05d92fe7c4
Don't call SimplifyVBinOp for non-vector operations, following earlier review
...
feedback. This theoretically makes the common (scalar) case more efficient.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39823 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-13 20:03:40 +00:00
Chris Lattner
3e63a9d52c
fix some bugs in the manual
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39822 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-13 20:01:46 +00:00
Owen Anderson
3e8d001799
Be more aggressive in removing dead stores, and in removing instructions trivially dead after DSE.
...
This drastically improves the effect of FastDSE on kimwitu++.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39819 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-13 18:26:26 +00:00
Dale Johannesen
72f1596403
Modify previous patch per review comments.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39817 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-13 17:31:29 +00:00
Dale Johannesen
e7e7d0d7e3
Skeleton of post-RA scheduler; doesn't do anything yet.
...
Change name of -sched option and DEBUG_TYPE to
pre-RA-sched; adjust testcases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39816 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-13 17:13:54 +00:00
Chris Lattner
8dc4b59b85
Fix CodeGen/Generic/print-arith-fp.ll on sparc (PR1551)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39813 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-13 16:24:10 +00:00
Gabor Greif
7f6d4e8b6b
these tests do not need a triple on Solaris. Thanks sabre!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39803 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-13 10:08:18 +00:00
Reid Spencer
96cf58777b
Regenerate to pick up Gabor's changes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39802 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-13 10:05:30 +00:00
Reid Spencer
28522b3bfd
Set the mime-type of this file to text/plain because (silly) SVN
...
doesn't know that application/x-sh is text.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39801 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-13 10:02:45 +00:00
Gabor Greif
f70414f3d0
* llvm.spec.in: update blurb
...
* autoconf/AutoRegen.sh: use variables for autofoo versions
* autoconf/configure.ac: test for some more functions
that are not guaranteed on solaris
Note: the svn:mime-type of autoconf/AutoRegen.sh
should be set to something that allows for
text compares using svn diff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39800 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-13 09:48:29 +00:00
Owen Anderson
43b2676cc2
Reimplement removing stores to allocas at the end of a function. This should be safe now.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39790 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-12 21:41:30 +00:00
Owen Anderson
dd61c2b25c
Make the condition-checking for free with non-trivial dependencies more correct.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39789 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-12 18:08:51 +00:00
Owen Anderson
1b4542b6df
Remove the end-block handling code. It was unsafe, and making it safe would have resulted in falling back to the slow DSE case. I need to think some more about the right way to handle this.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39788 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-12 17:52:20 +00:00
Dale Johannesen
66a2a8f878
ARM: make branch folder remove unconditional branches
...
following jump tables that it earlier inserted. This
would be OK on other targets but is needed for correctness
only on ARM (constant islands needs to find jump tables).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39782 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-12 16:45:35 +00:00
Duncan Sands
bb821dd79b
The type ids making up a filter are unsigned, and
...
should be output as unsigned values. Checked against
gcc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39775 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-12 13:51:39 +00:00
Gabor Greif
3b0a7ea66e
checked in as obvious,
...
thanks Benoit Boissinot!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39774 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-12 13:31:38 +00:00
Gabor Greif
fe20273427
fix the remaining 3 testcases that missed a target triple
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39773 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-12 13:21:08 +00:00
Chris Lattner
ca23e17adf
another missed SSE optimization
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39772 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-12 06:31:38 +00:00
Owen Anderson
1cb960a4bb
Let MemoryDependenceAnalysis take care of updating AliasAnalysis.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39769 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-12 00:06:21 +00:00
Devang Patel
680171f210
New test.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39768 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-11 23:54:25 +00:00
Devang Patel
990e866deb
Preserve analysis info.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39767 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-11 23:47:28 +00:00
David Greene
df93e57975
Get rid of annoying spaces.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39766 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-11 23:44:08 +00:00
Bruno Cardoso Lopes
a4e8200366
Added support for Mips specific GAS directives
...
Fixed print immediate
Fixed Identation on MipsISelDAGToDAG.cpp
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39764 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-11 23:24:41 +00:00
Bruno Cardoso Lopes
7b155fbd60
Added support for framepointer
...
Prologue/Epilogue support fp,ra save/restore and use the stack frame the right
way!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39763 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-11 23:21:31 +00:00
Owen Anderson
a96c1f665a
Handle the case where an entire structure is freed, and its dependency is a store to a field within
...
that structure.
Also, refactor the runOnBasicBlock() function, splitting some of the special cases into separate functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39762 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-11 23:19:17 +00:00
Bruno Cardoso Lopes
758dcca57a
Now that stack is represented the right way, LOA starts at 0
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39761 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-11 23:17:41 +00:00
Bruno Cardoso Lopes
2ab22d1b93
Fixed AddLiveOut issues
...
FI's created the write way to represent Mips stack
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39760 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-11 23:16:16 +00:00
Bruno Cardoso Lopes
332a3d22a2
Removed unused immediate PatLeaf, fixed lui instruction
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39759 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-11 22:47:02 +00:00
Bruno Cardoso Lopes
4215a59a76
Added MipsMachineFunction class, to hold Mips dinamic stack info when inserting Prologue/Epilog
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39758 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-11 22:44:21 +00:00
Owen Anderson
6f46d65104
Add support for eliminate stores to stack-allocated memory locations at the end
...
of a function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39754 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-11 21:06:56 +00:00
Owen Anderson
2655adb3b2
Handle eliminating stores that occur right before a free.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39753 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-11 20:38:34 +00:00
Lauro Ramos Venancio
a126bb71d5
Handle packed structs in the CBackend.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39752 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-11 19:56:53 +00:00