oota-llvm.git
15 years agoEncode member accessibility.
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

15 years agoAppropriately mark fowrad decls.
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

15 years agoNeed compile unit to find location.
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

15 years agoCalls to fmod, it turns out, are constant-folded by
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

15 years agoDon't bother running the assembler, we don't know that it will be configured
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

15 years agoFix PR3243: a LiveVariables bug. When HandlePhysRegKill is checking whether the last...
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

15 years agoFix typo. Patch by Alexei Svitkine.
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

15 years agoUse "SINT_TO_FP" instead of "UINT_TO_FP" when getting the exponent. This was
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

15 years agoFix struct member's debug info.
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

15 years agoAdd test case for PR3154.
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

15 years agoindentation...
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

15 years agoNeed only one set of debug info versions enum.
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

15 years agoChange TargetInstrInfo::isMoveInstr to return source and destination sub-register...
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

15 years agozap white spaces.
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

15 years agoFix global variable's address in a DIE.
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

15 years agoEnable debug info for enums.
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

15 years agoAdd an IEEE remainder function, which is not
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

15 years agoimprove compatibility with various versions of graphviz, patch by
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

15 years agoeliminate use of uint32_t to improve compatibility with cygwin
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

15 years agoEliminate use of uint32_t to improve compatibility with cygwin
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

15 years agoEnable debug info for composite types.
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

15 years agoCheck that the "don't barf on k8" fix is not
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

15 years agoSpacing
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

15 years agoTemporarily XFAIL until this can be looked at. r62557 is what caused it to start...
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

15 years agoIf a vector is empty, you're not allowed to access any
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

15 years agoRefactor code. No functionality change.
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

15 years agoTestcase for limited precision stuff.
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

15 years agoShift types need to match.
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

15 years agoanother fix for PR3354
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

15 years agoAdd a README entry noticed while investigating PR3216.
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

15 years agoFix a dagcombine to not generate loads of non-round integer types,
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

15 years agoDo not use DenseMap because the iterator is invalidated while constructing types...
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

15 years agoRegenerate.
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

15 years agoMake the Interpreter use libffi if it's available. Patch from Alexei Svitkine!
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

15 years agoMake linear scan's trivial coalescer slightly more aggressive.
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

15 years agoDoxygen-ify comments.
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

15 years agoVerify debug info.
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

15 years agoFix a problem exposed by PR3354: simplifycfg was making a potentially
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

15 years agoRemove SDNode's virtual destructor. This makes it impossible for
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

15 years agoMove & restructure test per review.
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

15 years agoconvert this to an unfoldable potentially trapping constant expr.
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

15 years agoimprove compatibility with cygwin, patch by Jay Foad!
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

15 years agodiv/rem by zero and div/rem overflow are both undefined according to
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

15 years agoFix SelectionDAG::ReplaceAllUsesWith to behave correctly when
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

15 years agoFix PR3353, infinitely jump threading an infinite loop make from switches.
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

15 years agocompile-time fmod was done incorrectly. PR 3316.
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

15 years agoDebugInfo is a lightweight APIs and consumers are expected to use light objects direc...
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

15 years agoVerify Intrinsic::dbg_declare.
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

15 years agoAdd targets to support the installation of clang in isolation.
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

15 years agoDIVREM isel deficiency: If sign bit is known zero, zero out DX/EDX/RDX instead of...
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

15 years agoFix 80 col violations.
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

15 years agoHandle ISD::DECLARE with PIC relocation model.
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

15 years agoPort this test from dejagnu to unit testing.
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

15 years agoFix typo, sentence fragment.
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

15 years agoAdding your's truly to CREDITS.TXT
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

15 years agoTemporarily revert r62487. It's causing this error during a release bootstrap of
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

15 years agoMinor tweak to LowerUINT_TO_FP_i32. Bias (after scalar_to_vector) has two uses so...
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

