Dan Gohman [Thu, 22 Jan 2009 01:39:38 +0000 (01:39 +0000)]
Add a few more notes about LLVM IR features that codegen doesn't
yet support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62739
91177308-0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Thu, 22 Jan 2009 01:20:31 +0000 (01:20 +0000)]
CMake: Tests PERL availability with PERL_EXECUTABLE variable.
On MSVC 64bits, does not put underscore before the symbol name on the
/INCLUDE linker parameter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62738
91177308-0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Wed, 21 Jan 2009 23:49:23 +0000 (23:49 +0000)]
Add explicit this-> (to make the VS compiler happy).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62731
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 21 Jan 2009 23:40:54 +0000 (23:40 +0000)]
Recognize inline asm for bswap on x86-64 GLIBC. This allows it
to be supported in the JIT.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62730
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Wed, 21 Jan 2009 22:38:44 +0000 (22:38 +0000)]
Fix ilist two-phase name lookup
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62724
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 21 Jan 2009 21:54:44 +0000 (21:54 +0000)]
Fix a missing word.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62720
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 21 Jan 2009 21:52:42 +0000 (21:52 +0000)]
Versions of VIM included with Intrepid and Leopard at least appear
to handle symlinks just fine, so reword the instructions in the
README accordingly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62719
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 21 Jan 2009 21:47:51 +0000 (21:47 +0000)]
Enable syntax highlighting of LLVM and tablegen files by default,
so that users don't have to copy text from the README to get this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62718
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 21 Jan 2009 21:30:25 +0000 (21:30 +0000)]
Only set cindent for C and C++ source files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62717
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 21 Jan 2009 21:28:03 +0000 (21:28 +0000)]
Now with RUN line.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62716
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 21 Jan 2009 21:02:27 +0000 (21:02 +0000)]
Run this through -simplifycfg and -mem2reg to test only what we need to test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62714
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 21 Jan 2009 20:50:09 +0000 (20:50 +0000)]
Add a comment to SelectionDAG::ReplaceAllUsesWith to describe a subtle
iteraction with SelectionDAG CSE.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62713
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Wed, 21 Jan 2009 20:32:55 +0000 (20:32 +0000)]
Do not use host floating point types when emitting
ASCII IR; loading and storing these can change the
bits of NaNs on some hosts. Remove or add warnings
at a few other places using host floating point;
this is a bad thing to do in general.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62712
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 21 Jan 2009 19:45:31 +0000 (19:45 +0000)]
Also favors NOT64r.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62710
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 21 Jan 2009 18:38:18 +0000 (18:38 +0000)]
fix warning in release-asserts mode and spelling of assert.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62699
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 21 Jan 2009 18:11:10 +0000 (18:11 +0000)]
add getPointerToGlobal to the C bindings, patch by Lennart Augustsson!
PR3364
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62697
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 21 Jan 2009 18:09:24 +0000 (18:09 +0000)]
Remove uses of uint32_t in favor of 'unsigned' for better
compatibility with cygwin. Patch by Jay Foad!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62695
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 21 Jan 2009 15:17:51 +0000 (15:17 +0000)]
Simplify ReduceLoadWidth's logic: it doesn't need several different
special cases after producing the new reduced-width load, because the
new load already has the needed adjustments built into it. This fixes
several bugs due to the special cases, including PR3317.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62692
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 21 Jan 2009 14:50:16 +0000 (14:50 +0000)]
Fix a recent regression. ClrOpcode is not set for i8; for i8, if
we want to clear %ah to zero before a division, just use a
zero-extending mov to %al. This fixes PR3366.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62691
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Wed, 21 Jan 2009 13:14:02 +0000 (13:14 +0000)]
Mimic gcc behaviour with regard to response files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62688
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Wed, 21 Jan 2009 13:05:00 +0000 (13:05 +0000)]
Fix 'llvm-config --libs' output.
Change the naming scheme for llvmc plugins so that they do not appear in
'llvm-config --libs' output.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62687
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Wed, 21 Jan 2009 13:04:33 +0000 (13:04 +0000)]
Change the hook API back to prevent memory leaks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62686
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Wed, 21 Jan 2009 13:04:00 +0000 (13:04 +0000)]
Allow hooks with arguments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62685
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 21 Jan 2009 11:51:17 +0000 (11:51 +0000)]
This was causing invalid memory accesses when
generating debug info in the compiler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62684
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 21 Jan 2009 11:37:31 +0000 (11:37 +0000)]
Let's try to have our cake and eat it to: move
this test into FrontendC to ensure that llvm-gcc
is available; assemble using "llvm-gcc -xassembler"
rather than "as".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62683
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 21 Jan 2009 09:41:42 +0000 (09:41 +0000)]
Don't rely on grep -w working.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62682
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjiv Gupta [Wed, 21 Jan 2009 09:02:46 +0000 (09:02 +0000)]
Fixed build warnings. Restoring changes done in 62600, they were lost in 62655.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62681
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 21 Jan 2009 09:00:29 +0000 (09:00 +0000)]
Cleanup whitespace and comments, and tweak some
prototypes, in operand type legalization. No
functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62680
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 21 Jan 2009 08:18:03 +0000 (08:18 +0000)]
I accidentally removed this check in an earlier commit, which cause breakage in the pre alloc splitter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62678
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjiv Gupta [Wed, 21 Jan 2009 05:44:05 +0000 (05:44 +0000)]
Implement LowerOperationWrapper for legalizer.
Also a few signed comparison fixes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62665
91177308-0d34-0410-b5e6-
96231b3b80d8
Scott Michel [Wed, 21 Jan 2009 04:58:48 +0000 (04:58 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62664
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjiv Gupta [Wed, 21 Jan 2009 04:48:39 +0000 (04:48 +0000)]
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).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62663
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 21 Jan 2009 02:09:05 +0000 (02:09 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62661
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Wed, 21 Jan 2009 02:08:30 +0000 (02:08 +0000)]
Disable on x86_64 until I figure out what's wrong.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62660
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Wed, 21 Jan 2009 00:35:19 +0000 (00:35 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62645
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 21 Jan 2009 00:13:28 +0000 (00:13 +0000)]
Be more aggressive about renumbering vregs after splitting them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62639
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 21 Jan 2009 00:08:04 +0000 (00:08 +0000)]
Encode member accessibility.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62638
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 20 Jan 2009 22:27:02 +0000 (22:27 +0000)]
Appropriately mark fowrad decls.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62625
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 20 Jan 2009 22:26:11 +0000 (22:26 +0000)]
Need compile unit to find location.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62624
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Tue, 20 Jan 2009 21:58:13 +0000 (21:58 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62622
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 20 Jan 2009 21:41:53 +0000 (21:41 +0000)]
Don't bother running the assembler, we don't know that it will be configured
for whatever llc defaults to. This fixes PR3363
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62619
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 20 Jan 2009 21:25:12 +0000 (21:25 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62617
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Tue, 20 Jan 2009 21:20:23 +0000 (21:20 +0000)]
Fix typo. Patch by Alexei Svitkine.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62616
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 20 Jan 2009 21:17:57 +0000 (21:17 +0000)]
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).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62615
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 20 Jan 2009 21:02:02 +0000 (21:02 +0000)]
Fix struct member's debug info.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62610
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 20 Jan 2009 19:29:54 +0000 (19:29 +0000)]
Add test case for PR3154.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62604
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 20 Jan 2009 19:23:29 +0000 (19:23 +0000)]
indentation...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62603
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 20 Jan 2009 19:22:03 +0000 (19:22 +0000)]
Need only one set of debug info versions enum.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62602
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 20 Jan 2009 19:12:24 +0000 (19:12 +0000)]
Change TargetInstrInfo::isMoveInstr to return source and destination sub-register indices as well.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62600
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 20 Jan 2009 19:08:39 +0000 (19:08 +0000)]
zap white spaces.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62598
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 20 Jan 2009 18:55:39 +0000 (18:55 +0000)]
Fix global variable's address in a DIE.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62596
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 20 Jan 2009 18:35:14 +0000 (18:35 +0000)]
Enable debug info for enums.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62594
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Tue, 20 Jan 2009 18:35:05 +0000 (18:35 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62593
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 20 Jan 2009 18:25:03 +0000 (18:25 +0000)]
improve compatibility with various versions of graphviz, patch by
Patrick Boettcher!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62592
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 20 Jan 2009 18:23:14 +0000 (18:23 +0000)]
eliminate use of uint32_t to improve compatibility with cygwin
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62591
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 20 Jan 2009 18:22:57 +0000 (18:22 +0000)]
Eliminate use of uint32_t to improve compatibility with cygwin
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62590
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 20 Jan 2009 18:13:03 +0000 (18:13 +0000)]
Enable debug info for composite types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62589
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Tue, 20 Jan 2009 18:08:39 +0000 (18:08 +0000)]
Check that the "don't barf on k8" fix is not
accidentally reverted again.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62587
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 20 Jan 2009 17:30:40 +0000 (17:30 +0000)]
Spacing
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62584
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 20 Jan 2009 10:28:39 +0000 (10:28 +0000)]
Temporarily XFAIL until this can be looked at. r62557 is what caused it to start failing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62578
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Tue, 20 Jan 2009 09:05:19 +0000 (09:05 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62576
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 20 Jan 2009 06:44:16 +0000 (06:44 +0000)]
Refactor code. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62573
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 20 Jan 2009 06:23:59 +0000 (06:23 +0000)]
Testcase for limited precision stuff.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62572
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 20 Jan 2009 06:10:42 +0000 (06:10 +0000)]
Shift types need to match.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62571
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 20 Jan 2009 01:15:41 +0000 (01:15 +0000)]
another fix for PR3354
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62561
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 20 Jan 2009 01:07:33 +0000 (01:07 +0000)]
Add a README entry noticed while investigating PR3216.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62558
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 20 Jan 2009 01:06:45 +0000 (01:06 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62557
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 20 Jan 2009 00:58:55 +0000 (00:58 +0000)]
Do not use DenseMap because the iterator is invalidated while constructing types. After all there was a reason why std::map was used initially!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62555
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Tue, 20 Jan 2009 00:52:24 +0000 (00:52 +0000)]
Regenerate.
BUILT WITH WRONG VERSION OF AUTOCONF! Somebody please regenerate with an
approved version. Thanks!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62554
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Tue, 20 Jan 2009 00:51:40 +0000 (00:51 +0000)]
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 ...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62553
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 20 Jan 2009 00:16:18 +0000 (00:16 +0000)]
Make linear scan's trivial coalescer slightly more aggressive.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62547
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 19 Jan 2009 23:43:56 +0000 (23:43 +0000)]
Doxygen-ify comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62546
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 19 Jan 2009 23:21:49 +0000 (23:21 +0000)]
Verify debug info.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62545
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 19 Jan 2009 23:03:13 +0000 (23:03 +0000)]
Fix a problem exposed by PR3354: simplifycfg was making a potentially
trapping instruction be executed unconditionally.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62541
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 19 Jan 2009 22:39:36 +0000 (22:39 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62539
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Mon, 19 Jan 2009 22:33:12 +0000 (22:33 +0000)]
Move & restructure test per review.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62538
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 19 Jan 2009 22:12:33 +0000 (22:12 +0000)]
convert this to an unfoldable potentially trapping constant expr.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62536
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 19 Jan 2009 22:00:18 +0000 (22:00 +0000)]
improve compatibility with cygwin, patch by Jay Foad!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62535
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 19 Jan 2009 21:55:26 +0000 (21:55 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62534
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 19 Jan 2009 21:44:21 +0000 (21:44 +0000)]
Fix SelectionDAG::ReplaceAllUsesWith to behave correctly when
uses are added to the From node while it is processing From's
use list, because of automatic local CSE. The fix is to avoid
visiting any new uses.
Fix a few places in the DAGCombiner that assumed that after
a RAUW call, the From node has no users and may be deleted.
This fixes PR3018.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62533
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 19 Jan 2009 21:20:34 +0000 (21:20 +0000)]
Fix PR3353, infinitely jump threading an infinite loop make from switches.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62529
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Mon, 19 Jan 2009 21:17:05 +0000 (21:17 +0000)]
compile-time fmod was done incorrectly. PR 3316.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62528
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 19 Jan 2009 21:13:39 +0000 (21:13 +0000)]
DebugInfo is a lightweight APIs and consumers are expected to use light objects directly. There is no need to support isa<>, dyn_cast<> etc...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62527
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 19 Jan 2009 21:00:48 +0000 (21:00 +0000)]
Verify Intrinsic::dbg_declare.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62526
91177308-0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Mon, 19 Jan 2009 19:48:23 +0000 (19:48 +0000)]
Add targets to support the installation of clang in isolation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62522
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 19 Jan 2009 19:06:11 +0000 (19:06 +0000)]
DIVREM isel deficiency: If sign bit is known zero, zero out DX/EDX/RDX instead of sign extending the low part (in AX/EAX/RAX) into it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62519
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 19 Jan 2009 18:57:29 +0000 (18:57 +0000)]
Fix 80 col violations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62518
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 19 Jan 2009 18:31:51 +0000 (18:31 +0000)]
Handle ISD::DECLARE with PIC relocation model.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62516
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Mon, 19 Jan 2009 18:08:33 +0000 (18:08 +0000)]
Port this test from dejagnu to unit testing.
The way this worked before was to test APInt by running
"lli -force-interpreter=true" knowing the lli uses APInt under the hood to
store its values. Now, we test APInt directly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62514
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Mon, 19 Jan 2009 17:42:33 +0000 (17:42 +0000)]
Fix typo, sentence fragment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62512
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Villiom Podlaski Christiansen [Mon, 19 Jan 2009 15:04:29 +0000 (15:04 +0000)]
Adding your's truly to CREDITS.TXT
(This is also a test commit.)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62511
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 19 Jan 2009 08:46:20 +0000 (08:46 +0000)]
Temporarily revert r62487. It's causing this error during a release bootstrap of
llvm-gcc. Most likely, it's miscompiling one of the "gen*" programs:
/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.obj/./prev-gcc/xgcc -B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.obj/./prev-gcc/ -B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.6.0/bin/ -c -g -O2 -mdynamic-no-pic -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -mdynamic-no-pic -DHAVE_CONFIG_H -DGENERATOR_FILE -I. -Ibuild -I../../llvm-gcc.src/gcc -I../../llvm-gcc.src/gcc/build -I../../llvm-gcc.src/gcc/../include -I./../intl -I../../llvm-gcc.src/gcc/../libcpp/include -I../../llvm-gcc.src/gcc/../libdecnumber -I../libdecnumber -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/include -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/include -DENABLE_LLVM -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/../llvm.src/include -D_DEBUG -D_GNU_SOURCE -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -o build/gencondmd.o build/gencondmd.c
../../llvm-gcc.src/gcc/config/i386/mmx.md:926: error: expected '}' before ')' token
../../llvm-gcc.src/gcc/config/i386/mmx.md:926: warning: excess elements in struct initializer
../../llvm-gcc.src/gcc/config/i386/mmx.md:926: warning: (near initialization for 'insn_conditions[4]')
../../llvm-gcc.src/gcc/config/i386/mmx.md:926: error: expected '}' before ')' token
../../llvm-gcc.src/gcc/config/i386/mmx.md:926: error: expected ',' or ';' before ')' token
../../llvm-gcc.src/gcc/config/i386/mmx.md:927: error: expected identifier or '(' before ',' token
../../llvm-gcc.src/gcc/config/i386/sse.md:3458: error: expected identifier or '(' before ',' token
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62506
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 19 Jan 2009 08:19:57 +0000 (08:19 +0000)]
Minor tweak to LowerUINT_TO_FP_i32. Bias (after scalar_to_vector) has two uses so we should make it the second source operand of ISD::OR so 2-address pass won't have to be smart about commuting.
%reg1024<def> = MOVSDrm %reg0, 1, %reg0, <cp#0>, Mem:LD(8,8) [ConstantPool + 0]
%reg1025<def> = MOVSD2PDrr %reg1024
%reg1026<def> = MOVDI2PDIrm <fi#-1>, 1, %reg0, 0, Mem:LD(4,16) [FixedStack-1 + 0]
%reg1027<def> = ORPSrr %reg1025<kill>, %reg1026<kill>
%reg1028<def> = MOVPD2SDrr %reg1027<kill>
%reg1029<def> = SUBSDrr %reg1028<kill>, %reg1024<kill>
%reg1030<def> = CVTSD2SSrr %reg1029<kill>
MOVSSmr <fi#0>, 1, %reg0, 0, %reg1030<kill>, Mem:ST(4,4) [FixedStack0 + 0]
%reg1031<def> = LD_Fp32m80 <fi#0>, 1, %reg0, 0, Mem:LD(4,16) [FixedStack0 + 0]
RET %reg1031<kill>, %ST0<imp-use,kill>
The reason 2-addr pass isn't smart enough to commute the ORPSrr is because it can't look pass the MOVSD2PDrr instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62505
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 19 Jan 2009 08:08:22 +0000 (08:08 +0000)]
Now not UINT_TO_FP is legal (it's marked custom), dag combiner won't
optimize it to a SINT_TO_FP when the sign bit is known zero. X86 isel should perform the optimization itself.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62504
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 19 Jan 2009 02:46:28 +0000 (02:46 +0000)]
Fix PR3016, a bug which can occur do to an invalid assumption:
we assumed a CFG structure that would be valid when all code in
the function is reachable, but not all code is necessarily
reachable. Do a simple, but horrible, CFG walk to check for this
case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62487
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 19 Jan 2009 02:07:32 +0000 (02:07 +0000)]
reduce indentation by using 'continue', no functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62477
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 19 Jan 2009 00:36:37 +0000 (00:36 +0000)]
Fix some problems in SpeculativelyExecuteBB. Basically,
because of dead code, a phi could use the speculated instruction
that was not in "BB2". Make this check explicit and tighten up
some other corners. This fixes PR3292. No testcase becauase this
depends entirely on visitation order of blocks and requires a
sequence of 8 passes to repro.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62476
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 18 Jan 2009 23:22:07 +0000 (23:22 +0000)]
Make this a bit more explicit about which cases need the
check. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62474
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 18 Jan 2009 20:35:00 +0000 (20:35 +0000)]
Fix rdar://
6505632, an llc crash on 483.xalancbmk
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62470
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjiv Gupta [Sun, 18 Jan 2009 18:25:27 +0000 (18:25 +0000)]
Few targets like PIC16 wants libcall generation for illegal type i16.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62467
91177308-0d34-0410-b5e6-
96231b3b80d8