Bill Wendling
9cd2a5dbb9
Rename test since it's not linux-specific.
...
llvm-svn: 161792
2012-08-13 21:32:42 +00:00
Manman Ren
159ae3b3bc
ARM: enable struct byval for AAPCS-VFP.
...
This change is to be enabled in clang.
rdar://9877866
llvm-svn: 161789
2012-08-13 21:22:50 +00:00
Bill Wendling
59b0b53089
Whitespace cleanup.
...
llvm-svn: 161788
2012-08-13 21:20:43 +00:00
Jakob Stoklund Olesen
343ed1017e
Count triangles and diamonds in early if-conversion.
...
llvm-svn: 161783
2012-08-13 21:03:27 +00:00
Jakob Stoklund Olesen
0e46305efe
Delete dead typedef.
...
llvm-svn: 161782
2012-08-13 21:03:25 +00:00
Jakob Stoklund Olesen
8e6595639e
Handle extra Tail predecessors in if-conversion.
...
It is still possible to if-convert if the tail block has extra
predecessors, but the tail phis must be rewritten instead of being
removed.
llvm-svn: 161781
2012-08-13 20:49:04 +00:00
Arnold Schwaighofer
dbdb2581b8
[Hexagon] Don't mark callee saved registers as clobbered by a tail call
...
This was causing unnecessary spills/restores of callee saved registers.
Fixes PR13572.
Patch by Pranav Bhandarkar!
llvm-svn: 161778
2012-08-13 19:54:01 +00:00
Manman Ren
ead7af5ec0
Fix failure on Atom bot due to r161769
...
llvm-svn: 161777
2012-08-13 19:34:29 +00:00
Nadav Rotem
03c4d5f036
Do not optimize (or (and X,Y), Z) into BFI and other sequences if the AND ISDNode has more than one user.
...
rdar://11876519
llvm-svn: 161775
2012-08-13 18:52:44 +00:00
Manman Ren
cb05c49c64
X86: move Int_CVTSD2SSrr, Int_CVTSI2SSrr, Int_CVTSI2SDrr, Int_CVTSS2SDrr from
...
OpTbl1 to OpTbl2 since they have 3 operands and the last operand can be changed
to a memory operand.
PR13576
llvm-svn: 161769
2012-08-13 18:29:41 +00:00
Eric Christopher
3aea549423
Add support for the %H output modifier.
...
Patch by Weiming Zhao.
llvm-svn: 161768
2012-08-13 18:18:52 +00:00
Manman Ren
c9f5387a5c
X86: when auto-detecting the subtarget features, make sure use IsIntel to detect
...
Nehalem, Westmere and Sandy Bridge. AMD also has processor family 6.
llvm-svn: 161763
2012-08-13 17:26:46 +00:00
Nadav Rotem
6af514e437
Fix a documentation typo.
...
llvm-svn: 161758
2012-08-13 15:29:53 +00:00
Kostya Serebryany
61dd5ba233
[asan] remove the code for --asan-merge-callbacks as it appears to be a bad idea. (partly related to Bug 13225)
...
llvm-svn: 161757
2012-08-13 14:08:46 +00:00
Alexander Kornienko
1665252b4b
Added test for non-static use of cl::opt (fixed in r160170)
...
llvm-svn: 161751
2012-08-13 10:43:36 +00:00
Tim Northover
7acf444c11
Add test for previous commit correcting NEON load patterns.
...
llvm-svn: 161750
2012-08-13 10:38:45 +00:00
Tim Northover
b1f8be6cbe
Use correct loads for vector types during extending-load operations.
...
Previously, we used VLD1.32 in all cases, however there are both 16 and 64-bit
accesses being selected, so we need to use an appropriate width load in those
cases.
llvm-svn: 161748
2012-08-13 09:06:31 +00:00
Craig Topper
4fc08044be
Tidy up VSETCC lowering code a bit more by adding an llvm_unreachable and putting an a couple if conditions in a better order.
...
llvm-svn: 161746
2012-08-13 03:42:38 +00:00
Craig Topper
a438ea46bf
Refactor code a bit to share commonalities. No functional change intended.
...
llvm-svn: 161745
2012-08-13 02:34:03 +00:00
Craig Topper
bb92d94049
Fix an unused variable warning from r161742.
...
llvm-svn: 161743
2012-08-13 01:26:45 +00:00
Craig Topper
1032fcf6da
Remove the LowerMMXCONCAT_VECTORS function. It could never execute because there are no legal 64-bit vector types that could be used as inputs to a 128-bit concat_vectors. Remove a target specific SDNode and its patterns that become unused as a result.
...
llvm-svn: 161742
2012-08-13 01:23:55 +00:00
Nick Lewycky
6dbd265685
Give this test an explicit triple.
...
llvm-svn: 161740
2012-08-12 08:21:27 +00:00
Nick Lewycky
5178e4f814
When emitting the PC range in an FDE, use the same data encoding for both ends
...
of the range. Fixes PR13581!
llvm-svn: 161739
2012-08-12 08:09:45 +00:00
Craig Topper
5a5ed2d691
Remove call to setOperationAction for SETCC of v4f32. SETCC returns an integer type not an FP type.
...
llvm-svn: 161738
2012-08-12 05:31:32 +00:00
Craig Topper
1292e1f43c
Remove unnecessary call to setOperationAction for SETCC of v2i64 under SSE42. It was already called for the same under SSE2.
...
llvm-svn: 161737
2012-08-12 05:15:16 +00:00
Arnold Schwaighofer
c751a25aed
Revert 161581: Patch to implement UMLAL/SMLAL instructions for the ARM
...
architecture
It broke MultiSource/Applications/JM/ldecod/ldecod on armv7 thumb O0 g and armv7
thumb O3.
llvm-svn: 161736
2012-08-12 05:11:56 +00:00
Craig Topper
4d9cbceefd
Change addTypeForNeon to use MVT instead of EVT so all the calls to getSimpleVT can be removed.
...
llvm-svn: 161735
2012-08-12 03:16:37 +00:00
Craig Topper
709114d67f
Make replace many calls to getSizeInBits() with is128BitVector/is256BitVector
...
llvm-svn: 161734
2012-08-12 02:23:29 +00:00
Craig Topper
a52fcd0a14
Use MVT.isXBitVector instead of EVT.isXBitVector when setting up operation actions. Compiles to smaller code.
...
llvm-svn: 161733
2012-08-12 00:34:56 +00:00
Michael Liao
4b95cb463a
fix PR13577, an issue introduced by r161687
...
- FCMOV only supports a subset of X86 conditions. Skip boolean
simplification if X86 condition is not valid for FCMOV.
- add a minimal test case for PR13577.
llvm-svn: 161732
2012-08-11 23:47:06 +00:00
Craig Topper
3637e6c09d
Create isXBitVector methods in MVT and call them from EVT. This allows targets to call them with an MVT without needing to convert to EVT.
...
llvm-svn: 161731
2012-08-11 23:31:18 +00:00
Craig Topper
93e2521659
Move setOperationAction for CONCAT_VECTORS for 256-bit vectors into loop since all 256-bit types are supported.
...
llvm-svn: 161730
2012-08-11 22:34:26 +00:00
Benjamin Kramer
28e133c8f2
MachineCSE: Hoist isConstantPhysReg out of the loop, it checks for overlaps already.
...
llvm-svn: 161729
2012-08-11 20:42:59 +00:00
Benjamin Kramer
b338b22e72
PR13578: Teach MachineCSE that instructions that use a constant register can be CSE'd safely.
...
This is common e.g. when doing rip-relative addressing on x86_64.
llvm-svn: 161728
2012-08-11 19:05:13 +00:00
Craig Topper
b7f7fa86ec
Tidy up indentation. No functional change.
...
llvm-svn: 161727
2012-08-11 17:53:00 +00:00
Craig Topper
ba0c3ebe9e
Fix a cast that was casting away 'const' unnecessarily
...
llvm-svn: 161726
2012-08-11 17:46:16 +00:00
Craig Topper
3929432178
Add a couple default: llvm_unreachable() to some switch statements. Fix a bad message in an existing llvm_unreachable.
...
llvm-svn: 161725
2012-08-11 17:44:14 +00:00
Manman Ren
9bd686f936
X86: when we are auto-detecting the subtarget features, make sure we turn on
...
FeatureFastUAMem for Nehalem, Westmere and Sandy Bridge.
FeatureFastUAMem is already on if we pass in nehalem or westmere as a command
argument.
rdar: 7252306
llvm-svn: 161717
2012-08-10 23:43:32 +00:00
Jakob Stoklund Olesen
887e16b508
Add a proper if-conversion cost model.
...
Detect when there is not enough available ILP, so if-conversion can't
speculate instructions for free.
Compute the lengthening of the critical path when inserting a select
instruction that depends on the condition as well as both sides of the
if.
Reject conversions that would stretch the critical path by more than
half a mispredict penalty.
llvm-svn: 161713
2012-08-10 22:27:31 +00:00
Jakob Stoklund Olesen
9a004cb5fd
Give MachineTraceMetrics its own debug tag.
...
llvm-svn: 161712
2012-08-10 22:27:29 +00:00
Jakob Stoklund Olesen
e3d7dc035c
Add more trace query functions.
...
Trace::getResourceLength() computes the number of cycles required to
execute the trace when ignoring data dependencies. The number can be
compared to the critical path to estimate the trace ILP.
Trace::getPHIDepth() computes the data dependency depth of a PHI in a
trace successor that isn't necessarily part of the trace.
llvm-svn: 161711
2012-08-10 22:27:27 +00:00
Eli Friedman
449495cd62
The normal edge of an invoke is not allowed to branch to a block with a
...
landingpad. Enforce it in the verifier, and fix the regression tests to match.
llvm-svn: 161697
2012-08-10 20:55:20 +00:00
Manman Ren
500d45c3d9
ARM: enable struct byval for AAPCS.
...
This change is to be enabled in clang.
rdar://9877866
PR://13350
llvm-svn: 161693
2012-08-10 20:39:38 +00:00
Jakob Stoklund Olesen
43da54d467
Add getTPred() and getFPred() functions.
...
They identify the PHI predecessors in both diamonds and triangles.
llvm-svn: 161689
2012-08-10 20:19:17 +00:00
Jakob Stoklund Olesen
e5fcceb4c3
Include loop-carried dependencies when computing instr heights.
...
When a trace ends with a back-edge, include PHIs in the loop header in
the height computations. This makes the critical path through a loop
more accurate by including the latencies of the last instructions in the
loop.
llvm-svn: 161688
2012-08-10 20:11:38 +00:00
Michael Liao
97334a5c5f
add X86-specific DAG optimization to simplify boolean test
...
- if a boolean test (X86ISD::CMP or X86ISD:SUB) checks a boolean value
generated from X86ISD::SETCC, try to simplify the boolean value
generation and checking by reusing the original EFLAGS with proper
condition code
- add hooks to X86 specific SETCC/BRCOND/CMOV, the major 3 places
consuming EFLAGS
part of patches fixing PR12312
llvm-svn: 161687
2012-08-10 19:58:13 +00:00
Eli Bendersky
e4224d8e75
A couple of addition comment fixes
...
llvm-svn: 161678
2012-08-10 18:30:44 +00:00
Eli Bendersky
1d7189ebcd
Fix a couple of typos in comments
...
llvm-svn: 161677
2012-08-10 18:26:20 +00:00
Rafael Espindola
1f2b548138
Constify some basic blocks, no functionality change.
...
llvm-svn: 161668
2012-08-10 15:55:25 +00:00
Michael Liao
81be965deb
remove tailing whitespaces and test commit
...
llvm-svn: 161664
2012-08-10 14:39:24 +00:00