| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
type is illegal (for example, v2i16 on systems where the smallest store size is i32)
llvm-svn: 141661
|
|
|
|
| |
llvm-svn: 141659
|
|
|
|
|
|
| |
of the type. Formatted lines to the 80 char limit.
llvm-svn: 140952
|
|
|
|
|
|
| |
while the decision is to bit-pack small values.
llvm-svn: 140601
|
|
|
|
|
|
|
|
|
|
| |
When generating the trunc-store of i1's, we need to use the vector type and not
the scalar type.
This patch fixes the assertion in CodeGen/Generic/bool-vector.ll when
running with -promote-elements.
llvm-svn: 140463
|
|
|
|
| |
llvm-svn: 139851
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
init.trampoline and adjust.trampoline intrinsics, into two intrinsics
like in GCC. While having one combined intrinsic is tempting, it is
not natural because typically the trampoline initialization needs to
be done in one function, and the result of adjust trampoline is needed
in a different (nested) function. To get around this llvm-gcc hacks the
nested function lowering code to insert an additional parent variable
holding the adjust.trampoline result that can be accessed from the child
function. Dragonegg doesn't have the luxury of tweaking GCC code, so it
stored the result of adjust.trampoline in the memory GCC set aside for
the trampoline itself (this is always available in the child function),
and set up some new memory (using an alloca) to hold the trampoline.
Unfortunately this breaks Go which allocates trampoline memory on the
heap and wants to use it even after the parent has exited (!). Rather
than doing even more hacks to get Go working, it seemed best to just use
two intrinsics like in GCC. Patch mostly by Sanjoy Das.
llvm-svn: 139140
|
|
|
|
|
|
|
|
| |
to be unreliable on platforms which require memcpy calls, and it is
complicating broader legalize cleanups. It is hoped that these cleanups
will make memcpy byval easier to implement in the future.
llvm-svn: 138977
|
|
|
|
|
|
|
|
|
|
|
|
| |
I don't really like the patterns, but I'm having trouble coming up with a
better way to handle them.
I plan on making other targets use the same legalization
ARM-without-memory-barriers is using... it's not especially efficient, but
if anyone cares, it's not that hard to fix for a given target if there's
some better lowering.
llvm-svn: 138621
|
|
|
|
| |
llvm-svn: 138478
|
|
|
|
| |
llvm-svn: 136283
|
|
|
|
| |
llvm-svn: 136206
|
|
|
|
| |
llvm-svn: 136156
|
|
|
|
| |
llvm-svn: 135375
|
|
|
|
| |
llvm-svn: 135320
|
|
|
|
|
|
| |
and just use the ones from TargetLowering directly.
llvm-svn: 135318
|
|
|
|
| |
llvm-svn: 135311
|
|
|
|
| |
llvm-svn: 135305
|
|
|
|
|
|
| |
is to use this for architectures that have a native FMA instruction.
llvm-svn: 134742
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
types (with power of two types such as 8,16,32 .. 512).
Fix a bug in the integer promotion of bitcast nodes. Enable integer expanding
only if the target of the conversion is an integer (when the type action is
scalarize).
Add handling to the legalization of vector load/store in cases where the saved
vector is integer-promoted.
llvm-svn: 132985
|
|
|
|
|
|
| |
code in one place. Re-apply 131534 and fix the multi-step promotion of integers.
llvm-svn: 132217
|
|
|
|
|
|
|
|
| |
Original log entry:
Refactor getActionType and getTypeToTransformTo ; place all of the 'decision'
code in one place.
llvm-svn: 131536
|
|
|
|
|
|
| |
code in one place.
llvm-svn: 131534
|
|
|
|
| |
llvm-svn: 131497
|
|
|
|
| |
llvm-svn: 131430
|
|
|
|
| |
llvm-svn: 131429
|
|
|
|
| |
llvm-svn: 131428
|
|
|
|
|
|
| |
simplified version. <rdar://problem/9298790>
llvm-svn: 131274
|
|
|
|
|
|
| |
rdar://problem/9298790
llvm-svn: 131269
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
by non-CMP expressions. The executable test case (129821) would test
this as well, if we had an "-O0 -disable-arm-fast-isel" LLVM-GCC
tester. Alas, the ARM assembly would be very difficult to check with
FileCheck.
The thumb2-cbnz.ll test is affected; it generates larger code (tst.w
vs. cmp #0), but I believe the new version is correct.
rdar://problem/9298790
llvm-svn: 131261
|
|
|
|
|
|
|
| |
test case; I've only seen this on a release branch, and I can't get it
to reproduce on trunk. rdar://problem/7662569
llvm-svn: 131152
|
|
|
|
|
|
|
|
|
| |
manually and pass all (now) 4 arguments to the mul libcall. Add a new
ExpandLibCall for just this (copied gratuitously from type legalization).
Fixes rdar://9292577
llvm-svn: 129842
|
|
|
|
| |
llvm-svn: 129796
|
|
|
|
|
|
| |
<rdar://problem/7662569>
llvm-svn: 129761
|
|
|
|
|
|
| |
the node to a libcall. rdar://9280991
llvm-svn: 129633
|
|
|
|
|
|
| |
Luis Felipe Strano Moraes!
llvm-svn: 129558
|
|
|
|
| |
llvm-svn: 128868
|
|
|
|
|
|
| |
rdar://8911343
llvm-svn: 128696
|
|
|
|
|
|
| |
type.
llvm-svn: 127163
|
|
|
|
|
|
| |
the type of the LHS.
llvm-svn: 126518
|
|
|
|
|
|
|
|
| |
is only used through GEPs.
This time with a fix that avoids using invalidated DenseMap iterator.
llvm-svn: 125984
|
|
|
|
| |
llvm-svn: 125830
|
|
|
|
|
|
| |
is only used through GEPs.
llvm-svn: 125794
|
|
|
|
|
|
| |
other getNode() methods. Radar 9002173.
llvm-svn: 125665
|
|
|
|
| |
llvm-svn: 124397
|
|
|
|
|
|
|
|
| |
nodes.
Take 2. This includes fix for dragonegg crash.
llvm-svn: 124380
|
|
|
|
| |
llvm-svn: 124331
|
|
|
|
| |
llvm-svn: 124320
|
|
|
|
|
|
|
|
| |
default implementation for x86, going through the stack in a similr
fashion to how the codegen implements BUILD_VECTOR. Eventually this
will get matched to VINSERTF128 if AVX is available.
llvm-svn: 124307
|
|
|
|
|
|
| |
nodes.
llvm-svn: 124302
|