| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 57847
|
| |
|
|
|
|
|
|
|
|
| |
is re-written by the callback to branch directly to the compiled code
in future invocations.
Added back in range-based memory permission functions for the updating of
the stub on Darwin.
llvm-svn: 57846
|
| |
|
|
| |
llvm-svn: 57845
|
| |
|
|
| |
llvm-svn: 57844
|
| |
|
|
| |
llvm-svn: 57843
|
| |
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
sensible for vectors being scalarized. Note
that this method can't return anything very
sensible when splitting non-power-of-two vectors.
llvm-svn: 57839
|
| |
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 57832
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
LowerOperation if it doesn't know what else to do.
This methods should probably be factorized some,
but this is good enough for the moment. Have
LowerATOMIC_BINARY_64 use EXTRACT_ELEMENT rather
than assuming the operand is a BUILD_PAIR (if it
is then getNode will automagically simplify the
EXTRACT_ELEMENT). This way LowerATOMIC_BINARY_64
usable from LegalizeTypes.
llvm-svn: 57831
|
| |
|
|
| |
llvm-svn: 57829
|
| |
|
|
| |
llvm-svn: 57828
|
| |
|
|
| |
llvm-svn: 57827
|
| |
|
|
| |
llvm-svn: 57820
|
| |
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 57766
|
| |
|
|
| |
llvm-svn: 57765
|
| |
|
|
| |
llvm-svn: 57750
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 57735
|
| |
|
|
| |
llvm-svn: 57734
|
| |
|
|
| |
llvm-svn: 57733
|
| |
|
|
|
|
| |
ISD condition opcodes into helper functions.
llvm-svn: 57726
|
| |
|
|
|
|
| |
is not technically true, it tells tblgen that these instructions "clobber" the entire XMM register file.
llvm-svn: 57723
|
| |
|
|
|
|
|
|
| |
instruction can "clobber". For example, on x86 the call instruction can modify all of the XMM and fp stack registers.
TableGen has been taught to generate the lists from instruction definitions.
llvm-svn: 57722
|
| |
|
|
|
|
|
|
| |
reuse happened.
Patch by Lang Hames!
llvm-svn: 57720
|
| |
|
|
| |
llvm-svn: 57715
|
| |
|
|
|
|
|
|
|
| |
have an unreachable block in a function. This was triggering the assert. This is
a horrid hack to cover this up.
Oh! for a good debug info architecture!
llvm-svn: 57714
|
| |
|
|
|
|
| |
touches memory and need an associated MemOperand
llvm-svn: 57712
|
| |
|
|
|
|
| |
ISD condition opcodes into helper functions.
llvm-svn: 57710
|
| |
|
|
| |
llvm-svn: 57709
|
| |
|
|
|
|
|
| |
in 32-bit mode instead of assigning a register pair. This has nothing to
do with PR2356, but I happened to notice it while working on it.
llvm-svn: 57704
|
| |
|
|
|
|
|
| |
that have different sizes (e.g. i32 and i64) make sure to reserve registers for
the bigger operand.
llvm-svn: 57699
|
| |
|
|
| |
llvm-svn: 57695
|
| |
|
|
|
|
| |
other than why it was xfailed.
llvm-svn: 57694
|
| |
|
|
|
|
| |
except they do not have any operands. The RegModRM byte is encoded with register number 0.
llvm-svn: 57692
|
| |
|
|
| |
llvm-svn: 57691
|
| |
|
|
| |
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
|