| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 161804
|
| |
|
|
|
|
|
|
|
|
|
|
| |
other passes, such as LoopRotate
may invalidate its AliasSet because SSAUpdater does not update the AliasSet properly.
This patch teaches SSAUpdater to notify AliasSet that it made changes.
The testcase in PR12901 is too big to be useful and I could not reduce it to a normal size.
rdar://11872059 PR12901
llvm-svn: 161803
|
| |
|
|
|
|
|
|
|
|
|
| |
function calls.
Currently, if GetLocation reports that it did not find a valid pointer (this is the case for volatile load/stores),
we ignore the result. This patch adds code to handle the cases where we did not obtain a valid pointer.
rdar://11872864 PR12899
llvm-svn: 161802
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It never does anything when running 'make check', and it get's in the
way of updating live intervals in 2-addr.
The hook was originally added to help form IT blocks in Thumb2 code
before register allocation, but the pass ordering has changed since
then, and we run if-conversion after register allocation now.
When the MI scheduler is enabled, there will be no less than two
schedulers between 2-addr and Thumb2ITBlockPass, so this hook is
unlikely to help anything.
llvm-svn: 161794
|
| |
|
|
|
|
|
|
| |
This change is to be enabled in clang.
rdar://9877866
llvm-svn: 161789
|
| |
|
|
| |
llvm-svn: 161788
|
| |
|
|
| |
llvm-svn: 161783
|
| |
|
|
| |
llvm-svn: 161782
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
| |
This was causing unnecessary spills/restores of callee saved registers.
Fixes PR13572.
Patch by Pranav Bhandarkar!
llvm-svn: 161778
|
| |
|
|
|
|
|
|
| |
ISDNode has more than one user.
rdar://11876519
llvm-svn: 161775
|
| |
|
|
|
|
|
|
|
| |
OpTbl1 to OpTbl2 since they have 3 operands and the last operand can be changed
to a memory operand.
PR13576
llvm-svn: 161769
|
| |
|
|
|
|
| |
Patch by Weiming Zhao.
llvm-svn: 161768
|
| |
|
|
|
|
| |
Nehalem, Westmere and Sandy Bridge. AMD also has processor family 6.
llvm-svn: 161763
|
| |
|
|
|
|
| |
idea. (partly related to Bug 13225)
llvm-svn: 161757
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
putting an a couple if conditions in a better order.
llvm-svn: 161746
|
| |
|
|
| |
llvm-svn: 161745
|
| |
|
|
| |
llvm-svn: 161743
|
| |
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
of the range. Fixes PR13581!
llvm-svn: 161739
|
| |
|
|
|
|
| |
integer type not an FP type.
llvm-svn: 161738
|
| |
|
|
|
|
| |
SSE42. It was already called for the same under SSE2.
llvm-svn: 161737
|
| |
|
|
|
|
|
|
|
| |
architecture
It broke MultiSource/Applications/JM/ldecod/ldecod on armv7 thumb O0 g and armv7
thumb O3.
llvm-svn: 161736
|
| |
|
|
|
|
| |
getSimpleVT can be removed.
llvm-svn: 161735
|
| |
|
|
| |
llvm-svn: 161734
|
| |
|
|
|
|
| |
actions. Compiles to smaller code.
llvm-svn: 161733
|
| |
|
|
|
|
|
|
| |
- 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
|
| |
|
|
|
|
| |
since all 256-bit types are supported.
llvm-svn: 161730
|
| |
|
|
|
|
| |
already.
llvm-svn: 161729
|
| |
|
|
|
|
|
|
| |
be CSE'd safely.
This is common e.g. when doing rip-relative addressing on x86_64.
llvm-svn: 161728
|
| |
|
|
| |
llvm-svn: 161727
|
| |
|
|
| |
llvm-svn: 161726
|
| |
|
|
|
|
| |
bad message in an existing llvm_unreachable.
llvm-svn: 161725
|
| |
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 161712
|
| |
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
landingpad. Enforce it in the verifier, and fix the regression tests to match.
llvm-svn: 161697
|
| |
|
|
|
|
|
|
|
| |
This change is to be enabled in clang.
rdar://9877866
PR://13350
llvm-svn: 161693
|
| |
|
|
|
|
| |
They identify the PHI predecessors in both diamonds and triangles.
llvm-svn: 161689
|
| |
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
| |
|
|
| |
llvm-svn: 161668
|
| |
|
|
| |
llvm-svn: 161664
|
| |
|
|
| |
llvm-svn: 161663
|
| |
|
|
|
|
| |
includes both. Deal with feof and ferror potentially being macros.
llvm-svn: 161658
|
| |
|
|
| |
llvm-svn: 161657
|
| |
|
|
|
|
| |
being applied to all accesses to an alloca, not just the ones which read from the GEP. Thanks to Evan for reducing the test. rdar://11861001
llvm-svn: 161654
|
| |
|
|
|
|
|
|
| |
When replacing Old with New, it can happen that New is already a
successor. Add the old and new edge weights instead of creating a
duplicate edge.
llvm-svn: 161653
|