| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
| |
model to include f32 variants. Some factoring
improvments forthcoming.
llvm-svn: 37847
|
| |
|
|
|
|
|
|
| |
refactored getCopyFromParts and getCopyToParts, which are more general.
This effectively adds support for lowering illegal by-val vector call
arguments.
llvm-svn: 37843
|
| |
|
|
|
|
|
|
|
|
| |
visitFSUB to fold 0-B to -B in UnsafeFPMath mode. Also change visitFNEG
to use isNegatibleForFree/GetNegatedExpression instead of doing a subset
of the same thing manually.
This fixes test/CodeGen/X86/negative-sin.ll.
llvm-svn: 37842
|
| |
|
|
| |
llvm-svn: 37818
|
| |
|
|
| |
llvm-svn: 37816
|
| |
|
|
| |
llvm-svn: 37814
|
| |
|
|
| |
llvm-svn: 37799
|
| |
|
|
|
|
| |
Uncovered by _GLIBCXX_DEBUG.
llvm-svn: 37795
|
| |
|
|
|
|
|
| |
ordering and thus violated the strict weak ordering requirement of
priority_queue. Uncovered by _GLIBCXX_DEBUG.
llvm-svn: 37794
|
| |
|
|
|
|
| |
_GLIBCXX_DEBUG.
llvm-svn: 37793
|
| |
|
|
|
|
| |
vectors are split down to single elements as part of legalization.
llvm-svn: 37785
|
| |
|
|
|
|
|
|
|
|
|
|
| |
illegal value type will be transformed to, for code that needs the
register type after all transformations instead of just after the first
transformation.
Factor out the code that uses this information to do copy-from-regs and
copy-to-regs for various purposes into separate functions so that they
are done consistently.
llvm-svn: 37781
|
| |
|
|
| |
llvm-svn: 37764
|
| |
|
|
|
|
| |
pad, add it as livein to all the blocks in the paths between the landing pad and the specified block.
llvm-svn: 37763
|
| |
|
|
| |
llvm-svn: 37758
|
| |
|
|
|
|
|
| |
to compute the number and type of registers needed for vector values
instead of computing it manually. This fixes PR1529.
llvm-svn: 37755
|
| |
|
|
|
|
| |
with single-element vectors.
llvm-svn: 37752
|
| |
|
|
|
|
| |
the SPASS miscompilation)
llvm-svn: 37750
|
| |
|
|
| |
llvm-svn: 37749
|
| |
|
|
|
|
| |
quality hit. will look at this soon.
llvm-svn: 37748
|
| |
|
|
|
|
| |
some issues)
llvm-svn: 37747
|
| |
|
|
| |
llvm-svn: 37746
|
| |
|
|
| |
llvm-svn: 37743
|
| |
|
|
| |
llvm-svn: 37740
|
| |
|
|
|
|
| |
are read by later instructions.
llvm-svn: 37739
|
| |
|
|
| |
llvm-svn: 37725
|
| |
|
|
|
|
|
|
|
|
| |
and code quality by ~2% on my tests.
A big thank you to Roman Levenstein for this patch! See
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20070618/050717.html
for more details.
llvm-svn: 37724
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
extended vector types. Remove the special SDNode opcodes used for pre-legalize
vector operations, and the special MVT::Vector type used with them. Adjust
lowering and legalize to work with the normal SDNode kinds instead, and to
use the normal MVT functions to work with vector types instead of using the
two special operands that the pre-legalize nodes held.
This allows pre-legalize and post-legalize DAGs, and the code that operates
on them, to be more consistent. Pre-legalize vector operators can be handled
more consistently with scalar operators. And, -view-dag-combine1-dags and
-view-legalize-dags now look prettier for vector code.
llvm-svn: 37719
|
| |
|
|
|
|
|
|
|
| |
TargetLowering to SelectionDAG so that they have more convenient
access to the current DAG, in preparation for the ValueType routines
being changed from standalone functions to members of SelectionDAG for
the pre-legalize vector type changes.
llvm-svn: 37704
|
| |
|
|
| |
llvm-svn: 37703
|
| |
|
|
|
|
| |
time. For Duraid's example. The overall isel time is reduced from 0.6255 sec to 0.1876 sec.
llvm-svn: 37701
|
| |
|
|
| |
llvm-svn: 37688
|
| |
|
|
|
|
|
| |
TargetLowering::getNumRegisters and similar, to avoid confusion with
the actual number of elements for vector types.
llvm-svn: 37687
|
| |
|
|
|
|
|
| |
(add (select cc, 0, c), x) -> (select cc, x, (add, x, c))
(sub x, (select cc, 0, c)) -> (select cc, x, (sub, x, c))
llvm-svn: 37685
|
| |
|
|
|
|
| |
fallthrough unless it branches / falls to the 'false' block. Not profitable, may end up increasing code size.
llvm-svn: 37660
|
| |
|
|
|
|
|
| |
for needing the DAG node to print pre-legalize extended value types, and
to get better debug messages with target-specific nodes.
llvm-svn: 37656
|
| |
|
|
| |
llvm-svn: 37651
|
| |
|
|
|
|
|
|
|
|
| |
with a general target hook to identify rematerializable instructions. Some
instructions are only rematerializable with specific operands, such as loads
from constant pools, while others are always rematerializable. This hook
allows both to be identified as being rematerializable with the same
mechanism.
llvm-svn: 37644
|
| |
|
|
| |
llvm-svn: 37643
|
| |
|
|
| |
llvm-svn: 37640
|
| |
|
|
| |
llvm-svn: 37634
|
| |
|
|
|
|
| |
method.
llvm-svn: 37633
|
| |
|
|
|
|
| |
by making it non-recursive
llvm-svn: 37629
|
| |
|
|
| |
llvm-svn: 37626
|
| |
|
|
|
|
| |
Other bug fixes.
llvm-svn: 37623
|
| |
|
|
|
|
|
|
|
|
| |
1. Consider all possible ifcvt cases at once. No longer restricted to bottom
up iterative approach.
2. Sort all possible cases based on a cost function. Perform the most profitable
ones first invalidate others that target the same blocks.
3. Fixed a number of bugs related to block duplication.
llvm-svn: 37613
|
| |
|
|
| |
llvm-svn: 37608
|
| |
|
|
| |
llvm-svn: 37607
|
| |
|
|
|
|
| |
for tied register constraints.
llvm-svn: 37601
|
| |
|
|
| |
llvm-svn: 37599
|