Sanjiv Gupta
37fdb5ca11
Implement LowerOperationWrapper for legalizer.
...
Also a few signed comparison fixes.
llvm-svn: 62665
2009-01-21 05:44:05 +00:00
Scott Michel
c80e71ac35
CellSPU:
...
- Ensure that (operation) legalization emits proper FDIV libcall when needed.
- Fix various bugs encountered during llvm-spu-gcc build, along with various
cleanups.
- Start supporting double precision comparisons for remaining libgcc2 build.
Discovered interesting DAGCombiner feature, which is currently solved via
custom lowering (64-bit constants are not legal on CellSPU, but DAGCombiner
insists on inserting one anyway.)
- Update README.
llvm-svn: 62664
2009-01-21 04:58:48 +00:00
Sanjiv Gupta
074553c4fb
Allow targets to legalize operations (with illegal operands) that produces multiple values. For example, a load with an illegal operand (a load produces two values, a value and chain).
...
llvm-svn: 62663
2009-01-21 04:48:39 +00:00
Evan Cheng
0ed6a9d7e0
Favors generating "not" over "xor -1". For example.
...
unsigned test(unsigned a) {
return ~a;
}
llvm used to generate:
movl $4294967295, %eax
xorl 4(%esp), %eax
Now it generates:
movl 4(%esp), %eax
notl %eax
It's 3 bytes shorter.
llvm-svn: 62661
2009-01-21 02:09:05 +00:00
Dale Johannesen
ba0f5e174f
Disable on x86_64 until I figure out what's wrong.
...
llvm-svn: 62660
2009-01-21 02:08:30 +00:00
Dale Johannesen
6854f86296
Make special cases (0 inf nan) work for frem.
...
Besides APFloat, this involved removing code
from two places that thought they knew the
result of frem(0., x) but were wrong.
llvm-svn: 62645
2009-01-21 00:35:19 +00:00
Owen Anderson
10ad717dc8
Be more aggressive about renumbering vregs after splitting them.
...
llvm-svn: 62639
2009-01-21 00:13:28 +00:00
Devang Patel
c129e798c7
Encode member accessibility.
...
llvm-svn: 62638
2009-01-21 00:08:04 +00:00
Devang Patel
bb4362571a
Appropriately mark fowrad decls.
...
llvm-svn: 62625
2009-01-20 22:27:02 +00:00
Devang Patel
fd1fff7178
Need compile unit to find location.
...
llvm-svn: 62624
2009-01-20 22:26:11 +00:00
Dale Johannesen
1c12d1b665
Calls to fmod, it turns out, are constant-folded by
...
invoking the host fmod, not by lowering to frem and
constant-folding that. Fix this so it tests what I
want to test.
llvm-svn: 62622
2009-01-20 21:58:13 +00:00
Chris Lattner
4f4bbecafb
Don't bother running the assembler, we don't know that it will be configured
...
for whatever llc defaults to. This fixes PR3363
llvm-svn: 62619
2009-01-20 21:41:53 +00:00
Evan Cheng
5bea79c062
Fix PR3243: a LiveVariables bug. When HandlePhysRegKill is checking whether the last reference is also the last def (i.e. dead def), it should also check if last reference is the current machine instruction being processed. This can happen when it is processing a physical register use and setting the current machine instruction as sub-register's last ref.
...
llvm-svn: 62617
2009-01-20 21:25:12 +00:00
Duncan Sands
eb7ffc9654
Fix typo. Patch by Alexei Svitkine.
...
llvm-svn: 62616
2009-01-20 21:20:23 +00:00
Bill Wendling
cf901346da
Use "SINT_TO_FP" instead of "UINT_TO_FP" when getting the exponent. This was
...
causing the limited precision stuff to produce the wrong result for values in
the range [0, 1).
llvm-svn: 62615
2009-01-20 21:17:57 +00:00
Devang Patel
4c79c8be26
Fix struct member's debug info.
...
llvm-svn: 62610
2009-01-20 21:02:02 +00:00
Evan Cheng
0151af3a61
Add test case for PR3154.
...
llvm-svn: 62604
2009-01-20 19:29:54 +00:00
Devang Patel
2f92bb62a8
indentation...
...
llvm-svn: 62603
2009-01-20 19:23:29 +00:00
Devang Patel
ccc3162f69
Need only one set of debug info versions enum.
...
llvm-svn: 62602
2009-01-20 19:22:03 +00:00
Evan Cheng
b3c82db63d
Change TargetInstrInfo::isMoveInstr to return source and destination sub-register indices as well.
...
llvm-svn: 62600
2009-01-20 19:12:24 +00:00
Devang Patel
10237f3666
zap white spaces.
...
llvm-svn: 62598
2009-01-20 19:08:39 +00:00
Devang Patel
10f2f03c68
Fix global variable's address in a DIE.
...
llvm-svn: 62596
2009-01-20 18:55:39 +00:00
Devang Patel
7f6ef3bdd6
Enable debug info for enums.
...
llvm-svn: 62594
2009-01-20 18:35:14 +00:00
Dale Johannesen
c9e6e85a38
Add an IEEE remainder function, which is not
...
fully implemented yet and not used. This is
mainly to clarify that APFloat::mod implements
C fmod, not remainder.
llvm-svn: 62593
2009-01-20 18:35:05 +00:00
Chris Lattner
8ab719c566
improve compatibility with various versions of graphviz, patch by
...
Patrick Boettcher!
llvm-svn: 62592
2009-01-20 18:25:03 +00:00
Chris Lattner
816e00f6a0
eliminate use of uint32_t to improve compatibility with cygwin
...
llvm-svn: 62591
2009-01-20 18:23:14 +00:00
Chris Lattner
391f04d56e
Eliminate use of uint32_t to improve compatibility with cygwin
...
llvm-svn: 62590
2009-01-20 18:22:57 +00:00
Devang Patel
6bd9ebdef8
Enable debug info for composite types.
...
llvm-svn: 62589
2009-01-20 18:13:03 +00:00
Duncan Sands
7af474d2da
Check that the "don't barf on k8" fix is not
...
accidentally reverted again.
llvm-svn: 62587
2009-01-20 18:08:39 +00:00
Evan Cheng
38bf18b556
Spacing
...
llvm-svn: 62584
2009-01-20 17:30:40 +00:00
Bill Wendling
5bd5863cdb
Temporarily XFAIL until this can be looked at. r62557 is what caused it to start failing.
...
llvm-svn: 62578
2009-01-20 10:28:39 +00:00
Duncan Sands
7d2ea3c6de
If a vector is empty, you're not allowed to access any
...
elements, even if it is only to take the address. Test:
break-anti-dependencies.ll with ENABLE_EXPENSIVE_CHECKS.
llvm-svn: 62576
2009-01-20 09:05:19 +00:00
Evan Cheng
58488a481f
Refactor code. No functionality change.
...
llvm-svn: 62573
2009-01-20 06:44:16 +00:00
Bill Wendling
68171bde8e
Testcase for limited precision stuff.
...
llvm-svn: 62572
2009-01-20 06:23:59 +00:00
Bill Wendling
5685c90e04
Shift types need to match.
...
llvm-svn: 62571
2009-01-20 06:10:42 +00:00
Chris Lattner
6ade48fcaa
another fix for PR3354
...
llvm-svn: 62561
2009-01-20 01:15:41 +00:00
Dan Gohman
7663e08915
Add a README entry noticed while investigating PR3216.
...
llvm-svn: 62558
2009-01-20 01:07:33 +00:00
Dan Gohman
ff4c4ab39f
Fix a dagcombine to not generate loads of non-round integer types,
...
as its comment says, even in the case where it will be generating
extending loads. This fixes PR3216.
llvm-svn: 62557
2009-01-20 01:06:45 +00:00
Devang Patel
6a88f8849b
Do not use DenseMap because the iterator is invalidated while constructing types. After all there was a reason why std::map was used initially!
...
llvm-svn: 62555
2009-01-20 00:58:55 +00:00
Nick Lewycky
cb83b52e4e
Regenerate.
...
BUILT WITH WRONG VERSION OF AUTOCONF! Somebody please regenerate with an
approved version. Thanks!
llvm-svn: 62554
2009-01-20 00:52:24 +00:00
Nick Lewycky
6ef90b1a25
Make the Interpreter use libffi if it's available. Patch from Alexei Svitkine!
...
This requires a rebuild of 'configure' itself. I will be committing that next, but
built with the wrong version of autoconf. Somebody who has the right one, please update
it.
As a side-note, because of the way autoconf works, all built tools will link against
libffi, not just lli. If you know how to fix this, please let me know ...
llvm-svn: 62553
2009-01-20 00:51:40 +00:00
Evan Cheng
5ee5ba12be
Make linear scan's trivial coalescer slightly more aggressive.
...
llvm-svn: 62547
2009-01-20 00:16:18 +00:00
Bill Wendling
5281f4fb64
Doxygen-ify comments.
...
llvm-svn: 62546
2009-01-19 23:43:56 +00:00
Devang Patel
7c2157602d
Verify debug info.
...
llvm-svn: 62545
2009-01-19 23:21:49 +00:00
Chris Lattner
e8fa6f2468
Fix a problem exposed by PR3354: simplifycfg was making a potentially
...
trapping instruction be executed unconditionally.
llvm-svn: 62541
2009-01-19 23:03:13 +00:00
Dan Gohman
02b5657666
Remove SDNode's virtual destructor. This makes it impossible for
...
SDNode subclasses to keep state that requires non-trivial
destructors, however it was already effectively impossible,
since the destructor isn't actually ever called. There currently
aren't any SDNode subclasses affected by this, and in general
it's desireable to keep SDNode objects light-weight.
This eliminates the last virtual member function in the SDNode
class, so it eliminates the need for a vtable pointer, making
SDNode smaller.
llvm-svn: 62539
2009-01-19 22:39:36 +00:00
Dale Johannesen
5508ead868
Move & restructure test per review.
...
llvm-svn: 62538
2009-01-19 22:33:12 +00:00
Chris Lattner
7b4c55fb34
convert this to an unfoldable potentially trapping constant expr.
...
llvm-svn: 62536
2009-01-19 22:12:33 +00:00
Chris Lattner
45a7b5ce57
improve compatibility with cygwin, patch by Jay Foad!
...
llvm-svn: 62535
2009-01-19 22:00:18 +00:00
Chris Lattner
8c8234435a
div/rem by zero and div/rem overflow are both undefined according to
...
langref. Constant fold them to undef instead of trying to preserve
the trap. This fixes PR3354.
llvm-svn: 62534
2009-01-19 21:55:26 +00:00