15 years agoNow not UINT_TO_FP is legal (it's marked custom), dag combiner won't
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

15 years agoFix PR3016, a bug which can occur do to an invalid assumption:
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

15 years agoreduce indentation by using 'continue', no functionality change.
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

15 years agoFix some problems in SpeculativelyExecuteBB. Basically,
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

15 years agoMake this a bit more explicit about which cases need the
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

15 years agoFix rdar://6505632, an llc crash on 483.xalancbmk
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

15 years agoFew targets like PIC16 wants libcall generation for illegal type i16.
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

15 years agoCMake: Add lib/Analysis/CaptureTracking.cpp
Oscar Fuentes [Sun, 18 Jan 2009 13:14:11 +0000 (13:14 +0000)]
CMake: Add lib/Analysis/CaptureTracking.cpp

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62462 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoBasicAliasAnalysis and FunctionAttrs were both
Duncan Sands [Sun, 18 Jan 2009 12:19:30 +0000 (12:19 +0000)]
BasicAliasAnalysis and FunctionAttrs were both
doing very similar pointer capture analysis.
Factor out the common logic.  The new version
is from FunctionAttrs since it does a better
job than the version in BasicAliasAnalysis

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62461 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSimplify extract element based on comments from Duncan Sands.
Mon P Wang [Sun, 18 Jan 2009 06:43:40 +0000 (06:43 +0000)]
Simplify extract element based on comments from Duncan Sands.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62459 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoForgot this in the previous checkin: fopen now has nocapture, realloc is
Nick Lewycky [Sun, 18 Jan 2009 04:46:10 +0000 (04:46 +0000)]
Forgot this in the previous checkin: fopen now has nocapture, realloc is
supposed to take two arguments.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62457 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix copy and pasted typos that prevented strtok_r, realloc, getenv, ungetc,
Nick Lewycky [Sun, 18 Jan 2009 04:34:36 +0000 (04:34 +0000)]
Fix copy and pasted typos that prevented strtok_r, realloc, getenv, ungetc,
putc, puts, perror, vscanf and vsscanf from getting annotations.

Add annotations for eight printf functions, memalign, pread and pwrite.

On Linux, llvm-gcc sometimes renames strdup, getc, putc, strtok_r, scanf and
sscanf. Match the alternate function names.

Fix a crash annotating opendir.

Don't mark fsetpos's second parameter as nocapture. It's supposed to be
captured.

Do mark fopen's path and mode strings as nocapture. Mark ferror as readonly,
but not fileno which may set errno.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62456 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoadd a comment
Gabor Greif [Sun, 18 Jan 2009 00:27:21 +0000 (00:27 +0000)]
add a comment

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62436 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoswitch over some other methods from indices to iterators
Gabor Greif [Sat, 17 Jan 2009 19:46:01 +0000 (19:46 +0000)]
switch over some other methods from indices to iterators

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62430 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agomake comparisons a bist faster
Gabor Greif [Sat, 17 Jan 2009 19:03:45 +0000 (19:03 +0000)]
make comparisons a bist faster

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62428 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRemove tabs.
Devang Patel [Sat, 17 Jan 2009 08:05:14 +0000 (08:05 +0000)]
Remove tabs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62423 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRefactor code
Devang Patel [Sat, 17 Jan 2009 08:01:33 +0000 (08:01 +0000)]
Refactor code

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62421 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoTestcase for last commit.
Bill Wendling [Sat, 17 Jan 2009 07:42:44 +0000 (07:42 +0000)]
Testcase for last commit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62418 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoExtend thi
Bill Wendling [Sat, 17 Jan 2009 07:40:19 +0000 (07:40 +0000)]
Extend thi

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62415 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix MatchAddress bug that's preventing negative displacement from being folded in...
Evan Cheng [Sat, 17 Jan 2009 07:09:27 +0000 (07:09 +0000)]
Fix MatchAddress bug that's preventing negative displacement from being folded in 64-bit mode.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62413 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAssign argument type to appropriate DIE.
Devang Patel [Sat, 17 Jan 2009 06:57:25 +0000 (06:57 +0000)]
Assign argument type to appropriate DIE.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62412 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRemove dead code.
Devang Patel [Sat, 17 Jan 2009 06:51:37 +0000 (06:51 +0000)]
Remove dead code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62410 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoDisable composite type debug info for now.
Devang Patel [Sat, 17 Jan 2009 05:05:12 +0000 (05:05 +0000)]
Disable composite type debug info for now.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62406 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoTemporarily revert my last change. It is causing a bootstrap failure.
Bill Wendling [Sat, 17 Jan 2009 04:23:51 +0000 (04:23 +0000)]
Temporarily revert my last change. It is causing a bootstrap failure.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62405 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoImplement a special algorithm for converting uint_to_fp for i32 values on
Bill Wendling [Sat, 17 Jan 2009 03:56:04 +0000 (03:56 +0000)]
Implement a special algorithm for converting uint_to_fp for i32 values on
X86. This code:

void f() {
  uint32_t x;
  float y = (float)x;
}

used to be:

     movl     %eax, -8(%ebp)
     movl     [2^52 double], -4(%ebp)
     movsd    -8(%ebp), %xmm0
     subsd    [2^52 double], %xmm0
     cvtsd2ss %xmm0, %xmm0

Is now:

   movsd        [2^52 double], %xmm0
   movsd        %xmm0, %xmm1
   movd         %ecx, %xmm2
   orps         %xmm2, %xmm1
   subsd        %xmm0, %xmm1
   cvtsd2ss     %xmm1, %xmm0

This is faster on X86. Note that there's an extra load of %xmm0 into %xmm1. That
will be fixed in a later coalescer fix.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62404 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoCMake: Add lib/Target/IA64/IA64Subtarget.cpp
Oscar Fuentes [Sat, 17 Jan 2009 01:50:32 +0000 (01:50 +0000)]
CMake: Add lib/Target/IA64/IA64Subtarget.cpp

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62394 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agospeed up iterative loop by using iterators. changes direction, but functionally equiv...
Gabor Greif [Sat, 17 Jan 2009 00:14:25 +0000 (00:14 +0000)]
speed up iterative loop by using iterators. changes direction, but functionally equivalent
if this works out, I'll change the others next.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62385 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agointroduce typedef for complicated vector, and use it too
Gabor Greif [Sat, 17 Jan 2009 00:09:08 +0000 (00:09 +0000)]
introduce typedef for complicated vector, and use it too

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62384 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSimplify extract element of a scalar to vector.
Mon P Wang [Sat, 17 Jan 2009 00:07:25 +0000 (00:07 +0000)]
Simplify extract element of a scalar to vector.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62383 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agotypo
Gabor Greif [Fri, 16 Jan 2009 23:08:50 +0000 (23:08 +0000)]
typo

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62377 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix PPC ISD::Declare isel and eliminate the need for PPCTargetLowering::LowerGlobalAd...
Evan Cheng [Fri, 16 Jan 2009 22:57:32 +0000 (22:57 +0000)]
Fix PPC ISD::Declare isel and eliminate the need for PPCTargetLowering::LowerGlobalAddress to check if isVerifiedDebugInfoDesc() is true. Given the recent changes, it would falsely return true for a lot of GlobalAddressSDNode's.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62373 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSupport for multi-valued options in CommandLine
Mikhail Glushenkov [Fri, 16 Jan 2009 22:54:19 +0000 (22:54 +0000)]
Support for multi-valued options in CommandLine

Makes possible to specify options that take multiple arguments (a-la
-sectalign on Darwin). See documentation for details.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62372 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoGive IA64 a TargetSubtarget subclass, so that it can
Dan Gohman [Fri, 16 Jan 2009 22:49:36 +0000 (22:49 +0000)]
Give IA64 a TargetSubtarget subclass, so that it can
implement getSubtargetImpl.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62369 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoInstead of adding dependence edges between terminator instructions
Dan Gohman [Fri, 16 Jan 2009 22:10:20 +0000 (22:10 +0000)]
Instead of adding dependence edges between terminator instructions
and every other instruction in their blocks to keep the terminator
instructions at the end, teach the post-RA scheduler how to operate
on ranges of instructions, and exclude terminators from the range
of instructions that get scheduled.

Also, exclude mid-block labels, such as EH_LABEL instructions, and
schedule code before them separately from code after them. This
fixes problems with the post-RA scheduler moving code past
EH_LABELs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62366 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoIf an anti-dependence uses a non-allocatable register, set AntiDepReg
Dan Gohman [Fri, 16 Jan 2009 21:57:43 +0000 (21:57 +0000)]
If an anti-dependence uses a non-allocatable register, set AntiDepReg
to 0, to ensure that the subsequent code doesn't try to break the
dependence.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62365 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoUse the getNode() accessor instead of accessing the Node
Dan Gohman [Fri, 16 Jan 2009 21:47:21 +0000 (21:47 +0000)]
Use the getNode() accessor instead of accessing the Node
member directly, which is private as of r55504.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62364 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoDisable the post-RA scheduler on this test, since it uses a
Dan Gohman [Fri, 16 Jan 2009 21:40:12 +0000 (21:40 +0000)]
Disable the post-RA scheduler on this test, since it uses a
simple %prcontext which doesn't find what it's looking for
if the scheduler has rearranged the instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62363 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix the check for an empty basic block to check for an empty SUnits
Dan Gohman [Fri, 16 Jan 2009 21:37:14 +0000 (21:37 +0000)]
Fix the check for an empty basic block to check for an empty SUnits
array instead, since this is what the scheduler actually cares about.
And remove a check that is unnecessary, since it can assume that
SUnits isn't empty.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62362 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAvoid triggering an assertion failure when an instruction pattern
Dan Gohman [Fri, 16 Jan 2009 21:30:55 +0000 (21:30 +0000)]
Avoid triggering an assertion failure when an instruction pattern
is a leaf node. Patch by Brandner!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62361 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agonew nodes should be added to the worklist, not old nodes.
Chris Lattner [Fri, 16 Jan 2009 21:15:56 +0000 (21:15 +0000)]
new nodes should be added to the worklist, not old nodes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62359 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix comments.
Devang Patel [Fri, 16 Jan 2009 21:07:53 +0000 (21:07 +0000)]
Fix comments.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62358 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoCreateVirtualRegisters does trivial copy coalescing. If a node def is used by a singl...
Evan Cheng [Fri, 16 Jan 2009 20:57:18 +0000 (20:57 +0000)]
CreateVirtualRegisters does trivial copy coalescing. If a node def is used by a single CopyToReg, it reuses the virtual register assigned to the CopyToReg. This won't work for SDNode that is a clone or is itself cloned. Disable this optimization for those nodes or it can end up with non-SSA machine instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62356 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoremove a dead method.
Chris Lattner [Fri, 16 Jan 2009 20:26:53 +0000 (20:26 +0000)]
remove a dead method.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62354 91177308-0d34-0410-b5e6-96231b3b80d8