Chris Lattner
10c0d9179e
optimize "p != gep p, ..." better. This allows us to compile
...
getelementptr-seteq.ll into:
define i1 @test(i64 %X, %S* %P) {
%C = icmp eq i64 %X, -1 ; <i1> [#uses=1]
ret i1 %C
}
instead of:
define i1 @test(i64 %X, %S* %P) {
%A.idx.mask = and i64 %X, 4611686018427387903 ; <i64> [#uses=1]
%C = icmp eq i64 %A.idx.mask, 4611686018427387903 ; <i1> [#uses=1]
ret i1 %C
}
And fixes the second half of PR2235. This speeds up the insertion sort
case by 45%, from 1.12s to 0.77s. In practice, this will significantly
speed up for loops structured like:
for (double *P = Base + N; P != Base; --P)
...
Which happens frequently for C++ iterators.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50079 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-22 02:53:33 +00:00
Chris Lattner
eb411291fa
more fallout from Nicholas' asmprinter patch.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50078 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-22 02:45:44 +00:00
Dan Gohman
61a9213440
Implement an x86-64 ABI detail of passing structs by hidden first
...
argument. The x86-64 ABI requires the incoming value of %rdi to
be copied to %rax on exit from a function that is returning a
large C struct.
Also, add a README-X86-64 entry detailing the missed optimization
opportunity and proposing an alternative approach.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50075 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-21 23:59:07 +00:00
Dan Gohman
639cdc210b
Fix an out-of-bounds access in -view-sunit-dags in the case of an
...
empty ScheduleDAG.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50054 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-21 20:07:30 +00:00
Dan Gohman
0416b0a26d
Fix the encoding of the MMX movd that moves from MMX to 64-bit GPR.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50053 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-21 19:52:29 +00:00
Dan Gohman
92c7b65c91
Fix the way AliasSet::print prints "may alias".
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50051 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-21 19:48:48 +00:00
Chris Lattner
037c781de7
fix grammar-o, thanks to Duncan for noticing.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50047 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-21 18:25:01 +00:00
Owen Anderson
4bda6e47e9
Remove unneeded #include's.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50035 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-21 07:47:38 +00:00
Owen Anderson
a8bd65835b
Refactor memcpyopt based on Chris' suggestions. Consolidate several functions
...
and simplify code that was fallout from the separation of memcpyopt and gvn.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50034 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-21 07:45:10 +00:00
Duncan Sands
e47d98200e
Fix a "large integer implicitly truncated to unsigned type"
...
warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50033 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-21 07:35:28 +00:00
Chris Lattner
ea705199af
don't print dominators every time it is computed with -debug.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50032 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-21 06:19:02 +00:00
Chris Lattner
a1b5858fda
another bug introduced in r47802 by nicholas, for no apparent reason.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50031 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-21 06:12:55 +00:00
Chris Lattner
7d717a0b70
Add an ugly note.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50029 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-21 04:46:30 +00:00
Chris Lattner
96c5b2f8c7
fix a bug introduced by Nicholas' "unwinds to" stuff: we
...
lost newlines between blocks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50024 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-21 04:20:33 +00:00
Chris Lattner
281def9456
don't assume that the argument passed to fprintf("%s" is a string. This
...
fixes a crash in opt on 433.milc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50023 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-21 03:18:33 +00:00
Chris Lattner
2cc675180b
Use the new SplitBlockPredecessors to implement a todo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50022 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-21 02:57:57 +00:00
Chris Lattner
54b9c3ba2a
Move SplitBlockPredecessors out of loopsimplify into BasicBlockUtils.h
...
as a global helper function. At the same type, switch it from taking
a vector of predecessors to an arbitrary sequential input. This allows
us to switch LoopSimplify to use a SmallVector for various temporary
vectors that it passed into SplitBlockPredecessors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50020 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-21 01:28:02 +00:00
Chris Lattner
1b58678d54
Move domtree/frontier updating earlier, allowing us to use it to update phi
...
nodes, removing a hack.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50019 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-21 01:05:08 +00:00
Chris Lattner
b85979434d
Factor dominator tree and frontier updating into SplitBlockPredecessors
...
instead of doing it after every call.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50018 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-21 00:54:38 +00:00
Chris Lattner
48a80b07bd
fit some more code in 80 cols.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50016 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-21 00:25:49 +00:00
Chris Lattner
34093a634a
simplify code, fit in 80 cols.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50015 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-21 00:23:14 +00:00
Chris Lattner
862f27ebab
fit in 80 cols
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50014 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-21 00:19:16 +00:00
Nicolas Geoffray
580631a73a
Be pessimistic in computing the buffer size when aligning.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50008 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-20 23:39:44 +00:00
Nicolas Geoffray
546e36a2c1
Don't forget to update the current operand when getting the size of an instruction.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50007 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-20 23:36:47 +00:00
Chris Lattner
bd3401fa98
finish the first cut of a jump threading pass implementation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50006 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-20 22:39:42 +00:00
Chris Lattner
0cfe85be0b
replace a slow and verbose version of Instruction::isUsedOutsideOfBlock with
...
a call to Instruction::isUsedOutsideOfBlock.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50005 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-20 22:18:22 +00:00
Chris Lattner
7ae40e7d8a
add a handy helper method to instruction, useful for determining
...
whether it is used outside of some block. This can be used to see
if there are any non-local references, for example.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50004 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-20 22:11:30 +00:00
Chris Lattner
f9065a904f
we can only thread blocks when there is a pred we can determine the succ of.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50003 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-20 21:18:09 +00:00
Chris Lattner
177480b7ed
improve comments, infrastructure, and add some validity checks for threading.
...
Add a cost function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50002 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-20 21:13:06 +00:00
Chris Lattner
8383a7b7a6
Add a new Jump Threading pass, which will handle cases
...
such as those in PR2235. Right now the pass is not very
effective. :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50000 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-20 20:35:01 +00:00
Chris Lattner
3e5d1d8d08
hopefully resolve PR2240
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49999 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-20 19:59:12 +00:00
Chris Lattner
0e4b6c7551
rearrange some code, simplify handling of shifts.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49995 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-20 18:24:14 +00:00
Dale Johannesen
9dd2ce46c5
Check we aren't trying to convert PPC long double.
...
This fixes the testsuite failure on ppcf128-4.ll.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49994 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-20 18:23:46 +00:00
Nicolas Geoffray
5913e6c5db
Cosmetic changes, as suggested by Evan. No functionality changes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49993 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-20 17:44:19 +00:00
Dale Johannesen
a0c8fc6f28
(re)fix handling of UGT. Pointed out by Nick Lewycky.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49991 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-20 16:58:57 +00:00
Torok Edwin
3eaee31393
g++-4.3 build-fix: CHAR_BIT requires <climits>.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49989 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-20 08:33:11 +00:00
Nicolas Geoffray
fd7d99120b
Do not hold the JIT lock when materializing a function and verify if the
...
function has already been codegen'd. This is required by the Java class loading
mechanism which executes Java code when materializing a function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49988 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-20 08:33:02 +00:00
Chris Lattner
bd381a777b
A better fix for my previous patch, MOVZQI2PQIrr just requires SSE2.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49986 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-20 05:52:46 +00:00
Dale Johannesen
79f82f9fd5
Check that APFloat::convert is not trying to target
...
ppc long double, which doesn't work.
This may break some stuff temporarily, but I want to
avoid the propagation of code that assumes this works.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49983 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-20 01:34:03 +00:00
Chris Lattner
d8eb63fc72
regenerate
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49978 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-20 00:41:19 +00:00
Chris Lattner
02a260aa11
Switch to using Simplified ConstantFP::get API.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49977 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-20 00:41:09 +00:00
Chris Lattner
eb9c8e1e3f
Use simplified ConstantFP::get method, fix a bug handling frem x, 0 with long doubles.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49976 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-20 00:26:06 +00:00
Chris Lattner
d881ad2c57
Implement PR2206.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49967 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-19 22:17:26 +00:00
Chris Lattner
1c14c29746
refactor handling of symbolic constant folding, picking up
...
a few new cases( see Integer/a1.ll), but not anything that
would happen in practice.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49965 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-19 21:58:19 +00:00
Chris Lattner
61783d7322
indentation fix.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49964 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-19 21:13:00 +00:00
Chris Lattner
bcd203cf86
Allow argpromote to promote struct arguments with a specified number
...
of elements. Patch by Matthijs Kooijman!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49962 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-19 19:50:01 +00:00
Evan Cheng
8608f2eff2
64-bit atomic operations.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49949 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-19 02:30:38 +00:00
Evan Cheng
94d7b02c5a
Also LXCHG64 -> XCHG64rm.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49948 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-19 02:05:42 +00:00
Evan Cheng
54fc97dcdc
PPC32 atomic operations.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49947 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-19 01:30:48 +00:00
Evan Cheng
bb6939dcff
xchg which references a memory operand does not need to lock prefix. Atomicity is guaranteed.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49946 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-19 01:20:30 +00:00
Dan Gohman
f4423b1e45
Teach llvm-as to accept function types with multiple return types.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49945 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-19 00:24:39 +00:00
Dale Johannesen
cf363181c1
Fix a scalar evolution bug. Reversing everything
...
does not work because of 0; 2>0 but -2U is also >0.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49928 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-18 21:38:31 +00:00
Nicolas Geoffray
dc17ab2bf0
Enable jitting with a known memory size.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49924 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-18 20:59:31 +00:00
Duncan Sands
37bcda3de9
Implement a bit more softfloat support in
...
LegalizeTypes. Correct the load logic so
that it actually works, and also teach it
to handle floating point extending loads.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49923 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-18 20:56:03 +00:00
Dan Gohman
28269139ee
Fix the handling of va_copy on x86-64. As of llvm-gcc r49920
...
llvm-gcc is now lowering va_copy on x86-64, so this completes
the fix for PR2230.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49922 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-18 20:55:41 +00:00
Evan Cheng
7e03280b53
- Fix atomic operation JIT encoding.
...
- Remove unused instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49921 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-18 20:55:36 +00:00
Duncan Sands
4cc0456456
Add some more FIXME's for indexed loads and stores.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49916 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-18 20:27:12 +00:00
Duncan Sands
41edfb8ae1
Provide an explicit list of operands to MakeLibcall,
...
rather than having it suck them out of a node. Add
a bunch of new libcalls, and remove dead softfloat
code (dead, because FloatToInt is used not Expand
in this case). Note that indexed stores probably
aren't handled properly, likewise for loads.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49915 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-18 20:25:14 +00:00
Evan Cheng
a8f720d695
Correct comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49913 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-18 19:25:26 +00:00
Evan Cheng
883d260045
Not safe to "kill" a register if its live range extends pass the end of block branch.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49911 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-18 19:22:23 +00:00
Evan Cheng
3f73beaeb2
Also support Intel asm syntax.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49878 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-17 23:35:10 +00:00
Dan Gohman
35b31bea0d
Remove the implicit conversion from SDOperandPtr to SDOperand*; this
...
may fix a build error on Visual Studio.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49876 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-17 23:02:12 +00:00
Evan Cheng
9d1a81a23c
Fix assembly code for atomic operations.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49869 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-17 21:26:35 +00:00
Evan Cheng
639f493ebf
Be more careful with insert_subreg and extract_subreg where either source or destination operand has already been coalesced with another register that's defined by a insert_subreg or extract_subreg.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49843 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-17 07:58:04 +00:00
Owen Anderson
241f65321e
Make GVN able to remove unnecessary calls to read-only functions again.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49842 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-17 05:36:50 +00:00
Bill Wendling
f231778269
Use correct name for method in comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49841 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-17 05:20:39 +00:00
Dan Gohman
499c1bd358
Correct the SrcValue information in the Expand code for va_copy.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49839 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-17 02:09:26 +00:00
Scott Michel
5788bca1c2
Remove unused variable
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49838 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-17 01:30:44 +00:00
Evan Cheng
621d157676
Fix a sub-register indice propagation bug.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49832 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-17 00:06:42 +00:00
Scott Michel
4bf393a13e
Workaround for PR2207, in which pred_iterator assert gets triggered due to a
...
wee problem in Xcode 2.[45]/gcc 4.0.1.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49831 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-16 23:46:39 +00:00
Evan Cheng
03eb38848c
Don't forget about sub-register indices when rematting instructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49830 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-16 23:44:44 +00:00
Dale Johannesen
5e8fb81353
Unbreak build on x86-64.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49822 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-16 22:24:33 +00:00
Nicolas Geoffray
51cc3c13ea
Correlate stubs with functions in JIT: when emitting a stub, the JIT tells the memory manager which function
...
the stub will resolve.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49814 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-16 20:46:05 +00:00
Evan Cheng
9c1e06e187
After reading memory that's already freed.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49810 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-16 20:24:25 +00:00
Nicolas Geoffray
52e724ad7e
Infrastructure for getting the machine code size of a function and an instruction. X86, PowerPC and ARM are implemented
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49809 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-16 20:10:13 +00:00
Evan Cheng
dc00858e11
Initialize X863DNowLevel.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49808 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-16 19:03:02 +00:00
Evan Cheng
ff7a3e557e
Fix PR2226. Avoid using uninitialized variables.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49807 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-16 18:48:43 +00:00
Evan Cheng
76249966ee
Empty basic block should have an empty range.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49800 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-16 18:01:08 +00:00
Dale Johannesen
48325f4b08
Don't read off end of the input array.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49799 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-16 17:31:41 +00:00
Roman Levenstein
9cac5259fe
Ongoing work on improving the instruction selection infrastructure:
...
Rename SDOperandImpl back to SDOperand.
Introduce the SDUse class that represents a use of the SDNode referred by
an SDOperand. Now it is more similar to Use/Value classes.
Patch is approved by Dan Gohman.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49795 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-16 16:15:27 +00:00
Evan Cheng
0d4bdde327
Rewrite LiveVariable liveness computation. The new implementation is much simplified. It eliminated the nasty recursive routines and removed the partial def / use bookkeeping. There is also potential for performance improvement by replacing the conservative handling of partial physical register definitions. The code is currently disabled until live interval analysis is taught of the name scheme.
...
This patch also fixed a couple of nasty corner cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49784 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-16 09:46:40 +00:00
Evan Cheng
9b6d7b9fb3
Code clean up.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49783 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-16 09:41:59 +00:00
Owen Anderson
1f23e16319
Major repairs to the post-dominators implementation. Patch from Florian Brandner!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49768 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-16 04:21:16 +00:00
Dan Gohman
171c11ec93
Add support for the form of the SSE41 extractps instruction that
...
puts its result in a 32-bit GPR.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49762 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-16 02:32:24 +00:00
Dan Gohman
bcda285fcc
Recreate the size SDNode instead of reusing the old one in the x86
...
memcpy lowering code; this ensures that the size node has the desired
result type. This fixes a regression from r49572 with @llvm.memcpy.i64
on x86-32.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49761 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-16 01:32:32 +00:00
Evan Cheng
d94950c473
Avoid read after free.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49760 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-16 01:22:28 +00:00
Dan Gohman
302cd54299
Remove X86_64SRet; it isn't used anymore.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49759 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-16 00:24:30 +00:00
Dan Gohman
a630f4ed91
Add movd instructions to move from MMX registers
...
to 64-bit GPR registers on x86-64.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49757 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-15 23:55:07 +00:00
Dan Gohman
5a2d335c4c
Fix the new scheduler assertion checks to work when
...
the scheduler has inserted no-ops. This fixes
the 2006-07-03-schedulers.ll regression on ppc32.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49747 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-15 22:40:14 +00:00
Chuck Rose III
cc51c31953
VisualStudio project files updated. #include <algorithm> added to make VisualStudio happy. Also had to undefine setjmp because of #include <csetjmp> turning setjmp into _setjmp in VisualStudio.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49743 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-15 21:27:11 +00:00
Dale Johannesen
21d31a8d94
Don't assume a tail call can't reference a byval
...
argument to the outer function, this isn't correct.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49731 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-15 17:41:34 +00:00
Dan Gohman
b11af0db2e
Use gv's --spartan option, which trades away an extra row of UI buttons
...
for more space for displaying the graph.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49730 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-15 17:27:05 +00:00
Nicolas Geoffray
6ccbbd8990
Change Divided flag to Split, as suggested by Evan
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49715 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-15 08:08:50 +00:00
Dan Gohman
80792f3dde
Treat EntryToken nodes as "passive" so that they aren't added to the
...
ScheduleDAG; they don't correspond to any actual instructions so they
don't need to be scheduled.
This fixes a bug where the EntryToken was being scheduled multiple
times in some cases, though it ended up not causing any trouble because
EntryToken doesn't expand into anything. With this fixed the schedulers
reliably schedule the expected number of units, so we can check this
with an assertion.
This requires a tweak to test/CodeGen/X86/loop-hoist.ll because it
ends up getting scheduled differently in a trivial way, though it was
enough to fool the prcontext+grep that the test does.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49701 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-15 01:22:18 +00:00
Dan Gohman
89bf0a6b05
In -view-sunit-dags, display "special" chain dependencies as cyan
...
instead of blue to distinguish them from regular dependencies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49696 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-14 23:15:07 +00:00
Dan Gohman
0a9371de6d
Remove unnecessary <sstream> includes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49681 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-14 20:40:47 +00:00
Dan Gohman
b91c89dfb9
Avoid creating MERGE_VALUES nodes for single values.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49676 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-14 18:43:25 +00:00
Dan Gohman
235fc57ef2
Teach AliasSetTracker about VAArgInst.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49674 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-14 18:34:50 +00:00
Dan Gohman
4a9a3e5374
Minor whitespace and comment cleanups.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49671 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-14 18:26:16 +00:00
Dan Gohman
f7b37b2d0e
In the special case, call the comparison function instead of
...
manually performing the comparison. This allows the special
case to work correctly even in the case where someone is
experimenting with a different comparison function :-).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49670 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-14 18:23:56 +00:00