| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
for consistency sake.
llvm-svn: 107820
|
|
|
|
|
|
|
| |
than assuming a target will custom lower them. Targets which do so should
exlicitly mark them as having custom lowerings. PR7454.
llvm-svn: 107734
|
|
|
|
| |
llvm-svn: 107490
|
|
|
|
| |
llvm-svn: 107489
|
|
|
|
|
|
| |
This produces terrible but correct code.
llvm-svn: 106952
|
|
|
|
| |
llvm-svn: 106342
|
|
|
|
| |
llvm-svn: 106324
|
|
|
|
|
|
|
|
|
|
| |
entries used by llvm-gcc. *_[U]MIN and such can be added later if needed.
This enables the front ends to simplify handling of the atomic intrinsics by
removing the target-specific decision about which targets can handle the
intrinsics.
llvm-svn: 106321
|
|
|
|
|
|
| |
SDNode *, since it doesn't care about the ResNo value.
llvm-svn: 106282
|
|
|
|
| |
llvm-svn: 106278
|
|
|
|
|
|
| |
for correctness' sake, it should be there.
llvm-svn: 106229
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
for the moment. The implementation of the libcall will follow.
Currently, the llvm-gcc knows when the intrinsics can be correctly handled by
the back end and only generates them in those cases, issuing libcalls directly
otherwise. That's too much coupling. The intrinsics should always be
generated and the back end decide how to handle them, be it with a libcall,
inline code, or whatever. This patch is a step in that direction.
rdar://8097623
llvm-svn: 106227
|
|
|
|
|
|
| |
sets the legalize action to Expand.
llvm-svn: 106203
|
|
|
|
|
|
| |
an alloca() or an llvm.stackrestore(). rdar://8031573
llvm-svn: 104900
|
|
|
|
|
|
|
|
| |
need to be promoted. The BUILD_VECTOR and EXTRACT_VECTOR_ELT nodes generated
here already allow the promoted type to be used without further changes, so
just do the promotion. This fixes part of pr7167.
llvm-svn: 104141
|
|
|
|
|
|
| |
one was subject to double rounding in extreme cases.
llvm-svn: 103744
|
|
|
|
| |
llvm-svn: 103489
|
|
|
|
|
|
| |
than just getting one through a TargetLowering.
llvm-svn: 101802
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
const_casts, and it reinforces the design of the Target classes being
immutable.
SelectionDAGISel::IsLegalToFold is now a static member function, because
PIC16 uses it in an unconventional way. There is more room for API
cleanup here.
And PIC16's AsmPrinter no longer uses TargetLowering.
llvm-svn: 101635
|
|
|
|
| |
llvm-svn: 101330
|
|
|
|
| |
llvm-svn: 100724
|
|
|
|
| |
llvm-svn: 100709
|
|
|
|
|
|
| |
need it anymore, so don't addRequire it.
llvm-svn: 100400
|
|
|
|
| |
llvm-svn: 98888
|
|
|
|
| |
llvm-svn: 98501
|
|
|
|
|
|
|
|
| |
(it seems that FreeBSD doesn't have copysignl). Done by
removing a bunch of assumptions from the code. This may also
help with sparc 128 bit floats.
llvm-svn: 98346
|
|
|
|
|
|
| |
conversions.
llvm-svn: 97854
|
|
|
|
| |
llvm-svn: 97781
|
|
|
|
| |
llvm-svn: 97779
|
|
|
|
|
|
|
|
|
| |
rounding correctly. This implementation is a generalization of
the x86_64 code in compiler-rt.
This fixes rdar://7683708.
llvm-svn: 97778
|
|
|
|
| |
llvm-svn: 97536
|
|
|
|
|
|
|
| |
operands are themselves vectors. Based on a patch by
Micah Villmow for PR6338.
llvm-svn: 97165
|
|
|
|
|
|
|
|
| |
terms of store and load, which means bitcasting between scalar
integer and vector has endian-specific results, which undermines
this whole approach.
llvm-svn: 97137
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the number of value bits, not the number of bits of allocation for in-memory
storage.
Make getTypeStoreSize and getTypeAllocSize work consistently for arrays and
vectors.
Fix several places in CodeGen which compute offsets into in-memory vectors
to use TargetData information.
This fixes PR1784.
llvm-svn: 97064
|
|
|
|
| |
llvm-svn: 96240
|
|
|
|
| |
llvm-svn: 95781
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. MachineJumpTableInfo is now created lazily for a function the first time
it actually makes a jump table instead of for every function.
2. The encoding of jump table entries is now described by the
MachineJumpTableInfo::JTEntryKind enum. This enum is determined by the
TLI::getJumpTableEncoding() hook, instead of by lots of code scattered
throughout the compiler that "knows" that jump table entries are always
32-bits in pic mode (for example).
3. The size and alignment of jump table entries is now calculated based on
their kind, instead of at machinefunction creation time.
Future work includes using the EntryKind in more places in the compiler,
eliminating other logic that "knows" the layout of jump tables in various
situations.
llvm-svn: 94470
|
|
|
|
|
|
|
| |
the alignment allows. Fixed a bug where we didn't use a
vector load/store for PR5626.
llvm-svn: 94338
|
|
|
|
|
|
|
|
|
|
| |
really does need to be a vector type, because
TargetLowering::getOperationAction for SIGN_EXTEND_INREG uses that type,
and it needs to be able to distinguish between vectors and scalars.
Also, fix some more issues with legalization of vector casts.
llvm-svn: 93043
|
|
|
|
| |
llvm-svn: 92575
|
|
|
|
| |
llvm-svn: 92188
|
|
|
|
| |
llvm-svn: 92011
|
|
|
|
| |
llvm-svn: 91953
|
|
|
|
| |
llvm-svn: 91949
|
|
|
|
|
|
| |
is finished.
llvm-svn: 91942
|
|
|
|
|
|
| |
was using "Tmp1" in the first getNode call instead of Node->getOperand(0).
llvm-svn: 91936
|
|
|
|
|
|
|
|
| |
return partial registers. This affected the back-end lowering code some.
Also patch up some places I missed before in the "get" functions.
llvm-svn: 91880
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
LegalizeDAG.cpp. Unlike the code it replaces, which simply decrements the simple
type by one, getHalfSizedIntegerVT() searches for the smallest simple integer
type that is at least half the size of the type it is called on. This approach
has the advantage that it will continue working if a new value type (such as
i24) is added to MVT.
Also, in preparation for new value types, remove the assertions that
non-power-of-2 8-bit-mutiple types are Extended when legalizing extload and
truncstore operations.
llvm-svn: 91614
|
|
|
|
|
|
| |
a vector type.
llvm-svn: 91181
|
|
|
|
| |
llvm-svn: 91158
|