Evan Cheng
73f24c9f0d
When optimzing a mul by immediate into two, the resulting mul's should get a x86 specific node to avoid dag combiner from hacking on them further.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68066 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-30 21:36:47 +00:00
Evan Cheng
e6f350d755
Turn a 2-address instruction into a 3-address one when it's profitable even if the two-address operand is killed.
...
e.g.
%reg1024<def> = MOV r1
%reg1025<def> = ADD %reg1024, %reg1026
r0 = MOV %reg1025
If it's not possible / profitable to commute ADD, then turning ADD into a LEA saves a copy.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68065 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-30 21:34:07 +00:00
Chris Lattner
f54229192c
update comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68060 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-30 20:44:04 +00:00
Bill Wendling
fd302b7056
Balance out quote in debug output.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68059 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-30 20:32:22 +00:00
Bill Wendling
430d423e4b
Fix grammar-o in comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68057 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-30 20:30:02 +00:00
Chris Lattner
e8bc475668
add a PointerUnion3 class and generalize PointerUnion to work with
...
anything pointer-like, which may or may not actually be a pointer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68056 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-30 20:29:27 +00:00
Chris Lattner
c6a4b6b78b
fix the PointerLikeTypeTraits specialization for PointerIntPair to
...
allow the traits to be specified as well.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68055 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-30 20:28:50 +00:00
Dan Gohman
6d1b89e74f
Constify arguments in isSuccessor and isLayoutSuccessor.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68054 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-30 20:06:29 +00:00
Dan Gohman
d480ac6f97
Update the polygen grammer to reflect that zext and sext are no longer
...
valid argument attributes (zeroext and signext are).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68053 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-30 19:59:02 +00:00
John Mosby
3228abe8f9
docs/TestingGuide.html: correction to prev. text (objdir!=srcdir required for running test-suite), removed refs to llvm-test
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68051 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-30 18:56:53 +00:00
Bob Wilson
d83712ad67
Fix comment to match function name.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68050 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-30 18:49:37 +00:00
Devang Patel
6d9a2df4ec
getEntryFor() may invalidate DenseMap iterator.
...
Walking an invalidated iterator is not a good idea.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68047 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-30 18:34:47 +00:00
Mike Stump
854b9d7623
Add ccc back for now.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68038 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-30 17:43:04 +00:00
Anton Korobeynikov
ca6234944c
Clearify local/global relocations wording
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68037 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-30 17:38:00 +00:00
Anton Korobeynikov
29519b1de0
Fix thinko: put stuff with both global and local relocations into data.rel{.ro}, not .local
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68036 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-30 17:37:43 +00:00
Anton Korobeynikov
30ffe8150f
Tweak test for recent relro stuff
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68035 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-30 15:28:40 +00:00
Anton Korobeynikov
48738b9244
Fix infinite looping
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68034 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-30 15:28:21 +00:00
Anton Korobeynikov
fd653071b5
Properly propagate Kind.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68033 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-30 15:28:00 +00:00
Anton Korobeynikov
fca82deecb
Do not propagate ELF-specific stuff (data.rel) into other targets. This simplifies code and also ensures correctness.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68032 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-30 15:27:43 +00:00
Anton Korobeynikov
71a7c6cde0
Add data.rel stuff
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68031 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-30 15:27:03 +00:00
Chris Lattner
217b919cf9
fix some validation problems.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68026 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-30 06:34:59 +00:00
Evan Cheng
878071e6d0
Forgot this test.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68025 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-30 06:17:34 +00:00
John Mosby
24446d671a
Clarify section on setting up and running test-suite
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68023 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-30 04:37:51 +00:00
Misha Brukman
031b7481c8
Updated the comment for isArithmeticShift() to match reality.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68016 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-29 20:41:38 +00:00
Bill Wendling
31fd5a571e
Constify check. This fixes PR3900.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68013 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-29 20:08:56 +00:00
Anton Korobeynikov
807117dc56
Testcase for recent ro/relocs stuff
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68008 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-29 17:14:57 +00:00
Anton Korobeynikov
721c2c647e
IA64 is as weird as Alpha wrt r/o relocs :)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68007 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-29 17:14:35 +00:00
Anton Korobeynikov
01209bc12a
Alpha always requires global relocations to be r/w regardless of PIC.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68006 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-29 17:14:14 +00:00
Anton Korobeynikov
db2323148b
Honour relocation behaviour stuff for ro objects
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68005 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-29 17:13:49 +00:00
Anton Korobeynikov
ab267a2823
Extend the relocation tracker handler, so we can filter on different 'kinds' of relocations required.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68004 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-29 17:13:18 +00:00
Duncan Sands
004e27cc1b
Fix PR3899: add support for extracting floats from vectors
...
when using -soft-float.
Based on a patch by Jakob Stoklund Olesen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67996 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-29 13:51:06 +00:00
Chris Lattner
54e01d06db
add missing space.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67995 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-29 13:26:05 +00:00
Chris Lattner
3a9fe06bfe
add some comments, add a dyn_cast method.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67992 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-29 07:03:30 +00:00
Chris Lattner
f341a47d10
When forming sentinels for empty/tombstone, make sure to respect the
...
pointer's expected number of zero low-bits.
This should fix the breakage I introduced recently.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67990 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-29 06:33:22 +00:00
Chris Lattner
ba315c1ee7
add helper method.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67989 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-29 06:32:46 +00:00
Chris Lattner
2491e4657d
Add a simple type-safe bit-mangling pointer union class. This allows
...
you to do things like:
/// PointerUnion<int*, float*> P;
/// P = (int*)0;
/// printf("%d %d", P.is<int*>(), P.is<float*>()); // prints "1 0"
/// X = P.get<int*>(); // ok.
/// Y = P.get<float*>(); // runtime assertion failure.
/// Z = P.get<double*>(); // does not compile.
/// P = (float*)0;
/// Y = P.get<float*>(); // ok.
/// X = P.get<int*>(); // runtime assertion failure.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67987 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-29 06:06:02 +00:00
Chris Lattner
540db8bcb8
Allow a specific PointerIntPair instance to use a specific Pointer trait:
...
some pointer instances have properties that not all of a type have.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67986 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-29 06:02:20 +00:00
Chris Lattner
911c8b21da
Add a PointerLikeTypeTraits specialization for uintptr_t
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67985 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-29 06:00:21 +00:00
Chris Lattner
aab3d88bc4
Value* only has 2 bits free as well.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67984 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-29 05:45:43 +00:00
Chris Lattner
e30173ac33
Replace the PointerLikeTypeTraits::getNumLowBitsAvailable
...
function with a new NumLowBitsAvailable enum, which makes the
value available as an integer constant expression.
Add PointerLikeTypeTraits specializations for Instruction* and
Use** since they are only guaranteed 4-byte aligned.
Enhance PointerIntPair to know about (and enforce) the alignment
specified by PointerLikeTypeTraits. This should allow things
like PointerIntPair<PointerIntPair<void*, 1,bool>, 1, bool>
because the inner one knows that 2 low bits are free.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67979 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-29 04:32:37 +00:00
Chris Lattner
8ee1b5e916
rename PointerLikeTypeInto to PointerLikeTypeTraits, add trait for
...
# low bits free, and move to its own header.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67973 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-29 00:39:30 +00:00
Chris Lattner
6a0dcc1077
now that you can put a PointerIntPair in a SmallPtrSet, remove some
...
hackish workarounds from memdep
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67971 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-29 00:24:04 +00:00
Chris Lattner
4d4177b9b3
teach SmallPtrSet that PointerIntPair is "basically a pointer".
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67970 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-29 00:18:42 +00:00
Chris Lattner
352f3e5d37
add a note
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67953 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-28 19:26:55 +00:00
Rafael Espindola
a0a4f07fb6
Use array_lengthof
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67950 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-28 19:02:18 +00:00
Rafael Espindola
da945e3bb2
Have only one definition of X86AddrNumOperands.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67949 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-28 18:55:31 +00:00
Rafael Espindola
b449a68146
Make code a bit less brittle by no hardcoding the number
...
of operands in an address in so many places.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67945 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-28 17:03:24 +00:00
Arnold Schwaighofer
11ff97801b
Make check in CheckTailCallReturnConstraints for ignorable instructions between
...
a CALL and a RET node more generic. Add a test for tail calls with a void
return.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67943 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-28 12:36:29 +00:00
Bill Wendling
bc14dd30a8
Update the Visual Studio docs. Patch by Stefanus!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67940 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-28 10:24:15 +00:00
Arnold Schwaighofer
e75fd69f15
Enable tail call optimization for functions that return a struct (bug 3664) and for functions that return types that need extending (e.g i1).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67934 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-28 08:33:27 +00:00