| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 99948
|
|
|
|
|
|
|
|
|
| |
memmove, and memset,
e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1)
A update of langref will occur in a subsequent checkin.
llvm-svn: 99928
|
|
|
|
| |
llvm-svn: 99901
|
|
|
|
| |
llvm-svn: 99840
|
|
|
|
| |
llvm-svn: 99836
|
|
|
|
| |
llvm-svn: 99774
|
|
|
|
|
|
|
|
|
|
| |
and those derived from them. These are obnoxious because
they were written as: PatLeaf<(bitconvert). Not having an
argument was foiling adding better type checking for operand
count matching up with what was required (in this case,
bitconvert always requires an operand!)
llvm-svn: 99759
|
|
|
|
| |
llvm-svn: 99742
|
|
|
|
|
|
| |
are cleaned up, we can remove an old fixme.
llvm-svn: 99741
|
|
|
|
|
|
|
| |
1, 1 cases which are by-far the most frequent. This shrinks the X86
isel table from 77014 -> 74657 bytes.
llvm-svn: 99740
|
|
|
|
|
|
|
| |
can cause a crash on crazy situations in msp430 when morph-node-to
is disabled.
llvm-svn: 99739
|
|
|
|
|
|
| |
list multiple times when MorphNodeTo can't be applied.
llvm-svn: 99735
|
|
|
|
|
|
| |
scope due to obviously false predicate.
llvm-svn: 99723
|
|
|
|
| |
llvm-svn: 99697
|
|
|
|
| |
llvm-svn: 99656
|
|
|
|
|
|
| |
remove a hack in the scheduler.
llvm-svn: 99597
|
|
|
|
|
|
|
|
| |
the custom insertion hook deletes the instruction, then we try to set dead
flags on it. Neither the code that I added nor the code that was there
before was safe.
llvm-svn: 99538
|
|
|
|
|
|
| |
currently. But add an assertion to verify it.
llvm-svn: 99501
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
bytes instead of one byte. This is important because
we're running up to too many opcodes to fit in a byte
and it is aggrevated by FIRST_TARGET_MEMORY_OPCODE
making the numbering sparse. This just bites the
bullet and bloats out the table. In practice, this
increases the size of the x86 isel table from 74.5K
to 76K. I think we'll cope :)
This fixes rdar://7791648
llvm-svn: 99494
|
|
|
|
| |
llvm-svn: 99489
|
|
|
|
| |
llvm-svn: 99487
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
happening.
Enhance scheduling to set the DEAD flag on implicit defs
more aggressively. Before, we'd set an implicit def operand
to dead if it were present in the SDNode corresponding to
the machineinstr but had no use. Now we do it in this case
AND if the implicit def does not exist in the SDNode at all.
This exposes a couple of problems: one is the FIXME, which
causes a live intervals crash on CodeGen/X86/sibcall.ll.
The second is that it makes machinecse and licm more
aggressive (which is a good thing) but also exposes a case
where licm hoists a set0 and then it doesn't get resunk.
Talking to codegen folks about both these issues, but I need
this patch in in the meantime.
llvm-svn: 99485
|
|
|
|
|
|
| |
r99453.
llvm-svn: 99482
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
placement should be determined by the relative order of incoming llvm instructions. The scheduler will now use the SDNode ordering information to determine where to insert them. A dbg_value instruction is inserted after the instruction with the last highest source order and before the instruction with the next highest source order. It will optimize the placement by inserting right after the instruction that produces the value if they have consecutive order numbers.
Here is a theoretical example that illustrates why the placement is important.
tmp1 =
store tmp1 -> x
...
tmp2 = add ...
...
call
...
store tmp2 -> x
Now mem2reg comes along:
tmp1 =
dbg_value (tmp1 -> x)
...
tmp2 = add ...
...
call
...
dbg_value (tmp2 -> x)
When the debugger examine the value of x after the add instruction but before the call, it should have the value of tmp1.
Furthermore, for dbg_value's that reference constants, they should not be emitted at the beginning of the block (since they do not have "producers").
This patch also cleans up how SDISel manages DbgValue nodes. It allow a SDNode to be referenced by multiple SDDbgValue nodes. When a SDNode is deleted, it uses the information to find the SDDbgValues and invalidate them. They are not deleted until the corresponding SelectionDAG is destroyed.
llvm-svn: 99469
|
|
|
|
|
|
|
|
| |
2006-07-19-stwbrx-crash.ll for me, but it's the only likely
patch in the blame list of several bots. Lets see if this
fixes it.
llvm-svn: 99453
|
|
|
|
| |
llvm-svn: 99445
|
|
|
|
| |
llvm-svn: 99444
|
|
|
|
| |
llvm-svn: 99372
|
|
|
|
|
|
| |
needed here.
llvm-svn: 99339
|
|
|
|
|
|
| |
beyond just calling getTypeToTransformTo.
llvm-svn: 99335
|
|
|
|
| |
llvm-svn: 98920
|
|
|
|
| |
llvm-svn: 98888
|
|
|
|
|
|
|
| |
RecyclingAllocator to allow client code to be simpler, and
simplify several clients.
llvm-svn: 98847
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
always create a new jump table. The intention was to avoid merging jump
tables in SelectionDAGBuilder, and to wait for the branch folding pass to
merge tables. Unfortunately, the same getJumpTableIndex() method is also
used to merge tables in branch folding, so as a result of this change
branch tables are never merged. Worse, the branch folding code is expecting
getJumpTableIndex to always return the index of an existing table, but with
this change, it never does so. In at least some cases, e.g., pr6543, this
creates references to non-existent tables.
I've fixed the problem by adding a new createJumpTableIndex function, which
will always create a new table, and I've changed getJumpTableIndex to only
look at existing tables.
llvm-svn: 98845
|
|
|
|
| |
llvm-svn: 98830
|
|
|
|
| |
llvm-svn: 98778
|
|
|
|
|
|
| |
handling constant unions.
llvm-svn: 98680
|
|
|
|
| |
llvm-svn: 98662
|
|
|
|
| |
llvm-svn: 98656
|
|
|
|
|
|
|
|
| |
DAG nodes.
This is a work in progress. Patch by Dale Johannesen!
llvm-svn: 98568
|
|
|
|
|
|
|
|
| |
machine instructions.
This is a work in progress.
llvm-svn: 98556
|
|
|
|
| |
llvm-svn: 98548
|
|
|
|
|
|
| |
not all unary nodes necessarily have a simple result type.
llvm-svn: 98547
|
|
|
|
|
|
|
| |
with ppc_f128 type by having the type legalizer turn these back into a
call to copysignl.
llvm-svn: 98514
|
|
|
|
| |
llvm-svn: 98513
|
|
|
|
|
|
| |
fixing PR6607
llvm-svn: 98512
|
|
|
|
|
|
| |
no functionality change.
llvm-svn: 98511
|
|
|
|
| |
llvm-svn: 98509
|
|
|
|
| |
llvm-svn: 98501
|
|
|
|
| |
llvm-svn: 98500
|