| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
The same one Apple gcc uses, faster. Also gets the
extreme case in gcc.c-torture/execute/ieee/rbug.c
correct which we weren't before; this is not
sufficient to get the test to pass though, there
is another bug.
llvm-svn: 57926
|
| |
|
|
|
|
|
| |
handle first-class aggregate values. Also, fix a bug in
the Ret handling for empty aggregates.
llvm-svn: 57925
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
in the 32-bit signed offset field of addresses. Even though this
may be intended, some linkers refuse to relocate code where the
relocated address computation overflows.
Also, fix the sign-extension of constant offsets to use the
actual pointer size, rather than the size of the GlobalAddress
node, which may be different, for example on x86-64 where MVT::i32
is used when the address is being fit into the 32-bit displacement
field.
llvm-svn: 57885
|
| |
|
|
|
|
| |
that NaNs are less common.
llvm-svn: 57871
|
| |
|
|
|
|
|
|
|
| |
for strange asm conditions earlier. In this case, we have a
double being passed in an integer reg class. Convert to like
sized integer register so that we allocate the right number
for the class (two i32's for the f64 in this case).
llvm-svn: 57862
|
| |
|
|
| |
llvm-svn: 57845
|
| |
|
|
|
|
|
|
|
| |
result type when the result type is legal but
not the operand type. Add additional support
for EXTRACT_SUBVECTOR and CONCAT_VECTORS,
needed to handle such cases.
llvm-svn: 57840
|
| |
|
|
| |
llvm-svn: 57838
|
| |
|
|
|
|
| |
with TLI.getPointerTy for a small simplification.
llvm-svn: 57837
|
| |
|
|
|
|
|
|
| |
the condition of a SELECT node. Make sure that the
correct extension type (any-, sign- or zero-extend)
is used.
llvm-svn: 57836
|
| |
|
|
| |
llvm-svn: 57834
|
| |
|
|
|
|
| |
use an MVT::i1 and simplify the code while there.
llvm-svn: 57833
|
| |
|
|
|
|
| |
be either deleted or referenced afterwards.
llvm-svn: 57786
|
| |
|
|
| |
llvm-svn: 57785
|
| |
|
|
|
|
| |
this everywhere in LegalizeTypes.
llvm-svn: 57783
|
| |
|
|
|
|
|
|
|
| |
elements. Otherwise LegalizeTypes will, reasonably
enough, legalize the mask, which may result in it
no longer being a BUILD_VECTOR node (LegalizeDAG
simply ignores the legality or not of vector masks).
llvm-svn: 57782
|
| |
|
|
|
|
|
|
|
|
| |
the previous patch this one actually passes make check.
"Fix PR2356 on PowerPC: if we have an input and output that are tied together
that have different sizes (e.g. i32 and i64) make sure to reserve registers for
the bigger operand."
llvm-svn: 57771
|
| |
|
|
| |
llvm-svn: 57770
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and add a TargetLowering hook for it to use to determine when this
is legal (i.e. not in PIC mode, etc.)
This allows instruction selection to emit folded constant offsets
in more cases, such as the included testcase, eliminating the need
for explicit arithmetic instructions.
This eliminates the need for the C++ code in X86ISelDAGToDAG.cpp
that attempted to achieve the same effect, but wasn't as effective.
Also, fix handling of offsets in GlobalAddressSDNodes in several
places, including changing GlobalAddressSDNode's offset from
int to int64_t.
The Mips, Alpha, Sparc, and CellSPU targets appear to be
unaware of GlobalAddress offsets currently, so set the hook to
false on those targets.
llvm-svn: 57748
|
| |
|
|
|
|
|
| |
test/CodeGen/X86/2008-09-17-inline-asm-1.ll
and a few others, and it breaks the llvm-gcc build.
llvm-svn: 57747
|
| |
|
|
|
|
| |
ISD condition opcodes into helper functions.
llvm-svn: 57726
|
| |
|
|
| |
llvm-svn: 57715
|
| |
|
|
|
|
| |
touches memory and need an associated MemOperand
llvm-svn: 57712
|
| |
|
|
|
|
| |
ISD condition opcodes into helper functions.
llvm-svn: 57710
|
| |
|
|
|
|
|
| |
that have different sizes (e.g. i32 and i64) make sure to reserve registers for
the bigger operand.
llvm-svn: 57699
|
| |
|
|
| |
llvm-svn: 57690
|
| |
|
|
|
|
|
| |
constraint. Reject asms where an output has multiple
input constraints tied to it.
llvm-svn: 57687
|
| |
|
|
|
|
|
| |
array. Improve some minor comments, refactor some helpers in
AsmOperandInfo. No functionality change for valid code.
llvm-svn: 57686
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
shift counts, and patterns that match dynamic shift counts
when the subtract is obscured by a truncate node.
Add DAGCombiner support for recognizing rotate patterns
when the shift counts are defined by truncate nodes.
Fix and simplify the code for commuting shld and shrd
instructions to work even when the given instruction doesn't
have a parent, and when the caller needs a new instruction.
These changes allow LLVM to use the shld, shrd, rol, and ror
instructions on x86 to replace equivalent code using two
shifts and an or in many more cases.
llvm-svn: 57662
|
| |
|
|
|
|
|
|
|
|
|
| |
i.e. conditions that cannot be checked with a single instruction. For example,
SETONE and SETUEQ on x86.
- Teach legalizer to implement *illegal* setcc as a and / or of a number of
legal setcc nodes. For now, only implement FP conditions. e.g. SETONE is
implemented as SETO & SETNE, SETUEQ is SETUO | SETEQ.
- Move x86 target over.
llvm-svn: 57542
|
| |
|
|
|
|
|
|
|
| |
- Move the EH landing-pad code and adjust it so that it works
with FastISel as well as with SDISel.
- Add FastISel support for @llvm.eh.exception and
@llvm.eh.selector.
llvm-svn: 57539
|
| |
|
|
| |
llvm-svn: 57526
|
| |
|
|
|
|
|
|
|
| |
instead of requiring all "short description" strings to begin with
two spaces. This makes these strings less mysterious, and it fixes
some cases where short description strings mistakenly did not
begin with two spaces.
llvm-svn: 57521
|
| |
|
|
|
|
| |
LegalizeSetCCOperands are leglized. Patch by Richard Pennington.
llvm-svn: 57460
|
| |
|
|
|
|
|
| |
null. This assumes that any target that does not have AsmInfo, does not
support "LocAndDot".
llvm-svn: 57438
|
| |
|
|
| |
llvm-svn: 57428
|
| |
|
|
|
|
|
| |
parameters instead of raw Constants. This prevents the constants from
being selected by the isel pass, fixing PR2735.
llvm-svn: 57385
|
| |
|
|
| |
llvm-svn: 57371
|
| |
|
|
|
|
|
| |
and APFloat::convertToInteger. Restore return value to
IEEE754. Adjust all users accordingly.
llvm-svn: 57329
|
| |
|
|
|
|
|
| |
make it clearer what the function does. No functional
change.
llvm-svn: 57325
|
| |
|
|
|
|
|
| |
for things like null pointers, which at this level aren't
different from regular integer constants.
llvm-svn: 57265
|
| |
|
|
| |
llvm-svn: 57255
|
| |
|
|
| |
llvm-svn: 57249
|
| |
|
|
| |
llvm-svn: 57248
|
| |
|
|
|
|
| |
test/Codegen/Generic/i128-addsub.ll on x86
llvm-svn: 57247
|
| |
|
|
| |
llvm-svn: 57243
|
| |
|
|
|
|
| |
2006-01-23-UnionInit on x86-64 when inlining is not enabled.
llvm-svn: 57223
|
| |
|
|
|
|
| |
patch by Mikael Lepisto!
llvm-svn: 57077
|
| |
|
|
|
|
|
|
| |
expand to multiple basic blocks, in which case fast-isel
needs to informed of which block to use as it resumes
inserting instructions.
llvm-svn: 57040
|
| |
|
|
|
|
|
| |
incidentally making the case where the memop is a
pointer deref work. Fix cmp-and-swap regression.
llvm-svn: 57027
|