Dan Gohman
ca4475dd7b
Add patterns to match conditional moves with loads folded
...
into their left operand, rather than their right. Do this
by commuting the operands and inverting the condition.
llvm-svn: 61842
2009-01-07 01:00:24 +00:00
Dan Gohman
ab00fbad9d
Add load-folding table entries for cmovno too.
...
llvm-svn: 61841
2009-01-07 00:44:53 +00:00
Dan Gohman
e78fdaec67
Define instructions for cmovo and cmovno.
...
llvm-svn: 61836
2009-01-07 00:35:10 +00:00
Dan Gohman
2682e8745c
X86_COND_C and X86_COND_NC are alternate mnemonics for
...
X86_COND_B and X86_COND_AE, respectively.
llvm-svn: 61835
2009-01-07 00:15:08 +00:00
Bob Wilson
98fdf706f7
Improve support for type-generic vector intrinsics by teaching TableGen how
...
to handle LLVMMatchType intrinsic parameters, and by adding new subclasses
of LLVMMatchType to match vector types with integral elements that are
either twice as wide or half as wide as the elements of the matched type.
llvm-svn: 61834
2009-01-07 00:09:01 +00:00
Dan Gohman
4edc9d725b
Now that fold-pcmpeqd-0.ll is effectively testing that scheduling helps
...
avoid the need for spilling, add a new testcase that tests that the
pcmpeqd used for V_SETALLONES is changed to a constant-pool load as
needed.
llvm-svn: 61831
2009-01-06 23:48:10 +00:00
Dan Gohman
e033f7c41e
Revert r42653 and forward-port the code that lets INC64_32r be
...
converted to LEA64_32r in x86's convertToThreeAddress. This
replaces code like this:
movl %esi, %edi
inc %edi
with this:
lea 1(%rsi), %edi
which appears to be beneficial.
llvm-svn: 61830
2009-01-06 23:34:46 +00:00
Scott Michel
54f7f6d67f
CellSPU:
...
- Add preliminary support for v2i32; load/store generates the right code but
there's a lot work to be done to make this vector type operational.
llvm-svn: 61829
2009-01-06 23:10:38 +00:00
Dan Gohman
b19f5073f9
Fix a bug in ComputeLinearIndex computation handling multi-level
...
aggregate types. Don't increment the current index after reaching
the end of a struct, as it will already be pointing at
one-past-the end. This fixes PR3288.
llvm-svn: 61828
2009-01-06 22:53:52 +00:00
Devang Patel
6c23870973
Set up DwarfDebug using DebugInfo API.
...
llvm-svn: 61822
2009-01-06 21:07:30 +00:00
Bill Wendling
0a611529e5
Forgot that this was needed for Linux. This should fix the builds.
...
llvm-svn: 61819
2009-01-06 19:13:55 +00:00
Owen Anderson
1f1e4ab65a
The phi construction algorithm used for interval reconstruction is complicated by
...
two address instructions. We need to keep track of things we've processed AS USES
independetly of whether we've processed them as defs.
This fixes all known miscompilations when reconstruction is turned on.
llvm-svn: 61802
2009-01-06 07:53:32 +00:00
Scott Michel
147ab93be5
CellSPU: Update the README
...
llvm-svn: 61785
2009-01-06 03:51:14 +00:00
Scott Michel
c30557841b
CellSPU:
...
- Fix bugs 3194, 3195: i128 load/stores produce correct code (although, we
need to ensure that i128 is 16-byte aligned in real life), and 128 zero-
extends are supported.
- New td file: SPU128InstrInfo.td: this is where all new i128 support should
be put in the future.
- Continue to hammer on i64 operations and test cases; ensure that the only
remaining problem will be i64 mul.
llvm-svn: 61784
2009-01-06 03:36:14 +00:00
Dan Gohman
cf1ac86514
Delete this test; it's a duplicate of 2006-07-03-schedulers.ll.
...
llvm-svn: 61781
2009-01-06 01:36:23 +00:00
Dan Gohman
595c38acb0
Update these argument lists for the isNormalMemory
...
argument. This doesn't affect current functionality.
llvm-svn: 61779
2009-01-06 01:28:56 +00:00
Dan Gohman
1cdb677fc8
Use a latency value of 0 for the artificial edges inserted by
...
AddPseudoTwoAddrDeps. This lets the scheduling infrastructure
avoid recalculating node heights. In very large testcases this
was a major bottleneck. Thanks to Roman Levenstein for finding
this!
As a side effect, fold-pcmpeqd-0.ll is now scheduled better
and it no longer requires spilling on x86-32.
llvm-svn: 61778
2009-01-06 01:19:04 +00:00
Chris Lattner
ff7c07ce73
no need to negate the APInt for 0.
...
llvm-svn: 61777
2009-01-06 00:06:25 +00:00
Chris Lattner
33b4e3aad4
Change m_ConstantInt and m_SelectCst to take their constant integers
...
as template arguments instead of as instance variables, exposing more
optimization opportunities to the compiler earlier.
llvm-svn: 61776
2009-01-05 23:53:12 +00:00
Chris Lattner
e10764369d
make m_ConstantInt(int64_t) safely match ConstantInt's that are larger than i64.
...
This fixes an instcombine crash on PR3235.
llvm-svn: 61775
2009-01-05 23:45:50 +00:00
Devang Patel
b06184d4a2
Construct subprogram DIEs using DebugInfo.
...
llvm-svn: 61772
2009-01-05 23:21:35 +00:00
Devang Patel
9f27e8354b
Construct global variable DIEs using DebugInfo.
...
llvm-svn: 61771
2009-01-05 23:11:11 +00:00
Devang Patel
7d98385702
Construct compile unit dies using DebugInfo.
...
llvm-svn: 61768
2009-01-05 23:03:32 +00:00
Dan Gohman
8892b784d9
Fix a thinko in the grammar for thread_local variables.
...
llvm-svn: 61767
2009-01-05 23:03:03 +00:00
Bill Wendling
891f9abdbb
Revert r61415 and r61484. Duncan was correct that these weren't needed.
...
llvm-svn: 61765
2009-01-05 22:53:45 +00:00
Dan Gohman
f6ab374c28
Don't call setDepthDirty/setHeightDirty when adding an edge
...
with latency 0, since it doesn't affect the depth or height.
llvm-svn: 61762
2009-01-05 22:40:26 +00:00
Devang Patel
dc395b96fb
Extract source location info from DebugInfo.
...
Add methods to add source location info in a DIE.
llvm-svn: 61761
2009-01-05 22:35:52 +00:00
Devang Patel
b54d136d11
Add type DIEs using DebugInfo.
...
llvm-svn: 61757
2009-01-05 21:47:57 +00:00
Duncan Sands
9beb067cca
Add a note about passing MVT::Other to getSetCCResultType.
...
llvm-svn: 61756
2009-01-05 21:33:06 +00:00
Bill Wendling
4e68cc9ef0
Strength test.
...
llvm-svn: 61755
2009-01-05 21:27:59 +00:00
Duncan Sands
130c00e4b2
Teach the internalize pass to also internalize
...
global aliases.
llvm-svn: 61754
2009-01-05 21:24:45 +00:00
Duncan Sands
4e1ee2698f
When checking if an Argument escapes, check if
...
the argument is marked nocapture - no need to
analyze the argument if the answer is already
known!
llvm-svn: 61753
2009-01-05 21:19:53 +00:00
Evan Cheng
36e238a4d3
Find loop back edges only after empty blocks are eliminated.
...
llvm-svn: 61752
2009-01-05 21:17:27 +00:00
Chris Lattner
d72ab018c0
testcase for bill's patch.
...
llvm-svn: 61751
2009-01-05 21:07:34 +00:00
Duncan Sands
8df2e45948
Not having an aliasee is a theoretical possibility.
...
llvm-svn: 61745
2009-01-05 20:47:56 +00:00
Duncan Sands
1bd7dc77fd
Format more neatly.
...
llvm-svn: 61744
2009-01-05 20:39:50 +00:00
Duncan Sands
d64956c644
Remove trailing spaces.
...
llvm-svn: 61743
2009-01-05 20:38:27 +00:00
Duncan Sands
3b98802e9a
Delete unused global aliases with internal linkage.
...
In fact this also deletes those with linkonce linkage,
however this is currently dead because for the moment
aliases aren't allowed to have this linkage type.
llvm-svn: 61742
2009-01-05 20:37:33 +00:00
Devang Patel
94ba049403
Construct composite type DIE using DebugInfo.
...
llvm-svn: 61741
2009-01-05 19:55:51 +00:00
Devang Patel
07cb07d80e
Add classof() methods so that dwarf writer can decide what DIDescriptor is in its hand.
...
llvm-svn: 61740
2009-01-05 19:55:07 +00:00
Dan Gohman
4b4351d249
Add <climits>, to get the definition of CHAR_BIT. This should fix
...
build errors.
llvm-svn: 61736
2009-01-05 19:47:30 +00:00
Dan Gohman
9938898e44
TargetLowering.h #includes SelectionDAGNodes.h, so it doesn't need its
...
own OpActionsCapacity magic number; it can just use ISD::BUILTIN_OP_END,
as long as it takes care to round up when needed.
llvm-svn: 61733
2009-01-05 19:40:39 +00:00
Dan Gohman
7934babf16
Delete an unused variable and simplify the code.
...
llvm-svn: 61732
2009-01-05 19:31:28 +00:00
Devang Patel
beb5774035
s/ConstructType/ConstructTypeDIE/g
...
llvm-svn: 61731
2009-01-05 19:07:53 +00:00
Chris Lattner
30583c34ed
make llvm-ld smart enough to link against native libraries that are
...
not in system library directories by checking -L paths as well.
Patch by Axel Naumann!
llvm-svn: 61730
2009-01-05 19:01:32 +00:00
Devang Patel
c1998b026f
Construct stuct field DIEs.
...
llvm-svn: 61729
2009-01-05 18:59:44 +00:00
Chris Lattner
b01c512756
fix wordo
...
llvm-svn: 61728
2009-01-05 18:56:52 +00:00
Steve Naroff
767201ceb7
Remove redundant ValID::ValID:: scoping (doesn't compile on Windows).
...
llvm-svn: 61727
2009-01-05 18:48:47 +00:00
Devang Patel
de65ed6370
Construct enumerator DIE using DebugInfo.
...
llvm-svn: 61726
2009-01-05 18:38:38 +00:00
Chris Lattner
f543d03f11
Reject PR3281:accepted03.ll with:
...
llvm-as: accepted03.ll:1:35: invalid unresolved type up reference
declare void @r({ \7, opaque, \10 } %su)
^
llvm-svn: 61725
2009-01-05 18:34:07 +00:00